Project

General

Profile

Actions

Bug #26002

open

The directive page is much slower with Rudder 8.1 than in 7.3

Added by Nicolas CHARLES about 1 month ago. Updated 5 days ago.

Status:
Pending release
Priority:
1 (highest)
Category:
Web - Config management
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
0
Name check:
To do
Fix check:
Checked
Regression:
No

Description

When we access the Directive page, it takes a couple of second before we can click on a specific directive
Then, when we want to access a directive, the loader sign stays for at least 2 seconds, with apparent reload of the panel (if we change tab, it reverts to the parameter tabs)

On the load platform, it takes a solid 5 seconds to fully load a directive


Related issues 3 (0 open3 closed)

Related to Rudder - Bug #24775: Directive details displaying leads to firing duplicated rest queriesReleasedFrançois ARMANDActions
Related to Rudder - Bug #24439: Clicking on technique in technique tree doesn't do anythingReleasedVincent MEMBRÉActions
Related to Rudder - Bug #25046: Some results of quicksearch cannot be opened ReleasedRaphael GAUTHIERActions
Actions #1

Updated by Nicolas CHARLES 29 days ago

  • Priority changed from N/A to To review
Actions #2

Updated by Nicolas CHARLES 26 days ago

  • Assignee set to François ARMAND
  • Priority changed from To review to 1 (highest)
Actions #3

Updated by François ARMAND 26 days ago

  • Status changed from New to In progress
Actions #4

Updated by François ARMAND 26 days ago

There is nothing obvious network-related for the first page load: the directive page is loaded from the GET. Perhaps some JS processing takes time, I will look at that latter.

For displaying a directive, things are strange though:
- some request are doubled:


              ruleCompliances = {};
              recentChanges = {};
              recentGraphs = {};
              refreshTable("grid_rules_grid_zone", [{"name": "Global configuration for all nodes", "id": "32377fd7-02fd-43d0-aab7-28460a91347b", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined", "checkboxCallback": function(checked) {lift.ajax('F1669402744344Y5MMXM=' + encodeURIComponent(checked), null, null, null);}}, {"name": "20 - After 100, yes", "id": "05cfdfca-a1cb-4750-b902-bb4bf3c1d8f6", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744345AJLVM2=' + encodeURIComponent(checked), null, null, null);}}, {"name": "IIS", "id": "0d6f450a-575a-4b7a-9fce-b452a663e114", "description": "", "applying": false, "category": "", "status": "N/A", "trClass": " error", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744346WHR32Z=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Subnode with union", "id": "12e9aae9-26f9-4b2d-932c-a9f2595ba74b", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744347YBYWQM=' + encodeURIComponent(checked), null, null, null);}}, {"name": "ZZ - last rule ?", "id": "1c64c0ad-c5a3-42fb-8b1e-493b77a04cc4", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744348UPWBUI=' + encodeURIComponent(checked), null, null, null);}}, {"name": "JCD Fedora localization - 4.0 (fc18)", "id": "207a7c6e-3f42-4cb5-aaad-81f3ec7ae925", "description": "", "applying": false, "category": "Some more cool name", "status": "N/A", "trClass": " error", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744349SK32G1=' + encodeURIComponent(checked), null, null, null);}}, {"name": "A new rule!", "id": "2278f76f-28d3-4326-8199-99561dd8c785", "description": "a beautiful archive", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{\"foo2\": \"bar2\", \"plop\": \"plop\"}", "tagsDisplayed": [{"key":"foo2","value":"bar2"},{"key":"plop","value":"plop"}], "checkboxCallback": function(checked) {lift.ajax('F16694027443503GDDWZ=' + encodeURIComponent(checked), null, null, null);}}, {"name": "a test 1", "id": "2c544941-d74a-4edf-9201-63af40db47f7", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined, Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744351UNYVS0=' + encodeURIComponent(checked), null, null, null);}}, {"name": "100 - Before 20 \u005co/", "id": "3085519f-6de6-484f-92a0-51c7732d38ec", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Technique for \u0027NTP Technique cloned\u0027 disabled", "checkboxCallback": function(checked) {lift.ajax('F1669402744352GXERJW=' + encodeURIComponent(checked), null, null, null);}}, {"name": "test", "id": "33509e0f-4559-4ed2-aeb4-6f415526a243", "description": "add a description", "applying": false, "category": "foo", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined, Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744353VIPGF4=' + encodeURIComponent(checked), null, null, null);}}, {"name": "App OpenSCAP Relay4", "id": "3c222b29-b069-4ebe-9685-5fdeab701ebb", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined, Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744354SD4GBU=' + encodeURIComponent(checked), null, null, null);}}, {"name": "a new test rule", "id": "440bbc30-c995-4be6-bd89-89364335990c", "description": "This is my new rule testing elm UI", "applying": false, "category": "foo", "status": "Not applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined", "checkboxCallback": function(checked) {lift.ajax('F1669402744355ZTHWIW=' + encodeURIComponent(checked), null, null, null);}}, {"name": "One node motd", "id": "4a9068e4-8bc6-4cd5-9885-0e9653c83002", "description": "", "applying": false, "category": "", "status": "N/A", "trClass": " error", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744356V2KFY5=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Welcome", "id": "77fc8bcc-77bd-4e3f-a350-933a02919de7", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined", "checkboxCallback": function(checked) {lift.ajax('F16694027443571CVIL4=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Only ffffffff-94ef-0000-0264-78f063000000", "id": "7a772593-1919-48af-bf3c-2a9750604793", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744358JL1T2W=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Subgroup with Intersect", "id": "812c9785-b2d8-4624-855b-cbbe8d218744", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744359JJH0IR=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Test Change Validation", "id": "a3a796b9-8499-4e0b-86c5-975fc5a13505", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{\"foo\": \"bar\"}", "tagsDisplayed": [{"key":"foo","value":"bar"}], "checkboxCallback": function(checked) {lift.ajax('F1669402744360T5RZPU=' + encodeURIComponent(checked), null, null, null);}}, {"name": "only centos", "id": "b4c1b6c8-d836-417d-a4ab-9edc3d42e32c", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744361OINYZE=' + encodeURIComponent(checked), null, null, null);}}, {"name": "\u00df - UTF-8 sorting", "id": "d60ac228-ff09-41b0-b02e-b7ddb6df9f39", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "reasons": "Rule unapplied, No policy defined, Empty groups", "checkboxCallback": function(checked) {lift.ajax('F1669402744362A5THZP=' + encodeURIComponent(checked), null, null, null);}}, {"name": "01 - Rule on top", "id": "db1eb3cc-e405-498c-8ade-9c7c860ce980", "description": "", "applying": false, "category": "", "status": "Partially applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Directive testreportid disabled, Directive NTP Technique cloned disabled", "checkboxCallback": function(checked) {lift.ajax('F16694027443634S11GD=' + encodeURIComponent(checked), null, null, null);}}, {"name": "rulerulerule", "id": "e0402cf2-8dd6-4b7b-aef2-3f24b5c2b265", "description": "", "applying": false, "category": "Some more cool name", "status": "N/A", "trClass": " error", "policyMode": "enforce", "explanation": "This mode is the globally defined default. You can change it in the global <i><b>settings</b></i>.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744364OYFANN=' + encodeURIComponent(checked), null, null, null);}}, {"name": "050. Test grouping by value", "id": "eff9e40d-5ccf-450a-801a-d4432a7592e4", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744365EFQFWG=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Test new rule", "id": "f300ef37-55a8-4e7f-947c-bc192599bd6d", "description": "", "applying": false, "category": "", "status": "Not applied", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "reasons": "Technique for \u0027File content (from remote template)\u0027 disabled", "checkboxCallback": function(checked) {lift.ajax('F1669402744366SZBS2P=' + encodeURIComponent(checked), null, null, null);}}, {"name": "Nodes only", "id": "ff31e98b-7325-4926-a8d8-fe551d2c3be1", "description": "test foo", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{\"foo\": \"bar\"}", "tagsDisplayed": [{"key":"foo","value":"bar"}], "checkboxCallback": function(checked) {lift.ajax('F1669402744367ROMDE3=' + encodeURIComponent(checked), null, null, null);}}, {"name": "01 - Rule on top in my new branch v2", "id": "db1eb3cc-e405-498c-8ade-9c7c860ce980+myNewBranche", "description": "", "applying": false, "category": "", "status": "In application", "trClass": "", "policyMode": "mixed", "explanation": "This rule is applied on at least one node or directive that will <b class=\u0027text-Enforce\u0027>enforces</b> configurations, and at least one that will <b class=\u0027text-Audit\u0027>audits</b> them.", "tags": "{}", "tagsDisplayed": [], "checkboxCallback": function(checked) {lift.ajax('F1669402744368K3ZHF5=' + encodeURIComponent(checked), null, null, null);}}]
);

          ;

- one take A LOT of time (two times) with payload:


jQuery('#'+"techniqueDetails").html("");
jQuery('#'+"policyConfiguration").replaceWith("\u000a\u000a  <div id=\"policyConfiguration\">\u000a    \u000a  <style>\u000a    .rudder-template .template-main .main-container > .fit-height,\u000a    .rudder-template .template-main .main-container .fit-height > .fit-height,\u000a    #techniqueDetails {\u000a      height: initial !important;\u000a    }\u000a  </style>\u000a  <form id=\"F1669402744289P31MNX\"><div id=\"editForm\">\u000a    <div class=\"main-header\">\u000a      <div class=\"header-title\">\u000a        <h1>\u000a          <i class=\"title-icon fa fa-file-text\"></i>\u000a          <span id=\"info-title\">Directive <b id=\"directiveTitle\"><span>Several packages </span></b></span>\u000a        </h1>\u000a        \u000a          <div class=\"header-buttons\">\u000a            <input id=\"removeAction\" name=\"zF1669402744220OSJXZ1\" type=\"submit\" class=\"btn btn-danger\" value=\"Delete\">\u000a            <input id=\"desactivateAction\" name=\"zF1669402744221AMXF1W\" type=\"submit\" class=\"btn btn-default\" value=\"Disable\">\u000a            <button id=\"clone\" class=\"btn btn-default\" type=\"button\">Clone</button>\u000a            <input name=\"zF16694027442230QO151\" type=\"submit\" value=\"Save\" id=\"policyConfigurationSave\" class=\"btn btn-success\">\u000a          </div>\u000a        \u000a      </div>\u000a      \u000a    </div>\u000a    <div class=\"main-navbar\">\u000a      <ul class=\"nav nav-underline\">\u000a        <li id=\"infoNav\" class=\"nav-item\" role=\"presentation\">\u000a          <button aria-selected=\"true\" aria-controls=\"directiveInfo\" role=\"tab\" type=\"button\" data-bs-target=\"#directiveInfo\" data-bs-toggle=\"tab\" class=\"nav-link active\">Information</button>\u000a        </li>\u000a        <li id=\"paramNav\" class=\"nav-item\">\u000a          <button aria-selected=\"false\" aria-controls=\"parametersTab\" role=\"tab\" type=\"button\" data-bs-target=\"#parametersTab\" data-bs-toggle=\"tab\" class=\"nav-link\">Parameters</button>\u000a        </li>\u000a        <li id=\"rulesNav\" class=\"nav-item\" role=\"presentation\">\u000a          <button aria-selected=\"false\" aria-controls=\"rulesTab\" role=\"tab\" type=\"button\" data-bs-target=\"#rulesTab\" data-bs-toggle=\"tab\" class=\"nav-link\">Target rules</button>\u000a        </li>\u000a        <li id=\"complianceNav\" class=\"nav-item\" role=\"presentation\">\u000a          <button aria-selected=\"false\" aria-controls=\"complianceTab\" role=\"tab\" type=\"button\" data-bs-target=\"#complianceTab\" data-bs-toggle=\"tab\" class=\"nav-link\" id=\"complianceLinkTab\">Compliance</button>\u000a        </li>\u000a      </ul>\u000a    </div>\u000a    <div id=\"notification\"></div>\u000a    \u000a    <div class=\"main-details\">\u000a      \u000a        <div class=\"row\">\u000a          <div class=\"col\">\u000a            \u000a          </div>\u000a        </div>\u000a      \u000a      <div class=\"tab-content\">\u000a        <div class=\"tab-pane active\" id=\"directiveInfo\">\u000a          <div class=\"row\">\u000a            <div class=\"col-sm-12 col-md-6 col-xl-7\">\u000a              <div id=\"nameField\" class=\"row wbBaseField form-group \">\u000a      <label for=\"F1669402744224K03G5M\" class=\"col-sm-12 wbBaseFieldLabel\"><span>Name</span> </label>\u000a      <div class=\"col-sm-12\">\u000a        <input name=\"F16694027442251M1YGX\" type=\"text\" value=\"Several packages\" id=\"F1669402744224K03G5M\" class=\"form-control\">\u000a        \u000a        \u000a      </div>\u000a    </div>\u000a              <div id=\"tagField\">\u000a    <div id=\"tags-app\"></div>\u000a    <div id=\"directiveTags\"><textarea id=\"tags-result\" name=\"F16694027442261BULKZ\"></textarea></div>\u000a  </div>\u000a              <div id=\"shortDescriptionField\" class=\"row wbBaseField form-group \">\u000a      <label for=\"F1669402744227PLWZND\" class=\"col-sm-12 wbBaseFieldLabel\"><span class=\"fw-normal\">Short description</span> </label>\u000a      <div class=\"col-sm-12\">\u000a        <input name=\"F16694027442280W3DCM\" type=\"text\" value=\"\" id=\"F1669402744227PLWZND\" class=\"form-control\">\u000a        \u000a        \u000a      </div>\u000a    </div>\u000a              <div id=\"longDescriptionFieldMarkdownContainer\">\u000a                <label class=\"fw-normal\">Description\u000a                  <i id=\"lift-event-js-F1669402744290VJBBR0\" title=\"Edit description\" class=\"fa fa-pencil text-primary cursorPointer half-opacity edit-description-icon\"></i>\u000a                </label>\u000a                <div class=\"markdown\">\u000a                  <div id=\"longDescriptionFieldMarkdown\"></div>\u000a                  <p class=\"nodisplay half-opacity\" id=\"longDescriptionFieldMarkdownEmpty\">No description defined, click on <i id=\"lift-event-js-F1669402744291DNW5JM\" class=\"fa fa-pencil text-primary cursorPointer half-opacity\"></i> to edit </p>\u000a                </div>\u000a              </div>\u000a              <div class=\"d-flex visually-hidden\" id=\"longDescriptionFieldContainer\">\u000a                <div id=\"longDescriptionField\" class=\"row wbBaseField form-group col-6 pe-2\">\u000a      <label for=\"F1669402744229XOYYEV\" class=\" wbBaseFieldLabel\"><span class=\"fw-normal\">Description</span> <i id=\"lift-event-js-F1669402744292IYVVTG\" class=\"fa fa-check text-success cursorPointer half-opacity\" title=\"Valid description\"></i> <i id=\"lift-event-js-F1669402744293EU0ERX\" class=\"fa fa-eye-slash text-primary cursorPointer half-opacity\" title=\"Show/hide preview\"></i></label>\u000a      <div class=\"\">\u000a        <textarea name=\"F16694027442305LBYVH\" id=\"F1669402744229XOYYEV\" class=\"form-control\" rows=\"15\"></textarea>\u000a        \u000a        \u000a      </div>\u000a    </div>\u000a                <div class=\"col-md-6 ps-2\" id=\"longDescriptionFieldMarkdownPreviewContainer\">\u000a                  <label class=\"fw-normal\">Preview</label>\u000a                  <div class=\"markdown\" id=\"longDescriptionFieldPreviewMarkdown\"></div>\u000a                </div>\u000a              </div>\u000a\u000a              <div id=\"showTechniqueDescription\" class=\"directiveTechnicalInfo\"><button id=\"lift-event-js-F1669402744294ANUWYA\" type=\"button\" class=\"btn btn-technical-details btn-default\">technique description</button></div>\u000a              <div class=\"markdown\" id=\"techniqueDescriptionPanel\" style=\"display:none\">\u000a                <div id=\"techniqueDescription\">This technique operates on individual packages.\u000a\u000a  It will ensure that the defined packages are in the desired state (installed or removed) using the appropriate package manager.</div>\u000a              </div>\u000a\u000a              <div id=\"priority\" class=\"row wbBaseField form-group mt-3\">\u000a      <label for=\"F1669402744231JG3V5M\" class=\"col-sm-12 wbBaseFieldLabel\"><div>\u000a          Priority\u000a          <span>\u000a            <span class=\"ruddericon fa fa-question-circle\" data-bs-toggle=\"tooltip\" title=\"&#x000a;&lt;div>&#x000a;              &lt;h4> Priority &lt;/h4>&#x000a;              &lt;p>Priority has two uses depending if the technique from which that directive is derived is &lt;b>Unique&lt;/b> or not.&lt;/p>&#x000a;              &lt;p>Unique directives can be applied only once (for example Time Settings), so only the highest priority will be applied.&lt;/p>&#x000a;              &lt;p>For &lt;b>non-unique&lt;/b> directives, priority is used to choose the order of the directive application when applicable. The&#x000a;                highest priority directive comes first.&lt;/p>&#x000a;              &lt;p>Note that overriding variable definitions are the ones coming last and so, the used value will be the one with the lowest priority.&lt;/p>&#x000a;              &lt;p>More information is available in &lt;a href=&quot;https://docs.rudder.io/reference/current/usage/advanced_configuration_management.html#_special_use_case_overriding_generic_variable_definition&quot;>documentation about ordering directive application&lt;/a>.&lt;/p>&#x000a;            &lt;/div>&#x000a;\"></span>\u000a          </span>\u000a        </div> </label>\u000a      <div class=\"col-sm-12\">\u000a        <select name=\"F1669402744232MUKKFL\" id=\"F1669402744231JG3V5M\" class=\"form-select\"><option value=\"ZSDU22MU12UVFKK0L0AD\">Highest</option><option value=\"5ESGPWV3ACKRZJBUO13A\">+4</option><option value=\"SYBLQDU0TPUDXTS4BIHN\">+3</option><option value=\"R3LI5TOYVY2DNOYODGFU\">+2</option><option value=\"CGGRNAWULCKDLXIFGLS1\">+1</option><option selected=\"selected\" value=\"G5RURLNKJTJ0EC3UQKDU\">Default</option><option value=\"HVIFPHJVJJBTXDMBKHTU\">-1</option><option value=\"BLV42V1ZCMF0EUPCEKU0\">-2</option><option value=\"XIX3YMXKGVCDBWQFERCC\">-3</option><option value=\"VBGIIF14LL0UP5EBES1V\">-4</option><option value=\"G0HI5QV0QC5K5XSP2TVR\">Lowest</option></select>\u000a        \u000a        \u000a      </div>\u000a    </div>\u000a              <div class=\"wbBaseField form-group\">\u000a                <label id=\"policyModesLabel\" class=\"wbBaseFieldLabel\">\u000a      Policy mode\u000a      <span>\u000a        <span class=\"ruddericon fa fa-question-circle\" data-bs-toggle=\"tooltip\" title=\"&#x000a;&lt;div>&#x000a;          &lt;h4>Policy mode&lt;/h4>&#x000a;          &lt;p>Configuration rules in Rudder can operate in one of two modes:&lt;/p>&#x000a;          &lt;ol>&#x000a;            &lt;li>&lt;b>Audit&lt;/b>: the agent will examine configurations and report any differences, but will not make any changes&lt;/li>&#x000a;            &lt;li>&lt;b>Enforce&lt;/b>: the agent will make changes to fix any configurations that differ from your directives&lt;/li>&#x000a;          &lt;/ol>&#x000a;          &lt;p>&#x000a;            By default all nodes and all directives operate in the global default mode defined in&#x000a;            &lt;b> Settings&lt;/b>, which is currently &lt;b>enforce&lt;/b>.&#x000a;          &lt;/p>&#x000a;          &lt;div>&#x000a;        You may override the agent policy mode on this directive.&#x000a;        If set to &lt;b>Audit&lt;/b> this directive will never be enforced.&#x000a;        If set to &lt;b>Enforce&lt;/b> this directive will appply necessary changes except on nodes with a &lt;b>Verify&lt;/b> override setting.&#x000a;      &lt;/div>&#x000a;        &lt;/div>&#x000a;\"></span>\u000a      </span>\u000a    </label>\u000a                <div id=\"policyModes\" class=\"row wbBaseField form-group \">\u000a      <label for=\"F1669402744233I4STI5\" class=\"visually-hidden wbBaseFieldLabel\"><span class=\"fw-normal\">Policy Mode</span> </label>\u000a      <div class=\"col-sm-12\">\u000a        <div id=\"F1669402744233I4STI5\" class=\"checkbox-group policymode-group\">\u000a    <label class=\"radio-inline\">\u000a            <input checked=\"checked\" class=\"radio\" type=\"radio\" name=\"F16694027442342CLNDN\" value=\"global\">\u000a            <span class=\"radioTextLabel\"><span class=\"global-btn\">Global mode (<span class=\"global-mode enforce\"></span>)</span></span>\u000a        </label><label class=\"radio-inline\">\u000a            <input class=\"radio\" type=\"radio\" name=\"F16694027442342CLNDN\" value=\"audit\">\u000a            <span class=\"radioTextLabel\"><span class=\"audit-btn\">Audit</span></span>\u000a        </label><label class=\"radio-inline\">\u000a            <input class=\"radio\" type=\"radio\" name=\"F16694027442342CLNDN\" value=\"enforce\">\u000a            <span class=\"radioTextLabel\"><span class=\"enforce-btn\">Enforce</span></span>\u000a        </label>\u000a  </div>\u000a        \u000a        \u000a      </div>\u000a    </div>\u000a              </div>\u000a              <div id=\"version\" class=\"row wbBaseField form-group \">\u000a      <label for=\"F1669402744218VTDKPZ\" class=\"col-sm-12 text-bold wbBaseFieldLabel\"><span class=\"fw-normal\">Technique version</span> </label>\u000a      <div class=\"version-group\">\u000a        <select name=\"F16694027442193ODRVK\" id=\"F1669402744218VTDKPZ\" class=\"form-select\"><option value=\"FDC3EYIGXQTWOMQOYETJ\">1.0 (deprecated)</option><option selected=\"selected\" value=\"XEWXSQKNMBPKARMM2IPG\">1.1 </option><option value=\"IDJ1VCBMJ4J5ZCWXR5KP\">1.2 (deprecated)</option><option value=\"UW5SPUYCPERFFLSQUTX3\">1.3 </option></select>\u000a        \u000a        \u000a      </div>\u000a    \u000a      <input value=\"Migrate\" class=\"btn btn-default\" id=\"migrationButton\" type=\"submit\" name=\"zF1669402744235VWUIUY\">\u000a    </div>\u000a              <div id=\"showTechnical\" class=\"directiveTechnicalInfo\"><button id=\"lift-event-js-F1669402744295MU1KUU\" type=\"button\" class=\"btn btn-technical-details btn-default\">Technical details</button></div>\u000a              <div class=\"well\" style=\"display:none\" id=\"technicalDetails\">\u000a\u000a                <table>\u000a                  <tbody><tr>\u000a                    <td><label>Directive ID:</label></td>\u000a                    <td id=\"directiveID\">1b2fb9bb-2461-49a9-a40c-9050a4b7d51b</td>\u000a                  </tr>\u000a                  <tr>\u000a                    <td><label>Technique ID:</label></td>\u000a                    <td id=\"techniqueID\">packageManagement</td>\u000a                  </tr>\u000a                  <tr>\u000a                    <td><label>Technique name:</label></td>\u000a                    <td id=\"techniqueName\"><a href=\"/rudder-web/secure/administration/techniqueLibraryManagement/packageManagement\">\u000a              Packages\u000a              version\u000a              1.1\u000a            </a></td>\u000a                  </tr>\u000a                  <tr>\u000a                    <td><label>Technique unicity:</label></td>\u000a                    <td id=\"isSingle\"><span>\u000a      Multi instance: Several Directives based on this Technique can be applied on any given node\u000a    </span></td>\u000a                  </tr>\u000a                </tbody></table>\u000a              </div>\u000a            </div>\u000a            <div class=\"col-sm-12 col-md-6 col-xl-5\">\u000a              <div class=\"callout-fade callout-warning visually-hidden\" role=\"alert\" id=\"deprecation-warning\">\u000a                <div class=\"marker\">\u000a                  <span class=\"fa fa-info-circle\"></span>\u000a                </div>\u000a                <h4>Technique version deprecated</h4>\u000a                <div>This Directive uses a version of this Technique that is deprecated: <span id=\"deprecation-message\"></span>.<br>\u000a                  <span id=\"migrate-button\"></span>\u000a                </div>\u000a              </div>\u000a              <div id=\"paramInfo\"></div>\u000a            </div>\u000a          </div>\u000a        </div>\u000a        <div class=\"tab-pane\" id=\"parametersTab\">\u000a          <div id=\"parameters\" class=\"variableDefinition\">\u000a      <table class=\"directiveVarDef\">\u000a        <tr id=\"F1669402744200QKVUPZ\"><td colspan=\"3\">\u000a      <div class=\"directiveGroup\"><div id=\"F1669402744236E4FXEP\" class=\"groupFieldset foldableSection unfoldedSection\">\u000a              <div id=\"lift-event-js-F1669402744296ZG3HGJ\" class=\"section-title\">Package #1</div>\u000a              <table class=\"directiveGroupDef\">\u000a      <tbody>\u000a        <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package name (or path)</b> <span class=\"fa fa-question-circle icon-info\" data-bs-toggle=\"tooltip\" data-bs-placement=\"bottom\" title=\"You can use a path to install a local package, when using the &quot;present&quot; state.\"></span> </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744238XGR2OH\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744238XGR2OH-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744297WUK4D2\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744298BNKEUI\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F1669402744299JDK2QJ\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744238XGR2OH-value\" name=\"F1669402744239SW02ST\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package state</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744240JWJMHZ\" value=\"present\">\u000a                Present\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744240JWJMHZ\" value=\"absent\">\u000a                Absent\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744244IHKWMX\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744300RY5DZY\" class=\"section-title\">Section: Package version</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package version</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744241HWINR4\" value=\"any\">\u000a                Any version\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744241HWINR4\" value=\"latest\">\u000a                Latest available version\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744241HWINR4\" value=\"specific\">\u000a                This specific version:\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specific package version  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744242DXCSHK\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744242DXCSHK-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744301SFWD1F\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744302UCJRDY\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F16694027443030KDMB3\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744242DXCSHK-value\" name=\"F1669402744243YGPG0K\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744249OQWFWI\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744304QMI2SS\" class=\"section-title\">Section: Package architecture</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package architecture</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744246PYOD4M\" value=\"default\">\u000a                Default architecture\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744246PYOD4M\" value=\"specific\">\u000a                This specific architecture:\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specific package architecture  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744247PHOWZP\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744247PHOWZP-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744305NV5IA4\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744306AXGCS5\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F16694027443073AV0ZI\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744247PHOWZP-value\" name=\"F1669402744248OLPJSO\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F16694027442555ERHSF\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744308LO3YZW\" class=\"section-title\">Section: Package manager</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package manager</b> <span class=\"fa fa-question-circle icon-info\" data-bs-toggle=\"tooltip\" data-bs-placement=\"bottom\" title=\"This can be used to override auto-detection of the package manager.\"></span> </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><select name=\"F1669402744251GNKDHU\"><option selected=\"selected\" value=\"default\">Default package manager</option><option value=\"yum\">yum/rpm</option><option value=\"apt\">apt/dpkg</option><option value=\"zypper\">zypper/rpm</option><option value=\"pkg\">pkg</option></select></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Allow untrusted packages (only with apt for now)</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><input type=\"checkbox\" name=\"F1669402744252PQNSBL\" value=\"true\"><input type=\"hidden\" name=\"F1669402744252PQNSBL\" value=\"false\"></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specify options to pass to the package manager (only with apt for now)  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744253JD5PWY\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744253JD5PWY-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F16694027443093IU5ZB\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F16694027443104JRHCO\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F166940274431120X2ZC\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744253JD5PWY-value\" name=\"F16694027442544TDJSG\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744259GAWW2H\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744312JC1PD4\" class=\"section-title\">Section: Post-modification script</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span>Command to run after changes on this package  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744257FDGDBN\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744257FDGDBN-controller\" class=\"input-group input-group-sm text-section d-table col-12\">\u000a      <div class=\"btn-group btn-group-sm input-feature\">\u000a        <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a        <ul class=\"dropdown-menu\">\u000a          <li><a id=\"lift-event-js-F1669402744313DG10RY\" class=\"dropdown-item\">Text </a></li>\u000a          <li><a id=\"lift-event-js-F1669402744314S5LURG\" class=\"dropdown-item\">JS   </a></li>\u000a        </ul>\u000a      </div>\u000a      <textarea id=\"lift-event-js-F1669402744315BLIBZM\" class=\"form-control textarea monospace-font w-100 mx-0\"></textarea>\u000a    <textarea style=\"display:none;\" id=\"F1669402744257FDGDBN-value\" name=\"F1669402744258VDB0D1\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr>\u000a      </tbody>\u000a    </table>\u000a      <div class=\"textright directiveDeleteGroup\"><input id=\"lift-event-js-F16694027443163KZX1V\" value=\"Delete \u0027Package #1\u0027\" class=\"btn btn-danger\" =\"\" type=\"submit\" name=\"zF1669402744261JQZVYA\"></div>\u000a    \u000a            </div><div id=\"F16694027442623BDIAD\" class=\"groupFieldset foldableSection unfoldedSection\">\u000a              <div id=\"lift-event-js-F16694027443172MEVJM\" class=\"section-title\">Package #2</div>\u000a              <table class=\"directiveGroupDef\">\u000a      <tbody>\u000a        <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package name (or path)</b> <span class=\"fa fa-question-circle icon-info\" data-bs-toggle=\"tooltip\" data-bs-placement=\"bottom\" title=\"You can use a path to install a local package, when using the &quot;present&quot; state.\"></span> </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744264BCSIWY\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744264BCSIWY-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744318JUA20T\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744319FK5VJQ\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F1669402744320OLHE5N\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744264BCSIWY-value\" name=\"F1669402744265UUBJWO\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package state</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744266RRPURJ\" value=\"present\">\u000a                Present\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744266RRPURJ\" value=\"absent\">\u000a                Absent\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744270Z445C3\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F16694027443213YFWCP\" class=\"section-title\">Section: Package version</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package version</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744267SLNK4C\" value=\"any\">\u000a                Any version\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744267SLNK4C\" value=\"latest\">\u000a                Latest available version\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744267SLNK4C\" value=\"specific\">\u000a                This specific version:\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specific package version  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744268SQC0OC\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744268SQC0OC-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744322ALOOAO\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744323RT35E3\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F16694027443245KIG0V\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744268SQC0OC-value\" name=\"F16694027442695S3AL4\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744275H3RKZX\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744325GTIGF2\" class=\"section-title\">Section: Package architecture</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package architecture</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><div><div class=\"radio\">\u000a              <label>\u000a                <input checked=\"checked\" type=\"radio\" name=\"F1669402744272LYCKJL\" value=\"default\">\u000a                Default architecture\u000a              </label>\u000a            </div><div class=\"radio\">\u000a              <label>\u000a                <input type=\"radio\" name=\"F1669402744272LYCKJL\" value=\"specific\">\u000a                This specific architecture:\u000a              </label>\u000a            </div></div></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specific package architecture  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744273GR1XDC\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744273GR1XDC-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744326X1AWRE\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744327LU34XN\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F1669402744328S3X0R0\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744273GR1XDC-value\" name=\"F1669402744274W2BNDN\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F16694027442812HNQKR\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744329TPAD0S\" class=\"section-title\">Section: Package manager</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Package manager</b> <span class=\"fa fa-question-circle icon-info\" data-bs-toggle=\"tooltip\" data-bs-placement=\"bottom\" title=\"This can be used to override auto-detection of the package manager.\"></span> </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><select name=\"F1669402744277GIK2MB\"><option selected=\"selected\" value=\"default\">Default package manager</option><option value=\"yum\">yum/rpm</option><option value=\"apt\">apt/dpkg</option><option value=\"zypper\">zypper/rpm</option><option value=\"pkg\">pkg</option></select></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span><b>Allow untrusted packages (only with apt for now)</b>  </span>\u000a      </td>\u000a      <td class=\"directiveVarValue\"><input type=\"checkbox\" name=\"F1669402744278FRXD20\" value=\"true\"><input type=\"hidden\" name=\"F1669402744278FRXD20\" value=\"false\"></td>\u000a    </tr><tr>\u000a      <td colspan=\"2\">\u000a      <span>Specify options to pass to the package manager (only with apt for now)  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F1669402744279JGP0LU\" class=\"directive-input-group\">\u000a    <div id=\"F1669402744279JGP0LU-controller\" class=\"input-group input-group-sm text-section col-12\">\u000a      <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a      <ul class=\"dropdown-menu\">\u000a        <li><a id=\"lift-event-js-F1669402744330P4MCVI\" class=\"dropdown-item\">Text </a></li>\u000a        <li><a id=\"lift-event-js-F1669402744331EOCNVC\" class=\"dropdown-item\">JS   </a></li>\u000a      </ul>\u000a      <input id=\"lift-event-js-F1669402744332CMIG2X\" type=\"text\" class=\"form-control monospace-font\">\u000a    <textarea style=\"display:none;\" id=\"F1669402744279JGP0LU-value\" name=\"F1669402744280R5WMI2\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr><tr><td colspan=\"3\">\u000a        <div id=\"F1669402744285EYSKCF\" class=\"sectionFieldset foldableSection unfoldedSection\">\u000a         <div id=\"lift-event-js-F1669402744333NR3HBQ\" class=\"section-title\">Section: Post-modification script</div>\u000a          <table class=\"directiveSectionDef\">\u000a              <tr>\u000a      <td colspan=\"2\">\u000a      <span>Command to run after changes on this package  <span> - <small class=\"greyscala\">Optional</small></span></span>\u000a      </td>\u000a      <td class=\"directiveVarValue\">\u000a  <div id=\"F16694027442834UWZHX\" class=\"directive-input-group\">\u000a    <div id=\"F16694027442834UWZHX-controller\" class=\"input-group input-group-sm text-section d-table col-12\">\u000a      <div class=\"btn-group btn-group-sm input-feature\">\u000a        <button type=\"button\" data-bs-toggle=\"dropdown\" class=\"btn btn-default lh-1 dropdown-toggle\"> <span class=\"prefix-selected\">Text</span> <span class=\"caret\"></span></button>\u000a        <ul class=\"dropdown-menu\">\u000a          <li><a id=\"lift-event-js-F16694027443342GS4ME\" class=\"dropdown-item\">Text </a></li>\u000a          <li><a id=\"lift-event-js-F16694027443352WIKF3\" class=\"dropdown-item\">JS   </a></li>\u000a        </ul>\u000a      </div>\u000a      <textarea id=\"lift-event-js-F166940274433653RWYT\" class=\"form-control textarea monospace-font w-100 mx-0\"></textarea>\u000a    <textarea style=\"display:none;\" id=\"F16694027442834UWZHX-value\" name=\"F1669402744284L2WBYO\"></textarea></div>\u000a  </div>\u000a</td>\u000a    </tr>\u000a          </table>\u000a        </div>\u000a      </td></tr>\u000a      </tbody>\u000a    </table>\u000a      <div class=\"textright directiveDeleteGroup\"><input id=\"lift-event-js-F1669402744337KFDTKR\" value=\"Delete \u0027Package #2\u0027\" class=\"btn btn-danger\" =\"\" type=\"submit\" name=\"zF1669402744287D4ZYCG\"></div>\u000a    \u000a            </div></div>\u000a      <div> \u000a        <div class=\"directiveAddGroup\"><input id=\"lift-event-js-F1669402744338JNVNHT\" value=\"Add another \u0027Package\u0027\" class=\"btn new-icon btn-success btn-outline\" type=\"submit\" name=\"zF1669402744288VYKLU3\"></div>\u000a       </div>\u000a    </td></tr>\u000a      </table>\u000a    </div>\u000a        </div>\u000a        <div class=\"tab-pane\" id=\"rulesTab\">\u000a          <div id=\"directiveRulesTab\"><div>\u000a          <div class=\"row col-small-padding\">\u000a            <div class=\"col-sm-12 col-xl-3 col-lg-4\">\u000a              <div class=\"box\">\u000a                <div class=\"box-header with-border\">\u000a                  <h3 class=\"box-title\"><i class=\"fa fa-filter\" aria-hidden=\"true\"></i>Filters</h3>\u000a                </div>\u000a                <div class=\"box-body\">\u000a                  <div class=\"row\">\u000a                    <div class=\"col-sm-12\">\u000a                      <div id=\"showFiltersRules\" class=\"filters\">\u000a                        <div>\u000a                          <div class=\"filterTag\">\u000a                            <div class=\"input-group search-addon\">\u000a                              <label for=\"searchStr\" class=\"input-group-text search-addon\"><span class=\"ion ion-search\"></span></label>\u000a                              <input type=\"text\" id=\"searchStr\" class=\"input-sm form-control\" placeholder=\"Filter\">\u000a                            </div>\u000a                            <!--\u000a                            <div class=\"form-group\">\u000a                              <label>Tags</label>\u000a                              <div class=\"input-group\">\u000a                                <div id=\"ruleFilterKeyInput\" angucomplete-alt=\"\" placeholder=\"key\" minlength=\"1\" maxlength=\"100\"\u000a                                     pause=\"500\" selected-object=\"selectTag\" remote-url=\"{{contextPath}}/secure/api/completion/tags/rule/key/\"\u000a                                     remote-url-data-field=\"data\" title-field=\"value\" input-class=\"form-control input-sm input-key\"\u000a                                     match-class=\"highlight\" input-changed=\"updateTag\" override-suggestions=\"true\">\u000a                                </div>\u000a                                <span class=\"input-group-text addon-json\">=</span>\u000a                                <div id=\"ruleFilterValueInput\" angucomplete-alt=\"\" placeholder=\"value\" minlength=\"1\" maxlength=\"100\"\u000a                                     pause=\"500\" selected-object=\"selectValue\" remote-url=\"{{contextPath}}/secure/api/completion/tags/rule/value/{{newTag.key}}/\"\u000a                                     remote-url-data-field=\"data\" title-field=\"value\" input-class=\"form-control input-sm input-value\" match-class=\"highlight\"\u000a                                     input-changed=\"updateValue\" override-suggestions=\"true\">\u000a                                </div>\u000a                                <button type=\"button\" ng-click=\"addTag(newTag)\" class=\"btn btn-default btn-sm\" ng-disabled=\" (isEmptyOrBlank(newTag.key) &amp;&amp; isEmptyOrBlank(newTag.value)); \">\u000a                                  <span class=\"fa fa-plus\"></span>\u000a                                </button>\u000a                              </div>\u000a                            </div>\u000a                            <div class=\"only-tags\">\u000a                              <button class=\"btn btn-default btn-xs pull-right\" ng-click=\"clearAllTags()\" ng-hide=\"tags.length==0\">\u000a                                Clear all tags\u000a                                <i class=\"fa fa-trash\" aria-hidden=\"true\"></i>\u000a                              </button>\u000a                            </div>\u000a                            <div class=\"tags-container\">\u000a                              <div class=\"btn-group btn-group-xs\" role=\"group\"  ng-repeat=\"tag in tags track by $index\">\u000a                                <button class=\"btn btn-default tags-label\" ng-class=\"{\u0027onlyKey\u0027:only.key, \u0027onlyValue\u0027:only.value, \u0027already-exist\u0027:tag.alreadyExist}\" ng-click=\"modifyTag(tag,\u0027ruleFilterKeyInput\u0027,\u0027ruleFilterValueInput\u0027)\" >\u000a                                  <i class=\"fa fa-tag\"></i>\u000a                                  <span class=\"tag-key\">\u000a                                    <span ng-show=\"tag.key!=\u0027\u0027\">{{{{tag.key}}}}</span>\u000a                                    <i class=\u0027fa fa-asterisk\u0027 aria-hidden=\u0027true\u0027 ng-show=\"tag.key==\u0027\u0027\"></i>\u000a                                  </span>\u000a                                  <span class=\"tag-separator\">=</span>\u000a                                  <span class=\"tag-value\">\u000a                                    <span ng-show=\"tag.value!=\u0027\u0027\">{{{{tag.value}}}}</span>\u000a                                    <i class=\u0027fa fa-asterisk\u0027 aria-hidden=\u0027true\u0027 ng-show=\"tag.value==\u0027\u0027\"></i>\u000a                                  </span>\u000a                                </button>\u000a                                <button type=\"button\" class=\"btn btn-default\" ng-click=\"removeTag($index)\">\u000a                                  <span class=\"fa fa-times\"></span>\u000a                                </button>\u000a                              </div>\u000a                            </div>\u000a                            -->\u000a                          </div>\u000a                        </div>\u000a                      </div>\u000a                    </div>\u000a                  </div>\u000a                </div>\u000a              </div>\u000a              <div class=\"box\">\u000a                <div class=\"box-header with-border\">\u000a                  <h3 class=\"box-title\"><i class=\"fa fa-list\" aria-hidden=\"true\"></i>Categories</h3>\u000a                  <div class=\"box-tools pull-right\">\u000a                    \u000a                      \u000a                    \u000a                  </div>\u000a                </div>\u000a                <div class=\"box-body\" id=\"boxTreeRules\">\u000a                  <div class=\"row\">\u000a                    <div class=\"col-sm-12\" id=\"categoryTreeParent\">\u000a                      <div id=\"treeParent\">\u000a      <ul class=\"form-group list-sm\">\u000a      <li class=\"rudder-form\">\u000a        <div class=\"input-group\">\u000a          <label for=\"includeCheckbox\" class=\"input-group-text\" id=\"includeSubCategory\">\u000a            <input checked=\"checked\" id=\"includeCheckbox\" type=\"checkbox\">\u000a            <label class=\"label-radio\" for=\"includeCheckbox\">\u000a              <span class=\"ion ion-checkmark-round\"></span>\u000a            </label>\u000a            <span class=\"ion ion-checkmark-round check-icon\"></span>\u000a          </label>\u000a          <label for=\"includeCheckbox\" class=\"form-control\">\u000a            Display Rules from subcategories\u000a          </label>\u000a        </div>\u000a      </li>\u000a    </ul>\u000a      <div id=\"categoryTree\">\u000a        <ul><li id=\"rootRuleCategory\" data-jstree=\"{ &quot;type&quot; : &quot;category&quot; }\">\u000a      <a id=\"lift-event-js-F166940274433921SMU3\"><span id=\"rootRuleCategoryName\" title=\"&lt;div>&#x000a;&lt;h3>Rules&lt;/h3>&#x000a;&lt;div>This is the main category of Rules&lt;/div>&#x000a;&lt;/div>\" class=\"treeRuleCategoryName\">\u000a            <input style=\"margin : 2px 5px 0px 2px;\" id=\"rootRuleCategoryCheckbox\" type=\"checkbox\">Rules\u000a          </span></a>\u000a      <ul>\u000a        <li id=\"50f6894a-e7eb-4153-831b-b9b4e0efa2ab\" data-jstree=\"{ &quot;type&quot; : &quot;category&quot; }\">\u000a      <a id=\"lift-event-js-F1669402744340001MRY\"><span id=\"50f6894a-e7eb-4153-831b-b9b4e0efa2abName\" class=\"treeRuleCategoryName\">\u000a            <input style=\"margin : 2px 5px 0px 2px;\" id=\"50f6894a-e7eb-4153-831b-b9b4e0efa2abCheckbox\" type=\"checkbox\">foo\u000a          </span></a>\u000a      <ul>\u000a        \u000a      </ul>\u000a    </li><li id=\"4f647d67-5527-41f2-85f3-d8169f640374\" data-jstree=\"{ &quot;type&quot; : &quot;category&quot; }\">\u000a      <a id=\"lift-event-js-F1669402744341GDGZUD\"><span id=\"4f647d67-5527-41f2-85f3-d8169f640374Name\" title=\"&lt;div>&#x000a;&lt;h3>Some more cool name&lt;/h3>&#x000a;&lt;div>bla bla bala&lt;/div>&#x000a;&lt;/div>\" class=\"treeRuleCategoryName\">\u000a            <input style=\"margin : 2px 5px 0px 2px;\" id=\"4f647d67-5527-41f2-85f3-d8169f640374Checkbox\" type=\"checkbox\">Some more cool name\u000a          </span></a>\u000a      <ul>\u000a        \u000a      </ul>\u000a    </li>\u000a      </ul>\u000a    </li>\u000a  </ul>\u000a      </div>\u000a    </div>\u000a                    </div>\u000a                  </div>\u000a                </div>\u000a              </div>\u000a            </div>\u000a            <div class=\"col-xl-9 col-sm-12 col-lg-8\">\u000a              <div class=\"box\">\u000a                <div class=\"box-header with-border\">\u000a                  <h3 class=\"box-title\"><i class=\"fa fa-gears\" aria-hidden=\"true\"></i>Rules</h3>\u000a                  <div class=\"box-tools pull-right\">\u000a                    <button class=\"btn btn-box-tool btn-default toggleTabFilter updateTable btn-sm\" id=\"updateRuleTable\">Refresh<span class=\"fa fa-refresh\"></span></button>\u000a                    \u000a                      \u000a                    \u000a                  </div>\u000a                </div>\u000a                <div class=\"box-body\">\u000a                  <div class=\"row\">\u000a                    <div class=\"col-sm-12\" id=\"view\">\u000a                      <div>\u000a      <div id=\"rules_grid_zone\">\u000a          <div id=\"modal_rules_grid_zone\" class=\"nodisplay\">\u000a            <div id=\"popup_rules_grid_zone\"></div>\u000a          </div>\u000a          <table id=\"grid_rules_grid_zone\" class=\"display\" cellspacing=\"0\"> </table>\u000a          <div class=\"grid_rules_grid_zone_pagination, paginatescala\">\u000a            <div id=\"grid_rules_grid_zone_paginate_area\"></div>\u000a          </div>\u000a        </div>\u000a    </div>\u000a                    </div>\u000a                  </div>\u000a                </div>\u000a              </div>\u000a            </div>\u000a          </div>\u000a        </div></div>\u000a        </div>\u000a        <div class=\"tab-pane tab-app\" id=\"complianceTab\">\u000a          <div id=\"directiveComplianceApp\"></div>\u000a        </div>\u000a      </div>\u000a    </div>\u000a  </div></form>\u000a  \u000a  <div tabindex=\"-1\" class=\"modal fade\" id=\"removeActionDialog\"></div>\u000a  <div tabindex=\"-1\" class=\"modal fade\" id=\"disableActionDialog\"></div>\u000a  <div tabindex=\"-1\" class=\"modal fade\" id=\"confirmUpdateActionDialog\"></div>\u000a  <div tabindex=\"-1\" class=\"modal fade\" id=\"createCloneDirectivePopup\"></div>\u000a\u000a  </div>\u000a"); lift.onEvent("F1669402744289P31MNX","submit",function(event) {lift.ajax(jQuery('#'+"F1669402744289P31MNX").serialize(), null, null, "javascript");return false;;});
lift.onEvent("removeAction","click",function(event) {lift.setUriSuffix('zF1669402744220OSJXZ1=_'); return true;;});
lift.onEvent("desactivateAction","click",function(event) {lift.setUriSuffix('zF1669402744221AMXF1W=_'); return true;;});
lift.onEvent("clone","click",function(event) {lift.ajax("F1669402744222URE013=true", null, null, null); return false;;});
lift.onEvent("policyConfigurationSave","click",function(event) {lift.setUriSuffix('zF16694027442230QO151=_'); return true;;});
lift.onEvent("lift-event-js-F1669402744290VJBBR0","click",function(event) {toggleMarkdownEditor('longDescriptionField');});
lift.onEvent("lift-event-js-F1669402744290VJBBR0","mouseout",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744290VJBBR0","mouseenter",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744291DNW5JM","click",function(event) {toggleMarkdownEditor('longDescriptionField');});
lift.onEvent("lift-event-js-F1669402744291DNW5JM","mouseout",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744291DNW5JM","mouseenter",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744292IYVVTG","mouseenter",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744292IYVVTG","mouseout",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744292IYVVTG","click",function(event) {toggleMarkdownEditor('longDescriptionField');});
lift.onEvent("lift-event-js-F1669402744293EU0ERX","mouseenter",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744293EU0ERX","mouseout",function(event) {toggleOpacity(this);});
lift.onEvent("lift-event-js-F1669402744293EU0ERX","click",function(event) {togglePreview(this, 'longDescriptionField');});
lift.onEvent("lift-event-js-F1669402744294ANUWYA","click",function(event) {$('#techniqueDescriptionPanel').toggle(400);$(this).toggleClass('opened');;});
lift.onEvent("migrationButton","click",function(event) {lift.setUriSuffix('zF1669402744235VWUIUY=_'); return true;;});
lift.onEvent("lift-event-js-F1669402744295MU1KUU","click",function(event) {$('#technicalDetails').toggle(400);$(this).toggleClass('opened');;});
lift.onEvent("lift-event-js-F1669402744296ZG3HGJ","click",function(event) {F1669402744237VOVOZP();});
lift.onEvent("lift-event-js-F1669402744297WUK4D2","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744298BNKEUI","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F1669402744299JDK2QJ","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744300RY5DZY","click",function(event) {F1669402744245KBRJZH();});
lift.onEvent("lift-event-js-F1669402744301SFWD1F","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744302UCJRDY","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F16694027443030KDMB3","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744304QMI2SS","click",function(event) {F1669402744250BR52AL();});
lift.onEvent("lift-event-js-F1669402744305NV5IA4","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744306AXGCS5","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F16694027443073AV0ZI","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744308LO3YZW","click",function(event) {F1669402744256YMEEGO();});
lift.onEvent("lift-event-js-F16694027443093IU5ZB","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F16694027443104JRHCO","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F166940274431120X2ZC","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744312JC1PD4","click",function(event) {F1669402744260CEL0MN();});
lift.onEvent("lift-event-js-F1669402744313DG10RY","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744314S5LURG","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F1669402744315BLIBZM","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F16694027443163KZX1V","click",function(event) {lift.setUriSuffix('zF1669402744261JQZVYA=_'); return true;;});
lift.onEvent("lift-event-js-F16694027443172MEVJM","click",function(event) {F1669402744263MUN0G3();});
lift.onEvent("lift-event-js-F1669402744318JUA20T","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744319FK5VJQ","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F1669402744320OLHE5N","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F16694027443213YFWCP","click",function(event) {F1669402744271UXEC5G();});
lift.onEvent("lift-event-js-F1669402744322ALOOAO","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744323RT35E3","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F16694027443245KIG0V","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744325GTIGF2","click",function(event) {F166940274427635Y3HX();});
lift.onEvent("lift-event-js-F1669402744326X1AWRE","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744327LU34XN","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F1669402744328S3X0R0","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744329TPAD0S","click",function(event) {F16694027442824SRNVF();});
lift.onEvent("lift-event-js-F1669402744330P4MCVI","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F1669402744331EOCNVC","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F1669402744332CMIG2X","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744333NR3HBQ","click",function(event) {F1669402744286UEQBXZ();});
lift.onEvent("lift-event-js-F16694027443342GS4ME","click",function(event) {updatePrefix(this, '');});
lift.onEvent("lift-event-js-F16694027443352WIKF3","click",function(event) {updatePrefix(this, 'evaljs:');});
lift.onEvent("lift-event-js-F166940274433653RWYT","input",function(event) {updateResult(this);;});
lift.onEvent("lift-event-js-F1669402744337KFDTKR","click",function(event) {lift.setUriSuffix('zF1669402744287D4ZYCG=_'); return true;;});
lift.onEvent("lift-event-js-F1669402744338JNVNHT","click",function(event) {lift.setUriSuffix('zF1669402744288VYKLU3=_'); return true;;});
lift.onEvent("searchStr","keyup",function(event) {searchTargetRules(this);});
lift.onEvent("includeCheckbox","click",function(event) {lift.ajax('F1669402744204SKTLAV=' + this.checked, null, null, null);});
lift.onEvent("lift-event-js-F166940274433921SMU3","click",function(event) {lift.ajax("F1669402744207H1IKTJ=true", null, null, null); return false;;});
lift.onEvent("rootRuleCategoryCheckbox","click",function(event) {lift.ajax('F1669402744206VTLBO5=' + this.checked, null, null, null);});
lift.onEvent("lift-event-js-F1669402744340001MRY","click",function(event) {lift.ajax("F1669402744210PLZEKT=true", null, null, null); return false;;});
lift.onEvent("50f6894a-e7eb-4153-831b-b9b4e0efa2abCheckbox","click",function(event) {lift.ajax('F1669402744209RNJTPC=' + this.checked, null, null, null);});
lift.onEvent("lift-event-js-F1669402744341GDGZUD","click",function(event) {lift.ajax("F1669402744213JBS4BS=true", null, null, null); return false;;});
lift.onEvent("4f647d67-5527-41f2-85f3-d8169f640374Checkbox","click",function(event) {lift.ajax('F16694027442122N0FUW=' + this.checked, null, null, null);});

// <![CDATA[
jQuery(document).ready(function() {
      var main = document.getElementById("tags-app")
var initValues = {
    contextPath    : contextPath
  , hasWriteRights : hasWriteRights
  , tags           : []
  , filterId       : "directiveFilter" 
  , isEditForm     : true
  , objectType     : "directive" 
  , objectId       : "1b2fb9bb-2461-49a9-a40c-9050a4b7d51b" 
};
tagsApp = Elm.Tags.init({node: main, flags: initValues});
tagsApp.ports.updateResult.subscribe(function(result) {
  $('#tags-result').val(result);
});
tagsApp.ports.addToFilters.subscribe(function(tag) {
  if (typeof filterApp === "undefined") return false;

  filterApp.ports.addToFilter.send(tag);
});
    ;});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744238XGR2OH", "htop", "", true);
       ;});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744242DXCSHK", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744245KBRJZH() { lift.ajax('F1669402744245KBRJZH=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744247PHOWZP", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744250BR52AL() { lift.ajax('F1669402744250BR52AL=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744253JD5PWY", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744256YMEEGO() { lift.ajax('F1669402744256YMEEGO=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744257FDGDBN", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744260CEL0MN() { lift.ajax('F1669402744260CEL0MN=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
 function F1669402744237VOVOZP() { lift.ajax('F1669402744237VOVOZP=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744264BCSIWY", "vim", "", true);
       ;});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744268SQC0OC", "6.3.1", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744271UXEC5G() { lift.ajax('F1669402744271UXEC5G=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744273GR1XDC", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F166940274427635Y3HX() { lift.ajax('F166940274427635Y3HX=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F1669402744279JGP0LU", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F16694027442824SRNVF() { lift.ajax('F16694027442824SRNVF=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
       newInputText("F16694027442834UWZHX", "", "", true);
       ;});
// ]]>
;

// <![CDATA[
 function F1669402744286UEQBXZ() { lift.ajax('F1669402744286UEQBXZ=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
 function F1669402744263MUN0G3() { lift.ajax('F1669402744263MUN0G3=' + encodeURIComponent(), null, null, null) } ;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
          $("input").not("#treeSearch").keydown( function(event) {
            processKey(event , 'policyConfigurationSave')
          } ); ;});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {setTimeout(function() {
                  $('#rootRuleCategoryCheckbox').click(function (e) { e.stopPropagation(); })
                  $('#rootRuleCategoryCheckbox').prop("indeterminate",false);;}, 400);});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {setTimeout(function() {
                  $('#50f6894a-e7eb-4153-831b-b9b4e0efa2abCheckbox').click(function (e) { e.stopPropagation(); })
                  $('#50f6894a-e7eb-4153-831b-b9b4e0efa2abCheckbox').prop("indeterminate",false);;}, 400);});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {setTimeout(function() {
                  $('#4f647d67-5527-41f2-85f3-d8169f640374Checkbox').click(function (e) { e.stopPropagation(); })
                  $('#4f647d67-5527-41f2-85f3-d8169f640374Checkbox').prop("indeterminate",false);;}, 400);});
// ]]>
;

// <![CDATA[
setTimeout(function() {
          buildRuleCategoryTreeNoDnD('#categoryTree','rootRuleCategory','/rudder-web');
          $('#categoryTree').bind("move_node.jstree", function (e,data) {
            var sourceCatId = data.node.id;
            var destCatId = data.parent;
            if( destCatId ) {
              if( sourceCatId ) {
                var arg = JSON.stringify({ 'sourceCatId' : sourceCatId, 'destCatId' : destCatId });
                lift.ajax('F1669402744214JSATFM=' + encodeURIComponent(arg), null, null, null);
              } else {
                alert("Can not move that kind of object");
                $.jstree.rollback(data.rlbk);
              }
            } else {
              alert("Can not move to something else than a category");
              $.jstree.rollback(data.rlbk);
            }
          });
          initBsTooltips();;}, 50);
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {createRuleTable (
                  "grid_rules_grid_zone" 
                , []

                , true
                , false
                , false
                , false
                , function(checked) {lift.ajax('F1669402744215XN05OQ=' + encodeURIComponent(checked), null, null, null);}
                , "/rudder-web" 
                , function() {lift.ajax('F1669402744216UUEJS0=' + encodeURIComponent(null), null, null, null);}
                , false
              );
              initBsTooltips()
          ;});
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {(function() {lift.ajax('F16694027442174KDDSJ=' + encodeURIComponent(null), null, null, null);})();});
// ]]>
;

// <![CDATA[

                  var include = true;
                  var filter = "";
                  var column = 3;;
// ]]>
;

// <![CDATA[
jQuery(document).ready(function() {
activateButtonOnFormChange("policyConfiguration", "policyConfigurationSave");
setupMarkdown("", "longDescriptionField")
generateMarkdown("", "#techniqueDescription")
$('#technicalDetails').hide();
$("input").not("#treeSearch").keydown( function(event) {
  processKey(event , 'policyConfigurationSave');
} );
checkMigrationButton("1.1 ","F1669402744218VTDKPZ");
$('#F1669402744218VTDKPZ').change( function () {
  checkMigrationButton("1.1 ","F1669402744218VTDKPZ")
} );
var main = document.getElementById("directiveComplianceApp")
var initValues = {
  directiveId : "1b2fb9bb-2461-49a9-a40c-9050a4b7d51b",
  contextPath : contextPath
};
var app = Elm.Directivecompliance.init({node: main, flags: initValues});
app.ports.errorNotification.subscribe(function(str) {
  createErrorNotification(str)
});
// Initialize tooltips
app.ports.initTooltips.subscribe(function(msg) {
  setTimeout(function(){
    initBsTooltips();
  }, 400);
});
$("#complianceLinkTab").on("click", function (){
  app.ports.loadCompliance.send("");
});
if(false){
$("#complianceNav").hide();
}else{
$("#complianceNav").show();
};});
// ]]>
;;

        removeBsTooltips();
        this.window.location.hash = "#" + JSON.stringify({"directiveId":"1b2fb9bb-2461-49a9-a40c-9050a4b7d51b"})
        sessionStorage.removeItem('tags-1b2fb9bb-2461-49a9-a40c-9050a4b7d51b');
      ;
setTimeout(function() {removeBsTooltips();initBsTooltips();;}, 0);

Actions #5

Updated by François ARMAND 26 days ago

  • Related to Bug #24775: Directive details displaying leads to firing duplicated rest queries added
Actions #6

Updated by François ARMAND 26 days ago

  • Related to Bug #24439: Clicking on technique in technique tree doesn't do anything added
Actions #7

Updated by François ARMAND 26 days ago

  • Related to Bug #25046: Some results of quicksearch cannot be opened added
Actions #8

Updated by François ARMAND 26 days ago

So, for the duplication of request, the cause is an unwanted side effect of #25046: in the ajax call that load the form, we are setting the windows location hash.
But the change in #25046 sees that, and trigger an other ajax load.

Actions #9

Updated by François ARMAND 26 days ago

  • Status changed from In progress to Pending technical review
  • Assignee changed from François ARMAND to Clark ANDRIANASOLO
  • Pull Request set to https://github.com/Normation/rudder/pull/6082
Actions #10

Updated by Anonymous 26 days ago

  • Status changed from Pending technical review to Pending release
Actions #11

Updated by François ARMAND 5 days ago

  • Fix check changed from To do to Checked
Actions

Also available in: Atom PDF