Fixing device view page

merge-requests/7/head
Rasika Perera 8 years ago
parent c4a0ac4bf3
commit 135b6e8881

@ -1,482 +1,194 @@
{{unit "cdmf.unit.lib.qrcode"}} {{!
Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
WSO2 Inc. licenses this file to you under the Apache License,
Version 2.0 (the "License"); you may not use this file except
in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
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.
}}
{{#zone "content"}} {{#zone "content"}}
{{#if deviceFound}} {{#if deviceFound}}
{{#if isAuthorized}} {{#if isAuthorized}}
<h1 class="page-sub-title device-id device-select" <h1 class="page-sub-title device-id device-select" data-deviceid="{{device.deviceIdentifier}}"
data-deviceid="{{deviceView.deviceIdentifier}}" data-type="{{deviceView.deviceType}}" data-type="{{device.type}}">
data-ownership="{{deviceView.ownership}}"> Device {{device.name}}
Device {{deviceView.name}} {{#if device.viewModel.model}}
{{#if deviceView.model}}
<span class="lbl-device"> <span class="lbl-device">
( {{deviceView.vendor}} {{deviceView.model}} ) ( {{device.viewModel.vendor}} {{device.viewModel.model}} )
</span> </span>
{{/if}} {{/if}}
</h1> </h1>
<div class="row no-gutter add-padding-5x add-margin-top-5x" style="border: 1px solid #e4e4e4;"> <div class="row no-gutter add-padding-5x add-margin-top-5x" style="border: 1px solid #e4e4e4;">
<div class="media"> <div class="media">
<div id="device_overview">
<div class="media-left media-middle asset-image col-xs-2 col-sm-2 col-md-2 col-lg-2"> <div class="media-left media-middle asset-image col-xs-2 col-sm-2 col-md-2 col-lg-2">
<div class="thumbnail icon"><i class="square-element text fw fw-mobile"></i></div> <div class="thumbnail icon">
{{#defineZone "device-thumbnail"}}
<i class="square-element text fw fw-mobile"></i>
{{/defineZone}}
</div> </div>
<div class="media-body asset-desc add-padding-left-5x">
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">Device
Overview
</div> </div>
{{#defineZone "device-detail-properties"}} <div class="media-body asset-desc add-padding-left-5x">
<table class="table table-responsive table-striped" id="members"> <div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
<tbody> Device Overview - {{label}}</div>
{{#if deviceView.deviceIdentifier}} {{unit "cdmf.unit.device.overview-section" device=device}}
<tr role="row" class="odd"> {{#defineZone "operation-status"}}{{/defineZone}}
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Device ID</td> {{#defineZone "device-opetations"}}
<td style="padding:10px 15px;">{{deviceView.deviceIdentifier}}</td>
</tr>
{{/if}}
{{#if deviceView.name}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Name</td>
<td style="padding:10px 15px;">{{deviceView.name}}</td>
</tr>
{{/if}}
{{#if deviceView.vendor}}
{{#if deviceView.model}}
<tr role="row" class="odd">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Model</td>
<td style="padding:10px 15px;">{{deviceView.vendor}} {{deviceView.model}}</td>
</tr>
{{/if}}
{{/if}}
{{#if deviceView.status}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Status</td>
<td style="padding:10px 15px;">
{{#equal deviceView.status "ACTIVE"}}<span><i
class="fw fw-ok icon-success"></i>Active</span>{{/equal}}
{{#equal deviceView.status "INACTIVE"}}<span><i
class="fw fw-warning icon-warning"></i>Inactive</span>{{/equal}}
{{#equal deviceView.status "BLOCKED"}}<span><i
class="fw fw-remove icon-danger"></i>Blocked</span>{{/equal}}
{{#equal deviceView.status "REMOVED"}}<span><i
class="fw fw-delete icon-danger"></i>Removed</span>{{/equal}}
</td>
</tr>
{{/if}}
{{#if deviceView.owner}}
<tr role="row" class="odd">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Owner</td>
<td style="padding:10px 15px;">{{deviceView.owner}}</td>
</tr>
{{/if}}
{{#if deviceView.ownership}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Ownership</td>
<td style="padding:10px 15px;">{{deviceView.ownership}}</td>
</tr>
{{/if}}
{{#if deviceView.imei}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">IMEI</td>
<td style="padding:10px 15px;">{{deviceView.imei}}</td>
</tr>
{{/if}}
{{#if deviceView.udid}}
<tr role="row" class="odd">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">UDID</td>
<td style="padding:10px 15px;">{{deviceView.udid}}</td>
</tr>
{{/if}}
{{#if deviceView.osBuildDate}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Firmware Build
Date
</td>
<td style="padding:10px 15px;">{{deviceView.osBuildDate}}</td>
</tr>
{{/if}}
{{#if deviceView.phoneNumber}}
<tr role="row" class="odd">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Phone Number</td>
<td style="padding:10px 15px;">{{deviceView.phoneNumber}}</td>
</tr>
{{/if}}
{{#if deviceView.lastUpdatedTime}}
<tr role="row" class="even">
<td class="sorting_1" style="padding:10px 15px; width: 15%;">Last Update</td>
<td style="padding:10px 15px;">{{deviceView.lastUpdatedTime}}</td>
</tr>
{{/if}}
</tbody>
</table>
{{/defineZone}}
<div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px"> <div style="background: #11375B; color: #fff; padding: 10px; margin-bottom: 5px">
Operations Operations
</div> </div>
<div class="add-margin-top-4x"> <div class="add-margin-top-4x" style="height: 90px;">
{{unit "mdm.unit.device.operation-bar" deviceType=deviceView.deviceType ownership=deviceView.ownership}} {{unit "cdmf.unit.device.operation-bar" device=device}}
</div> </div>
{{/defineZone}}
</div> </div>
</div> </div>
<div class="media tab-responsive"> </div>
<div class="media-left col-xs-1 col-sm-1 col-md-2 col-lg-2 hidden-xs">
<ul class="list-group nav nav-pills nav-stacked" role="tablist"> {{#defineZone "device-detail-properties"}}
{{#if deviceView.isNotWindows}} <div class="media">
<li role="presentation" class="list-group-item active"> <div class="media-left col-xs-12 col-sm-2 col-md-2 col-lg-2">
<a href="#device_details_tab" role="tab" data-toggle="tab" <ul class="list-group" role="tablist">
aria-controls="device_details_tab"> <li class="active"><a class="list-group-item"
<i class="icon fw fw-mobile"></i><span class="hidden-sm">Device Details</span> href="#device_details"
</a> role="tab" data-toggle="tab"
</li> aria-controls="device_details">Device
{{/if}} Details</a>
{{#if deviceView.isNotWindows}}
<li role="presentation" class="list-group-item">
{{else}}
<li role="presentation" class="list-group-item active">
{{/if}}
<li role="presentation" class="list-group-item">
<a href="#policy_compliance_tab" role="tab" data-toggle="tab"
aria-controls="policy_compliance_tab">
<i class="icon fw fw-policy"></i><span class="hidden-sm">Policy Compliance</span>
</a>
</li> </li>
{{#if deviceView.isNotWindows}} <li><a class="list-group-item" href="#policies"
<li role="presentation" class="list-group-item"> role="tab"
<a href="#device_location_tab" role="tab" data-toggle="tab" data-toggle="tab" aria-controls="policies">Policies</a>
data-lat="{{deviceView.location.latitude}}"
data-long="{{deviceView.location.longitude}}"
aria-controls="device_location_tab">
<i class="icon fw fw-map-location"></i><span
class="hidden-sm">Device Location</span>
</a>
</li> </li>
<li role="presentation" class="list-group-item"> <li><a class="list-group-item" href="#policy_compliance"
<a href="#installed_applications_tab" role="tab" data-toggle="tab" role="tab"
aria-controls="installed_applications_tab"> data-toggle="tab" aria-controls="policy_compliance">Policy
<i class="icon fw fw-application"></i><span class="hidden-sm">Installed Applications</span> Compliance</a>
</a>
</li> </li>
{{/if}} <li><a class="list-group-item" href="#device_location"
{{#if deviceView.isNotRemoved}} role="tab"
data-toggle="tab" aria-controls="device_location">Device
<li role="presentation" class="list-group-item"> Location</a>
<a href="#event_log_tab" role="tab" data-toggle="tab"
aria-controls="event_log_tab">
<i class="icon fw fw-text"></i><span class="hidden-sm">Operations Log</span>
</a>
</li> </li>
<li><a class="list-group-item" href="#event_log" role="tab"
{{/if}} data-toggle="tab" aria-controls="event_log">Operations
Log</a></li>
</ul> </ul>
</div> </div>
{{#defineZone "device-detail-properties"}} <div class="media-body add-padding-left-5x remove-padding-xs tab-content">
<div class="media-body add-padding-left-5x remove-padding-xs"> <div class="panel-group tab-content">
<div class="panel-group tab-content remove-padding" id="tabs" data-status="{{deviceView.isNotRemoved}}"role="tablist"
aria-multiselectable="true">
<div class="arrow-left hidden-xs"></div>
{{#if deviceView.isNotWindows}} <div class="panel panel-default tab-pane active"
<div class="panel panel-default" role="tabpanel" id="device_details_tab"> id="device_details" role="tabpanel"
<div class="panel-heading visible-xs collapsed" id="device_details">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#tabs"
href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<i class="fw fw-mobile fw-2x"></i>
Device Details
<i class="caret-updown fw fw-down"></i>
</a>
</h4>
</div>
<div class="panel-heading display-none-xs">Device Details</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel"
aria-labelledby="device_details"> aria-labelledby="device_details">
<div class="panel-body "> {{unit "cdmf.unit.device.details" device=device}}
<div class="device-detail-body">
<!-- device summary -->
{{#equal deviceView.deviceType "windows"}}
<div class="message message-info">
<h4 class="remove-margin"><i class="icon fw fw-info"></i>Not
available yet</h4>
</div>
{{/equal}}
{{#if deviceView.deviceInfoAvailable}}
{{#if deviceView.BatteryLevel}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
<div class="col-md-12">
<div class="wr-stats-board-tile">
<div class="tile-name">BATTERY</div>
<div>
<div class="tile-icon"><i
class="fw fw-battery"></i></div>
<div class="tile-stats">
{{deviceView.BatteryLevel.value}} %
</div>
</div>
</div>
</div>
</div>
{{/if}}
<!--{{#if deviceView.cpuUsage}}-->
<!--<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">-->
<!--<div class="col-md-12">-->
<!--<div class="wr-stats-board-tile">-->
<!--<div class="tile-name">CPU Usage</div>-->
<!--<div>-->
<!--<div class="tile-icon"><i class="fw fw-dashboard"></i></div>-->
<!--<div class="tile-stats">-->
<!--{{deviceView.cpuUsage.value}} %-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<!--{{/if}}-->
{{#if deviceView.ramUsage}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
<div class="col-md-12">
<div class="wr-stats-board-tile">
<div class="tile-name">RAM Usage</div>
<div>
<div class="tile-icon"><i
class="fw fw-hardware"></i></div>
<div class="tile-stats">
{{deviceView.ramUsage.value}} %
</div>
</div>
</div>
</div>
</div>
{{/if}}
{{#if deviceView.internalMemory}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
<div class="col-md-12">
<div class="wr-stats-board-tile">
<div class="tile-name">Local Storage</div>
<div>
<div class="tile-icon"><i
class="fw fw-hdd"></i>
</div>
<div class="tile-stats">
{{deviceView.internalMemory.usage}} %
<span class="tile-stats-free">
TOTAL OF {{deviceView.internalMemory.total}} GB
</span>
</div>
</div>
</div>
</div>
</div>
{{/if}}
{{#if deviceView.externalMemory}}
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
<div class="col-md-12">
<div class="wr-stats-board-tile">
<div class="tile-name">External Storage</div>
<div>
<div class="tile-icon"><i
class="fw fw-usb-drive"></i></div>
<div class="tile-stats">
{{deviceView.externalMemory.usage}} %
<span class="tile-stats-free">
TOTAL OF {{deviceView.externalMemory.total}} GB
</span>
</div>
</div>
</div> </div>
<div class="panel panel-default tab-pane" id="policies" role="tabpanel"
aria-labelledby="policies">
<div class="panel-heading">Policies</div>
<div class="panel-body">
<div id="policy-spinner" class="wr-advance-operations-init hidden">
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policies . . .
<br>
<br>
</div> </div>
<div id="policy-list-container">
<div class="panel-body">
No policies found
</div> </div>
{{/if}} <br class="c-both" />
{{else}}
<div class="message message-info">
<h4 class="remove-margin">
<i class="icon fw fw-info"></i>
Battery, RAM and Storage related information are not
available yet.
</h4>
</div>
{{/if}}
</div>
</div> </div>
</div> </div>
<a class="padding-left"
href="{{@app.context}}/policy/add/{{device.type}}?deviceId={{device.deviceIdentifier}}">
<span class="fw-stack">
<i class="fw fw-ring fw-stack-2x"></i>
<i class="fw fw-policy fw-stack-1x"></i>
</span> Add device specific policy</a>
</div> </div>
{{/if}}
<div class="panel panel-default visible-xs-block" role="tabpanel" <div class="panel panel-default tab-pane" id="policy_compliance"
id="policy_compliance_tab"> role="tabpanel" aria-labelledby="policy_compliance">
<div class="panel-heading visible-xs collapsed" id="policy_compliance"> <div class="panel-heading">Policy Compliance <span><a
<h4 class="panel-title"> href="#" id="refresh-policy"><i
<a role="button" class="fw fw-refresh"></i></a></span></div>
data-toggle="collapse" data-parent="#tabs" href="#collapseTwo" <div class="panel-body">
aria-expanded="true" aria-controls="collapseTwo">
<i class="fw fw-policy fw-2x"></i>
Policy Compliance
<i class="caret-updown fw fw-down"></i>
</a>
</h4>
</div>
<div class="panel-heading display-none-xs">
Policy Compliance
<span>
<a href="javascript:void(0);" id="refresh-policy">
<i class="fw fw-refresh"></i>
</a>
</span>
</div>
<div id="collapseTwo" class="panel-collapse collapse in" role="tabpanel"
aria-labelledby="policy_compliance">
<div class="panel-body ">
<span class="visible-xs add-padding-2x text-right">
<a href="javascript:void(0);" id="refresh-policy">
<i class="fw fw-refresh"></i>
</a>
</span>
<div id="policy-spinner" <div id="policy-spinner"
class="wr-advance-operations-init add-padding-bottom-2x add-padding-bottom-4x hidden"> class="wr-advance-operations-init hidden">
<i class="fw fw-settings fw-spin fw-2x"></i>Loading Policy <br>
Compliance... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i>
&nbsp;&nbsp;&nbsp;
Loading Policy Compliance . . .
<br>
<br>
</div> </div>
<div id="policy-list-container"> <div id="policy-list-container">
</div>
</div>
</div>
</div>
<div class="panel panel-default visible-xs-block" role="tabpanel"
id="device_location_tab">
<div class="panel-heading visible-xs collapsed" id="device_location">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#tabs"
href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">
<i class="fw fw-map-location fw-2x"></i>
Device Location
<i class="caret-updown fw fw-down"></i>
</a>
</h4>
</div>
<div class="panel-heading display-none-xs">Device Location</div>
<div id="collapseThree" class="panel-collapse collapse in" role="tabpanel"
aria-labelledby="device_location">
<div class="panel-body"> <div class="panel-body">
{{#if deviceView.location}} Not available yet
<div id="device-location"
data-lat="{{deviceView.location.latitude}}"
data-long="{{deviceView.location.longitude}}">
</div>
{{else}}
<div id="map-error" class="message message-warning">
<h4 class="remove-margin">
<i class="icon fw fw-warning"></i>
Device location information is not available.
</h4>
</div>
<p class="add-padding-5x"></p>
<p class="add-padding-5x"></p>
<p class="add-padding-5x"></p>
{{/if}}
</div>
</div> </div>
<br class="c-both" />
</div> </div>
<div class="panel panel-default visible-xs-block" role="tabpanel"
id="installed_applications_tab">
<div class="panel-heading visible-xs collapsed" id="installed_applications">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#tabs"
href="#collapseFour" aria-expanded="true" aria-controls="collapseFour">
<i class="fw fw-application fw-2x"></i>
Installed Applications
<i class="caret-updown fw fw-down"></i>
</a>
</h4>
</div> </div>
<div class="panel-heading display-none-xs">
Installed Applications
<span>
<a href="javascript:void(0);" id="refresh-apps">
<i class="fw fw-refresh"></i>
</a>
</span>
</div> </div>
<div id="collapseFour" class="panel-collapse collapse in" role="tabpanel" <div class="panel panel-default tab-pane" id="device_location"
aria-labelledby="installed_applications"> role="tabpanel" aria-labelledby="device_location">
<div class="panel-heading">Device Location</div>
<div class="panel-body"> <div class="panel-body">
<span class="visible-xs add-padding-2x text-right"> <div id="device-location"
<a href="javascript:void(0);" id="refresh-apps"> data-lat="{{device.viewModel.location.latitude}}"
<i class="fw fw-refresh"></i> data-long="{{device.viewModel.location.longitude}}"
</a> style="height:450px" class="panel-body">
</span>
<div id="apps-spinner" class="wr-advance-operations-init hidden">
<i class="fw fw-settings fw-spin fw-2x"></i> Loading Applications
List...
</div>
<div id="applications-list-container">
<div class="message message-info">
<h4>
<i class="icon fw fw-info"></i>
No applications found.
</h4>
<p>Please try refreshing in a while.</p>
</div>
</div>
</div>
</div> </div>
<div id="map-error" class="panel-body">
Not available yet
</div> </div>
<div class="panel panel-default visible-xs-block" role="tabpanel" id="event_log_tab"> <br class="c-both" />
<div class="panel-heading visible-xs collapsed" id="event_log">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#tabs"
href="#collapseFive" aria-expanded="true" aria-controls="collapseFive">
<i class="fw fw-text fw-2x"></i>
Operations Log
<i class="caret-updown fw fw-down"></i>
</a>
</h4>
</div> </div>
<div class="panel-heading display-none-xs">
Operations Log
<span>
<a href="javascript:void(0);" id="refresh-operations">
<i class="fw fw-refresh"></i>
</a>
</span>
</div> </div>
<div id="collapseFive" class="panel-collapse collapse in" role="tabpanel" <div class="panel panel-default tab-pane" id="event_log"
aria-labelledby="event_log"> role="tabpanel" aria-labelledby="event_log">
<div class="panel-heading">Operations Log <span><a href="#"
id="refresh-operations"><i
class="fw fw-refresh"></i></a></span></div>
<div class="panel-body"> <div class="panel-body">
<span class="visible-xs add-padding-2x text-right"> <div id="operations-spinner"
<a href="javascript:void(0);" id="refresh-operations"> class="wr-advance-operations-init hidden">
<i class="fw fw-refresh"></i> <br>
</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span> <i class="fw fw-settings fw-spin fw-2x"></i>
<div id="operations-spinner" class="wr-advance-operations-init hidden"> &nbsp;&nbsp;&nbsp;
<i class="fw fw-settings fw-spin fw-2x"></i> Loading Operations Log... Loading Operations Log . . .
<br>
<br>
</div> </div>
<div id="operations-log-container"> <div id="operations-log-container">
<div class="message message-info"> <div class="panel-body">
<h4 class="remove-margin"> Not available yet
<i class="icon fw fw-info"></i>
There are no operations, performed yet on this device.
</h4>
</div> </div>
<br class="c-both" />
</div> </div>
<table class="table table-striped table-hover table-bordered display data-table"
id="operations-log-table">
<thead>
<tr class="sort-row">
<th>Operation Code</th>
<th>Status</th>
<th>Request created at</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{{/defineZone}} {{/defineZone}}
</div> </div>
</div>
{{else}} {{else}}
<h1 class="page-sub-title"> <h1 class="page-sub-title">
Permission Denied Permission Denied
@ -493,21 +205,17 @@
{{/if}} {{/if}}
{{/zone}} {{/zone}}
{{#zone "bottomJs"}} {{#zone "bottomJs"}}
{{#if isAuthorized}} {{js "js/device-view.js"}}
<!--suppress HtmlUnknownTarget -->
<script id="policy-view" src="{{@unit.publicUri}}/templates/policy-compliance.hbs" <script id="policy-view" src="{{@unit.publicUri}}/templates/policy-compliance.hbs"
data-device-id="{{deviceView.deviceIdentifier}}" data-device-type="{{deviceView.deviceType}}" data-device-id="{{device.deviceIdentifier}}" data-device-type="{{device.type}}"
type="text/x-handlebars-template"></script>
<script id="policy-list" src="{{@unit.publicUri}}/templates/policy-list.hbs"
data-device-id="{{device.deviceIdentifier}}" data-device-type="{{device.type}}"
type="text/x-handlebars-template"></script> type="text/x-handlebars-template"></script>
<!--suppress HtmlUnknownTarget -->
<script id="applications-list" src="{{@unit.publicUri}}/templates/applications-list.hbs" <script id="applications-list" src="{{@unit.publicUri}}/templates/applications-list.hbs"
data-device-id="{{deviceView.deviceIdentifier}}" data-device-type="{{deviceView.deviceType}}" data-device-id="{{device.deviceIdentifier}}" data-device-type="{{device.type}}"
type="text/x-handlebars-template"></script> type="text/x-handlebars-template"></script>
<!--suppress HtmlUnknownTarget -->
<script id="operations-log" src="{{@unit.publicUri}}/templates/operations-log.hbs" <script id="operations-log" src="{{@unit.publicUri}}/templates/operations-log.hbs"
data-device-id="{{deviceView.deviceIdentifier}}" data-device-type="{{deviceView.deviceType}}" data-device-id="{{device.deviceIdentifier}}" data-device-type="{{device.type}}"
type="text/x-handlebars-template"></script> type="text/x-handlebars-template"></script>
{{js "js/device-detail.js"}}
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
{{js "js/load-map.js"}}
{{/if}}
{{/zone}} {{/zone}}

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
* *
* WSO2 Inc. licenses this file to you under the Apache License, * WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except * Version 2.0 (the "License"); you may not use this file except
@ -10,109 +10,202 @@
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* KIND, either express or implied. See the License for the * either express or implied. See the License for the
* specific language governing permissions and limitations * specific language governing permissions and limitations
* under the License. * under the License.
*/ */
function onRequest(context) { function onRequest(context) {
var log = new Log("detail.js"); var log = new Log("cdmf.unit.device.view/view.js");
var deviceType = context.uriParams.deviceType; var deviceType = context["uriParams"]["deviceType"];
var deviceId = request.getParameter("id"); var deviceId = request.getParameter("id");
var deviceViewData = {};
if (deviceType != null && deviceType != undefined && deviceId != null && deviceId != undefined) { if (deviceType && deviceId) {
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"]; var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
var device = deviceModule.viewDevice(deviceType, deviceId)["content"]; var response = deviceModule.viewDevice(deviceType, deviceId);
if (response["status"] == "success") {
deviceViewData["deviceFound"] = true;
deviceViewData["isAuthorized"] = true;
var filteredDeviceData = response["content"];
if (device) { // creating deviceView information model from filtered device data
var viewModel = {}; var viewModel = {};
var deviceInfo = (device.properties) ? device.properties.DEVICE_INFO : null; if (filteredDeviceData["type"]) {
if (deviceInfo != undefined && String(deviceInfo.toString()).length > 0) { viewModel["deviceType"] = filteredDeviceData["type"];
deviceInfo = parse(stringify(deviceInfo)); viewModel.isNotWindows = true;
if (device.type == "ios") { if (viewModel["deviceType"] == "windows") {
deviceInfo = parse(deviceInfo); viewModel.isNotWindows = false;
viewModel.imei = device.properties.IMEI; }
viewModel.phoneNumber = deviceInfo.PhoneNumber; }
viewModel.udid = deviceInfo.UDID; if (filteredDeviceData["deviceIdentifier"]) {
viewModel.BatteryLevel = Math.round(deviceInfo.BatteryLevel * 100); viewModel["deviceIdentifier"] = filteredDeviceData["deviceIdentifier"];
viewModel.DeviceCapacity = Math.round(deviceInfo.DeviceCapacity * 100) / 100; }
viewModel.AvailableDeviceCapacity = Math.round(deviceInfo.AvailableDeviceCapacity * 100) / 100; if (filteredDeviceData["name"]) {
viewModel.DeviceCapacityUsed = Math.round((viewModel.DeviceCapacity viewModel["name"] = filteredDeviceData["name"];
- viewModel.AvailableDeviceCapacity) * 100) / 100; }
viewModel.DeviceCapacityPercentage = Math.round(viewModel.AvailableDeviceCapacity if (filteredDeviceData["enrolmentInfo"]) {
/ viewModel.DeviceCapacity * 10000) / 100; if (filteredDeviceData["enrolmentInfo"]["status"]) {
viewModel.location = { viewModel["status"] = filteredDeviceData["enrolmentInfo"]["status"];
latitude: device.properties.LATITUDE, viewModel.isActive = false ;
longitude: device.properties.LONGITUDE viewModel.isNotRemoved = true;
}; if (filteredDeviceData["enrolmentInfo"]["status"]== "ACTIVE") {
} else if (device.type == "android") { viewModel.isActive = true ;
viewModel.imei = device.properties.IMEI; }
viewModel.model = device.properties.DEVICE_MODEL; if (filteredDeviceData["enrolmentInfo"]["status"]== "REMOVED") {
viewModel.vendor = device.properties.VENDOR; viewModel.isNotRemoved = false ;
viewModel.internal_memory = {}; }
viewModel.external_memory = {}; }
viewModel.location = { if (filteredDeviceData["enrolmentInfo"]["owner"]) {
latitude: device.properties.LATITUDE, viewModel["owner"] = filteredDeviceData["enrolmentInfo"]["owner"];
longitude: device.properties.LONGITUDE }
}; if (filteredDeviceData["enrolmentInfo"]["ownership"]) {
var info = {}; viewModel["ownership"] = filteredDeviceData["enrolmentInfo"]["ownership"];
var infoList = parse(deviceInfo); }
if (infoList != null && infoList != undefined) { }
for (var j = 0; j < infoList.length; j++) { if (filteredDeviceData["initialDeviceInfo"]) {
info[infoList[j].name] = infoList[j].value; viewModel["deviceInfoAvailable"] = true;
} if (filteredDeviceData["initialDeviceInfo"]["IMEI"]) {
} viewModel["imei"] = filteredDeviceData["initialDeviceInfo"]["IMEI"];
deviceInfo = info; }
viewModel.BatteryLevel = deviceInfo.BATTERY_LEVEL; if (!filteredDeviceData["latestDeviceInfo"]) {
viewModel.internal_memory.FreeCapacity = Math.round(deviceInfo.INTERNAL_AVAILABLE_MEMORY * 100)/100; if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"]) {
viewModel.internal_memory.DeviceCapacityPercentage = Math.round(deviceInfo.INTERNAL_AVAILABLE_MEMORY if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] != "0") {
/ deviceInfo.INTERNAL_TOTAL_MEMORY * 10000) / 100; viewModel["osBuildDate"] = new Date(filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] * 1000);
viewModel.external_memory.FreeCapacity = Math.round(deviceInfo.EXTERNAL_AVAILABLE_MEMORY * 100) / 100; }
viewModel.external_memory.DeviceCapacityPercentage = Math.round(deviceInfo.EXTERNAL_AVAILABLE_MEMORY }
/ deviceInfo.EXTERNAL_TOTAL_MEMORY * 10000) / 100; if (filteredDeviceData["initialDeviceInfo"]["LATITUDE"] && filteredDeviceData["initialDeviceInfo"]["LONGITUDE"]) {
} else if (device.type == "windows") { viewModel["location"] = {};
viewModel.imei = device.properties.IMEI; viewModel["location"]["latitude"] = filteredDeviceData["initialDeviceInfo"]["LATITUDE"];
viewModel.model = device.properties.DEVICE_MODEL; viewModel["location"]["longitude"] = filteredDeviceData["initialDeviceInfo"]["LONGITUDE"];
viewModel.vendor = device.properties.VENDOR; }
viewModel.internal_memory = {}; if (filteredDeviceData["initialDeviceInfo"]["VENDOR"] && filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"]) {
viewModel.external_memory = {}; viewModel["vendor"] = filteredDeviceData["initialDeviceInfo"]["VENDOR"];
viewModel.location = { viewModel["model"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"];
latitude: device.properties.LATITUDE, }
longitude: device.properties.LONGITUDE if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]) {
}; if (deviceType == "android") {
/*var info = {}; viewModel["BatteryLevel"] = {};
if (deviceInfo != null && deviceInfo != undefined){ viewModel["BatteryLevel"]["value"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BATTERY_LEVEL"];
var infoList = parse(deviceInfo);
if (infoList != null && infoList != undefined) { viewModel["internalMemory"] = {};
for (var j = 0; j < infoList.length; j++) { viewModel["internalMemory"]["total"] = Math.
info[infoList[j].name] = infoList[j].value; round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 100) / 100;
} if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] != 0) {
} viewModel["internalMemory"]["usage"] = Math.
deviceInfo = info; round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] -
viewModel.BatteryLevel = deviceInfo.BATTERY_LEVEL; filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_AVAILABLE_MEMORY"])
viewModel.internal_memory.FreeCapacity = Math.round((deviceInfo.INTERNAL_TOTAL_MEMORY - / filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 10000) / 100;
deviceInfo.INTERNAL_AVAILABLE_MEMORY) * 100) / 100; } else {
viewModel.internal_memory.DeviceCapacityPercentage = Math.round(deviceInfo.INTERNAL_AVAILABLE_MEMORY viewModel["internalMemory"]["usage"] = 0;
/ deviceInfo.INTERNAL_TOTAL_MEMORY * 10000) / 100; }
viewModel.external_memory.FreeCapacity = Math.round((deviceInfo.EXTERNAL_TOTAL_MEMORY -
deviceInfo.EXTERNAL_AVAILABLE_MEMORY) * 100) / 100; viewModel["externalMemory"] = {};
viewModel.external_memory.DeviceCapacityPercentage = Math.round(deviceInfo.EXTERNAL_AVAILABLE_MEMORY viewModel["externalMemory"]["total"] = Math.
/ deviceInfo.EXTERNAL_TOTAL_MEMORY * 10000) / 100; round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 100) / 100;
}*/ if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] != 0) {
}else if (device.type == "TemperatureController") { viewModel["externalMemory"]["usage"] = Math.
viewModel.system = device.properties.IMEI; round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] -
viewModel.machine = device.properties.DEVICE_MODEL; filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_AVAILABLE_MEMORY"])
viewModel.vendor = device.properties.VENDOR; / filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 10000) / 100;
viewModel.internal_memory = {}; } else {
viewModel.external_memory = {}; viewModel["externalMemory"]["usage"] = 0;
}
device.viewModel = viewModel;
} }
} else if (deviceType == "ios") {
viewModel["BatteryLevel"] = {};
viewModel["BatteryLevel"]["value"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BatteryLevel"];
viewModel["internalMemory"] = {};
viewModel["internalMemory"]["total"] = Math.
round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] * 100) / 100;
if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] != 0) {
viewModel["internalMemory"]["usage"] = Math.
round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] -
filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["AvailableDeviceCapacity"])
/ filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["DeviceCapacity"] * 10000) / 100;
} else {
viewModel["internalMemory"]["usage"] = 0;
}
}
}
}
}
if (filteredDeviceData["latestDeviceInfo"]) {
viewModel["deviceInfoAvailable"] = true;
if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"]) {
if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"] != "0") {
viewModel["osBuildDate"] = new Date(filteredDeviceData["latestDeviceInfo"]["osBuildDate"] * 1000);
}
}
if (filteredDeviceData["latestDeviceInfo"]["location"]["latitude"] &&
filteredDeviceData["latestDeviceInfo"]["location"]["longitude"]) {
viewModel["location"] = {};
viewModel["location"]["latitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["latitude"];
viewModel["location"]["longitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["longitude"];
}
if (filteredDeviceData["latestDeviceInfo"]["vendor"] && filteredDeviceData["latestDeviceInfo"]["deviceModel"]) {
viewModel["vendor"] = filteredDeviceData["latestDeviceInfo"]["vendor"];
viewModel["model"] = filteredDeviceData["latestDeviceInfo"]["deviceModel"];
}
if (filteredDeviceData["latestDeviceInfo"]["updatedTime"]) {
viewModel["lastUpdatedTime"] = filteredDeviceData["latestDeviceInfo"]["updatedTime"].
substr(0, filteredDeviceData["latestDeviceInfo"]["updatedTime"].indexOf("+"));
} }
viewModel["BatteryLevel"] = {};
viewModel["BatteryLevel"]["value"] = filteredDeviceData["latestDeviceInfo"]["batteryLevel"];
var utility = require("/app/modules/utility.js").utility; viewModel["cpuUsage"] = {};
var configs = utility.getDeviceTypeConfig(deviceType); viewModel["cpuUsage"]["value"] = filteredDeviceData["latestDeviceInfo"]["cpuUsage"];
return {"device": device, "label" : configs["deviceType"]["label"]};
viewModel["ramUsage"] = {};
if (filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] != 0) {
viewModel["ramUsage"]["value"] = Math.
round((filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] -
filteredDeviceData["latestDeviceInfo"]["availableRAMMemory"])
/ filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] * 10000) / 100;
} else {
viewModel["ramUsage"]["value"] = 0;
}
viewModel["internalMemory"] = {};
viewModel["internalMemory"]["total"] = Math.
round(filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 100) / 100;
if (filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] != 0) {
viewModel["internalMemory"]["usage"] = Math.
round((filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] -
filteredDeviceData["latestDeviceInfo"]["internalAvailableMemory"])
/ filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 10000) / 100;
} else {
viewModel["internalMemory"]["usage"] = 0;
}
viewModel["externalMemory"] = {};
viewModel["externalMemory"]["total"] = Math.
round(filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 100) / 100;
if (filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] != 0) {
viewModel["externalMemory"]["usage"] = Math.
round((filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] -
filteredDeviceData["latestDeviceInfo"]["externalAvailableMemory"])
/ filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 10000) / 100;
} else {
viewModel["externalMemory"]["usage"] = 0;
}
}
if (!filteredDeviceData["initialDeviceInfo"] && !filteredDeviceData["latestDeviceInfo"]) {
viewModel["deviceInfoAvailable"] = false;
}
deviceViewData["deviceView"] = viewModel;
} else if (response["status"] == "unauthorized") {
deviceViewData["deviceFound"] = true;
deviceViewData["isAuthorized"] = false;
} else if (response["status"] == "notFound") {
deviceViewData["deviceFound"] = false;
}
} else {
deviceViewData["deviceFound"] = false;
} }
log.error(deviceViewData);
return deviceViewData;
} }
Loading…
Cancel
Save