From 23ff8d2cdf5c7ab7a703938632f34beb6f2ef947 Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Mon, 15 Aug 2016 16:45:10 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9D2016-08-15=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mdot_server/mdot_server/app/css/style.css | 66 +++ mdot/mdot_server/mdot_server/app/js/mdot.js | 422 ++++++++++++------ .../mdot_server/app/lib/images/dragIcon.gif | Bin 0 -> 122 bytes .../app/lib/images/dragIconBlack.gif | Bin 0 -> 122 bytes .../mdot_server/app/lib/images/dragIconH.gif | Bin 0 -> 111 bytes .../app/lib/images/dragIconHBlack.gif | Bin 0 -> 111 bytes .../app/lib/images/dragIconRectBig.png | Bin 0 -> 1235 bytes .../app/lib/images/dragIconRectBig.svg | 15 + .../app/lib/images/dragIconRectBigBlack.png | Bin 0 -> 1205 bytes .../app/lib/images/dragIconRectBigBlack.svg | 14 + .../app/lib/images/dragIconRectBigBlackH.png | Bin 0 -> 681 bytes .../app/lib/images/dragIconRectBigBlackH.svg | 13 + .../app/lib/images/dragIconRectBigH.png | Bin 0 -> 715 bytes .../app/lib/images/dragIconRectBigH.svg | 13 + .../app/lib/images/dragIconRectSmall.png | Bin 0 -> 1110 bytes .../app/lib/images/dragIconRectSmall.svg | 15 + .../app/lib/images/dragIconRectSmallBlack.png | Bin 0 -> 1087 bytes .../app/lib/images/dragIconRectSmallBlack.svg | 15 + .../lib/images/dragIconRectSmallBlackH.png | Bin 0 -> 1092 bytes .../lib/images/dragIconRectSmallBlackH.svg | 15 + .../app/lib/images/dragIconRectSmallH.png | Bin 0 -> 1115 bytes .../app/lib/images/dragIconRectSmallH.svg | 15 + .../app/lib/images/dragIconRoundBig.png | Bin 0 -> 1333 bytes .../app/lib/images/dragIconRoundBig.svg | 15 + .../app/lib/images/dragIconRoundBigBlack.png | Bin 0 -> 1090 bytes .../app/lib/images/dragIconRoundBigBlack.svg | 15 + .../app/lib/images/dragIconRoundBigBlackH.png | Bin 0 -> 1095 bytes .../app/lib/images/dragIconRoundBigBlackH.svg | 15 + .../app/lib/images/dragIconRoundBigH.png | Bin 0 -> 1368 bytes .../app/lib/images/dragIconRoundBigH.svg | 15 + .../app/lib/images/dragIconRoundSmall.png | Bin 0 -> 1273 bytes .../app/lib/images/dragIconRoundSmall.svg | 15 + .../lib/images/dragIconRoundSmallBlack.png | Bin 0 -> 1205 bytes .../lib/images/dragIconRoundSmallBlack.svg | 15 + .../lib/images/dragIconRoundSmallBlackH.png | Bin 0 -> 1190 bytes .../lib/images/dragIconRoundSmallBlackH.svg | 15 + .../app/lib/images/dragIconRoundSmallH.png | Bin 0 -> 1274 bytes .../app/lib/images/dragIconRoundSmallH.svg | 15 + .../mdot_server/app/lib/images/eraserIcon.gif | Bin 0 -> 91 bytes .../mdot_server/app/lib/images/eraserIcon.png | Bin 0 -> 1706 bytes .../mdot_server/app/lib/images/eraserIcon.svg | 15 + .../app/lib/images/eraserIconH.gif | Bin 0 -> 107 bytes .../app/lib/images/eraserIconH.png | Bin 0 -> 1728 bytes .../app/lib/images/eraserIconH.svg | 15 + .../mdot_server/app/lib/images/export.png | Bin 0 -> 216 bytes .../app/lib/images/exportWhite.png | Bin 0 -> 213 bytes .../mdot_server/app/lib/images/lens.png | Bin 0 -> 1408 bytes .../mdot_server/app/lib/images/lens.svg | 7 + .../mdot_server/app/lib/images/lensWhite.png | Bin 0 -> 1313 bytes .../mdot_server/app/lib/images/lensWhite.svg | 7 + .../app/lib/images/lensWhite_old.png | Bin 0 -> 262 bytes .../mdot_server/app/lib/images/lens_old.png | Bin 0 -> 257 bytes .../mdot_server/app/lib/images/pencilIcon.gif | Bin 0 -> 97 bytes .../mdot_server/app/lib/images/pencilIcon.png | Bin 0 -> 1695 bytes .../mdot_server/app/lib/images/pencilIcon.svg | 22 + .../app/lib/images/pencilIconH.gif | Bin 0 -> 113 bytes .../app/lib/images/pencilIconH.png | Bin 0 -> 1677 bytes .../app/lib/images/pencilIconH.svg | 22 + .../mdot_server/app/lib/images/xIcon.gif | Bin 0 -> 93 bytes .../mdot_server/app/lib/images/xIcon.png | Bin 0 -> 1564 bytes .../mdot_server/app/lib/images/xIcon.svg | 7 + .../mdot_server/app/lib/images/xIconH.gif | Bin 0 -> 79 bytes .../mdot_server/app/lib/images/xIconH.png | Bin 0 -> 1194 bytes .../mdot_server/app/lib/images/xIconH.svg | 7 + mdot/mdot_server/mdot_server/app/test.html | 369 ++++++++------- .../mdot_server/lib/server/db-mdot.js | 4 +- 66 files changed, 865 insertions(+), 333 deletions(-) create mode 100644 mdot/mdot_server/mdot_server/app/css/style.css create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIcon.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconBlack.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconH.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconHBlack.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlackH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlackH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlack.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlack.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIconH.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIconH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/eraserIconH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/export.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/exportWhite.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lens.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lens.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lensWhite.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lensWhite.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lensWhite_old.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/lens_old.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIcon.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIcon.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIcon.svg create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIconH.gif create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIconH.png create mode 100644 mdot/mdot_server/mdot_server/app/lib/images/xIconH.svg diff --git a/mdot/mdot_server/mdot_server/app/css/style.css b/mdot/mdot_server/mdot_server/app/css/style.css new file mode 100644 index 0000000..53ab041 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/css/style.css @@ -0,0 +1,66 @@ +.amChartsDataSetSelector +{ + font-size:12px; + font-family:verdana,helvetica,arial,sans-serif; +} + +.amChartsPeriodSelector +{ + font-size:12px; + font-family:verdana,helvetica,arial,sans-serif; +} + +.amChartsButtonSelected +{ + background-color:#CC0000; + border-style:solid; + border-color:#CC0000; + border-width:1px; + color:#FFFFFF; + -moz-border-radius: 5px; + border-radius: 5px; + margin: 1px; + outline: none; + box-sizing: border-box; +} + +.amChartsButton +{ + color: #000000; + background: transparent; + opacity: 0.7; + border: 1px solid rgba(0, 0, 0, .3); + -moz-border-radius: 5px; + border-radius: 5px; + margin: 1px; + outline: none; + box-sizing: border-box; +} + +.amChartsCompareList +{ + border-style:solid; + border-color:#CCCCCC; + border-width:1px; +} + +.amChartsCompareList div +{ + -webkit-box-sizing: initial; + box-sizing: initial; +} + +.amChartsInputField +{ + +} + +.amChartsLegend +{ + +} + +.amChartsPanel +{ + +} \ No newline at end of file diff --git a/mdot/mdot_server/mdot_server/app/js/mdot.js b/mdot/mdot_server/mdot_server/app/js/mdot.js index 61bbc79..b1327a0 100644 --- a/mdot/mdot_server/mdot_server/app/js/mdot.js +++ b/mdot/mdot_server/mdot_server/app/js/mdot.js @@ -1,9 +1,8 @@ 'use strict'; -/* global Backbone, _, $ */ +/* global Backbone, _, $, AmCharts */ /* global mainview */ /* jshint browser: true , devel: true*/ - (function($) { var mqttConfig = { @@ -25,24 +24,26 @@ var EventsModel = Backbone.Model.extend({ initialize: function() { _.bindAll(this, 'processAdded'); - this.on('all',function(d) { - console.log('model:all',d); - this.temporal = {low: 0,high: 0}; + this.on('all', function(d) { + console.log('model:all', d); + this.temporal = {low: 0, high: 0}; + }); + this.on('remove', function() { + $('#output').empty(); }); - this.on('add',function() { + this.on('add', function() { this.processAdded(); }); - }, - processAdded: function() { + }, processAdded: function() { console.log('Model:ProcessAdded'); var tempCollection = new Backbone.Collection(); _.invoke(DeviceCollection.toArray(), 'destroy'); - this.temporal = {low: 0,high: 0}; + this.temporal = {low: 0, high: 0}; _(this.get('events')).each(function(i) { if (this.temporal.low === 0 || this.temporal.low > i.timestamp) { @@ -53,7 +54,14 @@ this.temporal.high = i.timestamp; } - tempCollection.add({dt: i.timestamp,lux: i.lux, temp: i.temp, co2: i.co2, humid: i.humidity, noise: i.sound}); + tempCollection.add({ + dt: i.timestamp, + lux: i.lux, + temp: i.temp, + co2: i.co2, + humid: i.humidity, + noise: i.sound + }); }, this); DeviceCollection.temporal = this.temporal; @@ -61,26 +69,33 @@ DeviceCollection.models = tempCollection.models; DeviceCollection.trigger('update'); console.log('temporal:', this.temporal); - }, - decoder: function(data) { + }, decoder: function(data) { var _obj = {}; var _data = window.atob(data).split(''); var bytes = _data.map(i => i.charCodeAt()); - _obj.light = parseInt('0x' + ('0' + bytes[0]).substr(-2) + ('0' + bytes[1]).substr(-2)); - _obj.co2 = parseInt(_data[2] + _data[3] + _data[4] + _data[5] + _data[6], 10); - _obj.temp = (parseInt(_data[7] + _data[8] + _data[9] + _data[10] + _data[11], 10) - 1000) / 10; - _obj.humid = (parseInt(_data[12] + _data[13] + _data[14] + _data[15] + _data[16], 10) / 10); - _obj.noise = parseInt('0x' + ('0' + bytes[17]).substr(-2) + ('0' + bytes[18]).substr(-2)); + _obj.light = parseInt('0x' + ('0' + bytes[0]).substr(-2) + ('0' + bytes[1]).substr( + -2)); + _obj.co2 = parseInt(_data[2] + _data[3] + _data[4] + _data[5] + _data[6], + 10); + _obj.temp = (parseInt(_data[7] + _data[8] + _data[9] + _data[10] + _data[11], + 10) - 1000) / 10; + _obj.humid = (parseInt(_data[12] + _data[13] + _data[14] + _data[15] + _data[16], + 10) / 10); + _obj.noise = parseInt('0x' + ('0' + bytes[17]).substr(-2) + ('0' + bytes[18]).substr( + -2)); _obj.binData = bytes; return _obj; - }, - dateTime: function($date) { + }, dateTime: function($date) { var dateTime = new Date.create($date); var date = dateTime.format('{yyyy}-{MM}-{dd}'); var time = dateTime.format('{HH}:{mm}:{ss}'); - return {dateTime: dateTime.format('{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}'), date: date, time: time}; + return { + dateTime: dateTime.format('{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}'), + date: date, + time: time + }; } }); @@ -111,8 +126,6 @@ } }); - - var MDOT = Backbone.View.extend({ model: EventsModel, el: $('#output'), @@ -122,8 +135,9 @@ _.bindAll(this, 'render', 'refresh', 'update'); this.collection.bind('change reset add remove', this.render, this); - this.template = _.template($('#list-template').html()); - this.render(); + //This.template = _.template($('#list-template').html()); + this.template = _.template($('#loaded-template').html()); + //This.render(); }, refresh: function() { }, update: function() { @@ -136,64 +150,60 @@ }, render: function() { console.log('MDOT:render'); - + $('#output').empty(); var that = this; - this.$el.empty(); - this.collection.each(function(model) { - var events = model.get('events'); - var e = new ItemView({model: model.toJSON()}).render().el; + that.$el.append(this.template); - console.log('render:done:'); - that.$el.append(e); + /* Var that = this; + this.$el.empty(); + this.collection.each(function(model) { + var events = model.get('events'); + var e = new ItemView({model: model.toJSON()}).render().el; - }); - console.log('bah'); + console.log('render:done:'); + that.$el.append(e); + + }); + console.log('bah');*/ return this; } }); - var MainModel = Backbone.Model.extend({}); var MainView = Backbone.View.extend({ - el: $('#main'), - template: _.template($('#main-template').html()), - events: { - 'change select#device': 'changeDevice', - 'click button#refresh': 'updateDevice', - 'change input#from': 'changeDate', - 'change input#to': 'changeDate', - submit: function(event) {} + el: $('#main'), template: _.template($('#main-template').html()), events: { + 'change select#device': 'changeDevice', + 'click button#refresh': 'updateDevice', + 'change input#from': 'changeDate', + 'change input#to': 'changeDate', + submit: function(event) {} - }, - initialize: function() { - _.bindAll(this, 'render','changeDevice', 'updateDevice'); + }, initialize: function() { + _.bindAll(this, 'render', 'changeDevice', 'updateDevice'); - this.model.on('change',this.updateDevice); - console.log('MainView:', this); - this.render(); - }, - render: function() { + this.model.on('change', this.updateDevice); + console.log('MainView:', this); + this.render(); + }, render: function() { $(this.el).html(this.template()); return this; - },changeDate: function(elm) { - console.log('ChangeDate', elm); + }, changeDate: function(elm) { + console.log('ChangeDate', elm); - if (elm.currentTarget.valueAsDate === null) { - this.model.unset(elm.currentTarget.id); - } else { - this.model.set(elm.currentTarget.id, elm.currentTarget.valueAsDate); - } + if (elm.currentTarget.valueAsDate === null) { + this.model.unset(elm.currentTarget.id); + } else { + this.model.set(elm.currentTarget.id, elm.currentTarget.valueAsDate); + } - }, - changeDevice: function() { + }, changeDevice: function() { var newDevice; console.log('MainView:ChangeDevice'); newDevice = this.$el.find('#device')[0].value; this.model.set('device', newDevice); - }, - updateDevice: function() { + }, updateDevice: function() { var fetchObj = {beforeSend: sendAuthentication}; var rangeObj = {start: null, end: null}; console.log('MainView:Updatedevice'); @@ -206,8 +216,10 @@ // FetchObj.data = $.param({key:'"'+ this.model.get('device') + '"'}); // this.collection.url = 'https://qz0da4.internetofthings.ibmcloud.com/api/v0002/historian/types/mDot/devices/' + this.model.get('device'); // this.collection.url = '/api/mdot/' + this.model.get('device'); - this.collection.url = '/apiv2/mdot/' + this.model.get('device'); + this.collection.url = '/apiv2/mdot/' + this.model.get('device'); // this.collection.url = 'http://127.0.0.1:5984/mdot/_design/getDevice/_view/getDevice'; + + $('#output').empty(); this.collection.fetch(fetchObj); } else { console.error('Nothing to get!'); @@ -221,32 +233,32 @@ el: $('#graph'), template: _.template($('#AMChart-template').html()), initialize: function() { - this.modes = ['','lux','temp','co2','humid','noise']; - this.mode = 0; + this.modes = ['', 'lux', 'temp', 'co2', 'humid', 'noise']; + this.titles = ['','Light Levels','Temperature','Co2 Levels','Humidity','Sound']; + this.mode = 0; - // Config AMChart - this.chart = new AmCharts.AmStockChart(); - this.categoryAxesSettings = new AmCharts.CategoryAxesSettings(); - this.dataSet = new AmCharts.DataSet(); + // Config AMChart + this.chart = new AmCharts.AmStockChart(); + this.categoryAxesSettings = new AmCharts.CategoryAxesSettings(); + this.dataSet = new AmCharts.DataSet(); - console.log('GraphView!'); - _.bindAll(this, 'render', 'changeMode', 'updateGraph','setupChart'); - this.collection.on('update',function(d) { - if (this.mode > 0) { - this.updateGraph(); - } - }, this); + console.log('GraphView!'); + _.bindAll(this, 'render', 'changeMode', 'updateGraph', 'setupChart'); + this.collection.on('update', function(d) { + if (this.mode > 0) { + this.updateGraph(); + } + }, this); - this.render(); - // This.setupChart(); - }, + this.render(); + // This.setupChart(); + }, events: { - 'change select#displaymode': 'changeMode' - }, + 'change select#displaymode': 'changeMode' + }, render: function() { $(this.el).html(this.template()); - return this; }, setupChart: function() { @@ -262,78 +274,209 @@ }, changeMode: function() { - this.mode = this.$el.find('#displaymode')[0].value; - this.updateGraph(); - console.log('new mode:', this.mode); + this.mode = this.$el.find('#displaymode')[0].value; + this.updateGraph(); + console.log('new mode:', this.mode); - }, + }, updateGraph: function() { + var self = this; + let getMode = this.modes[this.mode]; - var calcArray; - var startX; - var xstep; - var scale; - let ceiling, ceilingLimit; - let points = []; - let data = []; - let circle, title; - let getMode = this.modes[this.mode]; - var occupied; + var chartData = []; - var chartData = []; + var temporal = {high: 0, low: 0}; + var HL = {high: 0, low: 0}; - _(this.collection.models).each(function(i) { - chartData.push({ - date: i.get('dt'), - value: i.get(getMode) - }); + var mode = parseInt(this.mode); + console.log('mode:', mode, this.mode); - }, this); + _(this.collection.models).each(function(i) { + var dt = i.get('dt'); + var obj; + var value, valueB; + if (mode < 6) { + value = i.get(getMode); + } else { + if (mode === 6) { + value = i.get(this.modes[1]); + valueB = i.get(this.modes[3]); + } else { + + value = i.get(this.modes[2]); + valueB = i.get(this.modes[4]); + + } + } + + if (temporal.low === 0 || dt < temporal.low) { + temporal.low = dt; + } + if (temporal.high === 0 || dt > temporal.high) { + temporal.high = dt; + } + + if (HL.low === 0 || value < HL.low) { + HL.low = value; + } + if (HL.high === 0 || value > HL.high) { + HL.high = value; + } + + obj = {date: dt, value: value}; + + if (mode => 6) { + obj.valueB = valueB; + } + chartData.push(obj); + + }, this); console.log(chartData); - this.dataSet.fieldMappings = [{ - fromField: 'value', - toField: 'value' - }]; + console.log('Doing chart now'); - this.dataSet.dataProvider = chartData; - this.chart.dataSets = [this.dataSet]; + //Debugger; + // SERIAL CHART + self.chart = new AmCharts.AmSerialChart(); + + //"2016-08-10T23:04:31.000Z" + self.chart.dataProvider = chartData; + self.chart.dataDateFormat = 'YYYY-MM-DDTHH:NN:SS.QQQ'; + self.chart.categoryField = 'date'; + + // AXES + // category + var categoryAxis = self.chart.categoryAxis; + categoryAxis.parseDates = true; // As our data is date-based, we set parseDates to true + categoryAxis.minPeriod = 'mm'; // Our data is daily, so we set minPeriod to DD + categoryAxis.gridAlpha = 0.1; + categoryAxis.minorGridAlpha = 0.1; + categoryAxis.axisAlpha = 0; + categoryAxis.minorGridEnabled = true; + categoryAxis.inside = true; + + // Value + var valueAxis = new AmCharts.ValueAxis(); + valueAxis.tickLength = 0; + valueAxis.axisAlpha = 0; + valueAxis.showFirstLabel = false; + valueAxis.showLastLabel = false; + valueAxis.title = this.titles[this.mode]; + valueAxis.position = 'left'; + self.chart.addValueAxis(valueAxis); + + if (mode === 6) { + var co2Axis = new AmCharts.ValueAxis(); + co2Axis.tickLength = 0; + co2Axis.axisAlpha = 0; + co2Axis.showFirstLabel = false; + co2Axis.showLastLabel = false; + co2Axis.title = 'Co2 Levels'; + co2Axis.position = 'right'; + self.chart.addValueAxis(co2Axis); + + } + + if (mode === 7) { + var otherAxis = new AmCharts.ValueAxis(); + otherAxis.tickLength = 0; + otherAxis.axisAlpha = 0; + otherAxis.showFirstLabel = false; + otherAxis.showLastLabel = false; + otherAxis.title = 'Humidity'; + otherAxis.position = 'right'; + self.chart.addValueAxis(otherAxis); + + } - var stockPanel1 = new AmCharts.StockPanel(); - stockPanel1.showCategoryAxis = false; - stockPanel1.title = 'Value'; - stockPanel1.percentHeight = 70; - - // Graph of first stock panel - var graph1 = new AmCharts.StockGraph(); - graph1.valueField = 'value'; - graph1.type = 'smoothedLine'; - graph1.lineThickness = 2; - graph1.bullet = 'round'; - graph1.bulletBorderColor = '#FFFFFF'; - graph1.bulletBorderAlpha = 1; - graph1.bulletBorderThickness = 3; - stockPanel1.addStockGraph(graph1); - - // Create stock legend - var stockLegend1 = new AmCharts.StockLegend(); - stockLegend1.valueTextRegular = ' '; - stockLegend1.markerType = 'none'; - stockPanel1.stockLegend = stockLegend1; - - this.chart.panels = [stockPanel1]; + // GRAPH + var graph = new AmCharts.AmGraph(); + graph.dashLength = 3; + graph.lineColor = '#00CC00'; + graph.valueField = 'value'; + graph.dashLength = 3; + graph.bullet = 'round'; + graph.balloonText = '[[category]]
value:[[value]]'; + self.chart.addGraph(graph); - var panelsSettings = new AmCharts.PanelsSettings(); - panelsSettings.mouseWheelZoomEnabled = true; - panelsSettings.usePrefixes = true; - this.chart.panelsSettings = panelsSettings; + if (mode === 6) { + var co2graph = new AmCharts.AmGraph(); + co2graph.valueField = 'valueB'; + co2graph.title = 'Co2'; + co2graph.type = 'line'; + co2graph.valueAxis = co2Axis; // Indicate which axis should be used + co2graph.lineColor = '#786c56'; + co2graph.lineThickness = 1; + co2graph.legendValueText = '[[description]]/[[value]]'; - this.chart.write('chartdiv'); + co2graph.bullet = 'round'; + co2graph.bulletSizeField = 'townSize'; // Indicate which field should be used for bullet size + co2graph.bulletBorderColor = '#786c56'; + co2graph.bulletBorderAlpha = 1; + co2graph.bulletBorderThickness = 2; + co2graph.bulletColor = '#000000'; + //Co2graph.labelText = "[[townName2]]"; // not all data points has townName2 specified, that's why labels are displayed only near some of the bullets. + co2graph.labelPosition = 'right'; + //Co2graph.balloonText = "latitude:[[value]]"; + co2graph.showBalloon = true; + co2graph.dashLengthField = 'dashLength'; + self.chart.addGraph(co2graph); - } + } + + if (mode === 7) { + var otherGraph = new AmCharts.AmGraph(); + otherGraph.valueField = 'valueB'; + otherGraph.title = 'Humidity'; + otherGraph.type = 'line'; + otherGraph.valueAxis = otherAxis; // Indicate which axis should be used + otherGraph.lineColor = '#786c56'; + otherGraph.lineThickness = 1; + otherGraph.legendValueText = '[[description]]/[[value]]'; + + otherGraph.bullet = 'round'; + otherGraph.bulletSizeField = 'townSize'; // Indicate which field should be used for bullet size + otherGraph.bulletBorderColor = '#786c56'; + otherGraph.bulletBorderAlpha = 1; + otherGraph.bulletBorderThickness = 2; + otherGraph.bulletColor = '#000000'; + //Co2graph.labelText = "[[townName2]]"; // not all data points has townName2 specified, that's why labels are displayed only near some of the bullets. + otherGraph.labelPosition = 'right'; + //Co2graph.balloonText = "latitude:[[value]]"; + otherGraph.showBalloon = true; + otherGraph.dashLengthField = 'dashLength'; + self.chart.addGraph(otherGraph); + + } + // CURSOR + var chartCursor = new AmCharts.ChartCursor(); + chartCursor.valueLineEnabled = true; + chartCursor.valueLineBalloonEnabled = true; + self.chart.addChartCursor(chartCursor); + + // SCROLLBAR + var chartScrollbar = new AmCharts.ChartScrollbar(); + self.chart.addChartScrollbar(chartScrollbar); + + /* // HORIZONTAL GREEN RANGE + var guide = new AmCharts.Guide(); + guide.value = 525; + guide.toValue = 575; + guide.fillColor = '#00CC00'; + guide.inside = true; + guide.fillAlpha = 0.2; + guide.lineAlpha = 0; + valueAxis.addGuide(guide);*/ + + // WRITE + + $('#chartdiv').empty(); + self.chart.write('chartdiv'); + + } }); @@ -342,7 +485,10 @@ var mdotCollection = new mDotCollection(); var mainSettings = new MainModel(); - var mainview = new MainView({collection: mdotCollection, model: mainSettings}); + var mainview = new MainView({ + collection: mdotCollection, + model: mainSettings + }); var mdot = new MDOT({collection: mdotCollection}); diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIcon.gif b/mdot/mdot_server/mdot_server/app/lib/images/dragIcon.gif new file mode 100644 index 0000000000000000000000000000000000000000..f11ed937b286f510f6d3282466085973b4b9ffe5 GIT binary patch literal 122 zcmZ?wbhEHb6k?EMn8?8J;K2h128RD&p!k!8k%57kK?f+p0Fq~5@}ASb^7LDYMLoI= z-T4uYKmIdDUus;iV#>1iNjd8KUTPot%5kx5_WgghpWha=2jxiENOiV7?GL}AJ9)#( XY}MUK3j=k8jV9V0ds4KRfx#L8hsiVB literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconBlack.gif b/mdot/mdot_server/mdot_server/app/lib/images/dragIconBlack.gif new file mode 100644 index 0000000000000000000000000000000000000000..52301cfefa92516c01a116591e0aa6e96384b79e GIT binary patch literal 122 zcmZ?wbhEHb6k?EMn8*ME|NsA&mzM{Uia%Kx85o!ubU>mYc?Kr$IsGe7zm-_jqubG) zAHn$JKWFr%#sw>;ENh>XqrUGY_mQt07t3bf|7ZL8Z9#ibj)aX=XWP^M@GH8LH>}K7 V-JP^BP)FEkqRp`|5+k;k+{(_5ZtE$XO>y81${;QB?bGt;)REI6sLDHR_0Apz{NB{r; literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconHBlack.gif b/mdot/mdot_server/mdot_server/app/lib/images/dragIconHBlack.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d65e462c45fca8d5fbe59dab2d2227f39635abf GIT binary patch literal 111 zcmZ?wbhEHblw=TMn8*ME|NsA&mzM{Uia%Kx85o!ubU>mYc?KqjIsGe7zvcIxvE`On z%e_7AQyCw5Ogk{W<(bx^j;g4uFXRfYU*tM7ZL7+HlN!510$Lu6#2=r>|D?vK?Mlbj KuCr=f4AuaV5G@}7 literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.png new file mode 100644 index 0000000000000000000000000000000000000000..e57ef66b718a24eb2907e6b831ff7abf44b85ada GIT binary patch literal 1235 zcmeAS@N?(olHy`uVBq!ia0vp^5DSr z1<%~X^wgl##FWaylc_cg49pdoArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XR4cQU}UIZZmDNz zYHDt7q@!SDU}&OmV5o0stZQg#WnyAwV4wg6Nh+i#(Mch>H3D2mX`VkM*2oZxz*Q}aqZU2K(rGI}YQDOLuS z#ukZ*X2!afCdrn%CI+S^x|YewCb||T25BjYrskHZDTXj}u<3U;wQx0abTM)U3|5U*Y<=c3falKi5O{QMkP zDhSBPFUc>?$S+WEb_U0~f`)Hma%LV#P!kkU5P!R*7G;*DrnnX5=PH0h+A0%^D~JmL zi2f9ELr@>+D1A_JK}tR_Az+#WG2xj3$bo04)I4AwDgtH}`S|&nz>N0M)5S5Q;?|pK zzFdb41X_KQGGjX)9P0JXe^U6x$=3VbgP;xn8g~R_PqqkF59-#Q?4d1NVIuG&&M5fS z@gBpyVd9I`*PmQk;;U+KYE#a-DYqn!JF#t=(3!KxQGUvSV_n5|A1{in{Tjw$*!=YB zHkEIz`q7_Kjy}D#P2)g~a(001w(sIE(%BBKvSiDgRTs1UIon*v^bg0`emHtLB>#|H zySGVl_Myi&&MvTIQ+zbH(paM_>3uiP8t1DFm#@cq?OejU{M6?f_BE_V6aR9>EfCD$ zkg_<##$U}i*HN7(t|y_XDafa?t#+ab52t^f^2!GfzbhVKP!63O_;Ar|Jy0>@>FVdQ I&MBb@0HW)lHvj+t literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.svg new file mode 100644 index 0000000..605e360 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBig.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..0d575c83f3f050277e75c734f86eaef7ccdf4ec7 GIT binary patch literal 1205 zcmbVMTWHi+7!IvBN(J$us1F+B1+C^fNoNvg9A+j{JGklAaTZ6>+SBArn{9J3Id#%L zctylMi4UUagS-3Wg#|&uRao0aydd61q@WfA@ltSQU!?5Ao=iJkABu>9D7s@YAk<+3%f)Ddh$jOV=sggTov_Qa6V%6R*D2C864Vw+ z<1{w|yUmsX4{jc4E$9P1x@=I%^<+FyumKAqKn7N??JGfos@PTVJ`}SQSy4ef32Gv! zqSi)c91oHbBhfl1@MKhGcu9&zg|(!>@gmFdEFYnHSrJ8rFbdl-UWM~m|I(;ZX z;YcS^uv|@>GHm;kL}AL<0JtpAaI9s8c~!K1l!yO^F|D>==yxHThrZM2>9`)HWmPcd z?(2?1MI4Rtqi5oxfL_(n`z&aqoSLBU4P%&w!pV^s08J5E7Im2xIZ32tT^H$?$dwEr zMP+F4RXfw+(^*k!64J6Ni7L-$#aLS9nz^hRNks)QE2XN~ob4lE>#*wE#J(r7v9Ds4 zj0XX7yn^HOR=c3B+d+=s?YLwnQ>i++N&~uShr-oip(gTHp=a)fMziNwWQA$PoFvs>@pF8SPSZN{!&z`gC;^7|S)KdgE7^y-sepTiqx){VVQK73Gr z?5Dl;7cMWke%L?os6+g$*Pfeyfm+{GV;+B9Kdv98UdpdV7i{`>`K*Pf+L}fVN+)Ix zE*WYV8`^O(_Ttcr;y!bzcU5Ei@XXW0+Qs6{)Y;MaZ-2Hd@`ksK$p5q~-m|l&p0Hv2 Unw94_so{?#mu*#lPj?*n5ANiYJOBUy literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.svg new file mode 100644 index 0000000..68eb9d2 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlack.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.png new file mode 100644 index 0000000000000000000000000000000000000000..293f19ff89841362891b424637243e9bd3be6d29 GIT binary patch literal 681 zcmV;a0#^NrP)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3Gc@@<@(WaGaElFMB5!g=gK7*= z;|kje!v}A3Rvi)hr>?NTs=(S;Ijb_-^{|3cY7PM)6$IF4ofN<T-Xh{-0H|=0Po+h^SkfQf2txtw@Sgn{5&hQy`Eay}mPb8H P00000NkvXXu0mjf6J#n_ literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.svg new file mode 100644 index 0000000..10a146f --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigBlackH.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectBigH.png new file mode 100644 index 0000000000000000000000000000000000000000..02e58a60ddbb949ba4a38e8f2030f34994021124 GIT binary patch literal 715 zcmV;+0yO=JP)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3G + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..21e413e8d4348be54e16533dfcca704af50210c8 GIT binary patch literal 1110 zcmaJ=TSyd97@iU=1uLS0F2ZRn&}!%AjO$Lj*|xLlVk5F`WZ8q`%+VdTxioWZSIvl6 z3W=by45AA}5e40Y9!jDx$%kHgh_I+Adx<~k6|HOc2n-TL zLAjo2M$PhOQMC+8@qDO^VPiBw1Zy(3qNX4MZLmW(L*%#n4@sbFA#$4_GqN3lNxi57>Und24l*)!85$hn|Yh#VKyEH{CO%aWqG37voaxL@ay@kx7JXk*3q> zG?lKTET@BJ1Azd|a5TsHu!qm>GLe$;nQmF0L4vO8=r+WEhB4{wqBxw=J1w!B=&~UlhpyG>sJLTQ=lG})&SND@?KGf?@>p#O8=VpB4TNFi$P#q)Jy5H4ECb{c z7xihh)cOU+&sFl6uWEWN<5+EGEs+_u&{z!ZwfCQP=S_HqyyN8X;>+atLle)ugNJ+X zsjFY`!x)N5;Y4Qi^T~$d$IPN=|ANEk`wGJLr{}M;rf==j^7Zzt_}Mk9^bfrsi{@QC zeYarFpqsne;^H*j?c(6S=u;TMV_vYGT zgAF5L>dEb==5XTJXc$4>O@ zr0zZ*8m!{S>OXBg&JL%p6y5PtqXXFz;kx^Eh`#-P@CMs6_QD){`EdVbqJW65zV){M SLE&=mrN^R;()CTP2mS&xiEiKk literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.svg new file mode 100644 index 0000000..ce93c50 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmall.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..ad102552a71c2a1c616a0118dbb442e11dd8e8a7 GIT binary patch literal 1087 zcmaJ=TSyd97#_0J1cjo^BxM-UlH8q{y|}xRo2@&mE;O>N3tB`u&YX1zor^Qac3nj9 z1{p|neaM%{LWInu7a<`N0tqI&U?>XT{s2D?ZeAh=p~jG8 zJRY~k?N(LqAZd@sLsB-@qBdXe!?qVpWLe+?=8t(U}x`v4@$a)FHW0fS4sdn2O zZol2hIvqZm4mjL(ELBehSi8?BO{hX$&luF{~CANgfwIxcf^Y>JMsq#(!7quz2SXw1wD-E zAnS`H-hIAJ7YtHGBb#?(p~CEnhM5oDMak@IA1jY79KK)ia(%pEv2CF)C;Q^}a`|Sz zbZWl%z-(Ji!CLN*3%`z+&Y#IT|E=(~9vaMp1CiD7x8;@YH@EU1ermMLOs-Uk{a1fa zMWTD&cU4_ld9dVJH)^6|ce%O!EBLawHh-@uxqSUxQ{V8=)Wp-F8;_1GmBOFH^2F+k nk?E3yUlvc!4NQ)1?CaZGgl*0SH(Ev;dGkpJ15NDXy0*bT%aLan literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.svg new file mode 100644 index 0000000..74094b5 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlack.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.png new file mode 100644 index 0000000000000000000000000000000000000000..feb6527f537f786ead74a8c11ba8e08860a006b2 GIT binary patch literal 1092 zcmaJ=O-K|`93K;<7FR4IGKwA}gn_#=v+lU<;HK-$noEvs>p~kI+S!@6?w~Vont8UX z2T6k{qC~dSSk8Ur@71^K}WT93+u=PE~An~qc}p7OgBp~ ztZiD;*=iGM7*kX%hV!#-No7Y_{=chXYZWTvUP8&T5H}sHm@14*5t{J$bzKvpVtac? zlvs%mMma7PJkc$&J#0*Bi-rQh7#}TTC8UlT(8Oh|wu9v=VqHNP7KtoDTfYdk9vc~; zRJfp5%tee<|}LDqFuu-EN053c*?{>Ybc{!30<5ggFqUuKo{I1{E zK&|Zu6W)~@hwDDvspGFlJy$;`G6$FMC;Jk})0U{0x^mpjy}5O&k@sGn?lr26VYB6W$XrXpu@^MjK%?Y`@HtY3Q6otgRrC;wd$ literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.svg new file mode 100644 index 0000000..fa50e99 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallBlackH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.png new file mode 100644 index 0000000000000000000000000000000000000000..93674740a98f07f26c31c1195fd3d9d8363b33c9 GIT binary patch literal 1115 zcmaJ=TSyd97#@^vOA=v(S;{m9X}WWBSKYx))}6JM9J6(yg|ZxH&bq@omu8Ob=u?zn zJ!lUVSx|xyBta1*L>JPEjV@0GVHbMq9%<4;FJfm_*Lr9hICIYV`M>YKedk1L%Z>t9 zu?xeng78j0g7$UJTDctk2Tzm~plt&T#bBErhbhqnSU}c00UlPxE)W5t+DU zawQsrF`=20bd?kxAJSG0gvPM?2HOy&B!GA)=u$L4F@5_Ufh)3~*y|N&!3ctcva`tEQ1d3+LaW29)EyhAOKaqgY;3z7U zN|C8*Qa8IO#^>`Gg@ zTFqK)6KWV`iw4Dzv{O>nQ4s#`s;W!g7L0&D`TmpGiuM|SiU3RRF(ov(c$pK*;DRO) zp>9TXy*t~*)`SjqE1?^BFqr8YUM`4|qB+Kj3`!8Vux3F~lR%jF6NraY6q&23V?A}j zYKHfE0t^%K)HU*S6CL8K1GTItqK!aJV{0GbC#5#gd4HTINrg9j_O{T8m znZh|GXD)10PQFE~oI4jfCze9VP|kS&8h6%&G~^tY#EULV@&_8yyotp9EcBxoJ&ea; zJ`lBEe>=mt?$cQ4R8b|jit~MGH`n_6?Hd>I4S9EuY)!Q9OC-O}PYG+^$i~cr%J;$2 zaABmPzqO-gB2|&Tw4&r@;ozf9Rgysbfjw$Ewj1&!xzbyScY7C5i z$`4kw?>{g){_gn1#Pv(NgkSNI(at9q(^HLeSDRn_yfT>{K07pEpA>GThcBF-ojEwW zrgWqC?fUD__r%J2FOR8jj*_mYRZq!sZ8JMPcaHo%OMF;XDb44V=B>uUyVKX^9yYvk Oo_jdd!e4FdIQkoizjSZ_ literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.svg new file mode 100644 index 0000000..ba03844 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRectSmallH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.png new file mode 100644 index 0000000000000000000000000000000000000000..794796a58a5b1dd7c52fa0de2e3026f291f40013 GIT binary patch literal 1333 zcmV-51500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3G7>N6?|tswkN3SNP)hN?m@vTmB5Q)H0RVM12Y^F8j8qW*e(p6W96-uuv(Z|umTESe zyOw305kfS_aaxY!vIEYJ2qY4TsA-yq^oh+h&BH_@5p@Igf(ZbK)a&(6bVydO*Y^NK z00er$hyX^a)#@4@vQ?|qHMWMtyI=$WQZAR9?Pte4Vo~e4TyB=_GNBtr1Q5}6eTVvF zx~}iA=@PqPq*N*;6GATg>9ABP-TB+=Ih0DJWEPzci~t~9E|*vO9o=JKD5bPqF0TLx z^PR=>OfVLUz4JRU#$vJe0D^p~IE)kyhhO^*!+c6^7y&>a6bjAx4HF85Uh)Ib9T`y+ z#WBBOm`~9inL%{TP&8HN1ausy;WtIMPYy#{t=12}VVFI{x>7)Yy)0Ijk?^mL% zR4RD@)9!T8Nt6I4GMUVhZQEDF2C;4XI+MvP0hs7clpP5HVCLlHXpRS$**qN?fvfO+QYPI1+dodBj}Szgd}{b&e+>PVL51prgMWamGE9Dpp# z@}jD$pPw)ypJiEI1R#46&c>K-e zA_zj>5;Fce7?&^fQ3h|J15ZOp1 z0M8iM2!IfK7IZB_2SA%Sw3zc-04?^6P)eO%B@w}+-r!RgWKClK16}VD)@%mWcIBR) rH4m>ay^2L*w?uIliyi{#hWRr9JP@F&xB=l200000NkvXXu0mjf^U75{ literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.svg new file mode 100644 index 0000000..45bfd36 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBig.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..047930ffa83a7e69042f69cf21a62f282728055d GIT binary patch literal 1090 zcmV-I1ikx-P)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3Gf35Re^Jk|78Rhcs`T`#sHkLo~-acbH+Wp7`K&;F< zH^x#lC(YPL$Jdz{cvwMgd?fAA!X&_Q1u)CDRD>qc-KYTOx=nzgv8f7Rri}hSTf6d} z%9iy`1t6Vt3GiLoeg!c5w&@B@i}=0*m=8vuP-I(yRl4Z6Ok17Ptp|8w1F9Y0ah!C7QQm;EOu?QIBzaHu<-5>P#R5$zoJ+upju`C{5N*A)A|DMCk<3F}aL#Q*qPd-vqiNs)a38n@ zTr;gl2lxzp1l|H~1oR8|2^^UO=gPp?MI8z1vcPJaUWpWi$-68{Uvu;Zxh(oS0GapLy%Vuj^#A|>07*qo IM6N<$f>-F=f&c&j literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.svg new file mode 100644 index 0000000..dff3946 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlack.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlackH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigBlackH.png new file mode 100644 index 0000000000000000000000000000000000000000..54120057aba67343d694a05902a4f2e24b54a5b1 GIT binary patch literal 1095 zcmV-N1i1T&P)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GXRrcaHJC%(Dz2vFt>a`=2IBLYNc40|MX*@Dz9g+y~}>YZ})EJ_GN8 zx4;|V574(DhkAS<0%n0#VBd*AmK|u$tbF)`B9j%30EmHSz+M3e*Y@NimQSw;i~*?u zYePV|wkDscKxr@rWCGZ{KoDb_@_hy<4JH7_fEObGG4@g#K^Ba!ye^Lr#MrX5{4^L( z6+c(-i#f0DODi(zN|NN1%)mScW=dFWXQUOS6>|hMv^FFq*?}}8J2D;+YGs`+aVwgZ zW@w^g_L&fPRKec(SlYe~69Eeqz%1BXMQAN_HwVpZHk*Z%TCLWgAvfFwFjgTQmsq^U zj-?&DpLXRvmEF%A0#hZY>Ck;)(zIJans(hZnHKRw1u6Py>EnyA4{TQevu(Adr)@(G zxCQ(uF-6~{Spxz)O+DZz@T$b9yq0Fqq{-eWr+`J^TS-w_lxF0%5PhHnd{sw3>StA2 z9ciCgcp_jDm + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundBigH.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbee673ddb3978915e12d544d2c2c56e5b36ded GIT binary patch literal 1368 zcmV-e1*iInP)500009a7bBm000XU z000XU0RWnu7ytkPIcY;fP*7-ZbZ>KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GDos*%*P(X; zD>(XPi^u~G5Gfwthwt6p``!`GIldMn3p}rgMj{OWc%(4^jL-0;g#6ci)}TlLy;`ki zy4`MRFc`cHg5U$C)MkwNj4_{5Y6n5^VK5lH>~_1QYPFgHpi6MhIWB9`W`R)v=#55W z({LWc_~sRk2uH9S52OLjb6SLLuXM-dldn=6T-RLZOg}0!@NZ0i=7q-tT-# z*6a250Hgt^lVB78$xf&9lrPyjoz7D+hLp=-2mrlStKFJs##~`gJGENvmY8K^97X|< zb{yvgkI5Xzc_GrJjKk=qQpuo{p2P)1DLpBbN`{Ee2!;SiwOXymJZ5XPT8{ywwI{4IG3}Xot=sQClZMt zGaxFUOun+zW+%m!_msi05I2e|B5?5uIql3{v`|tK#z`&-p37de0=;K0F6dR z1+bdW=Wh>(!@uKNeZw$3%jfgA0jx&l1QAQ}X1m?4#|6`Fx9b2lqvc>!C;_ZhDwX?T z7@o!vl}e>@AHdppp&UsF05|vd_kUeB%)!CIZvbw7NkR}o_#J?4%d%cC3&gUl*8sMK zuS><%NOl6)Fbw04<2dh@AgJCMhH(eL#w6MKKS2(_Fbw0aWm#{oF(Pja!?+8;m_?9B zH*YJVQ?A);J_~~2Y*C0H2+o?#<}&~}@y?Z5w<=MfvY^&)wbKKTOj+2k;Mo0e}kt;rQu9^b}&6bWp^X=m2gAuq1$lxTi%1ApQO-G=bRz*DqJ;u%7^yvciqN|9VUaQ}QKE-M(*VX{ a{v7}#dK* + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..05703ebfbf75152c0b29556d578e076b9e2c5dc0 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%kM`trLb7vO|7gG~QLqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsJM|Adi8;h(Fa8@Qgp+FfN2QCgeP7g2cG;>^MGl- z2$;B+89N&=FfgWjx;TbZ+*&i$(Yqx;q;c$r`)umrZzQ z#kWXZS=3&=e}U9|qmMT4b9TloJ1gHB^~K;y!n7Mo-gDeo<zFv2Mn=RsPcR}p;BPM5^H!cKmbqlQK&f{`5T+G_HWQzMLhqNAsE4+s- z0$7clum6mW>1bq0hz-5ETWf{RY4Z&XYhJ9b4`UU2%&5a~+M+K%v@uZRZo^e3-P5~H zfBushEK!wvd*Aaff%3M;3;T92HqWv6a`d`?@m{pKh_#91BRRLxU;5wOS}mxj67ZaT-G@yGywo^2*m*a literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.svg new file mode 100644 index 0000000..4143773 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmall.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlack.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..76c07d2c95c331afadd357e09d4e9aa0f536e082 GIT binary patch literal 1205 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%k6E`C>OJf%o7gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTySGwMrBVI z$B>F!Yo?ygI^-bIrhfT|x8n)F-y(T${SM}3huited5Z5^y|1Ce+Ken1m;NVfeIwW7Y%SD+h$< z|720V!0fz%@qU8)$C*0pNdfH1=c+ml=l9NB{dRj##bVxT;U{>qpB*Wg6Q*-or*PX< zUZcZZJ5_guFivrN<>fKyNaf%DDSb^h18+90+GW40#KrAK(9OlEEsEaC*&WJP?!4<_ zUudyq0)bZ=3CBau#ku6{1-oD!M + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.png new file mode 100644 index 0000000000000000000000000000000000000000..e7efe4629fc15bc6fd95616903462cb5c60058a0 GIT binary patch literal 1190 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%kb5k=XQ&SU17gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTy$o&6fACm=yf%~saGH97=2LmB1Jb$2$+UIOnBl2a^T57H4m8Pi-3vy zSmR9r1_nkEPZ!6Kid$=@?(I6{AkwOCsHeo`7;){I_=XLa{G{Ky+(>o&5E%34%LAD^EmeeQt98kaP^8dtTQ>Ca-`-KltGX!D?Xlj8x?PU#&DXB@7*Th_qm zsny7}qDk-vTkZ!=y907-9GSu%aQHp&ddP0*$>AuUv-7p~wm)Vm>+W#qr)y{J|)DEkaas!@Sq=2j(*{GaNsAM(_KjlIx(7!_(Ez JWt~$(697QznBV{a literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.svg b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.svg new file mode 100644 index 0000000..a09cc91 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallBlackH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallH.png b/mdot/mdot_server/mdot_server/app/lib/images/dragIconRoundSmallH.png new file mode 100644 index 0000000000000000000000000000000000000000..e04163d896c2f62ecabc58245dbb0afbe8f118fd GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW{u2{h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v)lD`qGE^|P)H5_S zH8(fXQ7|$vG|@LO)HgKNHMF!cF|jf*P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAZ0-^Aq1 zJdmI!SeLJ_m1kaYNn&1ds;7&s63`sI%*+%k6E`C>OJf&H7gG}_Lqk^+3nv!?Hv?A} zV@Go%6IWA5m|mCsATTyBdpC~ zuF7LuBhF06C~M1tlS^j)etPfBnU#u5Q?~L5#ag(o7hU#?ca;Vg*TpWcZHf}Be@mr& z|NZx{0gwD8les!#-PqUpY&E=R%+m*R5ckZOxZHnr%`0ulZz!*LRWbw~wlGEMMi*<_jW>9J5>FVdQ&MBb@0JHwb!T + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.gif b/mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.gif new file mode 100644 index 0000000000000000000000000000000000000000..c29d4be61c453e5b853204e8b02ba52fd95c0c38 GIT binary patch literal 91 zcmZ?wbhEHb6k-r!n8?8J|NsAc_wM!g_p7L=DE?$&00A8k0g`86(&_16d0O`I6$XP@ qoGXq-n$P2PQZ0RWqCsTW3ZJR!pX literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.png b/mdot/mdot_server/mdot_server/app/lib/images/eraserIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1d2965efaed54348190d7cf968ce6d268767e6 GIT binary patch literal 1706 zcmV;b237fqP)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GOQmp5a;LTJ(*1AIb-ZAnH0v@VJ4G#K0iP2DFOU% zV0?yF0QUX;{RfP(6xAt=vDE(l{sRDZu2ZNB>=erD^)_X*+1GSIlFepcd%fPKYH+$> zr%;1~gUy9P;SF7|6bgkmgM)+3mEerPtNg#_848V zY;SLm@jYiT0uum;Q&Ur&s;YjyY%o<-zfMg}b@IPe&;zpoa3qt-7xfy;WHNO7_H9~U zUpMuBGMRkAm(-#MCi;9nx2md#^*|jS9@4hvwrRj+5b~~-Et{Q$D3We?ixB@_^1ZD-$bZ~I+YpqZ_J3G|Z*GFY} zk^oR+V3yD5{XbpM@L1d)6vk-Knn{CRdwX^`49jJ zfLIQ8nqaLqo2|?2Nnmqx6F#30$H&LI@2RSaU@%zqxy@$#UN24A0k}0yE1L1tr%#`# zy}g|l7Z>TvmoMaYyQ_L^e0-c3V^wu&npOnh24JtWly(4ZX23pv{77wWZRhq*wIzM{ z@F8iMrmK&GwdsN>igKi<8BQSR^mkaAC zpq`!{di3Z~RU@05n`E_GX>@dyR8=(vmdoYBdP~^|pd}uUFX$=R+S;OP*RIj*>}(|i zG(0>^V`F26%U3G#c>H$&EdUy;hKpb@IBujU7K>3=R~OC9%$!R_LqkI}F)>jS6cN$d z+S*Um!o^vD?d|Qop(skmNZIc0E?vKVom?&#xm+%CI-T_R@#C7Iip65Ox3~9(UVs&N zTJS_7k(Xwao}8S}(b3V_s7E4^$V&j8YANY7u!#V!-nnz9dueIu4^b3d<-u-aW25HU zaA07d;(bL?GWYJ?^RKL|!~o<0DAme03qOK%1cSk+mwg^vTU+}XK!=%QkHEe59f0mw zEVgu6P_bBS2|zcuWq43LJ6Z#1ktFG6GMRjL(NM``@|`3}H+hIKb+kTLi~w*;l5{H? zjV@mlR5Ti0mL%yG52!U2Bc+9|lPl;61Om@wSx(mrB+GI-5C}X2(8F~)YcAi)s&EH) zdAHy19}b7ZbH!pYTSJ`6hQr}Gzu!O1_f$)Xrwj|;irt=)u8zp}f)jwlqh6UVn8`+8Y2&WEwWM8C + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/eraserIconH.gif b/mdot/mdot_server/mdot_server/app/lib/images/eraserIconH.gif new file mode 100644 index 0000000000000000000000000000000000000000..75069f524dbf7ccbb2fbd2bda22f7cc652584427 GIT binary patch literal 107 zcmZ?wbhEHb6k-r!Sj5Hv1poj4Kf}Oq@7}%s{(cn|6_5}EgW^vXMg|5p1|1Lwq?Uo% zz+%^(e+GR@v4UGxX>WKoSG+OSF(oWwoKLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GOQ0FprCV2kIUoZ}0KWnM0IwXt+jC-u zVVDZ^A@Du$9q@r=S;XUUT3cI*Mxy{MEiExSJImD66zl8j0E@tnzz@Jn1uOPP?Nj94muaV2;WNd6qlF6hPh9STUwGmO9hM%^Bp^Vyw+5y}G zB#}r+CXZwrgCzeA$M(sT!f6V5a&(4rpMU5|{ym_49uj zkH>u-e5)gy%}P8T7yU|`RnzbTGxd0f48z!xqc1NnOLup-OioT#{2=se9a2rx4=fDC zfQ4i-SvAzc!h&>kbO<1Ib#-#@-aX&_sZ>gU1=S3Dff*XnPXIDLK3)~n{QSHeJb2KV zjwBL^$elZPJf9gKAGi0OP;J8v%#K+&x!mZqjAS15bd)YQnx$cXFnU0q$Gd9?uumx7s&pxV;f z+8QXq&dkhk^ypDGHa2|s6$%9=CMI0hRO=J3Okg@@eM3V-MX2fNX^tH`#_;ek4<0-q z7K?fAO{de`xN*aEO||MB`eh>mGy=H`7cTg|zDJK9Nn>Ne_FL&!D@j$z=&m8lFQ{>4b9HZ%D#R3 zsC6&*f&SWcfl z9SEu#C(Y7)Punw}}iew|UE16WKX5@o5$FT#6Gx3Wh|?IqQU z`XzB^+0z6J0Fq9px4j-qr_(m{plVetd+b7SH}ENN8<64Q;cbH&8XB^pZmY)bAcdl{ zwB7@J4%`Q1U|`@sUq%K82W_bPYI{%6(z^6A5(B;fMgi&U?A-G8t+TV!h8k6yv1%_P z&g+|{2HJp2z>;a2Z!WxELD+fWO{G#|nx^gOm(*5FZCAX$l`T3NC-13|9l*zWoBkHq zSzlkzp+ko_aNq#DcD-(0tgNi?`*#4s WQev2iK5+8@0000 + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/export.png b/mdot/mdot_server/mdot_server/app/lib/images/export.png new file mode 100644 index 0000000000000000000000000000000000000000..16435ab2680e48fc5e0f607cd42db332258a250b GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^(m>3|!3HGnolma?Qk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YU4az978H@y}4}2 z#h}RJa`DVx{=d0l7o2489ys(UM01i2la@l3N~_?kD$5IR_utSrJk)Qb_n0Lr(TDA3 zONGJQ1m%KTzu9hADriQ;KKZgF;hT8jhAlO1qClhn|7T`k)yaCQ5^iG%3|!3HGnolma?Qk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YNI_}978H@y_p=y zb-;kb`S-DR^-tey4{)0u!PfdT+{9(RN7k}mY;%sSu3d3Ir#nx$BeFMZQ|P0D>nozopr E07=P3a{vGU literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/lens.png b/mdot/mdot_server/mdot_server/app/lib/images/lens.png new file mode 100644 index 0000000000000000000000000000000000000000..439feed03c4d4c38c8b44b73f344fe5b118d888a GIT binary patch literal 1408 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0*lEl2^R8JRMC7?NanVBh8j!tIA=0;|wE|$)YhK8;t7Ot+QE>4cF z7LIO?ZZ3|dFugAM$)&lec_lEtDG0r0IQ4=OL~a4lW|!2W%(B!Jx1#)91+d4hGI6`b z7^itqy(zfeVuDkzKF~4xpy)-4ZkP}-4S|^O#0%uWlYeR+FwGYM6Zfk2ZUY7e#&@1B zjv*DdmQ3;W2niH9et&j)&=M1=2wy$6Q~kYB3wAHs6uVT~T+uQ2NdHu&rp*PaH`JD; zZZ`V0V5*pMV0TzviyP0OR#ms)DUaB#xE4+JdHnuF;SRpf$0VN}$UnEY{M_H-cedYU zZ+mU_uKUj#BYvk@OQY5F2iN^B%wV&7UEzH{(JM!^#_fYL z#}1C8Co@jYIK8hj*k@Hm_Y_$sVS#kHvkMpT?%2G`KD5D5qq)6OY=J+wLEgU2Nq^?d z+uM1j?&*Z9vUjR0oc}b3r1>mylAU!|ohiFtFze#0{KE}D=PTPwZ@h87X#MxyadqmC zjW?Y5wTjE)%=*K^%MNegR{bOt@!R3f#dQm3zbf#5xJ}P)i^-)Wtk+ba2MVQG8=BSSmq Va;tCNi&H>lqNl5$%Q~loCIIQl1G@kK literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/lens.svg b/mdot/mdot_server/mdot_server/app/lib/images/lens.svg new file mode 100644 index 0000000..f21e9b0 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/lens.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/mdot/mdot_server/mdot_server/app/lib/images/lensWhite.png b/mdot/mdot_server/mdot_server/app/lib/images/lensWhite.png new file mode 100644 index 0000000000000000000000000000000000000000..68408fac4321f95d864ab1597a3fb591e5d38cdf GIT binary patch literal 1313 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT-VtFWlg~VrW1CgG|37u|VHY&pf(~1RD?6IsxA(xEJ)Q4 zN-fSWElLK)N18HBGcfG%TLe-Fbd8luesXDUYF>$_i>(q+L@y;X#mdpi%-Gz>%+bZt z+0oF@)x^Tp)zrnw(bdAy&C$)p(G;fFGq1QLF)uk4rZ*Fz*AlN@E9aur#FG4?ko^1{ zSnLI4T_I>l&?Qys3_TT?pQ&o3<^Yg&A#1%}s5sn<3%JGGB z5(T%K)fRo}=K3*lQiJ!KWM=n@DZk4l{%fD%;qrQ1{N<*}x+5%kOYiOpo)Is_67cqm z)FRJi3f%_}Z3tVE>Td&#<5d}LS0B2*-q51?G)6Jz#Cw)kUpH9XiFz#gL$>MOhXt{- z|1PSEkZ>+g)RtWr`tg<9;xFgLh0WDh8$~~3Vo71N`IU9;0hi&HsS+k?j_qaE2@>x+ z7H#&Jz`x$()WU?_7uA&7&W}?u>;a8}id*-VB0h4VT7yR4U8*=bsA5>_0y85}Sb4q9e00ffU2mk;8 literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/lensWhite.svg b/mdot/mdot_server/mdot_server/app/lib/images/lensWhite.svg new file mode 100644 index 0000000..9ed7b8a --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/lensWhite.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/mdot/mdot_server/mdot_server/app/lib/images/lensWhite_old.png b/mdot/mdot_server/mdot_server/app/lib/images/lensWhite_old.png new file mode 100644 index 0000000000000000000000000000000000000000..2434fd61e115d58b57edf7cad2e29b6498415957 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co&H|6fVg?3oVGw3ym^DWND5#L^ z5#-CjP^HSi(9q1l@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqi#U8J)SO(Ar-gIObO&V zY{26@|Ma;@GD~;=zh5NzcCjhTdEbTJ3)!AJb8gCU^bz`h?NG}u_akQ*xE8P+y>G#w zbJLU2&cSz<)%_TUOJyt`L7o+5aka^w#buwYcD_&Fx>~8UZE{)Yl6gx$|C6nn-G2co&H|6fVg?3oVGw3ym^DWND5#L^ z5#-CjP^HSi(9q1l@bf>Ae#yX4YQVtoDuIE)Y6b&?c>bjLqi#U8?Vc`4 zP~h=Cb}p!Y)7}61acaM3J`g@?8KJ1KwrxwGCTD)~;ieybElVbbu)1x!GyiXv05td_8vpKLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3Gyzgh8=Xsy!eO`fx@Fj|fFI4^qYgIaG4}u_= z4yyM<;p1SDH^I;VfDEn5n`KAdTZ@R$Yy_=^#rvA3y=07K8Dm2&()#Kc4o0NL;nP1hnKYhX2?`T2QwKA*qC7~3U_!Wes-&*$&V z&(FIJfCmN>07wAr+uPgM8Dm*$Qy62}?d|RB0PK8Dpsy^}gd_DWYH3O3XbmnroU+9P=m&?rp=;Uiz0uuq) z6N$u4I$}vA5;wWeiOs+S0CFS}IbEq#cH3RBR4UQf*cdsTPI~(Esp+^%rLr4|L{9VF zDl`HU0d!_EnY#z@9~vGW-V3ren~fener!5ElgZrWCKVfj$-!XIS*cXswhI*q1gI|h zlg(zMXV0FQY3*$=7<6*2?F%LVI2Mb=uC)tw`SRt@plZ$Ka+$sxi^Z-1I0itd@rZR! z-{J9ierPq}s;Y|7(NQcfFPo0Jc=4iXpU2|~^1Lm6zCAyxQYn>6E3G>ErAwDgH3fhM z2L~yi&o`PQ20#HI?`KLI0Ee#Y@2o<-fB*i#P((z!uD=7|0AMpSr6@_#ajPbro}PxL zY3S|k-M4>ma1haG6emucXgCjFQ#3QB9e}G^t(Gk&W%7Ex^y<|sT3T9aOH(zeR;y(I zE&%rZOlb$;vTDj`G)jR$fQX2)*(@zCE>drAZ_7{yQ#J&17K_EWmC3GLxk3(ygVxs8 zh=}O*>(}J-`C5h|A}SV(aR5#;FdG0zDwX=R*+e@#J7lxj2mm=84hjSUbn4V8nw*@Z zLZQ%d3{0g`ztuZ`hcU4OU>h47%U-Yd$41UNH#diJxeQsBF*G!U8#iuXWMl-AB(+s| zY;JBY17M%j1_q5u0J{78`_JgQ-q04|aG0j1rf6qp=fEe7a=D!A@9#eYpc{Z>nvwvx z*VotY(SIcC>+AObxa(7rP)p#ve3Jnj4~N5j3kwUs%d-4Uz1mk+R$4OCz`%fMpRViq z@$vD{qeqXD07?LKv+_;kM-b2A;^I$7t*z(JpZ^TNW98T*aIJj}pf8zBE*uq9GMQWe z(8t$mdQjXuS_5z>igGTK$-Fphs7xmFLQ#}+JVaPJT7OcE0B|aba(-)T>)~NRZEbBm zR21br52!5_BgR6vi%)Pi8jar8G%eRIkfv$5Xf%2oz*#bsDXdzA&;_>)wC=?pvKIJfI%Cz9E4;TBviQGBu{3|=%Zg|d*^tAF0Qb?c8eZ{8FD`~yG*@Bx5sb_=w}(*(@8AtVm? z6^FF*{3_QSi>m-CeDN{|`2axU|1mzM;Wd;cFe0kmiPg;8!JEu~*C$EFo6aFChFnNi p?#HZZ%*@21;n^tFgI?VII{+{@fe5`ysXPDx002ovPDHLkV1f|t6wd$v literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.svg b/mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.svg new file mode 100644 index 0000000..9602c94 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/pencilIcon.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.gif b/mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef3b71069594b1d79b480e2c971005dd2113a73c GIT binary patch literal 113 zcmZ?wbhEHb6k-r!Sj5Hv1poj4Kf}Oq@7}%s{(cn|6_5}EgW^vXMg|5p1|1Lwq?Uo% z%wpG_e+H|RVimXe9onpO=xVK#W|Ba}tQU*drE#r~3*J)_!cvjTy5~ka!=B7MkG`Ol LnO5_=SQxAUezYZU literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.png b/mdot/mdot_server/mdot_server/app/lib/images/pencilIconH.png new file mode 100644 index 0000000000000000000000000000000000000000..a88540b6eb5158e5068f150c689f6bf89be3766f GIT binary patch literal 1677 zcmV;826Fj{P)KLZ*U+=)p!fv7f#TG` zAxLl%!EgG`&*5<32cu%worY0{L9A7~=}6b}76Isk~1IN~P)K3@?4 z&zpALY4A7Z!>t0&I7qECf*j`WHIYAjW_h^ivJu4lvb8y9VL`DD`rG0ZKvcZ$L@8 zo)6*!Fng}&gE0q~LGCMnsiR8`P)pL0I_sTkS+y)n+TA3GBAxykD4D$C2uRI62h4d5H#Yv73j z?zH?mB0@yUFe`Kb_zYOLEK72^oD_>i@jOq$tX8W@u~?K`E+>{{39zm{4yaEn3`|5K z!3@+v;3gpHbXv;gvb1aEa#=E&jQNZ=)n_1FD=-6f2)GN#^z^jU>vh?y)$4Vco}M;v zchz?jTr02+;5A?lklEQ;*)N-&oi%Xt8lxjFn63NZ5+IY4ld|77IXP+IE@>>g6_^Di z^!PtXr_+%eJj`6zl?xXxNGg?*g@uKt=bqQQ*8T}$4rBbPFsIzC!HbI$j(}u-kHNvg zJwX9ztS(>tK-pu(l|ef@JIv3|v#_wh`uaNO&!2A_szKFQtrV=gv9Zw-Y;kdsp`js0 zMn*Vs;si@eOS>x<7s|*azztQfKK1!{b#=9;mBYEYIUYTF#KVUVIeGFV{r&xV>?W3NTL9aXDE{D#I1ElK8c_5dFO8<|X| zsWe4p_@EJFp63~ptLp;QoGHMrLMa4Agz~-4|C{H(o|kzzA>~kW41C=j+?))29v8 zZS|RI_cG#F8jd=67q|>;`Y*guN!VO?^ZC5kwrw{0W%ZR(-=WvHs1|`~oV=n=4gv#u zoBk9y)Ya9+sZ*yoe*E}u393{otgNiCyu6I-x&XiHD$N7G0e=8hzzb@)?DDkeT^P88 z?gdAe{}7M`J_6oT;4UKq6yO)&C*VhIwEU?+&wzSZ7bq@RV^bxeD|kRhQvcWK+rT@( zwg#^$$TMA`dfcW;EHDviY(sVGNa)`k4X-@cQCG + + + + + + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIcon.gif b/mdot/mdot_server/mdot_server/app/lib/images/xIcon.gif new file mode 100644 index 0000000000000000000000000000000000000000..c66aad93c22d7de09f117c83f9ba52b2b579668c GIT binary patch literal 93 zcmZ?wbhEHb6l4%&Si}GV|NsBLckiBxiVBbc761{7KUo+V7+4r|Kpc=-24*FVU3dN& loO*dIL+sY-vM=+tq=s1Z-kCmARC7bm?WG~P_sf|WtN}2FAO8RV literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIcon.png b/mdot/mdot_server/mdot_server/app/lib/images/xIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..3848aa158f199ae9e89493a5773dedb596f09bd0 GIT binary patch literal 1564 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0*lEl2^R8JRMC7?NanVBh8j)vy0h86}+E{={)hK8;tP8Np7juy_Y zt`?3Kjt0&aFugAM$)&lec_lEtDG0sJIQ4=OL~a4lW|!2W%(B!Jx1#)91+d4hGI6`b z5~q1ky(zfe;)qkPKF~4xpy)-4ZkP}-4S|^O#0%uWlYeR+FwGYM6Sr=BvH=4FQus`tI0SNz`6 z%WCd2#lw8(nkOf)MI7`GV4r``eM5eUl<}G42Sp1wLk_5a;QhlS_JDEuL8S`*drj{Q zHZFc(7H~jVOk0F&%IT*k-j+?i{#tea{r^YPHs?OPt+RviUE}fx?Qv&#@*3YK?CqZD zqoz6g?7ywK%P)JbUcLHB(awtN{0<&}~|2aOcxSA!>e|+V| zj1OM~Y{c!qsZUm!UA)Cmf@jx6kCv{ZO6^v*Z&FS@{ZyhO796!!%yXaFk^AS8#1Dj@ zyZG*%UZ|GnTa)kuk%pNzP5+L+*?&Cg_Jf`@-uA1zzBPCFI?dj_0vd$@?2>>;_Ur+!5 literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIcon.svg b/mdot/mdot_server/mdot_server/app/lib/images/xIcon.svg new file mode 100644 index 0000000..c19ec55 --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/xIcon.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIconH.gif b/mdot/mdot_server/mdot_server/app/lib/images/xIconH.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae2b9199b99bb9038e630145bffb99b1100c2ece GIT binary patch literal 79 zcmZ?wbhEHb6l4%&n8*ME|Ns9#111%JvM@3*Ff-_YL_zWlObS!_SDt>m-pOOq$;`aV ax9)P4o^Q{cD$&T)wIY)9=qDR-25SJ>=o@$d literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIconH.png b/mdot/mdot_server/mdot_server/app/lib/images/xIconH.png new file mode 100644 index 0000000000000000000000000000000000000000..2382c0cb5c717a3a170d71cc3c87084eadc4ae0b GIT binary patch literal 1194 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o>>?5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0*lEl2^R8JRMC7?NanVBh8j)vy0h86~HE{={)hK8;tP8Np7juy_Y zt`?3Kjt0&aFugAM$)&lec_lEtDR8}p1~~PC5=3qR&}Ns^qRg_?6t|-MTm`Vltuk@D z#RaE%P`xQQ-D2R1Q?EYIG5VnBMT%~i5HJmanDE34%g37@GK$MM#x2=w^Z3q(GPB4ehaA28t5sh#%VlhOds#kU`V0NKs?2yM9)_PrVK%F8ez*%NJv?3gT-G@y GGywp2hMz(J literal 0 HcmV?d00001 diff --git a/mdot/mdot_server/mdot_server/app/lib/images/xIconH.svg b/mdot/mdot_server/mdot_server/app/lib/images/xIconH.svg new file mode 100644 index 0000000..90287fd --- /dev/null +++ b/mdot/mdot_server/mdot_server/app/lib/images/xIconH.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/mdot/mdot_server/mdot_server/app/test.html b/mdot/mdot_server/mdot_server/app/test.html index 8a28fe6..ac0f38c 100644 --- a/mdot/mdot_server/mdot_server/app/test.html +++ b/mdot/mdot_server/mdot_server/app/test.html @@ -3,220 +3,203 @@ Title - + + - -
-
-
- + - - - - - + + +
<%= item.co2 %>
+
<%= item.temp %>
+
<%= item.humidity %>
+
<%= item.sound %>
+ + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/mdot/mdot_server/mdot_server/lib/server/db-mdot.js b/mdot/mdot_server/mdot_server/lib/server/db-mdot.js index bc04c65..7149e25 100644 --- a/mdot/mdot_server/mdot_server/lib/server/db-mdot.js +++ b/mdot/mdot_server/mdot_server/lib/server/db-mdot.js @@ -13,7 +13,7 @@ module.exports = function(db) { module.sqlAllGetDecoded = function(deviceId) { logger.debug('mdot:sqlAllGetDecoded'); return new Promise(function(resolve, reject) { - db.any('select * from decoded where deviceid=$1;', [deviceId]) + db.any('select * from decoded where deviceid=$1 order by timestamp asc;', [deviceId]) .then(function(d) { return resolve(d); }) @@ -27,7 +27,7 @@ module.exports = function(db) { module.sqlRangedGetDecoded = function(params) { logger.debug('mdot:sqlRangedGetDecoded'); return new Promise(function(resolve, reject) { - db.any('select * from decoded where deviceid=$1 and timestamp between $2 and $3;', [params.deviceID, params.startTS, params.endTS]) + db.any('select * from decoded where deviceid=$1 and timestamp between $2 and $3 order by timestamp asc;', [params.deviceID, params.startTS, params.endTS]) .then(function(d) { return resolve(d); })