From 88d7a0cd8edc01720dfc61e1722de87fc19c3422 Mon Sep 17 00:00:00 2001 From: "Luis F. Gonzalez" Date: Thu, 31 May 2018 16:27:16 -0400 Subject: [PATCH] refactor(policy): render with twig add twig in method showValueInput policybase add twig in method showValueInput policyboolean add twig in method showValueInput policydeployapp add twig in method showValueInput policydeployfile add twig in method showValueInput policydropdown maquetation in render template Signed-off-by: Luis F. Gonzalez --- css/style.css | 27 +++++++ inc/policybase.class.php | 7 +- inc/policyboolean.class.php | 8 +- inc/policydeployapplication.class.php | 28 +++---- inc/policydeployfile.class.php | 43 ++++------- inc/policydropdown.class.php | 8 +- tests/suite-unit/PluginFlyvemdmPolicyBase.php | 6 +- tpl/fleet_policy.html.twig | 4 +- tpl/policy_value.html.twig | 75 +++++++++++++++++++ 9 files changed, 156 insertions(+), 50 deletions(-) create mode 100644 tpl/policy_value.html.twig diff --git a/css/style.css b/css/style.css index f9bde8d5..53464dea 100644 --- a/css/style.css +++ b/css/style.css @@ -93,4 +93,31 @@ ul#menu ul.ssmenu { .ui-slider .ui-widget-header { background: #FEC95C; cursor: pointer; +} + +/*---------------- POLICY VALUE ----------------*/ +.plugin_flyvemdm_policy_value{ + display: inline-block; + width: 100%; + max-width: 100%; + overflow-y: auto; +} + +.plugin_flyvemdm_policy_value table{ + width: 100% +} +.plugin_flyvemdm_policy_value table > tbody > tr > td span.no-wrap a{ + margin-right: .5em; +} +.plugin_flyvemdm_policy_value table > tbody > tr > td span.no-wrap{ + margin-right: 3em; +} +.plugin_flyvemdm_policy_value table .select2-container{ + width: 90% +} +.plugin_flyvemdm_policy_value table > tbody > tr > td span.no-wrap span.fa { + padding: 0; +} +.plugin_flyvemdm_policy_value table .select2-container .select2-choice { + max-width: none; } \ No newline at end of file diff --git a/inc/policybase.class.php b/inc/policybase.class.php index f3851272..2572d3db 100644 --- a/inc/policybase.class.php +++ b/inc/policybase.class.php @@ -240,9 +240,12 @@ public function post_unapply($value, $itemtype, $itemId, PluginFlyvemdmNotifiabl * @return string */ public function showValueInput($value = '', $itemType = '', $itemId = 0) { - $html = ''; - return $html; + $data['itemtype'] = $itemType; + $data['value'] = $value; + $data['typeTmpl'] = PluginFlyvemdmPolicyBase::class; + $twig = plugin_flyvemdm_getTemplateEngine(); + return $twig->render('policy_value.html.twig', ['data' => $data]); } /** diff --git a/inc/policyboolean.class.php b/inc/policyboolean.class.php index e9dae32c..e38dac31 100644 --- a/inc/policyboolean.class.php +++ b/inc/policyboolean.class.php @@ -89,7 +89,13 @@ public function getMqttMessage($value, $itemtype, $itemId) { * @return int|string */ public function showValueInput($value = '', $itemType = '', $itemId = 0) { - return Dropdown::showYesNo('value', $value, -1, ['display' => false]); + $data['itemtype'] = $itemType; + $data['typeTmpl'] = PluginFlyvemdmPolicyBoolean::class; + $data['dropdown'] = [ + Dropdown::showYesNo('value', $value, -1, ['display' => false]) + ]; + $twig = plugin_flyvemdm_getTemplateEngine(); + return $twig->render('policy_value.html.twig', ['data' => $data]); } /** diff --git a/inc/policydeployapplication.class.php b/inc/policydeployapplication.class.php index ab8cc1f7..a5df68bd 100644 --- a/inc/policydeployapplication.class.php +++ b/inc/policydeployapplication.class.php @@ -235,26 +235,20 @@ public function showValueInput($value = '', $itemType = '', $itemId = 0) { $removeOnDelete = $value['remove_on_delete']; } - $packageDropdown = PluginFlyvemdmPackage::dropdown([ - 'display' => false, - 'displaywith' => ['alias'], - 'name' => 'items_id', - 'value' => $itemId, - ]); - - $removeDropdown = Dropdown::showYesNo('value[remove_on_delete]', $removeOnDelete, - -1, ['display' => false]); - - $data = [ - 'package' => [ - 'dropdown' => $packageDropdown, - 'itemtype' => $itemtype - ], - 'remove' => $removeDropdown + $data['typeTmpl'] = $itemtype; + $data['itemtype'] = $itemtype; + $data['dropdown'] = [ + PluginFlyvemdmPackage::dropdown([ + 'display' => false, + 'displaywith' => ['alias'], + 'name' => 'items_id', + 'value' => $itemId, + ]), + Dropdown::showYesNo('value[remove_on_delete]', $removeOnDelete, -1, ['display' => false]) ]; $twig = plugin_flyvemdm_getTemplateEngine(); - return $twig->render('policy_deploy_app_form.html.twig', $data); + return $twig->render('policy_value.html.twig', ['data' => $data]); } /** diff --git a/inc/policydeployfile.class.php b/inc/policydeployfile.class.php index c029923f..3ffe15ea 100644 --- a/inc/policydeployfile.class.php +++ b/inc/policydeployfile.class.php @@ -279,37 +279,26 @@ public function showValueInput($value = '', $itemType = '', $itemId = 0) { $destination = substr($value['destination'], $cut); $destination_base = substr($value['destination'], 0, $cut); } - $filesDropdown = PluginFlyvemdmFile::dropdown([ - 'display' => false, - 'name' => 'items_id', - 'value' => $itemId, - ]); - - //Copy to $path = new PluginFlyvemdmWellknownpath(); $path->getFromDBByPath($destination_base); - - $knownPathDropdown = PluginFlyvemdmWellknownpath::dropdown([ - 'display' => false, - 'name' => 'destination_base', - 'value' => $path->getID(), - ]); - - $removeDropdown = Dropdown::showYesNo('value[remove_on_delete]', $removeOnDelete, - -1, ['display' => false]); - - $data = [ - 'files' => [ - 'dropdown' => $filesDropdown, - 'itemtype' => $itemtype, - 'knownPath' => $knownPathDropdown, - 'destination' => $destination, - ], - 'remove' => $removeDropdown, + $data['destination'] = $destination; + $data['typeTmpl'] = $itemtype; + $data['itemtype'] = $itemtype; + $data['dropdown'] = [ + PluginFlyvemdmFile::dropdown([ + 'display' => false, + 'name' => 'items_id', + 'value' => $itemId, + ]), + PluginFlyvemdmWellknownpath::dropdown([ + 'display' => false, + 'name' => 'destination_base', + 'value' => $path->getID(), + ]), + Dropdown::showYesNo('value[remove_on_delete]', $removeOnDelete, -1, ['display' => false]) ]; - $twig = plugin_flyvemdm_getTemplateEngine(); - return $twig->render('policy_deploy_file_form.html.twig', $data); + return $twig->render('policy_value.html.twig', ['data' => $data]); } /** diff --git a/inc/policydropdown.class.php b/inc/policydropdown.class.php index 6c1e9fc2..85113336 100644 --- a/inc/policydropdown.class.php +++ b/inc/policydropdown.class.php @@ -102,7 +102,13 @@ public function translateData() { * @return int|string */ public function showValueInput($value = '', $itemType = '', $itemId = 0) { - return Dropdown::showFromArray('value', $this->valueList, ['display' => false, 'value' => $value]); + $data['itemtype'] = $itemType; + $data['typeTmpl'] = PluginFlyvemdmPolicyDropdown::class; + $data['dropdown'] = [ + Dropdown::showFromArray('value', $this->valueList, ['display' => false, 'value' => $value]) + ]; + $twig = plugin_flyvemdm_getTemplateEngine(); + return $twig->render('policy_value.html.twig', ['data' => $data]); } /** diff --git a/tests/suite-unit/PluginFlyvemdmPolicyBase.php b/tests/suite-unit/PluginFlyvemdmPolicyBase.php index 25cda713..59183d42 100644 --- a/tests/suite-unit/PluginFlyvemdmPolicyBase.php +++ b/tests/suite-unit/PluginFlyvemdmPolicyBase.php @@ -123,7 +123,11 @@ public function testPre_unapply() { */ public function testShowValueInput() { list($policy) = $this->createNewPolicyInstance(); - $this->string($policy->showValueInput())->isEqualTo(''); + $data['itemtype'] = ''; + $data['value'] = ''; + $data['typeTmpl'] = \PluginFlyvemdmPolicyBase::class; + $twig = plugin_flyvemdm_getTemplateEngine(); + $this->string($policy->showValueInput())->isEqualTo($twig->render('policy_value.html.twig', ['data' => $data])); } /** diff --git a/tpl/fleet_policy.html.twig b/tpl/fleet_policy.html.twig index 930c86c2..d44b020d 100644 --- a/tpl/fleet_policy.html.twig +++ b/tpl/fleet_policy.html.twig @@ -81,7 +81,8 @@ }); function editPolicy(policyId, taskId) { - $('#policy_editor').dialog('open'); + var editorId = "#policy_editor"; + $(editorId).dialog('option', 'position', 'center'); $.ajax({ url: '../ajax/policyValue.php', method: 'POST', @@ -94,6 +95,7 @@ }, success: function (response) { $('#policy_editor_form').html(response); + $(editorId).dialog('open'); } }); } diff --git a/tpl/policy_value.html.twig b/tpl/policy_value.html.twig new file mode 100644 index 00000000..29d8c6a9 --- /dev/null +++ b/tpl/policy_value.html.twig @@ -0,0 +1,75 @@ + +{% if data.typeTmpl is same as("PluginFlyvemdmFile") %} + +
+ + + + + + + + + + + +
+ {{ data.dropdown[0]|raw }} + + {{ __('copy to', 'flyvemdm') }} + + {{ data.dropdown[1]|raw }} + + + + {{ __('Remove when the policy is removed', 'flyvemdm') }} + + {{ data.dropdown[2]|raw }} + +
+
+ +{% elseif data.typeTmpl is same as("PluginFlyvemdmPackage") %} + +
+ + + + + + + + +
+ {{ data.dropdown[0]|raw }} + + {{ __('copy to', 'flyvemdm') }} + + {{ data.dropdown[1]|raw }} + +
+
+ +{% elseif data.typeTmpl is same as("PluginFlyvemdmPolicyBoolean") or data.typeTmpl is same as("PluginFlyvemdmPolicyDropdown") %} + +
+ {{ data.dropdown[0]|raw }} +
+ +{% elseif data.typeTmpl is same as("PluginFlyvemdmPolicyBase") %} + +
+ +
+ +{% endif %} \ No newline at end of file