forked from community/product-iots
commit
1a91687e06
@ -1,5 +0,0 @@
|
||||
# Ignore everything in this directory.
|
||||
# they are auto generated, should not be committed.
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
@ -1,353 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 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
|
||||
*
|
||||
* 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
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
var cache = {};
|
||||
var permissionSet = {};
|
||||
var validateAndReturn = function (value) {
|
||||
return (value == undefined || value == null) ? "Unspecified" : value;
|
||||
};
|
||||
Handlebars.registerHelper("deviceMap", function (device) {
|
||||
device.owner = validateAndReturn(device.owner);
|
||||
device.ownership = validateAndReturn(device.ownership);
|
||||
var arr = device.properties;
|
||||
if (arr) {
|
||||
device.properties = arr.reduce(function (total, current) {
|
||||
total[current.name] = validateAndReturn(current.value);
|
||||
return total;
|
||||
}, {});
|
||||
}
|
||||
});
|
||||
|
||||
//This method is used to setup permission for device listing
|
||||
$.setPermission = function (permission) {
|
||||
permissionSet[permission] = true;
|
||||
};
|
||||
|
||||
$.hasPermission = function (permission) {
|
||||
return permissionSet[permission];
|
||||
};
|
||||
})();
|
||||
|
||||
/*
|
||||
* Setting-up global variables.
|
||||
*/
|
||||
var deviceCheckbox = "#ast-container .ctrl-wr-asset .itm-select input[type='checkbox']";
|
||||
var assetContainer = "#ast-container";
|
||||
|
||||
/*
|
||||
* DOM ready functions.
|
||||
*/
|
||||
$(document).ready(function () {
|
||||
/* Adding selected class for selected devices */
|
||||
$(deviceCheckbox).each(function () {
|
||||
addDeviceSelectedClass(this);
|
||||
});
|
||||
|
||||
var i;
|
||||
var permissionList = $("#permission").data("permission");
|
||||
for (i = 0; i < permissionList.length; i++) {
|
||||
$.setPermission(permissionList[i]);
|
||||
}
|
||||
|
||||
/* for device list sorting drop down */
|
||||
$(".ctrl-filter-type-switcher").popover({
|
||||
html: true,
|
||||
content: function () {
|
||||
return $("#content-filter-types").html();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
* On Select All Device button click function.
|
||||
*
|
||||
* @param button: Select All Device button
|
||||
*/
|
||||
function selectAllDevices(button) {
|
||||
if (!$(button).data('select')) {
|
||||
$(deviceCheckbox).each(function (index) {
|
||||
$(this).prop('checked', true);
|
||||
addDeviceSelectedClass(this);
|
||||
});
|
||||
$(button).data('select', true);
|
||||
$(button).html('Deselect All Devices');
|
||||
} else {
|
||||
$(deviceCheckbox).each(function (index) {
|
||||
$(this).prop('checked', false);
|
||||
addDeviceSelectedClass(this);
|
||||
});
|
||||
$(button).data('select', false);
|
||||
$(button).html('Select All Devices');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* On listing layout toggle buttons click function.
|
||||
*
|
||||
* @param view: Selected view type
|
||||
* @param selection: Selection button
|
||||
*/
|
||||
function changeDeviceView(view, selection) {
|
||||
$(".view-toggle").each(function () {
|
||||
$(this).removeClass("selected");
|
||||
});
|
||||
$(selection).addClass("selected");
|
||||
if (view == "list") {
|
||||
$(assetContainer).addClass("list-view");
|
||||
} else {
|
||||
$(assetContainer).removeClass("list-view");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Add selected style class to the parent element function.
|
||||
*
|
||||
* @param checkbox: Selected checkbox
|
||||
*/
|
||||
function addDeviceSelectedClass(checkbox) {
|
||||
if ($(checkbox).is(":checked")) {
|
||||
$(checkbox).closest(".ctrl-wr-asset").addClass("selected device-select");
|
||||
} else {
|
||||
$(checkbox).closest(".ctrl-wr-asset").removeClass("selected device-select");
|
||||
}
|
||||
}
|
||||
function loadDevices(searchType, searchParam) {
|
||||
var deviceListing = $("#device-listing");
|
||||
var deviceListingSrc = deviceListing.attr("src");
|
||||
var imageResource = deviceListing.data("image-resource");
|
||||
$.template("device-listing", deviceListingSrc, function (template) {
|
||||
var serviceURL;
|
||||
if ($.hasPermission("LIST_DEVICES")) {
|
||||
serviceURL = "/iotserver/api/devices/all";
|
||||
} else if ($.hasPermission("LIST_OWN_DEVICES")) {
|
||||
//Get authenticated users devices
|
||||
serviceURL = "/iotserver/api/devices/all";
|
||||
} else {
|
||||
$("#ast-container").html("Permission denied");
|
||||
return;
|
||||
}
|
||||
if (searchParam) {
|
||||
if (searchType == "users") {
|
||||
serviceURL = serviceURL + "?user=" + searchParam;
|
||||
} else if (searchType == "user-roles") {
|
||||
serviceURL = serviceURL + "?role=" + searchParam;
|
||||
} else {
|
||||
serviceURL = serviceURL + "?type=" + searchParam;
|
||||
}
|
||||
}
|
||||
var successCallback = function (data) {
|
||||
data = JSON.parse(data);
|
||||
var viewModel = {};
|
||||
viewModel.devices = data.data;
|
||||
viewModel.imageLocation = imageResource;
|
||||
if(!data.data || data.data.length <= 0){
|
||||
$("#ast-container").html($("#no-devices-div-content").html());
|
||||
} else {
|
||||
var content = template(viewModel);
|
||||
$("#ast-container").html(content);
|
||||
/*
|
||||
* On device checkbox select add parent selected style class
|
||||
*/
|
||||
$(deviceCheckbox).click(function () {
|
||||
addDeviceSelectedClass(this);
|
||||
});
|
||||
attachEvents();
|
||||
formatDates();
|
||||
}
|
||||
};
|
||||
invokerUtil.get(serviceURL,
|
||||
successCallback, function (message) {
|
||||
console.log(message);
|
||||
});
|
||||
});
|
||||
}
|
||||
$(document).ready(function () {
|
||||
loadDevices();
|
||||
});
|
||||
|
||||
function formatDates(){
|
||||
$(".formatDate").each(function(){
|
||||
var timeStamp = $(this).html();
|
||||
$(this).html(new Date(parseInt(timeStamp)).toUTCString());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorting function of users
|
||||
* listed on User Management page in WSO2 MDM Console.
|
||||
*/
|
||||
$(function () {
|
||||
var sortableElem = '.wr-sortable';
|
||||
$(sortableElem).sortable({
|
||||
beforeStop: function () {
|
||||
var sortedIDs = $(this).sortable('toArray');
|
||||
console.log(sortedIDs);
|
||||
}
|
||||
});
|
||||
$(sortableElem).disableSelection();
|
||||
});
|
||||
|
||||
var modalPopup = ".wr-modalpopup";
|
||||
var modalPopupContainer = modalPopup + " .modalpopup-container";
|
||||
var modalPopupContent = modalPopup + " .modalpopup-content";
|
||||
var body = "body";
|
||||
|
||||
/*
|
||||
* set popup maximum height function.
|
||||
*/
|
||||
function setPopupMaxHeight() {
|
||||
$(modalPopupContent).css('max-height', ($(body).height() - ($(body).height() / 100 * 30)));
|
||||
$(modalPopupContainer).css('margin-top', (-($(modalPopupContainer).height() / 2)));
|
||||
}
|
||||
|
||||
/*
|
||||
* show popup function.
|
||||
*/
|
||||
function showPopup() {
|
||||
$(modalPopup).show();
|
||||
setPopupMaxHeight();
|
||||
}
|
||||
|
||||
/*
|
||||
* hide popup function.
|
||||
*/
|
||||
function hidePopup() {
|
||||
$(modalPopupContent).html('');
|
||||
$(modalPopup).hide();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Following functions should be triggered after AJAX request is made.
|
||||
*/
|
||||
function attachEvents() {
|
||||
/**
|
||||
* Following click function would execute
|
||||
* when a user clicks on "Remove" link
|
||||
* on Device Management page in WSO2 MDM Console.
|
||||
*/
|
||||
$("a.remove-device-link").click(function () {
|
||||
var deviceId = $(this).data("deviceid");
|
||||
var deviceType = $(this).data("devicetype");
|
||||
var removeDeviceAPI = "/iotserver/api/device/" + deviceType + "/" + deviceId + "/remove";
|
||||
|
||||
$(modalPopupContent).html($('#remove-device-modal-content').html());
|
||||
showPopup();
|
||||
|
||||
$("a#remove-device-yes-link").click(function () {
|
||||
invokerUtil.get(
|
||||
removeDeviceAPI,
|
||||
function (data,txtStatus,jqxhr) {
|
||||
var status = jqxhr.status;
|
||||
if (status == 200) {
|
||||
$(modalPopupContent).html($('#remove-device-200-content').html());
|
||||
$("a#remove-device-200-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
$("")
|
||||
} else if (status == 400) {
|
||||
$(modalPopupContent).html($('#remove-device-400-content').html());
|
||||
$("a#remove-device-400-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
} else if (status == 403) {
|
||||
$(modalPopupContent).html($('#remove-device-403-content').html());
|
||||
$("a#remove-device-403-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
} else if (status == 409) {
|
||||
$(modalPopupContent).html($('#remove-device-409-content').html());
|
||||
$("a#remove-device-409-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
}
|
||||
},
|
||||
function () {
|
||||
$(modalPopupContent).html($('#remove-device-unexpected-error-content').html());
|
||||
$("a#remove-device-unexpected-error-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$("a#remove-device-cancel-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* Following click function would execute
|
||||
* when a user clicks on "Edit" link
|
||||
* on Device Management page in WSO2 MDM Console.
|
||||
*/
|
||||
$("a.edit-device-link").click(function () {
|
||||
var deviceId = $(this).data("deviceid");
|
||||
var deviceType = $(this).data("devicetype");
|
||||
var deviceName = $(this).data("devicename");
|
||||
var editDeviceAPI = "/iotserver/api/device/" + deviceType + "/" + deviceId + "/update";
|
||||
|
||||
$(modalPopupContent).html($('#edit-device-modal-content').html());
|
||||
$('#edit-device-name').val(deviceName);
|
||||
showPopup();
|
||||
|
||||
$("a#edit-device-yes-link").click(function () {
|
||||
var device={"device":{"name" : $('#edit-device-name').val()}};
|
||||
invokerUtil.post(
|
||||
editDeviceAPI,
|
||||
device,
|
||||
function (data,txtStatus,jqxhr) {
|
||||
var status = jqxhr.status;
|
||||
if (status == 200) {
|
||||
$(modalPopupContent).html($('#edit-device-200-content').html());
|
||||
$("a#edit-device-200-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
} else if (status == 400) {
|
||||
$(modalPopupContent).html($('#edit-device-400-content').html());
|
||||
$("a#edit-device-400-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
} else if (status == 403) {
|
||||
$(modalPopupContent).html($('#edit-device-403-content').html());
|
||||
$("a#edit-device-403-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
} else if (status == 409) {
|
||||
$(modalPopupContent).html($('#edit-device-409-content').html());
|
||||
$("a#edit-device-409-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
}
|
||||
},
|
||||
function () {
|
||||
$(modalPopupContent).html($('#edit-device-unexpected-error-content').html());
|
||||
$("a#edit-device-unexpected-error-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$("a#edit-device-cancel-link").click(function () {
|
||||
hidePopup();
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in new issue