diff --git a/Frontend/_sysElevator.html b/Frontend/_sysElevator.html
new file mode 100644
index 0000000..e393de1
--- /dev/null
+++ b/Frontend/_sysElevator.html
@@ -0,0 +1,961 @@
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 號機別 : 1
-
-
-
10F
-
- 狀態 : 運行中
-
-
-
-
-
-
-
- 號機別 : 2
-
-
-
5F
-
-
- 狀態 : 維修
-
-
-
-
-
-
-
- 號機別 : 3
-
-
-
3F
-
- 狀態 : 運行中
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 播放速度 :
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- Bank1 |
- Bank2 |
-
-
- |
- #1 |
- #2 |
- #3 |
-
-
- 位置/模式 |
- 1F |
- 自動運轉 |
- 1F |
- 自動運轉 |
- 4F |
- 自動運轉 |
-
-
- 負載/狀態 |
- 40% |
- * |
- 0% |
- * |
- 80% |
- * |
-
-
- |
- |
- |
- |
- |
- |
- |
-
-
- 10F |
- |
- |
- |
- |
- |
- |
-
-
- 9F |
- |
- |
- |
- |
- |
- |
-
-
- 8F |
- |
- |
- |
- |
- |
- |
-
-
- 7F |
- |
- |
- |
- |
- |
- |
-
-
- 6F |
- |
- |
- |
- |
- |
- |
-
-
- 5F |
- |
- |
- |
- |
- |
- |
-
-
- 4F |
- |
- |
- |
- |
- |
- |
-
-
- 3F |
- |
- |
- |
- |
- |
- |
-
-
- 2F |
- |
- |
- |
- |
- |
- |
-
-
- 1F |
- |
- |
- |
- |
- |
- |
-
-
- B1F |
- |
- |
- |
- |
- |
- |
-
-
- B2F |
- |
- |
- |
- |
- |
- |
-
-
- B3F |
- |
- |
- |
- |
- |
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 號機 |
- 狀態 |
- 所在樓層 |
- 載重 |
- 休止 |
- 獨立運轉 |
- VIP |
- 回歸 |
- 不服務樓層 |
- |
-
-
-
-
- Bank1 |
- |
- |
- |
- |
- |
- |
- |
- B2F,3F,5F |
-
-
- |
-
-
- 1 |
- 運作中 |
- 3F |
- 80% |
- On |
- Off |
- On |
- Off |
- |
-
-
- |
-
-
- 2 |
- 保養 |
- 2F |
- 0% |
- On |
- Off |
- On |
- Off |
- |
-
-
- |
-
-
- Bank2 |
- |
- |
- |
- |
- |
- |
- |
- B1F,B2F |
-
-
- |
-
-
- 3 |
- 運作中 |
- B1F |
- 100% |
- On |
- Off |
- On |
- Off |
- |
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 號機 |
- 狀態 |
- 所在樓層 |
- 防疫對策 |
- 遠隔休止 |
- 獨立運轉 |
- VIP |
- 回歸運轉 |
-
-
-
-
- 1 |
- 運作中 |
- 3F |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 號機 |
- 狀態 |
- 所在樓層 |
- 防疫對策 |
- 遠隔休止 |
- 獨立運轉 |
- VIP |
- 回歸運轉 |
-
-
-
-
- 2 |
- 保養 |
- 2F |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 號機 |
- 狀態 |
- 所在樓層 |
- 防疫對策 |
- 遠隔休止 |
- 獨立運轉 |
- VIP |
- 回歸運轉 |
-
-
-
-
- 2 |
- 運作中 |
- B1F |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Frontend/index.html b/Frontend/index.html
index 9a56dfd..3a78ae4 100644
--- a/Frontend/index.html
+++ b/Frontend/index.html
@@ -2487,6 +2487,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
require(
[
"lib/app.bundle",
+ "lib/app.menu",
"datatables.net.b4",
"n4js/alarmbaja",
"lib/statistics/flot/flot.bundle",
@@ -2537,7 +2538,11 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
$("#sysMonBtnList").html()
$.each(res.data.history_Main_Systems, (index, mainSysObj) => {
$.each(mainSysObj.history_Sub_systems, (index2, subSysObj) => {
- let btn = creBtn(subSysObj.full_name, `subSysBtn${subSysObj.sub_system_tag}`, "topFunBtn", ["dropdown-item"], { page: "systemMonitor" });
+ let page = "systemMonitor";
+ if (subSysObj.sub_system_tag == "EL") {
+ page = "sysElevator";
+ }
+ let btn = creBtn(subSysObj.full_name, `subSysBtn${subSysObj.sub_system_tag}`, "topFunBtn", ["dropdown-item"], { page: page });
subSysObj.main_system_tag = mainSysObj.main_system_tag;
btn.data("subSysObj", subSysObj);
$("#sysMonBtnList").append(btn);
diff --git a/Frontend/lib/app.bundle.js b/Frontend/lib/app.bundle.js
index 6203b80..1c40c1a 100644
--- a/Frontend/lib/app.bundle.js
+++ b/Frontend/lib/app.bundle.js
@@ -124,202 +124,202 @@ var myapp_config = {
* Publish Date: 2018-01-01T17:42Z
*/
-(function($) {
+//(function($) {
- /**
- * Menu Plugin
- **/
- $.fn.extend({
+// /**
+// * Menu Plugin
+// **/
+// $.fn.extend({
- /**
- * pass the options variable to the function
- *
- * $(id).navigation({
- * accordion: true,
- * animate: 'easeOutExpo',
- * speed: 200,
- * closedSign: '[+]',
- * openedSign: '[-]',
- * initClass: 'js-nav-built'
- * });
- *
- **/
+// /**
+// * pass the options variable to the function
+// *
+// * $(id).navigation({
+// * accordion: true,
+// * animate: 'easeOutExpo',
+// * speed: 200,
+// * closedSign: '[+]',
+// * openedSign: '[-]',
+// * initClass: 'js-nav-built'
+// * });
+// *
+// **/
- navigation: function(options) {
+// navigation: function(options) {
- var defaults = {
- accordion: true,
- animate: 'easeOutExpo',
- speed: 200,
- closedSign: '[+]',
- openedSign: '[-]',
- initClass: 'js-nav-built'
- },
+// var defaults = {
+// accordion: true,
+// animate: 'easeOutExpo',
+// speed: 200,
+// closedSign: '[+]',
+// openedSign: '[-]',
+// initClass: 'js-nav-built'
+// },
- /**
- * extend our default options with those provided.
- **/
- opts = $.extend(defaults, options),
+// /**
+// * extend our default options with those provided.
+// **/
+// opts = $.extend(defaults, options),
- /**
- * assign current element to variable, in this case is UL element
- **/
- self = $(this);
+// /**
+// * assign current element to variable, in this case is UL element
+// **/
+// self = $(this);
- if (!self.hasClass(opts.initClass)) {
+// if (!self.hasClass(opts.initClass)) {
- /**
- * confirm build to prevent rebuild error
- **/
- self.addClass(opts.initClass);
+// /**
+// * confirm build to prevent rebuild error
+// **/
+// self.addClass(opts.initClass);
- /**
- * add a mark [+] to a multilevel menu
- **/
- self.find("li").each(function() {
- if ($(this).find("ul").length !== 0) {
+// /**
+// * add a mark [+] to a multilevel menu
+// **/
+// self.find("li").each(function() {
+// if ($(this).find("ul").length !== 0) {
- /**
- * add the multilevel sign next to the link
- **/
- $(this).find("a:first").append("
" + opts.closedSign + "");
+// /**
+// * add the multilevel sign next to the link
+// **/
+// $(this).find("a:first").append("
" + opts.closedSign + "");
- /**
- * avoid jumping to the top of the page when the href is an #
- **/
- if ($(this).find("a:first").attr('href') == "#") {
- $(this).find("a:first").click(function() {
- return false;
- });
- }
- }
- });
+// /**
+// * avoid jumping to the top of the page when the href is an #
+// **/
+// if ($(this).find("a:first").attr('href') == "#") {
+// $(this).find("a:first").click(function() {
+// return false;
+// });
+// }
+// }
+// });
- /**
- * add open sign to all active lists
- **/
- self.find("li.active").each(function() {
- $(this).parents("ul")
- .parent("li")
- .find("a:first")
- .attr('aria-expanded', true)
- .find("b:first")
- .html(opts.openedSign);
- });
+// /**
+// * add open sign to all active lists
+// **/
+// self.find("li.active").each(function() {
+// $(this).parents("ul")
+// .parent("li")
+// .find("a:first")
+// .attr('aria-expanded', true)
+// .find("b:first")
+// .html(opts.openedSign);
+// });
- /**
- * click events
- **/
- self.find("li a").on('mousedown', function(e) {
+// /**
+// * click events
+// **/
+// self.find("li a").on('mousedown', function(e) {
- if ($(this).parent().find("ul").length !== 0) {
+// if ($(this).parent().find("ul").length !== 0) {
- if (opts.accordion) {
+// if (opts.accordion) {
- /**
- * do nothing when the list is open
- **/
- if (!$(this).parent().find("ul").is(':visible')) {
+// /**
+// * do nothing when the list is open
+// **/
+// if (!$(this).parent().find("ul").is(':visible')) {
- parents = $(this).parent().parents("ul");
- visible = self.find("ul:visible");
- visible.each(function(visibleIndex) {
- var close = true;
- parents.each(function(parentIndex) {
+// parents = $(this).parent().parents("ul");
+// visible = self.find("ul:visible");
+// visible.each(function(visibleIndex) {
+// var close = true;
+// parents.each(function(parentIndex) {
- if (parents[parentIndex] == visible[visibleIndex]) {
+// if (parents[parentIndex] == visible[visibleIndex]) {
- close = false;
- return false;
- }
- });
- if (close) {
+// close = false;
+// return false;
+// }
+// });
+// if (close) {
- if ($(this).parent().find("ul") != visible[visibleIndex]) {
+// if ($(this).parent().find("ul") != visible[visibleIndex]) {
- $(visible[visibleIndex]).slideUp(opts.speed + 300, opts.animate, function() {
- $(this).parent("li")
- .removeClass("open")
- .find("a:first")
- .attr('aria-expanded', false)
- .find("b:first")
- .html(opts.closedSign);
+// $(visible[visibleIndex]).slideUp(opts.speed + 300, opts.animate, function() {
+// $(this).parent("li")
+// .removeClass("open")
+// .find("a:first")
+// .attr('aria-expanded', false)
+// .find("b:first")
+// .html(opts.closedSign);
- if (myapp_config.debugState)
- console.log("nav item closed")
- });
- }
- }
- });
- }
- }
+// if (myapp_config.debugState)
+// console.log("nav item closed")
+// });
+// }
+// }
+// });
+// }
+// }
- /**
- * Add active class to open element
- **/
- if ($(this).parent().find("ul:first").is(":visible") && !$(this).parent().find("ul:first").hasClass("active")) {
+// /**
+// * Add active class to open element
+// **/
+// if ($(this).parent().find("ul:first").is(":visible") && !$(this).parent().find("ul:first").hasClass("active")) {
- $(this).parent().find("ul:first").slideUp(opts.speed + 100, opts.animate, function() {
- $(this).parent("li")
- .removeClass("open")
- .find("a:first")
- .attr('aria-expanded', false)
- .find("b:first").delay(opts.speed)
- .html(opts.closedSign);
+// $(this).parent().find("ul:first").slideUp(opts.speed + 100, opts.animate, function() {
+// $(this).parent("li")
+// .removeClass("open")
+// .find("a:first")
+// .attr('aria-expanded', false)
+// .find("b:first").delay(opts.speed)
+// .html(opts.closedSign);
- if (myapp_config.debugState)
- console.log("nav item closed")
- });
- } else {
- $(this).parent().find("ul:first").slideDown(opts.speed, opts.animate, function() {
+// if (myapp_config.debugState)
+// console.log("nav item closed")
+// });
+// } else {
+// $(this).parent().find("ul:first").slideDown(opts.speed, opts.animate, function() {
- $(this).parent("li")
- .addClass("open")
- .find("a:first")
- .attr('aria-expanded', true)
- .find("b:first").delay(opts.speed)
- .html(opts.openedSign);
+// $(this).parent("li")
+// .addClass("open")
+// .find("a:first")
+// .attr('aria-expanded', true)
+// .find("b:first").delay(opts.speed)
+// .html(opts.openedSign);
- if (myapp_config.debugState)
- console.log("nav item opened");
+// if (myapp_config.debugState)
+// console.log("nav item opened");
- });
- }
- }
- });
+// });
+// }
+// }
+// });
- } else {
+// } else {
- if (myapp_config.debugState)
- console.log(self.get(0) + " this menu already exists");
- }
+// if (myapp_config.debugState)
+// console.log(self.get(0) + " this menu already exists");
+// }
- },
+// },
- /**
- * DOC: $(id).destroy();
- **/
- navigationDestroy: function() {
+// /**
+// * DOC: $(id).destroy();
+// **/
+// navigationDestroy: function() {
- self = $(this);
+// self = $(this);
- if (self.hasClass(myapp_config.navInitalized)) {
- self.find("li").removeClass("active open");
- self.find("li a").off('mousedown').removeClass("active").removeAttr("aria-expanded").find(".collapse-sign").remove();
- self.removeClass(myapp_config.navInitalized).find("ul").removeAttr("style");
+// if (self.hasClass(myapp_config.navInitalized)) {
+// self.find("li").removeClass("active open");
+// self.find("li a").off('mousedown').removeClass("active").removeAttr("aria-expanded").find(".collapse-sign").remove();
+// self.removeClass(myapp_config.navInitalized).find("ul").removeAttr("style");
- if (myapp_config.debugState)
- console.log( self.get(0) + " destroyed");
+// if (myapp_config.debugState)
+// console.log( self.get(0) + " destroyed");
- } else {
- console.log("menu does not exist")
- }
+// } else {
+// console.log("menu does not exist")
+// }
- }
- });
+// }
+// });
-})(jQuery, window, document);
+//})(jQuery, window, document);
/*!
* jQuery menuSlider v1.0.0
*
diff --git a/Frontend/lib/app.menu.js b/Frontend/lib/app.menu.js
new file mode 100644
index 0000000..7ff828a
--- /dev/null
+++ b/Frontend/lib/app.menu.js
@@ -0,0 +1,205 @@
+/*!
+ * jQuery app.navigation v1.0.0
+ *
+ * Copyright 2019, 2020 SmartAdmin WebApp
+ * Released under Marketplace License (see your license details for usage)
+ *
+ * Publish Date: 2018-01-01T17:42Z
+ */
+
+(function($) {
+
+ /**
+ * Menu Plugin
+ **/
+ $.fn.extend({
+
+ /**
+ * pass the options variable to the function
+ *
+ * $(id).navigation({
+ * accordion: true,
+ * animate: 'easeOutExpo',
+ * speed: 200,
+ * closedSign: '[+]',
+ * openedSign: '[-]',
+ * initClass: 'js-nav-built'
+ * });
+ *
+ **/
+
+ navigation: function(options) {
+
+ var defaults = {
+ accordion: true,
+ animate: 'swing',
+ speed: 100,
+ closedSign: '[+]',
+ openedSign: '[-]',
+ initClass: 'js-nav-built'
+ },
+
+ /**
+ * extend our default options with those provided.
+ **/
+ opts = $.extend(defaults, options),
+
+ /**
+ * assign current element to variable, in this case is UL element
+ **/
+ self = $(this);
+
+ if (!self.hasClass(opts.initClass)) {
+
+ /**
+ * confirm build to prevent rebuild error
+ **/
+ self.addClass(opts.initClass);
+
+ /**
+ * add a mark [+] to a multilevel menu
+ **/
+ self.find("li").each(function() {
+ if ($(this).find("ul").length !== 0) {
+
+ /**
+ * add the multilevel sign next to the link
+ **/
+ $(this).find("a:first").append("
" + opts.closedSign + "");
+
+ /**
+ * avoid jumping to the top of the page when the href is an #
+ **/
+ if ($(this).find("a:first").attr('href') == "#") {
+ $(this).find("a:first").click(function() {
+ return false;
+ });
+ }
+ }
+ });
+
+ /**
+ * add open sign to all active lists
+ **/
+ self.find("li.active").each(function() {
+ $(this).parents("ul")
+ .parent("li")
+ .find("a:first")
+ .attr('aria-expanded', true)
+ .find("b:first")
+ .html(opts.openedSign);
+ });
+
+ /**
+ * click events
+ **/
+ self.find("li a").on('mousedown', function(e) {
+
+ if ($(this).parent().find("ul").length !== 0) {
+
+ if (opts.accordion) {
+
+ /**
+ * do nothing when the list is open
+ **/
+ if (!$(this).parent().find("ul").is(':visible')) {
+
+ parents = $(this).parent().parents("ul");
+ visible = self.find("ul:visible");
+ visible.each(function(visibleIndex) {
+ var close = true;
+ parents.each(function(parentIndex) {
+
+ if (parents[parentIndex] == visible[visibleIndex]) {
+
+ close = false;
+ return false;
+ }
+ });
+ if (close) {
+
+ if ($(this).parent().find("ul") != visible[visibleIndex]) {
+
+ $(visible[visibleIndex]).slideUp(opts.speed + 300, opts.animate, function() {
+ $(this).parent("li")
+ .removeClass("open")
+ .find("a:first")
+ .attr('aria-expanded', false)
+ .find("b:first")
+ .html(opts.closedSign);
+
+ if (myapp_config.debugState)
+ console.log("nav item closed")
+ });
+ }
+ }
+ });
+ }
+ }
+
+ /**
+ * Add active class to open element
+ **/
+ if ($(this).parent().find("ul:first").is(":visible") && !$(this).parent().find("ul:first").hasClass("active")) {
+
+ $(this).parent().find("ul:first").slideUp(opts.speed + 100, opts.animate, function() {
+ $(this).parent("li")
+ .removeClass("open")
+ .find("a:first")
+ .attr('aria-expanded', false)
+ .find("b:first").delay(opts.speed)
+ .html(opts.closedSign);
+
+ if (myapp_config.debugState)
+ console.log("nav item closed")
+ });
+ } else {
+ $(this).parent().find("ul:first").slideDown(opts.speed, opts.animate, function() {
+
+ $(this).parent("li")
+ .addClass("open")
+ .find("a:first")
+ .attr('aria-expanded', true)
+ .find("b:first").delay(opts.speed)
+ .html(opts.openedSign);
+
+ if (myapp_config.debugState)
+ console.log("nav item opened");
+
+ });
+ }
+ }
+ });
+
+ } else {
+
+ if (myapp_config.debugState)
+ console.log(self.get(0) + " this menu already exists");
+ }
+
+ },
+
+ /**
+ * DOC: $(id).destroy();
+ **/
+ navigationDestroy: function() {
+
+ self = $(this);
+
+ if (self.hasClass(myapp_config.navInitalized)) {
+ self.find("li").removeClass("active open");
+ self.find("li a").off('mousedown').removeClass("active").removeAttr("aria-expanded").find(".collapse-sign").remove();
+ self.removeClass(myapp_config.navInitalized).find("ul").removeAttr("style");
+
+ if (myapp_config.debugState)
+ console.log( self.get(0) + " destroyed");
+
+ } else {
+ console.log("menu does not exist")
+ }
+
+
+ }
+ });
+
+})(jQuery, window, document);
\ No newline at end of file