照明設備開關 bug 修正
This commit is contained in:
parent
605f3f8f87
commit
4e96375be4
@ -6,29 +6,23 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Modal center Add -->
|
<!-- Modal center Add -->
|
||||||
<div
|
<div class="modal fade"
|
||||||
class="modal fade"
|
|
||||||
id="lightSchModal"
|
id="lightSchModal"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
role="dialog"
|
role="dialog"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
data-backdrop="static"
|
data-backdrop="static"
|
||||||
data-keyboard="false"
|
data-keyboard="false">
|
||||||
>
|
<div class="modal-dialog modal-dialog-centered"
|
||||||
<div
|
|
||||||
class="modal-dialog modal-dialog-centered"
|
|
||||||
role="document"
|
role="document"
|
||||||
style="min-width: 60%"
|
style="min-width: 60%">
|
||||||
>
|
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">燈控排程</h4>
|
<h4 class="modal-title">燈控排程</h4>
|
||||||
<button
|
<button type="button"
|
||||||
type="button"
|
|
||||||
class="close"
|
class="close"
|
||||||
data-dismiss="modal"
|
data-dismiss="modal"
|
||||||
aria-label="Close"
|
aria-label="Close">
|
||||||
>
|
|
||||||
<span aria-hidden="true"><i class="fal fa-times"></i></span>
|
<span aria-hidden="true"><i class="fal fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -59,6 +53,7 @@
|
|||||||
var forgeInvTypeDef = null;
|
var forgeInvTypeDef = null;
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
$(loadEle).Loading("start");
|
||||||
getBuildMenu((arr, data) => {
|
getBuildMenu((arr, data) => {
|
||||||
buildMenuData = data;
|
buildMenuData = data;
|
||||||
if (arr.indexOf(4) != -1) {
|
if (arr.indexOf(4) != -1) {
|
||||||
@ -162,15 +157,31 @@
|
|||||||
if (lightOn) {
|
if (lightOn) {
|
||||||
setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
|
setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
|
||||||
// changeColorForHotspot(matchDevice.spriteDbid, null, true)
|
// changeColorForHotspot(matchDevice.spriteDbid, null, true)
|
||||||
lightOnHotColorArr.push(matchDevice.spriteDbid);
|
if (
|
||||||
|
!lightOnHotColorArr.some(
|
||||||
|
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
lightOnHotColorArr.push(matchDevice);
|
||||||
|
}
|
||||||
|
lightOffHotColorArr = lightOffHotColorArr.filter(
|
||||||
|
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
||||||
|
);
|
||||||
heatMap?.changeTemp(matchDevice.device_number, 40);
|
heatMap?.changeTemp(matchDevice.device_number, 40);
|
||||||
} else {
|
} else {
|
||||||
setLightValues(matchDevice.device_guid, 0, 0xffffff);
|
setLightValues(matchDevice.device_guid, 0, 0xffffff);
|
||||||
// changeColorForHotspot(matchDevice.spriteDbid)
|
// changeColorForHotspot(matchDevice.spriteDbid)
|
||||||
|
if (
|
||||||
|
!lightOffHotColorArr.some(
|
||||||
|
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
lightOffHotColorArr.push(matchDevice);
|
||||||
|
}
|
||||||
lightOnHotColorArr = lightOnHotColorArr.filter(
|
lightOnHotColorArr = lightOnHotColorArr.filter(
|
||||||
(light) => light !== matchDevice.spriteDbid
|
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
||||||
);
|
);
|
||||||
lightOffHotColorArr.push(matchDevice.spriteDbid);
|
|
||||||
heatMap?.changeTemp(matchDevice.device_number, 0);
|
heatMap?.changeTemp(matchDevice.device_number, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -187,7 +198,6 @@
|
|||||||
? parseInt(data.value)
|
? parseInt(data.value)
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
data.point_name == norDevPoiName &&
|
data.point_name == norDevPoiName &&
|
||||||
data.value == matchDevice.device_normal_point_value
|
data.value == matchDevice.device_normal_point_value
|
||||||
@ -211,9 +221,24 @@
|
|||||||
.attr("data-light-type", "error")
|
.attr("data-light-type", "error")
|
||||||
.data("light-type", "error");
|
.data("light-type", "error");
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
allDevList.length ===
|
||||||
|
lightOnHotColorArr.length + lightOffHotColorArr.length
|
||||||
|
) {
|
||||||
|
changeColorForHotspot(
|
||||||
|
lightOnHotColorArr.map(({ spriteDbid }) => spriteDbid),
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
changeColorForHotspot(
|
||||||
|
lightOffHotColorArr.map(({ spriteDbid }) => spriteDbid),
|
||||||
|
null,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
$(loadEle).Loading("close");
|
||||||
|
|
||||||
changeColorForHotspot(lightOnHotColorArr, null, true);
|
|
||||||
changeColorForHotspot(lightOffHotColorArr, null, false);
|
|
||||||
setLightColor();
|
setLightColor();
|
||||||
setForgeHotSpotColor(matchDevice);
|
setForgeHotSpotColor(matchDevice);
|
||||||
lightDevForgeSpotLig(matchDevice);
|
lightDevForgeSpotLig(matchDevice);
|
||||||
@ -342,43 +367,32 @@
|
|||||||
$.each(floObj.device_list, (index2, devObj) => {
|
$.each(floObj.device_list, (index2, devObj) => {
|
||||||
allDevList.push(devObj);
|
allDevList.push(devObj);
|
||||||
let devItem = getRiserPoiObj();
|
let devItem = getRiserPoiObj();
|
||||||
strHtml += `<div class="card m-1 border device-wrap" data-number="${
|
strHtml += `<div class="card m-1 border device-wrap" data-number="${devObj.device_number
|
||||||
devObj.device_number
|
|
||||||
}" data-position="${position}">
|
}" data-position="${position}">
|
||||||
<div class="card-body p-2">
|
<div class="card-body p-2">
|
||||||
<div class="d-flex mb-2">
|
<div class="d-flex mb-2">
|
||||||
<div class="mr-5 cur-poi">
|
<div class="mr-5 cur-poi">
|
||||||
<span class="d-inline-block mr-3">
|
<span class="d-inline-block mr-3">
|
||||||
<img src="${
|
<img src="${baseImgUrl +
|
||||||
baseImgUrl +
|
|
||||||
varPathDevIcon +
|
varPathDevIcon +
|
||||||
devObj.device_image
|
devObj.device_image
|
||||||
}" class="profile-image rounded-circle" onerror="defDev(this)" alt="...">
|
}" class="profile-image rounded-circle" onerror="defDev(this)" alt="...">
|
||||||
</span>
|
</span>
|
||||||
<a name="devItemName" data-number="${
|
<a name="devItemName" data-number="${devObj.device_number
|
||||||
devObj.device_number
|
}" href="javascript:;">${devObj.full_name
|
||||||
}" href="javascript:;">${
|
|
||||||
devObj.full_name
|
|
||||||
}</a>
|
}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex mb-0 mt-2 align-items-center">
|
<div class="d-flex mb-0 mt-2 align-items-center">
|
||||||
<span id="${
|
<span id="${devObj.device_number
|
||||||
devObj.device_number
|
|
||||||
}_status" class="circle-light"></span>
|
}_status" class="circle-light"></span>
|
||||||
<span class="${
|
<span class="${devItem ? "" : "d-none"
|
||||||
devItem ? "" : "d-none"
|
} ml-2">${devItem?.full_name
|
||||||
} ml-2">${
|
}:<span name="devItemPoiVal" data-point="${devItem?.points
|
||||||
devItem?.full_name
|
|
||||||
}:<span name="devItemPoiVal" data-point="${
|
|
||||||
devItem?.points
|
|
||||||
}"></span>${devItem?.unit}</span>
|
}"></span>${devItem?.unit}</span>
|
||||||
<a href="javascript:;" name="devItem" data-id="${
|
<a href="javascript:;" name="devItem" data-id="${devObj.device_guid
|
||||||
devObj.device_guid
|
}" data-number="${devObj.device_number
|
||||||
}" data-number="${
|
}" data-name="${devObj.full_name
|
||||||
devObj.device_number
|
|
||||||
}" data-name="${
|
|
||||||
devObj.full_name
|
|
||||||
}" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a>
|
}" class=" ml-2 mb-0 " data-toggle="tooltip" title="默认的 Tooltip">詳細資料</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -511,12 +525,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function show3DModel(urn) {
|
function show3DModel(urn) {
|
||||||
$(loadEle).Loading("start");
|
|
||||||
launchViewerForHotspot(
|
launchViewerForHotspot(
|
||||||
urn,
|
urn,
|
||||||
(viewer, nodeIds) => {
|
(viewer, nodeIds) => {
|
||||||
// 隱藏 toolbar
|
// 隱藏 toolbar
|
||||||
// document.querySelector("#guiviewer3d-toolbar").style.display = "none";
|
document.querySelector("#guiviewer3d-toolbar").style.display = "none";
|
||||||
let devDbIds = allDevList.map((x) => x.forge_dbid);
|
let devDbIds = allDevList.map((x) => x.forge_dbid);
|
||||||
// 大類
|
// 大類
|
||||||
let subDevDbId = [];
|
let subDevDbId = [];
|
||||||
@ -534,11 +547,11 @@
|
|||||||
setInviForge(forgeInvTypeDef, [...devDbIds, ...subDevDbId]);
|
setInviForge(forgeInvTypeDef, [...devDbIds, ...subDevDbId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$(loadEle).Loading("close");
|
|
||||||
let sensorObjs = [];
|
let sensorObjs = [];
|
||||||
let devices = [];
|
let devices = [];
|
||||||
if (pageAct.sysSubTag === "M12") {
|
if (pageAct.sysSubTag === "M12") {
|
||||||
addHotPoint(viewer);
|
addHotPoint(viewer);
|
||||||
|
Forge3DSensor.sensorTimes = 0;
|
||||||
allDevList.forEach((device) => {
|
allDevList.forEach((device) => {
|
||||||
Forge3DSensor.sensorTimes++;
|
Forge3DSensor.sensorTimes++;
|
||||||
const sensorObj = new Forge3DSensor({
|
const sensorObj = new Forge3DSensor({
|
||||||
@ -670,9 +683,7 @@
|
|||||||
getE1NodeId(viewer);
|
getE1NodeId(viewer);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
() => {
|
() => { },
|
||||||
$(loadEle).Loading("close");
|
|
||||||
},
|
|
||||||
"[name=forgeViewer]"
|
"[name=forgeViewer]"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
getHotspotPoint(() => {
|
getHotspotPoint(() => {
|
||||||
show3DModel(pageAct.urn);
|
show3DModel(pageAct.urn);
|
||||||
});
|
});
|
||||||
if (!tempSubTag.includes(pageAct.sysSubTag)) {
|
if (tempSubTag.includes(pageAct.sysSubTag)) {
|
||||||
$("#topLight").html(setTopLight());
|
$("#topLight").html(setTopLight());
|
||||||
setLightColor();
|
setLightColor();
|
||||||
}
|
}
|
||||||
@ -573,7 +573,13 @@
|
|||||||
if (lightOn && matchDevice.spriteDbid) {
|
if (lightOn && matchDevice.spriteDbid) {
|
||||||
// setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
|
// setLightValues(matchDevice.device_guid, 200, 0xe1cf18);
|
||||||
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
|
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
|
||||||
|
if (
|
||||||
|
!lightOnHotColorArr.some(
|
||||||
|
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
|
||||||
|
)
|
||||||
|
) {
|
||||||
lightOnHotColorArr.push(matchDevice);
|
lightOnHotColorArr.push(matchDevice);
|
||||||
|
}
|
||||||
lightOffHotColorArr = lightOffHotColorArr.filter(
|
lightOffHotColorArr = lightOffHotColorArr.filter(
|
||||||
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
||||||
);
|
);
|
||||||
@ -582,10 +588,16 @@
|
|||||||
// console.log(lightOn, matchDevice);
|
// console.log(lightOn, matchDevice);
|
||||||
// setLightValues(matchDevice.device_guid, 0, 0xffffff);
|
// setLightValues(matchDevice.device_guid, 0, 0xffffff);
|
||||||
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
|
// changeColorForHotspot(matchDevice.spriteDbid, null, lightOn);
|
||||||
|
if (
|
||||||
|
!lightOffHotColorArr.some(
|
||||||
|
({ spriteDbid }) => spriteDbid === matchDevice.spriteDbid
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
lightOffHotColorArr.push(matchDevice);
|
||||||
|
}
|
||||||
lightOnHotColorArr = lightOnHotColorArr.filter(
|
lightOnHotColorArr = lightOnHotColorArr.filter(
|
||||||
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
(light) => light.spriteDbid !== matchDevice.spriteDbid
|
||||||
);
|
);
|
||||||
lightOffHotColorArr.push(matchDevice);
|
|
||||||
heatMap?.changeTemp(matchDevice.device_number, 0);
|
heatMap?.changeTemp(matchDevice.device_number, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -681,7 +693,6 @@
|
|||||||
deviceScatterErrorArr.length ===
|
deviceScatterErrorArr.length ===
|
||||||
option.series[0].data.length
|
option.series[0].data.length
|
||||||
) {
|
) {
|
||||||
console.log("deviceScatterNormalArr", deviceScatterNormalArr)
|
|
||||||
deviceScatterNormalArr.forEach((device) => {
|
deviceScatterNormalArr.forEach((device) => {
|
||||||
const cur = option.series[0].data.find(
|
const cur = option.series[0].data.find(
|
||||||
({ device_number }) => device_number === device.device_number
|
({ device_number }) => device_number === device.device_number
|
||||||
@ -693,7 +704,6 @@
|
|||||||
cur.itemStyle = { color: normalColor };
|
cur.itemStyle = { color: normalColor };
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
deviceScatterCloseArr.forEach((device) => {
|
deviceScatterCloseArr.forEach((device) => {
|
||||||
const cur = option.series[0].data.find(
|
const cur = option.series[0].data.find(
|
||||||
({ device_number }) => device_number === device.device_number
|
({ device_number }) => device_number === device.device_number
|
||||||
@ -1150,7 +1160,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
obj.itemStyle = {
|
obj.itemStyle = {
|
||||||
color: item.device_color || item.device_normal_color,
|
color: item.device_color || item.device_close_color,
|
||||||
};
|
};
|
||||||
|
|
||||||
res.push(obj);
|
res.push(obj);
|
||||||
|
@ -13,94 +13,64 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
<title>Marketing Dashboard - Application Intel - SmartAdmin v4.5.1</title>
|
<title>Marketing Dashboard - Application Intel - SmartAdmin v4.5.1</title>
|
||||||
<meta name="description" content="Marketing Dashboard" />
|
<meta name="description" content="Marketing Dashboard" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta
|
<meta name="viewport"
|
||||||
name="viewport"
|
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui" />
|
||||||
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, minimal-ui"
|
|
||||||
/>
|
|
||||||
<!-- Call App Mode on ios devices -->
|
<!-- Call App Mode on ios devices -->
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
<!-- Remove Tap Highlight on Windows Phone IE -->
|
<!-- Remove Tap Highlight on Windows Phone IE -->
|
||||||
<meta name="msapplication-tap-highlight" content="no" />
|
<meta name="msapplication-tap-highlight" content="no" />
|
||||||
<!-- base css -->
|
<!-- base css -->
|
||||||
<link
|
<link id="vendorsbundle"
|
||||||
id="vendorsbundle"
|
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
media="screen, print"
|
media="screen, print"
|
||||||
href="lib/vendors.bundle.css"
|
href="lib/vendors.bundle.css" />
|
||||||
/>
|
<link id="appbundle"
|
||||||
<link
|
|
||||||
id="appbundle"
|
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
media="screen, print"
|
media="screen, print"
|
||||||
href="lib/app.bundle.css"
|
href="lib/app.bundle.css" />
|
||||||
/>
|
|
||||||
<link id="mytheme" rel="stylesheet" media="screen, print" href="#" />
|
<link id="mytheme" rel="stylesheet" media="screen, print" href="#" />
|
||||||
<link
|
<link id="myskin"
|
||||||
id="myskin"
|
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
media="screen, print"
|
media="screen, print"
|
||||||
href="lib/skins/skin-master.css"
|
href="lib/skins/skin-master.css" />
|
||||||
/>
|
|
||||||
<link rel="stylesheet" href="lib/notifications/toastr/toastr.min.css" />
|
<link rel="stylesheet" href="lib/notifications/toastr/toastr.min.css" />
|
||||||
<link rel="stylesheet" href="lib/dropzone/dropzone.css" />
|
<link rel="stylesheet" href="lib/dropzone/dropzone.css" />
|
||||||
<!-- Place favicon.ico in the root directory -->
|
<!-- Place favicon.ico in the root directory -->
|
||||||
<link
|
<link rel="apple-touch-icon"
|
||||||
rel="apple-touch-icon"
|
|
||||||
sizes="180x180"
|
sizes="180x180"
|
||||||
href="img/favicon/apple-touch-icon.png"
|
href="img/favicon/apple-touch-icon.png" />
|
||||||
/>
|
<link rel="icon"
|
||||||
<link
|
|
||||||
rel="icon"
|
|
||||||
type="image/png"
|
type="image/png"
|
||||||
sizes="32x32"
|
sizes="32x32"
|
||||||
href="img/favicon/favicon-32x32.png"
|
href="img/favicon/favicon-32x32.png" />
|
||||||
/>
|
<link rel="mask-icon"
|
||||||
<link
|
|
||||||
rel="mask-icon"
|
|
||||||
href="img/favicon/safari-pinned-tab.svg"
|
href="img/favicon/safari-pinned-tab.svg"
|
||||||
color="#5bbad5"
|
color="#5bbad5" />
|
||||||
/>
|
|
||||||
<!-- Font Awesome -->
|
<!-- Font Awesome -->
|
||||||
<link href="lib/fontawesome-free/css/all.min.css" rel="stylesheet" />
|
<link href="lib/fontawesome-free/css/all.min.css" rel="stylesheet" />
|
||||||
<link href="lib/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
|
<link href="lib/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
|
||||||
|
|
||||||
<!--<link href="lib/chart.js/Chart.min.css" rel="stylesheet" />-->
|
<!--<link href="lib/chart.js/Chart.min.css" rel="stylesheet" />-->
|
||||||
<link
|
<link href="lib/jstree-master/themes/default/style.min.css"
|
||||||
href="lib/jstree-master/themes/default/style.min.css"
|
rel="stylesheet" />
|
||||||
rel="stylesheet"
|
<link href="lib/jstree-master/themes/default-dark/style.min.css"
|
||||||
/>
|
rel="stylesheet" />
|
||||||
<link
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
|
||||||
href="lib/jstree-master/themes/default-dark/style.min.css"
|
rel="stylesheet" />
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/icon?family=Material+Icons"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<!--<link rel="stylesheet" media="screen, print" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap.min.css">-->
|
<!--<link rel="stylesheet" media="screen, print" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap.min.css">-->
|
||||||
<link
|
<link rel="stylesheet"
|
||||||
rel="stylesheet"
|
|
||||||
media="screen, print"
|
media="screen, print"
|
||||||
href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap4.min.css"
|
href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap4.min.css" />
|
||||||
/>
|
|
||||||
<link rel="stylesheet" href="css/site.css" />
|
<link rel="stylesheet" href="css/site.css" />
|
||||||
<link
|
<link rel="stylesheet"
|
||||||
rel="stylesheet"
|
href="css/yourteam/plugins/yt-tooltip/yt-tooltip.css" />
|
||||||
href="css/yourteam/plugins/yt-tooltip/yt-tooltip.css"
|
<link rel="stylesheet"
|
||||||
/>
|
href="css/yourteam/plugins/yt-notice/yt-notice.css" />
|
||||||
<link
|
<link rel="stylesheet"
|
||||||
rel="stylesheet"
|
href="css/yourteam/plugins/yt-alert/ytpop-alert.css" />
|
||||||
href="css/yourteam/plugins/yt-notice/yt-notice.css"
|
<link rel="stylesheet"
|
||||||
/>
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="css/yourteam/plugins/yt-alert/ytpop-alert.css"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css"
|
href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css"
|
||||||
type="text/css"
|
type="text/css" />
|
||||||
/>
|
|
||||||
</head>
|
</head>
|
||||||
<!-- BEGIN Body -->
|
<!-- BEGIN Body -->
|
||||||
<!-- Possible Classes
|
<!-- Possible Classes
|
||||||
@ -128,9 +98,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
>>> more settings are described inside documentation page >>>
|
>>> more settings are described inside documentation page >>>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<body
|
<body class="mod-bg-1 mod-nav-link mod-skin-dark mod-hide-info-card nav-function-top nav-function-fixed mod-lean-subheader desktop chrome webkit pace-done blur">
|
||||||
class="mod-bg-1 mod-nav-link mod-skin-dark mod-hide-info-card nav-function-top nav-function-fixed mod-lean-subheader desktop chrome webkit pace-done blur"
|
|
||||||
>
|
|
||||||
<!-- DOC: script to save and load page settings -->
|
<!-- DOC: script to save and load page settings -->
|
||||||
<script>
|
<script>
|
||||||
/**
|
/**
|
||||||
@ -203,17 +171,13 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
<header class="page-header" role="banner">
|
<header class="page-header" role="banner">
|
||||||
<!--we need this logo when user switches to nav-function-top-->
|
<!--we need this logo when user switches to nav-function-top-->
|
||||||
<div class="page-logo">
|
<div class="page-logo">
|
||||||
<a
|
<a href="javascript:;"
|
||||||
href="javascript:;"
|
|
||||||
name="topFunBtn"
|
name="topFunBtn"
|
||||||
data-page="dashboard"
|
data-page="dashboard"
|
||||||
class="page-logo-link press-scale-down d-flex align-items-center position-relative"
|
class="page-logo-link press-scale-down d-flex align-items-center position-relative">
|
||||||
>
|
<img src="img/logo.png"
|
||||||
<img
|
|
||||||
src="img/logo.png"
|
|
||||||
alt="SmartAdmin WebApp"
|
alt="SmartAdmin WebApp"
|
||||||
aria-roledescription="logo"
|
aria-roledescription="logo" />
|
||||||
/>
|
|
||||||
|
|
||||||
<!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
|
<!--<span class="page-logo-text mr-1">SmartAdmin WebApp</span>-->
|
||||||
<!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
|
<!--<span class="position-absolute text-white opacity-50 small pos-top pos-right mr-2 mt-n2"></span>
|
||||||
@ -222,35 +186,29 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</div>
|
</div>
|
||||||
<!--DOC: nav menu layout change shortcut-->
|
<!--DOC: nav menu layout change shortcut-->
|
||||||
<div class="hidden-md-down dropdown-icon-menu position-relative">
|
<div class="hidden-md-down dropdown-icon-menu position-relative">
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="header-btn btn js-waves-off"
|
class="header-btn btn js-waves-off"
|
||||||
data-action="toggle"
|
data-action="toggle"
|
||||||
data-class="nav-function-hidden"
|
data-class="nav-function-hidden"
|
||||||
title="Hide Navigation"
|
title="Hide Navigation">
|
||||||
>
|
|
||||||
<i class="ni ni-menu"></i>
|
<i class="ni ni-menu"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="btn js-waves-off"
|
class="btn js-waves-off"
|
||||||
data-action="toggle"
|
data-action="toggle"
|
||||||
data-class="nav-function-minify"
|
data-class="nav-function-minify"
|
||||||
title="Minify Navigation"
|
title="Minify Navigation">
|
||||||
>
|
|
||||||
<i class="ni ni-minify-nav"></i>
|
<i class="ni ni-minify-nav"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="btn js-waves-off"
|
class="btn js-waves-off"
|
||||||
data-action="toggle"
|
data-action="toggle"
|
||||||
data-class="nav-function-fixed"
|
data-class="nav-function-fixed"
|
||||||
title="Lock Navigation"
|
title="Lock Navigation">
|
||||||
>
|
|
||||||
<i class="ni ni-lock-nav"></i>
|
<i class="ni ni-lock-nav"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@ -258,83 +216,65 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</div>
|
</div>
|
||||||
<!--DOC: mobile button appears during mobile width-->
|
<!--DOC: mobile button appears during mobile width-->
|
||||||
<div class="hidden-lg-up">
|
<div class="hidden-lg-up">
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="header-btn btn press-scale-down"
|
class="header-btn btn press-scale-down"
|
||||||
data-action="toggle"
|
data-action="toggle"
|
||||||
data-class="mobile-nav-on"
|
data-class="mobile-nav-on">
|
||||||
>
|
|
||||||
<i class="ni ni-menu"></i>
|
<i class="ni ni-menu"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a
|
<a class="dropdown-toggle fs-1"
|
||||||
class="dropdown-toggle fs-1"
|
|
||||||
href="javascript:;"
|
href="javascript:;"
|
||||||
role="button"
|
role="button"
|
||||||
id="buiActDrop"
|
id="buiActDrop"
|
||||||
data-target="buiList"
|
data-target="buiList"
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true">
|
||||||
>
|
|
||||||
</a>
|
</a>
|
||||||
<div
|
<div id="buiList"
|
||||||
id="buiList"
|
class="dropdown-menu dropdown-select-menu js-auto-close"></div>
|
||||||
class="dropdown-menu dropdown-select-menu js-auto-close"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ml-auto d-flex" id="froLisPage"></div>
|
<div class="ml-auto d-flex" id="froLisPage"></div>
|
||||||
<div class="ml-auto d-flex mr-3">
|
<div class="ml-auto d-flex mr-3">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a
|
<a href="javascript:;"
|
||||||
href="javascript:;"
|
|
||||||
id="toggleNoticeBtn"
|
id="toggleNoticeBtn"
|
||||||
class="d-flex align-items-center justify-content-center ml-2"
|
class="d-flex align-items-center justify-content-center ml-2">
|
||||||
>
|
|
||||||
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
|
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
|
||||||
alt="Dr. Codex Lantern">-->
|
alt="Dr. Codex Lantern">-->
|
||||||
<!--you can also add username next to the avatar with the codes below:-->
|
<!--you can also add username next to the avatar with the codes below:-->
|
||||||
<div class="row m-0 justify-content-center userblock">
|
<div class="row m-0 justify-content-center userblock">
|
||||||
<i id="noticeConIcon" class="fs-1-5 w-100 text-center"></i>
|
<i id="noticeConIcon" class="fs-1-5 w-100 text-center"></i>
|
||||||
<span
|
<span id="noticeConText"
|
||||||
id="noticeConText"
|
|
||||||
class="text-truncate text-truncate-header hidden-xs-down"
|
class="text-truncate text-truncate-header hidden-xs-down"
|
||||||
data-hide="隱藏警告"
|
data-hide="隱藏警告"
|
||||||
data-show="顯示警告"
|
data-show="顯示警告"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<!--app user menu-->
|
<!--app user menu-->
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
data-target="logoutList"
|
data-target="logoutList"
|
||||||
class="d-flex align-items-center justify-content-center ml-2"
|
class="d-flex align-items-center justify-content-center ml-2">
|
||||||
>
|
|
||||||
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
|
<!--<img src="img/demo/avatars/avatar-admin.png" class="profile-image rounded-circle"
|
||||||
alt="Dr. Codex Lantern">-->
|
alt="Dr. Codex Lantern">-->
|
||||||
<!--you can also add username next to the avatar with the codes below:-->
|
<!--you can also add username next to the avatar with the codes below:-->
|
||||||
<div class="row m-0 justify-content-center userblock">
|
<div class="row m-0 justify-content-center userblock">
|
||||||
<i class="fas fa-user-circle fs-1-5 w-100 text-center"></i>
|
<i class="fas fa-user-circle fs-1-5 w-100 text-center"></i>
|
||||||
<span
|
<span id="usrName"
|
||||||
id="usrName"
|
class="text-truncate text-truncate-header hidden-xs-down"></span>
|
||||||
class="text-truncate text-truncate-header hidden-xs-down"
|
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<div
|
<div id="logoutList"
|
||||||
id="logoutList"
|
class="dropdown-menu dropdown-menu-right dropdown-lg">
|
||||||
class="dropdown-menu dropdown-menu-right dropdown-lg"
|
<a id="logout"
|
||||||
>
|
|
||||||
<a
|
|
||||||
id="logout"
|
|
||||||
href="javascript:;"
|
href="javascript:;"
|
||||||
class="dropdown-item fw-500 pt-3 pb-3"
|
class="dropdown-item fw-500 pt-3 pb-3">
|
||||||
>
|
|
||||||
<span>登出</span>
|
<span>登出</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -356,11 +296,9 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|
||||||
<!-- this overlay is activated only when mobile menu is triggered -->
|
<!-- this overlay is activated only when mobile menu is triggered -->
|
||||||
<div
|
<div class="page-content-overlay"
|
||||||
class="page-content-overlay"
|
|
||||||
data-action="toggle"
|
data-action="toggle"
|
||||||
data-class="mobile-nav-on"
|
data-class="mobile-nav-on"></div>
|
||||||
></div>
|
|
||||||
|
|
||||||
<div id="sysMonNavbar" class="yt-navbar yt-left-navbar">
|
<div id="sysMonNavbar" class="yt-navbar yt-left-navbar">
|
||||||
<div class="yt-navbar-content">
|
<div class="yt-navbar-content">
|
||||||
@ -456,106 +394,76 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</div>
|
</div>
|
||||||
<!-- END Page Wrapper -->
|
<!-- END Page Wrapper -->
|
||||||
<!-- BEGIN Messenger -->
|
<!-- BEGIN Messenger -->
|
||||||
<div
|
<div class="modal fade js-modal-messenger modal-backdrop-transparent"
|
||||||
class="modal fade js-modal-messenger modal-backdrop-transparent"
|
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
role="dialog"
|
role="dialog"
|
||||||
aria-hidden="true"
|
aria-hidden="true">
|
||||||
>
|
|
||||||
<div class="modal-dialog modal-dialog-right">
|
<div class="modal-dialog modal-dialog-right">
|
||||||
<div class="modal-content h-100">
|
<div class="modal-content h-100">
|
||||||
<div
|
<div class="dropdown-header bg-trans-gradient d-flex align-items-center w-100">
|
||||||
class="dropdown-header bg-trans-gradient d-flex align-items-center w-100"
|
<div class="d-flex flex-row align-items-center mt-1 mb-1 color-white">
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="d-flex flex-row align-items-center mt-1 mb-1 color-white"
|
|
||||||
>
|
|
||||||
<span class="mr-2">
|
<span class="mr-2">
|
||||||
<span
|
<span class="rounded-circle profile-image d-block"
|
||||||
class="rounded-circle profile-image d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-d.png');
|
background-image: url('img/demo/avatars/avatar-d.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</span>
|
</span>
|
||||||
<div class="info-card-text">
|
<div class="info-card-text">
|
||||||
<a
|
<a href="javascript:void(0);"
|
||||||
href="javascript:void(0);"
|
|
||||||
class="fs-lg text-truncate text-truncate-lg text-white"
|
class="fs-lg text-truncate text-truncate-lg text-white"
|
||||||
data-toggle="dropdown"
|
data-toggle="dropdown"
|
||||||
aria-expanded="false"
|
aria-expanded="false">
|
||||||
>
|
|
||||||
Tracey Chang
|
Tracey Chang
|
||||||
<i
|
<i class="fal fa-angle-down d-inline-block ml-1 text-white fs-md"></i>
|
||||||
class="fal fa-angle-down d-inline-block ml-1 text-white fs-md"
|
|
||||||
></i>
|
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu">
|
<div class="dropdown-menu">
|
||||||
<a class="dropdown-item" href="#">Send Email</a>
|
<a class="dropdown-item" href="#">Send Email</a>
|
||||||
<a class="dropdown-item" href="#">Create Appointment</a>
|
<a class="dropdown-item" href="#">Create Appointment</a>
|
||||||
<a class="dropdown-item" href="#">Block User</a>
|
<a class="dropdown-item" href="#">Block User</a>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-truncate text-truncate-md opacity-80"
|
<span class="text-truncate text-truncate-md opacity-80">IT Director</span>
|
||||||
>IT Director</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button type="button"
|
||||||
type="button"
|
|
||||||
class="close text-white position-absolute pos-top pos-right p-2 m-1 mr-2"
|
class="close text-white position-absolute pos-top pos-right p-2 m-1 mr-2"
|
||||||
data-dismiss="modal"
|
data-dismiss="modal"
|
||||||
aria-label="Close"
|
aria-label="Close">
|
||||||
>
|
|
||||||
<span aria-hidden="true"><i class="fal fa-times"></i></span>
|
<span aria-hidden="true"><i class="fal fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body p-0 h-100 d-flex">
|
<div class="modal-body p-0 h-100 d-flex">
|
||||||
<!-- BEGIN msgr-list -->
|
<!-- BEGIN msgr-list -->
|
||||||
<div
|
<div class="msgr-list d-flex flex-column bg-faded border-faded border-top-0 border-right-0 border-bottom-0 position-absolute pos-top pos-bottom">
|
||||||
class="msgr-list d-flex flex-column bg-faded border-faded border-top-0 border-right-0 border-bottom-0 position-absolute pos-top pos-bottom"
|
|
||||||
>
|
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div class="height-4 width-3 h3 m-0 d-flex justify-content-center flex-column color-primary-500 pl-3 mt-2">
|
||||||
class="height-4 width-3 h3 m-0 d-flex justify-content-center flex-column color-primary-500 pl-3 mt-2"
|
|
||||||
>
|
|
||||||
<i class="fal fa-search"></i>
|
<i class="fal fa-search"></i>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input type="text"
|
||||||
type="text"
|
|
||||||
class="form-control bg-white"
|
class="form-control bg-white"
|
||||||
id="msgr_listfilter_input"
|
id="msgr_listfilter_input"
|
||||||
placeholder="Filter contacts"
|
placeholder="Filter contacts"
|
||||||
aria-label="FriendSearch"
|
aria-label="FriendSearch"
|
||||||
data-listfilter="#js-msgr-listfilter"
|
data-listfilter="#js-msgr-listfilter" />
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 h-100 custom-scroll">
|
<div class="flex-1 h-100 custom-scroll">
|
||||||
<div class="w-100">
|
<div class="w-100">
|
||||||
<ul id="js-msgr-listfilter" class="list-unstyled m-0">
|
<ul id="js-msgr-listfilter" class="list-unstyled m-0">
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="tracey chang online"
|
data-filter-tags="tracey chang online">
|
||||||
>
|
<div class="d-table-cell align-middle status status-success status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-success status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-d.png');
|
background-image: url('img/demo/avatars/avatar-d.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
Tracey Chang
|
Tracey Chang
|
||||||
<small
|
<small class="d-block font-italic text-success fs-xs">
|
||||||
class="d-block font-italic text-success fs-xs"
|
|
||||||
>
|
|
||||||
Online
|
Online
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
@ -563,28 +471,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="oliver kopyuv online"
|
data-filter-tags="oliver kopyuv online">
|
||||||
>
|
<div class="d-table-cell align-middle status status-success status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-success status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-b.png');
|
background-image: url('img/demo/avatars/avatar-b.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
Oliver Kopyuv
|
Oliver Kopyuv
|
||||||
<small
|
<small class="d-block font-italic text-success fs-xs">
|
||||||
class="d-block font-italic text-success fs-xs"
|
|
||||||
>
|
|
||||||
Online
|
Online
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
@ -592,21 +492,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="dr john cook phd away"
|
data-filter-tags="dr john cook phd away">
|
||||||
>
|
<div class="d-table-cell align-middle status status-warning status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-warning status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-e.png');
|
background-image: url('img/demo/avatars/avatar-e.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
@ -619,28 +513,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="ali amdaney online"
|
data-filter-tags="ali amdaney online">
|
||||||
>
|
<div class="d-table-cell align-middle status status-success status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-success status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-g.png');
|
background-image: url('img/demo/avatars/avatar-g.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
Ali Amdaney
|
Ali Amdaney
|
||||||
<small
|
<small class="d-block font-italic fs-xs text-success">
|
||||||
class="d-block font-italic fs-xs text-success"
|
|
||||||
>
|
|
||||||
Online
|
Online
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
@ -648,28 +534,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="sarah mcbrook online"
|
data-filter-tags="sarah mcbrook online">
|
||||||
>
|
<div class="d-table-cell align-middle status status-success status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-success status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-h.png');
|
background-image: url('img/demo/avatars/avatar-h.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
Sarah McBrook
|
Sarah McBrook
|
||||||
<small
|
<small class="d-block font-italic fs-xs text-success">
|
||||||
class="d-block font-italic fs-xs text-success"
|
|
||||||
>
|
|
||||||
Online
|
Online
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
@ -677,19 +555,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="ali amdaney offline"
|
data-filter-tags="ali amdaney offline">
|
||||||
>
|
|
||||||
<div class="d-table-cell align-middle status status-sm">
|
<div class="d-table-cell align-middle status status-sm">
|
||||||
<span
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-a.png');
|
background-image: url('img/demo/avatars/avatar-a.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
@ -702,28 +576,20 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="ali amdaney busy"
|
data-filter-tags="ali amdaney busy">
|
||||||
>
|
<div class="d-table-cell align-middle status status-danger status-sm">
|
||||||
<div
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="d-table-cell align-middle status status-danger status-sm"
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-j.png');
|
background-image: url('img/demo/avatars/avatar-j.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
oliver.kopyuv@gotbootstrap.com
|
oliver.kopyuv@gotbootstrap.com
|
||||||
<small
|
<small class="d-block font-italic fs-xs text-danger">
|
||||||
class="d-block font-italic fs-xs text-danger"
|
|
||||||
>
|
|
||||||
Busy
|
Busy
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
@ -731,19 +597,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="ali amdaney offline"
|
data-filter-tags="ali amdaney offline">
|
||||||
>
|
|
||||||
<div class="d-table-cell align-middle status status-sm">
|
<div class="d-table-cell align-middle status status-sm">
|
||||||
<span
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-c.png');
|
background-image: url('img/demo/avatars/avatar-c.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
@ -756,19 +618,15 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a href="#"
|
||||||
href="#"
|
|
||||||
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
class="d-table w-100 px-2 py-2 text-dark hover-white"
|
||||||
data-filter-tags="ali amdaney inactive"
|
data-filter-tags="ali amdaney inactive">
|
||||||
>
|
|
||||||
<div class="d-table-cell align-middle">
|
<div class="d-table-cell align-middle">
|
||||||
<span
|
<span class="profile-image-md rounded-circle d-block"
|
||||||
class="profile-image-md rounded-circle d-block"
|
|
||||||
style="
|
style="
|
||||||
background-image: url('img/demo/avatars/avatar-m.png');
|
background-image: url('img/demo/avatars/avatar-m.png');
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
"
|
"></span>
|
||||||
></span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
<div class="d-table-cell w-100 align-middle pl-2 pr-2">
|
||||||
<div class="text-truncate text-truncate-md">
|
<div class="text-truncate text-truncate-md">
|
||||||
@ -877,46 +735,34 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
<!-- END custom-scroll -->
|
<!-- END custom-scroll -->
|
||||||
<!-- BEGIN msgr__chatinput -->
|
<!-- BEGIN msgr__chatinput -->
|
||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
<div
|
<div class="border-faded border-right-0 border-bottom-0 border-left-0 flex-1 mr-3 ml-3 position-relative shadow-top">
|
||||||
class="border-faded border-right-0 border-bottom-0 border-left-0 flex-1 mr-3 ml-3 position-relative shadow-top"
|
|
||||||
>
|
|
||||||
<div class="pt-3 pb-1 pr-0 pl-0 rounded-0" tabindex="-1">
|
<div class="pt-3 pb-1 pr-0 pl-0 rounded-0" tabindex="-1">
|
||||||
<div
|
<div id="msgr_input"
|
||||||
id="msgr_input"
|
|
||||||
contenteditable="true"
|
contenteditable="true"
|
||||||
data-placeholder="Type your message here..."
|
data-placeholder="Type your message here..."
|
||||||
class="height-10 form-content-editable"
|
class="height-10 form-content-editable"></div>
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="height-8 px-3 d-flex flex-row align-items-center flex-wrap flex-shrink-0">
|
||||||
class="height-8 px-3 d-flex flex-row align-items-center flex-wrap flex-shrink-0"
|
<a href="javascript:void(0);"
|
||||||
>
|
|
||||||
<a
|
|
||||||
href="javascript:void(0);"
|
|
||||||
class="btn btn-icon fs-xl width-1 mr-1"
|
class="btn btn-icon fs-xl width-1 mr-1"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
data-original-title="More options"
|
data-original-title="More options"
|
||||||
data-placement="top"
|
data-placement="top">
|
||||||
>
|
|
||||||
<i class="fal fa-ellipsis-v-alt color-fusion-300"></i>
|
<i class="fal fa-ellipsis-v-alt color-fusion-300"></i>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a href="javascript:void(0);"
|
||||||
href="javascript:void(0);"
|
|
||||||
class="btn btn-icon fs-xl mr-1"
|
class="btn btn-icon fs-xl mr-1"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
data-original-title="Attach files"
|
data-original-title="Attach files"
|
||||||
data-placement="top"
|
data-placement="top">
|
||||||
>
|
|
||||||
<i class="fal fa-paperclip color-fusion-300"></i>
|
<i class="fal fa-paperclip color-fusion-300"></i>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a href="javascript:void(0);"
|
||||||
href="javascript:void(0);"
|
|
||||||
class="btn btn-icon fs-xl mr-1"
|
class="btn btn-icon fs-xl mr-1"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
data-original-title="Insert photo"
|
data-original-title="Insert photo"
|
||||||
data-placement="top"
|
data-placement="top">
|
||||||
>
|
|
||||||
<i class="fal fa-camera color-fusion-300"></i>
|
<i class="fal fa-camera color-fusion-300"></i>
|
||||||
</a>
|
</a>
|
||||||
<div class="ml-auto">
|
<div class="ml-auto">
|
||||||
@ -932,8 +778,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div id="noticeBlock"
|
||||||
id="noticeBlock"
|
|
||||||
style="
|
style="
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 70px;
|
top: 70px;
|
||||||
@ -942,8 +787,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
transition: 0.2s;
|
transition: 0.2s;
|
||||||
z-index: 50000;
|
z-index: 50000;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
"
|
"></div>
|
||||||
></div>
|
|
||||||
|
|
||||||
<!--<button id="testsysbtn" class="btn btn-info col-1">系統監控(測試用)</button>-->
|
<!--<button id="testsysbtn" class="btn btn-info col-1">系統監控(測試用)</button>-->
|
||||||
<!-- END Messenger -->
|
<!-- END Messenger -->
|
||||||
@ -1225,7 +1069,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
// 清空 loading 狀態
|
// 清空 loading 狀態
|
||||||
endPageLoading();
|
endPageLoading();
|
||||||
|
|
||||||
$(loadEle).Loading("close");
|
// $(loadEle).Loading("close");
|
||||||
$(".yt-alert").YTAlert().hide();
|
$(".yt-alert").YTAlert().hide();
|
||||||
// 取得使用者資訊
|
// 取得使用者資訊
|
||||||
getUserInfo();
|
getUserInfo();
|
||||||
@ -1858,7 +1702,6 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
|
|||||||
}
|
}
|
||||||
|
|
||||||
function crePosPopover(position, obj) {
|
function crePosPopover(position, obj) {
|
||||||
console.log("obj", obj);
|
|
||||||
let _position = {};
|
let _position = {};
|
||||||
_position.tpLeft = position[0];
|
_position.tpLeft = position[0];
|
||||||
_position.tpTop = position[1];
|
_position.tpTop = position[1];
|
||||||
|
@ -56,7 +56,6 @@ class subscriptionDevices {
|
|||||||
var sub = new baja.Subscriber();
|
var sub = new baja.Subscriber();
|
||||||
|
|
||||||
sub.attach('changed', function (prop) {
|
sub.attach('changed', function (prop) {
|
||||||
console.log("Light prop", prop.getName())
|
|
||||||
if (prop.getName() === 'out') {
|
if (prop.getName() === 'out') {
|
||||||
var out_value = this.getOutDisplay();
|
var out_value = this.getOutDisplay();
|
||||||
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||||
|
@ -1007,7 +1007,6 @@ class Forge3DSensor {
|
|||||||
const viewableData = new DataVizCore.ViewableData();
|
const viewableData = new DataVizCore.ViewableData();
|
||||||
viewableData.spriteSize = 30; // Sprites as points of size 24 x 24 pixels
|
viewableData.spriteSize = 30; // Sprites as points of size 24 x 24 pixels
|
||||||
this.deviceList.forEach((myData, index) => {
|
this.deviceList.forEach((myData, index) => {
|
||||||
// console.log(myData)
|
|
||||||
const dbId = myData.forge_dbid;
|
const dbId = myData.forge_dbid;
|
||||||
const myPosition = myData.position;
|
const myPosition = myData.position;
|
||||||
const viewable = new DataVizCore.SpriteViewable(
|
const viewable = new DataVizCore.SpriteViewable(
|
||||||
@ -1109,7 +1108,13 @@ class Forge3DSensor {
|
|||||||
Forge3DSensor.highTempForSensor.push(dbid);
|
Forge3DSensor.highTempForSensor.push(dbid);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
(Forge3DSensor.lowerTempForSensor.length,
|
||||||
|
Forge3DSensor.normalTempForSensor.length,
|
||||||
|
Forge3DSensor.highTempForSensor.length,
|
||||||
|
Forge3DSensor.highestTempForSensor.length,
|
||||||
|
allDevList.length)
|
||||||
|
) {
|
||||||
await this.changeColorForSensorHotspot(
|
await this.changeColorForSensorHotspot(
|
||||||
Forge3DSensor.lowerTempForSensor,
|
Forge3DSensor.lowerTempForSensor,
|
||||||
temps[0]
|
temps[0]
|
||||||
@ -1127,6 +1132,7 @@ class Forge3DSensor {
|
|||||||
temps[3]
|
temps[3]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async changeColorForSensorHotspot(viewablesToUpdate, color) {
|
async changeColorForSensorHotspot(viewablesToUpdate, color) {
|
||||||
const dataVizExtn = await viewer.loadExtension(
|
const dataVizExtn = await viewer.loadExtension(
|
||||||
@ -1171,10 +1177,6 @@ class Forge3DSensor {
|
|||||||
subData = { ...subData, [data.point_name]: data.value };
|
subData = { ...subData, [data.point_name]: data.value };
|
||||||
}
|
}
|
||||||
|
|
||||||
//let norDevPoiName = matchDevice.device_normal_point_name;
|
|
||||||
//let cloDevPoiName = matchDevice.device_close_point_name || "";
|
|
||||||
//let errDevPoiName = matchDevice.device_error_point_name;
|
|
||||||
|
|
||||||
if (data.point_name == "Temp" || data.point_name == "TEMP") {
|
if (data.point_name == "Temp" || data.point_name == "TEMP") {
|
||||||
this.tempVal = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
|
this.tempVal = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
|
||||||
this.curDevice = {
|
this.curDevice = {
|
||||||
@ -1189,6 +1191,43 @@ class Forge3DSensor {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let matchDevice = allDevList.find(
|
||||||
|
(x) => x.device_number == data.device_number_full
|
||||||
|
);
|
||||||
|
|
||||||
|
let norDevPoiName = matchDevice.device_normal_point_name;
|
||||||
|
let cloDevPoiName = matchDevice.device_close_point_name;
|
||||||
|
let errDevPoiName = matchDevice.device_error_point_name;
|
||||||
|
if (
|
||||||
|
data.point_name == norDevPoiName &&
|
||||||
|
data.value == matchDevice.device_normal_point_value
|
||||||
|
) {
|
||||||
|
|
||||||
|
//顯示正常燈號
|
||||||
|
$(`#${matchDevice.device_number}_status`)
|
||||||
|
.attr("data-light-type", "normal")
|
||||||
|
.data("light-type", "normal");
|
||||||
|
} else if (
|
||||||
|
data.point_name == cloDevPoiName &&
|
||||||
|
data.value == matchDevice.device_close_point_value
|
||||||
|
) {
|
||||||
|
|
||||||
|
$(`#${matchDevice.device_number}_status`)
|
||||||
|
.attr("data-light-type", "close")
|
||||||
|
.data("light-type", "close");
|
||||||
|
} else if (
|
||||||
|
data.point_name == errDevPoiName &&
|
||||||
|
data.value == matchDevice.device_error_point_value
|
||||||
|
) {
|
||||||
|
$(`#${matchDevice.device_number}_status`)
|
||||||
|
.attr("data-light-type", "error")
|
||||||
|
.data("light-type", "error");
|
||||||
|
}
|
||||||
|
|
||||||
|
setLightColor();
|
||||||
|
setDevItemPoiValBySub(data);
|
||||||
|
$(loadEle).Loading("close");
|
||||||
});
|
});
|
||||||
|
|
||||||
myBaja.setSubscribeDeviceEndCallBack((data) => {
|
myBaja.setSubscribeDeviceEndCallBack((data) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user