diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.hbs b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.hbs index 4c5280f1545..0738a93225f 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.hbs +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.hbs @@ -34,6 +34,7 @@
  • + Policies @@ -41,18 +42,24 @@ {{/zone}} {{#zone "navbarActions"}} - {{#if managePermitted}} -
  • - - - - - - Add Policy - -
  • + {{#if permissions.ADD_ADMIN_POLICY}} {{#equal noPolicy false}}
  • + + + + + + + Add New Policy + +
  • + {{/equal}} + {{/if}} + {{#if permissions.CHANGE_POLICY_PRIORITY}} + {{#equal noPolicy false}} +
  • + @@ -75,44 +82,37 @@ {{/zone}} {{#zone "content"}} + {{#equal isUpdated true}} + + {{/equal}} {{#equal noPolicy true}}
    {{/equal}} {{#equal noPolicy false}} - {{#equal isUpdated true}} - - {{/equal}}
    Loading policies . . .
    - @@ -141,10 +141,9 @@ - - - + - + - - - + + + {{/each}} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.js index 33a40883068..515a002f943 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/policies.js @@ -6,12 +6,12 @@ * in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ @@ -37,27 +37,23 @@ function onRequest(context) { var policyCount = policyListToView.length; if (policyCount == 0) { page["policyListingStatusMsg"] = "No policy is available to be displayed."; - page["saveNewPrioritiesButtonEnabled"] = false; page["noPolicy"] = true; - } else if (policyCount == 1) { - page["saveNewPrioritiesButtonEnabled"] = false; - page["noPolicy"] = false; - page["isUpdated"] = response["updated"]; } else { - page["saveNewPrioritiesButtonEnabled"] = true; page["noPolicy"] = false; page["isUpdated"] = response["updated"]; } } else { // here, response["status"] == "error" - page["policyListToView"] = []; - page["policyListingStatusMsg"] = "An unexpected error occurred @ backend. Please try again later."; - page["saveNewPrioritiesButtonEnabled"] = false; + page["policyListingStatusMsg"] = "An unexpected error occurred. Please try again later."; page["noPolicy"] = true; } - if (userModule.isAuthorized("/permission/admin/device-mgt/policies/manage")) { - page.managePermitted = true; + if (userModule.isAuthorized("/permission/admin/device-mgt/policies/remove")) { + page["removePermitted"] = true; + } + if (userModule.isAuthorized("/permission/admin/device-mgt/policies/update")) { + page["editPermitted"] = true; } + page.permissions = userModule.getUIPermissions(); return page; -} +} \ No newline at end of file diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/public/js/policy-list.js b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/public/js/policy-list.js index e70c127c20d..8e31e39ecc8 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/public/js/policy-list.js +++ b/components/device-mgt/org.wso2.carbon.device.mgt.ui/src/main/resources/jaggeryapps/devicemgt/app/pages/cdmf.page.policies/public/js/policy-list.js @@ -1,30 +1,30 @@ /* - * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * Copyright (c) 2015-2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* sorting function */ var sortUpdateBtn = "#sortUpdateBtn"; -var sortedIDs; -var dataTableSelection = '.DTTT_selected'; +// var sortedIDs; +// var dataTableSelection = ".DTTT_selected"; var settings = { "sorting": false }; $('#policy-grid').datatables_extended(settings); -$(".icon .text").res_text(0.2); +// $(".icon .text").res_text(0.2); var saveNewPrioritiesButton = "#save-new-priorities-button"; var saveNewPrioritiesButtonEnabled = Boolean($(saveNewPrioritiesButton).data("enabled")); @@ -41,25 +41,6 @@ function InitiateViewOption() { $(location).attr('href', $(this).data("url")); } -var addSortableIndexNumbers = function () { - $(".wr-sortable .list-group-item").not(".ui-sortable-placeholder").each(function (i) { - $(".wr-sort-index", this).html(i + 1); - }); -}; - -var sortElements = function () { - addSortableIndexNumbers(); - var sortableElem = ".wr-sortable"; - $(sortableElem).sortable({ - beforeStop: function () { - sortedIDs = $(this).sortable("toArray"); - addSortableIndexNumbers(); - $(sortUpdateBtn).prop("disabled", false); - } - }); - $(sortableElem).disableSelection(); -}; - /** * Modal related stuff are as follows. */ @@ -129,31 +110,29 @@ function getSelectedPolicies() { } $(document).ready(function () { - sortElements(); - $("#loading-content").remove(); - var policyRoles = $("#policy-roles").text(); - var policyUsers = $("#policy-users").text(); + /** + * ******************************************** + * Click functions related to Policy Listing + * ******************************************** + */ - if (!policyRoles) { - $("#policy-roles").hide(); - } - if (!policyUsers) { - $("#policy-users").hide(); - } + // [1] logic for running apply-changes-for-devices use-case - if ($("#policy-listing-status-msg").text()) { - $("#policy-listing-status").removeClass("hidden"); - } + var applyChangesButtonId = "#appbar-btn-apply-changes"; - // Click functions related to Policy Listing - var isUpdated = $('#is-updated').val(); + var isUpdated = $("#is-updated").val(); if (!isUpdated) { - $('#appbar-btn-apply-changes').addClass('hidden'); + // if no updated policies found, hide button from app bar + $(applyChangesButtonId).addClass("hidden"); + } else { + // if updated policies found, show button from app bar + $(applyChangesButtonId).removeClass("hidden"); } - $("#appbar-btn-apply-changes").click(function () { - var applyPolicyChangesAPI = "/devicemgt_admin/policies/apply-changes"; + // click-event function for applyChangesButton + $(applyChangesButtonId).click(function () { + var serviceURL = "/api/device-mgt/v1.0/policies/apply-changes"; modalDialog.header('Do you really want to apply changes to all policies?'); modalDialog.footer('
    Yes' + 'No
    '); @@ -161,20 +140,23 @@ $(document).ready(function () { $("a#change-policy-yes-link").click(function () { invokerUtil.put( - applyPolicyChangesAPI, + serviceURL, null, // on success - function () { - modalDialog.header('Done. Changes applied successfully.'); - modalDialog.footer('
    Ok
    '); - $("a#change-policy-success-link").click(function () { - modalDialog.hide(); - location.reload(); - }); + function (data, textStatus, jqXHR) { + if (jqXHR.status == 200) { + modalDialog.header('Done. Changes applied successfully.'); + modalDialog.footer('
    Ok
    '); + $("a#change-policy-success-link").click(function () { + modalDialog.hide(); + location.reload(); + }); + } }, // on error - function () { + function (jqXHR) { + console.log(stringify(jqXHR.data)); modalDialog.header('An unexpected error occurred. Please try again later.'); modalDialog.footer('
    Ok
    '); @@ -191,61 +173,26 @@ $(document).ready(function () { }); }); - $(sortUpdateBtn).click(function () { - $(sortUpdateBtn).prop("disabled", true); - - var newPolicyPriorityList = []; - var policy; - var i; - for (i = 0; i < sortedIDs.length; i++) { - policy = {}; - policy.id = parseInt(sortedIDs[i]); - policy.priority = i + 1; - newPolicyPriorityList.push(policy); - } - - var updatePolicyAPI = "/devicemgt_admin/policies/priorities"; - invokerUtil.put( - updatePolicyAPI, - newPolicyPriorityList, - function () { - modalDialog.header('Done. New Policy priorities were successfully updated.'); - modalDialog.footer('Ok' + - ''); - modalDialog.show(); - $("a#save-policy-priorities-success-link").click(function () { - modalDialog.hide(); - }); - }, - function () { - modalDialog.header('An unexpected error occurred. Please try again later.'); - modalDialog.content(html("Message From Server : " + data["statusText"])); - modalDialog.footer('
    Ok
    '); - modalDialog.showAsError(); - $("a#save-policy-priorities-error-link").click(function () { - modalDialog.hide(); - }); - } - ); - - }); + // [2] logic for un-publishing a selected set of Active, Active/Updated policies $(".policy-unpublish-link").click(function () { var policyList = getSelectedPolicies(); var statusList = getSelectedPolicyStates(); - if (($.inArray('Inactive/Updated', statusList) > -1) || ($.inArray('Inactive', statusList) > -1)) { - modalDialog.header('Operation cannot be performed !'); - modalDialog.content('You cannot select already inactive policies. Please deselect inactive policies and ' + - 'try again.'); - modalDialog.footer('
    Ok
    '); + if (($.inArray("Inactive/Updated", statusList) > -1) || ($.inArray("Inactive", statusList) > -1)) { + // if policies found in Inactive or Inactive/Updated states with in the selection, + // pop-up an error saying + // "You cannot select already inactive policies. Please deselect inactive policies and try again." + modalDialog.header('Action cannot be performed !'); + modalDialog.content('You cannot select already inactive policies to be unpublished. Please deselect ' + + 'inactive policies and try again.'); + modalDialog.footer('
    Ok' + + '
    '); modalDialog.showAsAWarning(); } else { - var serviceURL = "/devicemgt_admin/policies/inactivate"; - if (policyList == 0) { - modalDialog.header('Operation cannot be performed !'); - modalDialog.content('Please select a policy or a list of policies to unpublish.'); + var serviceURL = "/api/device-mgt/v1.0/policies/deactivate-policy"; + if (policyList.length == 0) { + modalDialog.header('Action cannot be performed !'); + modalDialog.content('Please select a policy or a list of policies to un-publish.'); modalDialog.footer('
    Ok
    '); modalDialog.showAsAWarning(); @@ -257,22 +204,26 @@ $(document).ready(function () { modalDialog.show(); } + // on-click function for policy un-publishing "yes" button $("a#unpublish-policy-yes-link").click(function () { - invokerUtil.put( + invokerUtil.post( serviceURL, policyList, // on success - function () { - modalDialog.header('Done. Selected policy was successfully unpublished.'); - modalDialog.footer('
    Ok
    '); - $("a#unpublish-policy-success-link").click(function () { - modalDialog.hide(); - location.reload(); - }); + function (data, textStatus, jqXHR) { + if (jqXHR.status == 200 && data) { + modalDialog.header('Done. Selected policy was successfully unpublished.'); + modalDialog.footer('
    Ok
    '); + $("a#unpublish-policy-success-link").click(function () { + modalDialog.hide(); + location.reload(); + }); + } }, // on error - function () { + function (jqXHR) { + console.log(stringify(jqXHR.data)); modalDialog.header('An unexpected error occurred. Please try again later.'); modalDialog.footer('
    Ok
    '); @@ -284,30 +235,35 @@ $(document).ready(function () { ); }); + // on-click function for policy un-publishing "cancel" button $("a#unpublish-policy-cancel-link").click(function () { modalDialog.hide(); }); } }); + // [3] logic for publishing a selected set of Inactive, Inactive/Updated policies $(".policy-publish-link").click(function () { var policyList = getSelectedPolicies(); var statusList = getSelectedPolicyStates(); - if (($.inArray('Active/Updated', statusList) > -1) || ($.inArray('Active', statusList) > -1)) { - modalDialog.header('Operation cannot be performed !'); + if (($.inArray("Active/Updated", statusList) > -1) || ($.inArray("Active", statusList) > -1)) { + // if policies found in Active or Active/Updated states with in the selection, + // pop-up an error saying + // "You cannot select already active policies. Please deselect active policies and try again." + modalDialog.header('Action cannot be performed !'); modalDialog.content('You cannot select already active policies. Please deselect active policies and try ' + 'again.'); modalDialog.footer('
    ' + 'Ok
    '); modalDialog.showAsAWarning(); } else { - var serviceURL = "/devicemgt_admin/policies/activate"; - if (policyList == 0) { - modalDialog.header('Operation cannot be performed !'); + var serviceURL = "/api/device-mgt/v1.0/policies/activate-policy"; + if (policyList.length == 0) { + modalDialog.header('Action cannot be performed !'); modalDialog.content('Please select a policy or a list of policies to publish.'); - modalDialog.footer('
    ' + - 'Ok
    '); + modalDialog.footer('
    Ok
    '); modalDialog.showAsAWarning(); } else { modalDialog.header('Do you really want to publish the selected policy(s)?'); @@ -316,23 +272,26 @@ $(document).ready(function () { 'class="btn-operations btn-default">No'); modalDialog.show(); } - + // on-click function for policy removing "yes" button $("a#publish-policy-yes-link").click(function () { - invokerUtil.put( + invokerUtil.post( serviceURL, policyList, // on success - function () { - modalDialog.header('Done. Selected policy was successfully published.'); - modalDialog.footer('
    Ok
    '); - $("a#publish-policy-success-link").click(function () { - modalDialog.hide(); - location.reload(); - }); + function (data, textStatus, jqXHR) { + if (jqXHR.status == 200 && data) { + modalDialog.header('Done. Selected policy was successfully published.'); + modalDialog.footer('
    Ok
    '); + $("a#publish-policy-success-link").click(function () { + modalDialog.hide(); + location.reload(); + }); + } }, // on error - function () { + function (jqXHR) { + console.log(stringify(jqXHR.data)); modalDialog.header('An unexpected error occurred. Please try again later.'); modalDialog.footer('
    Ok
    '); @@ -344,66 +303,64 @@ $(document).ready(function () { ); }); + // on-click function for policy removing "cancel" button $("a#publish-policy-cancel-link").click(function () { modalDialog.hide(); }); } }); + // [4] logic for removing a selected set of policies + $(".policy-remove-link").click(function () { var policyList = getSelectedPolicies(); - var deletePolicyAPI = "/devicemgt_admin/policies/bulk-remove"; - if (policyList == 0) { - modalDialog.header('Operation cannot be performed !'); - modalDialog.content('Please select a policy or a list of policies to remove.'); + var statusList = getSelectedPolicyStates(); + if (($.inArray("Active/Updated", statusList) > -1) || ($.inArray("Active", statusList) > -1)) { + // if policies found in Active or Active/Updated states with in the selection, + // pop-up an error saying + // "You cannot remove already active policies. Please deselect active policies and try again." + modalDialog.header('Action cannot be performed !'); + modalDialog.content('You cannot select already active policies. Please deselect active policies and try ' + + 'again.'); modalDialog.footer('
    ' + 'Ok
    '); modalDialog.showAsAWarning(); } else { - modalDialog.header('Do you really want to remove the selected policy(s)?'); - modalDialog.footer('
    Remove Cancel
    '); - modalDialog.show(); - } + var serviceURL = "/api/device-mgt/v1.0/policies/remove-policy"; + if (policyList.length == 0) { + modalDialog.header('Action cannot be performed !'); + modalDialog.content('Please select a policy or a list of policies to remove.'); + modalDialog.footer('
    Ok
    '); + modalDialog.showAsAWarning(); + } else { + modalDialog.header('Do you really want to remove the selected policy(s)?'); + modalDialog.footer('
    Remove Cancel
    '); + modalDialog.show(); + } - $("a#remove-policy-yes-link").click(function () { - invokerUtil.post( - deletePolicyAPI, - policyList, - // on success - function (data) { - data = JSON.parse(data); - if (data.errorMessage) { - modalDialog.header('Cannot Remove Policies.'); - modalDialog.footer('
    Ok
    '); - modalDialog.showAsError(); - $("a#remove-policy-error-devices").click(function () { - modalDialog.hide(); - }); - } else { - modalDialog.header('Done. Selected policy was successfully removed.'); - modalDialog.footer('
    Ok
    '); - $("a#remove-policy-success-link").click(function () { - var thisTable = $(".DTTT_selected").closest('.dataTables_wrapper').find('.dataTable').dataTable(); - thisTable.api().rows('.DTTT_selected').remove().draw(false); - modalDialog.hide(); - }); - } - }, - // on error - function (data) { - if (JSON.parse(data.responseText).errorMessage) { - modalDialog.header('Cannot Remove Policies.'); - modalDialog.footer('
    Ok
    '); - modalDialog.showAsError(); - $("a#remove-policy-error-devices").click(function () { - modalDialog.hide(); - }); - } else { + // on-click function for policy removing "yes" button + $("a#remove-policy-yes-link").click(function () { + invokerUtil.post( + serviceURL, + policyList, + // on success + function (data, textStatus, jqXHR) { + if (jqXHR.status == 200 && data) { + modalDialog.header('Done. Selected policy was successfully removed.'); + modalDialog.footer('
    Ok
    '); + $("a#remove-policy-success-link").click(function () { + modalDialog.hide(); + location.reload(); + }); + } + }, + // on error + function (jqXHR) { + console.log(stringify(jqXHR.data)); modalDialog.header('An unexpected error occurred. Please try again later.'); modalDialog.footer('
    Ok
    '); @@ -412,15 +369,19 @@ $(document).ready(function () { modalDialog.hide(); }); } - } - ); - }); + ); + }); - $("a#remove-policy-cancel-link").click(function () { - modalDialog.hide(); - }); + // on-click function for policy removing "cancel" button + $("a#remove-policy-cancel-link").click(function () { + modalDialog.hide(); + }); + } }); + $("#loading-content").remove(); + if ($("#policy-listing-status-msg").text()) { + $("#policy-listing-status").removeClass("hidden"); + } $("#policy-grid").removeClass("hidden"); - $(".icon .text").res_text(0.2); -}); +}); \ No newline at end of file