From 63d1cc182f50d67679e27826534834784ca6f94d Mon Sep 17 00:00:00 2001 From: Jeremy Tan Date: Sun, 6 Oct 2013 19:35:41 +0800 Subject: [PATCH] Update gui. Add modified version of Justin's system diagram --- testing/MCTXWeb/README.txt | 5 +- testing/MCTXWeb/public_html/control.html | 126 +++++ testing/MCTXWeb/public_html/index.html | 147 +++--- testing/MCTXWeb/public_html/login.html | 5 - testing/MCTXWeb/public_html/pintest.html | 7 - .../static/jquery.maphilight.min.js | 1 + .../MCTXWeb/public_html/static/mctx.gui.js | 2 +- testing/MCTXWeb/public_html/static/sbd.png | Bin 0 -> 23657 bytes testing/MCTXWeb/public_html/static/style.css | 23 +- .../raw_data_not_for_publication/sbd.svg | 492 ++++++++++++++++++ .../uwacrest-text.svg | 0 11 files changed, 714 insertions(+), 94 deletions(-) create mode 100644 testing/MCTXWeb/public_html/control.html create mode 100644 testing/MCTXWeb/public_html/static/jquery.maphilight.min.js create mode 100644 testing/MCTXWeb/public_html/static/sbd.png create mode 100644 testing/MCTXWeb/raw_data_not_for_publication/sbd.svg rename testing/{ => MCTXWeb/raw_data_not_for_publication}/uwacrest-text.svg (100%) diff --git a/testing/MCTXWeb/README.txt b/testing/MCTXWeb/README.txt index a25342b..808af14 100644 --- a/testing/MCTXWeb/README.txt +++ b/testing/MCTXWeb/README.txt @@ -4,4 +4,7 @@ mctx.debug = true In mctx.gui.js to prevent browser redirects and to enable debug messages. -Debug messages are printed to the browser console. (Ctrl+Shift+K in Firefox) \ No newline at end of file +Debug messages are printed to the browser console. (Ctrl+Shift+K in Firefox) + +Files which are needed to generate stuff for public_html, but that are not +directly displayed go in raw_data_not_for_publication. e.g svg files \ No newline at end of file diff --git a/testing/MCTXWeb/public_html/control.html b/testing/MCTXWeb/public_html/control.html new file mode 100644 index 0000000..71ee445 --- /dev/null +++ b/testing/MCTXWeb/public_html/control.html @@ -0,0 +1,126 @@ + + + + MCTX3420 Web Interface + + + + + + + + + + + + + + + + + +
+ + + +
+
+
Controls
+ Main controls +
+ + + + + + + + + + + + + +
Experiment name
Experiment mode + Strain it + Explode it +
+ + + + +
+
+ Error and warning messages
+ +
+
+ + +
+ + diff --git a/testing/MCTXWeb/public_html/index.html b/testing/MCTXWeb/public_html/index.html index 9f2ab04..e1b769e 100644 --- a/testing/MCTXWeb/public_html/index.html +++ b/testing/MCTXWeb/public_html/index.html @@ -3,12 +3,7 @@ MCTX3420 Web Interface - - - @@ -21,18 +16,10 @@ //Set the welcome bar var name = " " + (mctx.friendlyName ? mctx.friendlyName : ""); $("#welcome-container").text("Welcome"+ name + "!"); - //$("#menu-container").populateNavbar(); - + $("#logout-container").css("display", "block"); $("#logout").click(function () { $("#logout").logout(); }); - - $("#main_controls").submit(function () { - //Validate! - return false; - }); - - $("#errorlog").setErrorLog(); }); }) @@ -49,8 +36,6 @@ Exploding Cans
- @@ -68,79 +53,95 @@
+ +
-
Dashboard
- - Main controls -
- - - - - - - - - - - - - -
Experiment name
Experiment mode - Strain it - Explode it -
- - - - -
-
- Error and warning messages
- -
- -
-
Strain gauges
-
- -
+
Welcome
+

+ Welcome to the MCTX3420 remote pressure vessel experiment site! +

+

+ To explore how this system works, hover over the elements of the + system diagram below. Clicking each element will lead to a new + page that describes that component of the system. +

+

+ To begin a new experiment, use the left navigation pane. +

-
-
Camera Feed
- Camera 1 +
System diagram
+ System diagram + + Client PC + BBB + Electronics + Pneumatics + Sensors + Camera + Strain Can + Explode Can + Enclosure + Mounting + Mounting Area + Enclosure Area + + +
-
diff --git a/testing/MCTXWeb/public_html/login.html b/testing/MCTXWeb/public_html/login.html index caa6185..c833e12 100644 --- a/testing/MCTXWeb/public_html/login.html +++ b/testing/MCTXWeb/public_html/login.html @@ -3,12 +3,7 @@ MCTX3420 Web Interface - - - diff --git a/testing/MCTXWeb/public_html/pintest.html b/testing/MCTXWeb/public_html/pintest.html index 254bd09..bd74562 100644 --- a/testing/MCTXWeb/public_html/pintest.html +++ b/testing/MCTXWeb/public_html/pintest.html @@ -3,12 +3,7 @@ MCTX3420 Web Interface - - - @@ -82,8 +77,6 @@ BBB Pin test (debug only)
- diff --git a/testing/MCTXWeb/public_html/static/jquery.maphilight.min.js b/testing/MCTXWeb/public_html/static/jquery.maphilight.min.js new file mode 100644 index 0000000..ec9d021 --- /dev/null +++ b/testing/MCTXWeb/public_html/static/jquery.maphilight.min.js @@ -0,0 +1 @@ +(function(G){var B,J,C,K,N,M,I,E,H,A,L;J=!!document.createElement("canvas").getContext;B=(function(){var P=document.createElement("div");P.innerHTML='';var O=P.firstChild;O.style.behavior="url(#default#VML)";return O?typeof O.adj=="object":true})();if(!(J||B)){G.fn.maphilight=function(){return this};return }if(J){E=function(O){return Math.max(0,Math.min(parseInt(O,16),255))};H=function(O,P){return"rgba("+E(O.substr(0,2))+","+E(O.substr(2,2))+","+E(O.substr(4,2))+","+P+")"};C=function(O){var P=G('').get(0);P.getContext("2d").clearRect(0,0,P.width,P.height);return P};var F=function(Q,O,R,P,S){P=P||0;S=S||0;Q.beginPath();if(O=="rect"){Q.rect(R[0]+P,R[1]+S,R[2]-R[0],R[3]-R[1])}else{if(O=="poly"){Q.moveTo(R[0]+P,R[1]+S);for(i=2;i').get(0)};K=function(P,T,U,X,O){var V,W,R,S;for(var Q in U){U[Q]=parseInt(U[Q],10)}V='';W=(X.stroke?'strokeweight="'+X.strokeWidth+'" stroked="t" strokecolor="#'+X.strokeColor+'"':'stroked="f"');R='';if(T=="rect"){S=G('')}else{if(T=="poly"){S=G('')}else{if(T=="circ"){S=G('')}}}S.get(0).innerHTML=V+R;G(P).append(S)};N=function(P){var O=G("
"+P.innerHTML+"
");O.children("[name=highlighted]").remove();P.innerHTML=O.html()}}M=function(P){var O,Q=P.getAttribute("coords").split(",");for(O=0;O0)){return }if(U.hasClass("maphilighted")){var P=U.parent();U.insertBefore(P);P.remove();G(Q).unbind(".maphilight").find("area[coords]").unbind(".maphilight")}R=G("
").css({display:"block",background:'url("'+this.src+'")',position:"relative",padding:0,width:this.width,height:this.height});if(Y.wrapClass){if(Y.wrapClass===true){R.addClass(G(this).attr("class"))}else{R.addClass(Y.wrapClass)}}U.before(R).css("opacity",0).css(I).remove();if(B){U.css("filter","Alpha(opacity=0)")}R.append(U);T=C(this);G(T).css(I);T.height=this.height;T.width=this.width;X=function(c){var a,b;b=L(this,Y);if(!b.neverOn&&!b.alwaysOn){a=M(this);K(T,a[0],a[1],b,"highlighted");if(b.groupBy){var Z;if(/^[a-zA-Z][\-a-zA-Z]+$/.test(b.groupBy)){Z=Q.find("area["+b.groupBy+'="'+G(this).attr(b.groupBy)+'"]')}else{Z=Q.find(b.groupBy)}var d=this;Z.each(function(){if(this!=d){var f=L(this,Y);if(!f.neverOn&&!f.alwaysOn){var e=M(this);K(T,e[0],e[1],f,"highlighted")}}})}if(!J){G(T).append("")}}};G(Q).bind("alwaysOn.maphilight",function(){if(V){N(V)}if(!J){G(T).empty()}G(Q).find("area[coords]").each(function(){var Z,a;a=L(this,Y);if(a.alwaysOn){if(!V&&J){V=C(U[0]);G(V).css(I);V.width=U[0].width;V.height=U[0].height;U.before(V)}a.fade=a.alwaysOnFade;Z=M(this);if(J){K(V,Z[0],Z[1],a,"")}else{K(T,Z[0],Z[1],a,"")}}})});G(Q).trigger("alwaysOn.maphilight").find("area[coords]").bind("mouseover.maphilight",X).bind("mouseout.maphilight",function(Z){N(T)});U.before(T);U.addClass("maphilighted")})};G.fn.maphilight.defaults={fill:true,fillColor:"000000",fillOpacity:0.2,stroke:true,strokeColor:"ff0000",strokeOpacity:1,strokeWidth:1,fade:true,alwaysOn:false,neverOn:false,groupBy:false,wrapClass:true,shadow:false,shadowX:0,shadowY:0,shadowRadius:6,shadowColor:"000000",shadowOpacity:0.8,shadowPosition:"outside",shadowFrom:false}})(jQuery); \ No newline at end of file diff --git a/testing/MCTXWeb/public_html/static/mctx.gui.js b/testing/MCTXWeb/public_html/static/mctx.gui.js index 9d0270b..106a4b4 100644 --- a/testing/MCTXWeb/public_html/static/mctx.gui.js +++ b/testing/MCTXWeb/public_html/static/mctx.gui.js @@ -16,7 +16,7 @@ mctx.location = mctx.location.substring(0, mctx.location.lastIndexOf('/')) + "/" mctx.api = location.protocol + "//" + location.host + "/" + "api/"; mctx.expected_api_version = 0; mctx.has_control = false; -//mctx.debug = true; +mctx.debug = true; mctx.statusCodes = { STATUS_OK : 1 diff --git a/testing/MCTXWeb/public_html/static/sbd.png b/testing/MCTXWeb/public_html/static/sbd.png new file mode 100644 index 0000000000000000000000000000000000000000..4938d3149211b6bd6ef1a5a8d20d097138cab14a GIT binary patch literal 23657 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ú)916#FfnC*eUnSwFbHeD9 zQ-REoL%-#1C%=zmz{rehc=qMZAdt?Z7q9%xbj{x~~t@zpZ7|1mZ4pL`7c zdR`@k1j|1f-X=3kZ2G<7wj7d~`~w>dJll0?dhwM@M#OYDgh^u0ZMoJqeSP;IOS_@I zHjVxDz_+>n*-VBq8JYZ7v3H#L9J-JgHiMOSrS|o-1!(zM4H8?m*nk;X_x%#L@FWqI zUeN86kuxc7H}SY`^=ME&KfBCB0$jCO=PZ_h!OVYQouFEBxqF!NvATAA!3H0TLwMbD7ie)3pQu-ljRKb-6zJ!(v?KO&1eH1 z@HmxI{DIAbW5X%wO#Y!xtu!-yLI?6~MFrMYsRwQM{wS?%&GXMlyuKP(F+DZGMRq3* z?9E9N+dC&xQZmti!RqKuWU~L1Z9@$%N1#j|3xXFVJcCWDhO=4fjz;G#*kD#Ov>M{8 z@+*&>=2N

=ZFPF?Lq!};TKX^%? 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 Z&4ddhCozv`0Soanst+D16)HkP{s%;j=m!7* literal 0 HcmV?d00001 diff --git a/testing/MCTXWeb/public_html/static/style.css b/testing/MCTXWeb/public_html/static/style.css index 18a6b8e..2ff0cb1 100644 --- a/testing/MCTXWeb/public_html/static/style.css +++ b/testing/MCTXWeb/public_html/static/style.css @@ -37,6 +37,10 @@ a:active { color: #0066BB; } +img { + border: none; +} + .pass { color: #7AE309; font-weight: bold; @@ -49,6 +53,7 @@ a:active { div.centre { text-align: center; + margin: auto; } .bold { @@ -170,6 +175,11 @@ input[type="text"]:focus, input[type="password"]:focus { display: inline-block; } +#header #logout-container { + /* Hide until activated by JavaScript */ + display: none; +} + #header #date { font-size: 12px; } @@ -186,7 +196,6 @@ input[type="text"]:focus, input[type="password"]:focus { #sidebar .title { font-size: 20px; - font-weight: bold; } #sidebar .item { @@ -200,18 +209,18 @@ input[type="text"]:focus, input[type="password"]:focus { min-width: 400px; } -#main .title { - font-size: 24px; - font-weight: bold; - margin-bottom: 0.5em; -} - #main .sub-title { font-size: 18px; font-weight: bold; margin-bottom: 0.25em; } +.title { + font-size: 24px; + font-weight: bold; + margin-bottom: 0.5em; +} + .graph { width: 100%; height: 200px; diff --git a/testing/MCTXWeb/raw_data_not_for_publication/sbd.svg b/testing/MCTXWeb/raw_data_not_for_publication/sbd.svg new file mode 100644 index 0000000..5637133 --- /dev/null +++ b/testing/MCTXWeb/raw_data_not_for_publication/sbd.svg @@ -0,0 +1,492 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + Client PC + + + + + + + Beaglebone + + + + Electronicsboard + + + + Pneumatics + + + + + + + Sensors + + + + Strain can + + + + + + Camera + + + + Explodingcan + + + + + + Controls & + Data Signals + + Pressurised air + + + Control Signals + + + + Controls & + Data Signals + + + Data Signals + Data Signals + + Pressurised air + + Mains electricity + + + + Enclosure + + + + Mounting + + + Interlocks + + diff --git a/testing/uwacrest-text.svg b/testing/MCTXWeb/raw_data_not_for_publication/uwacrest-text.svg similarity index 100% rename from testing/uwacrest-text.svg rename to testing/MCTXWeb/raw_data_not_for_publication/uwacrest-text.svg -- 2.20.1