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