Merge pull request #641 from wso2/cloud-3.1.0

Cloud related fixes
revert-70aa11f8
Kamidu Sachith Punchihewa 8 years ago committed by GitHub
commit 14d517e89d

@ -80,11 +80,11 @@ $(document).ready(function () {
/* for device list sorting drop down */
$(".ctrl-filter-type-switcher").popover({
html: true,
content: function () {
return $("#content-filter-types").html();
}
});
html: true,
content: function () {
return $("#content-filter-types").html();
}
});
});
/*
@ -247,7 +247,7 @@ function loadDevices(searchType, searchParam) {
class: 'remove-padding icon-only content-fill viewEnabledIcon',
render: function (data, type, row, meta) {
return '<div class="thumbnail icon"><img class="square-element text fw " src="'
+ getDeviceTypeThumb(row.deviceType) + '"/></div>';
+ getDeviceTypeThumb(row.deviceType) + '"/></div>';
}
},
{
@ -325,47 +325,47 @@ function loadDevices(searchType, searchParam) {
if (analyticsEnabled(row.deviceType)) {
html += '<a href="' + context + '/device/' + deviceType + '/analytics?deviceId=' +
deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' +
' class="btn padding-reduce-on-grid-view" data-placement="top" data-toggle="tooltip" data-original-title="Analytics"><span class="fw-stack">' +
'<i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Analytics</span>';
deviceIdentifier + '&deviceName=' + row.name + '" ' + 'data-click-event="remove-form"' +
' class="btn padding-reduce-on-grid-view" data-placement="top" data-toggle="tooltip" data-original-title="Analytics"><span class="fw-stack">' +
'<i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Analytics</span>';
}
if (!groupId && groupingEnabled(row.deviceType)) {
html +=
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view group-device-link" '
+
'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' +
row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Group"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-group fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Group</span></a>';
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view group-device-link" '
+
'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' +
row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Group"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
'<i class="fw fw-group fw-stack-1x"></i></span>' +
'<span class="hidden-xs hidden-on-grid-view">Group</span></a>';
}
// html +=
// '<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" '
// + 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
// + '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Edit">'
// + '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
// + '<i class="fw fw-edit fw-stack-1x"></i></span>'
// + '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
html +=
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Edit">'
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-edit fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
var groupOwner = $('#group_owner').text();
if (groupId && groupOwner != "wso2.system.user") {
html +=
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Remove from group">'
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>';
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Remove from group">'
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Remove from group</span>';
} else {
html +=
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Delete">'
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Delete</span>';
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-device-link" '
+ 'data-deviceid="' + deviceIdentifier + '" data-devicetype="' + deviceType
+ '" data-devicename="' + row.name + '" data-placement="top" data-toggle="tooltip" data-original-title="Delete">'
+ '<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>'
+ '<i class="fw fw-delete fw-stack-1x"></i></span>'
+ '<span class="hidden-xs hidden-on-grid-view">Delete</span>';
}
}
return html;
@ -417,7 +417,7 @@ function loadDevices(searchType, searchParam) {
});
};
function htmlspecialchars(text){
function htmlspecialchars(text) {
return jQuery('<div/>').text(text).html();
}
@ -427,16 +427,16 @@ function loadDevices(searchType, searchParam) {
$(data.devices).each(function (index) {
objects.push(
{
model: getPropertyValue(data.devices[index].properties, "DEVICE_MODEL"),
vendor: getPropertyValue(data.devices[index].properties, "VENDOR"),
user: data.devices[index].enrolmentInfo.owner,
status: data.devices[index].enrolmentInfo.status,
ownership: data.devices[index].enrolmentInfo.ownership,
deviceType: data.devices[index].type,
deviceIdentifier: data.devices[index].deviceIdentifier,
name: data.devices[index].name
}
{
model: getPropertyValue(data.devices[index].properties, "DEVICE_MODEL"),
vendor: getPropertyValue(data.devices[index].properties, "VENDOR"),
user: data.devices[index].enrolmentInfo.owner,
status: data.devices[index].enrolmentInfo.status,
ownership: data.devices[index].enrolmentInfo.ownership,
deviceType: data.devices[index].type,
deviceIdentifier: data.devices[index].deviceIdentifier,
name: data.devices[index].name
}
);
});
@ -449,28 +449,28 @@ function loadDevices(searchType, searchParam) {
};
$('#device-grid').datatables_extended_serverside_paging(
null,
serviceURL,
dataFilter,
columns,
fnCreatedRow,
function () {
$(".icon .text").res_text(0.2);
$('#device-grid').removeClass('hidden');
$("#loading-content").remove();
attachDeviceEvents();
if($('.advance-search').length < 1){
$(this).closest('.dataTables_wrapper').find('div[id$=_filter] input')
.after('<a href="'+context+'/devices/search"' +
' class="advance-search add-padding-3x">Advance Search</a>');
}
}, {
"placeholder": "Search By Device Name",
"searchKey": "name"
null,
serviceURL,
dataFilter,
columns,
fnCreatedRow,
function () {
$(".icon .text").res_text(0.2);
$('#device-grid').removeClass('hidden');
$("#loading-content").remove();
attachDeviceEvents();
if ($('.advance-search').length < 1) {
$(this).closest('.dataTables_wrapper').find('div[id$=_filter] input')
.after('<a href="' + context + '/devices/search"' +
' class="advance-search add-padding-3x">Advance Search</a>');
}
}, {
"placeholder": "Search By Device Name",
"searchKey": "name"
}
);
$(deviceCheckbox).click(function () {
@ -507,11 +507,11 @@ $(document).ready(function () {
/* for device list sorting drop down */
$(".ctrl-filter-type-switcher").popover({
html: true,
content: function () {
return $("#content-filter-types").html();
}
});
html: true,
content: function () {
return $("#content-filter-types").html();
}
});
/* for data tables*/
$('[data-toggle="tooltip"]').tooltip();
@ -519,17 +519,17 @@ $(document).ready(function () {
$("[data-toggle=popover]").popover();
$(".ctrl-filter-type-switcher").popover({
html: true,
content: function () {
return $('#content-filter-types').html();
}
});
html: true,
content: function () {
return $('#content-filter-types').html();
}
});
$('#nav').affix({
offset: {
top: $('header').height()
}
});
offset: {
top: $('header').height()
}
});
});
@ -583,9 +583,9 @@ function markAlreadyAssignedGroups(deviceId, deviceType) {
};
invokerUtil.get("/api/device-mgt/v1.0/groups/device?deviceId=" + deviceId + "&deviceType=" + deviceType,
successCallback, function (message) {
displayErrors(message);
});
successCallback, function (message) {
displayErrors(message);
});
}
/**
@ -604,7 +604,7 @@ function attachDeviceEvents() {
var deviceType = $(this).data("devicetype");
$(modalPopupContent).html($('#group-device-modal-content').html());
$('#user-groups').html(
'<div style="height:100px" data-state="loading" data-loading-text="Loading..." data-loading-style="icon-only" data-loading-inverse="true"></div>');
'<div style="height:100px" data-state="loading" data-loading-text="Loading..." data-loading-style="icon-only" data-loading-inverse="true"></div>');
$("a#group-device-update-link").hide();
showPopup();
@ -629,9 +629,9 @@ function attachDeviceEvents() {
}
if (hasGroups) {
html = '<br/><h4>Please select device group(s)</h4><br/>' +
'<div class="wr-input-control">' +
'<select id="groups" class="form-control select2" multiple="multiple">' +
html + '</select></div>';
'<div class="wr-input-control">' +
'<select id="groups" class="form-control select2" multiple="multiple">' +
html + '</select></div>';
markAlreadyAssignedGroups(deviceId, deviceType);
$("a#group-device-update-link").show();
$("a#group-add-link").hide();
@ -642,8 +642,8 @@ function attachDeviceEvents() {
}
$('#user-groups').html(html);
$("select.select2[multiple=multiple]").select2({
tags: false
});
tags: false
});
$("a#group-device-update-link").click(function () {
var deviceIdentifier = {"id": deviceId, "type": deviceType};
var deviceGroupIds = $("#groups").val();
@ -787,7 +787,7 @@ function attachDeviceEvents() {
$(modalPopupContent).html($('#group-device-modal-content').html());
$('#user-groups').html(
'<div style="height:100px" data-state="loading" data-loading-text="Loading..." data-loading-style="icon-only" data-loading-inverse="true"></div>');
'<div style="height:100px" data-state="loading" data-loading-text="Loading..." data-loading-style="icon-only" data-loading-inverse="true"></div>');
$("a#group-device-add-link").hide();
showPopup();
@ -806,13 +806,13 @@ function attachDeviceEvents() {
for (var i = 0; i < groups.deviceGroups.length; i++) {
if (groups.deviceGroups[i].owner != "wso2.system.user") {
html += '<option value="' + groups.deviceGroups[i].id + '">' +
groups.deviceGroups[i].name + '</option>';
groups.deviceGroups[i].name + '</option>';
hasGroups = true;
}
}
if (hasGroups) {
html = '<br /><select id="assign-group-selector" style="color:#3f3f3f;padding:5px;width:250px;">' +
html + '</select>';
html + '</select>';
$("a#group-add-link").hide();
$("a#group-device-add-link").show();
} else {
@ -898,7 +898,7 @@ function displayDeviceErrors(jqXHR) {
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
@ -911,10 +911,10 @@ function getSelectedDevices() {
thisTable.api().rows().every(function () {
if ($(this.node()).hasClass('DTTT_selected')) {
deviceList.push(
{
"id": $(thisTable.api().row(this).node()).data('deviceid'),
"type": $(thisTable.api().row(this).node()).data('devicetype')
}
{
"id": $(thisTable.api().row(this).node()).data('deviceid'),
"type": $(thisTable.api().row(this).node()).data('devicetype')
}
);
}
});

@ -39,14 +39,15 @@
{{#zone "content"}}
{{#if canManage}}
<!-- content/body -->
<div class="row">
<div class="col-md-12">
<!-- content -->
<div id="role-create-form" class="container col-centered wr-content">
<!-- content/body -->
<div class="row">
<div class="col-md-12">
<!-- content -->
<div id="role-create-form" data-cloud={{isCloud}} class="container col-centered wr-content
">
<div class="wr-form">
<p class="page-sub-title">Add Role</p>
<hr />
<hr/>
<div class="row">
<div class="col-lg-8">
<div class="wr-steps">
@ -62,10 +63,10 @@
<div class="wiz-lbl hidden-xs"><span>Assign permissions</span></div>
</div>
</div>
<br class="c-both" />
<br class="c-both"/>
</div>
<br /><br />
<hr />
<br/><br/>
<hr/>
<div id="role-create-error-msg" class="alert alert-danger hidden" role="alert">
<i class="icon fw fw-error"></i><span></span>
</div>
@ -87,57 +88,65 @@
<label class="wr-input-label">
( {{roleNameHelpText}} )
</label>
{{#if isCloud}}
<div id="roleNameField" class="form-group wr-input-control input-group">
<!--suppress HtmlFormInputWithoutLabel -->
<span class="input-group-addon" id="basic-addon1">devicemgt</span>
<input aria-describedby="basic-addon1" type="text" id="roleName"
data-regex="{{roleNameJSRegEx}}"
data-error-msg="{{roleNameRegExViolationErrorMsg}}" class="form-control"/>
{{else}}
<div id="roleNameField" class="form-group wr-input-control">
<!--suppress HtmlFormInputWithoutLabel -->
<input type="text" id="roleName" data-regex="{{roleNameJSRegEx}}"
data-error-msg="{{roleNameRegExViolationErrorMsg}}" class="form-control" />
<span class="roleNameError hidden glyphicon glyphicon-remove form-control-feedback"></span>
<label class="error roleNameEmpty hidden" for="summary">
Role name is required, should be in minimum 3 characters long and not include any
whitespaces or "@" character or "/" character.
</label>
</div>
{{#if canViewUsers}}
<label class="wr-input-label">
User list
data-error-msg="{{roleNameRegExViolationErrorMsg}}" class="form-control"/>
{{/if}}
<span class="roleNameError hidden glyphicon glyphicon-remove form-control-feedback"></span>
<label class="error roleNameEmpty hidden" for="summary">
Role name is required, should be in minimum 3 characters long and not include any
whitespaces or "@" character or "/" character.
</label>
</div>
{{#if canViewUsers}}
<label class="wr-input-label">
User list
</label>
<div class="wr-input-control">
<!--suppress HtmlFormInputWithoutLabel -->
<select id="users" class="form-control select2" multiple="multiple"></select>
</div>
<div class="wr-input-control">
<!--suppress HtmlFormInputWithoutLabel -->
<select id="users" class="form-control select2" multiple="multiple"></select>
</div>
{{/if}}
</div>
</div>
<br>
<button id="add-role-btn" class="wr-btn">Add Role</button>
</div>
<br>
<button id="add-role-btn" class="wr-btn">Add Role</button>
</div>
</div>
<div id="role-created-msg" class="container col-centered wr-content hidden">
<div class="wr-form">
<p class="page-sub-title">Role was added successfully.</p>
<br>Please click <b>"Add Another Role"</b>, if you wish to add another role or click
<b>"View Role List"</b> to complete the process and go back to the role list.
<hr />
<button class="wr-btn" onclick="window.location.href='{{@app.context}}/roles'">
View Role List
</button>
<!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add" class="cu-btn-inner">
<div id="role-created-msg" class="container col-centered wr-content hidden">
<div class="wr-form">
<p class="page-sub-title">Role was added successfully.</p>
<br>Please click <b>"Add Another Role"</b>, if you wish to add another role or click
<b>"View Role List"</b> to complete the process and go back to the role list.
<hr/>
<button class="wr-btn" onclick="window.location.href='{{@app.context}}/roles'">
View Role List
</button>
<!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add" class="cu-btn-inner">
<span class="fw-stack">
<i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i>
</span>
Add Another Role
</a>
Add Another Role
</a>
</div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
</div>
<!-- /content/body -->
<!-- /content/body -->
{{else}}
<h1 class="page-sub-title">
Permission Denied

@ -38,6 +38,7 @@ function onRequest(context) {
if (userModule.isAuthorized("/permission/admin/device-mgt/users/view")) {
displayData.canViewUsers = true;
}
displayData.isCloud = deviceMgtProps.isCloud;
return displayData;
}

@ -33,6 +33,8 @@ var clearInline = {};
var apiBasePath = "/api/device-mgt/v1.0";
var domain = $("#domain").val();
var isCloud = $("#role-create-form").data("cloud");
var enableInlineError = function (inputField, errorMsg, errorSign) {
var fieldIdentifier = "#" + inputField;
@ -84,18 +86,18 @@ clearInline["role-name"] = function () {
validateInline["role-name"] = function () {
var roleNameInput = $("input#roleName");
var roleName = roleNameInput.val();
if (inputIsValid( roleNameInput.data("regex"), roleName) && roleName.indexOf("@") < 0 && roleName.indexOf("/") < 0) {
if (inputIsValid(roleNameInput.data("regex"), roleName) && roleName.indexOf("@") < 0 && roleName.indexOf("/") < 0) {
disableInlineError("roleNameField", "roleNameEmpty", "roleNameError");
} else {
enableInlineError("roleNameField", "roleNameEmpty", "roleNameError");
}
};
function formatRepo (user) {
function formatRepo(user) {
if (user.loading) {
return user.text
}
if (!user.username){
if (!user.username) {
return;
}
var markup = '<div class="clearfix">' +
@ -103,20 +105,22 @@ function formatRepo (user) {
'<div class="clearfix">' +
'<div class="col-sm-4">' + user.username + '</div>';
if (user.name || user.name != undefined) {
markup += '<div class="col-sm-8"> ( ' + user.name + ' )</div>';
markup += '<div class="col-sm-8"> ( ' + user.name + ' )</div>';
}
markup += '</div></div></div>';
return markup;
}
function formatRepoSelection (user) {
function formatRepoSelection(user) {
return user.username || user.text;
}
$(document).ready(function () {
isCloud = $("#role-create-form").data("cloud");
var appContext = $("#app-context").data("app-context");
$("#users").select2({
multiple:true,
multiple: true,
tags: false,
ajax: {
url: appContext + "/api/invoker/execute/",
@ -140,7 +144,7 @@ $(document).ready(function () {
var user = {};
user.id = value.username;
user.username = value.username;
if(value.firstname && value.lastname) {
if (value.firstname && value.lastname) {
user.name = value.firstname + " " + value.lastname;
}
newData.push(user);
@ -151,7 +155,9 @@ $(document).ready(function () {
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
escapeMarkup: function (markup) {
return markup;
}, // let our custom formatter work
minimumInputLength: 1,
templateResult: formatRepo, // omitted for brevity, see the source of this page
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
@ -163,6 +169,7 @@ $(document).ready(function () {
* on Add Role page in WSO2 MDM Console.
*/
$("button#add-role-btn").click(function () {
var domain = $("#domain").val();
var roleNameInput = $("input#roleName");
var roleName = roleNameInput.val();
@ -185,8 +192,12 @@ $(document).ready(function () {
$(errorMsgWrapper).removeClass("hidden");
} else {
var addRoleFormData = {};
addRoleFormData.roleName = roleName;
if (domain != "PRIMARY"){
if (isCloud) {
addRoleFormData.roleName = "devicemgt" + roleName;
} else {
addRoleFormData.roleName = roleName;
}
if (domain != "PRIMARY") {
addRoleFormData.roleName = domain + "/" + roleName;
}
if (users == null) {
@ -220,16 +231,16 @@ $(document).ready(function () {
});
var roleNameInputElement = "#roleName";
$(roleNameInputElement).focus(function() {
$(roleNameInputElement).focus(function () {
clearInline["role-name"]();
});
$(roleNameInputElement).blur(function() {
$(roleNameInputElement).blur(function () {
validateInline["role-name"]();
});
/* When the user store domain value is changed, the users who are assigned to that role should be removed, as
user and role can be mapped only if both are in same user store
user and role can be mapped only if both are in same user store
*/
$("#domain").change(function () {
$("#users").select2("val", "");

@ -37,6 +37,7 @@ var modalPopupContainer = modalPopup + " .modal-content";
var modalPopupContent = modalPopup + " .modal-content";
var body = "body";
var isInit = true;
var isCloud = false;
/**
@ -72,7 +73,7 @@ function showPopup() {
function hidePopup() {
$(modalPopupContent).html('');
$(modalPopup).modal('hide');
$('body').removeClass('modal-open').css('padding-right','0px');
$('body').removeClass('modal-open').css('padding-right', '0px');
$('.modal-backdrop').remove();
}
@ -86,11 +87,12 @@ function InitiateViewOption() {
// $(location).attr('href', $(this).data("url"));
}
function htmlspecialchars(text){
function htmlspecialchars(text) {
return jQuery('<div/>').text(text).html();
}
function loadRoles() {
isCloud = $("#role-table").data("cloud");
var loadingContent = $("#loading-content");
loadingContent.show();
@ -98,21 +100,40 @@ function loadRoles() {
data = JSON.parse(data);
var objects = [];
var count = 0;
$(data.roles).each(function (index) {
objects.push(
{
name: htmlspecialchars(data.roles[index]),
DT_RowId: "role-" + htmlspecialchars(data.roles[index])
}
)
if (isCloud && data.roles[index].startsWith("devicemgt")) {
count++;
objects.push(
{
name: htmlspecialchars(data.roles[index]),
DT_RowId: "role-" + htmlspecialchars(data.roles[index])
}
)
} else if (!isCloud) {
objects.push(
{
name: htmlspecialchars(data.roles[index]),
DT_RowId: "role-" + htmlspecialchars(data.roles[index])
}
)
}
});
var json = {
"recordsTotal": data.count,
"recordsFiltered": data.count,
"data": objects
};
var json = {};
if (isCloud) {
json = {
"recordsTotal": count,
"recordsFiltered": count,
"data": objects
};
} else {
json = {
"recordsTotal": data.count,
"recordsFiltered": data.count,
"data": objects
};
}
return JSON.stringify(json);
};
@ -143,13 +164,13 @@ function loadRoles() {
data: null,
render: function (data, type, row, meta) {
var isCloud = false;
if ($('#is-cloud').length > 0){
if ($('#is-cloud').length > 0) {
isCloud = true;
}
var innerhtml = '';
var innerhtml = '';
var editLink = '<a onclick="javascript:loadRoleBasedActionURL(\'edit\', \'' + data.name + '\')" ' +
var editLink = '<a onclick="javascript:loadRoleBasedActionURL(\'edit\', \'' + data.name + '\')" ' +
'data-role="' + data.name + '" ' +
'data-click-event="edit-form" ' +
'class="btn padding-reduce-on-grid-view edit-role-link">' +
@ -179,7 +200,7 @@ function loadRoles() {
'<span class="hidden-xs hidden-on-grid-view">Edit Permission</span>' +
'</a>';
var removeLink = '<a data-role="' + data.name + '" ' +
var removeLink = '<a data-role="' + data.name + '" ' +
'data-click-event="remove-form" ' +
'class="btn padding-reduce-on-grid-view remove-role-link">' +
'<span class="fw-stack">' +

@ -36,39 +36,40 @@
{{#zone "navbarActions"}}
{{#unless isCloud}}
<li>
<!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add" class="cu-btn">
<li>
<!--suppress HtmlUnknownTarget -->
<a href="{{@app.context}}/role/add" class="cu-btn">
<span class="icon fw-stack">
<i class="fw fw-add fw-stack-1x"></i>
<i class="fw fw-circle-outline fw-stack-2x"></i>
</span>
Add Role
</a>
</li>
Add Role
</a>
</li>
{{/unless}}
{{/zone}}
{{#zone "content"}}
<div id="loading-content" class="col-centered">
{{#unless isCloud}}
{{#if removePermitted}}
<input type="hidden" id="can-remove" value="true" />
{{/if}}
{{#if editPermitted}}
<input type="hidden" id="can-edit" value="true" />
{{/if}}
{{#if removePermitted}}
<input type="hidden" id="can-remove" value="true"/>
{{/if}}
{{#if editPermitted}}
<input type="hidden" id="can-edit" value="true"/>
{{/if}}
{{/unless}}
{{#if isCloud}}
<input type="hidden" id="is-cloud" value="true" />
<input type="hidden" id="is-cloud" value="true"/>
{{/if}}
<i class="fw fw-settings fw-spin fw-2x"></i>
Loading roles . . .
<br>
</div>
<div id="role-table" data-role={{adminRole}}>
<table class="table table-striped table-hover list-table display responsive nowrap data-table grid-view" id="role-grid">
<div id="role-table" data-cloud={{isCloud}} data-role={{adminRole}}>
<table class="table table-striped table-hover list-table display responsive nowrap data-table grid-view"
id="role-grid">
<thead>
<tr class="sort-row">
<th>By Role Name</th>

@ -19,11 +19,11 @@
<div class="row">
<div class="col-md-12">
<!-- content -->
<div id="role-create-form" class="container col-centered wr-content">
<div id="role-create-form" data-cloud={{isCloud}} class="container col-centered wr-content">
<div class="wr-form">
<p class="page-sub-title">Edit Role</p>
<p>Please note that * sign represents required fields of data.</p>
<hr />
<hr/>
<div class="row">
<div class="col-lg-8">
<div id="role-create-error-msg" class="alert alert-danger hidden" role="alert">
@ -42,46 +42,58 @@
<label class="wr-input-label" id="roleNameValidationText">
( {{roleNameHelpText}} )
</label>
{{#if isCloud}}
<div id="roleNameField" class="form-group wr-input-control input-group">
<!--suppress HtmlFormInputWithoutLabel -->
<span class="input-group-addon" id="basic-addon1">devicemgt</span>
<input aria-describedby="basic-addon1" type="text" id="rolename"
data-regex="{{roleNameJSRegEx}}"
data-errormsg="{{roleNameRegExViolationErrorMsg}}" class="form-control"
data-currentrole="{{role.roleName}}"
value="{{role.roleName}}"/>
{{else}}
<div id="roleNameField" class="form-group wr-input-control">
<input type="text" id="rolename" data-regex="{{roleNameJSRegEx}}"
data-errormsg="{{roleNameRegExViolationErrorMsg}}" class="form-control"
data-currentrole="{{role.roleName}}"
value="{{role.roleName}}" />
value="{{role.roleName}}"/>
{{/if}}
<span class=" rolenameError hidden glyphicon glyphicon-remove form-control-feedback"></span>
<label class="error rolenameEmpty hidden" for="summary">Role name is required & Should be in
minimum 3 characters long and do not
include any whitespaces. </label>
</div>
</div>
</div>
<br>
<button id="add-role-btn" class="wr-btn">Update Role</button>
</div>
<br>
<button id="add-role-btn" class="wr-btn">Update Role</button>
</div>
</div>
<div id="role-created-msg" class="container col-centered wr-content hidden">
<div class="wr-form">
<p class="page-sub-title">Role was updated successfully.</p>
<br>Please click <b>"View Updated Role"</b>, if you wish to view the updated role or click
<b>"View Role List"</b> to complete the process and go back to the role list.
<hr />
<button class="wr-btn" onclick="window.location.href='{{@app.context}}/roles'">
View Role List
</button>
<a href="{{@app.context}}/roles/edit-role/{{role.roleName}}"
class="cu-btn-inner">
<div id="role-created-msg" class="container col-centered wr-content hidden">
<div class="wr-form">
<p class="page-sub-title">Role was updated successfully.</p>
<br>Please click <b>"View Updated Role"</b>, if you wish to view the updated role or click
<b>"View Role List"</b> to complete the process and go back to the role list.
<hr/>
<button class="wr-btn" onclick="window.location.href='{{@app.context}}/roles'">
View Role List
</button>
<a href="{{@app.context}}/roles/edit-role/{{role.roleName}}"
class="cu-btn-inner">
<span class="fw-stack">
<i class="fw fw-circle-outline fw-stack-2x"></i>
<i class="fw fw-add fw-stack-1x"></i>
</span>
View Updated Role
</a>
View Updated Role
</a>
</div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
<!-- /content -->
<div id="app-context" data-app-context="{{@app.context}}" class="hidden"></div>
</div>
</div>
<!-- /content/body -->
{{#zone "bottomJs"}}
{{js "js/bottomJs.js"}}
{{/zone}}
<!-- /content/body -->
{{#zone "bottomJs"}}
{{js "js/bottomJs.js"}}
{{/zone}}

@ -29,6 +29,7 @@ function onRequest(context) {
var roleName = request.getParameter("rolename");
var response;
var userStore;
context.isCloud = deviceMgtProps.isCloud;
if (roleName) {
if (roleName.indexOf("/") > -1) {

@ -83,18 +83,18 @@ clearInline["role-name"] = function () {
*/
validateInline["role-name"] = function () {
var rolenameinput = $("input#rolename");
if (inputIsValid( rolenameinput.data("regex"), rolenameinput.val())) {
if (inputIsValid(rolenameinput.data("regex"), rolenameinput.val())) {
disableInlineError("roleNameField", "rolenameEmpty", "rolenameError");
} else {
enableInlineError("roleNameField", "rolenameEmpty", "rolenameError");
}
};
function formatRepo (user) {
function formatRepo(user) {
if (user.loading) {
return user.text
}
if (!user.username){
if (!user.username) {
return;
}
var markup = '<div class="clearfix">' +
@ -102,7 +102,7 @@ function formatRepo (user) {
'<div class="clearfix">' +
'<div class="col-sm-3">' + user.username + '</div>';
if (user.firstname) {
markup += '<div class="col-sm-3"><i class="fa fa-code-fork"></i> ' + user.firstname + '</div>';
markup += '<div class="col-sm-3"><i class="fa fa-code-fork"></i> ' + user.firstname + '</div>';
}
if (user.emailAddress) {
markup += '<div class="col-sm-2"><i class="fa fa-star"></i> ' + user.emailAddress + '</div></div>';
@ -111,14 +111,14 @@ function formatRepo (user) {
return markup;
}
function formatRepoSelection (user) {
function formatRepoSelection(user) {
return user.username || user.text;
}
$(document).ready(function () {
var appContext = $("#app-context").data("app-context");
$("#users").select2({
multiple:true,
multiple: true,
tags: false,
ajax: {
url: appContext + "/api/invoker/execute/",
@ -148,23 +148,29 @@ $(document).ready(function () {
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
escapeMarkup: function (markup) {
return markup;
}, // let our custom formatter work
minimumInputLength: 1,
templateResult: formatRepo, // omitted for brevity, see the source of this page
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
});
/**
* Following click function would execute
* when a user clicks on "Add Role" button
* on Add Role page in WSO2 MDM Console.
*/
$("button#add-role-btn").click(function() {
$("button#add-role-btn").click(function () {
var isCloud = $("#role-create-form").data("cloud");
var rolenameInput = $("input#rolename");
var roleName = rolenameInput.val();
var currentRoleName = $("input#rolename").data("currentrole");
if (isCloud) {
currentRoleName = "devicemgt" + currentRoleName;
}
var domain = $("#domain").val();
var errorMsgWrapper = "#role-create-error-msg";
var errorMsg = "#role-create-error-msg span";
@ -182,12 +188,17 @@ $(document).ready(function () {
$(errorMsgWrapper).removeClass("hidden");
} else {
var addRoleFormData = {};
addRoleFormData.roleName = roleName;
if (isCloud) {
addRoleFormData.roleName = "devicemgt" + roleName;
} else {
addRoleFormData.roleName = roleName;
}
var addRoleAPI = apiBasePath + "/roles/" + encodeURIComponent(currentRoleName);
if (domain != "PRIMARY"){
if (domain != "PRIMARY") {
addRoleFormData.roleName = domain + "/" + roleName;
addRoleAPI = addRoleAPI + "?user-store=" + encodeURIComponent(domain);
}
invokerUtil.put(
addRoleAPI,
addRoleFormData,
@ -201,6 +212,7 @@ $(document).ready(function () {
$("#role-created-msg").removeClass("hidden");
}
}, function (data) {
var payload = JSON.parse(data.responseText);
$(errorMsg).text(payload.message);
$(errorMsgWrapper).removeClass("hidden");
@ -209,11 +221,11 @@ $(document).ready(function () {
}
});
$("#rolename").focus(function() {
$("#rolename").focus(function () {
clearInline["role-name"]();
});
$("#rolename").blur(function() {
$("#rolename").blur(function () {
validateInline["role-name"]();
});

@ -18,11 +18,11 @@
$(document).ready(function () {
$('#cloud-menu-popover i.fw-tiles').popover({
html: true,
trigger:'click',
title: function() {
trigger: 'click',
title: function () {
return $("#popover-head").html();
},
content: function() {
content: function () {
return $("#popover-content").html();
}
});

@ -22,7 +22,7 @@
{{#if this.dropDownVisible}}
class="dropdown" data-toggle="dropdown"
{{/if}}
title = "
title="
{{#if this.isDomain }}
{{@user.domain}}
{{else}}

Loading…
Cancel
Save