diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml new file mode 100644 index 0000000000..069494173f --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/pom.xml @@ -0,0 +1,171 @@ + + + + + + org.wso2.carbon.devicemgt-plugins + device-mgt-iot-feature + 1.9.2-SNAPSHOT + ../pom.xml + + + 4.0.0 + org.wso2.carbon.device.mgt.iot.feature + pom + 1.9.2-SNAPSHOT + WSO2 Carbon - IoT Server - Features + http://wso2.org + This feature contains the core bundles required for IoT Server + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.api + war + + + + org.json.wso2 + json + + + + + org.igniterealtime.smack.wso2 + smack + + + org.igniterealtime.smack.wso2 + smackx + + + + net.sf.ehcache.wso2 + ehcache + 1.5.0.wso2v3 + + + + + + + + maven-resources-plugin + + + copy-resources + generate-resources + + copy-resources + + + src/main/resources + + + resources + + build.properties + p2.inf + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy + package + + copy + + + + + org.wso2.carbon.devicemgt-plugins + org.wso2.carbon.device.mgt.iot.api + war + true + ${basedir}/src/main/resources/webapps/ + common.war + + + + + + + + org.wso2.maven + carbon-p2-plugin + + + p2-feature-generation + package + + p2-feature-gen + + + org.wso2.carbon.device.mgt.iot + ../../../features/etc/feature.properties + + + org.wso2.carbon.p2.category.type:server + org.eclipse.equinox.p2.type.group:false + + + + + org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot:${carbon.iot.device.mgt.version} + + + org.json.wso2:json:${commons-json.version} + + + org.igniterealtime.smack.wso2:smack:${smack.wso2.version} + + + org.igniterealtime.smack.wso2:smackx:${smackx.wso2.version} + + + net.sf.ehcache.wso2:ehcache + + + + org.wso2.carbon.core.server:${carbon.kernel.version} + + org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} + + + + + + + + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/build.properties b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/build.properties new file mode 100644 index 0000000000..9c86577d76 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/build.properties @@ -0,0 +1 @@ +custom = true diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xml b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xml similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xml rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xml diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xsd b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xsd similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xsd rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/devicecloud-config.xsd diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xml b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xml similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xml rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xml diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xsd b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xsd similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xsd rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/conf/iot-config.xsd diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/device-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/device-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/device-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/device-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/event-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/event-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/event-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/event-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/group-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/group-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/group-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/group-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/operation-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/operation-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/operation-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/operation-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/policy-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/policy-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/policy-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/policy-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/stats-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/stats-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/stats-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/stats-api.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/user-api.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/user-api.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/user-api.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/api/user-api.jag diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/config.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/config.json new file mode 100644 index 0000000000..b4516196eb --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/config.json @@ -0,0 +1,16 @@ +{ + "appContext" : "/iotserver/", + "apiContext" : "api", + "httpsURL": "%https.ip%", + "httpURL": "%http.ip%", + "ssoConfiguration": { + "enabled": false, + "issuer": "iot", + "appName": "iot", + "identityProviderURL": "%https.ip%/sso/samlsso.jag", + "responseSigningEnabled": "true", + "keyStorePassword": "wso2carbon", + "identityAlias": "wso2carbon", + "keyStoreName": "/repository/resources/security/wso2carbon.jks" + } +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/dc-props.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/dc-props.js new file mode 100644 index 0000000000..7911f514d0 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/dc-props.js @@ -0,0 +1,37 @@ +/* + * 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. + */ + +var config = function () { + var conf = application.get("PINCH_CONFIG"); + if (!conf) {//if not in cache + var pinch = require('/modules/pinch.min.js').pinch; + var server = require('carbon').server; + var config = require('/config/config.json'); + pinch(config, /^/, function (path, key, value) { + if ((typeof value === 'string') && value.indexOf('%https.ip%') > -1) { + return value.replace('%https.ip%', server.address("https")); + } else if ((typeof value === 'string') && value.indexOf('%http.ip%') > -1) { + return value.replace('%http.ip%', server.address("http")); + } + return value; + }); + application.put("PINCH_CONFIG", config);//caching + conf = config; + } + return conf; +}; \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/init.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/init.js new file mode 100644 index 0000000000..5fd208f2da --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/config/init.js @@ -0,0 +1,28 @@ +/* + * 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. + */ + +var carbonModule = require("carbon"); +var dcProps = require('/config/dc-props.js').config(); +var carbonServer = new carbonModule.server.Server({ + tenanted: true, + url: dcProps.httpsURL + '/admin' +}); +application.put("carbonServer", carbonServer); +var userModule = require("/modules/user.js").userModule; +var utility = require("/modules/utility.js").utility; +utility.insertAppPermissions(userModule, "init"); diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/jaggery.conf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/jaggery.conf new file mode 100644 index 0000000000..5a7e83c162 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/jaggery.conf @@ -0,0 +1,67 @@ +{ + "displayName": "Fuse Sample", + "logLevel": "info", + "initScripts": ["/config/init.js"], + "urlMappings": [ + { + "url" : "/testb/*", + "path" : "test.jag" + }, + { + "url" : "/test/*", + "path" : "test/testExecutor.jag" + }, + { + "url": "/api/device/*", + "path": "/api/device-api.jag" + }, + { + "url": "/api/devices/*", + "path": "/api/device-api.jag" + }, + { + "url": "/api/group/*", + "path": "/api/group-api.jag" + }, + { + "url": "/api/event/*", + "path": "/api/event-api.jag" + }, + { + "url": "/api/operation/*", + "path": "/api/operation-api.jag" + }, + { + "url": "/api/user/*", + "path": "/api/user-api.jag" + }, + { + "url": "/api/users/*", + "path": "/api/user-api.jag" + }, + { + "url": "/api/stats/*", + "path": "/api/stats-api.jag" + }, + { + "url": "/api/policies/*", + "path": "/api/policy-api.jag" + }, + { + "url": "/sso/login", + "path": "/lib/login.jag" + }, + { + "url": "/sso/logout", + "path": "/lib/logout.jag" + }, + { + "url": "/sso/acs", + "path": "/lib/acs.jag" + }, + { + "url": "/*", + "path": "/lib/fuse.jag" + } + ] +} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/enrollment.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/enrollment.hbs new file mode 100644 index 0000000000..553c912377 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/enrollment.hbs @@ -0,0 +1,30 @@ + + + + + + + {{ defineZone "title"}} + + {{ defineZone "topLibCss"}} + {{ defineZone "topCss"}} + + +
+ +
+
+ +
+
+ + {{ defineZone "body"}} + {{ defineZone "footer"}} +
+ {{ defineZone "bottomjquery" }} + {{ defineZone "bottomLibJs" }} + {{ defineZone "bottomJs" }} + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid-backup.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid-backup.hbs new file mode 100644 index 0000000000..6c9436ce6c --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid-backup.hbs @@ -0,0 +1,44 @@ + + + + + {{ defineZone "title"}} + {{ defineZone "topCss"}} + + + + + +
+
+
+ {{ defineZone "content"}} +
+
+ +
+ + + + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid.hbs new file mode 100644 index 0000000000..6cedfaad5a --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/fluid.hbs @@ -0,0 +1,40 @@ + + + + + + + {{defineZone "favicon"}} + + {{ defineZone "title"}} + + {{ defineZone "topLibCss"}} + {{ defineZone "topCss"}} + + +
+
+
+ + + + + GO BACK +
+
+
+
+
+ {{ defineZone "notification"}} +
+ + {{ defineZone "header"}} + + {{ defineZone "body"}} + {{ defineZone "footer"}} +
+ {{ defineZone "bottomjquery" }} + {{ defineZone "bottomLibJs" }} + {{ defineZone "bottomJs" }} + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/nav-fluid.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/nav-fluid.hbs new file mode 100644 index 0000000000..0027877267 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/layouts/nav-fluid.hbs @@ -0,0 +1,50 @@ + + + + + {{ defineZone "title"}} + {{ defineZone "topCss"}} + + + + +
+
+ +
+
+ {{ defineZone "left"}} +
+ +
+ {{ defineZone "content"}} +
+
+ +
+ +
+ + + + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/acs.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/acs.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/acs.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/acs.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse-router.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse-router.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse-router.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse-router.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/fuse.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-helpers.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-helpers.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-helpers.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-helpers.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-v2.0.0.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-v2.0.0.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-v2.0.0.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/handlebars-v2.0.0.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/less-rhino-1.7.5.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/less-rhino-1.7.5.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/less-rhino-1.7.5.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/less-rhino-1.7.5.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/login.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/login.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/login.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/login.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/logout.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/logout.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/logout.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/lib/logout.jag diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/api-wrapper-util.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/api-wrapper-util.js new file mode 100644 index 0000000000..2de3c4fac4 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/api-wrapper-util.js @@ -0,0 +1,41 @@ +/* + * 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. + */ + +var apiWrapperUtil = function () { + var module = {}; + var tokenUtil = require("/modules/util.js").util; + module.refreshToken = function () { + var tokenPair = session.get("accessTokenPair"); + tokenPair = tokenUtil.refreshToken(tokenPair); + session.put("accessTokenPair", tokenPair); + response.addCookie({'name': 'accessToken', 'value': tokenPair.accessToken}); + }; + module.setupAccessTokenPair = function (type, properties) { + var tokenPair; + var clientId = "pY0FbBUC_GI7mfHVS1FvhWAifEwa"; + var clientSecret = "Tu5Za1R3fHtGc5yH4KK8TNiLVSca"; + if (type == "password") { + //tokenPair = tokenUtil.getTokenWithPasswordGrantType(properties.username, properties.password, clientId, clientSecret); + } else if (type == "saml") { + + } + //session.put("accessTokenPair", tokenPair); + //response.addCookie({'name': 'accessToken', 'value': tokenPair.accessToken}); + }; + return module; +}(); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/constants.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/constants.js new file mode 100644 index 0000000000..c0cb451682 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/constants.js @@ -0,0 +1,47 @@ +/* + * 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. + */ + +var WEB_APP_TITLE = "WSO2 IoT - IoT Server"; +var WEB_APP_CONTEXT = "/iotserver"; +var USER_SESSION_KEY = "USER"; +var UNSPECIFIED = "Unspecified"; +var DEVICES_UNIT_PATH="/units/"; +var POLICY_REGISTRY_PATH="/_system/governance/policy_declarations/"; + +var DEVICE_IDENTIFIER = "deviceIdentifier"; +var DEVICE_NAME = "name"; +var DEVICE_OWNERSHIP = "ownership"; +var DEVICE_OWNER = "owner"; +var DEVICE_TYPE = "type"; +var DEVICE_VENDOR = "vendor"; +var DEVICE_MODEL = "model"; +var DEVICE_PRODUCT = "PRODUCT"; +var DEVICE_OS_VERSION = "osVersion"; +var DEVICE_PROPERTIES = "properties"; + +var FEATURE_NAME = "featureName"; +var FEATURE_DESCRIPTION = "featureDescription"; + +var PLATFORM_ANDROID = "android"; +var PLATFORM_IOS = "ios"; +var DEVICE_ENROLLMENT = "dateOfEnrolment"; + +var VENDOR_APPLE = "Apple"; +var ERRORS = { + "USER_NOT_FOUND": "USER_NOT_FOUND" +}; diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/device.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/device.js new file mode 100644 index 0000000000..195bba887c --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/device.js @@ -0,0 +1,279 @@ +/* + * 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. + */ +var deviceModule; +deviceModule = function () { + var log = new Log("modules/device.js"); + + var constants = require("/modules/constants.js"); + var utility = require("/modules/utility.js").utility; + + var carbon = require('carbon'); + var carbonHttpServletTransport = carbon.server.address('http'); + var carbonHttpsServletTransport = carbon.server.address('https'); + + var ArrayList = Packages.java.util.ArrayList; + var Properties = Packages.java.util.Properties; + var DeviceIdentifier = Packages.org.wso2.carbon.device.mgt.common.DeviceIdentifier; + var DeviceManagerUtil = Packages.org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil; + var SimpleOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.SimpleOperation; + var ConfigOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.ConfigOperation; + var CommandOperation = Packages.org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation; + var deviceManagementDAOFactory = Packages.org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory; + + var deviceManagementService = utility.getDeviceManagementService(); + + var publicMethods = {}; + var privateMethods = {}; + + privateMethods.validateAndReturn = function (value) { + return (value == undefined || value == null) ? constants.UNSPECIFIED : value; + }; + + privateMethods.getStoreDefinition = function (deviceTypeStr) { + var storeJSON = new File(constants.DEVICES_UNIT_PATH + deviceTypeStr + "/public/store.json"); + if (storeJSON.isExists()) { + storeJSON.open('r'); + log.debug('reading file "' + storeJSON.getPath() + '"'); + var content = storeJSON.readAll().trim(); + storeJSON.close(); + return parse(content); + } + return null; + }; + + publicMethods.listDevices = function () { + var devices = deviceManagementService.getAllDevices(); + var deviceList = []; + var i, device, propertiesList, deviceObject; + for (i = 0; i < devices.size(); i++) { + device = devices.get(i); + propertiesList = DeviceManagerUtil.convertDevicePropertiesToMap(device.getProperties()); + + deviceObject = {}; + deviceObject[constants.DEVICE_IDENTIFIER] = + privateMethods.validateAndReturn(device.getDeviceIdentifier()); + deviceObject[constants.DEVICE_NAME] = + privateMethods.validateAndReturn(device.getName()); + deviceObject[constants.DEVICE_OWNERSHIP] = + privateMethods.validateAndReturn(device.getOwnership()); + deviceObject[constants.DEVICE_OWNER] = + privateMethods.validateAndReturn(device.getOwner()); + deviceObject[constants.DEVICE_TYPE] = + privateMethods.validateAndReturn(device.getType()); + deviceObject[constants.DEVICE_PROPERTIES] = {}; + if (device.getType() == constants.PLATFORM_IOS) { + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_PRODUCT)); + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = constants.VENDOR_APPLE; + } else { + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_MODEL)); + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_VENDOR)); + } + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_OS_VERSION] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_OS_VERSION)); + + deviceList.push(deviceObject); + } + return deviceList; + }; + + publicMethods.listDevicesForUser = function (username) { + var devices = deviceManagementService.getDeviceListOfUser(username); + var deviceList = []; + var i, device, propertiesList, deviceObject; + for (i = 0; i < devices.size(); i++) { + device = devices.get(i); + propertiesList = DeviceManagerUtil.convertDevicePropertiesToMap(device.getProperties()); + + deviceObject = {}; + deviceObject[constants.DEVICE_IDENTIFIER] = + privateMethods.validateAndReturn(device.getDeviceIdentifier()); + deviceObject[constants.DEVICE_NAME] = + privateMethods.validateAndReturn(device.getName()); + deviceObject[constants.DEVICE_OWNERSHIP] = + privateMethods.validateAndReturn(device.getOwnership()); + deviceObject[constants.DEVICE_OWNER] = + privateMethods.validateAndReturn(device.getOwner()); + deviceObject[constants.DEVICE_TYPE] = + privateMethods.validateAndReturn(device.getType()); + deviceObject[constants.DEVICE_PROPERTIES] = {}; + if (device.getType() == constants.PLATFORM_IOS) { + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_PRODUCT)); + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = constants.VENDOR_APPLE; + } else { + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_MODEL] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_MODEL)); + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_VENDOR] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_VENDOR)); + } + deviceObject[constants.DEVICE_PROPERTIES][constants.DEVICE_OS_VERSION] = + privateMethods.validateAndReturn(propertiesList.get(constants.DEVICE_OS_VERSION)); + + deviceList.push(deviceObject); + } + return deviceList; + }; + + /** + * Return list of device types. + * Device types should be registered in CDMF and specific unit with name of '{devicetype}' should be presented. + * @returns {Array} + */ + publicMethods.listDeviceTypes = function () { + deviceManagementDAOFactory.openConnection(); + var deviceTypes = deviceManagementDAOFactory.getDeviceTypeDAO().getDeviceTypes(); + deviceManagementDAOFactory.closeConnection(); + var deviceTypesList = []; + var i, deviceType, deviceTypeObject; + for (i = 0; i < deviceTypes.size(); i++) { + deviceType = deviceTypes.get(i); + var deviceUnit = new File(constants.DEVICES_UNIT_PATH + deviceType.getName()); + if (deviceUnit.isExists()) { + deviceTypeObject = {}; + deviceTypeObject["name"] = deviceType.getName(); + deviceTypeObject["id"] = deviceType.getId(); + var storeProperties = privateMethods.getStoreDefinition(deviceType.getName()); + if (storeProperties) { + deviceTypeObject["storeTitle"] = storeProperties.title; + deviceTypeObject["storeDescription"] = storeProperties.description; + } + deviceTypesList.push(deviceTypeObject); + } else { + log.warn("Device type `" + deviceType.getName() + "` is missing unit implementation at: " + constants.DEVICES_UNIT_PATH); + } + } + return deviceTypesList; + }; + + publicMethods.removeDevice = function (deviceType, deviceId) { + //URL: https://localhost:9443/{deviceType}/manager/device/remove/{deviceId} + var deviceCloudService = carbonHttpsServletTransport + "/" + deviceType + "/manager", + removeDeviceEndpoint = deviceCloudService + "/device/remove/" + deviceId; + + var data = {}; + //XMLHTTPRequest's GET + //log.info(removeDeviceEndpoint); + return del(removeDeviceEndpoint, data, "text"); + }; + + publicMethods.updateDevice = function (deviceType, deviceId, device) { + //URL: https://localhost:9443/{deviceType}/manager/device/update/{deviceId} + var deviceCloudService = carbonHttpsServletTransport + "/" + deviceType + "/manager", + updateDeviceEndpoint = deviceCloudService + "/device/update/" + deviceId; + + var data = {}; + //XMLHTTPRequest's POST + //log.info(updateDeviceEndpoint+ "?name="+device.name); + return post(updateDeviceEndpoint + "?name=" + encodeURIComponent(device.name), data, "text"); + }; + + /* + Get the supported features by the device type + */ + publicMethods.getFeatures = function (deviceType) { + var features = deviceManagementService.getFeatureManager(deviceType).getFeatures(); + var featuresConverted = {}; + + if (features) { + var i, feature, featureObject; + for (i = 0; i < features.size(); i++) { + feature = features.get(i); + featureObject = {}; + featureObject[constants.FEATURE_NAME] = feature.getName(); + featureObject[constants.FEATURE_DESCRIPTION] = feature.getDescription(); + featuresConverted[feature.getName()] = featureObject; + } + } + return featuresConverted; + }; + + publicMethods.performOperation = function (devices, operation) { + var operationInstance; + if (operation.type == "COMMAND") { + operationInstance = new CommandOperation(); + } else if (operation.type == "CONFIG") { + operationInstance = new ConfigOperation(); + } else { + operationInstance = new SimpleOperation(); + } + operationInstance.setCode(operation.featureName); + var props = new Properties(); + var i, object; + for (i = 0; i < operation.properties.length; i++) { + object = properties[i]; + props.setProperty(object.key, object.value); + } + operationInstance.setProperties(props); + var deviceList = new ArrayList(); + var j, device, deviceIdentifier; + for (j = 0; j < devices.length; i++) { + device = devices[j]; + deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setId(device.id); + deviceIdentifier.setType(device.type); + deviceList.add(deviceIdentifier); + } + deviceManagementService.addOperation(operationInstance, deviceList); + }; + + publicMethods.getDevice = function (type, deviceId) { + var deviceIdentifier = new DeviceIdentifier(); + deviceIdentifier.setType(type); + deviceIdentifier.setId(deviceId); + return deviceManagementService.getDevice(deviceIdentifier); + }; + + publicMethods.viewDevice = function (type, deviceId) { + var device = publicMethods.getDevice(type, deviceId); + if (device) { + var propertiesList = DeviceManagerUtil.convertDevicePropertiesToMap(device.getProperties()); + var entries = propertiesList.entrySet(); + var iterator = entries.iterator(); + var properties = {}; + var entry, key, value; + + while (iterator.hasNext()) { + entry = iterator.next(); + key = entry.getKey(); + value = entry.getValue(); + properties[key] = privateMethods.validateAndReturn(value); + } + + var deviceObject = {}; + deviceObject[constants.DEVICE_IDENTIFIER] = device.getDeviceIdentifier(); + deviceObject[constants.DEVICE_NAME] = privateMethods.validateAndReturn(device.getName()); + deviceObject[constants.DEVICE_OWNERSHIP] = privateMethods.validateAndReturn(device.getEnrolmentInfo().getOwnership()); + deviceObject[constants.DEVICE_OWNER] = device.getEnrolmentInfo().getOwner(); + deviceObject[constants.DEVICE_TYPE] = device.getType(); + if (device.getType() == constants.PLATFORM_IOS) { + properties[constants.DEVICE_MODEL] = properties[constants.DEVICE_PRODUCT]; + delete properties[constants.DEVICE_PRODUCT]; + properties[constants.DEVICE_VENDOR] = constants.VENDOR_APPLE; + } + deviceObject[constants.DEVICE_PROPERTIES] = properties; + deviceObject[constants.DEVICE_ENROLLMENT] = device.getEnrolmentInfo().getDateOfEnrolment(); + return deviceObject; + } + }; + + return publicMethods; + +}(); diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/download.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/download.js new file mode 100644 index 0000000000..5394c8bf22 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/download.js @@ -0,0 +1,68 @@ +/* + * 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. + */ + +var downloadModule; +var Handlebars = require('../lib/handlebars-v2.0.0.js').Handlebars; +downloadModule = function () { + var log = new Log("modules/download.js"); + + var constants = require("/modules/constants.js"); + + var publicMethods = {}; + var privateMethods = {}; + + /** + * Downloading a specified sketch file. + * + * @param file File name or file object of the downloading file + * @param replaceParams + */ + publicMethods.downloadSketch = function (file, response, replaceParams) { + var file = new File("../sketch/" + file); + + file.open('r'); + log.debug("Reading file '" + file.getPath() + "'"); + var content = file.readAll().trim(); + file.close(); + + var downloadFile = privateMethods.allReplace(content,replaceParams); + + response.contentType = "application/octet-stream"; + response.addHeader("Content-Disposition", "attachment; filename='sketch.hbs'"); + response.addHeader("Content-Length", String(downloadFile.length)); + response.content = downloadFile; + }; + + /** + * Find and replace all occurrences. + * @param inStr input string + * @param replaceParams key value array + * @returns retStr replaced string + */ + privateMethods.allReplace = function (inStr, replaceParams) { + var retStr = inStr; + for (var x in replaceParams) { + retStr = retStr.replace(new RegExp(x, 'g'), replaceParams[x]) + } + return retStr; + }; + + return publicMethods; +}(); + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/event.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/event.js new file mode 100644 index 0000000000..bf4a01de09 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/event.js @@ -0,0 +1,57 @@ +/* + * 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. + */ + +var eventModule; +eventModule = function () { + var log = new Log("modules/event.js"); + + var constants = require("/modules/constants.js"); + var utility = require("/modules/utility.js").utility; + + var publicMethods = {}; + var privateMethods = {}; + + var statsClient = new Packages.org.wso2.carbon.device.mgt.iot.common.analytics.statistics.IoTEventsStatisticsClient; + + publicMethods.getEventsData = function (username, recordLimit) { + var fetchedData = null; + + try { + fetchedData = statsClient.getRecentDeviceStats(username, recordLimit); + } catch (error) { + log.error(error); + } + + var eventsData = []; + + for (var i = 0; i < fetchedData.size(); i++) { + eventsData.push({ + time: fetchedData.get(i).getTime(), + deviceId: fetchedData.get(i).getDeviceId(), + activity: fetchedData.get(i).getDeviceActivity() + }); + }; + + return eventsData; + }; + + + return publicMethods; +}(); + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/pinch.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/pinch.min.js new file mode 100644 index 0000000000..feccd2da86 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/pinch.min.js @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2011 František Hába +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the 'Software'), to deal in +* the Software without restriction, including without limitation the rights to use, +* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +* Software, and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Reference:- https://github.com/Baggz/Pinch +* Pinch is a small JavaScript utility which is able to replace any data in a JavaScript object (or JSON). +* */ +(function(){var k=function(a,c){return a.length!==c.length?!1:a.every(function(a,b){return c[b]===a})},j=function(a,c,d){var b,e;if("[object Array]"===Object.prototype.toString.call(a)){b=0;for(e=a.length;b

You are now being redirected to SSO Provider. If the redirection fails, please click on the "+ + "button below.

" + + ""); + }; + + sso.logout = function (user) { + var sso_sessions = getSSOSessions(); + sso.sessionId = session.getId(); + sso.sessionIndex = sso_sessions[sso.sessionId]; + + var referer = request.getHeader("referer"); + sso.relayState = (referer ? referer : sso.relayState); + sso.relayState = sso.relayState + request.getQueryString(); // append query string + sso.encodedSAMLLogoutRequest = ssoMod.client.getEncodedSAMLLogoutRequest(user, sso.sessionIndex, sso.issuer); + var postUrl = sso.address + sso.ssoService; + + if (log.isDebugEnabled()) { + sso.log.debug("Logout request recieved from session id ::: " + sso.sessionId); + } + print("

You are now redirected to Stratos Identity. If theredirection fails, please click the post " + + "button.

"); + }; + + sso.acs = function (loginCallback, logoutCallback) { + var sso_sessions = getSSOSessions(); + sso.sessionId = session.getId(); + var samlResponse = request.getParameter('SAMLResponse'); + var samlRequest = request.getParameter('SAMLRequest'); + var relayState = request.getParameter('RelayState'); + var samlRespObj; + + if (samlResponse != null) { + samlRespObj = ssoMod.client.getSamlObject(samlResponse); + if (ssoMod.client.isLogoutResponse(samlRespObj)) { + logoutCallback(); + if (log.isDebugEnabled()) { + sso.log.debug('Session Id Invalidated :::' + sso.sessionId); + } + // Invalidating the session after the callback + session.invalidate(); + } else { + if (log.isDebugEnabled()) { + sso.log.debug("Login request"); + } + // validating the signature + if (sso.responseSign) { + if (ssoMod.client.validateSignature(samlRespObj, sso.keyStoreProps)) { + var sessionObj = ssoMod.client.decodeSAMLLoginResponse(samlRespObj, samlResponse, + sso.sessionId); + if (log.isDebugEnabled()) { + sso.log.debug("Saml object session ID :::" + sessionObj.sessionId); + } + if (sessionObj.sessionIndex != null || sessionObj.sessionIndex != 'undefined') { + sso_sessions[sso_sessions[sessionObj.sessionIndex] = sessionObj.sessionId] = + sessionObj.sessionIndex; + if (log.isDebugEnabled()) { + sso.log.debug("Login successful"); + sso.log.debug('User is set :::' + sessionObj.loggedInUser); + } + loginCallback(sessionObj.loggedInUser); + } else { + sso.log.error("Session index invalid"); + } + } else { + sso.log.error("Response Signing failed"); + } + } else { + if (log.isDebugEnabled()) { + sso.log.debug("Response Signing is disabled"); + } + } + } + } + /* + Executed for single logout requests + */ + if (samlRequest != null) { + var index = ssoMod.client.decodeSAMLLogoutRequest(ssoMod.client.getSamlObject(samlRequest)); + var jSessionId = getSSOSessions()[index]; + delete getSSOSessions()[index]; + if (log.isDebugEnabled()) { + sso.log.debug('Backend logout received from store. The index is :::' + index); + sso.log.debug('Session Id Invalidated :::' + jSessionId); + } + session.invalidate(); + } + } +})(); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/user.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/user.js new file mode 100644 index 0000000000..7689494353 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/user.js @@ -0,0 +1,357 @@ +/* + * 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. + */ + +var userModule; +userModule = function () { + var log = new Log("modules/user.js"); + + var constants = require("/modules/constants.js"); + var utility = require("/modules/utility.js").utility; + + var publicMethods = {}; + var privateMethods = {}; + + /** + * Authenticate a user when he or she attempts to login to DC. + * + * @param username Username of the user + * @param password Password of the user + * @param successCallback Function to be called at the event of successful authentication + * @param failureCallback Function to be called at the event of failed authentication + */ + publicMethods.login = function (username, password, successCallback, failureCallback) { + var carbonModule = require("carbon"); + var carbonServer = application.get("carbonServer"); + try { + // get tenant specific full user name. + username = username + "@" + carbonModule.server.tenantDomain(); + // check if the user is an authenticated user. + var isAuthenticated = carbonServer.authenticate(username, password); + if (isAuthenticated) { + var tenantUser = carbonModule.server.tenantUser(username); + session.put(constants.USER_SESSION_KEY, tenantUser); + successCallback(tenantUser); + } else { + failureCallback(); + } + } catch (e) { + throw e; + } + }; + + /** + * Register user to dc-user-store. + * + * @param username Username of the user + * @param firstname First name of the user + * @param lastname Last name of the user + * @param emailAddress Email address of the user + * @param password Password of the user + * @param userRoles Roles assigned to the user + * + * @returns {number} HTTP Status code 201 if succeeded, 409 if user already exists + */ + publicMethods.registerUser = function (username, firstname, lastname, emailAddress, password, userRoles) { + var carbon = require('carbon'); + var tenantId = carbon.server.tenantId(); + var url = carbon.server.address('https') + "/admin/services"; + var server = new carbon.server.Server(url); + var userManager = new carbon.user.UserManager(server, tenantId); + + try { + if (userManager.userExists(username)) { + if (log.isDebugEnabled()) { + log.debug("A user with name '" + username + "' already exists."); + } + // http status code 409 refers to - conflict. + return 409; + } else { + var defaultUserClaims = privateMethods.buildDefaultUserClaims(firstname, lastname, emailAddress); + + userManager.addUser(username, password, userRoles, defaultUserClaims, "default"); + if (log.isDebugEnabled()) { + log.debug("A new user with name '" + username + "' was created."); + } + // http status code 201 refers to - created. + return 201; + } + } catch (e) { + throw e; + } + }; + + /** + * Add user to dc-user-store. + * + * @param username Username of the user + * @param firstname First name of the user + * @param lastname Last name of the user + * @param emailAddress Email address of the user + * @param userRoles Roles assigned to the user + * + * @returns {number} HTTP Status code 201 if succeeded, 409 if user already exists + */ + publicMethods.addUser = function (username, firstname, lastname, emailAddress, userRoles) { + var carbon = require('carbon'); + var tenantId = carbon.server.tenantId(); + var url = carbon.server.address('https') + "/admin/services"; + var server = new carbon.server.Server(url); + var userManager = new carbon.user.UserManager(server, tenantId); + + try { + if (userManager.userExists(username)) { + if (log.isDebugEnabled()) { + log.debug("A user with name '" + username + "' already exists."); + } + // http status code 409 refers to - conflict. + return 409; + } else { + var initialUserPassword = privateMethods.generateInitialUserPassword(); + var defaultUserClaims = privateMethods.buildDefaultUserClaims(firstname, lastname, emailAddress); + + userManager.addUser(username, initialUserPassword, userRoles, defaultUserClaims, "default"); + privateMethods.inviteUserToEnroll(username, initialUserPassword); + if (log.isDebugEnabled()) { + log.debug("A new user with name '" + username + "' was created."); + } + // http status code 201 refers to - created. + return 201; + } + } catch (e) { + throw e; + } + }; + + /** + * Remove an existing user from mdm-user-store. + * + * @param username Username of the user + * @returns {number} HTTP Status code 200 if succeeded, 409 if the user does not exist + */ + publicMethods.removeUser = function (username) { + var carbon = require('carbon'); + var tenantId = carbon.server.tenantId(); + var url = carbon.server.address('https') + "/admin/services"; + var server = new carbon.server.Server(url); + var userManager = new carbon.user.UserManager(server, tenantId); + + try { + if (userManager.userExists(username)) { + userManager.removeUser(username); + if (log.isDebugEnabled()) { + log.debug("An existing user with name '" + username + "' was removed."); + } + // http status code 200 refers to - success. + return 200; + } else { + if (log.isDebugEnabled()) { + log.debug("A user with name '" + username + "' does not exist to remove."); + } + // http status code 409 refers to - conflict. + return 409; + } + } catch (e) { + throw e; + } + }; + + /** + * Private method to be used by addUser() to + * generate an initial user password for a user. + * This will be the password used by a user for his initial login to the system. + * + * @returns {string} Initial User Password + */ + privateMethods.generateInitialUserPassword = function () { + var passwordLength = 6; + //defining the pool of characters to be used for initial password generation + var lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz"; + var upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + var numericCharset = "0123456789"; + + var totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset; + var totalCharsetLength = totalCharset.length; + + var initialUserPassword = ""; + for (var i = 0; i < passwordLength; ++i) { + initialUserPassword += totalCharset.charAt(Math.floor(Math.random() * totalCharsetLength)); + } + if (log.isDebugEnabled()) { + log.debug("Initial password created for new user : " + initialUserPassword); + } + return String(initialUserPassword); + }; + + /** + * Build default user claims. + * + * @param firstname First name of the user + * @param lastname Last name of the user + * @param emailAddress Email address of the user + * + * @returns {Object} Default user claims to be provided + */ + privateMethods.buildDefaultUserClaims = function (firstname, lastname, emailAddress) { + var defaultUserClaims = { + "http://wso2.org/claims/givenname": firstname, + "http://wso2.org/claims/lastname": lastname, + "http://wso2.org/claims/emailaddress": emailAddress + }; + if (log.isDebugEnabled()) { + log.debug("ClaimMap created for new user : " + stringify(defaultUserClaims)); + } + return defaultUserClaims; + }; + + publicMethods.addPermissions = function (permissionList, path, init) { + var carbonModule = require("carbon"); + var carbonServer = application.get("carbonServer"); + var options = {system: true}; + if (init == "login") { + var carbonUser = session.get(constants.USER_SESSION_KEY); + if (carbonUser) { + options.tenantId = carbonUser.tenantId; + } + } + var registry = new carbonModule.registry.Registry(carbonServer, options); + var i, permission, resource; + for (i = 0; i < permissionList.length; i++) { + permission = permissionList[i]; + resource = { + collection : true, + name : permission.name, + properties : { + name : permission.name + } + }; + registry.put("/_system/governance/permission/" + path + "/" + permission.key, resource); + } + }; + + publicMethods.getUsers = function () { + var users = []; + var carbonUser = session.get(constants.USER_SESSION_KEY); + if (!carbonUser) { + log.error("User object was not found in the session"); + throw constants.ERRORS.USER_NOT_FOUND; + } + var carbon = require('carbon'); + var tenantId = carbon.server.tenantId(); + var url = carbon.server.address('https') + "/admin/services"; + var server = new carbon.server.Server(url); + var userManager = new carbon.user.UserManager(server, tenantId); + var userList = userManager.listUsers(); + var i, username, userObject, email, firstname, lastname; + for (i = 0; i < userList.length; i++) { + username = userList[i]; + userObject = userManager.getUser(username); + email = userManager.getClaim(username,"http://wso2.org/claims/emailaddress", null); + firstname = userManager.getClaim(username,"http://wso2.org/claims/givenname", null); + lastname = userManager.getClaim(username,"http://wso2.org/claims/lastname", null); + //log.info(userManager.getClaimsForSet(username, "http://wso2.org/claims/emailaddress,http://wso2.org/claims/givenname,http://wso2.org/claims/lastname".split(","), null)); + userObj = { + "username" : userObject.username, + "email" : email, + "name" : firstname + " " + lastname + }; + if(userObj.username == "admin"){ + userObj.name = "admin"; + } + users.push(userObj); + } + return users; + }; + + publicMethods.isAuthorized = function (permission) { + var carbonModule = require("carbon"); + var carbonServer = application.get("carbonServer"); + var carbonUser = session.get(constants.USER_SESSION_KEY); + if (!carbonUser) { + log.error("User object was not found in the session"); + throw constants.ERRORS.USER_NOT_FOUND; + } + var userManager = new carbonModule.user.UserManager(carbonServer, carbonUser.tenantId); + var user = new carbonModule.user.User(userManager, carbonUser.username); + return user.isAuthorized(permission, "ui.execute"); + }; + + publicMethods.getUIPermissions = function(){ + var permissions = {}; + if (publicMethods.isAuthorized("/permission/device-mgt/admin/devices/list") || + publicMethods.isAuthorized("/permission/device-mgt/user/devices/list")) { + permissions.LIST_DEVICES = true; + } + if (publicMethods.isAuthorized("/permission/device-mgt/admin/users/list")) { + permissions.LIST_USERS = true; + } + if (publicMethods.isAuthorized("/permission/device-mgt/admin/users/add")) { + permissions.ADD_USER = true; + } + if (publicMethods.isAuthorized("/permission/device-mgt/admin/policies/add")) { + permissions.ADD_POLICY = true; + } + if (publicMethods.isAuthorized("/permission/device-mgt/admin/policies/list")) { + permissions.LIST_POLICIES = true; + } + if (publicMethods.isAuthorized("/permission/device-mgt/admin/dashboard/view")) { + permissions.DASHBOARD_VIEW = true; + } + //TO-DO Apply followings in to carbon permissions + permissions.ADD_DEVICE = true; + return permissions; + }; + + /** + * Get User Roles from user store. + * If "Internal/Everyone" role is required - true param needs to be passed. + * @param enableInternalEveryone boolean value true/false to enable Internal/Everyone role + */ + publicMethods.getRoles = function (enableInternalEveryone) { + var carbonModule = require("carbon"); + var carbonServer = application.get("carbonServer"); + var carbonUser = session.get(constants.USER_SESSION_KEY); + if (!carbonUser) { + log.error("User object was not found in the session"); + throw constants.ERRORS.USER_NOT_FOUND; + } + var userManager = new carbonModule.user.UserManager(carbonServer, carbonUser.tenantId); + var allRoles = userManager.allRoles(); + var filteredRoles = []; + var i; + for (i = 0; i < allRoles.length; i++) { + if (enableInternalEveryone && allRoles[i] == "Internal/everyone") { + filteredRoles.push(allRoles[i]); + } + if (allRoles[i].indexOf("Internal/") != 0) { + filteredRoles.push(allRoles[i]); + } + } + return filteredRoles; + }; + + publicMethods.logout = function (successCallback) { + session.invalidate(); + successCallback(); + }; + + + + return publicMethods; +}(); + + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/util.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/util.js new file mode 100644 index 0000000000..f6d413b2f3 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/util.js @@ -0,0 +1,89 @@ +/* + * 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. + */ + +var util = function () { + var module = {}; + var Base64 = Packages.org.apache.commons.codec.binary.Base64; + var String = Packages.java.lang.String; + var log = new Log(); + + /** + * Encode the payload in Base64 + * @param payload + * @returns {Packages.java.lang.String} + */ + function encode(payload){ + return new String(Base64.encodeBase64(new String(payload).getBytes())); + } + + /** + * Get an AccessToken pair based on username and password + * @param username + * @param password + * @param clientId + * @param clientSecret + * @param scope + * @returns {{accessToken: "", refreshToken: ""}} + */ + module.getTokenWithPasswordGrantType = function (username, password, clientId, clientSecret, scope) { + var xhr = new XMLHttpRequest(); + var tokenEndpoint = "https://localhost:9443/oauth2/token"; + var encodedClientKeys = encode(clientId + ":" + clientSecret); + xhr.open("POST", tokenEndpoint, false); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.setRequestHeader("Authorization", "Basic " + encodedClientKeys); + xhr.send("grant_type=password&username=" + username + "&password=" + password + "&scope=" + scope); + delete password, delete clientSecret, delete encodedClientKeys; + var tokenPair = {}; + if (xhr.status == 200) { + var data = parse(xhr.responseText); + tokenPair.refreshToken = data.refresh_token; + tokenPair.accessToken = data.access_token; + } else if (xhr.status == 403) { + throw "Error in obtaining token with Password Grant Type"; + } else { + throw "Error in obtaining token with Password Grant Type"; + } + return tokenPair; + }; + module.getTokenWithSAMLGrantType = function () { + + }; + module.refreshToken = function(tokenPair){ + var xhr = new XMLHttpRequest(); + var tokenEndpoint = "https://localhost:9443/oauth2/token"; + var encodedClientKeys = encode(clientId + ":" + clientSecret); + xhr.open("POST", tokenEndpoint, false); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.setRequestHeader("Authorization", "Basic " + encodedClientKeys); + xhr.send("grant_type=refresh_token&refresh_token=" + tokenPair.refreshToken + "&scope=" + scope); + delete password, delete clientSecret, delete encodedClientKeys; + var tokenPair = {}; + if (xhr.status == 200) { + var data = parse(xhr.responseText); + tokenPair.refreshToken = data.refresh_token; + tokenPair.accessToken = data.access_token; + } else if (xhr.status == 403) { + throw "Error in obtaining token with Password Grant Type"; + } else { + throw "Error in obtaining token with Password Grant Type"; + } + return tokenPair; + }; + return module; +}(); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/utility.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/utility.js new file mode 100644 index 0000000000..76c0f3c610 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/modules/utility.js @@ -0,0 +1,139 @@ +/* + * 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. + */ + +var utility; +utility = function () { + var JavaClass = Packages.java.lang.Class; + var PrivilegedCarbonContext = Packages.org.wso2.carbon.context.PrivilegedCarbonContext; + + var getOsgiService = function (className) { + return PrivilegedCarbonContext.getThreadLocalCarbonContext().getOSGiService(JavaClass.forName(className)); + }; + + var publicMethods = {}; + + publicMethods.getDeviceManagementService = function () { + return getOsgiService('org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService'); + }; + + publicMethods.getPolicyManagementService = function () { + return getOsgiService('org.wso2.carbon.policy.mgt.core.PolicyManagerService'); + }; + + publicMethods.insertAppPermissions = function (userModule, type) { + userModule.addPermissions([{key: "device-mgt", name: "Device Management"}], "", type); + userModule.addPermissions([{ + key: "admin", + name: "Device Management Admin" + }], "device-mgt", type); + userModule.addPermissions([{ + key: "user", + name: "Device Management User" + }], "device-mgt", type); + + userModule.addPermissions([{key: "devices", name: "Devices"}], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "devices/list", + name: "List Devices" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "devices/operation", + name: "Perform Operation" + }], "device-mgt/admin", type); + + userModule.addPermissions([{key: "groups", name: "Groups"}], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "groups/add_devices", + name: "Add Devices to Group" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "groups/remove_devices", + name: "Remove Devices from Group" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "groups/modify", + name: "Modify Group" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "groups/share", + name: "Change Group Sharing" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "groups/delete", + name: "Delete Group" + }], "device-mgt/admin", type); + + userModule.addPermissions([{key: "users", name: "Users"}], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "users/add", + name: "Add New Users" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "users/invite", + name: "Invite Users" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "users/list", + name: "List Users" + }], "device-mgt/admin", type); + userModule.addPermissions([{ + key: "users/remove", + name: "Remove Users" + }], "device-mgt/admin", type); + + userModule.addPermissions([{key: "devices", name: "Devices"}], "device-mgt/user", type); + userModule.addPermissions([{ + key: "devices/list", + name: "List Devices" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "devices/operation", + name: "Perform Operation" + }], "device-mgt/user", "init"); + + userModule.addPermissions([{key: "groups", name: "Groups"}], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_monitor", + name: "Monitor Statistics Devices in Group" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_operation", + name: "Perform Device Operation" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_policies/add", + name: "Apply Device Policies" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_policies/view", + name: "View Device Policies" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_events", + name: "Monitor Device Events" + }], "device-mgt/user", type); + userModule.addPermissions([{ + key: "groups/device_list", + name: "List Groups of User" + }], "device-mgt/user", type); + }; + + return publicMethods; +}(); + + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/alldevices.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/alldevices.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/alldevices.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/alldevices.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/analytics.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/analytics.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/analytics.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/analytics.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/dashboard.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/dashboard.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/dashboard.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/dashboard.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/device.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/device.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/device.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/device.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/add-device.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/add-device.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/add-device.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/add-device.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/devices/index.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/events/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/events/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/events/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/events/index.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/group.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/group.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/group.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/group.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/add-group.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/add-group.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/add-group.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/add-group.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/groups/index.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/index.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/login.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/login.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/login.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/login.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/add-policy.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/add-policy.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/add-policy.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/add-policy.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/policies/index.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/register.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/register.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/register.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/register.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/add-user.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/add-user.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/add-user.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/add-user.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/index.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/index.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/index.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/pages/users/index.hbs diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test.jag new file mode 100644 index 0000000000..c0097b638f --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test.jag @@ -0,0 +1,12 @@ +<% +var userModule = require("/modules/user.js").userModule; +userModule.addPermissions([{key: "device-mgt/", name: "Device Management"}], ""); +userModule.addPermissions([{key: "device-mgt/admin", name: "Device Management Admin"}], ""); +userModule.addPermissions([{key: "device-mgt/user", name: "Device Management User"}], ""); + +userModule.addPermissions([{key: "devices", name: "Device"}], "device-mgt/admin"); +userModule.addPermissions([{key: "devices", name: "Device"}], "device-mgt/user"); +userModule.addPermissions([{key: "devices/list", name: "List all Devices"}], "device-mgt/admin"); +userModule.addPermissions([{key: "devices/list", name: "List own Devices"}], "device-mgt/user"); +new Log().info(userModule.isAuthorized("/permission/device-mgt/admin/devices/list")); +%> \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/device-spec.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/device-spec.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/device-spec.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/device-spec.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/testExecutor.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/testExecutor.jag similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/testExecutor.jag rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/testExecutor.jag diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/user-spec.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/user-spec.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/user-spec.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/test/user-spec.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/tmp/cached_theme_less_base.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/tmp/cached_theme_less_base.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/tmp/cached_theme_less_base.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/tmp/cached_theme_less_base.css diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/token.jag b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/token.jag new file mode 100644 index 0000000000..777783078a --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/token.jag @@ -0,0 +1,4 @@ +<% +var apiWrapperUtil = require("/modules/api-wrapper-util.js").apiWrapperUtil; +apiWrapperUtil.refreshToken(); +%> \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/alldevices.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js similarity index 97% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js index 74da90713e..0b9c881c64 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/alldevices/public/js/alldevices_util.js @@ -1,49 +1,49 @@ -function getAllDevices() { - var getDevicesRequest = $.ajax({ - url: "api/devices/all/", - method: "GET", - contentType: "application/json" - }); - - getDevicesRequest.done(function (data) { - updateDevicesTable(JSON.parse(data)); - }); - - getDevicesRequest.fail(function (jqXHR, textStatus) { - var err = jqXHR; - alert("Request failed: " + textStatus); - }); -} - -function updateDevicesTable(data) { - devices = data.data.device; - if (devices.length > 0) { - clearTable('devicesTable'); - for (var i = 0; i < devices.length; i++) { - var deviceIdentifier = devices[i].deviceIdentifier; - var deviceName = devices[i].name; - var deviceType = devices[i].type; - $('#devicesTable tbody').append( - "" + deviceIdentifier + "" + - "" + deviceName + "" + - "" + deviceType + "" + - "" + - "" + - "" + - "" + - "" + - ""); - } - } -} - -function clearTable(tableId) { - $('#' + tableId + ' tbody > tr').remove(); -} - -$(document).ready(function () { - getAllDevices(); +function getAllDevices() { + var getDevicesRequest = $.ajax({ + url: "api/devices/all/", + method: "GET", + contentType: "application/json" + }); + + getDevicesRequest.done(function (data) { + updateDevicesTable(JSON.parse(data)); + }); + + getDevicesRequest.fail(function (jqXHR, textStatus) { + var err = jqXHR; + alert("Request failed: " + textStatus); + }); +} + +function updateDevicesTable(data) { + devices = data.data.device; + if (devices.length > 0) { + clearTable('devicesTable'); + for (var i = 0; i < devices.length; i++) { + var deviceIdentifier = devices[i].deviceIdentifier; + var deviceName = devices[i].name; + var deviceType = devices[i].type; + $('#devicesTable tbody').append( + "" + deviceIdentifier + "" + + "" + deviceName + "" + + "" + deviceType + "" + + "" + + "" + + "" + + "" + + "" + + ""); + } + } +} + +function clearTable(tableId) { + $('#' + tableId + ' tbody > tr').remove(); +} + +$(document).ready(function () { + getAllDevices(); }); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.hbs new file mode 100644 index 0000000000..c802e1e98f --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.hbs @@ -0,0 +1,7 @@ +{{#zone "topCss"}} + + + + + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.json new file mode 100644 index 0000000000..56db749f0a --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/analiytics-graphs.json @@ -0,0 +1,3 @@ +{ + "predicate": "urlMatch('/analytics')" +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/css/daterangepicker.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/daterangepicker.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/css/daterangepicker.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/daterangepicker.css diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/detail.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/detail.css new file mode 100644 index 0000000000..501719f429 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/detail.css @@ -0,0 +1,105 @@ +.rickshaw_graph .detail { + pointer-events: none; + position: absolute; + top: 0; + z-index: 2; + background: rgba(0, 0, 0, 0.1); + bottom: 0; + width: 1px; + transition: opacity 0.25s linear; + -moz-transition: opacity 0.25s linear; + -o-transition: opacity 0.25s linear; + -webkit-transition: opacity 0.25s linear; +} +.rickshaw_graph .detail.inactive { + opacity: 0; +} +.rickshaw_graph .detail .item.active { + opacity: 1; +} +.rickshaw_graph .detail .x_label { + font-family: Arial, sans-serif; + border-radius: 3px; + padding: 6px; + opacity: 0.5; + border: 1px solid #e0e0e0; + font-size: 12px; + position: absolute; + background: white; + white-space: nowrap; +} +.rickshaw_graph .detail .x_label.left { + left: 0; +} +.rickshaw_graph .detail .x_label.right { + right: 0; +} +.rickshaw_graph .detail .item { + position: absolute; + z-index: 2; + border-radius: 3px; + padding: 0.25em; + font-size: 12px; + font-family: Arial, sans-serif; + opacity: 0; + background: rgba(0, 0, 0, 0.4); + color: white; + border: 1px solid rgba(0, 0, 0, 0.4); + margin-left: 1em; + margin-right: 1em; + margin-top: -1em; + white-space: nowrap; +} +.rickshaw_graph .detail .item.left { + left: 0; +} +.rickshaw_graph .detail .item.right { + right: 0; +} +.rickshaw_graph .detail .item.active { + opacity: 1; + background: rgba(0, 0, 0, 0.8); +} +.rickshaw_graph .detail .item:after { + position: absolute; + display: block; + width: 0; + height: 0; + + content: ""; + + border: 5px solid transparent; +} +.rickshaw_graph .detail .item.left:after { + top: 1em; + left: -5px; + margin-top: -5px; + border-right-color: rgba(0, 0, 0, 0.8); + border-left-width: 0; +} +.rickshaw_graph .detail .item.right:after { + top: 1em; + right: -5px; + margin-top: -5px; + border-left-color: rgba(0, 0, 0, 0.8); + border-right-width: 0; +} +.rickshaw_graph .detail .dot { + width: 4px; + height: 4px; + margin-left: -3px; + margin-top: -3.5px; + border-radius: 5px; + position: absolute; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); + box-sizing: content-box; + -moz-box-sizing: content-box; + background: white; + border-width: 2px; + border-style: solid; + display: none; + background-clip: padding-box; +} +.rickshaw_graph .detail .dot.active { + display: block; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/graph.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/graph.css new file mode 100644 index 0000000000..48defd85b2 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/graph.css @@ -0,0 +1,197 @@ +/* graph */ + +.rickshaw_graph { + position: relative; +} +.rickshaw_graph svg { + display: block; + overflow: hidden; +} + +/* ticks */ + +.rickshaw_graph .x_tick { + position: absolute; + top: 0; + bottom: 0; + width: 0px; + border-left: 1px dotted rgba(0, 0, 0, 0.2); + pointer-events: none; +} +.rickshaw_graph .x_tick .title { + position: absolute; + font-size: 12px; + font-family: Arial, sans-serif; + opacity: 0.5; + white-space: nowrap; + margin-left: 3px; + bottom: -20px; +} + +/* annotations */ + +.rickshaw_annotation_timeline { + height: 1px; + border-top: 1px solid #e0e0e0; + margin-top: 10px; + position: relative; +} +.rickshaw_annotation_timeline .annotation { + position: absolute; + height: 6px; + width: 6px; + margin-left: -2px; + top: -3px; + border-radius: 5px; + background-color: rgba(0, 0, 0, 0.25); +} +.rickshaw_graph .annotation_line { + position: absolute; + top: 0; + bottom: -6px; + width: 0px; + border-left: 2px solid rgba(0, 0, 0, 0.3); + display: none; +} +.rickshaw_graph .annotation_line.active { + display: block; +} + +.rickshaw_graph .annotation_range { + background: rgba(0, 0, 0, 0.1); + display: none; + position: absolute; + top: 0; + bottom: -6px; +} +.rickshaw_graph .annotation_range.active { + display: block; +} +.rickshaw_graph .annotation_range.active.offscreen { + display: none; +} + +.rickshaw_annotation_timeline .annotation .content { + background: white; + color: black; + opacity: 0.9; + padding: 5px 5px; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.8); + border-radius: 3px; + position: relative; + z-index: 20; + font-size: 12px; + padding: 6px 8px 8px; + top: 18px; + left: -11px; + width: 160px; + display: none; + cursor: pointer; +} +.rickshaw_annotation_timeline .annotation .content:before { + content: "\25b2"; + position: absolute; + top: -11px; + color: white; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8); +} +.rickshaw_annotation_timeline .annotation.active, +.rickshaw_annotation_timeline .annotation:hover { + background-color: rgba(0, 0, 0, 0.8); + cursor: none; +} +.rickshaw_annotation_timeline .annotation .content:hover { + z-index: 50; +} +.rickshaw_annotation_timeline .annotation.active .content { + display: block; +} +.rickshaw_annotation_timeline .annotation:hover .content { + display: block; + z-index: 50; +} +.rickshaw_graph .y_axis, +.rickshaw_graph .x_axis_d3 { + fill: none; +} +.rickshaw_graph .y_ticks .tick line, +.rickshaw_graph .x_ticks_d3 .tick { + stroke: rgba(0, 0, 0, 0.16); + stroke-width: 2px; + shape-rendering: crisp-edges; + pointer-events: none; +} +.rickshaw_graph .y_grid .tick, +.rickshaw_graph .x_grid_d3 .tick { + z-index: -1; + stroke: rgba(0, 0, 0, 0.20); + stroke-width: 1px; + stroke-dasharray: 1 1; +} +.rickshaw_graph .y_grid .tick[data-y-value="0"] { + stroke-dasharray: 1 0; +} +.rickshaw_graph .y_grid path, +.rickshaw_graph .x_grid_d3 path { + fill: none; + stroke: none; +} +.rickshaw_graph .y_ticks path, +.rickshaw_graph .x_ticks_d3 path { + fill: none; + stroke: #808080; +} +.rickshaw_graph .y_ticks text, +.rickshaw_graph .x_ticks_d3 text { + opacity: 0.5; + font-size: 12px; + pointer-events: none; +} +.rickshaw_graph .x_tick.glow .title, +.rickshaw_graph .y_ticks.glow text { + fill: black; + color: black; + text-shadow: + -1px 1px 0 rgba(255, 255, 255, 0.1), + 1px -1px 0 rgba(255, 255, 255, 0.1), + 1px 1px 0 rgba(255, 255, 255, 0.1), + 0px 1px 0 rgba(255, 255, 255, 0.1), + 0px -1px 0 rgba(255, 255, 255, 0.1), + 1px 0px 0 rgba(255, 255, 255, 0.1), + -1px 0px 0 rgba(255, 255, 255, 0.1), + -1px -1px 0 rgba(255, 255, 255, 0.1); +} +.rickshaw_graph .x_tick.inverse .title, +.rickshaw_graph .y_ticks.inverse text { + fill: white; + color: white; + text-shadow: + -1px 1px 0 rgba(0, 0, 0, 0.8), + 1px -1px 0 rgba(0, 0, 0, 0.8), + 1px 1px 0 rgba(0, 0, 0, 0.8), + 0px 1px 0 rgba(0, 0, 0, 0.8), + 0px -1px 0 rgba(0, 0, 0, 0.8), + 1px 0px 0 rgba(0, 0, 0, 0.8), + -1px 0px 0 rgba(0, 0, 0, 0.8), + -1px -1px 0 rgba(0, 0, 0, 0.8); +} + +.custom_rickshaw_graph { + position: relative; + left: 40px; +} + +.custom_y_axis { + position: absolute; + width: 40px; +} + +.custom_slider { + left: 40px; +} + +.custom_x_axis { + position: relative; + left: 40px; + height: 30px; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/legend.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/legend.css new file mode 100644 index 0000000000..283e26f297 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/legend.css @@ -0,0 +1,87 @@ +.rickshaw_legend { + font-family: Arial; + font-size: 12px; + color: white; + background: #404040; + display: inline-block; + padding: 12px 5px; + border-radius: 2px; + position: relative; + float: right; +} +.rickshaw_legend:hover { + z-index: 10; +} +.rickshaw_legend .swatch { + width: 10px; + height: 10px; + border: 1px solid rgba(0, 0, 0, 0.2); +} +.rickshaw_legend .line { + clear: both; + line-height: 140%; + padding-right: 15px; +} +.rickshaw_legend .line .swatch { + display: inline-block; + margin-right: 3px; + border-radius: 2px; +} +.rickshaw_legend .label { + margin: 0; + white-space: nowrap; + display: inline; + font-size: inherit; + background-color: transparent; + color: inherit; + font-weight: normal; + line-height: normal; + padding: 0px; + text-shadow: none; +} +.rickshaw_legend .action:hover { + opacity: 0.6; +} +.rickshaw_legend .action { + margin-right: 0.2em; + font-size: 10px; + opacity: 0.2; + cursor: pointer; + font-size: 14px; +} +.rickshaw_legend .line.disabled { + opacity: 0.4; +} +.rickshaw_legend ul { + list-style-type: none; + margin: 0; + padding: 0; + margin: 2px; + cursor: pointer; +} +.rickshaw_legend li { + padding: 0 0 0 2px; + min-width: 80px; + white-space: nowrap; +} +.rickshaw_legend li:hover { + background: rgba(255, 255, 255, 0.08); + border-radius: 3px; +} +.rickshaw_legend li:active { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; +} +.legend { + display: inline-block; + position: relative; + left: 8px; +} +.legend_container { + float: right; + padding-right: 10px; + width: 0; + z-index: 1; + position: relative; + opacity: 0.7; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/lines.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/lines.css new file mode 100644 index 0000000000..b96fceb846 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analiytics-graphs/public/css/lines.css @@ -0,0 +1,21 @@ +div, span, p, td { + font-family: Arial, sans-serif; +} +#chart { + display: inline-block; +} +#legend { + display: inline-block; + position: relative; + left: 8px; +} +#legend_container { + position: absolute; + right: 0; + bottom: 26px; + width: 0; +} +#chart_container { + float: left; + position: relative; +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/analytics.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-off.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-off.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-off.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-off.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-on.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-on.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-on.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/bulb-on.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/fan.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/fan.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/fan.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/fan.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/temp.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/temp.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/temp.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/images/temp.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/d3.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/d3.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/d3.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/d3.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/graph_util.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/graph_util.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/graph_util.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/graph_util.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery-ui-timepicker-addon.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery-ui-timepicker-addon.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery-ui-timepicker-addon.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery-ui-timepicker-addon.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery.daterangepicker.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery.daterangepicker.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery.daterangepicker.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/jquery.daterangepicker.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/moment.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/moment.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/moment.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/moment.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/rickshaw.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/rickshaw.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/rickshaw.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/analytics/public/js/rickshaw.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs similarity index 97% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs index 96557c6892..77f6001a5a 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.hbs @@ -1,56 +1,56 @@ -{{#zone "main"}} - - - - - - - -
- -
- - - - - +{{#zone "main"}} + + + + + + + +
+ +
+ + + + + {{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.js diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.json new file mode 100644 index 0000000000..6240cff527 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.json @@ -0,0 +1,3 @@ +{ + "predicate": "false" +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/dashboard.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/public/js/dashboard.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/public/js/dashboard.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/public/js/dashboard.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/dashboard/public/js/dashboard.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/device-detail.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/android.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/android.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/android.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/android.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/arduino.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/arduino.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/arduino.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/arduino.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/digital_display.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/digital_display.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/digital_display.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/digital_display.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/firealarm.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/firealarm.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/firealarm.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/firealarm.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/ios.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/ios.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/ios.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/ios.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/raspberrypi.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/raspberrypi.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/raspberrypi.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/raspberrypi.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/sensebot.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/sensebot.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/sensebot.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/device_icons/sensebot.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/graph.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/graph.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/graph.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/img/graph.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/js/device-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/js/device-detail.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/js/device-detail.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-detail/public/js/device-detail.js diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.hbs new file mode 100644 index 0000000000..7ff2282dde --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.hbs @@ -0,0 +1,413 @@ +{{#zone "main"}} + + + +
+ +
+
+

Loading...

+
+
+ +
+ +
+ +
+
+

You don't have any Devices registered at the moment.

+ +

+ + + + + + Add New Device + +

+
+
+ +
+ +
+ +
+
+

You don't have any associated devices with this group.

+ +

+ + + + + + Associate Existing Device + +

+
+
+ +
+ +
+ +
+
+

You don't have any associated devices here.

+
+
+ +
+ +
+
+
+
+

Do you really want to remove this device from your Devices List?

+ + +
+
+
+
+ +
+
+
+
+

Device was successfully removed.

+
+
+
+
+ +
+
+
+
+

Please enter new name for the device?

+
+ +
+ +
+ +
+
+
+
+ +
+
+
+
+

Device was successfully updated.

+
+
+
+
+ +
+
+
+
+

Please select group

+
+ +
Loading...
+ +
+
+
+
+ +
+
+
+
+

Device was successfully associated with group.

+
+
+
+
+ +
+
+
+
+

Device was successfully removed from group.

+
+
+
+
+ +
+
+
+
+

Exception at backend. Try Later.

+ + +
+
+
+
+ +
+
+
+
+

Operation not permitted.

+ + +
+
+
+
+ +
+
+
+
+

Device does not exist.

+ + +
+
+
+
+ +
+
+
+
+

Select user to manage group sharing

+
Loading...
+ +
+
+
+
+ +
+
+
+
+

Select sharing roles

+
+
Loading...
+ +
+
+
+
+ +
+
+
+
+

Group sharing updated successfully.

+
+
+
+
+ +
+
+
+
+

Do you really want to remove this group from your Group List?

+ + +
+
+
+
+ +
+
+
+
+

Group was successfully removed.

+
+
+
+
+ +
+
+
+
+

Please enter new name and description for the group

+
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+ +
+
+
+
+

Group was successfully updated.

+
+
+
+
+ +
+
+
+
+

Exception at backend. Try Later.

+ + +
+
+
+
+ +
+
+
+
+

Action not permitted.

+ + +
+
+
+
+ +
+
+
+
+

Group does not exist.

+ + +
+
+
+
+ +
+
+
+
+

Unexpected error occurred!

+ + +
+
+
+
+ +{{/zone}} +{{#zone "bottomJs"}} + + + +{{/zone}} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.js new file mode 100644 index 0000000000..d4cdaca973 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.js @@ -0,0 +1,25 @@ +var log = new Log("modules/device-listing.js"); + +function onRequest(context){ + var constants = require("/modules/constants.js"); + var userModule = require("/modules/user.js").userModule; + var permissions = []; + if(userModule.isAuthorized("/permission/device-mgt/admin/devices/list")){ + permissions.push("LIST_DEVICES"); + }else if(userModule.isAuthorized("/permission/device-mgt/user/devices/list")){ + permissions.push("LIST_OWN_DEVICES"); + }else if(userModule.isAuthorized("/permission/device-mgt/admin/policies/list")){ + permissions.push("LIST_POLICIES"); + } + permissions.push("LIST_OWN_DEVICES"); + context.permissions = stringify(permissions); + + var groupId = request.getParameter("groupId"); + if (groupId){ + context.groupId = groupId; + }else{ + context.groupId = 0; + } + context.user = session.get(constants.USER_SESSION_KEY).username; + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/appbar/appbar.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/device-listing.json diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/android.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/android.png new file mode 100644 index 0000000000..7fee78a646 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/android.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/arduino.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/arduino.png new file mode 100644 index 0000000000..31cb9fa364 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/arduino.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/digital_display.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/digital_display.png new file mode 100644 index 0000000000..fb1f624c3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/digital_display.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/firealarm.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/firealarm.png new file mode 100644 index 0000000000..aaf16925fd Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/firealarm.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/ios.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/ios.png new file mode 100644 index 0000000000..4b09796f83 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/ios.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/raspberrypi.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/raspberrypi.png new file mode 100644 index 0000000000..eb0e28cb26 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/raspberrypi.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/sensebot.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/sensebot.png new file mode 100644 index 0000000000..04e5752a3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/images/sensebot.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/js/device-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/js/device-listing.js new file mode 100644 index 0000000000..f4552fad5e --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/js/device-listing.js @@ -0,0 +1,678 @@ +/* + * 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. + */ + +var groupId, username; + +(function () { + var cache = {}; + var permissionSet = {}; + var validateAndReturn = function (value) { + return (value == undefined || value == null) ? "Unspecified" : value; + }; + Handlebars.registerHelper("groupMap", function (group) { + group.id = validateAndReturn(group.id); + }); + 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; + }, {}); + } + }); + Handlebars.registerHelper("if_owner", function (owner, opts) { + if (owner == username) { + return opts.fn(this); + } else { + opts.inverse(this); + } + }); + + //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-parent .ctrl-wr-asset .itm-select input[type='checkbox']"; + +/* + * DOM ready functions. + */ +$(document).ready(function () { + /* Adding selected class for selected devices */ + $(deviceCheckbox).each(function () { + addDeviceSelectedClass(this); + }); + + var i; + username = $("#permission").data("user"); + 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(); + } + }); + + groupId = $("#request-group-id").data("groupid"); + loadDevices(); +}); + +/* + * 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") { + $(".ast-container .devices-set").addClass("list-view"); + } else { + $(".ast-container .devices-set").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() { + var groupListing = $("#group-listing"); + var groupListingSrc = groupListing.attr("src"); + $.template("group-listing", groupListingSrc, function (template) { + var serviceURL; + if (groupId && groupId != "0") { + serviceURL = "/iotserver/api/group/id/" + groupId + "/device/all"; + } else { + serviceURL = "/iotserver/api/devices/all"; + } + var successCallback = function (data) { + data = JSON.parse(data); + var viewModel = {}; + var groups; + if (groupId && groupId != "0") { + groups = data; + } else { + groups = data.data; + } + if (groups.length == 1 && groups[0].id == 0 && groups[0].devices.length == 0) { + $("#ast-container-parent").html($("#no-devices-div-content").html()); + } else { + viewModel.groups = groups; + var content = template(viewModel); + $("#ast-container-parent").html(content); + var deviceListing = $("#device-listing"); + var deviceListingSrc = deviceListing.attr("src"); + var imageResource = deviceListing.data("image-resource"); + $.template("device-listing", deviceListingSrc, function (template) { + for (var g in groups) { + if (groups[g].devices && groups[g].devices.length > 0) { + viewModel = {}; + viewModel.devices = groups[g].devices; + viewModel.imageLocation = imageResource; + content = template(viewModel); + } else { + if (groupId && groupId != "0") { + content = $("#no-grouped-devices-div-content").html(); + } else { + content = $("#no-devices-in-group-div-content").html(); + } + } + $("#ast-container-" + groups[g].id).html(content); + } + /* + * On device checkbox select add parent selected style class + */ + $(deviceCheckbox).click(function () { + addDeviceSelectedClass(this); + }); + attachGroupEvents(); + attachDeviceEvents(); + formatDates(); + }); + } + }; + invokerUtil.get(serviceURL, + successCallback, function (jqXHR) { + displayDeviceErrors(jqXHR); + }); + }); +} + +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 attachDeviceEvents() { + /** + * 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()); + $('div[data-deviceid="' + deviceId + '"]').remove(); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + displayDeviceErrors(jqXHR); + } + }, + function (jqXHR) { + displayDeviceErrors(jqXHR); + } + ); + }); + + $("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 newDeviceName = $('#edit-device-name').val(); + var device = {"device": {"name": newDeviceName}}; + invokerUtil.post( + editDeviceAPI, + device, + function (data, txtStatus, jqxhr) { + var status = jqxhr.status; + if (status == 200) { + $(modalPopupContent).html($('#edit-device-200-content').html()); + $("div[data-deviceid='" + deviceId + "'] .ast-name").html(newDeviceName); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + displayDeviceErrors(jqXHR); + } + }, + function (jqXHR) { + displayDeviceErrors(jqXHR); + } + ); + }); + + $("a#edit-device-cancel-link").click(function () { + hidePopup(); + }); + }); + + /** + * Following click function would execute + * when a user clicks on "Group" link + * on Device Management page in WSO2 MDM Console. + */ + if ($("a.group-device-link").length > 0) { + $("a.group-device-link").click(function () { + var deviceId = $(this).data("deviceid"); + var deviceType = $(this).data("devicetype"); + var endPoint = "/iotserver/api/group/all"; + + $(modalPopupContent).html($('#group-device-modal-content').html()); + $('#user-groups').html("Loading..."); + $("a#group-device-yes-link").hide(); + showPopup(); + + invokerUtil.get(endPoint, + function (data, txtStatus, jqxhr) { + var groups = JSON.parse(data); + var status = jqxhr.status; + if (status == 200) { + if (groups.length <= 0) { + $('#user-groups').html("There is no any groups available"); + return; + } + var str = '
'; + $('#user-groups').html(str); + $("a#group-device-yes-link").show(); + $("a#group-device-yes-link").click(function () { + var selectedGroupId = $('#assign-group-selector').val(); + endPoint = "/iotserver/api/group/id/" + selectedGroupId + "/assign"; + var device = {"deviceId": deviceId, "deviceType": deviceType}; + invokerUtil.post( + endPoint, + device, + function (data, txtStatus, jqxhr) { + var status = jqxhr.status; + if (status == 200) { + $(modalPopupContent).html($('#group-associate-device-200-content').html()); + loadDevices(); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + displayDeviceErrors(jqXHR); + } + }, + function (jqXHR) { + displayDeviceErrors(jqXHR); + } + ); + }); + } + }, + function (jqXHR) { + displayDeviceErrors(jqXHR); + } + ); + $("a#group-device-cancel-link").click(function () { + hidePopup(); + }); + }); + + } +} + +/** + * Following functions should be triggered after AJAX request is made. + */ +function attachGroupEvents() { + + /** + * Following click function would execute + * when a user clicks on "Share" link + * on Group Management page in WSO2 IoT Server Console. + */ + $("a.share-group-link").click(function () { + var groupId = $(this).data("groupid"); + $(modalPopupContent).html($('#share-group-w1-modal-content').html()); + $('#user-names').html('Loading...'); + showPopup(); + $("a#share-group-next-link").hide(); + invokerUtil.get("/iotserver/api/users", + function (data, txtStatus, jqxhr) { + var users = JSON.parse(data); + var status = jqxhr.status; + if (status == 200) { + var str = '
'; + if (!hasUsers) { + str = "There is no any other users registered"; + $('#user-names').html(str); + return; + } + $('#user-names').html(str); + $("a#share-group-next-link").show(); + $("a#share-group-next-link").click(function () { + var selectedUser = $('#share-user-selector').val(); + $(modalPopupContent).html($('#share-group-w2-modal-content').html()); + $('#user-roles').html('Loading...'); + $("a#share-group-yes-link").hide(); + invokerUtil.get("/iotserver/api/group/id/" + groupId + "/" + selectedUser + "/rolemapping", + function (data, txtStatus, jqxhr) { + var roleMap = JSON.parse(data); + var status = jqxhr.status; + if (status == 200) { + var str = ''; + var isChecked = ''; + var hasRoles = false; + for (var role in roleMap) { + if (roleMap[role].assigned == true) { + isChecked = 'checked'; + } + str += '    '; + hasRoles = true; + } + if (!hasRoles) { + str = "There is no any roles for this group"; + return; + } + $('#user-roles').html(str); + $("a#share-group-yes-link").show(); + $("a#share-group-yes-link").click(function () { + var updatedRoleMap = []; + for (var role in roleMap) { + if ($('#user-role-' + roleMap[role].role).is(':checked') != roleMap[role].assigned) { + roleMap[role].assigned = $('#user-role-' + roleMap[role].role).is(':checked'); + updatedRoleMap.push(roleMap[role]); + } + } + invokerUtil.post("/iotserver/api/group/id/" + groupId + "/" + selectedUser + "/roleupdate", + updatedRoleMap, + function (data, txtStatus, jqxhr) { + var status = jqxhr.status; + if (status == 200) { + $(modalPopupContent).html($('#share-group-200-content').html()); + loadDevices(); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + displayGroupErrors(status); + } + }, function (jqXHR) { + displayGroupErrors(jqXHR); + } + ); + }); + } else { + displayGroupErrors(status); + } + }, function (jqXHR) { + displayGroupErrors(jqXHR); + } + ); + $("a#share-group-w2-cancel-link").click(function () { + hidePopup(); + }); + }); + } else { + displayGroupErrors(status); + } + }, function (jqXHR) { + displayGroupErrors(jqXHR); + } + ); + + $("a#share-group-w1-cancel-link").click(function () { + hidePopup(); + }); + + }); + + /** + * Following click function would execute + * when a user clicks on "Remove" link + * on Group Management page in WSO2 IoT Server Console. + */ + $("a.remove-group-link").click(function () { + var groupId = $(this).data("groupid"); + var removeGroupApi = "/iotserver/api/group/id/" + groupId + "/remove"; + + $(modalPopupContent).html($('#remove-group-modal-content').html()); + showPopup(); + + $("a#remove-group-yes-link").click(function () { + invokerUtil.delete( + removeGroupApi, + function (data, txtStatus, jqxhr) { + var status = jqxhr.status; + if (status == 200) { + $(modalPopupContent).html($('#remove-group-200-content').html()); + loadDevices(); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + displayGroupErrors(status); + } + }, + function (jqXHR) { + displayGroupErrors(jqXHR); + } + ); + }); + + $("a#remove-group-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-group-link").click(function () { + var groupId = $(this).data("groupid"); + var groupName = $(this).data("groupname"); + var groupDescription = $(this).data("groupdescription"); + var editGroupApi = "/iotserver/api/group/id/" + groupId + "/update"; + + $(modalPopupContent).html($('#edit-group-modal-content').html()); + $('#edit-group-name').val(groupName); + $('#edit-group-description').val(groupDescription); + showPopup(); + + $("a#edit-group-yes-link").click(function () { + var newGroupName = $('#edit-group-name').val(); + var newGroupDescription = $('#edit-group-description').val(); + var group = {"name": newGroupName, "description": newGroupDescription}; + invokerUtil.post( + editGroupApi, + group, + function (data, txtStatus, jqxhr) { + var status = jqxhr.status; + if (status == 200) { + if (data != "false") { + $(modalPopupContent).html($('#edit-group-200-content').html()); + loadDevices(); + setTimeout(function () { + hidePopup(); + }, 2000); + } else { + $(modalPopupContent).html($('#group-409-content').html()); + $("a#group-409-link").click(function () { + hidePopup(); + }); + } + } else { + displayGroupErrors(status); + } + }, + function (jqXHR) { + displayGroupErrors(jqXHR); + } + ); + }); + + $("a#edit-group-cancel-link").click(function () { + hidePopup(); + }); + }); +} + +function displayDeviceErrors(jqXHR) { + showPopup(); + if (jqXHR.status == 400) { + $(modalPopupContent).html($('#group-400-content').html()); + $("a#group-400-link").click(function () { + hidePopup(); + }); + } else if (jqXHR.status == 403) { + $(modalPopupContent).html($('#group-403-content').html()); + $("a#group-403-link").click(function () { + hidePopup(); + }); + } else if (jqXHR.status == 409) { + $(modalPopupContent).html($('#group-409-content').html()); + $("a#group-409-link").click(function () { + hidePopup(); + }); + } else { + $(modalPopupContent).html($('#group-unexpected-error-content').html()); + $("a#group-unexpected-error-link").click(function () { + hidePopup(); + }); + console.log("Error code: " + jqXHR.status); + } +} + + +function displayGroupErrors(jqXHR) { + showPopup(); + if (jqXHR.status == 400) { + $(modalPopupContent).html($('#group-400-content').html()); + $("a#group-400-link").click(function () { + hidePopup(); + }); + } else if (jqXHR.status == 403) { + $(modalPopupContent).html($('#group-403-content').html()); + $("a#group-403-link").click(function () { + hidePopup(); + }); + } else if (jqXHR.status == 409) { + $(modalPopupContent).html($('#group-409-content').html()); + $("a#group-409-link").click(function () { + hidePopup(); + }); + } else { + $(modalPopupContent).html($('#group-unexpected-error-content').html()); + $("a#group-unexpected-error-link").click(function () { + hidePopup(); + }); + console.log("Error code: " + jqXHR.status); + } +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/device-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/device-listing.hbs new file mode 100644 index 0000000000..3fc0232612 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/device-listing.hbs @@ -0,0 +1,71 @@ +{{#each devices}} + {{deviceMap this}} + + +{{/each}} + +
diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/group-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/group-listing.hbs new file mode 100644 index 0000000000..8b17348647 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/device-listing/public/templates/group-listing.hbs @@ -0,0 +1,54 @@ +{{#each groups}} + {{groupMap this}} +
+
+
+ +
+ {{#if name}} + + {{/if}} +
+
+
+
+
+
+{{/each}} + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/downloads.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/public/android-app.apk b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/public/android-app.apk similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/public/android-app.apk rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/downloads/public/android-app.apk diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/events.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/js/events.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/js/events.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/js/events.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/js/events.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/templates/event-stream.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/templates/event-stream.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/templates/event-stream.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/events/public/templates/event-stream.hbs diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.hbs new file mode 100644 index 0000000000..edad07c651 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.hbs @@ -0,0 +1,94 @@ +{{#zone "main"}} +
+
+ +
+ + + +
+ +
+ +
+ +
+
+{{/zone}} +{{#zone "bottomJs"}} + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.json new file mode 100644 index 0000000000..a5f44dfb2a --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/extended-search-box.json @@ -0,0 +1,3 @@ +{ + "predicate": "false" +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-grid.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-grid.png new file mode 100644 index 0000000000..6e60d754a5 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-grid.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-list.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-list.png new file mode 100644 index 0000000000..6262fbe10b Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-list.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-sort.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-sort.png new file mode 100644 index 0000000000..246199dd7e Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/img/icons/ico-sort.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/js/extended-search-box.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/js/extended-search-box.js new file mode 100644 index 0000000000..3ba305e0ec --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/extended-search-box/public/js/extended-search-box.js @@ -0,0 +1,222 @@ +/* + * 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. + */ + +/* + * Setting-up global variables. + */ +var menuButton = '.ctrl-asset-type-switcher', + menu = '.popover.menu', + deviceOptions = '#device-filter-options', + menuContainer = '#asset-select', + menuSubContainer = '#asset-selected', + menuItems = '#asset-select ul li', + tagsContainer = '.wr-search-tags', + searchField = '#search', + menuItemsID = 0, + prevSelected = 0, + searchBtn = ".btn-search"; + +/* + * DOM ready functions. + */ +$(document).ready(function(){ + + /* Bind filter menu relationship on load */ + addingIdentity(); + + /* Bind filter select function to all assets on load */ + $(menuItems).each(function(){ + menuItemsID++; + $(this).attr({ + 'asset':menuItemsID, + 'onclick':'selectAsset(this)', + 'level': $(this).parents('ul').length + }); + }); + $(searchBtn).click(function(){ + var input = $(searchField).html(); + var searchType = $(searchField).data("search-type"); + loadGroups(searchType, input); + }); +}); + +/* + * Bind filter window hide function to the document. + */ +$(document).bind('click', function(e) { + if($(e.target).attr('rel') !== 'assetfilter') { + $(menu).hide(); + } +}); + +/* + * On filter switch button click show filter option window. + */ +$(menuButton).click(function(e){ + e.stopPropagation(); + $(menu).toggle(); +}); + +/* + * On asset filter options window advance filter radio button change function + */ +$('#advance-filter-options input[type=radio]').change(function() { + if(this.value !== 'devices'){ + $(searchField).attr('data-placeholder', 'Search '+ this.value + ' ...'); + } + else { + $(deviceOptions).show(); + } + $(searchField).data("search-type", $(this).data("type")); +}); + +/* + * Update filter container. + * @param asset: Selected asset + */ +function containerUpdate(asset){ + var options = $(asset).next('ul').length ? $(asset).next('ul').html() : ""; + + $(menuSubContainer).html('' + ''); + + prevSelected = ($(menuSubContainer + ' ul.selected li').attr('asset')); + + //$(menuSubContainer + ' ul.options li').length == 0 ? $(menuSubContainer + ' ul.options').hide() : + // + $(menuSubContainer + ' ul.options').show(); + + addingIdentity(); +} + +/* + * On asset click selecting filter. + * @param asset: Selected asset + */ +function selectAsset(asset){ + var platformType = $(asset).data("type"); + loadOperationBar(platformType); + loadGroups("type", platformType); + //$(tagsContainer +' span').each(function(){ + // if($(this).attr('level') == $(asset).attr('level')){ + // removeTags(this); + // } + //}); + + containerUpdate(asset); + + $(menuSubContainer).show(); + $(menuContainer).hide(); + + addTags(asset); +} + +/* + * Adding asset filtering relationship menu child elements. + */ +function addingIdentity(){ + $(menu).find('*').each(function(){ + $(this).attr('rel', 'assetfilter'); + }); + $(tagsContainer).find('*').each(function(){ + $(this).attr('rel', 'assetfilter'); + }); +} + +/* + * Filter window go back function. + * @param backButton: Filter window back button + */ +function goBack(backButton){ + if($(backButton).prev('li').attr('level') == 1){ + $(menuSubContainer).hide(); + $(menuContainer).show(); + } + else{ + containerUpdate($(menuContainer + ' [asset='+prevSelected+']').parent('ul').prev('li')); + $(backButton).remove(); + } +} + +/* + * Filter window reset function. + * @param backButton: Filter window reset button + */ +function resetNav(){ + $('#goBack').remove(); + $('#resetNav').remove(); + $(menuSubContainer).hide(); + $(menuContainer).show(); +} + +/* + * Find parent function. + * @param selection: Current asset parent search tag on search parent loop + */ +function getParent(selection){ + return $(menuContainer + ' [asset=' + $(selection).attr('asset') + ']').closest('ul').prev('li'); +} + +/* + * On filter select ad asset & its parents to search field. + * @param tag: Selected filter search tag + */ +function addTags(tag){ + var level = $(tag).attr('level'), + selection = tag, + content = '' + $(tag).find('.tag-name').html() + ' x'; + + if(level !== 1) { + for (var i = 1; i < level; i++) { + content = '' + $(getParent(selection)).find('.tag-name').html() + ' x' + +content; + + selection = getParent(selection); + } + $(tagsContainer).html(content); + } + addingIdentity(); +} + +/* + * On filter tags click remove asset & its child from search field. + * @param tag: Selected filter search tag + */ +function removeTags(tag){ + $(tag).nextAll('span').andSelf().each(function(){ + $($(menuContainer + ' [asset='+ $(this).attr('asset') +']')).removeClass('selected'); + $(this).remove(); + }); + unloadOperationBar(); + loadGroups(); +} diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/footer/footer.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/group-add.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/public/js/group-add.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/public/js/group-add.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/public/js/group-add.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-add/public/js/group-add.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/group-detail.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/graph.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/graph.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/graph.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/graph.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/group-icon.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/group-icon.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/group-icon.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/img/group-icon.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/js/group-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/js/group-detail.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/js/group-detail.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-detail/public/js/group-detail.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/group-listing.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/images/group-icon.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/images/group-icon.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/images/group-icon.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/images/group-icon.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/js/group-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/js/group-listing.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/js/group-listing.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/js/group-listing.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/templates/group-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/templates/group-listing.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/templates/group-listing.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/group-listing/public/templates/group-listing.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/handlebars.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/handlebars-v2.0.0.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/handlebars-v2.0.0.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/handlebars-v2.0.0.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/handlebars-v2.0.0.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/utils.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/utils.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/utils.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/handlebars/public/js/utils.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/header/header.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/login.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/public/js/login-box.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/public/js/login-box.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/public/js/login-box.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/login/public/js/login-box.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs similarity index 97% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs index d39bd76ab7..c34649147d 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.hbs @@ -1,7 +1,7 @@ -{{#zone "brand"}} -

IoT Server

-{{/zone}} -{{#zone "favicon"}} - -{{/zone}} - +{{#zone "brand"}} +

IoT Server

+{{/zone}} +{{#zone "favicon"}} + +{{/zone}} + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json similarity index 88% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json index 795898d09e..5e32dcdac9 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/logo.json @@ -1,3 +1,3 @@ -{ - "predicate": "true" +{ + "predicate": "true" } \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/favicon.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/favicon.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/favicon.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/favicon.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/logo.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/logo.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/logo.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/img/logo.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less similarity index 95% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less index 5c636e65ca..dfb9b65357 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/logo/public/less/logo.less @@ -1,14 +1,14 @@ -@import '/{bootstrap}/variables.less'; -@import '/{theme}/custom-variables.less'; - -@logo-size : @navbar-height - 20px; - -.navbar-brand { - float: left; - padding: (@navbar-height - @logo-size - @line-height-computed/2) @navbar-padding-horizontal; -} - -img.@{self-class} { - display: inline-block; - width: @logo-size; -} +@import '/{bootstrap}/variables.less'; +@import '/{theme}/custom-variables.less'; + +@logo-size : @navbar-height - 20px; + +.navbar-brand { + float: left; + padding: (@navbar-height - @logo-size - @line-height-computed/2) @navbar-padding-horizontal; +} + +img.@{self-class} { + display: inline-block; + width: @logo-size; +} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.hbs new file mode 100644 index 0000000000..4a7d0251e1 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.hbs @@ -0,0 +1,20 @@ +{{#zone "main"}} + + +
+ +
+ +{{/zone}} + +{{#zone "bottomJs"}} + + + + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.js new file mode 100644 index 0000000000..e99497b9e8 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.js @@ -0,0 +1,3 @@ +function onRequest(context){ + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/user-listing/user-listing.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/user-listing/user-listing.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/operation-bar.json diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-add-new.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-add-new.png new file mode 100644 index 0000000000..9dc4ef315d Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-add-new.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-camera.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-camera.png new file mode 100644 index 0000000000..978d135ee0 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-camera.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-compare.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-compare.png new file mode 100644 index 0000000000..68657e8f28 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-compare.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-configure.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-configure.png new file mode 100644 index 0000000000..59484ca350 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-configure.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-grid.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-grid.png new file mode 100644 index 0000000000..fbd046ddec Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-grid.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-guage.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-guage.png new file mode 100644 index 0000000000..ee00f4b10e Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-guage.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-list.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-list.png new file mode 100644 index 0000000000..464b0b5299 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-list.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-lock.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-lock.png new file mode 100644 index 0000000000..31222fb2e4 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-lock.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-map.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-map.png new file mode 100644 index 0000000000..368584dfce Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-map.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-menu.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-menu.png new file mode 100644 index 0000000000..43d0675f36 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-menu.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-message.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-message.png new file mode 100644 index 0000000000..3767e2c8aa Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-message.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-meter.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-meter.png new file mode 100644 index 0000000000..df2e8cfad6 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-meter.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-next.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-next.png new file mode 100644 index 0000000000..22b915a4e2 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-next.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-prev.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-prev.png new file mode 100644 index 0000000000..02926ea601 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-prev.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-ring.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-ring.png new file mode 100644 index 0000000000..c59ac06028 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-ring.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-save.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-save.png new file mode 100644 index 0000000000..ddb425f73e Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-save.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-sort.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-sort.png new file mode 100644 index 0000000000..d2b6b3b2ff Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-sort.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-user.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-user.png new file mode 100644 index 0000000000..160fe80331 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-user.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wifi.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wifi.png new file mode 100644 index 0000000000..12920430dc Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wifi.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wipe.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wipe.png new file mode 100644 index 0000000000..dbf0221fda Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/images/icons/ico-wipe.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/js/operation-bar.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/js/operation-bar.js new file mode 100644 index 0000000000..699589b908 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/js/operation-bar.js @@ -0,0 +1,273 @@ +/* + * 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. + */ + +/* + * Setting-up global variables. + */ + +var operations = '.wr-operations', + modalPopup = '.wr-modalpopup', + modalPopupContainer = modalPopup + ' .modalpopup-container', + modalPopupContent = modalPopup + ' .modalpopup-content', + deviceCheckbox = '#ast-container .ctrl-wr-asset .itm-select input[type="checkbox"]', + showOperationsBtn = '#showOperationsBtn', + navHeight = $('#nav').height(), + headerHeight = $('header').height(), + offset = (headerHeight + navHeight), + maxOperationsLimit = 15, + hiddenOperation = '.wr-hidden-operations-content > div', + deviceSelection = '.device-select', + currentOperationList = []; + +/* + * DOM ready functions. + */ +$(document).ready(function(){ + if($(operations + "> a").length > maxOperationsLimit){ + $(showOperationsBtn).show(); + } + else{ + $(operations).show(); + } + toggleMoreOperationsHeight(); + //loadOperationBar("ios"); + /** + * Android App type javascript + */ + $(".wr-modalpopup").on("click", ".appTypesInput", function(){ + var appType = $(".appTypesInput").val(); + if (appType == "Public") { + $('.appURLInput').prop( "disabled", true ); + }else if (appType == "Enterprise"){ + $('.appURLInput').prop( "disabled", false ); + } + }).trigger("change"); +}); + + +/* + * On window loaded functions. + */ +$(window).load(function(){ + setPopupMaxHeight(); +}); + +/* + * On window resize functions. + */ +$(window).resize(function(){ + toggleMoreOperationsHeight(); + setPopupMaxHeight(); +}); + +/* + * On main div.container resize functions. + * @required jquery.resize.js + */ +$('.container').resize(function(){ + toggleMoreOperationsHeight(); +}); + +/* + * On Show Operations click operation show toggling function. + */ +function showOperations(){ + $(operations).toggle('slide'); +} + +/* + * On operation click function. + * @param selection: Selected operation + */ +function operationSelect(selection){ + var deviceIdList = getSelectedDeviceIds(); + $(modalPopupContent).addClass("operation-data"); + if (deviceIdList == 0){ + $(modalPopupContent).html($('#errorOperations').html()); + }else { + $(modalPopupContent).html($(operations + ' .operation[data-operation='+selection+']').html()); + $(modalPopupContent).data("operation", selection); + } + showPopup(); +} + +/* + * show popup function. + */ +function showPopup() { + $(modalPopup).show(); +} + +/* + * hide popup function. + */ +function hidePopup() { + $(modalPopupContent).html(''); + $(modalPopupContent).removeClass("operation-data"); + $(modalPopup).hide(); +} + +/* + * set popup maximum height function. + */ +function setPopupMaxHeight() { + $(modalPopupContent).css('max-height', ($('body').height() - ($('body').height()/100 * 30))); + $(modalPopupContainer).css('margin-top', (-($(modalPopupContainer).height()/2))); +} + + +/* + * Function to open hidden device operations list + */ +function toggleMoreOperations(){ + $('.wr-hidden-operations, .wr-page-content').toggleClass('toggled'); + $(showOperationsBtn).toggleClass('selected'); + //$('.footer').toggleClass('wr-hidden-operations-toggled'); +} + +/* + * Function to fit hidden device operation window height with the screen + */ +function toggleMoreOperationsHeight(){ + $('.wr-hidden-operations').css('min-height', $('html').height() - (offset+140)); +} + +/* + * Advance operations sub categories show/hide toggle function + */ +function showAdvanceOperation(operation, button){ + $(button).addClass('selected'); + $(button).siblings().removeClass('selected'); + $(hiddenOperation + '[data-operation="' + operation + '"]').show(); + $(hiddenOperation + '[data-operation="' + operation + '"]').siblings().hide(); +} + +/* + * Function to get selected devices ID's + */ +function getSelectedDeviceIds(){ + var deviceIdentifierList = []; + $(deviceSelection).each(function(index){ + var device = $(this); + var deviceId = device.data('deviceid'); + var deviceType = device.data('type'); + deviceIdentifierList.push({ + "id" : deviceId, + "type" : deviceType + }); + }); + return deviceIdentifierList; +} +function getDevicesByTypes(deviceList){ + var deviceTypes = {}; + jQuery.each(deviceList, function(index, item) { + if(!deviceTypes[item.type]){ + deviceTypes[item.type] = []; + } + if(item.type == "ios"){ + //for iOS we are sending only the IDS cause we are sending it to the JAX-RS + deviceTypes[item.type].push(item.id); + } + }); + return deviceTypes; +} +function unloadOperationBar(){ + $("#showOperationsBtn").addClass("hidden"); + $(".wr-operations").html(""); +} + +function loadOperationBar(deviceType){ + var operationBar = $("#operations-bar"); + var operationBarSrc = operationBar.attr("src"); + var platformType = deviceType; + $.template("operations-bar", operationBarSrc, function (template) { + var serviceURL = "/mdm-admin/features/" + platformType; + var successCallback = function (data) { + var viewModel = {}; + var iconMap = {}; + data = data.filter(function(current){ + var iconName; + if (deviceType == "android"){ + var iconName = operationModule.getAndroidIconForFeature(current.code); + } else if (deviceType == "ios"){ + var iconName = operationModule.getiOSIconForFeature(current.code); + } + if (iconName){ + current.icon = iconName; + return current; + } + }); + viewModel.features = data; + var content = template(viewModel); + $(".wr-operations").html(content); + }; + invokerUtil.get(serviceURL, + successCallback, function(message){ + console.log(message); + }); + }); + var hiddenOperationBar = $("#hidden-operations-bar-" + deviceType); + var hiddenOperationBarSrc = hiddenOperationBar.attr("src"); + $.template("hidden-operations-bar-" + deviceType, hiddenOperationBarSrc, function (template) { + var serviceURL = "/mdm-admin/features/" + platformType; + var successCallback = function (data) { + var viewModel = {}; + viewModel.features = data.reduce(function (total, current) { + total[current.code] = current; + return total; + }, {}); + currentOperationList = viewModel.features; + var content = template(viewModel); + $(".wr-hidden-operations").html(content); + }; + invokerUtil.get(serviceURL, + successCallback, function(message){ + console.log(message); + }); + }); + $("#showOperationsBtn").removeClass("hidden"); +} + +function runOperation(operationName) { + var deviceIdList = getSelectedDeviceIds(); + var list = getDevicesByTypes(deviceIdList); + var successCallback = function(message){ + console.log(message); + $(".wr-notification-bar").append('
' + currentOperationList[operationName].name + + '- Operation Successful!

'); + var notificationCount = parseInt($(".wr-notification-bubble").html()); + notificationCount++; + $(".wr-notification-bubble").html(notificationCount); + }; + if(list["ios"]){ + var payload = operationModule.generatePayload("ios", operationName, list["ios"]); + var serviceEndPoint = operationModule.getiOSServiceEndpoint(operationName); + + } + if(list["android"]){ + var payload = operationModule.generatePayload("android", operationName, list["android"]); + var serviceEndPoint = operationModule.getAndroidServiceEndpoint(operationName); + } + invokerUtil.post(serviceEndPoint, payload, + successCallback, function(jqXHR, textStatus, errorThrown){ + console.log(textStatus); + }); + $(modalPopupContent).removeData(); + hidePopup(); +} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-android.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-android.hbs new file mode 100644 index 0000000000..8e1900d487 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-android.hbs @@ -0,0 +1,246 @@ +
+ +
+ + +
+
+ +
+
+ +
+ Configure +
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ + Configure +
+
+
+ + + +
+
+ + +
+ +
+ + + +
+ +
+ Configure +
+ +
+ + +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+ Install +
+
+
+ +
+ + +
+ +
+ + +
+ +
+ Install +
+
+
+ +
+ + +
+ +
+ Uninstall +
+
+
+ + + +
+
+ +
+
+ +
+ Configure +
+
+
+ +
+
\ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-ios.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-ios.hbs new file mode 100644 index 0000000000..4cb006ef07 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/hidden-operations-ios.hbs @@ -0,0 +1,366 @@ +
+ +
+ + +
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ + +
+
+ + +
+ Install +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ + +
+
+ + +
+ Install +
+
+
+ +
+ +
+ +
+ Uninstall +
+
+
+ + + +
+ + +
+ +
+ +
+ + +
+ +
+ + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ Configure +
+ + + +
+ + +
+ +
+ + + +
+
+ +
+
+ Path Prefix +
+
+
+ + + +
+ +
+ + + +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+
+ +
+
+ : +
+
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ +
+ + +
+
+ + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ Configure +
+ + +
+ +
+ +
+ +
+ +
AirPlay password +
+ +
+ Configure +
+ +
+
\ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/operations.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/operations.hbs new file mode 100644 index 0000000000..73dd25e756 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-bar/public/templates/operations.hbs @@ -0,0 +1,54 @@ +
+
+
+
+

+ + + + No Devices selected. Please select a Device before performing an operation +

+
+ OK +
+
+
+
+
+{{#each features}} + {{name}} +
+
+
+
+

+ + + + {{#equal code "NOTIFICATION"}} + Compose Message + {{/equal}} + {{#equal code "CHANGE_LOCK_CODE"}} + Change Lockcode + {{/equal}} + {{#unequal code "NOTIFICATION"}} + Do you want perform "{{name}}" operation on selected device(s)? + + {{/unequal}} +

+ {{#equal code "NOTIFICATION"}} + Type a message and click "SEND" to send it to all the selected device/s +
+ {{/equal}} + {{#equal code "CHANGE_LOCK_CODE"}} + + {{/equal}} +
+ OK +
+
+
+
+
+{{/each}} +
\ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.hbs new file mode 100644 index 0000000000..117c0f03b6 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.hbs @@ -0,0 +1,6 @@ +{{#zone "main"}} + +{{/zone}} +{{#zone "bottomLibJs"}} + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.js new file mode 100644 index 0000000000..e99497b9e8 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.js @@ -0,0 +1,3 @@ +function onRequest(context){ + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.json new file mode 100644 index 0000000000..2a2a551fcf --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/operation-mod.json @@ -0,0 +1,7 @@ +{ + + + + "predicate": "false" + +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/public/js/operation-mod.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/public/js/operation-mod.js new file mode 100644 index 0000000000..6d846117c4 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/operation-mod/public/js/operation-mod.js @@ -0,0 +1,363 @@ +var operationModule = function () { + var module = {}; + + module.getiOSServiceEndpoint = function(operationName) { + var featureMap = { + DEVICE_LOCK: "lock", + ALARM: "alarm", + LOCATION: "location", + AIR_PLAY: "airplay", + INSTALL_STORE_APPLICATION: "storeapplication", + INSTALL_ENTERPRISE_APPLICATION: "enterpriseapplication", + REMOVE_APPLICATION: "removeapplication", + RESTRICTION: "restriction", + CELLULAR: "cellular", + ENTERPRISE_WIPE: "enterprisewipe", + WIFI: "wifi" + }; + return "/ios/operation/" + featureMap[operationName]; + } + + function createiOSPayload(operationName, operationData, devices) { + // Command operations doesn't need a payload + var payload; + var operationType = "profile"; + if (operationName == "AIR_PLAY") { + payload = { + "operation": { + "airPlayDestinations": [ + operationData.location + ], + "airPlayCredentials": [{ + "deviceName": operationData.deviceName, + "password": operationData.password + }] + } + }; + }else if (operationName == "INSTALL_STORE_APPLICATION") { + payload = { + "operation": { + "identifier": operationData.appIdentifier, + "iTunesStoreID": operationData.ituneID, + "removeAppUponMDMProfileRemoval": operationData.appRemoval, + "preventBackupOfAppData": operationData.backupData, + "bundleId": operationData.bundleId + } + }; + } else if (operationName == "INSTALL_ENTERPRISE_APPLICATION") { + payload = { + "operation": { + "identifier": operationData.appIdentifier, + "manifestURL": operationData.manifestURL, + "removeAppUponMDMProfileRemoval": operationData.appRemoval, + "preventBackupOfAppData": operationData.backupData, + "bundleId": operationData.bundleId + } + }; + } else if (operationName == "REMOVE_APPLICATION"){ + payload = { + "operation": { + "bundleId": operationData.bundleId + } + }; + } else if (operationName == "RESTRICTION"){ + payload = { + "operation": { + "allowCamera": operationData.allowCamera, + "allowCloudBackup": operationData.allowCloudBackup, + "allowSafari": operationData.allowSafari, + "allowScreenShot": operationData.allowScreenshot, + "allowAirDrop": operationData.allowAirDrop + } + }; + } else if (operationName == "CELLULAR"){ + payload = { + "operation": { + "attachAPNName": null, + "authenticationType": null, + "username": null, + "password": null, + "apnConfigurations": [ + { + "configurationName": null, + "authenticationType": null, + "username": null, + "password": null, + "proxyServer": null, + "proxyPort": 0 + } + ] + } + }; + } else if (operationName == "WIFI"){ + payload = { + "operation": { + "hiddenNetwork": operationData.hiddenNetwork, + "autoJoin": operationData.autoJoin, + "encryptionType": operationData.encryptionType, + "hotspot": false, + "domainName": null, + "serviceProviderRoamingEnabled": false, + "displayedOperatorName": null, + "proxyType": null, + "roamingConsortiumOIs": null, + "password": operationData.password, + "clientConfiguration": { + "username": null, + "acceptEAPTypes": null, + "userPassword": null, + "oneTimePassword": false, + "payloadCertificateAnchorUUID": null, + "outerIdentity": null, + "tlstrustedServerNames": null, + "tlsallowTrustExceptions": false, + "tlscertificateIsRequired": false, + "ttlsinnerAuthentication": null, + "eapfastusePAC": false, + "eapfastprovisionPAC": false, + "eapfastprovisionPACAnonymously": false, + "eapsimnumberOfRANDs": 0 + }, + "payloadCertificateUUID": null, + "proxyServer": null, + "proxyPort": 0, + "proxyUsername": null, + "proxyPassword": null, + "proxyPACURL": null, + "proxyPACFallbackAllowed": false, + "ssid": operationData.ssid, + "nairealmNames": null, + "mccandMNCs": null + } + }; + } else if (operationName == "MAIL"){ + payload = { + "operation": { + "attachAPNName": null, + "authenticationType": null, + "username": null, + "password": null, + "apnConfigurations": [ + { + "configurationName": null, + "authenticationType": null, + "username": null, + "password": null, + "proxyServer": null, + "proxyPort": 0 + } + ] + } + }; + } else { + // The payload of command operations are set as device ids + payload = devices; + operationType = "command"; + } + if (operationType == "profile" && devices) { + payload.deviceIDs = devices; + } + return payload; + } + + function createAndroidPayload(operationName, operationData, devices) { + var payload; + var operationType = "profile"; + if (operationName == "CAMERA") { + payload = { + "operation": { + "enabled" : operationData.enableCamera + } + }; + } else if (operationName == "CHANGE_LOCK_CODE") { + payload = { + "operation": { + "lockCode" : operationData.lockCode + } + }; + } else if (operationName == "ENCRYPT_STORAGE") { + payload = { + "operation": { + "encrypted" : operationData.enableEncryption + } + }; + } else if (operationName == "NOTIFICATION"){ + payload = { + "deviceIDs": devices, + "operation": { + "message" : operationData.message + } + }; + } else if (operationName == "WEBCLIP"){ + payload = { + "operation": { + "identity": operationData.url, + "title": operationData.title + + } + }; + } else if (operationName == "INSTALL_APPLICATION"){ + payload = { + "operation": { + "appIdentifier": operationData.packageName, + "type": operationData.type, + "url": operationData.url + } + }; + } else if (operationName == "UNINSTALL_APPLICATION"){ + payload = { + "operation": { + "appIdentifier": operationData.packageName + } + }; + } else if (operationName == "BLACKLIST_APPLICATIONS"){ + payload = { + "operation": { + "appIdentifier": operationData.packageNames + } + }; + } else if (operationName == "PASSCODE_POLICY"){ + payload = { + "operation": { + "maxFailedAttempts": operationData.maxFailedAttempts, + "minLength": operationData.minLength, + "pinHistory": operationData.pinHistory, + "minComplexChars": operationData.minComplexChars, + "maxPINAgeInDays": operationData.maxPINAgeInDays, + "requireAlphanumeric": operationData.requireAlphanumeric, + "allowSimple": operationData.allowSimple + + } + }; + } else if (operationName == "WIFI"){ + payload = { + "operation": { + "ssid": operationData.ssid, + "password": operationData.password + + } + }; + } else { + operationType = "command"; + payload = devices; + } + if (operationType == "profile" && devices) { + payload.deviceIDs = devices; + } + return payload; + } + module.getAndroidServiceEndpoint = function(operationName) { + var featureMap = { + DEVICE_LOCK: "lock", + DEVICE_LOCATION: "location", + CLEAR_PASSWORD: "clear-password", + CAMERA: "camera", + ENTERPRISE_WIPE: "enterprise-wipe", + WIPE_DATA: "wipe-data", + APPLICATION_LIST: "get-application-list", + DEVICE_RING: "ring-device", + DEVICE_MUTE: "mute", + NOTIFICATION: "notification", + WIFI: "wifi", + ENCRYPT_STORAGE: "encrypt", + CHANGE_LOCK_CODE: "change-lock-code", + WEBCLIP: "webclip", + INSTALL_APPLICATION: "install-application", + UNINSTALL_APPLICATION: "uninstall-application", + BLACKLIST_APPLICATIONS: "blacklist-applications", + PASSCODE_POLICY: "password-policy" + }; + return "/mdm-android-agent/operation/" + featureMap[operationName]; + }; + /** + * Get the icon for the featureCode + * @param featureCode + * @returns icon class + */ + module.getAndroidIconForFeature = function(featureCode){ + var featureMap = { + DEVICE_LOCK: "fw-lock", + DEVICE_LOCATION: "fw-map-location", + CLEAR_PASSWORD: "fw-key", + ENTERPRISE_WIPE: "fw-clean", + WIPE_DATA: "fw-database", + DEVICE_RING: "fw-dial-up", + DEVICE_MUTE: "fw-incoming-call", + NOTIFICATION: "fw-message", + CHANGE_LOCK_CODE: "fw-padlock" + }; + return featureMap[featureCode]; + }; + /** + * Get the icon for the featureCode + * @param featureCode + * @returns icon class + */ + module.getiOSIconForFeature = function(featureCode){ + var featureMap = { + DEVICE_LOCK: "fw-lock", + LOCATION: "fw-map-location", + ENTERPRISE_WIPE: "fw-clean", + ALARM: "fw-dial-up" + }; + return featureMap[featureCode]; + }; + /** + * Filter a list by a data attribute + * @param prop + * @param val + * @returns {Array.|*|array|enumeration} + */ + $.fn.filterByData = function(prop, val) { + return this.filter( + function() { return $(this).data(prop)==val; } + ); + }; + + /* + @DeviceType = Device Type of the profile + @operationCode = Feature Codes to generate the profile from + @DeviceList = Optional device list to include in payload body for operations + */ + module.generatePayload = function(deviceType, operationCode, deviceList){ + var payload; + var operationData = {}; + $(".operation-data").filterByData("operation", operationCode).find(".operationDataKeys").each( + function(index){ + var operationDataObj = $(this); + var key = operationDataObj.data("key"); + var value = operationDataObj.val(); + if (operationDataObj.is(':checkbox')){ + value = operationDataObj.is(":checked"); + }else if (operationDataObj.is('select')){ + var value = operationDataObj.find("option:selected").data("id"); + if (!value){ + value = operationDataObj.find("option:selected").text(); + } + } + operationData[key] = value; + }); + if(deviceType == "ios"){ + payload = createiOSPayload(operationCode, operationData, deviceList); + } + if(deviceType == "android"){ + payload = createAndroidPayload(operationCode, operationData, deviceList); + } + return payload; + }; + + /* + @DeviceType = Device Type of the profile + @FeatureCodes = Feature Codes to generate the profile from + */ + module.generateProfile = function(deviceType, featureCodes){ + var generatedProfile = {}; + for (var i = 0; i < featureCodes.length; ++i) { + var featureCode = featureCodes[i]; + var payload = module.generatePayload(deviceType, featureCode); + generatedProfile[featureCode] = payload.operation; + } + return generatedProfile; + }; + return module; +}(); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.hbs new file mode 100644 index 0000000000..84e168386e --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.hbs @@ -0,0 +1,196 @@ + +{{#zone "main"}} + + + + + + + + + + +
+
+ + + + +
+ +
+ +

Add Policy

+ +
+
+
1
+
+
+
+
2
+
+
+
+
3
+
+
+
+ +
+
+
+
+
+ {{! All "Device Types" registered in CDMF will be listed here. please refer: public/js/store-listing.js }} +
+
+
+
+
+ +
+
+ +
+
+{{/zone}} +{{#zone "bottomJs"}} + + + + + + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.js new file mode 100644 index 0000000000..f2fb495445 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.js @@ -0,0 +1,10 @@ +function onRequest(context){ + var userModule = require("/modules/user.js").userModule; + var roles = userModule.getRoles(true); + var users = userModule.getUsers(); + var actions = ["Enforce"]; + context.roles = roles; + context.users = users; + context.actions = actions; + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.json new file mode 100644 index 0000000000..f2aa29a39b --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/policy-create.json @@ -0,0 +1,3 @@ +{ + "predicate": "false" +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/css/codemirror.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/css/codemirror.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/css/codemirror.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/css/codemirror.css diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/RaspberryPi.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/RaspberryPi.png new file mode 100644 index 0000000000..eb0e28cb26 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/RaspberryPi.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/android.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/android.png new file mode 100644 index 0000000000..d38a8d7567 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/android.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/arduino-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/arduino-thumb.png new file mode 100644 index 0000000000..31cb9fa364 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/arduino-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/banner-img-3.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/banner-img-3.png new file mode 100644 index 0000000000..ce6d43d3b5 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/banner-img-3.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/beagleBone.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/beagleBone.png new file mode 100644 index 0000000000..8bb45023fe Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/beagleBone.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/digitaldisplay-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/digitaldisplay-thumb.png new file mode 100644 index 0000000000..fb1f624c3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/digitaldisplay-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/firealarm-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/firealarm-thumb.png new file mode 100644 index 0000000000..aaf16925fd Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/firealarm-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/intel.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/intel.png new file mode 100644 index 0000000000..185fed1b83 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/intel.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/ios.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/ios.png new file mode 100644 index 0000000000..22be2fa39d Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/ios.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/sensebot-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/sensebot-thumb.png new file mode 100644 index 0000000000..04e5752a3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/sensebot-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/windows.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/windows.png new file mode 100644 index 0000000000..3b66825670 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/images/windows.png differ diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/codemirror.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/codemirror.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/codemirror.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/codemirror.js diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/policy-create.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/policy-create.js new file mode 100755 index 0000000000..5705de5265 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/policy-create.js @@ -0,0 +1,124 @@ +$('select.select2').select2({ + placeholder: 'Select..' +}); + +$('select.select2[multiple=multiple]').select2({ + placeholder: 'Select..', + tags: true +}); +var stepperRegistry = {}, + hiddenOperation = '.wr-hidden-operations-content > div', + advanceOperation = '.wr-advance-operations'; +function initStepper(selector){ + $(selector).click(function(){ + var nextStep = $(this).data("next"); + var currentStep = $(this).data("current"); + var isBack = $(this).data("back"); + if (!isBack){ + var action = stepperRegistry[currentStep]; + if (action){ + action(this); + } + } + if (!nextStep) { + var direct = $(this).data("direct"); + window.location.href = direct; + } + $(".itm-wiz").each(function(){ + var step = $(this).data("step"); + if (step == nextStep){ + $(this).addClass("itm-wiz-current"); + }else{ + $(this).removeClass("itm-wiz-current"); + } + }); + $(".wr-wizard").html($(".wr-steps").html()); + $("." + nextStep).removeClass("hidden"); + $("." + currentStep).addClass("hidden"); + + }); +} +function showAdvanceOperation(operation, button){ + $(button).addClass('selected'); + $(button).siblings().removeClass('selected'); + $(hiddenOperation + '[data-operation="' + operation + '"]').show(); + $(hiddenOperation + '[data-operation="' + operation + '"]').siblings().hide(); +} + +var policy = {}; +var configuredProfiles = []; + +function savePolicy(){ + + var payload = { + policyName: policy.policyName, + compliance: policy.selectedAction, + ownershipType: policy.selectedOwnership, + profile: { + profileName: policy.policyName, + deviceType: { + id: policy.devicetypeId, + name: policy.devicetype + }, + policyDefinition: policy.policyDefinition, + policyDescription: policy.policyDescription + } + }; + + invokerUtil.post("/iotserver/api/policies/add", payload, function(){ + $(".policy-message").removeClass("hidden"); + $(".add-policy").addClass("hidden"); + }, function(){ + + }); +} + +$(document).ready(function(){ + initStepper(".wizard-stepper"); + $( "input[type='radio'].user-select-radio" ).change(function() { + $('.user-select').hide(); + $('#'+$(this).val()).show(); + }); + //Adds an event listener to swithc + $(advanceOperation).on("click", ".wr-input-control.switch", function(evt){ + var operation = $(this).parents(".operation-data").data("operation"); + //prevents event bubbling by figuring out what element it's being called from + if (evt.target.tagName == "INPUT") { + if(!$(this).hasClass('collapsed')){ + configuredProfiles.push(operation); + }else { + //splicing the array if operation is present + var index = jQuery.inArray( operation, configuredProfiles ); + if (index!= -1){ + configuredProfiles.splice( index, 1 ); + } + } + console.log(configuredProfiles); + } + + }); + stepperRegistry['policy-content'] = function (actionButton){ + policy.policyName = $("#policy-name-input").val(); + policy.policyDescription = $("#policy-description-input").val(); + //All data is collected. Policy can now be created. + savePolicy(); + }; + stepperRegistry['policy-profile'] = function (actionButton){ + policy.policyDefinition = window.queryEditor.getValue(); + }; + stepperRegistry['policy-devicetype'] = function (actionButton){ + policy.devicetype = $(actionButton).data("devicetype"); + policy.devicetypeId = $(actionButton).data("devicetype-id"); + + }; + $(".uu").click(function(){ + var policyName = $("#policy-name-input").val(); + var selectedProfiles = $("#profile-input").find(":selected"); + var selectedProfileId = selectedProfiles.data("id"); + var selectedUserRoles = $("#user-roles-input").val(); + var selectedUsers = $("#users-input").val(); + var selectedAction = $("#action-input").val(); + + + }); +}); \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/sql.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/sql.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/sql.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/sql.js diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/store-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/store-listing.js new file mode 100644 index 0000000000..2e4000b566 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/js/store-listing.js @@ -0,0 +1,74 @@ +/* + * 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. + */ + +/* + * Setting-up global variables. + */ +var assetContainer = "#ast-container"; + +function loadDeviceTypes() { + var deviceListing = $("#store-listing"); + var deviceListingSrc = deviceListing.attr("src"); + + $.template("store-listing", deviceListingSrc, function (template) { + var serviceURL = "/iotserver/api/devices/types"; + + var successCallback = function (data) { + var viewModel = {}; + var deviceTypes = JSON.parse(data); + if (!deviceTypes) return; + + for (var i = 0; i < deviceTypes.length; i++) { + var deviceType = deviceTypes[i]; + + //setting defaults + var storeTitle = deviceType.name; + var storeDescription = "Connect your " + deviceType.name + " into the WSO2 IoT Server."; + + if (deviceType.storeTitle != null) { + storeTitle = deviceType.storeTitle; + } + + if (deviceType.storeDescription != null) { + storeDescription = deviceType.storeDescription; + } + + deviceTypes[i].storeTitle = storeTitle; + deviceTypes[i].storeDescription = storeDescription; + } + + viewModel.deviceTypes = deviceTypes; + + if (data.length == 0) { + $("#ast-container").html("No Devices found"); + } else { + var content = template(viewModel); + $("#ast-container").html(content); + initStepper(".wizard-stepper"); + } + }; + invokerUtil.get(serviceURL, + successCallback, function (message) { + console.log(message); + }); + }); +} + +$(document).ready(function () { + loadDeviceTypes(); +}); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/templates/store-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/templates/store-listing.hbs new file mode 100644 index 0000000000..8f1c7958ba --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-create/public/templates/store-listing.hbs @@ -0,0 +1,19 @@ +{{#each deviceTypes}} +
+
+
+

{{storeTitle}}

+
{{storeDescription}}
+ +
+
+{{/each}} +
diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.hbs new file mode 100644 index 0000000000..bf566146c7 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.hbs @@ -0,0 +1,201 @@ +{{#zone "main"}} +
+
+ +
+
+
+
+ +
+
+ {{unit "operation-bar" deviceType=device.type}} +
+
+ + + +
+
+
+ +
+
+
Owner: {{device.owner}}
+
Date of Enrollment:
{{device.enrollment}}
+ + + + + +
+
+
+ +
+ + +
+ +
+ {{#if device.viewModel.BatteryLevel}} +
+
+
BATTERY
+
+
+
{{device.viewModel.BatteryLevel}}%
+
+
+
+ {{/if}} + + {{#if device.viewModel.DeviceCapacity}} +
+
+
STORAGE
+
+
+
{{device.viewModel.DeviceCapacityPercentage}}%{{device.viewModel.DeviceCapacityUsed}} GB Free
+
+
+
+ {{/if}} + {{#if device.viewModel.internal_memory.FreeCapacity}} +
+
+
LOCAL STORAGE
+
+
+
{{device.viewModel.internal_memory.DeviceCapacityPercentage}}%{{device.viewModel.internal_memory.FreeCapacity}} GB Free
+
+
+
+ {{/if}} + {{#if device.viewModel.external_memory.FreeCapacity}} +
+
+
EXTERNAL STORAGE
+
+
+
{{device.viewModel.external_memory.DeviceCapacityPercentage}}%{{device.viewModel.external_memory.FreeCapacity}} GB Free
+
+
+
+ {{/if}} +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ Not available yet +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+
+
+ +{{/zone}} +{{#zone "bottomJs"}} + + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.js new file mode 100644 index 0000000000..769d304154 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.js @@ -0,0 +1,58 @@ +function onRequest(context) { + var uri = request.getRequestURI(); + var uriMatcher = new URIMatcher(String(uri)); + var isMatched = uriMatcher.match("/{context}/device/{deviceType}/{+deviceId}"); + if (isMatched) { + var matchedElements = uriMatcher.elements(); + var deviceType = matchedElements.deviceType; + var deviceId = matchedElements.deviceId; + context.deviceType = deviceType; + context.deviceId = deviceId; + var deviceModule = require("/modules/device.js").deviceModule; + var device = deviceModule.viewDevice(deviceType, deviceId); + if (device){ + var viewModel = {}; + var deviceInfo = device.properties.DEVICE_INFO; + if (deviceInfo != undefined && String(deviceInfo.toString()).length > 0){ + deviceInfo = JSON.parse(deviceInfo); + if (device.type == "ios"){ + viewModel.imei = device.properties.IMEI; + viewModel.phoneNumber = deviceInfo.PhoneNumber; + viewModel.udid = deviceInfo.UDID; + viewModel.BatteryLevel = Math.round(deviceInfo.BatteryLevel * 100); + viewModel.DeviceCapacity = Math.round(deviceInfo.DeviceCapacity * 100) / 100; + viewModel.AvailableDeviceCapacity = Math.round(deviceInfo.AvailableDeviceCapacity * 100) / 100; + viewModel.DeviceCapacityUsed = Math.round((viewModel.DeviceCapacity + - viewModel.AvailableDeviceCapacity) * 100) / 100; + viewModel.DeviceCapacityPercentage = Math.round(viewModel.DeviceCapacityUsed + / viewModel.DeviceCapacity * 10000) /100; + }else if(device.type == "android"){ + viewModel.imei = device.properties.IMEI; + viewModel.model = device.properties.DEVICE_MODEL; + viewModel.vendor = device.properties.VENDOR; + viewModel.internal_memory = {}; + viewModel.external_memory = {}; + viewModel.location = { + latitude: device.properties.LATITUDE, + longitude: device.properties.LONGITUDE + }; + viewModel.BatteryLevel = deviceInfo.BATTERY_LEVEL; + viewModel.internal_memory.FreeCapacity = Math.round((deviceInfo.INTERNAL_TOTAL_MEMORY - + deviceInfo.INTERNAL_AVAILABLE_MEMORY) * 100) / 100; + viewModel.internal_memory.DeviceCapacityPercentage = Math.round(deviceInfo.INTERNAL_AVAILABLE_MEMORY + / deviceInfo.INTERNAL_TOTAL_MEMORY * 10000) / 100; + viewModel.external_memory.FreeCapacity = Math.round((deviceInfo.EXTERNAL_TOTAL_MEMORY - + deviceInfo.EXTERNAL_AVAILABLE_MEMORY) * 100) / 100; + viewModel.external_memory.DeviceCapacityPercentage = Math.round(deviceInfo.EXTERNAL_AVAILABLE_MEMORY + /deviceInfo.EXTERNAL_TOTAL_MEMORY * 10000) /100; + } + viewModel.enrollment = device.enrollment; + device.viewModel = viewModel; + } + } + context.device = device; + } else { + response.sendError(404); + } + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/policy-detail.json diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/public/js/policy-detail.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/public/js/policy-detail.js new file mode 100644 index 0000000000..c453c8899c --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-detail/public/js/policy-detail.js @@ -0,0 +1,69 @@ +/* + * 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 formatDates(){ + $(".formatDate").each(function(){ + var timeStamp = $(this).html(); + $(this).html(new Date(parseInt(timeStamp)).toUTCString()); + }); +} + +(function () { + var deviceId = $(".device-id"); + var deviceIdentifier = deviceId.data("deviceid"); + var deviceType = deviceId.data("type"); + var payload = [deviceIdentifier]; + if (deviceType == "ios") { + var serviceUrl = "/ios/operation/deviceinfo"; + } else if (deviceType == "android") { + var serviceUrl = "/mdm-android-agent/operation/device-info"; + } + invokerUtil.post(serviceUrl, payload, + function(message){ + console.log(message); + }, function (message) { + console.log(message); + }); + $(document).ready(function(){ + loadOperationBar(deviceType); + loadMap(); + formatDates(); + }); + function loadMap(){ + var map; + function initialize() { + var mapOptions = { + zoom: 18 + }; + var lat = 6.9098591; + var long = 79.8523753; + map = new google.maps.Map(document.getElementById('device-location'), + mapOptions); + + var pos = new google.maps.LatLng(lat, + long); + var marker = new google.maps.Marker({ + position: pos, + map: map + }); + + map.setCenter(pos); + } + google.maps.event.addDomListener(window, 'load', initialize); + } +}()); diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.hbs new file mode 100644 index 0000000000..77701f63fa --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.hbs @@ -0,0 +1,184 @@ +{{#zone "main"}} +
+
+ +
+

{{listPolicyStatus}}

+ +
+ {{#if policies}} + {{#each policies}} + + + +
+

{{policyName}}

+ {{deviceType}} | Last Updated: {{updated}} +
+ + + + + + + + Remove + + +
+
+ {{/each}} + {{else}} + +
+
+

You don't have any Policies added at the moment.

+ +

+ + + + + + Add New Policy + +

+
+
+ + {{/if}} +
+
+ +
+
+ + +
+
+
+
+

Do you really want to remove this policy from IoT Server?

+ + +
+
+
+
+ +
+
+
+
+

Policy was successfully removed.

+ + +
+
+
+
+ +
+
+
+
+

Exception at backend. Try Later.

+ + +
+
+
+
+ +
+
+
+
+

Action not permitted.

+ + +
+
+
+
+ +
+
+
+
+

Policy does not exist.

+ + +
+
+
+
+ +
+
+
+
+

Policy does not exist.

+ + +
+
+
+
+ + + +{{/zone}} +{{#zone "common-navigation"}} + +{{/zone}} +{{#zone "action-bar"}} + + + + + + Add Policy + +{{/zone}} +{{#zone "bottomJs"}} + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.js new file mode 100644 index 0000000000..d7f2da5c96 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.js @@ -0,0 +1,20 @@ +function onRequest(context) { + // var log = new Log("policy-listing"); + var policyModule = require("/modules/policy.js").policyModule; + var allPolicies = policyModule.getPolicies(); + //log.info((allPolicies)); + if (!allPolicies || allPolicies.length == 0) { + context.policies = []; + context.listPolicyStatus = ""; + } else { + var i, filteredPoliciesList = []; + for (i = 0; i < allPolicies.length; i++) { + filteredPoliciesList.push(allPolicies[i]); + } + //log.info(filteredPoliciesList.length); + context.policies = filteredPoliciesList; + context.listPolicyStatus = "Total number of Policies found : " + filteredPoliciesList.length; + } + //context.permissions = policyModule.getUIPermissions(); + return context; +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.json new file mode 100644 index 0000000000..3f78010053 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/policy-listing.json @@ -0,0 +1,5 @@ +{ + + + +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/public/js/policy-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/public/js/policy-listing.js new file mode 100644 index 0000000000..4ecb748fec --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/policy-listing/public/js/policy-listing.js @@ -0,0 +1,115 @@ +/** + * 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(); +} + +$(document).ready(function () { + formatDates(); +}); + +function formatDates() { + $(".formatDate").each(function () { + var timeStamp = $(this).html(); + $(this).html(new Date(parseFloat(timeStamp)).toUTCString()); + }); +} + +/** + * Following click function would execute + * when a user clicks on "Remove" link + * on User Management page in WSO2 MDM Console. + */ +$("a.remove-policy-link").click(function () { + var deviceType = $(this).data("devicetype"); + var policyName = $(this).data("policyname"); + var policyUUID = $(this).data("policyuuid"); + ///{context}/api/policies/{deviceType}/{policyName}/remove + var removePolicyAPI = "/iotserver/api/policies/" + deviceType + "/" + policyName + "/remove"; + + $(modalPopupContent).html($('#remove-policy-modal-content').html()); + showPopup(); + + $("a#remove-policy-yes-link").click(function () { + invokerUtil.get( + removePolicyAPI, + function (data) { + if (data == 200 || data == "true") { + $(modalPopupContent).html($('#remove-policy-200-content').html()); + $('#' + policyUUID).remove(); + $("a#remove-policy-200-link").click(function () { + hidePopup(); + }); + } else if (data == 400) { + $(modalPopupContent).html($('#remove-policy-400-content').html()); + $("a#remove-policy-400-link").click(function () { + hidePopup(); + }); + } else if (data == 403) { + $(modalPopupContent).html($('#remove-policy-403-content').html()); + $("a#remove-policy-403-link").click(function () { + hidePopup(); + }); + } else if (data == 409 || data == "false") { + $(modalPopupContent).html($('#remove-policy-409-content').html()); + $("a#remove-policy-409-link").click(function () { + hidePopup(); + }); + } else if (data == 500) { + $(modalPopupContent).html($('#remove-policy-unexpected-content').html()); + $("a#remove-policy-unexpected-link").click(function () { + hidePopup(); + }); + } + }, + function () { + $(modalPopupContent).html($('#remove-policy-unexpected-error-content').html()); + $("a#remove-policy-unexpected-error-link").click(function () { + hidePopup(); + }); + } + ); + }); + + $("a#remove-policy-cancel-link").click(function () { + hidePopup(); + }); +}); \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/public/js/validate-register.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/public/js/validate-register.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/public/js/validate-register.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/public/js/validate-register.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/register/register.json diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/css/select2.min.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/css/select2.min.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/css/select2.min.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/css/select2.min.css diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/js/select2.full.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/js/select2.full.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/js/select2.full.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/public/js/select2.full.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.json similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.json rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/select2/select2.json diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/public/js/invoker-lib.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/public/js/invoker-lib.js new file mode 100644 index 0000000000..2b4dbc0df7 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/public/js/invoker-lib.js @@ -0,0 +1,89 @@ +/* + * 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. + */ + +//Using https://github.com/js-cookie/js-cookie + +var invokerUtil = function () { + var context="/iotserver"; + var module = {}; + var flagAuth = false; // A flag to be used to test without oAuth + function requestAccessToken(successCallback, errorCallback){ + $.ajax({ + url: context+"/token", + type: "GET", + success: function(){ + successCallback + } + }).fail(errorCallback); + } + function call(method, url, payload, successCallback, errorCallback){ + var accessToken = Cookies.get('accessToken'); + var execute = function(){ + var data = { + url: url, + type: method, + contentType: "application/json", + accept: "application/json", + //dataType: "json", + success: successCallback + }; + if (payload){ + data.data = JSON.stringify(payload); + } + + if (flagAuth){ + accessToken = Cookies.get('accessToken'); + data.headers = { + "Authorization": "Bearer " + accessToken + }; + } + $.ajax(data).fail(function(jqXHR){ + if(jqXHR.status == "401"){ + window.location.replace(context); + }else{ + errorCallback(jqXHR); + } + }); + } + if (flagAuth){ + if (accessToken){ + $.ajax({ + url: context+"/token", + type: "GET", + success: function(){ + execute(); + } + }).fail(errorCallback); + } + }else { + execute(); + } + } + module.get = function(url, successCallback, errorCallback){ + var payload = null; + call("GET", url, payload, successCallback, errorCallback); + }; + module.post = function(url, payload, successCallback, errorCallback){ + call("POST", url, payload, successCallback, errorCallback); + }; + module.delete = function(url, successCallback, errorCallback){ + var payload = null; + call("DELETE", url, payload, successCallback, errorCallback); + } + return module; +}(); \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/js.cookie.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/public/js/js.cookie.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/app/store-device-type/themes/store/js/libs/js.cookie.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/public/js/js.cookie.js diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.hbs new file mode 100644 index 0000000000..6a3b8f1c16 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.hbs @@ -0,0 +1,4 @@ +{{#zone "bottomLibJs"}} + + +{{/zone}} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.json new file mode 100644 index 0000000000..d03150b899 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/service-invoker-utility/service-invoker-utility.json @@ -0,0 +1,3 @@ +{ + "predicate": "true" +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/enroll-large.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/enroll-large.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/enroll-large.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/enroll-large.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/manage-large.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/manage-large.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/manage-large.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/manage-large.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-01.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-01.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-01.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-01.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-02.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-02.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-02.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-02.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-03.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-03.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-03.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/public/images/step-03.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs similarity index 98% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs index 211b3b6747..ea818259b2 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.hbs @@ -1,48 +1,48 @@ -{{#zone "main"}} - - -
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - {{unit "store-listing"}} - -
-
- -
-
-

Enroll your device

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in volutpat sapien. Phasellus sit amet mollis velit, vitae finibus orci. Vestibulum facilisis, neque quis tincidunt pulvinar, dui orci interdum orci, a rhoncus ante neque vitae felis.

-
-
- -
-
- -
-
-

Manage your device

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in volutpat sapien. Phasellus sit amet mollis velit, vitae finibus orci. Vestibulum facilisis, neque quis tincidunt pulvinar, dui orci interdum orci, a rhoncus ante neque vitae felis.

-
-
- -
- - -{{/zone}} +{{#zone "main"}} + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + {{unit "store-listing"}} + +
+
+ +
+
+

Enroll your device

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in volutpat sapien. Phasellus sit amet mollis velit, vitae finibus orci. Vestibulum facilisis, neque quis tincidunt pulvinar, dui orci interdum orci, a rhoncus ante neque vitae felis.

+
+
+ +
+
+ +
+
+

Manage your device

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in volutpat sapien. Phasellus sit amet mollis velit, vitae finibus orci. Vestibulum facilisis, neque quis tincidunt pulvinar, dui orci interdum orci, a rhoncus ante neque vitae felis.

+
+
+ +
+ + +{{/zone}} diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js similarity index 92% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js index 605a70054a..0ba05f3f01 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.js @@ -1,4 +1,4 @@ -function onRequest(context){ - return context; -} - +function onRequest(context){ + return context; +} + diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.json new file mode 100644 index 0000000000..6240cff527 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/showcase/showcase.json @@ -0,0 +1,3 @@ +{ + "predicate": "false" +} \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/RaspberryPi.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/RaspberryPi.png new file mode 100644 index 0000000000..eb0e28cb26 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/RaspberryPi.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/android.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/android.png new file mode 100644 index 0000000000..d38a8d7567 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/android.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/arduino-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/arduino-thumb.png new file mode 100644 index 0000000000..31cb9fa364 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/arduino-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/banner-img-3.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/banner-img-3.png new file mode 100644 index 0000000000..ce6d43d3b5 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/banner-img-3.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/beagleBone.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/beagleBone.png new file mode 100644 index 0000000000..8bb45023fe Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/beagleBone.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/digitaldisplay-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/digitaldisplay-thumb.png new file mode 100644 index 0000000000..fb1f624c3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/digitaldisplay-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/firealarm-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/firealarm-thumb.png new file mode 100644 index 0000000000..aaf16925fd Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/firealarm-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/intel.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/intel.png new file mode 100644 index 0000000000..185fed1b83 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/intel.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/ios.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/ios.png new file mode 100644 index 0000000000..22be2fa39d Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/ios.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/sensebot-thumb.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/sensebot-thumb.png new file mode 100644 index 0000000000..04e5752a3f Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/sensebot-thumb.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/windows.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/windows.png new file mode 100644 index 0000000000..3b66825670 Binary files /dev/null and b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/images/windows.png differ diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/js/store-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/js/store-listing.js new file mode 100644 index 0000000000..a10f7ed309 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/js/store-listing.js @@ -0,0 +1,73 @@ +/* + * 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. + */ + +/* + * Setting-up global variables. + */ +var assetContainer = "#ast-container"; + +function loadDeviceTypes() { + var deviceListing = $("#store-listing"); + var deviceListingSrc = deviceListing.attr("src"); + + $.template("store-listing", deviceListingSrc, function (template) { + var serviceURL = "/iotserver/api/devices/types"; + + var successCallback = function (data) { + var viewModel = {}; + var deviceTypes = JSON.parse(data); + if (!deviceTypes) return; + + for (var i = 0; i < deviceTypes.length; i++) { + var deviceType = deviceTypes[i]; + + //setting defaults + var storeTitle = deviceType.name; + var storeDescription = "Connect your " + deviceType.name + " into the WSO2 IoT Server."; + + if (deviceType.storeTitle != null) { + storeTitle = deviceType.storeTitle; + } + + if (deviceType.storeDescription != null) { + storeDescription = deviceType.storeDescription; + } + + deviceTypes[i].storeTitle = storeTitle; + deviceTypes[i].storeDescription = storeDescription; + } + + viewModel.deviceTypes = deviceTypes; + + if (data.length == 0) { + $("#ast-container").html("No Devices found"); + } else { + var content = template(viewModel); + $("#ast-container").html(content); + } + }; + invokerUtil.get(serviceURL, + successCallback, function (message) { + console.log(message); + }); + }); +} + +$(document).ready(function () { + loadDeviceTypes(); +}); \ No newline at end of file diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/templates/store-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/templates/store-listing.hbs new file mode 100644 index 0000000000..5beacb44ce --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/public/templates/store-listing.hbs @@ -0,0 +1,19 @@ +{{#each deviceTypes}} +
+
+
+

{{storeTitle}}

+
{{storeDescription}}
+ +
+
+{{/each}} +
diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.hbs new file mode 100644 index 0000000000..32b5ad0999 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.hbs @@ -0,0 +1,11 @@ +{{#zone "main"}} +
+
+ {{! All "Device Types" registered in CDMF will be listed here. please refer: public/js/store-listing.js }} +
+{{/zone}} + +{{#zone "bottomJs"}} + + +{{/zone}} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.js new file mode 100644 index 0000000000..88ff7f97f1 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.js @@ -0,0 +1,3 @@ +function onRequest(context){ + return context; +} diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.json b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.json new file mode 100644 index 0000000000..6240cff527 --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/store-listing/store-listing.json @@ -0,0 +1,3 @@ +{ + "predicate": "false" +} \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/bootstrap.min.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/bootstrap.min.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/bootstrap.min.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/bootstrap.min.css diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css similarity index 95% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css index 02acdd64e6..cb7f27b6d6 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-common.css @@ -1,355 +1,355 @@ -@import "font-wso2.css"; - -/* Regular */ -@font-face { - font-family: 'Open Sans'; - - src: url('../fonts/OpenSans-Regular-webfont.eot'); - src: url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), - url('../fonts/OpenSans-Regular-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg'); - font-weight: normal; - font-weight: 400; - font-style: normal; - -} - -/* Italic */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-Italic-webfont.eot'); - src: url('../fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-Italic-webfont.woff') format('woff'), - url('../fonts/OpenSans-Italic-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg'); - font-weight: normal; - font-weight: 400; - font-style: italic; - -} - -/* Light */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-Light-webfont.eot'); - src: url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-Light-webfont.woff') format('woff'), - url('../fonts/OpenSans-Light-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg'); - font-weight: 200; - font-style: normal; - -} - -/* Light Italic */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-LightItalic-webfont.eot'); - src: url('../fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-LightItalic-webfont.woff') format('woff'), - url('../fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg'); - font-weight: 200; - font-style: italic; - -} - -/* Semibold */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-Semibold-webfont.eot'); - src: url('../fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-Semibold-webfont.woff') format('woff'), - url('../fonts/OpenSans-Semibold-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg'); - font-weight: 500; - font-style: normal; - -} - -/* Semibold Italic */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot'); - src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'), - url('../fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg'); - font-weight: 500; - font-style: italic; - -} - -/* Bold */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-Bold-webfont.eot'); - src: url('../fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-Bold-webfont.woff') format('woff'), - url('../fonts/OpenSans-Bold-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg'); - font-weight: bold; - font-weight: 700; - font-style: normal; - -} - -/* Bold Italic */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-BoldItalic-webfont.eot'); - src: url('../fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-BoldItalic-webfont.woff') format('woff'), - url('../fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg'); - font-weight: bold; - font-weight: 700; - font-style: italic; - -} - -/* Extra Bold */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-ExtraBold-webfont.eot'); - src: url('../fonts/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-ExtraBold-webfont.woff') format('woff'), - url('../fonts/OpenSans-ExtraBold-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-ExtraBold-webfont.svg#OpenSansExtrabold') format('svg'); - font-weight: 900; - font-style: normal; - -} - -/* Extra Bold Italic */ -@font-face { - font-family: 'Open Sans'; - src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot'); - src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), - url('../fonts/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'), - url('../fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraboldItalic') format('svg'); - font-weight: 900; - font-style: italic; - -} - -html { - position: relative; - min-height: 100%; - margin:0; - padding:0; - height: 100%; -} - -body { - font-family:'Open Sans'; - background:#fff; - font-weight: 100; - color: #444444; - font-size: 14px; - margin:0; - padding:0; - height: 100%; -} - -.container { - position: relative; - padding-bottom: 50px; - min-height: 100%; -} - -.wr-content { - padding-left:0; -} - -/* application top level header */ -h2.app-title { - font-weight:500; - font-size:17px; - margin:0; - padding:3px 0 0 0; - color:#fafafa; - text-transform: uppercase; -} - -.wr-global-header { - background:#11375B; -} - -.app-logo { - height:50px; - padding:12px 10px; -} - -.app-logo a { - text-decoration: none; -} - -.app-logo img { - float:left; - margin-right:10px; -} - -@media (max-width: 768px) { - .app-logo { - padding: 16px 10px; - } - .app-logo img { - width: 50px; - height: auto; - margin-right:10px; - } - h2.app-title { - font-size: 17px; - } -} - -.wr-app-bar { - background:#526A84; - height:53px; -} - -header { - height:50px; -} - -#nav.affix { - position: fixed; - top: 0; - width: 100%; - z-index:100000; -} - -.auth-user { - display:none; -} - -.wr-auth-container { - padding-right:0; -} - -.auth-img { - float: left; - display:inline-block; - height:50px; - padding:8px 10px; - font-size: 14px; - color:#fff; - text-decoration: none; -} - -.auth-img:hover { - background:#526A84; -} - -.wr-auth.open .auth-img { - background: #526A84; -} - - -/* sticky footer styles */ -.footer { - height: 40px; - background-color: #fff; - padding-top:5px; - color:#444; - font-weight: 500; - padding-left:20px; - font-size:12px; - letter-spacing: 1px; - position:absolute; - bottom: 0; - margin-right: -5px; - margin-left: -5px; -} - -/* misc */ -br.c-both { - clear:both; -} - -/* dhanuka */ -/* panels */ -.panel-body { - padding:15px !important; -} - -.wr-input-control .helper { - font-weight:100; -} - -.wr-input-control .cus-col-25 { - float:left; - width:25%; -} - -.wr-input-control .cus-col-50 { - float:left; - width:60%; -} - -.wr-input-control .cus-col-70 { - float:left; - width:70%; -} - -.wr-input-control .cus-col-50 input { - width:65%; -} - -.wr-input-control .cus-col-70 input { - width:95%; -} - -.wr-input-control .cus-col-25 input { - width:65%; -} - -.wr-input-control .cus-col-50 span, .wr-input-control .cus-col-25 span { - padding-left:20px; -} - -/* wizard */ -.wr-wizard { - border-bottom:1px solid #f0f0f0; - padding-bottom:20px; - margin-bottom:20px; -} - -.itm-wiz-current .wiz-no { -} - -.itm-wiz { - font-weight:100; -} - -.itm-wiz div { - display:inline-block; - float:left; -} - -.wiz-no { - -} - -.wiz-lbl { - width:190px; - font-size:17px; - border:0px solid #ff0000; - padding:40px 0px 0px 10px; - -} - -.wiz-lbl > span { - padding-top:0; - display:inline-block; - font-size:18px; - font-weight:300 !important; -} - - - - - +@import "font-wso2.css"; + +/* Regular */ +@font-face { + font-family: 'Open Sans'; + + src: url('../fonts/OpenSans-Regular-webfont.eot'); + src: url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), + url('../fonts/OpenSans-Regular-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg'); + font-weight: normal; + font-weight: 400; + font-style: normal; + +} + +/* Italic */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-Italic-webfont.eot'); + src: url('../fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Italic-webfont.woff') format('woff'), + url('../fonts/OpenSans-Italic-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg'); + font-weight: normal; + font-weight: 400; + font-style: italic; + +} + +/* Light */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-Light-webfont.eot'); + src: url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Light-webfont.woff') format('woff'), + url('../fonts/OpenSans-Light-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg'); + font-weight: 200; + font-style: normal; + +} + +/* Light Italic */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-LightItalic-webfont.eot'); + src: url('../fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-LightItalic-webfont.woff') format('woff'), + url('../fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg'); + font-weight: 200; + font-style: italic; + +} + +/* Semibold */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-Semibold-webfont.eot'); + src: url('../fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Semibold-webfont.woff') format('woff'), + url('../fonts/OpenSans-Semibold-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg'); + font-weight: 500; + font-style: normal; + +} + +/* Semibold Italic */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot'); + src: url('../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'), + url('../fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg'); + font-weight: 500; + font-style: italic; + +} + +/* Bold */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-Bold-webfont.eot'); + src: url('../fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Bold-webfont.woff') format('woff'), + url('../fonts/OpenSans-Bold-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg'); + font-weight: bold; + font-weight: 700; + font-style: normal; + +} + +/* Bold Italic */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-BoldItalic-webfont.eot'); + src: url('../fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-BoldItalic-webfont.woff') format('woff'), + url('../fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg'); + font-weight: bold; + font-weight: 700; + font-style: italic; + +} + +/* Extra Bold */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-ExtraBold-webfont.eot'); + src: url('../fonts/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-ExtraBold-webfont.woff') format('woff'), + url('../fonts/OpenSans-ExtraBold-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-ExtraBold-webfont.svg#OpenSansExtrabold') format('svg'); + font-weight: 900; + font-style: normal; + +} + +/* Extra Bold Italic */ +@font-face { + font-family: 'Open Sans'; + src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot'); + src: url('../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), + url('../fonts/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'), + url('../fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraboldItalic') format('svg'); + font-weight: 900; + font-style: italic; + +} + +html { + position: relative; + min-height: 100%; + margin:0; + padding:0; + height: 100%; +} + +body { + font-family:'Open Sans'; + background:#fff; + font-weight: 100; + color: #444444; + font-size: 14px; + margin:0; + padding:0; + height: 100%; +} + +.container { + position: relative; + padding-bottom: 50px; + min-height: 100%; +} + +.wr-content { + padding-left:0; +} + +/* application top level header */ +h2.app-title { + font-weight:500; + font-size:17px; + margin:0; + padding:3px 0 0 0; + color:#fafafa; + text-transform: uppercase; +} + +.wr-global-header { + background:#11375B; +} + +.app-logo { + height:50px; + padding:12px 10px; +} + +.app-logo a { + text-decoration: none; +} + +.app-logo img { + float:left; + margin-right:10px; +} + +@media (max-width: 768px) { + .app-logo { + padding: 16px 10px; + } + .app-logo img { + width: 50px; + height: auto; + margin-right:10px; + } + h2.app-title { + font-size: 17px; + } +} + +.wr-app-bar { + background:#526A84; + height:53px; +} + +header { + height:50px; +} + +#nav.affix { + position: fixed; + top: 0; + width: 100%; + z-index:100000; +} + +.auth-user { + display:none; +} + +.wr-auth-container { + padding-right:0; +} + +.auth-img { + float: left; + display:inline-block; + height:50px; + padding:8px 10px; + font-size: 14px; + color:#fff; + text-decoration: none; +} + +.auth-img:hover { + background:#526A84; +} + +.wr-auth.open .auth-img { + background: #526A84; +} + + +/* sticky footer styles */ +.footer { + height: 40px; + background-color: #fff; + padding-top:5px; + color:#444; + font-weight: 500; + padding-left:20px; + font-size:12px; + letter-spacing: 1px; + position:absolute; + bottom: 0; + margin-right: -5px; + margin-left: -5px; +} + +/* misc */ +br.c-both { + clear:both; +} + +/* dhanuka */ +/* panels */ +.panel-body { + padding:15px !important; +} + +.wr-input-control .helper { + font-weight:100; +} + +.wr-input-control .cus-col-25 { + float:left; + width:25%; +} + +.wr-input-control .cus-col-50 { + float:left; + width:60%; +} + +.wr-input-control .cus-col-70 { + float:left; + width:70%; +} + +.wr-input-control .cus-col-50 input { + width:65%; +} + +.wr-input-control .cus-col-70 input { + width:95%; +} + +.wr-input-control .cus-col-25 input { + width:65%; +} + +.wr-input-control .cus-col-50 span, .wr-input-control .cus-col-25 span { + padding-left:20px; +} + +/* wizard */ +.wr-wizard { + border-bottom:1px solid #f0f0f0; + padding-bottom:20px; + margin-bottom:20px; +} + +.itm-wiz-current .wiz-no { +} + +.itm-wiz { + font-weight:100; +} + +.itm-wiz div { + display:inline-block; + float:left; +} + +.wiz-no { + +} + +.wiz-lbl { + width:190px; + font-size:17px; + border:0px solid #ff0000; + padding:40px 0px 0px 10px; + +} + +.wiz-lbl > span { + padding-top:0; + display:inline-block; + font-size:18px; + font-weight:300 !important; +} + + + + + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css similarity index 94% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css index 8c21141264..a7a3f839e1 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-desktop.css @@ -1,2291 +1,2291 @@ -/* - * 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. - */ - -.wr-content { - padding-top: 30px; -} - -.wr-content-alt { - padding-top:30px; -} - -.wr-title { - font-family: 'Open Sans'; - font-weight: 400; - font-size: 26px; -} - -@media (max-width:500px){ - .wr-content { - padding: 0; - } -} - -.wr-asset-type-switcher { - float:left; - height:54px; -} - -a.ctrl-asset-type-switcher { - display:inline-block; - padding:0; - font-size:18px; - color:#fff; - text-decoration: none; - font-weight:100; -} - -a.ctrl-asset-type-switcher:hover { - color:#fff; -} - -.wr-asset-type-switcher span { - float:left; -} - -.wr-asset-type-switcher span.btn-asset { - width:54px; - height:54px; - margin-right:0; - display:inline-block; - text-align: center; - background: #11375B; - line-height: 49px; -} - -.wr-asset-type-switcher span.btn-asset:hover { - background-color: #16436D; -} - -.wr-asset-type-switcher span.btn-text { - padding-top:14px; -} - -a.ast-type-item { - width:77px; - height:77px; - background:#696969; - display:block; - margin:5px; - float:left; - text-align: center; - color:#e4e4e4; - text-decoration: none; -} - -a.ast-type-item:hover { - background:#526A84; - cursor: pointer; -} - -.wr-action-container { - padding-left:0; -} - -.wr-action-btn-bar { - padding-top:0; -} - -.wr-action-btn-bar .page-title { - background-color: #14212E; - margin: 0; -} - -.wr-action-btn-bar .page-title .fw-stack { - width: 0; -} - -.page-sub-title { - font-weight: 300; - text-transform: uppercase; - font-size: 24px; - margin: 0; -} - -.page-sub-title-desc { - font-weight: 300; -} - -/* device board */ -.wr-device-board { - background:#fafafa; - padding:10px 0; - font-size:20px; - margin-bottom:10px; -} - -.wr-device-board label { - font-weight:100; -} - -.lbl-device { - font-size:14px; - color:#777; -} - -/* operations panel/board */ -.wr-operations-board { - background:#fafafa; - margin-bottom:10px; -} - -.wr-operations-board:hover { - background:#f0f0f0; -} - - -/* operations */ -.wr-operations { - clear:both; - /*margin-left:17px;*/ - margin-bottom:15px; - border-bottom:1px solid #f0f0f0; -} - -.wr-operations a { - display:inline-block; - float: left; - text-align: center; - font-size:12px; - text-decoration: none; - margin-right:10px; - color:#526A84; - min-width:70px; - background:#fafafa; - padding:2px 4px 6px 4px; - margin-bottom:10px; -} - -.wr-operations a:hover { - background:#e4e4e4; -} - -.wr-operations .fw { - margin:10px; - font-size: 28px; -} - -.wr-operations span { - display:block; -} - -@media (max-width:768px){ - .wr-operations a { padding:0; min-width: inherit; margin-right:5px; } - .wr-operations img { width: 50px; } - .wr-operations span { display:none; } - .wr-operations .fw { font-size: 25px; } -} - -/* assets */ - -.wr-select-all { - clear:both; - margin-bottom:10px; -} - -.wr-btn, a.wr-btn { - font-weight: normal; - font-size: 13px; - color: #fff; - background:#11375B; - padding: 10px 10px; - display: inline-block; - margin-right: 5px; - border: none; - text-decoration: none; -} - -.wr-btn:disabled, a.wr-btn:disabled { - opacity: 0.5; -} - -.wr-btn:hover { - background-color: #16436D; -} - -.wr-btn-grp { - margin-top: 20px; -} - -.ast-container { - clear:both; -} - -.ast-device-desc { - margin: 6px 0; -} - -.ctrl-wr-asset { - position:relative; - width:100%; - min-height:280px; - float:left; - margin: 0.5%; - padding:10px; - background:#fbfbfb; - border-bottom:0px solid #fff; -} - -.ast-btn-group { - margin-top:8px; -} - -@media (min-width: 500px){ - .ctrl-wr-asset { width: 49%; } -} - -@media (min-width: 768px){ - .ctrl-wr-asset { width: 30%; } -} - -@media (min-width: 992px){ - .ctrl-wr-asset { width: 25%; } -} - -@media (min-width:1300px){ - .ctrl-wr-asset { width: 19%; } -} - -@media (min-width:1500px){ - .ctrl-wr-asset { width: 17.5%; } -} - -@media (min-width:1800px){ - .ctrl-wr-asset { width: 15%; } -} - -.ctrl-wr-asset.selected { - background: #E4E4E4; - border-bottom:4px solid #526A84; -} - -.ctrl-wr-asset:hover { - background: #E4E4E4; -} - -.itm-select { - position:absolute; - right:10px; - background:#fafafa; - width:20px; - height:20px; -} - -.itm-ast { - display:block; - cursor: pointer; - padding:0; - margin-bottom:0; - width:100%; - border:0 solid #ff0000; -} - -.itm-ast a { - text-decoration: none; -} - -.itm-ast:hover h3, .itm-ast:hover .ast-auth { - color:#526A84; -} - -.ast-img { - width: 100%; - height: 0; - padding-bottom: 100%; - background: #ffffff; -} - -.ast-img img { - width:100%; - height: auto; -} - -.ast-desc { - /*float:left;*/ - margin-left:0; - overflow:hidden; - position: relative; -} - -.ast-desc-image img { - width: auto; - max-width: 100%; - max-height: 300px; -} - -.ast-desc span:before { - content: ""; - pointer-events: none; - position: absolute; - width: 25px; - height: 100%; - top: 0; - right: 0; - - background: -moz-linear-gradient(left, rgba(251,251,251,0) 0%, rgba(251,251,251,1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(251,251,251,0)), color-stop(100%,rgba(251,251,251,1))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* IE10+ */ - background: linear-gradient(to right, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00fbfbfb', endColorstr='#fbfbfb',GradientType=1 ); /* IE6-9 */ -} - -.ctrl-wr-asset.selected .ast-desc span:before, .ctrl-wr-asset:hover .ast-desc span:before { - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U0ZTRlNCIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNGU0ZTQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); - background: -moz-linear-gradient(left, rgba(228,228,228,0) 0%, rgba(228,228,228,1) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(228,228,228,0)), color-stop(100%,rgba(228,228,228,1))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* IE10+ */ - background: linear-gradient(to right, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00e4e4e4', endColorstr='#e4e4e4',GradientType=1 ); /* IE6-8 */ -} - -.ast-title { - /*height: 70px;*/ - overflow: hidden; -} - -h3.ast-name { - font-weight:300; - font-size:20px; - color:#555; - margin-bottom:3px; - height: 23px; - overflow: hidden; -} - -.ast-ver { - font-weight:300; - font-size:13px; - white-space: nowrap; - word-break: keep-all; -} - -.ast-auth { - font-weight:300; - font-size:13px; - color:#526A84; - display:block; - margin-bottom:12px; - white-space: nowrap; - word-break: keep-all; -} - -.ast-published { - font-weight:300; - font-size:12px; - display:block; - /* text-align: left; */ - color:#aaa; - white-space: nowrap; - word-break: keep-all; - -} - -.ast-container .lbl-action { - display:none; -} - -/* device list-view styles */ -.ast-container.list-view .itm-select { - position: static; - float: left; -} - -.ast-container.list-view .lbl-action { - display:inline-block; -} - -.ast-container.list-view .ctrl-wr-asset { - width: 100%; - min-height: 50px; - margin: 0; -} - -.ast-container.list-view .itm-ast { - display: block; - width: auto; -} - -.ast-container.list-view .ast-img { - width: 50px; - padding-bottom: 0; - height: auto; - display: inline-block; - float: left; - margin-left:20px; -} - -.ast-container.list-view .ast-desc span:before { - width: 0; -} - -.ast-container.list-view .ast-title { - height: inherit; - float: left; - margin-left: 20px; -} - -.ast-container.list-view .ast-model { - float: right; - margin: 0 20px; - text-align: right; -} - -.ast-container.list-view h3.ast-name, .ast-container.list-view .ast-auth { - margin: 0; -} - -/* tooltip */ -.tooltip { - opacity: 1; - filter: alpha(opacity=100); -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #333; - border-width: 5px 5px 0; -} - -.tooltip-inner { - color: #fff; - background: #333; - border: solid 1px #333; - border-radius: 0px; -} - -/* filter */ -a.filter-item { - color:#e4e4e4; - text-transform: uppercase; - text-decoration: none; - display:block; - font-size:12px; - padding:3px 0px; - font-weight: 100; - cursor: pointer; -} - -a.filter-item:hover { - text-decoration: none; - color:#fff; -} - - -/* action buttons */ -.btn-col { - padding-left: 0; -} - -a.cu-btn, a.cu-btn-inner { - color:#fff; - text-decoration: none; - font-weight:100; - display: inline-block; - text-transform: uppercase; - height: 53px; - padding: 13px 10px; -} - -a.cu-btn:hover { - background-color: #132D45; -} - -a.cu-btn-inner { - color: #333; - padding: 5px 10px; - height: 35px; -} -a.cu-btn-inner:hover { - background-color:#e4e4e4; -} - -/* filter */ -.wr-filters { - padding:14px; -} - -.wr-filters-right { - padding:22px 14px 22px 0; -} - -@media (max-width:1100px) { - .wr-filters-right { - padding: 0 14px 22px 14px; - } -} - -.wr-secondary-bar { - border-bottom:0 solid #f0f0f0; - padding-right:0; -} - -@media (max-width:500px) { - .wr-secondary-bar { - padding-left:0; - } -} - -.wr-filter-sort a.ico-filter { - display:inline-block; - width:40px; - height:40px; - padding:5px; -} - -.wr-filter-sort a.ico-filter .fw { - width:30px; - height:30px; - line-height: 30px; - text-align: center; - color: #333; - font-size: 15px; -} - -.wr-filter-sort a.ico-filter .fw.fw-list-sort { - font-size: 23px; -} - -@media (max-width:1100px) { - .wr-filters, .wr-filter-sort.pull-right { - float: none !important; - } -} - -.wr-filter-sort a.ico-filter:hover, .wr-filter-sort a.ico-filter.selected { - background:#e4e4e4; -} - -.sort-title, .sort-options { - padding:0 15px; -} - -.sort-title { - color:#e4e4e4; - font-size:11px; - padding-bottom:5px; - padding-top:5px; - margin-bottom:5px; -} - -.sort-options > a { - display:block; - text-decoration: none; - color:#cecece; - text-transform: uppercase; - font-size:12px; - padding:4px 0; - font-weight: 100; -} - -span.ico-sort-asc { - display:inline-block; - padding-right:20px; - width:15px; - height:15px; - padding-top:2px; -} - -span.ico-sort-desc { - display:inline-block; - padding-right:20px; - width:15px; - height:15px; - padding-top:2px; -} - - -/* asset filter window styles */ -.wr-asset-type-switcher .popover.menu { - display:none; - top: 70px; - left: 14px !important; - min-width: 290px; - color: #ffffff; - padding-bottom:0; - z-index: 100000; -} - -.wr-asset-type-switcher .popover.menu .arrow { - left: 27px !important; -} - -.wr-asset-type-switcher .popover.menu .popover-content .title { - font-family: 'Open Sans'; - font-size: 16px; - color:#ffffff; - font-weight: 100; - margin: 0 4px 4px 4px; -} - -.wr-asset-type-switcher ul { - margin: 0; - padding: 0; - list-style: none; -} - -.wr-asset-type-switcher ul:after { - clear: both; - content: " "; - height: 0; - display: block; -} - -.wr-asset-type-switcher ul li, .wr-asset-type-switcher ul a { - display: block; - float: left; - margin: 4px; - padding: 6px 4px; - list-style: none; - width:85px; - height:85px; - text-align: center; - vertical-align: text-bottom; - color:#e4e4e4; - text-decoration: none; -} - -.wr-asset-type-switcher ul a { - cursor: pointer; - width:30px; - height:40px; - margin:30px 0 0 10px; - line-height: 40px; - text-align: center; -} -.wr-asset-type-switcher ul a:hover { - background-color: transparent; - opacity: 0.6; -} - -.wr-asset-type-switcher ul ul { display: none; } - -.wr-asset-type-switcher ul.options { - border-top: 1px solid #333; - margin-top:5px; - padding:5px 0 0 0; -} - -.wr-asset-type-switcher ul li:hover { - background:#526A84; - cursor: pointer; -} - -#advance-filter-options { - background:#444444; - margin: 5px 4px; - padding: 10px; -} - -#advance-filter-options input { - margin:0 5px 0 5px; -} - -#device-filter-options li i.fw { - display: block; - font-size: 26px; - margin: 10px 0; -} - -#device-filter-options li h4 { - margin-bottom: 0; -} - -#device-filter-options li h6 { - margin-bottom: 0; -} - -#device-filter-options li span { - float: none; -} - -#asset-selected .selected { - padding:0 0; -} - -#asset-selected .selected li { - background: #526A84; - color: #ffffff; -} - -#asset-selected .options li { - background:#444; -} - -#asset-select li { - background:#444; -} - -#asset-select li:hover, #asset-selected .options li:hover { - background:#555; -} - -/* login page styles */ - -.wr-login { - padding-top:50px; -} - -/* form styles */ -.wr-validation-summary p { - display: block; - color: #ff2353 !important; - margin-top: 15px; - font-weight: 400 !important; - background: #fff2f2; - padding: 7px 17px; - font-size: 13px !important; - border-left: 3px solid #ff2353; -} - -.wr-input-label { - font-weight:100; - font-size:14px; - color:#555; - margin-bottom:5px; -} - -.wr-input-control { - margin-bottom: 20px; -} - -.wr-input-control input, .wr-input-control textarea { - border: 1px #999 solid; - width: 100%; - height: 100%; - padding: 6px 10px; - z-index: 1; - -webkit-appearance: none; -} - -/* asset filter tags on search field styles */ -.wr-search-tags { - display:block; - float: left; - min-height: 54px; - padding:13px 5px; - max-width: 350px; -} - -/* search field styles */ -.wr-search-tags:empty { - padding:0; -} - -.wr-search-tags span { - color: #ffffff; - background: #11375B; - font-size: 11px; - display: inline-block; - cursor: pointer; - padding: 6px 6px; - margin: 1px; - border-radius: 2px; -} - -.wr-search-tags span i.fw { - display: none; -} - -.wr-search-tags span:hover { - background: #526A84; - color: #ffffff; -} - -/* search */ -.wr-search { - margin-left:0; - border:none; - background:#bbb; - min-height: 54px; - max-width:750px !important; - width: 100%; -} - -@media (max-width:1100px) { - .wr-search-tags:not(:empty) { - float: none; - padding-left:60px; - max-width: 100%; - } - .wr-search { - max-width: 100% !important; - } - .wr-filters.col-sm-7, .wr-filters.col-sm-7.col-md-8 { - width: 100%; - } -} - -.wr-search .input { - background:#bbb; - height: 54px; - border:none; - color:#fff; - font-weight: 100; - line-height: 54px; - padding:0 20px; - overflow: hidden; - font-size:18px; - white-space: nowrap; - word-break: keep-all; - min-width: 200px; -} - -.wr-search .input:focus { - outline: 0; -} - -[contentEditable=true]:empty:not(:focus):before{ - content:attr(data-placeholder) -} - -.btn-search { - display:block; - font-size:21px; - font-weight:500; - color:#fff; - background:#bbb; - padding:10px 12px; - height: 54px; - float: right; -} - -@media (max-width:500px) { - .btn-search { display: none; } -} - -.wr-search:hover .fw { - color:#fff; -} - -.wr-filters div.wr-filter-category { - float:left; -} - -.wr-filters .col-md-1, .col-md-11 { - padding:0; - margin: 0; - height:54px; -} - -::-webkit-input-placeholder { - color: #fff; -} - -:-moz-placeholder { /* Firefox 18- */ - color: #fff; -} - -::-moz-placeholder { /* Firefox 19+ */ - color: #fff; -} - -:-ms-input-placeholder { - color: #fff; -} - -.wr-operations, .wr-operations .operation { - display: none; -} - -a.btn-operations { - font-weight: normal; - font-size: 13px; - color: #fff; - background: #11375B; - padding: 10px 10px; - display: inline-block; - margin-right: 2px; - text-decoration: none; -} - -/* modal pop-up styles */ -.wr-modalpopup { - display: none; -} - -.wr-modalpopup .modalpopup-container { - display: block; - min-height: 100px; - width: 100%; - position: fixed; - background: #11375B; - color: #fff; - z-index: 1000001; - align-content: center; - top: 50%; -} - -.modalpopup-content { - position: relative; - overflow-x: hidden; - overflow-y: auto; - padding: 60px; -} - -.modalpopup-content h3 { - font-weight: 300; -} - -.modalpopup-content h3 .fw-stack { - margin-right: 15px; -} - -.wr-modalpopup .modalpopup-close-btn { - color: #fff; - z-index: 1000002; - cursor: pointer; - position: absolute; - top: 30px; - left: 40px; - padding: 5px 8px; - font-size: 18px; -} - -.wr-modalpopup .modalpopup-close-btn:hover { - -} - -.wr-modalpopup .modalpopup-content .buttons { - margin-top: 30px; -} - -.wr-modalpopup .modalpopup-content .buttons .btn-operations { - background: #fff; - color: #333; - text-transform: uppercase; - font-weight: 500; -} - -.wr-modalpopup .modalpopup-bg { - position: fixed; - z-index: 1000000; - width: 100%; - height: 100%; - background: #000000; - opacity: 0.9; - display: block; -} - -/* notification panel styles */ -.wr-notification-bar, .wr-side-panel { - width: 400px; - background: #262933; - position: absolute; - right: -400px; - padding: 10px; - z-index: 10000; - color: #fff; - transition: right 0.4s ease 0s; - overflow-y: auto; - overflow-x: hidden; -} - -.wr-side-panel { - background: #e4e4e4; - color: #333; - padding: 0; -} - -.wr-notification-bar::-webkit-scrollbar, .wr-side-panel::-webkit-scrollbar { - width: 6px; - background: transparent; - padding: 0 5px; - cursor: all-scroll; -} -.wr-notification-bar::-webkit-scrollbar-thumb { - background: #e4e4e4; -} -.wr-notification-bar::-webkit-scrollbar-thumb:hover { - background: #e4e4e4; -} -.wr-notification-bar::-webkit-scrollbar-thumb:active { - background: #e4e4e4; -} - -.wr-side-panel::-webkit-scrollbar-thumb { - background: #526A84; -} -.wr-side-panel::-webkit-scrollbar-thumb:hover { - background: #526A84; -} -.wr-side-panel::-webkit-scrollbar-thumb:active { - background: #526A84; -} - -.wr-notification-bar.toggled, .wr-side-panel.toggled { - right: 0; -} - -.wr-notification-desc.new .wr-notification-operation { - font-weight: 500; -} - -.wr-notification-desc .fw { - font-size: 12px; -} - -.wr-notification-toggle-btn, .wr-side-panel-toggle-btn { - float: right; -} - -.wr-notification-bubble { - display: inline-block; - background: #fafafa; - color: #555; - padding: 2px 4px; - border-radius: 5px; - min-width: 10px; - font-weight: 500; -} - -a.wr-notification-toggle-btn.selected { - background-color: #262933; -} - -a.wr-side-panel-toggle-btn.selected { - background-color: #11375B; - color: #fff; -} - -.wr-side-panel .panel-title a { - display: block; - padding: 10px; - background: #11375B; - color: #fff; - border-bottom: 1px solid #e4e4e4; -} - -.wr-side-panel .panel-title a:hover { - background: #132D45; -} - -.wr-side-panel .panel { - margin-bottom: 0; -} - -.wr-side-panel .panel-sub-title { - margin: 10px 0; -} - -.wr-side-panel .wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { - background: #fff; -} - -.wr-side-panel .panel-body { - padding: 10px; -} - -.wr-panel-notes textarea { - resize: vertical; -} - -.wr-panel-notes .wr-btn { - margin-right: 5px; -} - -.wr-panel-notes .wr-input-control.checkbox { - margin: 0; -} - -.wr-panel-notes .wr-input-control.checkbox .helper:before { - border-color: #526A84; -} - -.wr-panel-notes .add-btn { - margin-bottom: 15px; - padding-left: 0; -} - -.wr-panel-notes .panel-collapse { - padding: 10px 0 10px 35px; -} - -.wr-panel-note { - margin: 0; -} - -.wr-panel-notes .well { - margin: 5px 0; - padding: 10px; -} - -.wr-panel-note .wr-panel-msg:hover { - cursor: pointer; - background: #f5f5f5; -} - -.wr-panel-notes .wr-panel-desc-icon i { - width: 30px; - height: 30px; - display: inline-block; - background: #333; - color: #fff; - text-align: center; - margin-right: 10px; -} - -.wr-panel-notes .wr-panel-desc-icon img { - width: 30px; - height: auto; -} - -.wr-panel-notes .wr-panel-desc-icon { - float: left; - width: 30px; - height: 30px; - line-height: 30px; - white-space: nowrap; - margin-bottom: 5px; -} - -.wr-panel-msg { - background: #fff; - border-right: 2px solid #526A84; - padding: 8px 35px 8px 10px; - margin-left: 35px; - margin-bottom: 5px; - font-size: 16px; - position: relative; -} - - -.wr-panel-msg .dropdown-menu { - background: #526A84; - color: #fff; - left: -167px; - top: -2px; -} - -.wr-panel-msg .dropdown-menu a { - color: #fff; -} - -.wr-panel-msg .dropdown-menu a:hover, .wr-panel-msg .dropdown-menu a:focus { - background-color: #132D45; - color: #fff; -} - -.wr-panel-msg .msg-options { - position: absolute; - top: 0; - right: 0; - padding: 0; - cursor: pointer; -} - -.wr-panel-msg .msg-options .btn.dropdown-toggle { - padding: 6px; - border: none; - color: #333; - background: transparent; -} - -.wr-panel-msg .msg-options .btn.dropdown-toggle:hover, .wr-panel-msg .msg-options .btn.dropdown-toggle[aria-expanded="true"] { - color: #fff; - background-color: #526A84; -} - -.wr-panel-msg-visibility { - position: absolute; - bottom: 7px; - right: 10px; - font-size: 14px; -} - -.wr-panel-notes .resolve-icon { - display: none; - position: absolute; - bottom: 5px; - right: 15px; - font-size: 14px; -} - -.wr-panel-notes .resolved .resolve-icon { - display: block; -} - -.wr-panel-notes .resolved .wr-panel-msg { - border-right: none; - background: #C7CFD0; -} - -.wr-panel-notes .resolved .wr-panel-sub-note .wr-panel-msg .msg-options { - display: none; -} - -.wr-panel-sub-note .wr-panel-msg { - background: transparent; - margin-bottom: 5px; - padding-top: 0; - border-right: none; -} - -.wr-panel-msg-details { - font-size: 10px; - color: #919191; - margin-top: 10px; -} - -.wr-panel-notes .more-link { - display: inline-block; - margin-bottom: 8px; -} - - -/* filter type switcher */ -#content-filter-types { - position:absolute; - right: -300px !important; - float: right; -} - -.wr-filter-type-switcher .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - width: 200px; - padding: 1px 1px 8px 1px; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.42857143; - text-align: left; - white-space: normal; - background-color: #232323; - -webkit-background-clip: padding-box; - background-clip: padding-box; - /*border: 0px solid #232323;*/ - border: 0 solid rgba(0,0,0,.2); - border-radius: 0; - -webkit-box-shadow: 0 0 0 rgba(0,0,0,.2); - box-shadow: 0 0 0 rgba(0,0,0,.2); - margin-right: -400px !important; -} - -.wr-filter-type-switcher .popover.bottom>.arrow { - top: -11px; - left: 50%; - margin-left: 130px; - border-top-width: 0; - border-bottom-color: #232323; -} - -.wr-filter-type-switcher .popover>.arrow { - border-width: 11px; -} - -.wr-filter-type-switcher .popover.bottom>.arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #232323; -} - -.wr-filter-type-switcher .popover>.arrow, .popover>.arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.wr-filter-type-switcher { - position: relative; -} - -.wr-filter-type-switcher .popover-content { - padding: 6px 6px; -} - -.wr-filter-type-switcher .arrow { - left:25px !important; -} - -.wr-filter-type-switcher .popover { - left: -148px !important; -} - -/* stats */ -.wr-stats-board-tile { - background: #11375B; - color: #fff; - padding: 10px 15px; - height: 110px; - margin-bottom: 10px; -} - -.wr-stats-board .tiles .row { - margin: 0 -5px; -} - -.wr-stats-board .tiles .col-lg-2, .wr-stats-board .tiles .col-lg-4, .wr-stats-board .tiles .col-lg-8 { - padding: 0 5px; -} - -.wr-stats-board-tile .col-lg-4, .wr-stats-board-tile .col-lg-8, .wr-stats-board .tiles .col-lg-6 { - padding: 0; -} - -.wr-stats-board-tile.lg .tile-stats { - border-left: 1px solid #9bb6f6; - height: 90px; - text-align: left; - font-size: inherit; -} - -.wr-stats-board-tile.lg .tile-stats .col-lg-6 { - padding: 0 15px; -} - -.wr-stats-board-tile.lg .tile-graph { - width:100px; - float:right; - text-align: right; - margin: 0 auto; -} - -.wr-stats-board-tile.lg .tile-graph img { - width:80px; -} - -.tile-bg { - background:#11375B; - color:#fff; -} - -.tile-name { - font-size:16px; - font-weight: 100; - text-transform: uppercase; -} - -.tile-stats { - width:75%; - float:right; - font-size:27px; - font-weight: 400; - text-align: right; -} - -.tile-stats-sm { - font-size:17px; - font-weight: 700; -} - -.tile-stats-free { - font-size:13px; - display:block; - text-align: right; -} - -.tile-stats-free a { - color: #B4C2D0; - text-decoration: none; - display: inline-block; - padding: 3px 5px 1px; -} - -.tile-stats-free a:hover { - color: #fff; -} - -.tile-stats-type { - font-size:12px; - display:block; -} - -.tile-icon { - width:25%; - float:left; - margin-top: 10px; -} - -.tile-icon .fw { - font-size:40px; -} - -.tile-sup-lbl { - display: block; - font-size: 12px; -} - - -.sub-title { - font-weight:100; - font-size: 20px; -} - -.wr-device-board label { - font-weight: 400; -} - -.wr-app-listing > div { - float:left; - margin-right:10px; - margin-bottom:10px; -} - -.wr-app-listing > div > img { - width:60px; -} - -.wr-form { - margin: 30px 0; -} - -.wr-form button { - margin-right: 5px; -} - -.wr-help-tip { - font-size: 14px; - padding: 0 10px; - color: #666; -} - -.wr-form .wr-operation-icon { - font-size: 32px; - margin-right: 10px; - color: #11375B; -} - - -/* enabled/disabled switch styles */ -.wr-input-control.switch { - display: inline-block; - margin-right: 10px; - cursor: pointer; - position: relative; - margin-bottom: 5px; -} -.wr-input-control.switch > input[type=checkbox] { - position: absolute; - opacity: 0; -} -.wr-input-control.switch .helper { - padding-left: 52px; - position: relative; -} - -.wr-input-control.switch .text { - display: none; - margin-left: 5px; - font-weight: 100; -} - -.wr-input-control.switch input[type="checkbox"]:checked + .helper + .text { - display: inline-block; -} - -.wr-input-control.switch .helper:before { - position: absolute; - left: 0; - top: 2px; - display: block; - content: ""; - width: 45px; - height: 16px; - /*outline: 2px #a6a6a6 solid;*/ - border: 1px #fff solid; - cursor: pointer; - /*background: #526A84;*/ - background: #a6a6a6; - /*margin-left: 2px;*/ - z-index: 1; - border-radius: 8px; -} -.wr-input-control.switch input[type="checkbox"] + .helper:after { - position: absolute; - left: 22px; - top: -2px; - display: block; - content: ""; - width: 24px; - height: 24px; - /*outline: 2px #333 solid;*/ - border: 1px #333 solid; - cursor: pointer; - background: #11375B; - z-index: 2; - border-radius: 12px; - /*box-shadow: 0 1px 2px #888888;*/ - - -webkit-transition: left 0.2s ease-in-out; - -moz-transition: left 0.2s ease-in-out; - -o-transition: left 0.2s ease-in-out; - transition: left 0.2s ease-in-out; -} -.wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { - left: 0 !important; - background: #eaeaea; - border: 1px #eaeaea solid; -} - -.wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:before { - background: #a6a6a6 !important; -} -.wr-input-control.switch input[type="checkbox"]:disabled + .helper:after { - background: #a6a6a6 !important; - outline: 2px #a6a6a6 solid !important; - border: 1px #a6a6a6 solid !important; -} -.wr-input-control.switch input[type="checkbox"]:disabled + .helper:before { - cursor: default !important; - background: #e0e0e0 !important; - outline: 2px #ccc solid !important; -} - -/* radio button style*/ -.wr-input-control.radio { - display: inline-block; - margin-right: 10px; - margin-bottom: 0; - cursor: pointer; - font-weight: 100; -} -.wr-input-control.radio > input[type=radio] { - position: absolute; - opacity: 0; -} -.wr-input-control.radio .helper { - padding-left: 23px; - position: relative; -} -.wr-input-control.radio .helper:before { - position: absolute; - display: block; - height: 20px; - width: 20px; - content: ""; - text-indent: -9999px; - border: 2px #d9d9d9 solid; - z-index: 1; - opacity: 1; - top: 0; - left: 0; - border-radius: 100%; -} -.wr-input-control.radio input[type="radio"]:checked + .helper:after { - position: absolute; - display: block; - content: ""; - color: #1a1a1a; - z-index: 2; - font-size: 16px; - font-weight: bold; - left: 5px; - margin-left: 0; - top: 50%; - margin-top: -5px; - background-color: #1a1a1a; - width: 10px; - height: 10px; - border-radius: 100%; -} -.wr-input-control.radio.light input[type="radio"]:checked + .helper:after { - color: #fff; - background-color: #fff; -} -.wr-input-control.radio input[type="radio"]:disabled + .helper:before { - cursor: default; - background: #e6e6e6; -} -.wr-input-control.radio input[type="radio"]:disabled + .helper:after { - background-color: #8a8a8a; -} -.wr-input-control.radio:hover input:not(:disabled) + .helper:before { - border-color: #919191; -} -.wr-input-control.radio:active input:not(:disabled) + .helper:before { - border-color: #919191; -} - -/* checkbox style */ -.wr-input-control.checkbox { - display: inline-block; - margin: 0 10px 0 0; - cursor: pointer; -} -.wr-input-control.checkbox > input[type=checkbox] { - position: absolute; - opacity: 0; -} -.wr-input-control.checkbox .helper { - padding-left: 23px; - position: relative; -} -.wr-input-control.checkbox .helper:before { - position: absolute; - display: block; - height: 20px; - width: 20px; - content: ""; - text-indent: -9999px; - border: 2px #eaf0f1 solid; - z-index: 1; - opacity: 1; - top: 0; - left: 0; -} -.wr-input-control.checkbox input[type="checkbox"]:checked + .helper:before { - border: 2px #526A84 solid; -} -.wr-input-control.checkbox input[type="checkbox"]:checked + .helper:after { - position: absolute; - display: block; - content: "\e617"; - font-size: 7pt; - height: 16px; - width: 16px; - line-height: 16px; - z-index: 2; - top: 2px; - margin-top: 0; - left: 2px; - margin-left: 0; - text-align: center; - background: #526A84; - color: #fff; - font-family: fontwso2; -} -.wr-input-control.checkbox input[type="checkbox"]:not(:checked) + .helper:after { - display: none; -} -.wr-input-control.checkbox input[type="checkbox"]:disabled + .helper:before { - cursor: default; - background: #e6e6e6; -} -.wr-input-control.checkbox input[type=checkbox]:disabled + .helper:after { - color: #8a8a8a; -} -.wr-input-control.checkbox:hover input:not(:disabled) + .helper:before { - border-color: #526A84; -} -.wr-input-control.checkbox:active input:not(:disabled) + .helper:before { - border-color: #526A84; -} - -/* list group styles */ -.wr-list-group { - margin-top: 30px; -} - -.wr-list-group .list-group-item { - padding: 0; - position: relative; - border: none; - background: #f1f1f1; - margin-bottom: 4px; -} - -.wr-list-group .list-group-item-actions { - float: right; - margin: 0 10px; - padding: 8px 0; -} - -@media (max-width:500px) { - .wr-list-group .list-group-item-actions:before { - clear: both; - content: " "; - height: 10px; - display: block; - } - .wr-list-group .list-group-item-actions { - float: left; - } -} - -.wr-list-group .wr-list-desc { - float: left; - padding: 4px 8px; - min-height: 50px; -} - -.wr-list-group h3.wr-list-name { - margin: 0; - font-weight: 400; - font-size: 20px; - color: #555; -} - -.wr-list-group .wr-list-username { - font-weight: 100; - font-size: 13px; -} - -.wr-list-email, .wr-list-email:hover { - font-weight: 300; - font-size: 13px; - color: #526A84; -} - -.wr-sortable .list-group-item, tbody.wr-sortable td { - cursor: move; -} - -.wr-list-group .list-group-item .wr-sortable-icon, tbody.wr-sortable td .wr-sortable-icon { - opacity: 0.5; - float: left; - font-size: 14px; - margin: 15px; -} - -.wr-list-group .list-group-item .wr-list-icon, tbody.wr-sortable td .fw.wr-list-icon { - float: left; - width: 50px; - height: 50px; - line-height: 42px; - background: #526A84; - color: #fff; - font-size: 28px; - text-align: center; -} - -.wr-list-group .wr-sort-index { - font-size: 18px; - font-weight: 400; - background: #14212E; - color: #fff; - width: 50px; - height: 50px; - margin: 0; - line-height: 50px; - text-align: center; - float: left; -} - -.wr-list-group .wr-desc-list-configs { - height: 50px; - padding: 15px; - background: #14212E; - color: #fff; - text-align: center; -} - -.wr-list-group .wr-desc-list-configs b { - color: #526A84; -} - -.panel-title a .fw-stack { - font-size: 14px; -} - -.panel-title a.collapsed .fw-arrow:before { - content: "\e687"; -} - -.footer a { - text-decoration: none; -} - -.footer .fw { - font-size: 21px; -} - -.wr-hidden-nav { - background: #132D45; - margin-right: -15px; - margin-left: -15px; - display: none; - color: #fff; -} - -.wr-hidden-nav ul { - list-style: none; - margin: 0; - padding-left: 7px; -} - -.wr-hidden-nav ul li { - list-style: none; - display: inline-block; - text-align: center; - margin: 10px 3px; - line-height: 17px; -} - -.wr-hidden-nav ul li a { - color: #fff; - text-decoration: none; - width: 120px; - height: 120px; - padding: 15px; - background: #132D45; - display: block; - overflow: hidden; -} - -.wr-hidden-nav ul li a:hover { - background: #526A84; -} - -.wr-hidden-nav ul li a i { - font-size: 46px; - display: block; - margin-bottom: 10px; -} - -.cu-btn.wr-hidden-nav-toggle-btn:hover { - background: #D56613; - } - -.cu-btn.wr-hidden-nav-toggle-btn, .cu-btn.wr-hidden-nav-toggle-btn.active:hover { - background: #F47415; -} -.cu-btn.wr-hidden-nav-toggle-btn.active, .cu-btn.wr-hidden-nav-toggle-btn.active:hover { - background: #132D45; -} - - -.wr-device-list { - position: relative; -} - -.wr-hidden-operations { - width: 900px; - position: absolute; - top: 0; - bottom: 0; - left: -900px; - z-index: 10000; - -moz-transition: left 0.4s ease; - transition: left 0.4s ease 0s; - overflow-y: hidden; - overflow-x: hidden; -} - -.wr-advance-operations { - height: 100%; - background: #e4e4e4; - border: 1px solid #e4e4e4; -} - -.wr-hidden-operation { - display: none; -} - -.wr-advance-operations .row:first-child { - height: 100%; -} - -.wr-hidden-operations.toggled { - left: 0; -} - -.wr-advance-operations .wr-hidden-operations-nav a { - display: block; - background: #fff; - color: #526A84; - border-bottom: 1px solid #e4e4e4; - padding: 10px; - text-decoration: none; - font-size: 16px; -} - -.wr-advance-operations .wr-hidden-operations-nav a:hover { - background: #f4f4f4; -} - -.wr-advance-operations .wr-hidden-operations-nav a.selected, .wr-hidden-operations .wr-hidden-operations-nav a.selected:hover { - color: #fff; - background: #526A84; -} - -.wr-hidden-operations-icon { - margin-right: 10px; -} - -.wr-hidden-operations-content { - overflow-y: auto; - overflow-x: hidden; - height: 100%; - background: #fff; - border-left: 1px solid #e4e4e4; -} - -.wr-hidden-operations-content::-webkit-scrollbar { - width: 6px; - background: transparent; - padding: 0 5px; - cursor: all-scroll; -} -.wr-hidden-operations-content::-webkit-scrollbar-thumb { - background: #e4e4e4; -} -.wr-hidden-operations-content::-webkit-scrollbar-thumb:hover { - background: #e4e4e4; -} -.wr-hidden-operations-content::-webkit-scrollbar-thumb:active { - background: #e4e4e4; -} - -.wr-hidden-operations-content .panel { - margin-bottom: 0; -} - -.wr-hidden-operations-content .sub-title { - font-size: 16px; -} - -.wr-hidden-operations-content .panel-title { - padding: 5px; - background: #e4e4e4; - border-bottom: 1px solid #fff; - color: #555; -} - -.wr-hidden-operations-content .panel-title a { - padding: 0; -} - -.wr-hidden-operations-content .panel-title .fw-stack.collapsed .fw-down-arrow:before { - content: "\e634"; -} - -.wr-hidden-operations-content .panel-title .wr-input-control.switch { - margin-top: 8px; - margin-right: 0; -} - -.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { - background: #fff; -} - -.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"] + .helper + .text { - display: inline-block; - float: left; - margin-right: 5px; - margin-top: -1px; -} - -.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"] + .helper + .text:after { - content: "Disabled"; -} - -.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"]:checked + .helper + .text:after { - content: "Enabled"; -} - -.wr-hidden-operations-content .panel-title label { - float: right; -} - -.wr-hidden-operations-content .panel-title .fw-stack { - width: 5px; -} - -.wr-hidden-operations-content .panel-title:after { - clear: both; - content: " "; - display: block; - height: 0; -} - -.wr-hidden-operations-content .panel-body { - padding: 5px; -} - -.wr-page-content { - position: relative; - left: 0; - -moz-transition: left 0.4s ease; - transition: left 0.4s ease; -} - -.wr-page-content.toggled { - left: 900px; -} - -a.show-operations-btn { - margin-bottom: 10px; -} - -a.show-operations-btn.selected { - background: #526A84; - color: #fff; -} - -a.show-operations-btn.selected .fw-right-arrow:before { - content: "\e662"; -} - -a.show-operations-btn.selected .btn-text:before { - content: "Hide "; -} - -a.show-operations-btn .btn-text:before { - content: "View All "; -} - -.footer { - left: 0; - -moz-transition: left 0.4s ease; - transition: left 0.4s ease; -} - -.footer.wr-hidden-operations-toggled { - left: 900px; -} - - - -/* resource selectbox specific styles */ -.select2-results .item, .select2-selection .item { - padding: 5px; -} - -.select2-results .item:after, .select2-selection .item:after { - clear: both; - content: " "; - display: block; - height: 0; -} - -.select2-results .item .text, .select2-selection .item .text { - float: left; -} - -.select2-results .item .text .resource-name, .select2-selection .item .text .resource-name { - font-size: 16px; - font-weight: 400; - line-height: normal; - } - -.select2-results .item .text .resource-type, .select2-selection .item .text .resource-type { - font-size: 13px; - line-height: normal; -} - -.select2-results .item .icon, .select2-selection .item .icon { - float: right; - padding-top: 4px; - text-align: center; - width: 40px; -} - -.select2-results .item .icon i, .select2-selection .item .icon i { - font-size: 30px; -} - -.select-resource.select2-selection { - height: 60px !important; - border-color: #E7EAED !important; - background-color: #444 !important; -} - -.select-resource .select2-selection__rendered { - color: #fff !important; - padding-right: 28px !important; -} - -.select-resource .select2-selection__arrow b { - border-width: 8px 7px 0 7px !important; - border-color: #FFF transparent transparent transparent !important; - margin-left: -15px !important; - margin-top: 12px !important; -} - -.select-resource.select2-dropdown { - z-index: 1000; -} - -.disabled-area { - opacity: 0.5; -} - -.disabled-area * { - outline: none; -} - -/* inner page title buttons */ - -.tile-buttons-list h4 { - font-weight: 400; -} - -.tile-buttons { - list-style: none; - margin: 0; - padding-left: 0; -} - -.tile-buttons li { - list-style: none; - display: inline-block; - text-align: center; - line-height: 17px; -} - -.tile-buttons li a { - color: #fff; - text-decoration: none; - width: 100%; - height: 120px; - padding: 20px; - background: #132D45; - display: block; - overflow: hidden; - text-align: center; -} - -.tile-buttons li a.selected,.tile-buttons li a.selected:hover { - background: #132D45; -} - -.tile-buttons li a.disabled,.tile-buttons li a.disabled:hover { - opacity: 0.1; - background: #132D45; - cursor: default; -} - -.tile-buttons li a:hover { - background: #526A84; -} - -.tile-buttons li a i { - font-size: 50px; - display: block; - margin-bottom: 10px; -} - -.wr-associations-list { - margin-top: 10px; -} - -.wr-associations-list .wr-association-icon, -.wr-associations-list .wr-security-status, -.wr-associations-list .wr-asset-desc, -.wr-associations-list .wr-resource-icon, -.wr-associations-list .wr-asset-details { - float: left; -} - -.wr-associations-list .wr-association-operations { - float: right; - margin-right: 10px; - padding-top: 8px; -} - -.wr-associations-list .wr-association { - background: #f1f1f1; - /*padding: 10px;*/ - margin-bottom: 4px; -} - -.wr-associations-list .wr-asset-details { - padding: 5px 10px; -} - -.wr-associations-list .wr-resource-icon { - font-size: 37px; - height: 50px; - line-height: 40px; -} - -.wr-associations-list .wr-asset-desc .resource-name { - font-weight: 500; -} - -.wr-associations-list .wr-security-status { - /*background: #97C543;*/ - background: #989898; - color: #fff; - height: 50px; - line-height: 50px; - padding: 0 10px; - margin-right: 10px; -} - -.wr-associations-list .wr-association-icon { - width: 50px; - height: 50px; - vertical-align: text-top; - line-height: 40px; - text-align: center; - font-size: 25px; - background-color: #444; - color: #fff; -} - -.wr-configurations-table th { - font-weight: 400; - text-transform: uppercase; - padding: 10px 2px; -} - -.wr-configurations-table td { - padding:5px 2px; - vertical-align: text-top; -} - -.panel-collapse { - position: relative; -} - -.loading { - position: relative; -} - -.loading:before { - content: ""; - display: block; - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - z-index: 10; - background-color: #fff; - opacity: 0.8; -} - -.loading:after { - content: "Background operation is running ..."; - z-index: 11; - background: #fe8; - color: #333; - width: 250px; - opacity: 0.8; - bottom: 25px; - display: block; - padding: 5px 10px; - position: absolute; -} - -a.cu-btn-inner.inverse { - background: #11375B; - color: #fff; -} -a.cu-btn-inner.inverse:hover { - background: #526A84; -} - -.wiz-lbl { - +/* + * 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. + */ + +.wr-content { + padding-top: 30px; +} + +.wr-content-alt { + padding-top:30px; +} + +.wr-title { + font-family: 'Open Sans'; + font-weight: 400; + font-size: 26px; +} + +@media (max-width:500px){ + .wr-content { + padding: 0; + } +} + +.wr-asset-type-switcher { + float:left; + height:54px; +} + +a.ctrl-asset-type-switcher { + display:inline-block; + padding:0; + font-size:18px; + color:#fff; + text-decoration: none; + font-weight:100; +} + +a.ctrl-asset-type-switcher:hover { + color:#fff; +} + +.wr-asset-type-switcher span { + float:left; +} + +.wr-asset-type-switcher span.btn-asset { + width:54px; + height:54px; + margin-right:0; + display:inline-block; + text-align: center; + background: #11375B; + line-height: 49px; +} + +.wr-asset-type-switcher span.btn-asset:hover { + background-color: #16436D; +} + +.wr-asset-type-switcher span.btn-text { + padding-top:14px; +} + +a.ast-type-item { + width:77px; + height:77px; + background:#696969; + display:block; + margin:5px; + float:left; + text-align: center; + color:#e4e4e4; + text-decoration: none; +} + +a.ast-type-item:hover { + background:#526A84; + cursor: pointer; +} + +.wr-action-container { + padding-left:0; +} + +.wr-action-btn-bar { + padding-top:0; +} + +.wr-action-btn-bar .page-title { + background-color: #14212E; + margin: 0; +} + +.wr-action-btn-bar .page-title .fw-stack { + width: 0; +} + +.page-sub-title { + font-weight: 300; + text-transform: uppercase; + font-size: 24px; + margin: 0; +} + +.page-sub-title-desc { + font-weight: 300; +} + +/* device board */ +.wr-device-board { + background:#fafafa; + padding:10px 0; + font-size:20px; + margin-bottom:10px; +} + +.wr-device-board label { + font-weight:100; +} + +.lbl-device { + font-size:14px; + color:#777; +} + +/* operations panel/board */ +.wr-operations-board { + background:#fafafa; + margin-bottom:10px; +} + +.wr-operations-board:hover { + background:#f0f0f0; +} + + +/* operations */ +.wr-operations { + clear:both; + /*margin-left:17px;*/ + margin-bottom:15px; + border-bottom:1px solid #f0f0f0; +} + +.wr-operations a { + display:inline-block; + float: left; + text-align: center; + font-size:12px; + text-decoration: none; + margin-right:10px; + color:#526A84; + min-width:70px; + background:#fafafa; + padding:2px 4px 6px 4px; + margin-bottom:10px; +} + +.wr-operations a:hover { + background:#e4e4e4; +} + +.wr-operations .fw { + margin:10px; + font-size: 28px; +} + +.wr-operations span { + display:block; +} + +@media (max-width:768px){ + .wr-operations a { padding:0; min-width: inherit; margin-right:5px; } + .wr-operations img { width: 50px; } + .wr-operations span { display:none; } + .wr-operations .fw { font-size: 25px; } +} + +/* assets */ + +.wr-select-all { + clear:both; + margin-bottom:10px; +} + +.wr-btn, a.wr-btn { + font-weight: normal; + font-size: 13px; + color: #fff; + background:#11375B; + padding: 10px 10px; + display: inline-block; + margin-right: 5px; + border: none; + text-decoration: none; +} + +.wr-btn:disabled, a.wr-btn:disabled { + opacity: 0.5; +} + +.wr-btn:hover { + background-color: #16436D; +} + +.wr-btn-grp { + margin-top: 20px; +} + +.ast-container { + clear:both; +} + +.ast-device-desc { + margin: 6px 0; +} + +.ctrl-wr-asset { + position:relative; + width:100%; + min-height:280px; + float:left; + margin: 0.5%; + padding:10px; + background:#fbfbfb; + border-bottom:0px solid #fff; +} + +.ast-btn-group { + margin-top:8px; +} + +@media (min-width: 500px){ + .ctrl-wr-asset { width: 49%; } +} + +@media (min-width: 768px){ + .ctrl-wr-asset { width: 30%; } +} + +@media (min-width: 992px){ + .ctrl-wr-asset { width: 25%; } +} + +@media (min-width:1300px){ + .ctrl-wr-asset { width: 19%; } +} + +@media (min-width:1500px){ + .ctrl-wr-asset { width: 17.5%; } +} + +@media (min-width:1800px){ + .ctrl-wr-asset { width: 15%; } +} + +.ctrl-wr-asset.selected { + background: #E4E4E4; + border-bottom:4px solid #526A84; +} + +.ctrl-wr-asset:hover { + background: #E4E4E4; +} + +.itm-select { + position:absolute; + right:10px; + background:#fafafa; + width:20px; + height:20px; +} + +.itm-ast { + display:block; + cursor: pointer; + padding:0; + margin-bottom:0; + width:100%; + border:0 solid #ff0000; +} + +.itm-ast a { + text-decoration: none; +} + +.itm-ast:hover h3, .itm-ast:hover .ast-auth { + color:#526A84; +} + +.ast-img { + width: 100%; + height: 0; + padding-bottom: 100%; + background: #ffffff; +} + +.ast-img img { + width:100%; + height: auto; +} + +.ast-desc { + /*float:left;*/ + margin-left:0; + overflow:hidden; + position: relative; +} + +.ast-desc-image img { + width: auto; + max-width: 100%; + max-height: 300px; +} + +.ast-desc span:before { + content: ""; + pointer-events: none; + position: absolute; + width: 25px; + height: 100%; + top: 0; + right: 0; + + background: -moz-linear-gradient(left, rgba(251,251,251,0) 0%, rgba(251,251,251,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(251,251,251,0)), color-stop(100%,rgba(251,251,251,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* IE10+ */ + background: linear-gradient(to right, rgba(251,251,251,0) 0%,rgba(251,251,251,1) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00fbfbfb', endColorstr='#fbfbfb',GradientType=1 ); /* IE6-9 */ +} + +.ctrl-wr-asset.selected .ast-desc span:before, .ctrl-wr-asset:hover .ast-desc span:before { + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U0ZTRlNCIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlNGU0ZTQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background: -moz-linear-gradient(left, rgba(228,228,228,0) 0%, rgba(228,228,228,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(228,228,228,0)), color-stop(100%,rgba(228,228,228,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* IE10+ */ + background: linear-gradient(to right, rgba(228,228,228,0) 0%,rgba(228,228,228,1) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00e4e4e4', endColorstr='#e4e4e4',GradientType=1 ); /* IE6-8 */ +} + +.ast-title { + /*height: 70px;*/ + overflow: hidden; +} + +h3.ast-name { + font-weight:300; + font-size:20px; + color:#555; + margin-bottom:3px; + height: 23px; + overflow: hidden; +} + +.ast-ver { + font-weight:300; + font-size:13px; + white-space: nowrap; + word-break: keep-all; +} + +.ast-auth { + font-weight:300; + font-size:13px; + color:#526A84; + display:block; + margin-bottom:12px; + white-space: nowrap; + word-break: keep-all; +} + +.ast-published { + font-weight:300; + font-size:12px; + display:block; + /* text-align: left; */ + color:#aaa; + white-space: nowrap; + word-break: keep-all; + +} + +.ast-container .lbl-action { + display:none; +} + +/* device list-view styles */ +.ast-container.list-view .itm-select { + position: static; + float: left; +} + +.ast-container.list-view .lbl-action { + display:inline-block; +} + +.ast-container.list-view .ctrl-wr-asset { + width: 100%; + min-height: 50px; + margin: 0; +} + +.ast-container.list-view .itm-ast { + display: block; + width: auto; +} + +.ast-container.list-view .ast-img { + width: 50px; + padding-bottom: 0; + height: auto; + display: inline-block; + float: left; + margin-left:20px; +} + +.ast-container.list-view .ast-desc span:before { + width: 0; +} + +.ast-container.list-view .ast-title { + height: inherit; + float: left; + margin-left: 20px; +} + +.ast-container.list-view .ast-model { + float: right; + margin: 0 20px; + text-align: right; +} + +.ast-container.list-view h3.ast-name, .ast-container.list-view .ast-auth { + margin: 0; +} + +/* tooltip */ +.tooltip { + opacity: 1; + filter: alpha(opacity=100); +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #333; + border-width: 5px 5px 0; +} + +.tooltip-inner { + color: #fff; + background: #333; + border: solid 1px #333; + border-radius: 0px; +} + +/* filter */ +a.filter-item { + color:#e4e4e4; + text-transform: uppercase; + text-decoration: none; + display:block; + font-size:12px; + padding:3px 0px; + font-weight: 100; + cursor: pointer; +} + +a.filter-item:hover { + text-decoration: none; + color:#fff; +} + + +/* action buttons */ +.btn-col { + padding-left: 0; +} + +a.cu-btn, a.cu-btn-inner { + color:#fff; + text-decoration: none; + font-weight:100; + display: inline-block; + text-transform: uppercase; + height: 53px; + padding: 13px 10px; +} + +a.cu-btn:hover { + background-color: #132D45; +} + +a.cu-btn-inner { + color: #333; + padding: 5px 10px; + height: 35px; +} +a.cu-btn-inner:hover { + background-color:#e4e4e4; +} + +/* filter */ +.wr-filters { + padding:14px; +} + +.wr-filters-right { + padding:22px 14px 22px 0; +} + +@media (max-width:1100px) { + .wr-filters-right { + padding: 0 14px 22px 14px; + } +} + +.wr-secondary-bar { + border-bottom:0 solid #f0f0f0; + padding-right:0; +} + +@media (max-width:500px) { + .wr-secondary-bar { + padding-left:0; + } +} + +.wr-filter-sort a.ico-filter { + display:inline-block; + width:40px; + height:40px; + padding:5px; +} + +.wr-filter-sort a.ico-filter .fw { + width:30px; + height:30px; + line-height: 30px; + text-align: center; + color: #333; + font-size: 15px; +} + +.wr-filter-sort a.ico-filter .fw.fw-list-sort { + font-size: 23px; +} + +@media (max-width:1100px) { + .wr-filters, .wr-filter-sort.pull-right { + float: none !important; + } +} + +.wr-filter-sort a.ico-filter:hover, .wr-filter-sort a.ico-filter.selected { + background:#e4e4e4; +} + +.sort-title, .sort-options { + padding:0 15px; +} + +.sort-title { + color:#e4e4e4; + font-size:11px; + padding-bottom:5px; + padding-top:5px; + margin-bottom:5px; +} + +.sort-options > a { + display:block; + text-decoration: none; + color:#cecece; + text-transform: uppercase; + font-size:12px; + padding:4px 0; + font-weight: 100; +} + +span.ico-sort-asc { + display:inline-block; + padding-right:20px; + width:15px; + height:15px; + padding-top:2px; +} + +span.ico-sort-desc { + display:inline-block; + padding-right:20px; + width:15px; + height:15px; + padding-top:2px; +} + + +/* asset filter window styles */ +.wr-asset-type-switcher .popover.menu { + display:none; + top: 70px; + left: 14px !important; + min-width: 290px; + color: #ffffff; + padding-bottom:0; + z-index: 100000; +} + +.wr-asset-type-switcher .popover.menu .arrow { + left: 27px !important; +} + +.wr-asset-type-switcher .popover.menu .popover-content .title { + font-family: 'Open Sans'; + font-size: 16px; + color:#ffffff; + font-weight: 100; + margin: 0 4px 4px 4px; +} + +.wr-asset-type-switcher ul { + margin: 0; + padding: 0; + list-style: none; +} + +.wr-asset-type-switcher ul:after { + clear: both; + content: " "; + height: 0; + display: block; +} + +.wr-asset-type-switcher ul li, .wr-asset-type-switcher ul a { + display: block; + float: left; + margin: 4px; + padding: 6px 4px; + list-style: none; + width:85px; + height:85px; + text-align: center; + vertical-align: text-bottom; + color:#e4e4e4; + text-decoration: none; +} + +.wr-asset-type-switcher ul a { + cursor: pointer; + width:30px; + height:40px; + margin:30px 0 0 10px; + line-height: 40px; + text-align: center; +} +.wr-asset-type-switcher ul a:hover { + background-color: transparent; + opacity: 0.6; +} + +.wr-asset-type-switcher ul ul { display: none; } + +.wr-asset-type-switcher ul.options { + border-top: 1px solid #333; + margin-top:5px; + padding:5px 0 0 0; +} + +.wr-asset-type-switcher ul li:hover { + background:#526A84; + cursor: pointer; +} + +#advance-filter-options { + background:#444444; + margin: 5px 4px; + padding: 10px; +} + +#advance-filter-options input { + margin:0 5px 0 5px; +} + +#device-filter-options li i.fw { + display: block; + font-size: 26px; + margin: 10px 0; +} + +#device-filter-options li h4 { + margin-bottom: 0; +} + +#device-filter-options li h6 { + margin-bottom: 0; +} + +#device-filter-options li span { + float: none; +} + +#asset-selected .selected { + padding:0 0; +} + +#asset-selected .selected li { + background: #526A84; + color: #ffffff; +} + +#asset-selected .options li { + background:#444; +} + +#asset-select li { + background:#444; +} + +#asset-select li:hover, #asset-selected .options li:hover { + background:#555; +} + +/* login page styles */ + +.wr-login { + padding-top:50px; +} + +/* form styles */ +.wr-validation-summary p { + display: block; + color: #ff2353 !important; + margin-top: 15px; + font-weight: 400 !important; + background: #fff2f2; + padding: 7px 17px; + font-size: 13px !important; + border-left: 3px solid #ff2353; +} + +.wr-input-label { + font-weight:100; + font-size:14px; + color:#555; + margin-bottom:5px; +} + +.wr-input-control { + margin-bottom: 20px; +} + +.wr-input-control input, .wr-input-control textarea { + border: 1px #999 solid; + width: 100%; + height: 100%; + padding: 6px 10px; + z-index: 1; + -webkit-appearance: none; +} + +/* asset filter tags on search field styles */ +.wr-search-tags { + display:block; + float: left; + min-height: 54px; + padding:13px 5px; + max-width: 350px; +} + +/* search field styles */ +.wr-search-tags:empty { + padding:0; +} + +.wr-search-tags span { + color: #ffffff; + background: #11375B; + font-size: 11px; + display: inline-block; + cursor: pointer; + padding: 6px 6px; + margin: 1px; + border-radius: 2px; +} + +.wr-search-tags span i.fw { + display: none; +} + +.wr-search-tags span:hover { + background: #526A84; + color: #ffffff; +} + +/* search */ +.wr-search { + margin-left:0; + border:none; + background:#bbb; + min-height: 54px; + max-width:750px !important; + width: 100%; +} + +@media (max-width:1100px) { + .wr-search-tags:not(:empty) { + float: none; + padding-left:60px; + max-width: 100%; + } + .wr-search { + max-width: 100% !important; + } + .wr-filters.col-sm-7, .wr-filters.col-sm-7.col-md-8 { + width: 100%; + } +} + +.wr-search .input { + background:#bbb; + height: 54px; + border:none; + color:#fff; + font-weight: 100; + line-height: 54px; + padding:0 20px; + overflow: hidden; + font-size:18px; + white-space: nowrap; + word-break: keep-all; + min-width: 200px; +} + +.wr-search .input:focus { + outline: 0; +} + +[contentEditable=true]:empty:not(:focus):before{ + content:attr(data-placeholder) +} + +.btn-search { + display:block; + font-size:21px; + font-weight:500; + color:#fff; + background:#bbb; + padding:10px 12px; + height: 54px; + float: right; +} + +@media (max-width:500px) { + .btn-search { display: none; } +} + +.wr-search:hover .fw { + color:#fff; +} + +.wr-filters div.wr-filter-category { + float:left; +} + +.wr-filters .col-md-1, .col-md-11 { + padding:0; + margin: 0; + height:54px; +} + +::-webkit-input-placeholder { + color: #fff; +} + +:-moz-placeholder { /* Firefox 18- */ + color: #fff; +} + +::-moz-placeholder { /* Firefox 19+ */ + color: #fff; +} + +:-ms-input-placeholder { + color: #fff; +} + +.wr-operations, .wr-operations .operation { + display: none; +} + +a.btn-operations { + font-weight: normal; + font-size: 13px; + color: #fff; + background: #11375B; + padding: 10px 10px; + display: inline-block; + margin-right: 2px; + text-decoration: none; +} + +/* modal pop-up styles */ +.wr-modalpopup { + display: none; +} + +.wr-modalpopup .modalpopup-container { + display: block; + min-height: 100px; + width: 100%; + position: fixed; + background: #11375B; + color: #fff; + z-index: 1000001; + align-content: center; + top: 50%; +} + +.modalpopup-content { + position: relative; + overflow-x: hidden; + overflow-y: auto; + padding: 60px; +} + +.modalpopup-content h3 { + font-weight: 300; +} + +.modalpopup-content h3 .fw-stack { + margin-right: 15px; +} + +.wr-modalpopup .modalpopup-close-btn { + color: #fff; + z-index: 1000002; + cursor: pointer; + position: absolute; + top: 30px; + left: 40px; + padding: 5px 8px; + font-size: 18px; +} + +.wr-modalpopup .modalpopup-close-btn:hover { + +} + +.wr-modalpopup .modalpopup-content .buttons { + margin-top: 30px; +} + +.wr-modalpopup .modalpopup-content .buttons .btn-operations { + background: #fff; + color: #333; + text-transform: uppercase; + font-weight: 500; +} + +.wr-modalpopup .modalpopup-bg { + position: fixed; + z-index: 1000000; + width: 100%; + height: 100%; + background: #000000; + opacity: 0.9; + display: block; +} + +/* notification panel styles */ +.wr-notification-bar, .wr-side-panel { + width: 400px; + background: #262933; + position: absolute; + right: -400px; + padding: 10px; + z-index: 10000; + color: #fff; + transition: right 0.4s ease 0s; + overflow-y: auto; + overflow-x: hidden; +} + +.wr-side-panel { + background: #e4e4e4; + color: #333; + padding: 0; +} + +.wr-notification-bar::-webkit-scrollbar, .wr-side-panel::-webkit-scrollbar { + width: 6px; + background: transparent; + padding: 0 5px; + cursor: all-scroll; +} +.wr-notification-bar::-webkit-scrollbar-thumb { + background: #e4e4e4; +} +.wr-notification-bar::-webkit-scrollbar-thumb:hover { + background: #e4e4e4; +} +.wr-notification-bar::-webkit-scrollbar-thumb:active { + background: #e4e4e4; +} + +.wr-side-panel::-webkit-scrollbar-thumb { + background: #526A84; +} +.wr-side-panel::-webkit-scrollbar-thumb:hover { + background: #526A84; +} +.wr-side-panel::-webkit-scrollbar-thumb:active { + background: #526A84; +} + +.wr-notification-bar.toggled, .wr-side-panel.toggled { + right: 0; +} + +.wr-notification-desc.new .wr-notification-operation { + font-weight: 500; +} + +.wr-notification-desc .fw { + font-size: 12px; +} + +.wr-notification-toggle-btn, .wr-side-panel-toggle-btn { + float: right; +} + +.wr-notification-bubble { + display: inline-block; + background: #fafafa; + color: #555; + padding: 2px 4px; + border-radius: 5px; + min-width: 10px; + font-weight: 500; +} + +a.wr-notification-toggle-btn.selected { + background-color: #262933; +} + +a.wr-side-panel-toggle-btn.selected { + background-color: #11375B; + color: #fff; +} + +.wr-side-panel .panel-title a { + display: block; + padding: 10px; + background: #11375B; + color: #fff; + border-bottom: 1px solid #e4e4e4; +} + +.wr-side-panel .panel-title a:hover { + background: #132D45; +} + +.wr-side-panel .panel { + margin-bottom: 0; +} + +.wr-side-panel .panel-sub-title { + margin: 10px 0; +} + +.wr-side-panel .wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { + background: #fff; +} + +.wr-side-panel .panel-body { + padding: 10px; +} + +.wr-panel-notes textarea { + resize: vertical; +} + +.wr-panel-notes .wr-btn { + margin-right: 5px; +} + +.wr-panel-notes .wr-input-control.checkbox { + margin: 0; +} + +.wr-panel-notes .wr-input-control.checkbox .helper:before { + border-color: #526A84; +} + +.wr-panel-notes .add-btn { + margin-bottom: 15px; + padding-left: 0; +} + +.wr-panel-notes .panel-collapse { + padding: 10px 0 10px 35px; +} + +.wr-panel-note { + margin: 0; +} + +.wr-panel-notes .well { + margin: 5px 0; + padding: 10px; +} + +.wr-panel-note .wr-panel-msg:hover { + cursor: pointer; + background: #f5f5f5; +} + +.wr-panel-notes .wr-panel-desc-icon i { + width: 30px; + height: 30px; + display: inline-block; + background: #333; + color: #fff; + text-align: center; + margin-right: 10px; +} + +.wr-panel-notes .wr-panel-desc-icon img { + width: 30px; + height: auto; +} + +.wr-panel-notes .wr-panel-desc-icon { + float: left; + width: 30px; + height: 30px; + line-height: 30px; + white-space: nowrap; + margin-bottom: 5px; +} + +.wr-panel-msg { + background: #fff; + border-right: 2px solid #526A84; + padding: 8px 35px 8px 10px; + margin-left: 35px; + margin-bottom: 5px; + font-size: 16px; + position: relative; +} + + +.wr-panel-msg .dropdown-menu { + background: #526A84; + color: #fff; + left: -167px; + top: -2px; +} + +.wr-panel-msg .dropdown-menu a { + color: #fff; +} + +.wr-panel-msg .dropdown-menu a:hover, .wr-panel-msg .dropdown-menu a:focus { + background-color: #132D45; + color: #fff; +} + +.wr-panel-msg .msg-options { + position: absolute; + top: 0; + right: 0; + padding: 0; + cursor: pointer; +} + +.wr-panel-msg .msg-options .btn.dropdown-toggle { + padding: 6px; + border: none; + color: #333; + background: transparent; +} + +.wr-panel-msg .msg-options .btn.dropdown-toggle:hover, .wr-panel-msg .msg-options .btn.dropdown-toggle[aria-expanded="true"] { + color: #fff; + background-color: #526A84; +} + +.wr-panel-msg-visibility { + position: absolute; + bottom: 7px; + right: 10px; + font-size: 14px; +} + +.wr-panel-notes .resolve-icon { + display: none; + position: absolute; + bottom: 5px; + right: 15px; + font-size: 14px; +} + +.wr-panel-notes .resolved .resolve-icon { + display: block; +} + +.wr-panel-notes .resolved .wr-panel-msg { + border-right: none; + background: #C7CFD0; +} + +.wr-panel-notes .resolved .wr-panel-sub-note .wr-panel-msg .msg-options { + display: none; +} + +.wr-panel-sub-note .wr-panel-msg { + background: transparent; + margin-bottom: 5px; + padding-top: 0; + border-right: none; +} + +.wr-panel-msg-details { + font-size: 10px; + color: #919191; + margin-top: 10px; +} + +.wr-panel-notes .more-link { + display: inline-block; + margin-bottom: 8px; +} + + +/* filter type switcher */ +#content-filter-types { + position:absolute; + right: -300px !important; + float: right; +} + +.wr-filter-type-switcher .popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + width: 200px; + padding: 1px 1px 8px 1px; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #232323; + -webkit-background-clip: padding-box; + background-clip: padding-box; + /*border: 0px solid #232323;*/ + border: 0 solid rgba(0,0,0,.2); + border-radius: 0; + -webkit-box-shadow: 0 0 0 rgba(0,0,0,.2); + box-shadow: 0 0 0 rgba(0,0,0,.2); + margin-right: -400px !important; +} + +.wr-filter-type-switcher .popover.bottom>.arrow { + top: -11px; + left: 50%; + margin-left: 130px; + border-top-width: 0; + border-bottom-color: #232323; +} + +.wr-filter-type-switcher .popover>.arrow { + border-width: 11px; +} + +.wr-filter-type-switcher .popover.bottom>.arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #232323; +} + +.wr-filter-type-switcher .popover>.arrow, .popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.wr-filter-type-switcher { + position: relative; +} + +.wr-filter-type-switcher .popover-content { + padding: 6px 6px; +} + +.wr-filter-type-switcher .arrow { + left:25px !important; +} + +.wr-filter-type-switcher .popover { + left: -148px !important; +} + +/* stats */ +.wr-stats-board-tile { + background: #11375B; + color: #fff; + padding: 10px 15px; + height: 110px; + margin-bottom: 10px; +} + +.wr-stats-board .tiles .row { + margin: 0 -5px; +} + +.wr-stats-board .tiles .col-lg-2, .wr-stats-board .tiles .col-lg-4, .wr-stats-board .tiles .col-lg-8 { + padding: 0 5px; +} + +.wr-stats-board-tile .col-lg-4, .wr-stats-board-tile .col-lg-8, .wr-stats-board .tiles .col-lg-6 { + padding: 0; +} + +.wr-stats-board-tile.lg .tile-stats { + border-left: 1px solid #9bb6f6; + height: 90px; + text-align: left; + font-size: inherit; +} + +.wr-stats-board-tile.lg .tile-stats .col-lg-6 { + padding: 0 15px; +} + +.wr-stats-board-tile.lg .tile-graph { + width:100px; + float:right; + text-align: right; + margin: 0 auto; +} + +.wr-stats-board-tile.lg .tile-graph img { + width:80px; +} + +.tile-bg { + background:#11375B; + color:#fff; +} + +.tile-name { + font-size:16px; + font-weight: 100; + text-transform: uppercase; +} + +.tile-stats { + width:75%; + float:right; + font-size:27px; + font-weight: 400; + text-align: right; +} + +.tile-stats-sm { + font-size:17px; + font-weight: 700; +} + +.tile-stats-free { + font-size:13px; + display:block; + text-align: right; +} + +.tile-stats-free a { + color: #B4C2D0; + text-decoration: none; + display: inline-block; + padding: 3px 5px 1px; +} + +.tile-stats-free a:hover { + color: #fff; +} + +.tile-stats-type { + font-size:12px; + display:block; +} + +.tile-icon { + width:25%; + float:left; + margin-top: 10px; +} + +.tile-icon .fw { + font-size:40px; +} + +.tile-sup-lbl { + display: block; + font-size: 12px; +} + + +.sub-title { + font-weight:100; + font-size: 20px; +} + +.wr-device-board label { + font-weight: 400; +} + +.wr-app-listing > div { + float:left; + margin-right:10px; + margin-bottom:10px; +} + +.wr-app-listing > div > img { + width:60px; +} + +.wr-form { + margin: 30px 0; +} + +.wr-form button { + margin-right: 5px; +} + +.wr-help-tip { + font-size: 14px; + padding: 0 10px; + color: #666; +} + +.wr-form .wr-operation-icon { + font-size: 32px; + margin-right: 10px; + color: #11375B; +} + + +/* enabled/disabled switch styles */ +.wr-input-control.switch { + display: inline-block; + margin-right: 10px; + cursor: pointer; + position: relative; + margin-bottom: 5px; +} +.wr-input-control.switch > input[type=checkbox] { + position: absolute; + opacity: 0; +} +.wr-input-control.switch .helper { + padding-left: 52px; + position: relative; +} + +.wr-input-control.switch .text { + display: none; + margin-left: 5px; + font-weight: 100; +} + +.wr-input-control.switch input[type="checkbox"]:checked + .helper + .text { + display: inline-block; +} + +.wr-input-control.switch .helper:before { + position: absolute; + left: 0; + top: 2px; + display: block; + content: ""; + width: 45px; + height: 16px; + /*outline: 2px #a6a6a6 solid;*/ + border: 1px #fff solid; + cursor: pointer; + /*background: #526A84;*/ + background: #a6a6a6; + /*margin-left: 2px;*/ + z-index: 1; + border-radius: 8px; +} +.wr-input-control.switch input[type="checkbox"] + .helper:after { + position: absolute; + left: 22px; + top: -2px; + display: block; + content: ""; + width: 24px; + height: 24px; + /*outline: 2px #333 solid;*/ + border: 1px #333 solid; + cursor: pointer; + background: #11375B; + z-index: 2; + border-radius: 12px; + /*box-shadow: 0 1px 2px #888888;*/ + + -webkit-transition: left 0.2s ease-in-out; + -moz-transition: left 0.2s ease-in-out; + -o-transition: left 0.2s ease-in-out; + transition: left 0.2s ease-in-out; +} +.wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { + left: 0 !important; + background: #eaeaea; + border: 1px #eaeaea solid; +} + +.wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:before { + background: #a6a6a6 !important; +} +.wr-input-control.switch input[type="checkbox"]:disabled + .helper:after { + background: #a6a6a6 !important; + outline: 2px #a6a6a6 solid !important; + border: 1px #a6a6a6 solid !important; +} +.wr-input-control.switch input[type="checkbox"]:disabled + .helper:before { + cursor: default !important; + background: #e0e0e0 !important; + outline: 2px #ccc solid !important; +} + +/* radio button style*/ +.wr-input-control.radio { + display: inline-block; + margin-right: 10px; + margin-bottom: 0; + cursor: pointer; + font-weight: 100; +} +.wr-input-control.radio > input[type=radio] { + position: absolute; + opacity: 0; +} +.wr-input-control.radio .helper { + padding-left: 23px; + position: relative; +} +.wr-input-control.radio .helper:before { + position: absolute; + display: block; + height: 20px; + width: 20px; + content: ""; + text-indent: -9999px; + border: 2px #d9d9d9 solid; + z-index: 1; + opacity: 1; + top: 0; + left: 0; + border-radius: 100%; +} +.wr-input-control.radio input[type="radio"]:checked + .helper:after { + position: absolute; + display: block; + content: ""; + color: #1a1a1a; + z-index: 2; + font-size: 16px; + font-weight: bold; + left: 5px; + margin-left: 0; + top: 50%; + margin-top: -5px; + background-color: #1a1a1a; + width: 10px; + height: 10px; + border-radius: 100%; +} +.wr-input-control.radio.light input[type="radio"]:checked + .helper:after { + color: #fff; + background-color: #fff; +} +.wr-input-control.radio input[type="radio"]:disabled + .helper:before { + cursor: default; + background: #e6e6e6; +} +.wr-input-control.radio input[type="radio"]:disabled + .helper:after { + background-color: #8a8a8a; +} +.wr-input-control.radio:hover input:not(:disabled) + .helper:before { + border-color: #919191; +} +.wr-input-control.radio:active input:not(:disabled) + .helper:before { + border-color: #919191; +} + +/* checkbox style */ +.wr-input-control.checkbox { + display: inline-block; + margin: 0 10px 0 0; + cursor: pointer; +} +.wr-input-control.checkbox > input[type=checkbox] { + position: absolute; + opacity: 0; +} +.wr-input-control.checkbox .helper { + padding-left: 23px; + position: relative; +} +.wr-input-control.checkbox .helper:before { + position: absolute; + display: block; + height: 20px; + width: 20px; + content: ""; + text-indent: -9999px; + border: 2px #eaf0f1 solid; + z-index: 1; + opacity: 1; + top: 0; + left: 0; +} +.wr-input-control.checkbox input[type="checkbox"]:checked + .helper:before { + border: 2px #526A84 solid; +} +.wr-input-control.checkbox input[type="checkbox"]:checked + .helper:after { + position: absolute; + display: block; + content: "\e617"; + font-size: 7pt; + height: 16px; + width: 16px; + line-height: 16px; + z-index: 2; + top: 2px; + margin-top: 0; + left: 2px; + margin-left: 0; + text-align: center; + background: #526A84; + color: #fff; + font-family: fontwso2; +} +.wr-input-control.checkbox input[type="checkbox"]:not(:checked) + .helper:after { + display: none; +} +.wr-input-control.checkbox input[type="checkbox"]:disabled + .helper:before { + cursor: default; + background: #e6e6e6; +} +.wr-input-control.checkbox input[type=checkbox]:disabled + .helper:after { + color: #8a8a8a; +} +.wr-input-control.checkbox:hover input:not(:disabled) + .helper:before { + border-color: #526A84; +} +.wr-input-control.checkbox:active input:not(:disabled) + .helper:before { + border-color: #526A84; +} + +/* list group styles */ +.wr-list-group { + margin-top: 30px; +} + +.wr-list-group .list-group-item { + padding: 0; + position: relative; + border: none; + background: #f1f1f1; + margin-bottom: 4px; +} + +.wr-list-group .list-group-item-actions { + float: right; + margin: 0 10px; + padding: 8px 0; +} + +@media (max-width:500px) { + .wr-list-group .list-group-item-actions:before { + clear: both; + content: " "; + height: 10px; + display: block; + } + .wr-list-group .list-group-item-actions { + float: left; + } +} + +.wr-list-group .wr-list-desc { + float: left; + padding: 4px 8px; + min-height: 50px; +} + +.wr-list-group h3.wr-list-name { + margin: 0; + font-weight: 400; + font-size: 20px; + color: #555; +} + +.wr-list-group .wr-list-username { + font-weight: 100; + font-size: 13px; +} + +.wr-list-email, .wr-list-email:hover { + font-weight: 300; + font-size: 13px; + color: #526A84; +} + +.wr-sortable .list-group-item, tbody.wr-sortable td { + cursor: move; +} + +.wr-list-group .list-group-item .wr-sortable-icon, tbody.wr-sortable td .wr-sortable-icon { + opacity: 0.5; + float: left; + font-size: 14px; + margin: 15px; +} + +.wr-list-group .list-group-item .wr-list-icon, tbody.wr-sortable td .fw.wr-list-icon { + float: left; + width: 50px; + height: 50px; + line-height: 42px; + background: #526A84; + color: #fff; + font-size: 28px; + text-align: center; +} + +.wr-list-group .wr-sort-index { + font-size: 18px; + font-weight: 400; + background: #14212E; + color: #fff; + width: 50px; + height: 50px; + margin: 0; + line-height: 50px; + text-align: center; + float: left; +} + +.wr-list-group .wr-desc-list-configs { + height: 50px; + padding: 15px; + background: #14212E; + color: #fff; + text-align: center; +} + +.wr-list-group .wr-desc-list-configs b { + color: #526A84; +} + +.panel-title a .fw-stack { + font-size: 14px; +} + +.panel-title a.collapsed .fw-arrow:before { + content: "\e687"; +} + +.footer a { + text-decoration: none; +} + +.footer .fw { + font-size: 21px; +} + +.wr-hidden-nav { + background: #132D45; + margin-right: -15px; + margin-left: -15px; + display: none; + color: #fff; +} + +.wr-hidden-nav ul { + list-style: none; + margin: 0; + padding-left: 7px; +} + +.wr-hidden-nav ul li { + list-style: none; + display: inline-block; + text-align: center; + margin: 10px 3px; + line-height: 17px; +} + +.wr-hidden-nav ul li a { + color: #fff; + text-decoration: none; + width: 120px; + height: 120px; + padding: 15px; + background: #132D45; + display: block; + overflow: hidden; +} + +.wr-hidden-nav ul li a:hover { + background: #526A84; +} + +.wr-hidden-nav ul li a i { + font-size: 46px; + display: block; + margin-bottom: 10px; +} + +.cu-btn.wr-hidden-nav-toggle-btn:hover { + background: #D56613; + } + +.cu-btn.wr-hidden-nav-toggle-btn, .cu-btn.wr-hidden-nav-toggle-btn.active:hover { + background: #F47415; +} +.cu-btn.wr-hidden-nav-toggle-btn.active, .cu-btn.wr-hidden-nav-toggle-btn.active:hover { + background: #132D45; +} + + +.wr-device-list { + position: relative; +} + +.wr-hidden-operations { + width: 900px; + position: absolute; + top: 0; + bottom: 0; + left: -900px; + z-index: 10000; + -moz-transition: left 0.4s ease; + transition: left 0.4s ease 0s; + overflow-y: hidden; + overflow-x: hidden; +} + +.wr-advance-operations { + height: 100%; + background: #e4e4e4; + border: 1px solid #e4e4e4; +} + +.wr-hidden-operation { + display: none; +} + +.wr-advance-operations .row:first-child { + height: 100%; +} + +.wr-hidden-operations.toggled { + left: 0; +} + +.wr-advance-operations .wr-hidden-operations-nav a { + display: block; + background: #fff; + color: #526A84; + border-bottom: 1px solid #e4e4e4; + padding: 10px; + text-decoration: none; + font-size: 16px; +} + +.wr-advance-operations .wr-hidden-operations-nav a:hover { + background: #f4f4f4; +} + +.wr-advance-operations .wr-hidden-operations-nav a.selected, .wr-hidden-operations .wr-hidden-operations-nav a.selected:hover { + color: #fff; + background: #526A84; +} + +.wr-hidden-operations-icon { + margin-right: 10px; +} + +.wr-hidden-operations-content { + overflow-y: auto; + overflow-x: hidden; + height: 100%; + background: #fff; + border-left: 1px solid #e4e4e4; +} + +.wr-hidden-operations-content::-webkit-scrollbar { + width: 6px; + background: transparent; + padding: 0 5px; + cursor: all-scroll; +} +.wr-hidden-operations-content::-webkit-scrollbar-thumb { + background: #e4e4e4; +} +.wr-hidden-operations-content::-webkit-scrollbar-thumb:hover { + background: #e4e4e4; +} +.wr-hidden-operations-content::-webkit-scrollbar-thumb:active { + background: #e4e4e4; +} + +.wr-hidden-operations-content .panel { + margin-bottom: 0; +} + +.wr-hidden-operations-content .sub-title { + font-size: 16px; +} + +.wr-hidden-operations-content .panel-title { + padding: 5px; + background: #e4e4e4; + border-bottom: 1px solid #fff; + color: #555; +} + +.wr-hidden-operations-content .panel-title a { + padding: 0; +} + +.wr-hidden-operations-content .panel-title .fw-stack.collapsed .fw-down-arrow:before { + content: "\e634"; +} + +.wr-hidden-operations-content .panel-title .wr-input-control.switch { + margin-top: 8px; + margin-right: 0; +} + +.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"]:not(:checked) + .helper:after { + background: #fff; +} + +.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"] + .helper + .text { + display: inline-block; + float: left; + margin-right: 5px; + margin-top: -1px; +} + +.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"] + .helper + .text:after { + content: "Disabled"; +} + +.wr-hidden-operations-content .panel-title .wr-input-control.switch input[type="checkbox"]:checked + .helper + .text:after { + content: "Enabled"; +} + +.wr-hidden-operations-content .panel-title label { + float: right; +} + +.wr-hidden-operations-content .panel-title .fw-stack { + width: 5px; +} + +.wr-hidden-operations-content .panel-title:after { + clear: both; + content: " "; + display: block; + height: 0; +} + +.wr-hidden-operations-content .panel-body { + padding: 5px; +} + +.wr-page-content { + position: relative; + left: 0; + -moz-transition: left 0.4s ease; + transition: left 0.4s ease; +} + +.wr-page-content.toggled { + left: 900px; +} + +a.show-operations-btn { + margin-bottom: 10px; +} + +a.show-operations-btn.selected { + background: #526A84; + color: #fff; +} + +a.show-operations-btn.selected .fw-right-arrow:before { + content: "\e662"; +} + +a.show-operations-btn.selected .btn-text:before { + content: "Hide "; +} + +a.show-operations-btn .btn-text:before { + content: "View All "; +} + +.footer { + left: 0; + -moz-transition: left 0.4s ease; + transition: left 0.4s ease; +} + +.footer.wr-hidden-operations-toggled { + left: 900px; +} + + + +/* resource selectbox specific styles */ +.select2-results .item, .select2-selection .item { + padding: 5px; +} + +.select2-results .item:after, .select2-selection .item:after { + clear: both; + content: " "; + display: block; + height: 0; +} + +.select2-results .item .text, .select2-selection .item .text { + float: left; +} + +.select2-results .item .text .resource-name, .select2-selection .item .text .resource-name { + font-size: 16px; + font-weight: 400; + line-height: normal; + } + +.select2-results .item .text .resource-type, .select2-selection .item .text .resource-type { + font-size: 13px; + line-height: normal; +} + +.select2-results .item .icon, .select2-selection .item .icon { + float: right; + padding-top: 4px; + text-align: center; + width: 40px; +} + +.select2-results .item .icon i, .select2-selection .item .icon i { + font-size: 30px; +} + +.select-resource.select2-selection { + height: 60px !important; + border-color: #E7EAED !important; + background-color: #444 !important; +} + +.select-resource .select2-selection__rendered { + color: #fff !important; + padding-right: 28px !important; +} + +.select-resource .select2-selection__arrow b { + border-width: 8px 7px 0 7px !important; + border-color: #FFF transparent transparent transparent !important; + margin-left: -15px !important; + margin-top: 12px !important; +} + +.select-resource.select2-dropdown { + z-index: 1000; +} + +.disabled-area { + opacity: 0.5; +} + +.disabled-area * { + outline: none; +} + +/* inner page title buttons */ + +.tile-buttons-list h4 { + font-weight: 400; +} + +.tile-buttons { + list-style: none; + margin: 0; + padding-left: 0; +} + +.tile-buttons li { + list-style: none; + display: inline-block; + text-align: center; + line-height: 17px; +} + +.tile-buttons li a { + color: #fff; + text-decoration: none; + width: 100%; + height: 120px; + padding: 20px; + background: #132D45; + display: block; + overflow: hidden; + text-align: center; +} + +.tile-buttons li a.selected,.tile-buttons li a.selected:hover { + background: #132D45; +} + +.tile-buttons li a.disabled,.tile-buttons li a.disabled:hover { + opacity: 0.1; + background: #132D45; + cursor: default; +} + +.tile-buttons li a:hover { + background: #526A84; +} + +.tile-buttons li a i { + font-size: 50px; + display: block; + margin-bottom: 10px; +} + +.wr-associations-list { + margin-top: 10px; +} + +.wr-associations-list .wr-association-icon, +.wr-associations-list .wr-security-status, +.wr-associations-list .wr-asset-desc, +.wr-associations-list .wr-resource-icon, +.wr-associations-list .wr-asset-details { + float: left; +} + +.wr-associations-list .wr-association-operations { + float: right; + margin-right: 10px; + padding-top: 8px; +} + +.wr-associations-list .wr-association { + background: #f1f1f1; + /*padding: 10px;*/ + margin-bottom: 4px; +} + +.wr-associations-list .wr-asset-details { + padding: 5px 10px; +} + +.wr-associations-list .wr-resource-icon { + font-size: 37px; + height: 50px; + line-height: 40px; +} + +.wr-associations-list .wr-asset-desc .resource-name { + font-weight: 500; +} + +.wr-associations-list .wr-security-status { + /*background: #97C543;*/ + background: #989898; + color: #fff; + height: 50px; + line-height: 50px; + padding: 0 10px; + margin-right: 10px; +} + +.wr-associations-list .wr-association-icon { + width: 50px; + height: 50px; + vertical-align: text-top; + line-height: 40px; + text-align: center; + font-size: 25px; + background-color: #444; + color: #fff; +} + +.wr-configurations-table th { + font-weight: 400; + text-transform: uppercase; + padding: 10px 2px; +} + +.wr-configurations-table td { + padding:5px 2px; + vertical-align: text-top; +} + +.panel-collapse { + position: relative; +} + +.loading { + position: relative; +} + +.loading:before { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; + background-color: #fff; + opacity: 0.8; +} + +.loading:after { + content: "Background operation is running ..."; + z-index: 11; + background: #fe8; + color: #333; + width: 250px; + opacity: 0.8; + bottom: 25px; + display: block; + padding: 5px 10px; + position: absolute; +} + +a.cu-btn-inner.inverse { + background: #11375B; + color: #fff; +} +a.cu-btn-inner.inverse:hover { + background: #526A84; +} + +.wiz-lbl { + } \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css similarity index 95% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css index 5770d72f89..a5864677c4 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/custom-theme.css @@ -1,535 +1,535 @@ -body { - overflow-x: hidden; - -ms-overflow-x: hidden; -} - -a { - color: #526A84; -} - -textarea { width: 100%; } - -.well { - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -/* asset type switcher */ -.wr-asset-type-switcher .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 451px; - padding: 1px; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.42857143; - text-align: left; - white-space: normal; - background-color: #232323; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 0 solid #232323; - border: 0 solid rgba(0,0,0,.2); - border-radius: 0; - -webkit-box-shadow: 0 0 0 rgba(0,0,0,.2); - box-shadow: 0 0 0 rgba(0,0,0,.2); - padding-bottom:8px; -} - -.wr-asset-type-switcher .popover.bottom>.arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #232323; -} - -.wr-asset-type-switcher .popover>.arrow { - border-width: 11px; -} - -.wr-asset-type-switcher .popover.bottom>.arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #232323; -} - -.wr-asset-type-switcher .popover>.arrow, .popover>.arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.wr-asset-type-switcher .popover-content { - padding: 6px 6px; -} - -.wr-asset-type-switcher .arrow { - left:25px !important; -} - -.wr-asset-type-switcher .popover { - left:10px !important; -} - - -/* sorting */ -.dropdown-menu { - position: absolute; - top: 40px; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 10px 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: transparent; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 0 solid #ccc; - border: 0 solid rgba(0,0,0,.15); - border-radius: 0; - -webkit-box-shadow: 0 0 0 rgba(0,0,0,.175); - box-shadow: 0 0 0 rgba(0,0,0,.175); - -} - -.dropdown-menu-content { - background-color: #e4e4e4; - padding:10px 20px; - color:#fff; -} - -.dropdown-menu-content a { - color:#333; - cursor:pointer; - display:block; -} - -.wr-auth .cu-arrow { - width: 0; - height: 0; - border-left: 8px solid transparent; - border-right: 8px solid transparent; - border-bottom: 8px solid #e4e4e4; - left:87%; - position:relative; -} - -/* filter */ -.dropdown-menu { - position: absolute; - top: 40px; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 5px 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: transparent; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 0 solid #ccc; - border: 0 solid rgba(0,0,0,.15); - border-radius: 0; - -webkit-box-shadow: 0 0px 0px rgba(0,0,0,.175); - box-shadow: 0 0 0 rgba(0,0,0,.175); - -} - -.dropdown-menu-content { - background-color: #e4e4e4; - padding:5px; - color:#fff; -} - -.dropdown-menu-content a { - color: #11375B; - padding: 8px 10px; - cursor:pointer; - display:block; -} - -.dropdown-menu-content a:hover { - color:#fff; - background: #11375B; -} - - -/* category selection */ -a.ctrl-filter-category { - display:inline-block; - background:#237bd5; - border:1px solid #237bd5; - color:#fff; - text-decoration:none; - padding:7px 10px 7px 20px; - width:230px; - font-size:18px; - font-weight:100; -} - -a.ctrl-filter-category:hover { - background:#666; - color:#e4e4e4; - text-decoration: none; - border:1px solid #666; -} - -.wr-filter-category .dropdown-menu { - border:0px solid #237bd5; - background:#237bd5; - top:53px; - left:20px; - width:230px; - padding-top:0; - padding-bottom:0; - color:#fff; - font-size:17px; -} - -.wr-filter-category .dropdown-menu li a { - padding-top:7px; - padding-bottom:7px; - font-weight:100; - color:#fff; -} - -.wr-filter-category .dropdown-menu li a:hover { - background:#61a3e6; -} - -.ctrl-filter-category .glyphicon { - font-size:13px; - font-weight:100; - margin-left:33px; -} - - - -/* panel */ -.panel-group .panel { - margin-bottom: 0; - border-radius: 0; -} - -.panel-default { - -} - -.panel { - margin-bottom: 20px; - background-color: transparent; - border: 0 solid #e4e4e4; - border-radius: 0; - -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .05); - box-shadow: 0 0 0 rgba(0, 0, 0, .05); -} - -.panel-default > .panel-heading { - color: #fff; - background-color: #999; - border-color: #e4e4e4; -} - -.panel-default > .panel-heading { - color: #fff; - background-color: #999; - border-color: #e4e4e4; -} - -.cu-acc-head-title { - font-weight:400; - font-size:22px; -} - -.cu-acc-head-title:hover { - text-decoration: none; -} - -.panel-title a { - text-decoration: none; -} - -.panel-heading { - padding: 0 0 0 15px; - border-bottom: 0 solid transparent; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.panel-title table, .panel-body table { - width:100%; -} - -.panel-title a { - color:#fff; -} - -.cu-acc-head-created { - font-weight:200; - font-size:16px; -} - -.cu-acc-head-workflow { - font-weight:200; - font-size:16px; -} - -.panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 0 solid #e4e4e4; -} - -.panel-body { - padding: 10px; - background:#f9f9f9; -} - -/* input */ -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #999; - border-radius: 0; - -webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, .075); - box-shadow: inset 0 0 0 rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} - -.form-control:focus { - border-color: #555; - outline: 0; - -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,.075), 0 0 0 rgba(102, 175, 233, .6); - box-shadow: inset 0 0 0 rgba(0,0,0,.075), 0 0 0 rgba(102, 175, 233, .6); -} - - -/* progress bar */ -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #e4e4e4; - border-radius: 0; - -webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, .1); - box-shadow: inset 0 0 0 rgba(0, 0, 0, .1); -} - -.progress-bar { - background-color: #6c5c76; -} - -.t-data-file { - padding-right:20px; -} - -/* tabs */ -.nav-tabs { - border-bottom: 1px solid #6c5c76; -} - -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 0; - color:#6c5c76; -} - -.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #6c5c76; - border-top:1px solid #6c5c76; - border-bottom-color: transparent; -} - -.nav-tabs > li > a:hover { - border-color: #6c5c76 #6c5c76 #6c5c76; -} -.nav > li > a:hover, .nav > li > a:focus { - text-decoration: none; - background-color: #6c5c76; - color:#fff; -} - -/* nav pills */ -.wr-tabs-grphs .nav-pills > li.active > a, .wr-tabs-grphs .nav-pills > li.active > a:hover, .wr-tabs-grphs .nav-pills > li.active > a:focus { - color: #fff; - background-color: #888; -} - -.wr-tabs-grphs .nav-pills > li > a { - border-radius: 0; -} - -.wr-tabs-grphs { - border-bottom:1px solid #e4e4e4; - padding-bottom:10px; -} - -/* buttons */ -.btn-primary { - color: #fff; - background-color: #526A84; - border-color: #526A84; -} - -.btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #444; - border-color: #444; -} - -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 0; -} - -.col-centered { - float: none; - margin: 0 auto; -} - -b, strong { - font-weight: 500; -} - -.panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: none; -} - -.panel-default > .panel-heading { - background: transparent; - padding: 0; -} - -.panel-title a { - color: #333333; - padding:15px 0; - display: inline-block; -} - -.panel-body { - background: transparent; - padding: 0; -} - -.list-group-item:first-child, .list-group-item:last-child { border-radius: 0; } - -.row.no-gutter { - margin-right: 0; - margin-left: 0; -} - -.row.no-gutter [class*='col-']:not(:first-child), .row.no-gutter [class*='col-']:not(:last-child) { - padding-right:0; - padding-left:0; -} - -select.select2 { - height:0 !important; - overflow: hidden; - padding: 0; - margin: 0; - border: none; - outline: none; -} - -.select2-container { - width: 100% !important; -} - -.select2-container--default .select2-selection--multiple, .select2-container--default .select2-selection--single { - border-radius: 0; - height: 34px; - border: 1px solid #999; -} - -.select2-container .select2-search--inline .select2-search__field { - margin-top: 0; - padding: 0; -} -.select2-container--default .select2-selection--multiple .select2-selection__rendered { - padding: 5px 8px; -} - -.select2-container--default .select2-selection--single .select2-selection__rendered { - line-height: 34px; -} - -.select2-container--default .select2-selection--multiple .select2-selection__choice { - margin-bottom: 0; - margin-top: 0; - color: #ffffff; - background: #526A84; - font-size: 11px; - display: inline-block; - cursor: pointer; - padding: 3px 6px; - border-radius: 0; - border: none; -} - -.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { - color: #ffffff; - font-weight: 500; - font-size: 11px; -} - -.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { - color: #ffffff; -} -.select2-container--default .select2-results__option--highlighted[aria-selected] { - background-color: #526A84; -} - -.select2-dropdown { - z-index: 10000; -} - +body { + overflow-x: hidden; + -ms-overflow-x: hidden; +} + +a { + color: #526A84; +} + +textarea { width: 100%; } + +.well { + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* asset type switcher */ +.wr-asset-type-switcher .popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 451px; + padding: 1px; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #232323; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 0 solid #232323; + border: 0 solid rgba(0,0,0,.2); + border-radius: 0; + -webkit-box-shadow: 0 0 0 rgba(0,0,0,.2); + box-shadow: 0 0 0 rgba(0,0,0,.2); + padding-bottom:8px; +} + +.wr-asset-type-switcher .popover.bottom>.arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #232323; +} + +.wr-asset-type-switcher .popover>.arrow { + border-width: 11px; +} + +.wr-asset-type-switcher .popover.bottom>.arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #232323; +} + +.wr-asset-type-switcher .popover>.arrow, .popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.wr-asset-type-switcher .popover-content { + padding: 6px 6px; +} + +.wr-asset-type-switcher .arrow { + left:25px !important; +} + +.wr-asset-type-switcher .popover { + left:10px !important; +} + + +/* sorting */ +.dropdown-menu { + position: absolute; + top: 40px; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 10px 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: transparent; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 0 solid #ccc; + border: 0 solid rgba(0,0,0,.15); + border-radius: 0; + -webkit-box-shadow: 0 0 0 rgba(0,0,0,.175); + box-shadow: 0 0 0 rgba(0,0,0,.175); + +} + +.dropdown-menu-content { + background-color: #e4e4e4; + padding:10px 20px; + color:#fff; +} + +.dropdown-menu-content a { + color:#333; + cursor:pointer; + display:block; +} + +.wr-auth .cu-arrow { + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid #e4e4e4; + left:87%; + position:relative; +} + +/* filter */ +.dropdown-menu { + position: absolute; + top: 40px; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 5px 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: transparent; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 0 solid #ccc; + border: 0 solid rgba(0,0,0,.15); + border-radius: 0; + -webkit-box-shadow: 0 0px 0px rgba(0,0,0,.175); + box-shadow: 0 0 0 rgba(0,0,0,.175); + +} + +.dropdown-menu-content { + background-color: #e4e4e4; + padding:5px; + color:#fff; +} + +.dropdown-menu-content a { + color: #11375B; + padding: 8px 10px; + cursor:pointer; + display:block; +} + +.dropdown-menu-content a:hover { + color:#fff; + background: #11375B; +} + + +/* category selection */ +a.ctrl-filter-category { + display:inline-block; + background:#237bd5; + border:1px solid #237bd5; + color:#fff; + text-decoration:none; + padding:7px 10px 7px 20px; + width:230px; + font-size:18px; + font-weight:100; +} + +a.ctrl-filter-category:hover { + background:#666; + color:#e4e4e4; + text-decoration: none; + border:1px solid #666; +} + +.wr-filter-category .dropdown-menu { + border:0px solid #237bd5; + background:#237bd5; + top:53px; + left:20px; + width:230px; + padding-top:0; + padding-bottom:0; + color:#fff; + font-size:17px; +} + +.wr-filter-category .dropdown-menu li a { + padding-top:7px; + padding-bottom:7px; + font-weight:100; + color:#fff; +} + +.wr-filter-category .dropdown-menu li a:hover { + background:#61a3e6; +} + +.ctrl-filter-category .glyphicon { + font-size:13px; + font-weight:100; + margin-left:33px; +} + + + +/* panel */ +.panel-group .panel { + margin-bottom: 0; + border-radius: 0; +} + +.panel-default { + +} + +.panel { + margin-bottom: 20px; + background-color: transparent; + border: 0 solid #e4e4e4; + border-radius: 0; + -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .05); + box-shadow: 0 0 0 rgba(0, 0, 0, .05); +} + +.panel-default > .panel-heading { + color: #fff; + background-color: #999; + border-color: #e4e4e4; +} + +.panel-default > .panel-heading { + color: #fff; + background-color: #999; + border-color: #e4e4e4; +} + +.cu-acc-head-title { + font-weight:400; + font-size:22px; +} + +.cu-acc-head-title:hover { + text-decoration: none; +} + +.panel-title a { + text-decoration: none; +} + +.panel-heading { + padding: 0 0 0 15px; + border-bottom: 0 solid transparent; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.panel-title table, .panel-body table { + width:100%; +} + +.panel-title a { + color:#fff; +} + +.cu-acc-head-created { + font-weight:200; + font-size:16px; +} + +.cu-acc-head-workflow { + font-weight:200; + font-size:16px; +} + +.panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 0 solid #e4e4e4; +} + +.panel-body { + padding: 10px; + background:#f9f9f9; +} + +/* input */ +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #999; + border-radius: 0; + -webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, .075); + box-shadow: inset 0 0 0 rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +.form-control:focus { + border-color: #555; + outline: 0; + -webkit-box-shadow: inset 0 0 0 rgba(0,0,0,.075), 0 0 0 rgba(102, 175, 233, .6); + box-shadow: inset 0 0 0 rgba(0,0,0,.075), 0 0 0 rgba(102, 175, 233, .6); +} + + +/* progress bar */ +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #e4e4e4; + border-radius: 0; + -webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, .1); + box-shadow: inset 0 0 0 rgba(0, 0, 0, .1); +} + +.progress-bar { + background-color: #6c5c76; +} + +.t-data-file { + padding-right:20px; +} + +/* tabs */ +.nav-tabs { + border-bottom: 1px solid #6c5c76; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 0; + color:#6c5c76; +} + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #6c5c76; + border-top:1px solid #6c5c76; + border-bottom-color: transparent; +} + +.nav-tabs > li > a:hover { + border-color: #6c5c76 #6c5c76 #6c5c76; +} +.nav > li > a:hover, .nav > li > a:focus { + text-decoration: none; + background-color: #6c5c76; + color:#fff; +} + +/* nav pills */ +.wr-tabs-grphs .nav-pills > li.active > a, .wr-tabs-grphs .nav-pills > li.active > a:hover, .wr-tabs-grphs .nav-pills > li.active > a:focus { + color: #fff; + background-color: #888; +} + +.wr-tabs-grphs .nav-pills > li > a { + border-radius: 0; +} + +.wr-tabs-grphs { + border-bottom:1px solid #e4e4e4; + padding-bottom:10px; +} + +/* buttons */ +.btn-primary { + color: #fff; + background-color: #526A84; + border-color: #526A84; +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #444; + border-color: #444; +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 0; +} + +.col-centered { + float: none; + margin: 0 auto; +} + +b, strong { + font-weight: 500; +} + +.panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { + border-top: none; +} + +.panel-default > .panel-heading { + background: transparent; + padding: 0; +} + +.panel-title a { + color: #333333; + padding:15px 0; + display: inline-block; +} + +.panel-body { + background: transparent; + padding: 0; +} + +.list-group-item:first-child, .list-group-item:last-child { border-radius: 0; } + +.row.no-gutter { + margin-right: 0; + margin-left: 0; +} + +.row.no-gutter [class*='col-']:not(:first-child), .row.no-gutter [class*='col-']:not(:last-child) { + padding-right:0; + padding-left:0; +} + +select.select2 { + height:0 !important; + overflow: hidden; + padding: 0; + margin: 0; + border: none; + outline: none; +} + +.select2-container { + width: 100% !important; +} + +.select2-container--default .select2-selection--multiple, .select2-container--default .select2-selection--single { + border-radius: 0; + height: 34px; + border: 1px solid #999; +} + +.select2-container .select2-search--inline .select2-search__field { + margin-top: 0; + padding: 0; +} +.select2-container--default .select2-selection--multiple .select2-selection__rendered { + padding: 5px 8px; +} + +.select2-container--default .select2-selection--single .select2-selection__rendered { + line-height: 34px; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice { + margin-bottom: 0; + margin-top: 0; + color: #ffffff; + background: #526A84; + font-size: 11px; + display: inline-block; + cursor: pointer; + padding: 3px 6px; + border-radius: 0; + border: none; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #ffffff; + font-weight: 500; + font-size: 11px; +} + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #ffffff; +} +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #526A84; +} + +.select2-dropdown { + z-index: 10000; +} + diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css similarity index 96% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css index b848637ed4..a425603213 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/customx-theme.css @@ -1,74 +1,74 @@ -.navbar-default { - background-color: #2a2a2a; - border-color:#2a2a2a ; -} -.navbar-nav{color: #a5a5a5; font-weight:300; padding-top: 5px; padding-left:0px;} -.form-control {background-color: #121212; border: 0px;} -.btn-default {background-color: #121212; border: 1px solid #121212;} -.container { padding:0px;} -.container-fluid{padding-left:0px;} -.navbar-default .navbar-nav > li > a {color: #a5a5a5; font-size: 14px; font-weight: 500;} -.navbar-form .input-group > .form-control { height: 39px; margin-top: 0; } -.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { height: 39px;} -.container-bg{background-image: url("../images/content-bg.png"); background-repeat: no-repeat; background-position: top left; min-height: 550px; overflow: hidden; padding: 0 15px;} -.navbar-default .navbar-nav > li > a :focus,.navbar-default .navbar-nav>li>a:hover{color:#ccc;background-color:transparent;} -.btn-default.active, -.btn-default.focus, -.btn-default:active, -.btn-default:focus, -.btn-default:hover, -.open>.dropdown-toggle.btn-default { - color: #ccc; - background-color: #121212; - border-color: #121212; -} -input { - background-color: #333; - border: 1px solid #2a2a2a; - border-radius: 3px; - height: 45px; - margin: 5px 0; - width: 100%; - padding-left: 10px; -} -input[type="checkbox"], input[type="radio"] { - line-height: normal; - margin-top: -3px; - width: 30px; -} -.navbar-default .navbar-nav>li>a:focus, -.navbar-default .navbar-nav>li>a:hover { - color: #747474; - outline: 0; -} -.navbar { - margin-bottom: 5px; -} -.navbar-brand { - padding: 15px 10px; -} -.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover { - color: #fff; - background-color:#202020 ; -} -.dropdown-menu { - background-clip: padding-box; - background-color: #202020; - border: 0px solid rgba(0, 0, 0, 0.15); - border-radius: 0; - box-shadow: none; - display: none; - float: left; - font-size: 14px; - left: 0; - color: #a5a5a5; -} -.dropdown-menu > li > a { - color: #a5a5a5; -} -.dropdown-menu>li>a:focus, -.dropdown-menu>li>a:hover { - color: #fff; - text-decoration: none; - background-color: #313131; +.navbar-default { + background-color: #2a2a2a; + border-color:#2a2a2a ; +} +.navbar-nav{color: #a5a5a5; font-weight:300; padding-top: 5px; padding-left:0px;} +.form-control {background-color: #121212; border: 0px;} +.btn-default {background-color: #121212; border: 1px solid #121212;} +.container { padding:0px;} +.container-fluid{padding-left:0px;} +.navbar-default .navbar-nav > li > a {color: #a5a5a5; font-size: 14px; font-weight: 500;} +.navbar-form .input-group > .form-control { height: 39px; margin-top: 0; } +.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { height: 39px;} +.container-bg{background-image: url("../images/content-bg.png"); background-repeat: no-repeat; background-position: top left; min-height: 550px; overflow: hidden; padding: 0 15px;} +.navbar-default .navbar-nav > li > a :focus,.navbar-default .navbar-nav>li>a:hover{color:#ccc;background-color:transparent;} +.btn-default.active, +.btn-default.focus, +.btn-default:active, +.btn-default:focus, +.btn-default:hover, +.open>.dropdown-toggle.btn-default { + color: #ccc; + background-color: #121212; + border-color: #121212; +} +input { + background-color: #333; + border: 1px solid #2a2a2a; + border-radius: 3px; + height: 45px; + margin: 5px 0; + width: 100%; + padding-left: 10px; +} +input[type="checkbox"], input[type="radio"] { + line-height: normal; + margin-top: -3px; + width: 30px; +} +.navbar-default .navbar-nav>li>a:focus, +.navbar-default .navbar-nav>li>a:hover { + color: #747474; + outline: 0; +} +.navbar { + margin-bottom: 5px; +} +.navbar-brand { + padding: 15px 10px; +} +.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover { + color: #fff; + background-color:#202020 ; +} +.dropdown-menu { + background-clip: padding-box; + background-color: #202020; + border: 0px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + box-shadow: none; + display: none; + float: left; + font-size: 14px; + left: 0; + color: #a5a5a5; +} +.dropdown-menu > li > a { + color: #a5a5a5; +} +.dropdown-menu>li>a:focus, +.dropdown-menu>li>a:hover { + color: #fff; + text-decoration: none; + background-color: #313131; } \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/font-wso2.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/font-wso2.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/font-wso2.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/font-wso2.css diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/main.css b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/main.css similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/main.css rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/css/main.css diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg index 1557f68074..7cda1026b9 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Bold-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg index 24661f35f9..914912014c 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-BoldItalic-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg index c3d6642a2c..009e1d7be7 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 2011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 2011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBold-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg index a699015a37..a0612586bd 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-ExtraBoldItalic-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg index 537d20ca6f..be508574ee 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Italic-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg index c7ae13a29c..deadc3ef1a 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.svg @@ -1,252 +1,252 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Light-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg index 535e688236..1ac169c06f 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.svg @@ -1,252 +1,252 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-LightItalic-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg index ead219a569..46a8f4c6ca 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.svg @@ -1,252 +1,252 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Regular-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg index 9eaa0b710f..ef8b7a2bca 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 2011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 2011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-Semibold-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg index 316b8186d4..46cfd5c8b8 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.svg @@ -1,251 +1,251 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/OpenSans-SemiboldItalic-webfont.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.svg similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.svg diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/font-wso2.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.eot b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.eot rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.eot diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.svg b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.svg rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.svg diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.ttf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.ttf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.ttf diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.woff b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.woff rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/fonts/glyphicons-halflings-regular.woff diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg-1.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg-1.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg-1.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg-1.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg.png b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg.png similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg.png rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/images/content-bg.png diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js similarity index 96% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js index b4d6031fca..870398f588 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/assetmenu.js @@ -1,217 +1,217 @@ -/* - * 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. - */ - -/* - * Setting-up global variables. - */ -var menuButton = '.ctrl-asset-type-switcher', - menu = '.popover.menu', - deviceOptions = '#device-filter-options', - menuContainer = '#asset-select', - menuSubContainer = '#asset-selected', - menuItems = '#asset-select ul li', - tagsContainer = '.wr-search-tags', - searchField = '#search', - menuItemsID = 0, - prevSelected = 0; - -/* - * DOM ready functions. - */ -$(document).ready(function(){ - - /* Bind filter menu relationship on load */ - addingIdentity(); - - /* Bind filter select function to all assets on load */ - $(menuItems).each(function(){ - menuItemsID++; - $(this).attr({ - 'asset':menuItemsID, - 'onclick':'selectAsset(this)', - 'level': $(this).parents('ul').length - }); - }); -}); - -/* - * Bind filter window hide function to the document. - */ -$(document).bind('click', function(e) { - if($(e.target).attr('rel') !== 'assetfilter') { - $(menu).hide(); - } -}); - -/* - * On filter switch button click show filter option window. - */ -$(menuButton).click(function(e){ - e.stopPropagation(); - $(menu).toggle(); -}); - -/* - * On asset filter options window advance filter radio button change function - */ -$('#advance-filter-options input[type=radio]').change(function() { - if(this.value !== 'devices'){ - $(deviceOptions).hide(); - resetNav(); - $(tagsContainer).html(''); - } - else { - $(deviceOptions).show(); - } - - $(searchField).attr('data-placeholder', 'Search '+ this.value + ' ...'); -}); - -/* - * Update filter container. - * @param asset: Selected asset - */ -function containerUpdate(asset){ - var options = $(asset).next('ul').length ? $(asset).next('ul').html() : ""; - - $(menuSubContainer).html('' + '
    '+ options +'
'); - - prevSelected = ($(menuSubContainer + ' ul.selected li').attr('asset')); - - //$(menuSubContainer + ' ul.options li').length == 0 ? $(menuSubContainer + ' ul.options').hide() : - // + $(menuSubContainer + ' ul.options').show(); - - addingIdentity(); -} - -/* - * On asset click selecting filter. - * @param asset: Selected asset - */ -function selectAsset(asset){ - - console.log(this); - - $(tagsContainer +' span').each(function(){ - if($(this).attr('level') == $(asset).attr('level')){ - removeTags(this); - } - }); - - containerUpdate(asset); - - $(menuSubContainer).show(); - $(menuContainer).hide(); - - addTags(asset); -} - -/* - * Adding asset filtering relationship menu child elements. - */ -function addingIdentity(){ - $(menu).find('*').each(function(){ - $(this).attr('rel', 'assetfilter'); - }); - $(tagsContainer).find('*').each(function(){ - $(this).attr('rel', 'assetfilter'); - }); -} - -/* - * Filter window go back function. - * @param backButton: Filter window back button - */ -function goBack(backButton){ - if($(backButton).prev('li').attr('level') == 1){ - $(menuSubContainer).hide(); - $(menuContainer).show(); - } - else{ - containerUpdate($(menuContainer + ' [asset='+prevSelected+']').parent('ul').prev('li')); - $(backButton).remove(); - } -} - -/* - * Filter window reset function. - * @param backButton: Filter window reset button - */ -function resetNav(){ - $('#goBack').remove(); - $('#resetNav').remove(); - $(menuSubContainer).hide(); - $(menuContainer).show(); -} - -/* - * Find parent function. - * @param selection: Current asset parent search tag on search parent loop - */ -function getParent(selection){ - return $(menuContainer + ' [asset=' + $(selection).attr('asset') + ']').closest('ul').prev('li'); -} - -/* - * On filter select ad asset & its parents to search field. - * @param tag: Selected filter search tag - */ -function addTags(tag){ - var level = $(tag).attr('level'), - selection = tag, - content = '' + $(tag).find('.tag-name').html() + ' x'; - - if(level !== 1) { - for (var i = 1; i < level; i++) { - content = '' + $(getParent(selection)).find('.tag-name').html() + ' x' - +content; - - selection = getParent(selection); - } - $(tagsContainer).html(content); - } - addingIdentity(); -} - -/* - * On filter tags click remove asset & its child from search field. - * @param tag: Selected filter search tag - */ -function removeTags(tag){ - $(tag).nextAll('span').andSelf().each(function(){ - $($(menuContainer + ' [asset='+ $(this).attr('asset') +']')).removeClass('selected'); - $(this).remove(); - }); -} +/* + * 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. + */ + +/* + * Setting-up global variables. + */ +var menuButton = '.ctrl-asset-type-switcher', + menu = '.popover.menu', + deviceOptions = '#device-filter-options', + menuContainer = '#asset-select', + menuSubContainer = '#asset-selected', + menuItems = '#asset-select ul li', + tagsContainer = '.wr-search-tags', + searchField = '#search', + menuItemsID = 0, + prevSelected = 0; + +/* + * DOM ready functions. + */ +$(document).ready(function(){ + + /* Bind filter menu relationship on load */ + addingIdentity(); + + /* Bind filter select function to all assets on load */ + $(menuItems).each(function(){ + menuItemsID++; + $(this).attr({ + 'asset':menuItemsID, + 'onclick':'selectAsset(this)', + 'level': $(this).parents('ul').length + }); + }); +}); + +/* + * Bind filter window hide function to the document. + */ +$(document).bind('click', function(e) { + if($(e.target).attr('rel') !== 'assetfilter') { + $(menu).hide(); + } +}); + +/* + * On filter switch button click show filter option window. + */ +$(menuButton).click(function(e){ + e.stopPropagation(); + $(menu).toggle(); +}); + +/* + * On asset filter options window advance filter radio button change function + */ +$('#advance-filter-options input[type=radio]').change(function() { + if(this.value !== 'devices'){ + $(deviceOptions).hide(); + resetNav(); + $(tagsContainer).html(''); + } + else { + $(deviceOptions).show(); + } + + $(searchField).attr('data-placeholder', 'Search '+ this.value + ' ...'); +}); + +/* + * Update filter container. + * @param asset: Selected asset + */ +function containerUpdate(asset){ + var options = $(asset).next('ul').length ? $(asset).next('ul').html() : ""; + + $(menuSubContainer).html('' + '
    '+ options +'
'); + + prevSelected = ($(menuSubContainer + ' ul.selected li').attr('asset')); + + //$(menuSubContainer + ' ul.options li').length == 0 ? $(menuSubContainer + ' ul.options').hide() : + // + $(menuSubContainer + ' ul.options').show(); + + addingIdentity(); +} + +/* + * On asset click selecting filter. + * @param asset: Selected asset + */ +function selectAsset(asset){ + + console.log(this); + + $(tagsContainer +' span').each(function(){ + if($(this).attr('level') == $(asset).attr('level')){ + removeTags(this); + } + }); + + containerUpdate(asset); + + $(menuSubContainer).show(); + $(menuContainer).hide(); + + addTags(asset); +} + +/* + * Adding asset filtering relationship menu child elements. + */ +function addingIdentity(){ + $(menu).find('*').each(function(){ + $(this).attr('rel', 'assetfilter'); + }); + $(tagsContainer).find('*').each(function(){ + $(this).attr('rel', 'assetfilter'); + }); +} + +/* + * Filter window go back function. + * @param backButton: Filter window back button + */ +function goBack(backButton){ + if($(backButton).prev('li').attr('level') == 1){ + $(menuSubContainer).hide(); + $(menuContainer).show(); + } + else{ + containerUpdate($(menuContainer + ' [asset='+prevSelected+']').parent('ul').prev('li')); + $(backButton).remove(); + } +} + +/* + * Filter window reset function. + * @param backButton: Filter window reset button + */ +function resetNav(){ + $('#goBack').remove(); + $('#resetNav').remove(); + $(menuSubContainer).hide(); + $(menuContainer).show(); +} + +/* + * Find parent function. + * @param selection: Current asset parent search tag on search parent loop + */ +function getParent(selection){ + return $(menuContainer + ' [asset=' + $(selection).attr('asset') + ']').closest('ul').prev('li'); +} + +/* + * On filter select ad asset & its parents to search field. + * @param tag: Selected filter search tag + */ +function addTags(tag){ + var level = $(tag).attr('level'), + selection = tag, + content = '' + $(tag).find('.tag-name').html() + ' x'; + + if(level !== 1) { + for (var i = 1; i < level; i++) { + content = '' + $(getParent(selection)).find('.tag-name').html() + ' x' + +content; + + selection = getParent(selection); + } + $(tagsContainer).html(content); + } + addingIdentity(); +} + +/* + * On filter tags click remove asset & its child from search field. + * @param tag: Selected filter search tag + */ +function removeTags(tag){ + $(tag).nextAll('span').andSelf().each(function(){ + $($(menuContainer + ' [asset='+ $(this).attr('asset') +']')).removeClass('selected'); + $(this).remove(); + }); +} diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/bootstrap.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/bootstrap.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/bootstrap.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/bootstrap.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js similarity index 96% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js index c4d42ccfa3..cda9212d91 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/deviceview.js @@ -1,94 +1,94 @@ -/* - * 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. - */ - -/* - * Setting-up global variables. - */ -var deviceCheckbox = '#ast-container .ctrl-wr-asset .itm-select input[type="checkbox"]', - assetContainer = '#ast-container'; - -/* - * DOM ready functions. - */ -$(document).ready(function(){ - /* Adding selected class for selected devices */ - $(deviceCheckbox).each(function(){ - addDeviceSelectedClass(this); - }); -}); - -/* - * 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'); - } - else{ - $(checkbox).closest('.ctrl-wr-asset').removeClass('selected'); - } -} - -/* - * On device checkbox select add parent selected style class - */ -$(deviceCheckbox).click(function(){ - addDeviceSelectedClass(this); -}); +/* + * 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. + */ + +/* + * Setting-up global variables. + */ +var deviceCheckbox = '#ast-container .ctrl-wr-asset .itm-select input[type="checkbox"]', + assetContainer = '#ast-container'; + +/* + * DOM ready functions. + */ +$(document).ready(function(){ + /* Adding selected class for selected devices */ + $(deviceCheckbox).each(function(){ + addDeviceSelectedClass(this); + }); +}); + +/* + * 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'); + } + else{ + $(checkbox).closest('.ctrl-wr-asset').removeClass('selected'); + } +} + +/* + * On device checkbox select add parent selected style class + */ +$(deviceCheckbox).click(function(){ + addDeviceSelectedClass(this); +}); diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js similarity index 97% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js index 235cdbc8a3..8aff8f650f 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/html5shiv.min.js @@ -1,7 +1,7 @@ -/** - * Created by Sharon on 5/14/2015. - */ -/** - * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed - */ +/** + * Created by Sharon on 5/14/2015. + */ +/** + * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed + */ !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document); \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-1.11.2.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-1.11.2.min.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-1.11.2.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-1.11.2.min.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-ui.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-ui.js similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-ui.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery-ui.js diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js similarity index 99% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js index 18bdbed7f7..15baa006f0 100644 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/iotserver/units/theme/public/js/jquery.min.js @@ -1,5 +1,5 @@ -/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c) -},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n(" - {{/if}} - {{#if ../../../inDashboard}} -
- {{else}} -
- {{/if}} - - {{/hasAssetPermission}} - - - {{/with}} - {{/with}} + +
+ + {{#with assets}} + + + {{#with attributes}} +
+
+

{{../../rxt.singularLabel}} Details

+
+
+
+
+ +
+ +
+
+ {{> asset-thumbnail ..}} +
+
+
+

{{overview_name}}

+

{{t "Version"}} {{overview_version}}

+

{{t "by"}} {{overview_provider}}

+
+
+ ( {{../count}} ) + +
+
+
+ {{!#hasAssetPermission . key="ASSET_BOOKMARK" type=../../rxt.shortName username=../../cuser.username tenantId=../../cuser.tenantId}} + {{!>asset-utilization ../../..}} + {{!/hasAssetPermission}} + {{>assert-action-link ..}} + {{> asset-version-info ../..}} +
+
+
+ +
+
+
+

Summary

+

{{>overview .}}

+
+ {{>tags ../../.}} + {{>share ../..}} +
+
+
+
+ +
+
+ +
+
+
+ {{>overview .}} + {{>quick-startup-steps}} +
+
+
+
+ {{>hardware-setup ..}} +
+
+ + {{#hasAssetPermission . key="ASSET_REVIEWS" type=../../rxt.shortName username=../../cuser.username tenantId=../../cuser.tenantId}} +
+ {{#if ../../../features.social.enabled}} + + {{/if}} + {{#if ../../../inDashboard}} +
+ {{else}} +
+ {{/if}} +
+ {{/hasAssetPermission}} +
+
+ {{/with}} + {{/with}}
\ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/assets.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/assets.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/assets.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/assets.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/footer.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/footer.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/footer.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/footer.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/hardware-setup.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/hardware-setup.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/hardware-setup.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/hardware-setup.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/navigation.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/navigation.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/navigation.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/navigation.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/overview.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/overview.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/overview.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/overview.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/process-asset-text.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/process-asset-text.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/process-asset-text.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/process-asset-text.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/processed-asset-text.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/processed-asset-text.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/processed-asset-text.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/processed-asset-text.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/product-title.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/product-title.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/product-title.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/product-title.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/quick-startup-steps.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/quick-startup-steps.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/quick-startup-steps.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/quick-startup-steps.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/share.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/share.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/share.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/share.hbs diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/sort-assets.hbs b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/sort-assets.hbs similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/sort-assets.hbs rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/themes/store/partials/sort-assets.hbs diff --git a/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/workflows/asset_create.js b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/workflows/asset_create.js new file mode 100644 index 0000000000..813f5dd35f --- /dev/null +++ b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/jaggeryapps/store/extensions/assets/deviceType/workflows/asset_create.js @@ -0,0 +1,8 @@ +var log = new Log(); +var execute = function(req,res,session){ + log.info('Executing the Device-Type asset create '); +}; + +var process = function(req,res,session){ + log.info('Processing the Device-Type asset create'); +}; \ No newline at end of file diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf b/features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf similarity index 100% rename from features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf rename to features/device-mgt-iot-feature/org.wso2.carbon.device.mgt.iot.feature/src/main/resources/p2.inf diff --git a/features/device-mgt-iot/pom.xml b/features/device-mgt-iot-feature/pom.xml similarity index 100% rename from features/device-mgt-iot/pom.xml rename to features/device-mgt-iot-feature/pom.xml diff --git a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/pom.xml b/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/pom.xml deleted file mode 100644 index 8fad3d33bb..0000000000 --- a/features/device-mgt-iot/org.wso2.carbon.device.mgt.iot.feature/pom.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - org.wso2.carbon.devicemgt-plugins - device-mgt-iot-feature - 1.9.2-SNAPSHOT - ../pom.xml - - - 4.0.0 - org.wso2.carbon.device.mgt.iot.feature - pom - 1.9.2-SNAPSHOT - WSO2 Carbon - IoT Server - Features - http://wso2.org - This feature contains the core bundles required for IoT Server - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.api - war - - - - org.json.wso2 - json - - - - - org.igniterealtime.smack.wso2 - smack - - - org.igniterealtime.smack.wso2 - smackx - - - - net.sf.ehcache.wso2 - ehcache - 1.5.0.wso2v3 - - - - - - - - maven-resources-plugin - - - copy-resources - generate-resources - - copy-resources - - - src/main/resources - - - resources - - build.properties - p2.inf - - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy - package - - copy - - - - - org.wso2.carbon.devicemgt-plugins - org.wso2.carbon.device.mgt.iot.api - war - true - ${basedir}/src/main/resources/webapps/ - common.war - - - - - - - - org.wso2.maven - carbon-p2-plugin - - - p2-feature-generation - package - - p2-feature-gen - - - org.wso2.carbon.device.mgt.iot - ../../../features/etc/feature.properties - - - org.wso2.carbon.p2.category.type:server - org.eclipse.equinox.p2.type.group:false - - - - - org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot:${carbon.iot.device.mgt.version} - - - org.json.wso2:json:${commons-json.version} - - - org.igniterealtime.smack.wso2:smack:${smack.wso2.version} - - - org.igniterealtime.smack.wso2:smackx:${smackx.wso2.version} - - - net.sf.ehcache.wso2:ehcache - - - - org.wso2.carbon.core.server:${carbon.kernel.version} - org.wso2.carbon.device.mgt.server:${carbon.device.mgt.version} - - - - - - - - diff --git a/pom.xml b/pom.xml index b8c7f80f73..f1b1f1ee18 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ ~ 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 + ~ KIND, either express or implied. See the License for the ~ specific language governing permissions and limitations ~ under the License. --> @@ -41,7 +41,7 @@ components/device-mgt-mdm components/device-mgt-mdm-android components/device-mgt-mdm-windows - features/device-mgt-iot + features/device-mgt-iot-feature features/device-mgt-mdm features/device-mgt-mdm-android features/device-mgt-mdm-windows