diff --git a/dist/css/app.ebb7b1ad.css b/dist/css/app.b94c8a5e.css similarity index 96% rename from dist/css/app.ebb7b1ad.css rename to dist/css/app.b94c8a5e.css index 293979c..c5da987 100644 --- a/dist/css/app.ebb7b1ad.css +++ b/dist/css/app.b94c8a5e.css @@ -1 +1 @@ -@import url(https://fonts.googleapis.com/css?family=Work+Sans:200,400);.sidebar[data-v-5c6f1596]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:30%;max-width:300px;font-family:Work Sans,sans-serif;font-weight:200;background:#9dd5f8;color:#fffcf9}.navbar-header[data-v-5c6f1596]{width:90%;margin:1.6rem auto 0 auto;text-align:center}.navbar-header a[data-v-5c6f1596]{color:#fffcf9}.logo-wrapper[data-v-5c6f1596]{width:11rem;height:11rem;margin-left:12px;font-size:6.5rem;border:.3rem solid #fffcf9;border-radius:50%}.title[data-v-5c6f1596]{margin-top:5%;font-size:2.5rem}.subtitle[data-v-5c6f1596]{margin-top:5%;font-size:1.1rem}.navbar-body[data-v-5c6f1596]{width:100%;text-align:center}.navbar-body a[data-v-5c6f1596]{font-size:1.8rem;color:#fff}.navbar-body a.active[data-v-5c6f1596]{background-color:#25899f}.navbar-user[data-v-5c6f1596]{width:100%;font-size:1.2rem;text-align:center}.navbar-user .user-name[data-v-5c6f1596]{width:100%;background-color:#4c8fdb}.navbar-user a[data-v-5c6f1596]{color:#fff}.navbar-user a.active[data-v-5c6f1596]{background-color:#25899f}.navbar-user .seemless[data-v-5c6f1596]{color:#9dd5f8;background-color:#9dd5f8;border:none;outline:none}.navbar-footer[data-v-5c6f1596]{-ms-flex-item-align:end;align-self:flex-end;width:100%;font-size:.8rem;text-align:center}a.link-about[data-v-5c6f1596]{color:#fff;text-decoration:none}body,html{height:100%;font-size:15px}@media(max-width:1200px){body,html{font-size:11px}}@media(max-width:980px){body,html{font-size:10px}}.wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh}.wrapper,form{overflow-y:scroll}form{max-width:40%;padding-bottom:10px}a.btn-outlined,button.btn-outlined{margin:0 0 5px 5px}a.btn-outlined,button.btn-details,button.btn-outlined{background-color:#9dd5f8;border:none}button.btn-delete{background-color:#dc143c;border:none}.description{min-height:5px;margin:2% 0 2% 0}.alert-info{color:#000;background-color:#9dd5f8}#app{width:100%;height:100%}#app,.bar[data-v-5bace19a]{display:-webkit-box;display:-ms-flexbox;display:flex}.bar[data-v-5bace19a]{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;min-height:7rem;margin:0;padding:1.6rem 0 0 0;font-family:Work Sans,sans-serif;border-bottom:.1rem solid #9dd5f8}.bar h1[data-v-5bace19a]{font-weight:200;font-size:4rem}a.btn-back.btn-secondary.active[data-v-5bace19a],a.btn-back[data-v-5bace19a]{margin:auto 0;font-size:2.5rem;color:#9dd5f8;background-color:#fff;border:none}.date[data-v-5bace19a]{font-size:2rem;font-weight:200}li.task-card[data-v-17f0c3b1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:5.5rem;margin:0 2% 2% 0}.task-color-bar[data-v-17f0c3b1]{width:10%;max-width:30px;height:100%;border-radius:5px 0 0 5px}.bar-red[data-v-17f0c3b1]{background-color:#f08080}.bar-yellow[data-v-17f0c3b1]{background-color:#bdb76b}.bar-blue[data-v-17f0c3b1]{background-color:#9dd5f8}.task-body[data-v-17f0c3b1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:left;-ms-flex-align:left;align-items:left;width:100%;height:100%;padding:.6rem;background-color:#e9e9e9}.task-body h1[data-v-17f0c3b1]{margin:0;font-family:Work Sans;font-size:1.3rem;font-weight:400}button[data-v-17f0c3b1]{width:17%;max-width:60px;height:100%;margin:0;padding:0;font-size:2.2rem;border:none}button.dismiss-task[data-v-17f0c3b1]{border-radius:0 5px 5px 0;background-color:#f08080}button.check-task[data-v-17f0c3b1]{border-radius:0;background-color:#8fbc8f}.task-board[data-v-3105bf88]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.task-board[data-v-3105bf88],.task-box[data-v-3105bf88]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%}.task-box[data-v-3105bf88]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:49%}.task-box h5[data-v-3105bf88]{font-family:Work Sans,sans-serif;font-size:1.8rem;font-weight:200}ol[data-v-3105bf88]{height:100%;margin:0;padding:0;list-style:none;overflow-y:scroll}table[data-v-2456b989]{width:80%;line-height:2rem}.row-title[data-v-2456b989]{min-width:100px;font-weight:700;vertical-align:top}.spacer[data-v-2456b989]{height:2rem}table[data-v-2b2ddf46]{width:100%;line-height:2rem}.row-title[data-v-2b2ddf46]{font-weight:700;vertical-align:top}table[data-v-cb36d53c]{width:50%;margin:0 0 20px 0;line-height:2rem}.row-title[data-v-cb36d53c]{vertical-align:top}.description[data-v-cb36d53c]{font-size:1.3rem}.green-desc[data-v-cb36d53c]{color:#006400}.red-desc[data-v-cb36d53c]{color:#dc143c}.green-textarea[data-v-cb36d53c]{border-color:#006400}.red-textarea[data-v-cb36d53c]{border-color:#dc143c}.qc-wrapper[data-v-4802ca58]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh}.plots[data-v-4802ca58]{overflow-y:scroll}h5[data-v-4802ca58]{font-size:1.1rem;font-weight:400}a[data-v-65378bdb]{color:#9dd5f8} \ No newline at end of file +@import url(https://fonts.googleapis.com/css?family=Work+Sans:200,400);.sidebar[data-v-5c6f1596]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:30%;max-width:300px;font-family:Work Sans,sans-serif;font-weight:200;background:#9dd5f8;color:#fffcf9}.navbar-header[data-v-5c6f1596]{width:90%;margin:1.6rem auto 0 auto;text-align:center}.navbar-header a[data-v-5c6f1596]{color:#fffcf9}.logo-wrapper[data-v-5c6f1596]{width:11rem;height:11rem;margin-left:12px;font-size:6.5rem;border:.3rem solid #fffcf9;border-radius:50%}.title[data-v-5c6f1596]{margin-top:5%;font-size:2.5rem}.subtitle[data-v-5c6f1596]{margin-top:5%;font-size:1.1rem}.navbar-body[data-v-5c6f1596]{width:100%;text-align:center}.navbar-body a[data-v-5c6f1596]{font-size:1.8rem;color:#fff}.navbar-body a.active[data-v-5c6f1596]{background-color:#25899f}.navbar-user[data-v-5c6f1596]{width:100%;font-size:1.2rem;text-align:center}.navbar-user .user-name[data-v-5c6f1596]{width:100%;background-color:#4c8fdb}.navbar-user a[data-v-5c6f1596]{color:#fff}.navbar-user a.active[data-v-5c6f1596]{background-color:#25899f}.navbar-user .seemless[data-v-5c6f1596]{color:#9dd5f8;background-color:#9dd5f8;border:none;outline:none}.navbar-footer[data-v-5c6f1596]{-ms-flex-item-align:end;align-self:flex-end;width:100%;font-size:.8rem;text-align:center}a.link-about[data-v-5c6f1596]{color:#fff;text-decoration:none}body,html{height:100%;font-size:15px}@media(max-width:1200px){body,html{font-size:11px}}@media(max-width:980px){body,html{font-size:10px}}.wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh}.wrapper,form{overflow-y:scroll}form{max-width:40%;padding-bottom:10px}a.btn-outlined,button.btn-outlined{margin:0 0 5px 5px}a.btn-outlined,button.btn-details,button.btn-outlined{background-color:#9dd5f8;border:none}button.btn-delete{background-color:#dc143c;border:none}.description{min-height:5px;margin:2% 0 2% 0}.alert-info{color:#000;background-color:#9dd5f8}#app{width:100%;height:100%}#app,.bar[data-v-5bace19a]{display:-webkit-box;display:-ms-flexbox;display:flex}.bar[data-v-5bace19a]{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;min-height:7rem;margin:0;padding:1.6rem 0 0 0;font-family:Work Sans,sans-serif;border-bottom:.1rem solid #9dd5f8}.bar h1[data-v-5bace19a]{font-weight:200;font-size:4rem}a.btn-back.btn-secondary.active[data-v-5bace19a],a.btn-back[data-v-5bace19a]{margin:auto 0;font-size:2.5rem;color:#9dd5f8;background-color:#fff;border:none}.date[data-v-5bace19a]{font-size:2rem;font-weight:200}li.task-card[data-v-17f0c3b1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:5.5rem;margin:0 2% 2% 0}.task-color-bar[data-v-17f0c3b1]{width:10%;max-width:30px;height:100%;border-radius:5px 0 0 5px}.bar-red[data-v-17f0c3b1]{background-color:#f08080}.bar-yellow[data-v-17f0c3b1]{background-color:#bdb76b}.bar-blue[data-v-17f0c3b1]{background-color:#9dd5f8}.task-body[data-v-17f0c3b1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:left;-ms-flex-align:left;align-items:left;width:100%;height:100%;padding:.6rem;background-color:#e9e9e9}.task-body h1[data-v-17f0c3b1]{margin:0;font-family:Work Sans;font-size:1.3rem;font-weight:400}button[data-v-17f0c3b1]{width:17%;max-width:60px;height:100%;margin:0;padding:0;font-size:2.2rem;border:none}button.dismiss-task[data-v-17f0c3b1]{border-radius:0 5px 5px 0;background-color:#f08080}button.check-task[data-v-17f0c3b1]{border-radius:0;background-color:#8fbc8f}.task-board[data-v-3105bf88]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.task-board[data-v-3105bf88],.task-box[data-v-3105bf88]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%}.task-box[data-v-3105bf88]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:49%}.task-box h5[data-v-3105bf88]{font-family:Work Sans,sans-serif;font-size:1.8rem;font-weight:200}ol[data-v-3105bf88]{height:100%;margin:0;padding:0;list-style:none;overflow-y:scroll}table[data-v-2456b989]{width:80%;line-height:2rem}.row-title[data-v-2456b989]{min-width:100px;font-weight:700;vertical-align:top}.spacer[data-v-2456b989]{height:2rem}table[data-v-2b2ddf46]{width:100%;line-height:2rem}.row-title[data-v-2b2ddf46]{font-weight:700;vertical-align:top}table[data-v-cb36d53c]{width:50%;margin:0 0 20px 0;line-height:2rem}.row-title[data-v-cb36d53c]{vertical-align:top}.description[data-v-cb36d53c]{font-size:1.3rem}.green-desc[data-v-cb36d53c]{color:#006400}.red-desc[data-v-cb36d53c]{color:#dc143c}.green-textarea[data-v-cb36d53c]{border-color:#006400}.red-textarea[data-v-cb36d53c]{border-color:#dc143c}.qc-wrapper[data-v-327132d2]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh}.plots[data-v-327132d2]{overflow-y:scroll}h3[data-v-327132d2]{font-size:1.5rem;font-weight:400}a[data-v-65378bdb]{color:#9dd5f8} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 339a41e..76c96b6 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link href=https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css rel=stylesheet type=text/css><script src=https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js></script><title>Verkstad - The mass spec maintenance app</title><link href=/verkstad/css/app.ebb7b1ad.css rel=preload as=style><link href=/verkstad/css/chunk-vendors.3ce0e8f7.css rel=preload as=style><link href=/verkstad/js/app.804145be.js rel=preload as=script><link href=/verkstad/js/chunk-vendors.dc303f71.js rel=preload as=script><link href=/verkstad/css/chunk-vendors.3ce0e8f7.css rel=stylesheet><link href=/verkstad/css/app.ebb7b1ad.css rel=stylesheet></head><body><noscript><strong>We're sorry but Verkstad doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/verkstad/js/chunk-vendors.dc303f71.js></script><script src=/verkstad/js/app.804145be.js></script></body></html> \ No newline at end of file +<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link href=https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.css rel=stylesheet type=text/css><script src=https://cdn.pydata.org/bokeh/release/bokeh-0.12.13.min.js></script><title>Verkstad - The mass spec maintenance app</title><link href=/verkstad/css/app.b94c8a5e.css rel=preload as=style><link href=/verkstad/css/chunk-vendors.3ce0e8f7.css rel=preload as=style><link href=/verkstad/js/app.38daa308.js rel=preload as=script><link href=/verkstad/js/chunk-vendors.dc303f71.js rel=preload as=script><link href=/verkstad/css/chunk-vendors.3ce0e8f7.css rel=stylesheet><link href=/verkstad/css/app.b94c8a5e.css rel=stylesheet></head><body><noscript><strong>We're sorry but Verkstad doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/verkstad/js/chunk-vendors.dc303f71.js></script><script src=/verkstad/js/app.38daa308.js></script></body></html> \ No newline at end of file diff --git a/dist/js/app.38daa308.js b/dist/js/app.38daa308.js new file mode 100644 index 0000000..5eeb47b --- /dev/null +++ b/dist/js/app.38daa308.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var s,i,o=t[0],c=t[1],l=t[2],d=0,m=[];d<o.length;d++)i=o[d],n[i]&&m.push(n[i][0]),n[i]=0;for(s in c)Object.prototype.hasOwnProperty.call(c,s)&&(e[s]=c[s]);u&&u(t);while(m.length)m.shift()();return r.push.apply(r,l||[]),a()}function a(){for(var e,t=0;t<r.length;t++){for(var a=r[t],s=!0,o=1;o<a.length;o++){var c=a[o];0!==n[c]&&(s=!1)}s&&(r.splice(t--,1),e=i(i.s=a[0]))}return e}var s={},n={app:0},r=[];function i(t){if(s[t])return s[t].exports;var a=s[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,i),a.l=!0,a.exports}i.m=e,i.c=s,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(a,s,function(t){return e[t]}.bind(null,s));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/verkstad/";var o=window["webpackJsonp"]=window["webpackJsonp"]||[],c=o.push.bind(o);o.push=t,o=o.slice();for(var l=0;l<o.length;l++)t(o[l]);var u=c;r.push([0,"chunk-vendors"]),a()})({0:function(e,t,a){e.exports=a("56d7")},"0224":function(e,t,a){"use strict";var s=a("a491"),n=a.n(s);n.a},"034f":function(e,t,a){"use strict";var s=a("64a9"),n=a.n(s);n.a},"0649":function(e,t,a){"use strict";var s=a("f20a"),n=a.n(s);n.a},"06e8":function(e,t,a){},"07a4":function(e,t,a){"use strict";var s=a("f499"),n=a.n(s),r=(a("cadf"),a("551c"),a("097d"),a("2b0e")),i=a("2f62");r["a"].use(i["a"]),t["a"]=new i["a"].Store({strict:!0,state:{user:JSON.parse(localStorage.getItem("user"))||null,token:localStorage.getItem("token")||null},mutations:{setUser:function(e,t){e.user=t.user,e.token=t.token,e.token?(localStorage.setItem("token",e.token),localStorage.setItem("user",n()(e.user))):(localStorage.removeItem("token"),localStorage.removeItem("user"))}},actions:{setUser:function(e,t){var a=e.commit;a("setUser",t)},logout:function(e){var t=e.commit;t("setUser",{user:null,token:null})}}})},"306f":function(e,t,a){"use strict";var s=a("ddcf"),n=a.n(s);n.a},"3bc1":function(e,t,a){"use strict";var s=a("d31f"),n=a.n(s);n.a},"3f4a":function(e,t,a){"use strict";a("cadf"),a("551c"),a("097d");var s=a("bc3a"),n=a.n(s),r=a("07a4");t["a"]=function(){return n.a.create({baseURL:"https://mozzarella.scilifelab.se/verkstad_api/",headers:{Authorization:"Bearer ".concat(r["a"].state.token)}})}},"3f95":function(e,t,a){"use strict";var s=a("8a6a"),n=a.n(s);n.a},"459c":function(e,t,a){"use strict";var s=a("60f7"),n=a.n(s);n.a},"56d7":function(e,t,a){"use strict";a.r(t);a("cadf"),a("551c"),a("097d");var s=a("2b0e"),n=a("9f7b"),r=a("ecee"),i=a("c074"),o=a("ad3d"),c=a("31bd"),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"app"}},[a("Sidebar"),a("b-container",{attrs:{fluid:""}},[a("router-view")],1)],1)},u=[],d=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("b-nav",{staticClass:"sidebar"},[a("div",{staticClass:"navbar-header"},[a("b-navbar-brand",{staticClass:"logo-wrapper",attrs:{to:"/"}},[a("font-awesome-icon",{attrs:{icon:"oil-can"}})],1),a("h5",{staticClass:"title"},[e._v("Verkstad")]),a("h6",{staticClass:"subtitle"},[e._v("Mass Spectrometer Maintenance")])],1),a("div",{staticClass:"navbar-body"},[a("b-nav-item",{attrs:{to:"/",exact:""}},[e._v("Home")]),a("b-nav-item",{attrs:{to:"/logbook"}},[e._v("Logbook")]),a("b-nav-item",{attrs:{to:"/tasks"}},[e._v("Tasks")]),a("b-nav-item",{attrs:{to:"/machines"}},[e._v("Machines")]),a("b-nav-item",{attrs:{to:"/users"}},[e._v("Users")])],1),a("div",{staticClass:"navbar-user"},[e.$store.state.user?a("b-nav-text",{staticClass:"user-name"},[e._v("\n "+e._s(e.$store.state.user.name)+"\n ")]):e._e(),e.$store.state.user?e._e():a("b-nav-item",{attrs:{to:"/login"}},[e._v("Login")]),e.$store.state.user?a("b-nav-item",{on:{click:e.logout}},[e._v("Logout")]):e._e(),a("a",{staticClass:"seemless",attrs:{href:"#"},on:{click:e.fullScreen}},[e._v("Full screen")])],1),a("div",{staticClass:"navbar-footer"},[a("b-nav-text",[a("router-link",{staticClass:"link-about",attrs:{to:"/about"}},[e._v("Lehtiö Lab "+e._s(e.year))])],1)],1)])},m=[],h={data:function(){return{year:(new Date).getFullYear()}},methods:{logout:function(){this.$store.dispatch("logout")},fullScreen:function(){document.documentElement.webkitRequestFullScreen()}}},p=h,_=(a("ffba"),a("2877")),f=Object(_["a"])(p,d,m,!1,null,"5c6f1596",null);f.options.__file="Sidebar.vue";var v=f.exports,b={name:"App",components:{Sidebar:v}},k=b,g=(a("034f"),Object(_["a"])(k,l,u,!1,null,null,null));g.options.__file="App.vue";var w=g.exports,y=a("8c4f"),x=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Home"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.machineTasksAvailable?a("div",{staticClass:"task-board"},[a("div",{staticClass:"task-box"},[a("h5",[e._v("Latest today")]),a("ol",{staticClass:"latest-today"},[e._l(e.orderedDueMachineTasks.today,function(e){return a("machine-task-card",{key:e.id,staticClass:"task-card",attrs:{data:e}})}),0===e.orderedDueMachineTasks.today.length?a("li",[a("b-alert",{attrs:{show:!0}},[a("div",[e._v("All tasks done for today.")]),1===(new Date).getDay()?a("div",[e._v("Not bad for a Monday!")]):e._e(),4===(new Date).getDay()?a("div",[e._v("It's Thursday, why not going for the pub?")]):e._e(),5===(new Date).getDay()?a("div",[e._v("Go home! It's almost weekend!")]):e._e()])],1):e._e()],2)]),a("div",{staticClass:"task-box"},[a("h5",[e._v("Upcoming")]),a("ol",{staticClass:"upcoming"},e._l(e.orderedDueMachineTasks.upcoming,function(e){return a("machine-task-card",{key:e.id,staticClass:"task-card",attrs:{data:e}})}),1)])]):e._e()],1)},C=[],T=(a("96cf"),a("3b8d")),O=a("2ef0"),D=a.n(O),M=a("9659"),I=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("li",{staticClass:"task-card"},[a("div",{staticClass:"task-color-bar",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"]}),a("div",{staticClass:"task-body",on:{click:e.showTaskDetails}},[a("h1",[e._v(e._s(e.data.machineTask.Task.name))]),a("div",{staticClass:"task-machine"},[e._v(e._s(e.data.machineTask.Machine.name))]),a("div",{staticClass:"task-latest"},[e._v("\n Latest: "+e._s(e.data.nextDate.split("T")[0])+"\n ("+e._s(e.data.dayDiff<-1?"in "+e.formatDay(e.data.dayDiff):e.data.dayDiff<0?"today":e.formatDay(e.data.dayDiff)+" ago")+")\n ")])]),a("b-button",{staticClass:"check-task",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"],attrs:{disabled:!Boolean(e.$store.state.token)},on:{click:e.checkTask}},[a("font-awesome-icon",{attrs:{icon:"check-circle"}})],1),a("b-button",{staticClass:"dismiss-task",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"],attrs:{disabled:!Boolean(e.$store.state.token)},on:{click:e.dismissTask}},[a("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)],1)},E=[],P={name:"Login",props:["data"],methods:{checkTask:function(){this.$router.push({name:"workonmachinetask",params:{mode:"check",machineTaskId:this.data.machineTask.id}})},dismissTask:function(){this.$router.push({name:"workonmachinetask",params:{mode:"dismiss",machineTaskId:this.data.machineTask.id}})},showTaskDetails:function(){this.$router.push({name:"taskdetails",params:{taskId:this.data.machineTask.Task.id}})},formatDay:function(e){var t=Math.abs(Math.ceil(e));return"".concat(t,t>1?" days":" day")}}},$=P,R=(a("3bc1"),Object(_["a"])($,I,E,!1,null,"17f0c3b1",null));R.options.__file="MachineTaskCard.vue";var j=R.exports,L=a("3f4a"),S={index:function(){return Object(L["a"])().get("/machinetasks")},machineTask:function(e){return Object(L["a"])().get("/machinetask/".concat(e))}},B={name:"Home",components:{PageTitleBar:M["a"],MachineTaskCard:j},data:function(){return{message:null,machineTasksAvailable:!1,dueMachineTasks:{today:null,upcoming:null},reloadInterval:6e4}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t=this;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadMachineTasks();case 2:this.$options.interval=setInterval(Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.loadMachineTasks();case 2:case"end":return e.stop()}},e,this)})),this.reloadInterval);case 3:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),beforeDestroy:function(){clearInterval(this.$options.interval)},methods:{loadMachineTasks:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,S.index();case 3:t=e.sent.data.machineTasks,0===t.length?(this.machineTasksAvailable=!1,this.message="There are no upcoming tasks. Please define new tasks."):(this.dueMachineTasks.today=t.filter(function(e){return e.dayDiff>=-1}),this.dueMachineTasks.upcoming=t.filter(function(e){return e.dayDiff<-1}),this.machineTasksAvailable=!0,this.message=null),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}()},computed:{orderedDueMachineTasks:function(){return{today:D.a.orderBy(this.dueMachineTasks.today,["dayDiff","id"],"desc"),upcoming:D.a.orderBy(this.dueMachineTasks.upcoming,["dayDiff","id"],"desc")}}}},U=B,A=(a("ceda"),Object(_["a"])(U,x,C,!1,null,"3105bf88",null));A.options.__file="Home.vue";var N=A.exports,Q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Logbook"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.logs.length>0?a("b-table",{staticClass:"logs-table",attrs:{items:e.logs,fields:e.fields,"sort-by":"createdAt","sort-desc":!0,responsive:""},scopedSlots:e._u([{key:"status",fn:function(t){return["check"===t.value?a("font-awesome-icon",{staticStyle:{color:"darkseagreen"},attrs:{icon:"check-circle"}}):"dismiss"===t.value?a("font-awesome-icon",{staticStyle:{color:"lightcoral"},attrs:{icon:"times-circle"}}):e._e()]}},{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showDetails(t.item)}}},[e._v("\n Details\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteLogRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete log?"},on:{ok:e.deleteLog}},[a("p",[e._v("Do you really want to delete this log?")])])],1)},q=[],K=(a("28a5"),{add:function(e){return Object(L["a"])().post("/addlog",e)},index:function(){return Object(L["a"])().get("/logbook")},log:function(e){return Object(L["a"])().get("/log/".concat(e))},deleteLog:function(e){return Object(L["a"])().delete("/deletelog/".concat(e))}}),F={name:"Logbook",components:{PageTitleBar:M["a"]},data:function(){return{message:null,logs:[],fields:{status:{label:"",sortable:!1},task:{label:"Task",sortable:!0},machine:{label:"Machine",sortable:!0},createdAt:{label:"Done",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},user:{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadLogs();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadLogs:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.index();case 3:this.logs=e.sent.data,0===this.logs.length?this.message="There are no logs.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),showDetails:function(e){this.$router.push({name:"logdetails",params:{logId:e.id}})},deleteLogRequest:function(e){this.modalQuestion.id=e.id,this.$root.$emit("bv::show::modal","modalQuestion")},deleteLog:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.deleteLog(this.modalQuestion.id);case 3:return e.next=5,this.loadLogs();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}()}},W=F,z=Object(_["a"])(W,Q,q,!1,null,"2a5c114a",null);z.options.__file="Logbook.vue";var G=z.exports,H=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[e.log?a("page-title-bar",{attrs:{title:e.log.task,showBack:!0}}):e._e(),e.log?e._e():a("page-title-bar",{attrs:{title:"Error",showBack:"true"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.log?a("table",{staticClass:"log-details-table"},[a("tr",[a("td",{staticClass:"row-title"},[e._v("Satus:")]),a("td",["check"===e.log.status?a("font-awesome-icon",{staticStyle:{color:"darkseagreen"},attrs:{icon:"check-circle"}}):e._e(),"dismiss"===e.log.status?a("font-awesome-icon",{staticStyle:{color:"lightcoral"},attrs:{icon:"times-circle"}}):e._e()],1)]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Description:")]),a("td",[e._v(e._s(e.log.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK:")]),a("td",[e._v(e._s(e.log.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Interval:")]),a("td",[e._v("\n "+e._s(e.log.interval+(1===e.log.interval?" day":" days"))+"\n ")])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Machine:")]),a("td",[e._v(e._s(e.log.machine))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Done:")]),a("td",[e._v(e._s(e.log.createdAt.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("By:")]),a("td",[e._v(e._s(e.log.user))])]),a("tr",{staticClass:"spacer"}),a("tr",[a("td",{staticClass:"row-title"},[e._v("Comment:")]),a("td",[e._v(e._s(e.log.comment))])])]):e._e()],1)},J=[],Y={name:"LogDetails",components:{PageTitleBar:M["a"]},props:["logId"],data:function(){return{message:null,log:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.log(this.logId);case 3:this.log=e.sent.data,this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}()},V=Y,X=(a("0224"),Object(_["a"])(V,H,J,!1,null,"2456b989",null));X.options.__file="LogDetails.vue";var Z=X.exports,ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Users"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.users.length>0?a("b-table",{staticClass:"user-table",attrs:{items:e.users,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteUserRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),!e.$store.state.user&&this.users.length>0?a("b-button",{staticClass:"btn-outlined",attrs:{to:"/login"}},[e._v("\n Login\n ")]):e._e(),a("b-button",{staticClass:"btn-outlined",attrs:{to:"/signup"}},[e._v("\n Add user\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete user?"},on:{ok:e.deleteUser}},[a("p",[e._v("Do you really want to kick out this user?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.userName)),a("br"),e._v("\n "+e._s(e.modalQuestion.userEMail))])]),e.$store.state.user?a("p",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.user.email===e.modalQuestion.userEMail,expression:"$store.state.user.email === modalQuestion.userEMail"}],staticStyle:{color:"crimson","font-weight":"bold"}},[e._v("\n Warning: You are going to delete yourself. If you continue,\n you will be logged out automatically.\n ")]):e._e()])],1)},te=[],ae=(a("7f7f"),{signUp:function(e){return Object(L["a"])().post("/signup",e)},login:function(e){return Object(L["a"])().post("/login",e)},index:function(){return Object(L["a"])().get("/users")},deleteUser:function(e){return Object(L["a"])().delete("deleteuser/".concat(e))}}),se={name:"Users",components:{PageTitleBar:M["a"]},data:function(){return{message:null,users:[],fields:{name:{label:"Name",sortable:!0},email:{label:"eMail"},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},actions:{label:"",sortable:!1}},modalQuestion:{userId:null,userName:"",userEMail:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadUsers();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadUsers:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.index();case 3:this.users=e.sent.data,0===this.users.length?this.message="There are no users registered.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteUserRequest:function(e){this.modalQuestion.userId=e.id,this.modalQuestion.userName=e.name,this.modalQuestion.userEMail=e.email,this.$root.$emit("bv::show::modal","modalQuestion")},deleteUser:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.deleteUser(this.modalQuestion.userId);case 3:this.$store.state.user&&this.modalQuestion.userEMail===this.$store.state.user.email&&this.logout(),this.loadUsers(),this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),logout:function(){this.$store.dispatch("logout")}}},ne=se,re=Object(_["a"])(ne,ee,te,!1,null,"59eb6a48",null);re.options.__file="Users.vue";var ie=re.exports,oe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Sign up",showBack:!0}}),a("div",{staticClass:"description"},[e._v("Register a new user for this app by submitting the form below.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.signUp(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"emailLabel",label:"eMail address:","label-for":"email"}},[a("b-form-input",{attrs:{id:"email",type:"email",required:"",placeholder:"Enter eMail"},model:{value:e.user.email,callback:function(t){e.$set(e.user,"email",t)},expression:"user.email"}})],1),a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",required:"",placeholder:"Enter name"},model:{value:e.user.name,callback:function(t){e.$set(e.user,"name",t)},expression:"user.name"}})],1),a("b-form-group",{attrs:{id:"passwordLabel",label:"Password:","label-for":"password"}},[a("b-form-input",{attrs:{id:"password",type:"password",required:"",placeholder:"Enter password (>3 characters)"},model:{value:e.user.password,callback:function(t){e.$set(e.user,"password",t)},expression:"user.password"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Sign up")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},ce=[],le={name:"Signup",components:{PageTitleBar:M["a"]},data:function(){return{user:{email:"",name:"",password:""},showForm:!0,message:null}},methods:{signUp:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.signUp({email:this.user.email,name:this.user.name,password:this.user.password});case 3:this.message=null,this.$router.push({path:"/users"}),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.user.email="",this.user.name="",this.user.password="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},ue=le,de=Object(_["a"])(ue,oe,ce,!1,null,"3ace11de",null);de.options.__file="Signup.vue";var me=de.exports,he=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Login",showBack:!0}}),a("div",{staticClass:"description"},[e._v("Come in and take care of your mass specs.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{on:{submit:function(t){return t.preventDefault(),e.login(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"emailLabel",label:"eMail address:","label-for":"email"}},[a("b-form-input",{attrs:{id:"email",type:"email",required:"",placeholder:"Enter eMail"},model:{value:e.user.email,callback:function(t){e.$set(e.user,"email",t)},expression:"user.email"}})],1),a("b-form-group",{attrs:{id:"passwordLabel",label:"Password:","label-for":"password"}},[a("b-form-input",{attrs:{id:"password",type:"password",required:"",placeholder:"Enter password"},model:{value:e.user.password,callback:function(t){e.$set(e.user,"password",t)},expression:"user.password"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Login")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},pe=[],_e={name:"Login",components:{PageTitleBar:M["a"]},data:function(){return{user:{email:"",password:""},showForm:!0,message:null}},methods:{login:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.login({email:this.user.email,password:this.user.password});case 3:t=e.sent,this.$store.dispatch("setUser",t.data),this.message=null,this.$router.push({name:this.$store.state.route.from.name}),e.next=12;break;case 9:e.prev=9,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 12:case"end":return e.stop()}},e,this,[[0,9]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.user.email="",this.user.name="",this.user.password="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},fe=_e,ve=Object(_["a"])(fe,he,pe,!1,null,"630eeda3",null);ve.options.__file="Login.vue";var be=ve.exports,ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Machines"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.machines.length>0?a("b-table",{staticClass:"machines-table",attrs:{items:e.machines,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.editMachine(t.item)}}},[e._v("\n Edit\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteMachineRequest(t.item)}}},[e._v("\n Delete\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token&&t.item.kanteleId,expression:"$store.state.token && row.item.kanteleId"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showQC(t.item)}}},[e._v("\n Show QC\n ")])]}}])}):e._e(),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"btn-outlined",attrs:{to:"/addeditmachine/add"}},[e._v("\n Add machine\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete machine?"},on:{ok:e.deleteMachine,hide:e.resetModal}},[a("p",[e._v("Do you really want to delete this machine?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.name))])]),a("p",[e._v("Please note: Deleting a machine can lead to tasks\n without machine. Please control your task settings\n after deletion.")])])],1)},ge=[],we=a("aeee"),ye={name:"Machines",components:{PageTitleBar:M["a"]},data:function(){return{message:null,machines:[],fields:{name:{label:"Name",sortable:!0},type:{label:"Type",sortable:!0},kanteleId:{label:"Kantele ID",sortable:!0},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},"User.name":{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null,name:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadMachines();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadMachines:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,we["a"].index();case 3:this.machines=e.sent.data,0===this.machines.length?this.message="There are no machines.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteMachineRequest:function(e){this.modalQuestion={id:e.id,name:e.name},this.$root.$emit("bv::show::modal","modalQuestion")},editMachine:function(e){this.$router.push({name:"addeditmachine",params:{machineId:e.id}})},showQC:function(e){this.$router.push({name:"machineqc",params:{machineId:e.id}})},deleteMachine:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,we["a"].deleteMachine(this.modalQuestion.id);case 3:return e.next=5,this.loadMachines();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),resetModal:function(){this.modalQuestion.name=""}}},xe=ye,Ce=Object(_["a"])(xe,ke,ge,!1,null,"13ae183a",null);Ce.options.__file="Machines.vue";var Te=Ce.exports,Oe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},["add"===e.machineId?a("page-title-bar",{attrs:{title:"Add machine",showBack:!0}}):e._e(),"add"!==e.machineId?a("page-title-bar",{attrs:{title:e.machine.name,showBack:!0}}):e._e(),"add"===e.machineId?a("div",{staticClass:"description"},[e._v("Register a new mass spectrometer.")]):a("div",{staticClass:"description"},[e._v("Edit the mass spectrometer.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.addEditMachine(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",required:"",placeholder:"Enter name"},model:{value:e.machine.name,callback:function(t){e.$set(e.machine,"name",t)},expression:"machine.name"}})],1),a("b-form-group",{attrs:{id:"typeLabel",label:"Type:","label-for":"type"}},[a("b-form-input",{attrs:{id:"type",placeholder:"Enter type"},model:{value:e.machine.type,callback:function(t){e.$set(e.machine,"type",t)},expression:"machine.type"}})],1),a("b-form-group",{attrs:{id:"kanteleIdLabel",label:"Kantele ID:","label-for":"kanteleId",description:"Pleas ask your local admin."}},[a("b-form-input",{attrs:{id:"kanteleId",placeholder:"Enter Kantele ID"},model:{value:e.machine.kanteleId,callback:function(t){e.$set(e.machine,"kanteleId",t)},expression:"machine.kanteleId"}})],1),"add"===e.machineId?a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n Add machine\n ")]):e._e(),"add"!==e.machineId?a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n Save changes\n ")]):e._e(),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},De=[],Me={name:"AddEditMachine",components:{PageTitleBar:M["a"]},props:["machineId"],data:function(){return{machine:{name:"",type:"",kanteleId:null},showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if("add"===this.machineId){e.next=4;break}return e.next=3,we["a"].machine(this.machineId);case 3:this.machine=e.sent.data;case 4:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{addEditMachine:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(e.prev=0,"add"!==this.machineId){e.next=6;break}return e.next=4,we["a"].add(this.machine);case 4:e.next=8;break;case 6:return e.next=8,we["a"].update(this.machine);case 8:this.message=null,this.$router.push({path:"/machines"}),e.next=15;break;case 12:e.prev=12,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 15:case"end":return e.stop()}},e,this,[[0,12]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.machine.name="",this.machine.type="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},Ie=Me,Ee=Object(_["a"])(Ie,Oe,De,!1,null,"d5b1dc1e",null);Ee.options.__file="AddEditMachine.vue";var Pe=Ee.exports,$e=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Tasks"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.tasks.length>0?a("b-table",{staticClass:"tasks-table",attrs:{items:e.tasks,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showEdit(t.item)}}},[e._v("\n Edit\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteTaskRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"btn-outlined",attrs:{to:"/addedittask/add"}},[e._v("\n Add task\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete task?"},on:{ok:e.deleteTask}},[a("p",[e._v("Do you really want to delete this task?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.name))])])])],1)},Re=[],je=(a("6b54"),{add:function(e){return Object(L["a"])().post("/addtask",e)},update:function(e){return Object(L["a"])().put("/updatetask/".concat(e.task.id),e)},index:function(){return Object(L["a"])().get("/tasks")},deleteTask:function(e){return Object(L["a"])().delete("deletetask/".concat(e))},task:function(e){return Object(L["a"])().get("/task/".concat(e))}}),Le={name:"Tasks",components:{PageTitleBar:M["a"]},data:function(){return{message:null,tasks:[],fields:{name:{label:"Name",sortable:!0},description:{label:"Description"},interval:{label:"Interval",sortable:!0,formatter:function(e){var t=1===e?" day":" days";return e.toString()+t}},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},"User.name":{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null,name:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadTasks();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadTasks:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.index();case 3:this.tasks=e.sent.data,0===this.tasks.length?this.message="There are no tasks.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteTaskRequest:function(e){this.modalQuestion.id=e.id,this.modalQuestion.name=e.name,this.$root.$emit("bv::show::modal","modalQuestion")},deleteTask:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.deleteTask(this.modalQuestion.id);case 3:return e.next=5,this.loadTasks();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),showEdit:function(e){this.$router.push({name:"addedittask",params:{taskId:e.id}})}}},Se=Le,Be=Object(_["a"])(Se,$e,Re,!1,null,"a823ba28",null);Be.options.__file="Tasks.vue";var Ue=Be.exports,Ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},["add"===e.taskId?a("page-title-bar",{attrs:{title:"Add task",showBack:!0}}):e._e(),"add"!==e.taskId?a("page-title-bar",{attrs:{title:e.task.name,showBack:!0}}):e._e(),"add"===e.taskId?a("div",{staticClass:"description"},[e._v("Create a new maintenance task.")]):a("div",{staticClass:"description"},[e._v("Edit a maintenance task.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.addEditTask(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",placeholder:"Must be unique",required:""},model:{value:e.task.name,callback:function(t){e.$set(e.task,"name",t)},expression:"task.name"}})],1),a("b-form-group",{attrs:{id:"descriptionLabel",label:"Description:","label-for":"description"}},[a("b-form-input",{attrs:{id:"description",placeholder:"What is the actual task?"},model:{value:e.task.description,callback:function(t){e.$set(e.task,"description",t)},expression:"task.description"}})],1),a("b-form-group",{attrs:{id:"machineLabel",label:"Select machines:","label-for":"machines",description:"add"!==e.taskId?"Changing the machine selection will rearrange tasks.":""}},[a("b-form-select",{attrs:{id:"machines",options:e.machines,multiple:""},model:{value:e.machineIds,callback:function(t){e.machineIds=t},expression:"machineIds"}})],1),a("b-form-group",{attrs:{id:"repareLabel",label:"If not OK:","label-for":"repare"}},[a("b-form-input",{attrs:{id:"repare",placeholder:"What to do?"},model:{value:e.task.repare,callback:function(t){e.$set(e.task,"repare",t)},expression:"task.repare"}})],1),a("b-form-group",{attrs:{id:"startLabel",label:"Start date:","label-for":"start",description:"If the start date is during a weekend,\n the task is postponed to the next Monday instead."}},[a("b-form-input",{ref:"start",attrs:{id:"start",type:"date"},model:{value:e.task.startDate,callback:function(t){e.$set(e.task,"startDate",t)},expression:"task.startDate"}})],1),a("b-form-group",{attrs:{id:"intervalLabel",label:"Interval:","label-for":"interval",description:"If the interval leads to a due date during a weekend,\n the task is postponed to the next Monday instead."}},[a("b-form-input",{attrs:{id:"interval",type:"number",placeholder:"in days"},model:{value:e.task.interval,callback:function(t){e.$set(e.task,"interval",t)},expression:"task.interval"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n "+e._s("add"===e.taskId?"Add task":"Save changes")+"\n ")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},Ne=[],Qe=a("cebc"),qe={name:"AddEditTask",components:{PageTitleBar:M["a"]},props:["taskId"],data:function(){return{task:{name:"",description:"",repare:"",startDate:"",interval:""},machineIds:[],machines:[],selectedMachines:[],showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t,a;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,we["a"].index();case 2:if(t=e.sent.data,0===t.length&&(this.message="First you have to define a mass spec in the machines tab.",this.showForm=!1),this.machines=t.map(function(e){return{value:e.id,text:e.name}}),"add"===this.taskId){e.next=11;break}return e.next=8,je.task(this.taskId);case 8:a=e.sent.data,this.task=Object(Qe["a"])({},a,{startDate:a.startDate.split("T")[0]}),this.machineIds=this.task.MachineTasks.map(function(e){return e.Machine.id});case 11:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{addEditTask:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(e.prev=0,"add"!==this.taskId){e.next=6;break}return e.next=4,je.add({task:this.task,machineIds:this.machineIds});case 4:e.next=8;break;case 6:return e.next=8,je.update({task:Object(Qe["a"])({id:this.taskId},this.task),machineIds:this.machineIds});case 8:this.message=null,this.$router.push({path:"/tasks"}),e.next=15;break;case 12:e.prev=12,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 15:case"end":return e.stop()}},e,this,[[0,12]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.task.name="",this.task.description="",this.task.machineId=null,this.task.repare="",this.task.start="",this.task.interval="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},Ke=qe,Fe=Object(_["a"])(Ke,Ae,Ne,!1,null,"497a8216",null);Fe.options.__file="AddEditTask.vue";var We=Fe.exports,ze=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[e.task?a("page-title-bar",{attrs:{title:e.task.name,showBack:!0}}):e._e(),e.task?e._e():a("page-title-bar",{attrs:{title:"Error",showBack:"true"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.task?a("table",{staticClass:"task-details-table"},[a("tr",[a("td",{staticClass:"row-title"},[e._v("Description")]),a("td",[e._v(e._s(e.task.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK")]),a("td",[e._v(e._s(e.task.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("First due date")]),a("td",[e._v(e._s(e.task.startDate.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Interval")]),a("td",[e._v(e._s(e.task.interval+(1===e.task.interval?" day":" days")))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v(e._s(1===e.machineNames.length?"Machine":"Machines"))]),a("td",[e._v(e._s(e.machineNames.join(", ")))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Created")]),a("td",[e._v(e._s(e.task.createdAt.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Created by")]),a("td",[e._v(e._s(e.task.User.name))])])]):e._e()],1)},Ge=[],He={name:"Tasks",components:{PageTitleBar:M["a"]},props:["taskId"],data:function(){return{message:null,task:null,machineNames:[]}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.task(this.taskId);case 3:this.task=e.sent.data,t=this.task.MachineTasks.map(function(e){return e.Machine.name}),this.machineNames=t.filter(function(e,t,a){return a.indexOf(e)===t}),this.message=null,e.next=12;break;case 9:e.prev=9,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 12:case"end":return e.stop()}},e,this,[[0,9]])}));function t(){return e.apply(this,arguments)}return t}()},Je=He,Ye=(a("eeae"),Object(_["a"])(Je,ze,Ge,!1,null,"2b2ddf46",null));Ye.options.__file="TaskDetails.vue";var Ve=Ye.exports,Xe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.machineTask?a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:e.machineTask.Task.name,showBack:!0}}),"check"===e.mode?a("div",{staticClass:"description green-desc"},[a("font-awesome-icon",{attrs:{icon:"check-circle"}}),e._v("\n The task has been successfully accomplished. Congrats!"),a("br")],1):e._e(),"dismiss"===e.mode?a("div",{staticClass:"description red-desc"},[a("font-awesome-icon",{attrs:{icon:"times-circle"}}),e._v("\n There have been issues!\n ")],1):e._e(),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),a("table",[a("tr",[a("td",{staticClass:"row-title"},[e._v("What to do:")]),a("td",[e._v(e._s(e.machineTask.Task.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK:")]),a("td",[e._v(e._s(e.machineTask.Task.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Machine:")]),a("td",[e._v(e._s(e.machineTask.Machine.name))])])]),e.showForm?a("b-form",{on:{submit:function(t){return t.preventDefault(),e.saveLog(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"commentLabel",label:"Comment:","label-for":"comment"}},[a("b-form-textarea",{class:["check"===e.mode?"green-textarea":"red-textarea"],attrs:{id:"comment",placeholder:"Enter some notes",rows:"3","no-resize":!0},model:{value:e.comment,callback:function(t){e.comment=t},expression:"comment"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Save")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1):e._e()},Ze=[],et={name:"WorkOnMachineTask",components:{PageTitleBar:M["a"]},props:["mode","machineTaskId"],data:function(){return{machineTask:null,comment:"",showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,S.machineTask(this.machineTaskId);case 2:this.machineTask=e.sent.data.machineTask;case 3:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{saveLog:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.add({status:this.mode,machineTaskId:this.machineTask.id,comment:this.comment});case 3:this.message=null,this.$router.push({path:"/"}),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.comment="",this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},tt=et,at=(a("3f95"),Object(_["a"])(tt,Xe,Ze,!1,null,"cb36d53c",null));at.options.__file="WorkOnMachineTask.vue";var st=at.exports,nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.machine?a("div",{staticClass:"qc-wrapper"},[a("page-title-bar",{attrs:{title:e.machine.name+" Quality Control",showBack:!0}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.plotsLoaded||e.message?e._e():a("div",{staticClass:"description"},[e._v("Plots loading...")]),e.plotsLoaded?a("div",{staticClass:"plots"},[a("h3",[e._v("Number of identifications")]),a("div",{attrs:{id:e.plots.bokeh_code.div.amount_peptides.elementid}}),a("hr"),a("h3",[e._v("Number of PSMs")]),a("div",{attrs:{id:e.plots.bokeh_code.div.amount_psms.elementid}}),a("hr"),a("h3",[e._v("Peptide precursor areas")]),a("div",{attrs:{id:e.plots.bokeh_code.div.precursorarea.elementid}}),a("hr"),a("h3",[e._v("PSM MSGFScore")]),a("div",{attrs:{id:e.plots.bokeh_code.div.msgfscore.elementid}}),a("hr"),a("h3",[e._v("Precursor error (ppm)")]),a("div",{attrs:{id:e.plots.bokeh_code.div.prec_error.elementid}}),a("hr"),a("h3",[e._v("Retention time (min)")]),a("div",{attrs:{id:e.plots.bokeh_code.div.rt.elementid}})]):e._e()],1):e._e()},rt=[],it=a("a85a"),ot=it["a"],ct=(a("0649"),Object(_["a"])(ot,nt,rt,!1,null,"327132d2",null));ct.options.__file="MachineQC.vue";var lt=ct.exports,ut=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"About this app"}}),a("div",{staticClass:"description"},[e._v("Verkstad – The mass spec maintenance app.")]),a("br"),e._m(0),a("br"),e._m(1),e._m(2),a("br"),a("p",[e._v("\n Please note: The server is logging request information from this app.\n ")])],1)},dt=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n This app was created by Matthias Stahl in the\n "),a("a",{attrs:{href:"http://lehtiolab.se"}},[e._v("Lehtiö laboratory")]),e._v("\n at "),a("a",{attrs:{href:"http://ki.se"}},[e._v("Karolinska Institutet")]),e._v(" in winter 2019.\n ")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n Client code: "),a("a",{attrs:{href:"https://github.com/mtstahl/verkstad_client"}},[e._v("github.com/mtstahl/verkstad_client")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n Server code: "),a("a",{attrs:{href:"https://github.com/mtstahl/verkstad_server"}},[e._v("github.com/mtstahl/verkstad_server")])])}],mt={name:"About",components:{PageTitleBar:M["a"]}},ht=mt,pt=(a("459c"),Object(_["a"])(ht,ut,dt,!1,null,"65378bdb",null));pt.options.__file="About.vue";var _t=pt.exports;s["a"].use(y["a"]);var ft=new y["a"]({mode:"history",base:"/verkstad/",hash:!1,routes:[{path:"/",name:"home",component:N},{path:"/logbook",name:"logbook",component:G},{path:"/logdetails/:logId",name:"logdetails",component:Z,props:!0},{path:"/users",name:"users",component:ie},{path:"/signup",name:"signup",component:me},{path:"/login",name:"login",component:be},{path:"/machines",name:"machines",component:Te},{path:"/addeditmachine/:machineId",name:"addeditmachine",component:Pe,props:!0},{path:"/tasks",name:"tasks",component:Ue},{path:"/addedittask/:taskId",name:"addedittask",component:We,props:!0},{path:"/taskdetails/:taskId",name:"taskdetails",component:Ve,props:!0},{path:"/workonmachinetask/:mode/:machineTaskId",name:"workonmachinetask",component:st,props:!0},{path:"/machineqc/:machineId",name:"machineqc",component:lt,props:!0},{path:"/about",name:"about",component:_t},{path:"*",redirect:"/"}]}),vt=a("07a4");a("f9e3"),a("2dd8");s["a"].config.productionTip=!1,s["a"].use(n["a"]),Object(c["sync"])(vt["a"],ft),r["c"].add(i["c"]),r["c"].add(i["a"]),r["c"].add(i["b"]),r["c"].add(i["d"]),s["a"].component("font-awesome-icon",o["a"]),new s["a"]({router:ft,store:vt["a"],render:function(e){return e(w)}}).$mount("#app")},"60f7":function(e,t,a){},"61e1":function(e,t,a){},"64a9":function(e,t,a){},"8a6a":function(e,t,a){},9659:function(e,t,a){"use strict";var s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bar"},[e.showBack?a("b-button",{staticClass:"btn-back",attrs:{to:{path:e.$store.state.route.from.fullPath}}},[a("font-awesome-icon",{attrs:{icon:"arrow-alt-circle-left"}})],1):e._e(),a("h1",[e._v(e._s(e.title))]),a("div",{staticClass:"date"},[e._v(e._s(e.today))])],1)},n=[],r=(a("28a5"),a("cadf"),a("551c"),a("097d"),{name:"PageTitleBar",props:["title","showBack"],data:function(){return{today:null,days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}},created:function(){var e=new Date;this.today=[this.days[e.getDay()],e.toISOString().split("T")[0]].join(", ")}}),i=r,o=(a("306f"),a("2877")),c=Object(o["a"])(i,s,n,!1,null,"5bace19a",null);c.options.__file="PageTitleBar.vue";t["a"]=c.exports},a491:function(e,t,a){},a85a:function(module,__webpack_exports__,__webpack_require__){"use strict";var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("96cf"),regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0__),_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("3b8d"),core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("cadf"),core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("551c"),core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("097d"),core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4__),_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("9659"),_services_MachineService__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("aeee"),_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("dda9");__webpack_exports__["a"]={name:"MachineQC",components:{PageTitleBar:_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__["a"]},props:["machineId"],data:function(){return{message:null,machine:null,plots:{},plotsLoaded:!1}},created:function(){var e=Object(_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,_services_MachineService__WEBPACK_IMPORTED_MODULE_6__["a"].machine(this.machineId);case 3:this.machine=e.sent.data,0===this.machine.length?this.message="There are no machines.":this.machine.kanteleId?this.loadPlots():this.message="You have not provided a Kantele ID. No QC data can be fetched.",e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadPlots:function(){var _loadPlots=Object(_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["a"])(regeneratorRuntime.mark(function _callee2(){return regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:return _context2.prev=0,_context2.next=3,_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__["a"].getQCPlots(this.machine.kanteleId);case 3:this.plots=_context2.sent.data,console.log(this.plots),eval(this.plots.bokeh_code.script),this.plotsLoaded=!0,this.message=null,_context2.next=13;break;case 10:_context2.prev=10,_context2.t0=_context2["catch"](0),_context2.t0.response?this.message=_context2.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 13:case"end":return _context2.stop()}},_callee2,this,[[0,10]])}));function loadPlots(){return _loadPlots.apply(this,arguments)}return loadPlots}()}}},aeee:function(e,t,a){"use strict";var s=a("3f4a");t["a"]={add:function(e){return Object(s["a"])().post("/addmachine",e)},index:function(){return Object(s["a"])().get("/machines")},machine:function(e){return Object(s["a"])().get("/machine/".concat(e))},update:function(e){return Object(s["a"])().put("/updatemachine/".concat(e.id),e)},deleteMachine:function(e){return Object(s["a"])().delete("deletemachine/".concat(e))}}},c548:function(e,t,a){},ceda:function(e,t,a){"use strict";var s=a("06e8"),n=a.n(s);n.a},d31f:function(e,t,a){},dda9:function(e,t,a){"use strict";var s=a("bc3a"),n=s.create({baseURL:"https://mozzarella.scilifelab.se/dash"});t["a"]={getQCPlots:function(e){return n.get("/longqc/".concat(e))}}},ddcf:function(e,t,a){},eeae:function(e,t,a){"use strict";var s=a("c548"),n=a.n(s);n.a},f20a:function(e,t,a){},ffba:function(e,t,a){"use strict";var s=a("61e1"),n=a.n(s);n.a}}); +//# sourceMappingURL=app.38daa308.js.map \ No newline at end of file diff --git a/dist/js/app.38daa308.js.map b/dist/js/app.38daa308.js.map new file mode 100644 index 0000000..ec483a6 --- /dev/null +++ b/dist/js/app.38daa308.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/LogDetails.vue?17e0","webpack:///./src/App.vue?4241","webpack:///./src/components/MachineQC.vue?a034","webpack:///./src/store/store.js","webpack:///./src/components/PageTitleBar.vue?1c13","webpack:///./src/components/MachineTaskCard.vue?5b86","webpack:///./src/services/Api.js","webpack:///./src/components/WorkOnMachineTask.vue?a4b7","webpack:///./src/components/About.vue?cfae","webpack:///./src/App.vue?c6b0","webpack:///./src/components/Sidebar.vue?fa24","webpack:///src/components/Sidebar.vue","webpack:///./src/components/Sidebar.vue?d975","webpack:///./src/components/Sidebar.vue?ebf3","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?bff9","webpack:///./src/components/Home.vue?1690","webpack:///./src/components/MachineTaskCard.vue?5232","webpack:///src/components/MachineTaskCard.vue","webpack:///./src/components/MachineTaskCard.vue?69f3","webpack:///./src/components/MachineTaskCard.vue?eda1","webpack:///./src/services/MachineTaskService.js","webpack:///src/components/Home.vue","webpack:///./src/components/Home.vue?705d","webpack:///./src/components/Home.vue?2af2","webpack:///./src/components/Logbook.vue?53fd","webpack:///./src/services/LogService.js","webpack:///src/components/Logbook.vue","webpack:///./src/components/Logbook.vue?478b","webpack:///./src/components/Logbook.vue","webpack:///./src/components/LogDetails.vue?e5db","webpack:///src/components/LogDetails.vue","webpack:///./src/components/LogDetails.vue?22d2","webpack:///./src/components/LogDetails.vue?318e","webpack:///./src/components/Users.vue?57e3","webpack:///./src/services/AuthenticationService.js","webpack:///src/components/Users.vue","webpack:///./src/components/Users.vue?fb6d","webpack:///./src/components/Users.vue","webpack:///./src/components/Signup.vue?d8ac","webpack:///src/components/Signup.vue","webpack:///./src/components/Signup.vue?e399","webpack:///./src/components/Signup.vue","webpack:///./src/components/Login.vue?2ef0","webpack:///src/components/Login.vue","webpack:///./src/components/Login.vue?2227","webpack:///./src/components/Login.vue","webpack:///./src/components/Machines.vue?6585","webpack:///src/components/Machines.vue","webpack:///./src/components/Machines.vue?d0c9","webpack:///./src/components/Machines.vue","webpack:///./src/components/AddEditMachine.vue?d6e0","webpack:///src/components/AddEditMachine.vue","webpack:///./src/components/AddEditMachine.vue?115c","webpack:///./src/components/AddEditMachine.vue","webpack:///./src/components/Tasks.vue?e3ca","webpack:///./src/services/TaskService.js","webpack:///src/components/Tasks.vue","webpack:///./src/components/Tasks.vue?fa98","webpack:///./src/components/Tasks.vue","webpack:///./src/components/AddEditTask.vue?c2c9","webpack:///src/components/AddEditTask.vue","webpack:///./src/components/AddEditTask.vue?5cb5","webpack:///./src/components/AddEditTask.vue","webpack:///./src/components/TaskDetails.vue?8227","webpack:///src/components/TaskDetails.vue","webpack:///./src/components/TaskDetails.vue?9dee","webpack:///./src/components/TaskDetails.vue?f813","webpack:///./src/components/WorkOnMachineTask.vue?4e3a","webpack:///src/components/WorkOnMachineTask.vue","webpack:///./src/components/WorkOnMachineTask.vue?1e31","webpack:///./src/components/WorkOnMachineTask.vue?e06a","webpack:///./src/components/MachineQC.vue?64d3","webpack:///./src/components/MachineQC.vue?d0bc","webpack:///./src/components/MachineQC.vue?6a0d","webpack:///./src/components/About.vue?d1ea","webpack:///src/components/About.vue","webpack:///./src/components/About.vue?f71c","webpack:///./src/components/About.vue?a6dc","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/PageTitleBar.vue?3dfa","webpack:///src/components/PageTitleBar.vue","webpack:///./src/components/PageTitleBar.vue?ac4d","webpack:///./src/components/PageTitleBar.vue?b4a8","webpack:///src/components/MachineQC.vue","webpack:///./src/services/MachineService.js","webpack:///./src/components/Home.vue?3aa8","webpack:///./src/services/MachineQCService.js","webpack:///./src/components/TaskDetails.vue?03f1","webpack:///./src/components/Sidebar.vue?b88f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","app","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogDetails_vue_vue_type_style_index_0_id_2456b989_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogDetails_vue_vue_type_style_index_0_id_2456b989_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineQC_vue_vue_type_style_index_0_id_327132d2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineQC_vue_vue_type_style_index_0_id_327132d2_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Vue","use","Vuex","__webpack_exports__","Store","strict","state","user","JSON","parse","localStorage","getItem","token","mutations","setUser","setItem","_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_0___default","removeItem","actions","_ref","commit","logout","_ref2","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PageTitleBar_vue_vue_type_style_index_0_id_5bace19a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PageTitleBar_vue_vue_type_style_index_0_id_5bace19a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineTaskCard_vue_vue_type_style_index_0_id_17f0c3b1_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineTaskCard_vue_vue_type_style_index_0_id_17f0c3b1_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","axios","baseURL","headers","Authorization","concat","store","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_WorkOnMachineTask_vue_vue_type_style_index_0_id_cb36d53c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_WorkOnMachineTask_vue_vue_type_style_index_0_id_cb36d53c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_style_index_0_id_65378bdb_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_style_index_0_id_65378bdb_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_6357831e_render","_vm","this","_h","$createElement","_c","_self","attrs","id","fluid","staticRenderFns","Sidebarvue_type_template_id_5c6f1596_scoped_true_render","staticClass","to","icon","_v","exact","$store","_s","_e","on","click","href","fullScreen","year","Sidebarvue_type_template_id_5c6f1596_scoped_true_staticRenderFns","Sidebarvue_type_script_lang_js_","Date","getFullYear","methods","dispatch","document","documentElement","webkitRequestFullScreen","components_Sidebarvue_type_script_lang_js_","component","componentNormalizer","options","__file","Sidebar","Appvue_type_script_lang_js_","components","src_Appvue_type_script_lang_js_","App_component","App","Homevue_type_template_id_3105bf88_scoped_true_render","title","show","message","_l","orderedDueMachineTasks","dueMachineTask","today","getDay","Homevue_type_template_id_3105bf88_scoped_true_staticRenderFns","MachineTaskCardvue_type_template_id_17f0c3b1_scoped_true_render","class","dayDiff","showTaskDetails","machineTask","Task","Machine","nextDate","split","formatDay","disabled","Boolean","checkTask","dismissTask","MachineTaskCardvue_type_template_id_17f0c3b1_scoped_true_staticRenderFns","MachineTaskCardvue_type_script_lang_js_","props","$router","params","machineTaskId","taskId","days","rounded","Math","abs","ceil","components_MachineTaskCardvue_type_script_lang_js_","MachineTaskCard_component","MachineTaskCard","MachineTaskService","index","Api","Homevue_type_script_lang_js_","PageTitleBar","machineTasksAvailable","dueMachineTasks","upcoming","reloadInterval","created","_created","asyncToGenerator","regeneratorRuntime","mark","_callee2","_this","wrap","_context2","prev","next","loadMachineTasks","$options","interval","setInterval","_callee","_context","stop","arguments","beforeDestroy","clearInterval","_loadMachineTasks","_callee3","_context3","sent","machineTasks","filter","t0","response","error","computed","lodash_default","a","orderBy","components_Homevue_type_script_lang_js_","Home_component","Home","Logbookvue_type_template_id_2a5c114a_scoped_true_render","logs","items","fields","sort-by","sort-desc","responsive","scopedSlots","_u","fn","row","staticStyle","color","directives","rawName","expression","size","$event","stopPropagation","showDetails","item","deleteLogRequest","ok","deleteLog","Logbookvue_type_template_id_2a5c114a_scoped_true_staticRenderFns","LogService","add","properties","post","log","logId","delete","Logbookvue_type_script_lang_js_","status","label","sortable","task","machine","createdAt","formatter","toISOString","modalQuestion","loadLogs","_loadLogs","$root","$emit","_deleteLog","components_Logbookvue_type_script_lang_js_","Logbook_component","Logbook","LogDetailsvue_type_template_id_2456b989_scoped_true_render","showBack","description","repare","comment","LogDetailsvue_type_template_id_2456b989_scoped_true_staticRenderFns","LogDetailsvue_type_script_lang_js_","components_LogDetailsvue_type_script_lang_js_","LogDetails_component","LogDetails","Usersvue_type_template_id_59eb6a48_scoped_true_render","users","deleteUserRequest","deleteUser","userName","userEMail","email","font-weight","Usersvue_type_template_id_59eb6a48_scoped_true_staticRenderFns","AuthenticationService","signUp","credentials","login","userId","Usersvue_type_script_lang_js_","loadUsers","_loadUsers","_deleteUser","components_Usersvue_type_script_lang_js_","Users_component","Users","Signupvue_type_template_id_3ace11de_scoped_true_render","autocomplete","submit","preventDefault","reset","label-for","type","required","placeholder","model","callback","$$v","$set","Signupvue_type_template_id_3ace11de_scoped_true_staticRenderFns","Signupvue_type_script_lang_js_","password","showForm","_signUp","path","$nextTick","components_Signupvue_type_script_lang_js_","Signup_component","Signup","Loginvue_type_template_id_630eeda3_scoped_true_render","Loginvue_type_template_id_630eeda3_scoped_true_staticRenderFns","Loginvue_type_script_lang_js_","_login","route","from","components_Loginvue_type_script_lang_js_","Login_component","Login","Machinesvue_type_template_id_13ae183a_scoped_true_render","machines","editMachine","deleteMachineRequest","kanteleId","showQC","deleteMachine","hide","resetModal","Machinesvue_type_template_id_13ae183a_scoped_true_staticRenderFns","Machinesvue_type_script_lang_js_","User.name","loadMachines","_loadMachines","MachineService","machineId","_deleteMachine","components_Machinesvue_type_script_lang_js_","Machines_component","Machines","AddEditMachinevue_type_template_id_d5b1dc1e_scoped_true_render","addEditMachine","AddEditMachinevue_type_template_id_d5b1dc1e_scoped_true_staticRenderFns","AddEditMachinevue_type_script_lang_js_","_addEditMachine","update","components_AddEditMachinevue_type_script_lang_js_","AddEditMachine_component","AddEditMachine","Tasksvue_type_template_id_a823ba28_scoped_true_render","tasks","showEdit","deleteTaskRequest","deleteTask","Tasksvue_type_template_id_a823ba28_scoped_true_staticRenderFns","TaskService","put","Tasksvue_type_script_lang_js_","suffix","toString","loadTasks","_loadTasks","_deleteTask","components_Tasksvue_type_script_lang_js_","Tasks_component","Tasks","AddEditTaskvue_type_template_id_497a8216_scoped_true_render","addEditTask","multiple","machineIds","ref","AddEditTaskvue_type_template_id_497a8216_scoped_true_staticRenderFns","AddEditTaskvue_type_script_lang_js_","startDate","selectedMachines","map","element","text","objectSpread","MachineTasks","_addEditTask","start","components_AddEditTaskvue_type_script_lang_js_","AddEditTask_component","AddEditTask","TaskDetailsvue_type_template_id_2b2ddf46_scoped_true_render","machineNames","join","User","TaskDetailsvue_type_template_id_2b2ddf46_scoped_true_staticRenderFns","TaskDetailsvue_type_script_lang_js_","names","self","indexOf","components_TaskDetailsvue_type_script_lang_js_","TaskDetails_component","TaskDetails","WorkOnMachineTaskvue_type_template_id_cb36d53c_scoped_true_render","saveLog","rows","no-resize","WorkOnMachineTaskvue_type_template_id_cb36d53c_scoped_true_staticRenderFns","WorkOnMachineTaskvue_type_script_lang_js_","_saveLog","components_WorkOnMachineTaskvue_type_script_lang_js_","WorkOnMachineTask_component","WorkOnMachineTask","MachineQCvue_type_template_id_327132d2_scoped_true_render","plotsLoaded","plots","bokeh_code","div","amount_peptides","elementid","amount_psms","precursorarea","msgfscore","prec_error","rt","MachineQCvue_type_template_id_327132d2_scoped_true_staticRenderFns","components_MachineQCvue_type_script_lang_js_","MachineQCvue_type_script_lang_js_","MachineQC_component","MachineQC","Aboutvue_type_template_id_65378bdb_scoped_true_render","_m","Aboutvue_type_template_id_65378bdb_scoped_true_staticRenderFns","Aboutvue_type_script_lang_js_","components_Aboutvue_type_script_lang_js_","About_component","About","Router","router","base","hash","routes","redirect","config","productionTip","BootstrapVue","sync","library","faOilCan","faArrowAltCircleLeft","faCheckCircle","faTimesCircle","FontAwesomeIcon","render","h","$mount","fullPath","PageTitleBarvue_type_script_lang_js_","components_PageTitleBarvue_type_script_lang_js_","_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__","_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","_services_MachineService__WEBPACK_IMPORTED_MODULE_6__","loadPlots","_loadPlots","_callee2$","_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__","getQCPlots","console","eval","script","_Api__WEBPACK_IMPORTED_MODULE_0__","specifications","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_3105bf88_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_3105bf88_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","require","Kantele","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskDetails_vue_vue_type_style_index_0_id_2b2ddf46_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskDetails_vue_vue_type_style_index_0_id_2b2ddf46_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_5c6f1596_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_5c6f1596_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.38daa308.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/verkstad/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=style&index=0&id=327132d2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=style&index=0&id=327132d2&scoped=true&lang=css&\"","/* eslint-disable no-param-reassign */\nimport Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n strict: true,\n state: {\n user: JSON.parse(localStorage.getItem('user')) || null,\n token: localStorage.getItem('token') || null,\n },\n mutations: {\n setUser(state, data) {\n state.user = data.user;\n state.token = data.token;\n if (state.token) {\n localStorage.setItem('token', state.token);\n localStorage.setItem('user', JSON.stringify(state.user));\n } else {\n localStorage.removeItem('token');\n localStorage.removeItem('user');\n }\n },\n },\n actions: {\n setUser({ commit }, data) {\n commit('setUser', data);\n },\n logout({ commit }) {\n commit('setUser', {\n user: null,\n token: null,\n });\n },\n },\n});\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"","import axios from 'axios';\nimport store from '../store/store';\n\nexport default () => axios.create({\n // baseURL: 'http://localhost:8081/',\n baseURL: 'https://mozzarella.scilifelab.se/verkstad_api/',\n headers: {\n Authorization: `Bearer ${store.state.token}`,\n },\n});\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Sidebar'),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-nav',{staticClass:\"sidebar\"},[_c('div',{staticClass:\"navbar-header\"},[_c('b-navbar-brand',{staticClass:\"logo-wrapper\",attrs:{\"to\":\"/\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"oil-can\"}})],1),_c('h5',{staticClass:\"title\"},[_vm._v(\"Verkstad\")]),_c('h6',{staticClass:\"subtitle\"},[_vm._v(\"Mass Spectrometer Maintenance\")])],1),_c('div',{staticClass:\"navbar-body\"},[_c('b-nav-item',{attrs:{\"to\":\"/\",\"exact\":\"\"}},[_vm._v(\"Home\")]),_c('b-nav-item',{attrs:{\"to\":\"/logbook\"}},[_vm._v(\"Logbook\")]),_c('b-nav-item',{attrs:{\"to\":\"/tasks\"}},[_vm._v(\"Tasks\")]),_c('b-nav-item',{attrs:{\"to\":\"/machines\"}},[_vm._v(\"Machines\")]),_c('b-nav-item',{attrs:{\"to\":\"/users\"}},[_vm._v(\"Users\")])],1),_c('div',{staticClass:\"navbar-user\"},[(_vm.$store.state.user)?_c('b-nav-text',{staticClass:\"user-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.$store.state.user.name)+\"\\n \")]):_vm._e(),(!_vm.$store.state.user)?_c('b-nav-item',{attrs:{\"to\":\"/login\"}},[_vm._v(\"Login\")]):_vm._e(),(_vm.$store.state.user)?_c('b-nav-item',{on:{\"click\":_vm.logout}},[_vm._v(\"Logout\")]):_vm._e(),_c('a',{staticClass:\"seemless\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.fullScreen}},[_vm._v(\"Full screen\")])],1),_c('div',{staticClass:\"navbar-footer\"},[_c('b-nav-text',[_c('router-link',{staticClass:\"link-about\",attrs:{\"to\":\"/about\"}},[_vm._v(\"Lehtiö Lab \"+_vm._s(_vm.year))])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-nav class=\"sidebar\">\n <div class=\"navbar-header\">\n <b-navbar-brand class=\"logo-wrapper\" to=\"/\">\n <font-awesome-icon icon=\"oil-can\"/>\n </b-navbar-brand>\n <h5 class=\"title\">Verkstad</h5>\n <h6 class=\"subtitle\">Mass Spectrometer Maintenance</h6>\n </div>\n <div class=\"navbar-body\">\n <b-nav-item to=\"/\" exact>Home</b-nav-item>\n <b-nav-item to=\"/logbook\">Logbook</b-nav-item>\n <b-nav-item to=\"/tasks\">Tasks</b-nav-item>\n <b-nav-item to=\"/machines\">Machines</b-nav-item>\n <b-nav-item to=\"/users\">Users</b-nav-item>\n </div>\n <div class=\"navbar-user\">\n <b-nav-text class=\"user-name\" v-if=\"$store.state.user\">\n {{ $store.state.user.name }}\n </b-nav-text>\n <b-nav-item to=\"/login\" v-if=\"!$store.state.user\">Login</b-nav-item>\n <b-nav-item @click=\"logout\" v-if=\"$store.state.user\">Logout</b-nav-item>\n <a href=\"#\" class=\"seemless\" @click=\"fullScreen\">Full screen</a>\n </div>\n <div class=\"navbar-footer\">\n <b-nav-text>\n <router-link class=\"link-about\" to=\"/about\">Lehtiö Lab {{ year }}</router-link>\n </b-nav-text>\n </div>\n </b-nav>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n year: new Date().getFullYear(),\n };\n },\n methods: {\n logout() {\n this.$store.dispatch('logout');\n },\n fullScreen() {\n document.documentElement.webkitRequestFullScreen();\n },\n },\n};\n</script>\n\n<style scoped>\n.sidebar {\n display: flex;\n align-items: flex-start;\n width: 30%;\n max-width: 300px;\n font-family: \"Work Sans\", sans-serif;\n font-weight: 200;\n background: #9dd5f8;\n color: #fffcf9;\n}\n\n.navbar-header {\n width: 90%;\n margin: 1.6rem auto 0 auto;\n text-align: center;\n}\n\n.navbar-header a {\n color: #fffcf9;\n}\n\n.logo-wrapper {\n width: 11rem;\n height: 11rem;\n margin-left: 12px;\n font-size: 6.5rem;\n border: 0.3rem solid #fffcf9;\n border-radius: 50%;\n}\n\n.title {\n margin-top: 5%;\n font-size: 2.5rem;\n}\n\n.subtitle {\n margin-top: 5%;\n font-size: 1.1rem;\n}\n\n.navbar-body {\n width: 100%;\n text-align: center;\n}\n\n.navbar-body a {\n font-size: 1.8rem;\n color: #fff;\n}\n\n.navbar-body a.active {\n background-color: #25899f;\n}\n\n.navbar-user {\n width: 100%;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.navbar-user .user-name {\n width: 100%;\n background-color: #4c8fdb;\n}\n\n.navbar-user a {\n color: #fff;\n}\n\n.navbar-user a.active {\n background-color: #25899f;\n}\n\n.navbar-user .seemless {\n color: #9dd5f8;\n background-color: #9dd5f8;\n border: none;\n outline: none;\n}\n\n.navbar-footer {\n align-self: flex-end;\n width: 100%;\n font-size: 0.8rem;\n text-align: center;\n}\n\na.link-about {\n color: #fff;\n text-decoration: none;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=5c6f1596&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c6f1596\",\n null\n \n)\n\ncomponent.options.__file = \"Sidebar.vue\"\nexport default component.exports","<template>\n <div id=\"app\">\n <Sidebar />\n <b-container fluid>\n <router-view></router-view>\n </b-container>\n </div>\n</template>\n\n<script>\nimport Sidebar from './components/Sidebar.vue';\n\nexport default {\n name: 'App',\n components: {\n Sidebar,\n },\n};\n</script>\n\n\n<style>\n@import url('https://fonts.googleapis.com/css?family=Work+Sans:200,400');\n\nhtml, body {\n height: 100%;\n font-size: 15px;\n}\n\n@media(max-width: 1200px) {\n html, body {\n font-size: 11px;\n }\n}\n\n@media(max-width: 980px) {\n html, body {\n font-size: 10px;\n }\n}\n\n.wrapper {\n display: flex;\n flex-direction: column;\n height: 100vh;\n overflow-y: scroll;\n}\n\nform {\n max-width: 40%;\n overflow-y: scroll;\n padding-bottom: 10px;\n}\n\nbutton.btn-outlined, a.btn-outlined {\n margin: 0 0 5px 5px;\n background-color: #9dd5f8;\n border: none;\n}\n\nbutton.btn-details {\n background-color: #9dd5f8;\n border: none;\n}\n\nbutton.btn-delete {\n background-color: crimson;\n border: none;\n}\n\n.description {\n min-height: 5px;\n margin: 2% 0 2% 0;\n}\n\n.alert-info {\n color: #000;\n background-color: #9dd5f8;\n}\n\n#app {\n display: flex;\n width: 100%;\n height: 100%;\n}\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6357831e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Home\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.machineTasksAvailable)?_c('div',{staticClass:\"task-board\"},[_c('div',{staticClass:\"task-box\"},[_c('h5',[_vm._v(\"Latest today\")]),_c('ol',{staticClass:\"latest-today\"},[_vm._l((_vm.orderedDueMachineTasks.today),function(dueMachineTask){return _c('machine-task-card',{key:dueMachineTask.id,staticClass:\"task-card\",attrs:{\"data\":dueMachineTask}})}),(_vm.orderedDueMachineTasks.today.length === 0)?_c('li',[_c('b-alert',{attrs:{\"show\":true}},[_c('div',[_vm._v(\"All tasks done for today.\")]),(new Date().getDay() === 1)?_c('div',[_vm._v(\"Not bad for a Monday!\")]):_vm._e(),(new Date().getDay() === 4)?_c('div',[_vm._v(\"It's Thursday, why not going for the pub?\")]):_vm._e(),(new Date().getDay() === 5)?_c('div',[_vm._v(\"Go home! It's almost weekend!\")]):_vm._e()])],1):_vm._e()],2)]),_c('div',{staticClass:\"task-box\"},[_c('h5',[_vm._v(\"Upcoming\")]),_c('ol',{staticClass:\"upcoming\"},_vm._l((_vm.orderedDueMachineTasks.upcoming),function(dueMachineTask){return _c('machine-task-card',{key:dueMachineTask.id,staticClass:\"task-card\",attrs:{\"data\":dueMachineTask}})}),1)])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"task-card\"},[_c('div',{staticClass:\"task-color-bar\",class:[(_vm.data.dayDiff > -1) ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']}),_c('div',{staticClass:\"task-body\",on:{\"click\":_vm.showTaskDetails}},[_c('h1',[_vm._v(_vm._s(_vm.data.machineTask.Task.name))]),_c('div',{staticClass:\"task-machine\"},[_vm._v(_vm._s(_vm.data.machineTask.Machine.name))]),_c('div',{staticClass:\"task-latest\"},[_vm._v(\"\\n Latest: \"+_vm._s(_vm.data.nextDate.split('T')[0])+\"\\n (\"+_vm._s((_vm.data.dayDiff < -1)\n ? 'in ' + _vm.formatDay(_vm.data.dayDiff)\n : ((_vm.data.dayDiff < 0)\n ? 'today'\n : _vm.formatDay(_vm.data.dayDiff) + ' ago'))+\")\\n \")])]),_c('b-button',{staticClass:\"check-task\",class:[(_vm.data.dayDiff > -1)\n ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue'],attrs:{\"disabled\":!Boolean(_vm.$store.state.token)},on:{\"click\":_vm.checkTask}},[_c('font-awesome-icon',{attrs:{\"icon\":\"check-circle\"}})],1),_c('b-button',{staticClass:\"dismiss-task\",class:[(_vm.data.dayDiff > -1)\n ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue'],attrs:{\"disabled\":!Boolean(_vm.$store.state.token)},on:{\"click\":_vm.dismissTask}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <li class=\"task-card\">\n <div class=\"task-color-bar\"\n :class=\"[(data.dayDiff > -1) ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\">\n </div>\n <div class=\"task-body\" @click=\"showTaskDetails\">\n <h1>{{ data.machineTask.Task.name }}</h1>\n <div class=\"task-machine\">{{ data.machineTask.Machine.name }}</div>\n <div class=\"task-latest\">\n Latest: {{ data.nextDate.split('T')[0] }}\n ({{ (data.dayDiff < -1)\n ? 'in ' + formatDay(data.dayDiff)\n : ((data.dayDiff < 0)\n ? 'today'\n : formatDay(data.dayDiff) + ' ago') }})\n </div>\n </div>\n <b-button class=\"check-task\"\n :class=\"[(data.dayDiff > -1)\n ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\"\n :disabled=\"!Boolean($store.state.token)\"\n @click=\"checkTask\">\n <font-awesome-icon icon=\"check-circle\"/>\n </b-button>\n <b-button class=\"dismiss-task\"\n :class=\"[(data.dayDiff > -1)\n ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\"\n :disabled=\"!Boolean($store.state.token)\"\n @click=\"dismissTask\">\n <font-awesome-icon icon=\"times-circle\"/>\n </b-button>\n </li>\n</template>\n\n<script>\nexport default {\n name: 'Login',\n props: ['data'],\n methods: {\n checkTask() {\n this.$router.push({\n name: 'workonmachinetask',\n params: {\n mode: 'check',\n machineTaskId: this.data.machineTask.id,\n },\n });\n },\n dismissTask() {\n this.$router.push({\n name: 'workonmachinetask',\n params: {\n mode: 'dismiss',\n machineTaskId: this.data.machineTask.id,\n },\n });\n },\n showTaskDetails() {\n this.$router.push({\n name: 'taskdetails',\n params: {\n taskId: this.data.machineTask.Task.id,\n },\n });\n },\n formatDay(days) {\n const rounded = Math.abs(Math.ceil(days));\n if (rounded > 1) {\n return `${rounded} days`;\n }\n return `${rounded} day`;\n },\n },\n};\n</script>\n\n<style scoped>\nli.task-card {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n height: 5.5rem;\n margin: 0 2% 2% 0;\n}\n\n.task-color-bar {\n width: 10%;\n max-width: 30px;\n height: 100%;\n border-radius: 5px 0 0 5px;\n}\n\n.bar-red {\n background-color: lightcoral;\n}\n\n.bar-yellow {\n background-color: darkkhaki;\n}\n\n.bar-blue {\n background-color: #9dd5f8;\n}\n\n.task-body {\n display: flex;\n flex-direction: column;\n align-items: left;\n width: 100%;\n height: 100%;\n padding: 0.6rem;\n background-color: rgb(233, 233, 233);\n}\n\n.task-body h1 {\n margin: 0;\n font-family: \"Work Sans\";\n font-size: 1.3rem;\n font-weight: 400;\n}\n\nbutton {\n width: 17%;\n max-width: 60px;\n height: 100%;\n margin: 0;\n padding: 0;\n font-size: 2.2rem;\n border: none;\n}\n\nbutton.dismiss-task {\n border-radius: 0 5px 5px 0;\n background-color: lightcoral;\n}\n\nbutton.check-task {\n border-radius: 0;\n background-color: darkseagreen;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MachineTaskCard.vue?vue&type=template&id=17f0c3b1&scoped=true&\"\nimport script from \"./MachineTaskCard.vue?vue&type=script&lang=js&\"\nexport * from \"./MachineTaskCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17f0c3b1\",\n null\n \n)\n\ncomponent.options.__file = \"MachineTaskCard.vue\"\nexport default component.exports","import Api from './Api';\n\nexport default {\n index() {\n return Api().get('/machinetasks');\n },\n machineTask(machineTaskId) {\n return Api().get(`/machinetask/${machineTaskId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Home\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <div class=\"task-board\" v-if=\"machineTasksAvailable\">\n <div class=\"task-box\">\n <h5>Latest today</h5>\n <ol class=\"latest-today\">\n <machine-task-card v-for=\"dueMachineTask in orderedDueMachineTasks.today\"\n :key=\"dueMachineTask.id\"\n class=\"task-card\"\n :data=\"dueMachineTask\">\n </machine-task-card>\n <li v-if=\"orderedDueMachineTasks.today.length === 0\">\n <b-alert :show=\"true\">\n <div>All tasks done for today.</div>\n <div v-if=\"new Date().getDay() === 1\">Not bad for a Monday!</div>\n <div v-if=\"new Date().getDay() === 4\">It's Thursday, why not going for the pub?</div>\n <div v-if=\"new Date().getDay() === 5\">Go home! It's almost weekend!</div>\n </b-alert>\n </li>\n </ol>\n </div>\n <div class=\"task-box\">\n <h5>Upcoming</h5>\n <ol class=\"upcoming\">\n <machine-task-card v-for=\"dueMachineTask in orderedDueMachineTasks.upcoming\"\n :key=\"dueMachineTask.id\"\n class=\"task-card\"\n :data=\"dueMachineTask\">\n </machine-task-card>\n </ol>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport _ from 'lodash';\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineTaskCard from './MachineTaskCard.vue';\nimport MachineTaskService from '../services/MachineTaskService';\n\nexport default {\n name: 'Home',\n components: {\n PageTitleBar,\n MachineTaskCard,\n },\n data() {\n return {\n message: null,\n machineTasksAvailable: false,\n dueMachineTasks: {\n today: null,\n upcoming: null,\n },\n reloadInterval: 60000, // 1 min\n };\n },\n async created() {\n await this.loadMachineTasks();\n this.$options.interval = setInterval(async () => {\n await this.loadMachineTasks();\n }, this.reloadInterval);\n },\n beforeDestroy() {\n clearInterval(this.$options.interval);\n },\n methods: {\n async loadMachineTasks() {\n try {\n const dueMachineTasks = (await MachineTaskService.index()).data.machineTasks;\n if (dueMachineTasks.length === 0) {\n this.machineTasksAvailable = false;\n this.message = 'There are no upcoming tasks. '\n + 'Please define new tasks.';\n } else {\n this.dueMachineTasks.today = dueMachineTasks.filter(\n machineTask => machineTask.dayDiff >= -1,\n );\n this.dueMachineTasks.upcoming = dueMachineTasks.filter(\n machineTask => machineTask.dayDiff < -1,\n );\n this.machineTasksAvailable = true;\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n computed: {\n orderedDueMachineTasks() {\n return {\n today: _.orderBy(this.dueMachineTasks.today, ['dayDiff', 'id'], 'desc'),\n upcoming: _.orderBy(this.dueMachineTasks.upcoming, ['dayDiff', 'id'], 'desc'),\n };\n },\n },\n};\n</script>\n\n<style scoped>\n.task-board {\n display: flex;\n justify-content: space-between;\n height: 100%;\n}\n\n.task-box {\n display: flex;\n flex-direction: column;\n width: 49%;\n height: 100%;\n}\n\n.task-box h5 {\n font-family: \"Work Sans\", sans-serif;\n font-size: 1.8rem;\n font-weight: 200;\n}\n\nol {\n height: 100%;\n margin: 0;\n padding: 0;\n list-style: none;\n overflow-y: scroll;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=3105bf88&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3105bf88\",\n null\n \n)\n\ncomponent.options.__file = \"Home.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Logbook\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.logs.length > 0)?_c('b-table',{staticClass:\"logs-table\",attrs:{\"items\":_vm.logs,\"fields\":_vm.fields,\"sort-by\":\"createdAt\",\"sort-desc\":true,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"status\",fn:function(row){return [(row.value === 'check')?_c('font-awesome-icon',{staticStyle:{\"color\":\"darkseagreen\"},attrs:{\"icon\":\"check-circle\"}}):(row.value === 'dismiss')?_c('font-awesome-icon',{staticStyle:{\"color\":\"lightcoral\"},attrs:{\"icon\":\"times-circle\"}}):_vm._e()]}},{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showDetails(row.item)}}},[_vm._v(\"\\n Details\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteLogRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete log?\"},on:{\"ok\":_vm.deleteLog}},[_c('p',[_vm._v(\"Do you really want to delete this log?\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n add(properties) {\n return Api().post('/addlog', properties);\n },\n index() {\n return Api().get('/logbook');\n },\n log(logId) {\n return Api().get(`/log/${logId}`);\n },\n deleteLog(logId) {\n return Api().delete(`/deletelog/${logId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Logbook\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"logs-table\"\n :items=\"logs\"\n :fields=\"fields\"\n sort-by=\"createdAt\"\n :sort-desc=\"true\"\n responsive\n v-if=\"logs.length > 0\">\n <template slot=\"status\" slot-scope=\"row\">\n <font-awesome-icon v-if=\"row.value === 'check'\"\n icon=\"check-circle\"\n style=\"color:darkseagreen\" />\n <font-awesome-icon v-else-if=\"row.value === 'dismiss'\"\n icon=\"times-circle\"\n style=\"color:lightcoral\" />\n </template>\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showDetails(row.item)\"\n v-show=\"$store.state.token\">\n Details\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteLogRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-modal id=\"modalQuestion\" @ok=\"deleteLog\" title=\"Delete log?\">\n <p>Do you really want to delete this log?</p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'Logbook',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n logs: [],\n fields: {\n status: {\n label: '',\n sortable: false,\n },\n task: {\n label: 'Task',\n sortable: true,\n },\n machine: {\n label: 'Machine',\n sortable: true,\n },\n createdAt: {\n label: 'Done',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n user: {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n },\n };\n },\n async created() {\n await this.loadLogs();\n },\n methods: {\n async loadLogs() {\n try {\n this.logs = (await LogService.index()).data;\n if (this.logs.length === 0) {\n this.message = 'There are no logs.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n showDetails(item) {\n this.$router.push({\n name: 'logdetails',\n params: {\n logId: item.id,\n },\n });\n },\n deleteLogRequest(item) {\n this.modalQuestion.id = item.id;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteLog() {\n try {\n await LogService.deleteLog(this.modalQuestion.id);\n await this.loadLogs();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logbook.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logbook.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logbook.vue?vue&type=template&id=2a5c114a&scoped=true&\"\nimport script from \"./Logbook.vue?vue&type=script&lang=js&\"\nexport * from \"./Logbook.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a5c114a\",\n null\n \n)\n\ncomponent.options.__file = \"Logbook.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.log)?_c('page-title-bar',{attrs:{\"title\":_vm.log.task,\"showBack\":true}}):_vm._e(),(!_vm.log)?_c('page-title-bar',{attrs:{\"title\":\"Error\",\"showBack\":\"true\"}}):_vm._e(),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.log)?_c('table',{staticClass:\"log-details-table\"},[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Satus:\")]),_c('td',[(_vm.log.status === 'check')?_c('font-awesome-icon',{staticStyle:{\"color\":\"darkseagreen\"},attrs:{\"icon\":\"check-circle\"}}):_vm._e(),(_vm.log.status === 'dismiss')?_c('font-awesome-icon',{staticStyle:{\"color\":\"lightcoral\"},attrs:{\"icon\":\"times-circle\"}}):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Description:\")]),_c('td',[_vm._v(_vm._s(_vm.log.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK:\")]),_c('td',[_vm._v(_vm._s(_vm.log.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Interval:\")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.log.interval + ((_vm.log.interval === 1)\n ? ' day' : ' days'))+\"\\n \")])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Machine:\")]),_c('td',[_vm._v(_vm._s(_vm.log.machine))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Done:\")]),_c('td',[_vm._v(_vm._s(_vm.log.createdAt.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"By:\")]),_c('td',[_vm._v(_vm._s(_vm.log.user))])]),_c('tr',{staticClass:\"spacer\"}),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Comment:\")]),_c('td',[_vm._v(_vm._s(_vm.log.comment))])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar :title=\"log.task\" :showBack=\"true\" v-if=\"log\" />\n <page-title-bar title=\"Error\" showBack=\"true\" v-if=\"!log\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table class=\"log-details-table\" v-if=\"log\">\n <tr>\n <td class=\"row-title\">Satus:</td>\n <td>\n <font-awesome-icon icon=\"check-circle\"\n style=\"color: darkseagreen\"\n v-if=\"log.status === 'check'\" />\n <font-awesome-icon icon=\"times-circle\"\n style=\"color: lightcoral\"\n v-if=\"log.status === 'dismiss'\" />\n </td>\n </tr>\n <tr>\n <td class=\"row-title\">Description:</td>\n <td>{{ log.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK:</td>\n <td>{{ log.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Interval:</td>\n <td>\n {{ log.interval + ((log.interval === 1)\n ? ' day' : ' days')}}\n </td>\n </tr>\n <tr>\n <td class=\"row-title\">Machine:</td>\n <td>{{ log.machine }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Done:</td>\n <td>{{ log.createdAt.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">By:</td>\n <td>{{ log.user }}</td>\n </tr>\n <tr class=\"spacer\">\n </tr>\n <tr>\n <td class=\"row-title\">Comment:</td>\n <td>{{ log.comment }}</td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'LogDetails',\n components: {\n PageTitleBar,\n },\n props: ['logId'],\n data() {\n return {\n message: null,\n log: null,\n };\n },\n async created() {\n try {\n this.log = (await LogService.log(this.logId)).data;\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 80%;\n line-height: 2rem;\n}\n\n.row-title {\n min-width: 100px;\n font-weight: bold;\n vertical-align: top;\n}\n\n.spacer {\n height: 2rem;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogDetails.vue?vue&type=template&id=2456b989&scoped=true&\"\nimport script from \"./LogDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./LogDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2456b989\",\n null\n \n)\n\ncomponent.options.__file = \"LogDetails.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Users\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.users.length > 0)?_c('b-table',{staticClass:\"user-table\",attrs:{\"items\":_vm.users,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteUserRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),(!_vm.$store.state.user && this.users.length > 0)?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"to\":\"/login\"}},[_vm._v(\"\\n Login\\n \")]):_vm._e(),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"to\":\"/signup\"}},[_vm._v(\"\\n Add user\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete user?\"},on:{\"ok\":_vm.deleteUser}},[_c('p',[_vm._v(\"Do you really want to kick out this user?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.userName)),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.modalQuestion.userEMail))])]),(_vm.$store.state.user)?_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.user.email === _vm.modalQuestion.userEMail),expression:\"$store.state.user.email === modalQuestion.userEMail\"}],staticStyle:{\"color\":\"crimson\",\"font-weight\":\"bold\"}},[_vm._v(\"\\n Warning: You are going to delete yourself. If you continue,\\n you will be logged out automatically.\\n \")]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n signUp(credentials) {\n return Api().post('/signup', credentials);\n },\n login(credentials) {\n return Api().post('/login', credentials);\n },\n index() {\n return Api().get('/users');\n },\n deleteUser(userId) {\n return Api().delete(`deleteuser/${userId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Users\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"user-table\"\n :items=\"users\"\n :fields=\"fields\"\n responsive\n v-if=\"users.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteUserRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/login\"\n v-if=\"!$store.state.user && this.users.length > 0\">\n Login\n </b-button>\n <b-button class=\"btn-outlined\"\n to=\"/signup\">\n Add user\n </b-button>\n\n <b-modal id=\"modalQuestion\" @ok=\"deleteUser\" title=\"Delete user?\">\n <p>Do you really want to kick out this user?</p>\n <p><strong>{{ modalQuestion.userName }}<br />\n {{ modalQuestion.userEMail }}</strong></p>\n <p style=\"color: crimson; font-weight: bold\"\n v-if=\"$store.state.user\"\n v-show=\"$store.state.user.email === modalQuestion.userEMail\">\n Warning: You are going to delete yourself. If you continue,\n you will be logged out automatically.\n </p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Users',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n users: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n email: {\n label: 'eMail',\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n userId: null,\n userName: '',\n userEMail: '',\n },\n };\n },\n async created() {\n await this.loadUsers();\n },\n methods: {\n async loadUsers() {\n try {\n this.users = (await AuthenticationService.index()).data;\n if (this.users.length === 0) {\n this.message = 'There are no users registered.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteUserRequest(item) {\n this.modalQuestion.userId = item.id;\n this.modalQuestion.userName = item.name;\n this.modalQuestion.userEMail = item.email;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteUser() {\n try {\n await AuthenticationService.deleteUser(this.modalQuestion.userId);\n if (this.$store.state.user\n && (this.modalQuestion.userEMail === this.$store.state.user.email)) {\n this.logout();\n }\n this.loadUsers();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n logout() {\n this.$store.dispatch('logout');\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=59eb6a48&scoped=true&\"\nimport script from \"./Users.vue?vue&type=script&lang=js&\"\nexport * from \"./Users.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59eb6a48\",\n null\n \n)\n\ncomponent.options.__file = \"Users.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Sign up\",\"showBack\":true}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Register a new user for this app by submitting the form below.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.signUp($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"emailLabel\",\"label\":\"eMail address:\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"email\",\"required\":\"\",\"placeholder\":\"Enter eMail\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1),_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter name\"},model:{value:(_vm.user.name),callback:function ($$v) {_vm.$set(_vm.user, \"name\", $$v)},expression:\"user.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordLabel\",\"label\":\"Password:\",\"label-for\":\"password\"}},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Enter password (>3 characters)\"},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Sign up\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Sign up\" :showBack=\"true\" />\n <div class=\"description\">Register a new user for this app by submitting the form below.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"signUp\" @reset.prevent=\"reset\" autocomplete=\"off\" v-if=\"showForm\">\n <b-form-group id=\"emailLabel\"\n label=\"eMail address:\"\n label-for=\"email\">\n <b-form-input id=\"email\"\n type=\"email\"\n v-model=\"user.email\"\n required\n placeholder=\"Enter eMail\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"user.name\"\n required\n placeholder=\"Enter name\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"passwordLabel\"\n label=\"Password:\"\n label-for=\"password\">\n <b-form-input id=\"password\"\n type=\"password\"\n v-model=\"user.password\"\n required\n placeholder=\"Enter password (>3 characters)\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Sign up</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Signup',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n user: {\n email: '',\n name: '',\n password: '',\n },\n showForm: true,\n message: null,\n };\n },\n methods: {\n async signUp() {\n try {\n await AuthenticationService.signUp({\n email: this.user.email,\n name: this.user.name,\n password: this.user.password,\n });\n this.message = null;\n this.$router.push({\n path: '/users',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.user.email = '';\n this.user.name = '';\n this.user.password = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Signup.vue?vue&type=template&id=3ace11de&scoped=true&\"\nimport script from \"./Signup.vue?vue&type=script&lang=js&\"\nexport * from \"./Signup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ace11de\",\n null\n \n)\n\ncomponent.options.__file = \"Signup.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Login\",\"showBack\":true}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Come in and take care of your mass specs.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.login($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"emailLabel\",\"label\":\"eMail address:\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"email\",\"required\":\"\",\"placeholder\":\"Enter eMail\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordLabel\",\"label\":\"Password:\",\"label-for\":\"password\"}},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Enter password\"},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Login\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Login\" :showBack=\"true\" />\n <div class=\"description\">Come in and take care of your mass specs.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"login\" @reset.prevent=\"reset\" v-if=\"showForm\">\n <b-form-group id=\"emailLabel\"\n label=\"eMail address:\"\n label-for=\"email\">\n <b-form-input id=\"email\"\n type=\"email\"\n v-model=\"user.email\"\n required\n placeholder=\"Enter eMail\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"passwordLabel\"\n label=\"Password:\"\n label-for=\"password\">\n <b-form-input id=\"password\"\n type=\"password\"\n v-model=\"user.password\"\n required\n placeholder=\"Enter password\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Login</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Login',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n user: {\n email: '',\n password: '',\n },\n showForm: true,\n message: null,\n };\n },\n methods: {\n async login() {\n try {\n const response = await AuthenticationService.login({\n email: this.user.email,\n password: this.user.password,\n });\n this.$store.dispatch('setUser', response.data);\n this.message = null;\n this.$router.push({\n name: this.$store.state.route.from.name,\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.user.email = '';\n this.user.name = '';\n this.user.password = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=630eeda3&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"630eeda3\",\n null\n \n)\n\ncomponent.options.__file = \"Login.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Machines\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.machines.length > 0)?_c('b-table',{staticClass:\"machines-table\",attrs:{\"items\":_vm.machines,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.editMachine(row.item)}}},[_vm._v(\"\\n Edit\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteMachineRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token && row.item.kanteleId),expression:\"$store.state.token && row.item.kanteleId\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showQC(row.item)}}},[_vm._v(\"\\n Show QC\\n \")])]}}])}):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"btn-outlined\",attrs:{\"to\":\"/addeditmachine/add\"}},[_vm._v(\"\\n Add machine\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete machine?\"},on:{\"ok\":_vm.deleteMachine,\"hide\":_vm.resetModal}},[_c('p',[_vm._v(\"Do you really want to delete this machine?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.name))])]),_c('p',[_vm._v(\"Please note: Deleting a machine can lead to tasks\\n without machine. Please control your task settings\\n after deletion.\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Machines\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"machines-table\"\n :items=\"machines\"\n :fields=\"fields\"\n responsive\n v-if=\"machines.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n v-show=\"$store.state.token\"\n @click.stop=\"editMachine(row.item)\">\n Edit\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n v-show=\"$store.state.token\"\n @click.stop=\"deleteMachineRequest(row.item)\">\n Delete\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showQC(row.item)\"\n v-show=\"$store.state.token && row.item.kanteleId\">\n Show QC\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/addeditmachine/add\"\n v-show=\"$store.state.token\">\n Add machine\n </b-button>\n <b-modal id=\"modalQuestion\" @ok=\"deleteMachine\" @hide=\"resetModal\" title=\"Delete machine?\">\n <p>Do you really want to delete this machine?</p>\n <p><strong>{{ modalQuestion.name }}</strong></p>\n <p>Please note: Deleting a machine can lead to tasks\n without machine. Please control your task settings\n after deletion.</p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'Machines',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n machines: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n type: {\n label: 'Type',\n sortable: true,\n },\n kanteleId: {\n label: 'Kantele ID',\n sortable: true,\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n 'User.name': {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n name: '',\n },\n };\n },\n async created() {\n await this.loadMachines();\n },\n methods: {\n async loadMachines() {\n try {\n this.machines = (await MachineService.index()).data;\n if (this.machines.length === 0) {\n this.message = 'There are no machines.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteMachineRequest(item) {\n this.modalQuestion = {\n id: item.id,\n name: item.name,\n };\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n editMachine(item) {\n this.$router.push({\n name: 'addeditmachine',\n params: {\n machineId: item.id,\n },\n });\n },\n showQC(item) {\n this.$router.push({\n name: 'machineqc',\n params: {\n machineId: item.id,\n },\n });\n },\n async deleteMachine() {\n try {\n await MachineService.deleteMachine(this.modalQuestion.id);\n await this.loadMachines();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n resetModal() {\n this.modalQuestion.name = '';\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Machines.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Machines.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Machines.vue?vue&type=template&id=13ae183a&scoped=true&\"\nimport script from \"./Machines.vue?vue&type=script&lang=js&\"\nexport * from \"./Machines.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13ae183a\",\n null\n \n)\n\ncomponent.options.__file = \"Machines.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.machineId === 'add')?_c('page-title-bar',{attrs:{\"title\":\"Add machine\",\"showBack\":true}}):_vm._e(),(_vm.machineId !== 'add')?_c('page-title-bar',{attrs:{\"title\":_vm.machine.name,\"showBack\":true}}):_vm._e(),(_vm.machineId === 'add')?_c('div',{staticClass:\"description\"},[_vm._v(\"Register a new mass spectrometer.\")]):_c('div',{staticClass:\"description\"},[_vm._v(\"Edit the mass spectrometer.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.addEditMachine($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter name\"},model:{value:(_vm.machine.name),callback:function ($$v) {_vm.$set(_vm.machine, \"name\", $$v)},expression:\"machine.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"typeLabel\",\"label\":\"Type:\",\"label-for\":\"type\"}},[_c('b-form-input',{attrs:{\"id\":\"type\",\"placeholder\":\"Enter type\"},model:{value:(_vm.machine.type),callback:function ($$v) {_vm.$set(_vm.machine, \"type\", $$v)},expression:\"machine.type\"}})],1),_c('b-form-group',{attrs:{\"id\":\"kanteleIdLabel\",\"label\":\"Kantele ID:\",\"label-for\":\"kanteleId\",\"description\":\"Pleas ask your local admin.\"}},[_c('b-form-input',{attrs:{\"id\":\"kanteleId\",\"placeholder\":\"Enter Kantele ID\"},model:{value:(_vm.machine.kanteleId),callback:function ($$v) {_vm.$set(_vm.machine, \"kanteleId\", $$v)},expression:\"machine.kanteleId\"}})],1),(_vm.machineId === 'add')?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n Add machine\\n \")]):_vm._e(),(_vm.machineId !== 'add')?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n Save changes\\n \")]):_vm._e(),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Add machine\" :showBack=\"true\" v-if=\"machineId === 'add'\" />\n <page-title-bar :title=\"machine.name\" :showBack=\"true\" v-if=\"machineId !== 'add'\" />\n <div class=\"description\" v-if=\"machineId === 'add'\">Register a new mass spectrometer.</div>\n <div class=\"description\" v-else>Edit the mass spectrometer.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"addEditMachine\"\n @reset.prevent=\"reset\"\n autocomplete=\"off\"\n v-if=\"showForm\">\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"machine.name\"\n required\n placeholder=\"Enter name\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"typeLabel\"\n label=\"Type:\"\n label-for=\"type\">\n <b-form-input id=\"type\"\n v-model=\"machine.type\"\n placeholder=\"Enter type\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"kanteleIdLabel\"\n label=\"Kantele ID:\"\n label-for=\"kanteleId\"\n description=\"Pleas ask your local admin.\">\n <b-form-input id=\"kanteleId\"\n v-model=\"machine.kanteleId\"\n placeholder=\"Enter Kantele ID\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\" v-if=\"machineId === 'add'\">\n Add machine\n </b-button>\n <b-button type=\"submit\" class=\"btn-outlined\" v-if=\"machineId !== 'add'\">\n Save changes\n </b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'AddEditMachine',\n components: {\n PageTitleBar,\n },\n props: ['machineId'],\n data() {\n return {\n machine: {\n name: '',\n type: '',\n kanteleId: null,\n },\n showForm: true,\n message: null,\n };\n },\n async created() {\n if (this.machineId !== 'add') {\n this.machine = (await MachineService.machine(this.machineId)).data;\n }\n },\n methods: {\n async addEditMachine() {\n try {\n if (this.machineId === 'add') {\n await MachineService.add(this.machine);\n } else {\n await MachineService.update(this.machine);\n }\n this.message = null;\n this.$router.push({\n path: '/machines',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.machine.name = '';\n this.machine.type = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditMachine.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditMachine.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddEditMachine.vue?vue&type=template&id=d5b1dc1e&scoped=true&\"\nimport script from \"./AddEditMachine.vue?vue&type=script&lang=js&\"\nexport * from \"./AddEditMachine.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d5b1dc1e\",\n null\n \n)\n\ncomponent.options.__file = \"AddEditMachine.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Tasks\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.tasks.length > 0)?_c('b-table',{staticClass:\"tasks-table\",attrs:{\"items\":_vm.tasks,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showEdit(row.item)}}},[_vm._v(\"\\n Edit\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteTaskRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"btn-outlined\",attrs:{\"to\":\"/addedittask/add\"}},[_vm._v(\"\\n Add task\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete task?\"},on:{\"ok\":_vm.deleteTask}},[_c('p',[_vm._v(\"Do you really want to delete this task?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.name))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n add(properties) {\n return Api().post('/addtask', properties);\n },\n update(properties) {\n return Api().put(`/updatetask/${properties.task.id}`, properties);\n },\n index() {\n return Api().get('/tasks');\n },\n deleteTask(taskId) {\n return Api().delete(`deletetask/${taskId}`);\n },\n task(taskId) {\n return Api().get(`/task/${taskId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Tasks\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"tasks-table\"\n :items=\"tasks\"\n :fields=\"fields\"\n responsive\n v-if=\"tasks.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showEdit(row.item)\"\n v-show=\"$store.state.token\">\n Edit\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteTaskRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/addedittask/add\"\n v-show=\"$store.state.token\">\n Add task\n </b-button>\n\n <b-modal id=\"modalQuestion\" @ok=\"deleteTask\" title=\"Delete task?\">\n <p>Do you really want to delete this task?</p>\n <p><strong>{{ modalQuestion.name }}</strong></p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\n\nexport default {\n name: 'Tasks',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n tasks: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n description: {\n label: 'Description',\n },\n interval: {\n label: 'Interval',\n sortable: true,\n formatter: (value) => {\n const suffix = value === 1 ? ' day' : ' days';\n return value.toString() + suffix;\n },\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n 'User.name': {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n name: '',\n },\n };\n },\n async created() {\n await this.loadTasks();\n },\n methods: {\n async loadTasks() {\n try {\n this.tasks = (await TaskService.index()).data;\n if (this.tasks.length === 0) {\n this.message = 'There are no tasks.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteTaskRequest(item) {\n this.modalQuestion.id = item.id;\n this.modalQuestion.name = item.name;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteTask() {\n try {\n await TaskService.deleteTask(this.modalQuestion.id);\n await this.loadTasks();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n showEdit(item) {\n this.$router.push({\n name: 'addedittask',\n params: {\n taskId: item.id,\n },\n });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tasks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tasks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tasks.vue?vue&type=template&id=a823ba28&scoped=true&\"\nimport script from \"./Tasks.vue?vue&type=script&lang=js&\"\nexport * from \"./Tasks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a823ba28\",\n null\n \n)\n\ncomponent.options.__file = \"Tasks.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.taskId === 'add')?_c('page-title-bar',{attrs:{\"title\":\"Add task\",\"showBack\":true}}):_vm._e(),(_vm.taskId !== 'add')?_c('page-title-bar',{attrs:{\"title\":_vm.task.name,\"showBack\":true}}):_vm._e(),(_vm.taskId === 'add')?_c('div',{staticClass:\"description\"},[_vm._v(\"Create a new maintenance task.\")]):_c('div',{staticClass:\"description\"},[_vm._v(\"Edit a maintenance task.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.addEditTask($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"placeholder\":\"Must be unique\",\"required\":\"\"},model:{value:(_vm.task.name),callback:function ($$v) {_vm.$set(_vm.task, \"name\", $$v)},expression:\"task.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"descriptionLabel\",\"label\":\"Description:\",\"label-for\":\"description\"}},[_c('b-form-input',{attrs:{\"id\":\"description\",\"placeholder\":\"What is the actual task?\"},model:{value:(_vm.task.description),callback:function ($$v) {_vm.$set(_vm.task, \"description\", $$v)},expression:\"task.description\"}})],1),_c('b-form-group',{attrs:{\"id\":\"machineLabel\",\"label\":\"Select machines:\",\"label-for\":\"machines\",\"description\":(_vm.taskId !== 'add')\n ? 'Changing the machine selection will rearrange tasks.'\n : ''}},[_c('b-form-select',{attrs:{\"id\":\"machines\",\"options\":_vm.machines,\"multiple\":\"\"},model:{value:(_vm.machineIds),callback:function ($$v) {_vm.machineIds=$$v},expression:\"machineIds\"}})],1),_c('b-form-group',{attrs:{\"id\":\"repareLabel\",\"label\":\"If not OK:\",\"label-for\":\"repare\"}},[_c('b-form-input',{attrs:{\"id\":\"repare\",\"placeholder\":\"What to do?\"},model:{value:(_vm.task.repare),callback:function ($$v) {_vm.$set(_vm.task, \"repare\", $$v)},expression:\"task.repare\"}})],1),_c('b-form-group',{attrs:{\"id\":\"startLabel\",\"label\":\"Start date:\",\"label-for\":\"start\",\"description\":\"If the start date is during a weekend,\\n the task is postponed to the next Monday instead.\"}},[_c('b-form-input',{ref:\"start\",attrs:{\"id\":\"start\",\"type\":\"date\"},model:{value:(_vm.task.startDate),callback:function ($$v) {_vm.$set(_vm.task, \"startDate\", $$v)},expression:\"task.startDate\"}})],1),_c('b-form-group',{attrs:{\"id\":\"intervalLabel\",\"label\":\"Interval:\",\"label-for\":\"interval\",\"description\":\"If the interval leads to a due date during a weekend,\\n the task is postponed to the next Monday instead.\"}},[_c('b-form-input',{attrs:{\"id\":\"interval\",\"type\":\"number\",\"placeholder\":\"in days\"},model:{value:(_vm.task.interval),callback:function ($$v) {_vm.$set(_vm.task, \"interval\", $$v)},expression:\"task.interval\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s((_vm.taskId === 'add') ? 'Add task' : 'Save changes')+\"\\n \")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Add task\" :showBack=\"true\" v-if=\"taskId === 'add'\" />\n <page-title-bar :title=\"task.name\" :showBack=\"true\" v-if=\"taskId !== 'add'\" />\n <div class=\"description\" v-if=\"taskId === 'add'\">Create a new maintenance task.</div>\n <div class=\"description\" v-else>Edit a maintenance task.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"addEditTask\" @reset.prevent=\"reset\" autocomplete=\"off\" v-if=\"showForm\">\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"task.name\"\n placeholder=\"Must be unique\"\n required>\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"descriptionLabel\"\n label=\"Description:\"\n label-for=\"description\">\n <b-form-input id=\"description\"\n v-model=\"task.description\"\n placeholder=\"What is the actual task?\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"machineLabel\"\n label=\"Select machines:\"\n label-for=\"machines\"\n :description=\"(taskId !== 'add')\n ? 'Changing the machine selection will rearrange tasks.'\n : ''\">\n <b-form-select id=\"machines\"\n v-model=\"machineIds\"\n :options=\"machines\"\n multiple>\n </b-form-select>\n </b-form-group>\n <b-form-group id=\"repareLabel\"\n label=\"If not OK:\"\n label-for=\"repare\">\n <b-form-input id=\"repare\"\n v-model=\"task.repare\"\n placeholder=\"What to do?\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"startLabel\"\n label=\"Start date:\"\n label-for=\"start\"\n description=\"If the start date is during a weekend,\n the task is postponed to the next Monday instead.\">\n <b-form-input id=\"start\"\n ref=\"start\"\n type=\"date\"\n v-model=\"task.startDate\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"intervalLabel\"\n label=\"Interval:\"\n label-for=\"interval\"\n description=\"If the interval leads to a due date during a weekend,\n the task is postponed to the next Monday instead.\">\n <b-form-input id=\"interval\"\n type=\"number\"\n v-model=\"task.interval\"\n placeholder=\"in days\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">\n {{ (taskId === 'add') ? 'Add task' : 'Save changes' }}\n </b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'AddEditTask',\n components: {\n PageTitleBar,\n },\n props: ['taskId'],\n data() {\n return {\n task: {\n name: '',\n description: '',\n repare: '',\n startDate: '',\n interval: '',\n },\n machineIds: [],\n machines: [],\n selectedMachines: [],\n showForm: true,\n message: null,\n };\n },\n async created() {\n const machines = (await MachineService.index()).data;\n if (machines.length === 0) {\n this.message = 'First you have to define a mass spec in the machines tab.';\n this.showForm = false;\n }\n\n this.machines = machines.map(element => ({\n value: element.id,\n text: element.name,\n }));\n\n if (this.taskId !== 'add') {\n const task = (await TaskService.task(this.taskId)).data;\n this.task = {\n ...task,\n startDate: task.startDate.split('T')[0],\n };\n\n this.machineIds = this.task.MachineTasks.map(\n machineTask => machineTask.Machine.id,\n );\n }\n },\n methods: {\n async addEditTask() {\n try {\n if (this.taskId === 'add') {\n await TaskService.add({\n task: this.task,\n machineIds: this.machineIds,\n });\n } else {\n await TaskService.update({\n task: {\n id: this.taskId,\n ...this.task,\n },\n machineIds: this.machineIds,\n });\n }\n this.message = null;\n this.$router.push({\n path: '/tasks',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.task.name = '';\n this.task.description = '';\n this.task.machineId = null;\n this.task.repare = '';\n this.task.start = '';\n this.task.interval = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditTask.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditTask.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddEditTask.vue?vue&type=template&id=497a8216&scoped=true&\"\nimport script from \"./AddEditTask.vue?vue&type=script&lang=js&\"\nexport * from \"./AddEditTask.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"497a8216\",\n null\n \n)\n\ncomponent.options.__file = \"AddEditTask.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.task)?_c('page-title-bar',{attrs:{\"title\":_vm.task.name,\"showBack\":true}}):_vm._e(),(!_vm.task)?_c('page-title-bar',{attrs:{\"title\":\"Error\",\"showBack\":\"true\"}}):_vm._e(),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.task)?_c('table',{staticClass:\"task-details-table\"},[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Description\")]),_c('td',[_vm._v(_vm._s(_vm.task.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK\")]),_c('td',[_vm._v(_vm._s(_vm.task.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"First due date\")]),_c('td',[_vm._v(_vm._s(_vm.task.startDate.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Interval\")]),_c('td',[_vm._v(_vm._s(_vm.task.interval + ((_vm.task.interval === 1) ? ' day' : ' days')))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(_vm._s((_vm.machineNames.length === 1) ? 'Machine' : 'Machines'))]),_c('td',[_vm._v(_vm._s(_vm.machineNames.join(', ')))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Created\")]),_c('td',[_vm._v(_vm._s(_vm.task.createdAt.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Created by\")]),_c('td',[_vm._v(_vm._s(_vm.task.User.name))])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar :title=\"task.name\" :showBack=\"true\" v-if=\"task\" />\n <page-title-bar title=\"Error\" showBack=\"true\" v-if=\"!task\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table class=\"task-details-table\" v-if=\"task\">\n <tr>\n <td class=\"row-title\">Description</td>\n <td>{{ task.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK</td>\n <td>{{ task.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">First due date</td>\n <td>{{ task.startDate.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Interval</td>\n <td>{{ task.interval + ((task.interval === 1) ? ' day' : ' days')}}</td>\n </tr>\n <tr>\n <td class=\"row-title\">{{ (machineNames.length === 1) ? 'Machine' : 'Machines' }}</td>\n <td>{{ machineNames.join(', ') }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Created</td>\n <td>{{ task.createdAt.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Created by</td>\n <td>{{ task.User.name }}</td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\n\nexport default {\n name: 'Tasks',\n components: {\n PageTitleBar,\n },\n props: ['taskId'],\n data() {\n return {\n message: null,\n task: null,\n machineNames: [],\n };\n },\n async created() {\n try {\n this.task = (await TaskService.task(this.taskId)).data;\n const names = this.task.MachineTasks.map(\n machineTask => machineTask.Machine.name,\n );\n this.machineNames = names.filter((value, index, self) => self.indexOf(value) === index);\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 100%;\n line-height: 2rem;\n}\n\n.row-title {\n font-weight: bold;\n vertical-align: top;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskDetails.vue?vue&type=template&id=2b2ddf46&scoped=true&\"\nimport script from \"./TaskDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b2ddf46\",\n null\n \n)\n\ncomponent.options.__file = \"TaskDetails.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.machineTask)?_c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":_vm.machineTask.Task.name,\"showBack\":true}}),(_vm.mode === 'check')?_c('div',{staticClass:\"description green-desc\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"check-circle\"}}),_vm._v(\"\\n The task has been successfully accomplished. Congrats!\"),_c('br')],1):_vm._e(),(_vm.mode === 'dismiss')?_c('div',{staticClass:\"description red-desc\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}}),_vm._v(\"\\n There have been issues!\\n \")],1):_vm._e(),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),_c('table',[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"What to do:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Task.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Task.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Machine:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Machine.name))])])]),(_vm.showForm)?_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveLog($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"commentLabel\",\"label\":\"Comment:\",\"label-for\":\"comment\"}},[_c('b-form-textarea',{class:[(_vm.mode === 'check') ? 'green-textarea' : 'red-textarea'],attrs:{\"id\":\"comment\",\"placeholder\":\"Enter some notes\",\"rows\":\"3\",\"no-resize\":true},model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\" v-if=\"machineTask\">\n <page-title-bar :title=\"machineTask.Task.name\" :showBack=\"true\" />\n <div class=\"description green-desc\" v-if=\"mode === 'check'\">\n <font-awesome-icon icon=\"check-circle\" />\n The task has been successfully accomplished. Congrats!<br />\n </div>\n <div class=\"description red-desc\" v-if=\"mode === 'dismiss'\">\n <font-awesome-icon icon=\"times-circle\" />\n There have been issues!\n </div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table>\n <tr>\n <td class=\"row-title\">What to do:</td>\n <td>{{ machineTask.Task.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK:</td>\n <td>{{ machineTask.Task.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Machine:</td>\n <td>{{ machineTask.Machine.name }}</td>\n </tr>\n </table>\n <b-form @submit.prevent=\"saveLog\" @reset.prevent=\"reset\" v-if=\"showForm\">\n <b-form-group id=\"commentLabel\"\n label=\"Comment:\"\n label-for=\"comment\">\n <b-form-textarea id=\"comment\"\n :class=\"[(mode === 'check') ? 'green-textarea' : 'red-textarea']\"\n v-model=\"comment\"\n placeholder=\"Enter some notes\"\n rows=\"3\"\n :no-resize=\"true\">\n </b-form-textarea>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Save</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineTaskService from '../services/MachineTaskService';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'WorkOnMachineTask',\n components: {\n PageTitleBar,\n },\n props: ['mode', 'machineTaskId'],\n data() {\n return {\n machineTask: null,\n comment: '',\n showForm: true,\n message: null,\n };\n },\n async created() {\n this.machineTask = (await MachineTaskService.machineTask(this.machineTaskId)).data.machineTask;\n },\n methods: {\n async saveLog() {\n try {\n await LogService.add({\n status: this.mode,\n machineTaskId: this.machineTask.id,\n comment: this.comment,\n });\n this.message = null;\n this.$router.push({\n path: '/',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.comment = '';\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 50%;\n margin: 0 0 20px 0;\n line-height: 2rem;\n}\n\n.row-title {\n vertical-align: top;\n}\n\n.description {\n font-size: 1.3rem;\n}\n\n.green-desc {\n color: darkgreen\n}\n\n.red-desc {\n color: crimson;\n}\n\n.green-textarea {\n border-color: darkgreen\n}\n\n.red-textarea {\n border-color: crimson;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WorkOnMachineTask.vue?vue&type=template&id=cb36d53c&scoped=true&\"\nimport script from \"./WorkOnMachineTask.vue?vue&type=script&lang=js&\"\nexport * from \"./WorkOnMachineTask.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb36d53c\",\n null\n \n)\n\ncomponent.options.__file = \"WorkOnMachineTask.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.machine)?_c('div',{staticClass:\"qc-wrapper\"},[_c('page-title-bar',{attrs:{\"title\":_vm.machine.name + ' Quality Control',\"showBack\":true}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(!_vm.plotsLoaded && !_vm.message)?_c('div',{staticClass:\"description\"},[_vm._v(\"Plots loading...\")]):_vm._e(),(_vm.plotsLoaded)?_c('div',{staticClass:\"plots\"},[_c('h3',[_vm._v(\"Number of identifications\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.amount_peptides.elementid}}),_c('hr'),_c('h3',[_vm._v(\"Number of PSMs\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.amount_psms.elementid}}),_c('hr'),_c('h3',[_vm._v(\"Peptide precursor areas\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.precursorarea.elementid}}),_c('hr'),_c('h3',[_vm._v(\"PSM MSGFScore\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.msgfscore.elementid}}),_c('hr'),_c('h3',[_vm._v(\"Precursor error (ppm)\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.prec_error.elementid}}),_c('hr'),_c('h3',[_vm._v(\"Retention time (min)\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.rt.elementid}})]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MachineQC.vue?vue&type=template&id=327132d2&scoped=true&\"\nimport script from \"./MachineQC.vue?vue&type=script&lang=js&\"\nexport * from \"./MachineQC.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MachineQC.vue?vue&type=style&index=0&id=327132d2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"327132d2\",\n null\n \n)\n\ncomponent.options.__file = \"MachineQC.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"About this app\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Verkstad – The mass spec maintenance app.\")]),_c('br'),_vm._m(0),_c('br'),_vm._m(1),_vm._m(2),_c('br'),_c('p',[_vm._v(\"\\n Please note: The server is logging request information from this app.\\n \")])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n This app was created by Matthias Stahl in the\\n \"),_c('a',{attrs:{\"href\":\"http://lehtiolab.se\"}},[_vm._v(\"Lehtiö laboratory\")]),_vm._v(\"\\n at \"),_c('a',{attrs:{\"href\":\"http://ki.se\"}},[_vm._v(\"Karolinska Institutet\")]),_vm._v(\" in winter 2019.\\n \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n Client code: \"),_c('a',{attrs:{\"href\":\"https://github.com/mtstahl/verkstad_client\"}},[_vm._v(\"github.com/mtstahl/verkstad_client\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n Server code: \"),_c('a',{attrs:{\"href\":\"https://github.com/mtstahl/verkstad_server\"}},[_vm._v(\"github.com/mtstahl/verkstad_server\")])])}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"About this app\" />\n <div class=\"description\">Verkstad – The mass spec maintenance app.</div>\n <br />\n <p>\n This app was created by Matthias Stahl in the\n <a href=\"http://lehtiolab.se\">Lehtiö laboratory</a>\n at <a href=\"http://ki.se\">Karolinska Institutet</a> in winter 2019.\n </p>\n <br />\n <p>\n Client code: <a href=\"https://github.com/mtstahl/verkstad_client\">github.com/mtstahl/verkstad_client</a>\n </p>\n <p>\n Server code: <a href=\"https://github.com/mtstahl/verkstad_server\">github.com/mtstahl/verkstad_server</a>\n </p>\n <br />\n <p>\n Please note: The server is logging request information from this app.\n </p>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\n\nexport default {\n name: 'About',\n components: {\n PageTitleBar,\n },\n};\n</script>\n\n<style scoped>\na {\n color: #9dd5f8;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=65378bdb&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65378bdb\",\n null\n \n)\n\ncomponent.options.__file = \"About.vue\"\nexport default component.exports","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Home from './components/Home.vue';\nimport Logbook from './components/Logbook.vue';\nimport LogDetails from './components/LogDetails.vue';\nimport Users from './components/Users.vue';\nimport Signup from './components/Signup.vue';\nimport Login from './components/Login.vue';\nimport Machines from './components/Machines.vue';\nimport AddEditMachine from './components/AddEditMachine.vue';\nimport Tasks from './components/Tasks.vue';\nimport AddEditTask from './components/AddEditTask.vue';\nimport TaskDetails from './components/TaskDetails.vue';\nimport WorkOnMachineTask from './components/WorkOnMachineTask.vue';\nimport MachineQC from './components/MachineQC.vue';\nimport About from './components/About.vue';\n\nVue.use(Router);\n\nexport default new Router({\n mode: 'history',\n base: '/verkstad/',\n hash: false,\n routes: [\n {\n path: '/',\n name: 'home',\n component: Home,\n },\n {\n path: '/logbook',\n name: 'logbook',\n component: Logbook,\n },\n {\n path: '/logdetails/:logId',\n name: 'logdetails',\n component: LogDetails,\n props: true,\n },\n {\n path: '/users',\n name: 'users',\n component: Users,\n },\n {\n path: '/signup',\n name: 'signup',\n component: Signup,\n },\n {\n path: '/login',\n name: 'login',\n component: Login,\n },\n {\n path: '/machines',\n name: 'machines',\n component: Machines,\n },\n {\n path: '/addeditmachine/:machineId',\n name: 'addeditmachine',\n component: AddEditMachine,\n props: true,\n },\n {\n path: '/tasks',\n name: 'tasks',\n component: Tasks,\n },\n {\n path: '/addedittask/:taskId',\n name: 'addedittask',\n component: AddEditTask,\n props: true,\n },\n {\n path: '/taskdetails/:taskId',\n name: 'taskdetails',\n component: TaskDetails,\n props: true,\n },\n {\n path: '/workonmachinetask/:mode/:machineTaskId',\n name: 'workonmachinetask',\n component: WorkOnMachineTask,\n props: true,\n },\n {\n path: '/machineqc/:machineId',\n name: 'machineqc',\n component: MachineQC,\n props: true,\n },\n {\n path: '/about',\n name: 'about',\n component: About,\n },\n {\n path: '*',\n redirect: '/',\n },\n ],\n});\n","import Vue from 'vue';\nimport BootstrapVue from 'bootstrap-vue';\n\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport {\n faOilCan,\n faArrowAltCircleLeft,\n faCheckCircle,\n faTimesCircle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\n\nimport { sync } from 'vuex-router-sync';\n\nimport App from './App.vue';\nimport router from './router';\nimport store from './store/store';\n\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'bootstrap-vue/dist/bootstrap-vue.css';\n\nVue.config.productionTip = false;\nVue.use(BootstrapVue);\n\nsync(store, router);\n\nlibrary.add(faOilCan);\nlibrary.add(faArrowAltCircleLeft);\nlibrary.add(faCheckCircle);\nlibrary.add(faTimesCircle);\n\nVue.component('font-awesome-icon', FontAwesomeIcon);\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount('#app');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bar\"},[(_vm.showBack)?_c('b-button',{staticClass:\"btn-back\",attrs:{\"to\":{ path: _vm.$store.state.route.from.fullPath }}},[_c('font-awesome-icon',{attrs:{\"icon\":\"arrow-alt-circle-left\"}})],1):_vm._e(),_c('h1',[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.today))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"bar\">\n <b-button class=\"btn-back\" :to=\"{ path: $store.state.route.from.fullPath }\" v-if=\"showBack\">\n <font-awesome-icon icon=\"arrow-alt-circle-left\"/>\n </b-button>\n <h1>{{ title }}</h1>\n <div class=\"date\">{{ today }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'PageTitleBar',\n props: [\n 'title',\n 'showBack',\n ],\n data() {\n return {\n today: null,\n days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n };\n },\n created() {\n const d = new Date();\n this.today = [this.days[d.getDay()], d.toISOString().split('T')[0]].join(', ');\n },\n};\n</script>\n\n<style scoped>\n.bar {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n min-height: 7rem;\n margin: 0;\n padding: 1.6rem 0 0 0;\n font-family: 'Work Sans', sans-serif;\n border-bottom: 0.1rem solid #9dd5f8;\n}\n\n.bar h1 {\n font-weight: 200;\n font-size: 4rem;\n}\n\na.btn-back, a.btn-back.btn-secondary.active {\n margin: auto 0;\n font-size: 2.5rem;\n color: #9dd5f8;\n background-color: #fff;\n border: none;\n}\n\n.date {\n font-size: 2rem;\n font-weight: 200;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageTitleBar.vue?vue&type=template&id=5bace19a&scoped=true&\"\nimport script from \"./PageTitleBar.vue?vue&type=script&lang=js&\"\nexport * from \"./PageTitleBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bace19a\",\n null\n \n)\n\ncomponent.options.__file = \"PageTitleBar.vue\"\nexport default component.exports","<template>\n <div class=\"qc-wrapper\" v-if=\"machine\">\n <page-title-bar :title=\"machine.name + ' Quality Control'\" :showBack=\"true\"/>\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <div class=\"description\" v-if=\"!plotsLoaded && !message\">Plots loading...</div>\n <div class=\"plots\" v-if=\"plotsLoaded\">\n <h3>Number of identifications</h3>\n <div :id=\"plots.bokeh_code.div.amount_peptides.elementid\"></div>\n <hr />\n <h3>Number of PSMs</h3>\n <div :id=\"plots.bokeh_code.div.amount_psms.elementid\"></div>\n <hr />\n <h3>Peptide precursor areas</h3>\n <div :id=\"plots.bokeh_code.div.precursorarea.elementid\"></div>\n <hr />\n <h3>PSM MSGFScore</h3>\n <div :id=\"plots.bokeh_code.div.msgfscore.elementid\"></div>\n <hr />\n <h3>Precursor error (ppm)</h3>\n <div :id=\"plots.bokeh_code.div.prec_error.elementid\"></div>\n <hr />\n <h3>Retention time (min)</h3>\n <div :id=\"plots.bokeh_code.div.rt.elementid\"></div>\n </div>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\nimport MachineQCService from '../services/MachineQCService';\n\n// import plot from '../../data/plot.json';\n\nexport default {\n name: 'MachineQC',\n components: {\n PageTitleBar,\n },\n props: ['machineId'],\n data() {\n return {\n message: null,\n machine: null,\n plots: {},\n plotsLoaded: false,\n };\n },\n async created() {\n try {\n this.machine = (await MachineService.machine(this.machineId)).data;\n if (this.machine.length === 0) {\n this.message = 'There are no machines.';\n } else if (!this.machine.kanteleId) {\n this.message = 'You have not provided a Kantele ID. No QC data can be fetched.';\n } else {\n this.loadPlots();\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n methods: {\n async loadPlots() {\n try {\n this.plots = (await MachineQCService.getQCPlots(this.machine.kanteleId)).data;\n console.log(this.plots);\n // this.plots = plot;\n // eslint-disable-next-line no-eval\n eval(this.plots.bokeh_code.script);\n this.plotsLoaded = true;\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n};\n</script>\n\n<style scoped>\n.qc-wrapper {\n display: flex;\n flex-direction: column;\n height: 100vh;\n}\n\n.plots {\n overflow-y: scroll;\n}\n\nh3 {\n font-size: 1.5rem;\n font-weight: normal;\n}\n</style>\n","import Api from './Api';\n\nexport default {\n add(specifications) {\n return Api().post('/addmachine', specifications);\n },\n index() {\n return Api().get('/machines');\n },\n machine(machineId) {\n return Api().get(`/machine/${machineId}`);\n },\n update(machine) {\n return Api().put(`/updatemachine/${machine.id}`, machine);\n },\n deleteMachine(machineId) {\n return Api().delete(`deletemachine/${machineId}`);\n },\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"","const axios = require('axios');\n\nconst Kantele = axios.create({\n baseURL: 'https://mozzarella.scilifelab.se/dash',\n});\n\nexport default {\n getQCPlots(kanteleId) {\n return Kantele.get(`/longqc/${kanteleId}`);\n },\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/app.804145be.js b/dist/js/app.804145be.js deleted file mode 100644 index 02b7cb1..0000000 --- a/dist/js/app.804145be.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var s,i,o=t[0],c=t[1],l=t[2],d=0,m=[];d<o.length;d++)i=o[d],n[i]&&m.push(n[i][0]),n[i]=0;for(s in c)Object.prototype.hasOwnProperty.call(c,s)&&(e[s]=c[s]);u&&u(t);while(m.length)m.shift()();return r.push.apply(r,l||[]),a()}function a(){for(var e,t=0;t<r.length;t++){for(var a=r[t],s=!0,o=1;o<a.length;o++){var c=a[o];0!==n[c]&&(s=!1)}s&&(r.splice(t--,1),e=i(i.s=a[0]))}return e}var s={},n={app:0},r=[];function i(t){if(s[t])return s[t].exports;var a=s[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,i),a.l=!0,a.exports}i.m=e,i.c=s,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(a,s,function(t){return e[t]}.bind(null,s));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/verkstad/";var o=window["webpackJsonp"]=window["webpackJsonp"]||[],c=o.push.bind(o);o.push=t,o=o.slice();for(var l=0;l<o.length;l++)t(o[l]);var u=c;r.push([0,"chunk-vendors"]),a()})({0:function(e,t,a){e.exports=a("56d7")},"0224":function(e,t,a){"use strict";var s=a("a491"),n=a.n(s);n.a},"034f":function(e,t,a){"use strict";var s=a("64a9"),n=a.n(s);n.a},"06e8":function(e,t,a){},"07a4":function(e,t,a){"use strict";var s=a("f499"),n=a.n(s),r=(a("cadf"),a("551c"),a("097d"),a("2b0e")),i=a("2f62");r["a"].use(i["a"]),t["a"]=new i["a"].Store({strict:!0,state:{user:JSON.parse(localStorage.getItem("user"))||null,token:localStorage.getItem("token")||null},mutations:{setUser:function(e,t){e.user=t.user,e.token=t.token,e.token?(localStorage.setItem("token",e.token),localStorage.setItem("user",n()(e.user))):(localStorage.removeItem("token"),localStorage.removeItem("user"))}},actions:{setUser:function(e,t){var a=e.commit;a("setUser",t)},logout:function(e){var t=e.commit;t("setUser",{user:null,token:null})}}})},"306f":function(e,t,a){"use strict";var s=a("ddcf"),n=a.n(s);n.a},"3bc1":function(e,t,a){"use strict";var s=a("d31f"),n=a.n(s);n.a},"3f4a":function(e,t,a){"use strict";a("cadf"),a("551c"),a("097d");var s=a("bc3a"),n=a.n(s),r=a("07a4");t["a"]=function(){return n.a.create({baseURL:"https://mozzarella.scilifelab.se/verkstad_api/",headers:{Authorization:"Bearer ".concat(r["a"].state.token)}})}},"3f95":function(e,t,a){"use strict";var s=a("8a6a"),n=a.n(s);n.a},"459c":function(e,t,a){"use strict";var s=a("60f7"),n=a.n(s);n.a},"56d7":function(e,t,a){"use strict";a.r(t);a("cadf"),a("551c"),a("097d");var s=a("2b0e"),n=a("9f7b"),r=a("ecee"),i=a("c074"),o=a("ad3d"),c=a("31bd"),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"app"}},[a("Sidebar"),a("b-container",{attrs:{fluid:""}},[a("router-view")],1)],1)},u=[],d=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("b-nav",{staticClass:"sidebar"},[a("div",{staticClass:"navbar-header"},[a("b-navbar-brand",{staticClass:"logo-wrapper",attrs:{to:"/"}},[a("font-awesome-icon",{attrs:{icon:"oil-can"}})],1),a("h5",{staticClass:"title"},[e._v("Verkstad")]),a("h6",{staticClass:"subtitle"},[e._v("Mass Spectrometer Maintenance")])],1),a("div",{staticClass:"navbar-body"},[a("b-nav-item",{attrs:{to:"/",exact:""}},[e._v("Home")]),a("b-nav-item",{attrs:{to:"/logbook"}},[e._v("Logbook")]),a("b-nav-item",{attrs:{to:"/tasks"}},[e._v("Tasks")]),a("b-nav-item",{attrs:{to:"/machines"}},[e._v("Machines")]),a("b-nav-item",{attrs:{to:"/users"}},[e._v("Users")])],1),a("div",{staticClass:"navbar-user"},[e.$store.state.user?a("b-nav-text",{staticClass:"user-name"},[e._v("\n "+e._s(e.$store.state.user.name)+"\n ")]):e._e(),e.$store.state.user?e._e():a("b-nav-item",{attrs:{to:"/login"}},[e._v("Login")]),e.$store.state.user?a("b-nav-item",{on:{click:e.logout}},[e._v("Logout")]):e._e(),a("a",{staticClass:"seemless",attrs:{href:"#"},on:{click:e.fullScreen}},[e._v("Full screen")])],1),a("div",{staticClass:"navbar-footer"},[a("b-nav-text",[a("router-link",{staticClass:"link-about",attrs:{to:"/about"}},[e._v("Lehtiö Lab "+e._s(e.year))])],1)],1)])},m=[],h={data:function(){return{year:(new Date).getFullYear()}},methods:{logout:function(){this.$store.dispatch("logout")},fullScreen:function(){document.documentElement.webkitRequestFullScreen()}}},p=h,_=(a("ffba"),a("2877")),f=Object(_["a"])(p,d,m,!1,null,"5c6f1596",null);f.options.__file="Sidebar.vue";var v=f.exports,b={name:"App",components:{Sidebar:v}},k=b,g=(a("034f"),Object(_["a"])(k,l,u,!1,null,null,null));g.options.__file="App.vue";var w=g.exports,y=a("8c4f"),x=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Home"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.machineTasksAvailable?a("div",{staticClass:"task-board"},[a("div",{staticClass:"task-box"},[a("h5",[e._v("Latest today")]),a("ol",{staticClass:"latest-today"},[e._l(e.orderedDueMachineTasks.today,function(e){return a("machine-task-card",{key:e.id,staticClass:"task-card",attrs:{data:e}})}),0===e.orderedDueMachineTasks.today.length?a("li",[a("b-alert",{attrs:{show:!0}},[a("div",[e._v("All tasks done for today.")]),1===(new Date).getDay()?a("div",[e._v("Not bad for a Monday!")]):e._e(),4===(new Date).getDay()?a("div",[e._v("It's Thursday, why not going for the pub?")]):e._e(),5===(new Date).getDay()?a("div",[e._v("Go home! It's almost weekend!")]):e._e()])],1):e._e()],2)]),a("div",{staticClass:"task-box"},[a("h5",[e._v("Upcoming")]),a("ol",{staticClass:"upcoming"},e._l(e.orderedDueMachineTasks.upcoming,function(e){return a("machine-task-card",{key:e.id,staticClass:"task-card",attrs:{data:e}})}),1)])]):e._e()],1)},C=[],T=(a("96cf"),a("3b8d")),O=a("2ef0"),D=a.n(O),M=a("9659"),I=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("li",{staticClass:"task-card"},[a("div",{staticClass:"task-color-bar",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"]}),a("div",{staticClass:"task-body",on:{click:e.showTaskDetails}},[a("h1",[e._v(e._s(e.data.machineTask.Task.name))]),a("div",{staticClass:"task-machine"},[e._v(e._s(e.data.machineTask.Machine.name))]),a("div",{staticClass:"task-latest"},[e._v("\n Latest: "+e._s(e.data.nextDate.split("T")[0])+"\n ("+e._s(e.data.dayDiff<-1?"in "+e.formatDay(e.data.dayDiff):e.data.dayDiff<0?"today":e.formatDay(e.data.dayDiff)+" ago")+")\n ")])]),a("b-button",{staticClass:"check-task",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"],attrs:{disabled:!Boolean(e.$store.state.token)},on:{click:e.checkTask}},[a("font-awesome-icon",{attrs:{icon:"check-circle"}})],1),a("b-button",{staticClass:"dismiss-task",class:[e.data.dayDiff>-1?"bar-red":e.data.dayDiff>-7?"bar-yellow":"bar-blue"],attrs:{disabled:!Boolean(e.$store.state.token)},on:{click:e.dismissTask}},[a("font-awesome-icon",{attrs:{icon:"times-circle"}})],1)],1)},E=[],P={name:"Login",props:["data"],methods:{checkTask:function(){this.$router.push({name:"workonmachinetask",params:{mode:"check",machineTaskId:this.data.machineTask.id}})},dismissTask:function(){this.$router.push({name:"workonmachinetask",params:{mode:"dismiss",machineTaskId:this.data.machineTask.id}})},showTaskDetails:function(){this.$router.push({name:"taskdetails",params:{taskId:this.data.machineTask.Task.id}})},formatDay:function(e){var t=Math.abs(Math.ceil(e));return"".concat(t,t>1?" days":" day")}}},$=P,R=(a("3bc1"),Object(_["a"])($,I,E,!1,null,"17f0c3b1",null));R.options.__file="MachineTaskCard.vue";var j=R.exports,L=a("3f4a"),S={index:function(){return Object(L["a"])().get("/machinetasks")},machineTask:function(e){return Object(L["a"])().get("/machinetask/".concat(e))}},B={name:"Home",components:{PageTitleBar:M["a"],MachineTaskCard:j},data:function(){return{message:null,machineTasksAvailable:!1,dueMachineTasks:{today:null,upcoming:null},reloadInterval:6e4}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t=this;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadMachineTasks();case 2:this.$options.interval=setInterval(Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.loadMachineTasks();case 2:case"end":return e.stop()}},e,this)})),this.reloadInterval);case 3:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),beforeDestroy:function(){clearInterval(this.$options.interval)},methods:{loadMachineTasks:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,S.index();case 3:t=e.sent.data.machineTasks,0===t.length?(this.machineTasksAvailable=!1,this.message="There are no upcoming tasks. Please define new tasks."):(this.dueMachineTasks.today=t.filter(function(e){return e.dayDiff>=-1}),this.dueMachineTasks.upcoming=t.filter(function(e){return e.dayDiff<-1}),this.machineTasksAvailable=!0,this.message=null),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}()},computed:{orderedDueMachineTasks:function(){return{today:D.a.orderBy(this.dueMachineTasks.today,["dayDiff","id"],"desc"),upcoming:D.a.orderBy(this.dueMachineTasks.upcoming,["dayDiff","id"],"desc")}}}},U=B,A=(a("ceda"),Object(_["a"])(U,x,C,!1,null,"3105bf88",null));A.options.__file="Home.vue";var N=A.exports,Q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Logbook"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.logs.length>0?a("b-table",{staticClass:"logs-table",attrs:{items:e.logs,fields:e.fields,"sort-by":"createdAt","sort-desc":!0,responsive:""},scopedSlots:e._u([{key:"status",fn:function(t){return["check"===t.value?a("font-awesome-icon",{staticStyle:{color:"darkseagreen"},attrs:{icon:"check-circle"}}):"dismiss"===t.value?a("font-awesome-icon",{staticStyle:{color:"lightcoral"},attrs:{icon:"times-circle"}}):e._e()]}},{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showDetails(t.item)}}},[e._v("\n Details\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteLogRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete log?"},on:{ok:e.deleteLog}},[a("p",[e._v("Do you really want to delete this log?")])])],1)},q=[],K=(a("28a5"),{add:function(e){return Object(L["a"])().post("/addlog",e)},index:function(){return Object(L["a"])().get("/logbook")},log:function(e){return Object(L["a"])().get("/log/".concat(e))},deleteLog:function(e){return Object(L["a"])().delete("/deletelog/".concat(e))}}),F={name:"Logbook",components:{PageTitleBar:M["a"]},data:function(){return{message:null,logs:[],fields:{status:{label:"",sortable:!1},task:{label:"Task",sortable:!0},machine:{label:"Machine",sortable:!0},createdAt:{label:"Done",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},user:{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadLogs();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadLogs:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.index();case 3:this.logs=e.sent.data,0===this.logs.length?this.message="There are no logs.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),showDetails:function(e){this.$router.push({name:"logdetails",params:{logId:e.id}})},deleteLogRequest:function(e){this.modalQuestion.id=e.id,this.$root.$emit("bv::show::modal","modalQuestion")},deleteLog:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.deleteLog(this.modalQuestion.id);case 3:return e.next=5,this.loadLogs();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}()}},W=F,z=Object(_["a"])(W,Q,q,!1,null,"2a5c114a",null);z.options.__file="Logbook.vue";var G=z.exports,H=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[e.log?a("page-title-bar",{attrs:{title:e.log.task,showBack:!0}}):e._e(),e.log?e._e():a("page-title-bar",{attrs:{title:"Error",showBack:"true"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.log?a("table",{staticClass:"log-details-table"},[a("tr",[a("td",{staticClass:"row-title"},[e._v("Satus:")]),a("td",["check"===e.log.status?a("font-awesome-icon",{staticStyle:{color:"darkseagreen"},attrs:{icon:"check-circle"}}):e._e(),"dismiss"===e.log.status?a("font-awesome-icon",{staticStyle:{color:"lightcoral"},attrs:{icon:"times-circle"}}):e._e()],1)]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Description:")]),a("td",[e._v(e._s(e.log.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK:")]),a("td",[e._v(e._s(e.log.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Interval:")]),a("td",[e._v("\n "+e._s(e.log.interval+(1===e.log.interval?" day":" days"))+"\n ")])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Machine:")]),a("td",[e._v(e._s(e.log.machine))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Done:")]),a("td",[e._v(e._s(e.log.createdAt.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("By:")]),a("td",[e._v(e._s(e.log.user))])]),a("tr",{staticClass:"spacer"}),a("tr",[a("td",{staticClass:"row-title"},[e._v("Comment:")]),a("td",[e._v(e._s(e.log.comment))])])]):e._e()],1)},J=[],Y={name:"LogDetails",components:{PageTitleBar:M["a"]},props:["logId"],data:function(){return{message:null,log:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.log(this.logId);case 3:this.log=e.sent.data,this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}()},V=Y,X=(a("0224"),Object(_["a"])(V,H,J,!1,null,"2456b989",null));X.options.__file="LogDetails.vue";var Z=X.exports,ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Users"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.users.length>0?a("b-table",{staticClass:"user-table",attrs:{items:e.users,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteUserRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),!e.$store.state.user&&this.users.length>0?a("b-button",{staticClass:"btn-outlined",attrs:{to:"/login"}},[e._v("\n Login\n ")]):e._e(),a("b-button",{staticClass:"btn-outlined",attrs:{to:"/signup"}},[e._v("\n Add user\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete user?"},on:{ok:e.deleteUser}},[a("p",[e._v("Do you really want to kick out this user?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.userName)),a("br"),e._v("\n "+e._s(e.modalQuestion.userEMail))])]),e.$store.state.user?a("p",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.user.email===e.modalQuestion.userEMail,expression:"$store.state.user.email === modalQuestion.userEMail"}],staticStyle:{color:"crimson","font-weight":"bold"}},[e._v("\n Warning: You are going to delete yourself. If you continue,\n you will be logged out automatically.\n ")]):e._e()])],1)},te=[],ae=(a("7f7f"),{signUp:function(e){return Object(L["a"])().post("/signup",e)},login:function(e){return Object(L["a"])().post("/login",e)},index:function(){return Object(L["a"])().get("/users")},deleteUser:function(e){return Object(L["a"])().delete("deleteuser/".concat(e))}}),se={name:"Users",components:{PageTitleBar:M["a"]},data:function(){return{message:null,users:[],fields:{name:{label:"Name",sortable:!0},email:{label:"eMail"},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},actions:{label:"",sortable:!1}},modalQuestion:{userId:null,userName:"",userEMail:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadUsers();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadUsers:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.index();case 3:this.users=e.sent.data,0===this.users.length?this.message="There are no users registered.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteUserRequest:function(e){this.modalQuestion.userId=e.id,this.modalQuestion.userName=e.name,this.modalQuestion.userEMail=e.email,this.$root.$emit("bv::show::modal","modalQuestion")},deleteUser:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.deleteUser(this.modalQuestion.userId);case 3:this.$store.state.user&&this.modalQuestion.userEMail===this.$store.state.user.email&&this.logout(),this.loadUsers(),this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),logout:function(){this.$store.dispatch("logout")}}},ne=se,re=Object(_["a"])(ne,ee,te,!1,null,"59eb6a48",null);re.options.__file="Users.vue";var ie=re.exports,oe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Sign up",showBack:!0}}),a("div",{staticClass:"description"},[e._v("Register a new user for this app by submitting the form below.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.signUp(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"emailLabel",label:"eMail address:","label-for":"email"}},[a("b-form-input",{attrs:{id:"email",type:"email",required:"",placeholder:"Enter eMail"},model:{value:e.user.email,callback:function(t){e.$set(e.user,"email",t)},expression:"user.email"}})],1),a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",required:"",placeholder:"Enter name"},model:{value:e.user.name,callback:function(t){e.$set(e.user,"name",t)},expression:"user.name"}})],1),a("b-form-group",{attrs:{id:"passwordLabel",label:"Password:","label-for":"password"}},[a("b-form-input",{attrs:{id:"password",type:"password",required:"",placeholder:"Enter password (>3 characters)"},model:{value:e.user.password,callback:function(t){e.$set(e.user,"password",t)},expression:"user.password"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Sign up")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},ce=[],le={name:"Signup",components:{PageTitleBar:M["a"]},data:function(){return{user:{email:"",name:"",password:""},showForm:!0,message:null}},methods:{signUp:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.signUp({email:this.user.email,name:this.user.name,password:this.user.password});case 3:this.message=null,this.$router.push({path:"/users"}),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.user.email="",this.user.name="",this.user.password="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},ue=le,de=Object(_["a"])(ue,oe,ce,!1,null,"3ace11de",null);de.options.__file="Signup.vue";var me=de.exports,he=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Login",showBack:!0}}),a("div",{staticClass:"description"},[e._v("Come in and take care of your mass specs.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{on:{submit:function(t){return t.preventDefault(),e.login(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"emailLabel",label:"eMail address:","label-for":"email"}},[a("b-form-input",{attrs:{id:"email",type:"email",required:"",placeholder:"Enter eMail"},model:{value:e.user.email,callback:function(t){e.$set(e.user,"email",t)},expression:"user.email"}})],1),a("b-form-group",{attrs:{id:"passwordLabel",label:"Password:","label-for":"password"}},[a("b-form-input",{attrs:{id:"password",type:"password",required:"",placeholder:"Enter password"},model:{value:e.user.password,callback:function(t){e.$set(e.user,"password",t)},expression:"user.password"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Login")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},pe=[],_e={name:"Login",components:{PageTitleBar:M["a"]},data:function(){return{user:{email:"",password:""},showForm:!0,message:null}},methods:{login:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ae.login({email:this.user.email,password:this.user.password});case 3:t=e.sent,this.$store.dispatch("setUser",t.data),this.message=null,this.$router.push({name:this.$store.state.route.from.name}),e.next=12;break;case 9:e.prev=9,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 12:case"end":return e.stop()}},e,this,[[0,9]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.user.email="",this.user.name="",this.user.password="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},fe=_e,ve=Object(_["a"])(fe,he,pe,!1,null,"630eeda3",null);ve.options.__file="Login.vue";var be=ve.exports,ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Machines"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.machines.length>0?a("b-table",{staticClass:"machines-table",attrs:{items:e.machines,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.editMachine(t.item)}}},[e._v("\n Edit\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteMachineRequest(t.item)}}},[e._v("\n Delete\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token&&t.item.kanteleId,expression:"$store.state.token && row.item.kanteleId"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showQC(t.item)}}},[e._v("\n Show QC\n ")])]}}])}):e._e(),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"btn-outlined",attrs:{to:"/addeditmachine/add"}},[e._v("\n Add machine\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete machine?"},on:{ok:e.deleteMachine,hide:e.resetModal}},[a("p",[e._v("Do you really want to delete this machine?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.name))])]),a("p",[e._v("Please note: Deleting a machine can lead to tasks\n without machine. Please control your task settings\n after deletion.")])])],1)},ge=[],we=a("aeee"),ye={name:"Machines",components:{PageTitleBar:M["a"]},data:function(){return{message:null,machines:[],fields:{name:{label:"Name",sortable:!0},type:{label:"Type",sortable:!0},kanteleId:{label:"Kantele ID",sortable:!0},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},"User.name":{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null,name:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadMachines();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadMachines:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,we["a"].index();case 3:this.machines=e.sent.data,0===this.machines.length?this.message="There are no machines.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteMachineRequest:function(e){this.modalQuestion={id:e.id,name:e.name},this.$root.$emit("bv::show::modal","modalQuestion")},editMachine:function(e){this.$router.push({name:"addeditmachine",params:{machineId:e.id}})},showQC:function(e){this.$router.push({name:"machineqc",params:{machineId:e.id}})},deleteMachine:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,we["a"].deleteMachine(this.modalQuestion.id);case 3:return e.next=5,this.loadMachines();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),resetModal:function(){this.modalQuestion.name=""}}},xe=ye,Ce=Object(_["a"])(xe,ke,ge,!1,null,"13ae183a",null);Ce.options.__file="Machines.vue";var Te=Ce.exports,Oe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},["add"===e.machineId?a("page-title-bar",{attrs:{title:"Add machine",showBack:!0}}):e._e(),"add"!==e.machineId?a("page-title-bar",{attrs:{title:e.machine.name,showBack:!0}}):e._e(),"add"===e.machineId?a("div",{staticClass:"description"},[e._v("Register a new mass spectrometer.")]):a("div",{staticClass:"description"},[e._v("Edit the mass spectrometer.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.addEditMachine(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",required:"",placeholder:"Enter name"},model:{value:e.machine.name,callback:function(t){e.$set(e.machine,"name",t)},expression:"machine.name"}})],1),a("b-form-group",{attrs:{id:"typeLabel",label:"Type:","label-for":"type"}},[a("b-form-input",{attrs:{id:"type",placeholder:"Enter type"},model:{value:e.machine.type,callback:function(t){e.$set(e.machine,"type",t)},expression:"machine.type"}})],1),a("b-form-group",{attrs:{id:"kanteleIdLabel",label:"Kantele ID:","label-for":"kanteleId",description:"Pleas ask your local admin."}},[a("b-form-input",{attrs:{id:"kanteleId",placeholder:"Enter Kantele ID"},model:{value:e.machine.kanteleId,callback:function(t){e.$set(e.machine,"kanteleId",t)},expression:"machine.kanteleId"}})],1),"add"===e.machineId?a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n Add machine\n ")]):e._e(),"add"!==e.machineId?a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n Save changes\n ")]):e._e(),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},De=[],Me={name:"AddEditMachine",components:{PageTitleBar:M["a"]},props:["machineId"],data:function(){return{machine:{name:"",type:"",kanteleId:null},showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if("add"===this.machineId){e.next=4;break}return e.next=3,we["a"].machine(this.machineId);case 3:this.machine=e.sent.data;case 4:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{addEditMachine:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(e.prev=0,"add"!==this.machineId){e.next=6;break}return e.next=4,we["a"].add(this.machine);case 4:e.next=8;break;case 6:return e.next=8,we["a"].update(this.machine);case 8:this.message=null,this.$router.push({path:"/machines"}),e.next=15;break;case 12:e.prev=12,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 15:case"end":return e.stop()}},e,this,[[0,12]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.machine.name="",this.machine.type="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},Ie=Me,Ee=Object(_["a"])(Ie,Oe,De,!1,null,"d5b1dc1e",null);Ee.options.__file="AddEditMachine.vue";var Pe=Ee.exports,$e=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"Tasks"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.tasks.length>0?a("b-table",{staticClass:"tasks-table",attrs:{items:e.tasks,fields:e.fields,responsive:""},scopedSlots:e._u([{key:"actions",fn:function(t){return[a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-details",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.showEdit(t.item)}}},[e._v("\n Edit\n ")]),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"mr-2 btn-delete",attrs:{size:"sm"},on:{click:function(a){a.stopPropagation(),e.deleteTaskRequest(t.item)}}},[e._v("\n Delete\n ")])]}}])}):e._e(),a("b-button",{directives:[{name:"show",rawName:"v-show",value:e.$store.state.token,expression:"$store.state.token"}],staticClass:"btn-outlined",attrs:{to:"/addedittask/add"}},[e._v("\n Add task\n ")]),a("b-modal",{attrs:{id:"modalQuestion",title:"Delete task?"},on:{ok:e.deleteTask}},[a("p",[e._v("Do you really want to delete this task?")]),a("p",[a("strong",[e._v(e._s(e.modalQuestion.name))])])])],1)},Re=[],je=(a("6b54"),{add:function(e){return Object(L["a"])().post("/addtask",e)},update:function(e){return Object(L["a"])().put("/updatetask/".concat(e.task.id),e)},index:function(){return Object(L["a"])().get("/tasks")},deleteTask:function(e){return Object(L["a"])().delete("deletetask/".concat(e))},task:function(e){return Object(L["a"])().get("/task/".concat(e))}}),Le={name:"Tasks",components:{PageTitleBar:M["a"]},data:function(){return{message:null,tasks:[],fields:{name:{label:"Name",sortable:!0},description:{label:"Description"},interval:{label:"Interval",sortable:!0,formatter:function(e){var t=1===e?" day":" days";return e.toString()+t}},createdAt:{label:"Created",sortable:!0,formatter:function(e){var t=new Date(e);return t.toISOString().split("T")[0]}},"User.name":{label:"by",sortable:!0},actions:{label:"",sortable:!1}},modalQuestion:{id:null,name:""}}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.loadTasks();case 2:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadTasks:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.index();case 3:this.tasks=e.sent.data,0===this.tasks.length?this.message="There are no tasks.":this.message=null,e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),deleteTaskRequest:function(e){this.modalQuestion.id=e.id,this.modalQuestion.name=e.name,this.$root.$emit("bv::show::modal","modalQuestion")},deleteTask:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.deleteTask(this.modalQuestion.id);case 3:return e.next=5,this.loadTasks();case 5:this.message=null,e.next=11;break;case 8:e.prev=8,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 11:case"end":return e.stop()}},e,this,[[0,8]])}));function t(){return e.apply(this,arguments)}return t}(),showEdit:function(e){this.$router.push({name:"addedittask",params:{taskId:e.id}})}}},Se=Le,Be=Object(_["a"])(Se,$e,Re,!1,null,"a823ba28",null);Be.options.__file="Tasks.vue";var Ue=Be.exports,Ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},["add"===e.taskId?a("page-title-bar",{attrs:{title:"Add task",showBack:!0}}):e._e(),"add"!==e.taskId?a("page-title-bar",{attrs:{title:e.task.name,showBack:!0}}):e._e(),"add"===e.taskId?a("div",{staticClass:"description"},[e._v("Create a new maintenance task.")]):a("div",{staticClass:"description"},[e._v("Edit a maintenance task.")]),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.showForm?a("b-form",{attrs:{autocomplete:"off"},on:{submit:function(t){return t.preventDefault(),e.addEditTask(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"nameLabel",label:"Name:","label-for":"name"}},[a("b-form-input",{attrs:{id:"name",type:"text",placeholder:"Must be unique",required:""},model:{value:e.task.name,callback:function(t){e.$set(e.task,"name",t)},expression:"task.name"}})],1),a("b-form-group",{attrs:{id:"descriptionLabel",label:"Description:","label-for":"description"}},[a("b-form-input",{attrs:{id:"description",placeholder:"What is the actual task?"},model:{value:e.task.description,callback:function(t){e.$set(e.task,"description",t)},expression:"task.description"}})],1),a("b-form-group",{attrs:{id:"machineLabel",label:"Select machines:","label-for":"machines",description:"add"!==e.taskId?"Changing the machine selection will rearrange tasks.":""}},[a("b-form-select",{attrs:{id:"machines",options:e.machines,multiple:""},model:{value:e.machineIds,callback:function(t){e.machineIds=t},expression:"machineIds"}})],1),a("b-form-group",{attrs:{id:"repareLabel",label:"If not OK:","label-for":"repare"}},[a("b-form-input",{attrs:{id:"repare",placeholder:"What to do?"},model:{value:e.task.repare,callback:function(t){e.$set(e.task,"repare",t)},expression:"task.repare"}})],1),a("b-form-group",{attrs:{id:"startLabel",label:"Start date:","label-for":"start",description:"If the start date is during a weekend,\n the task is postponed to the next Monday instead."}},[a("b-form-input",{ref:"start",attrs:{id:"start",type:"date"},model:{value:e.task.startDate,callback:function(t){e.$set(e.task,"startDate",t)},expression:"task.startDate"}})],1),a("b-form-group",{attrs:{id:"intervalLabel",label:"Interval:","label-for":"interval",description:"If the interval leads to a due date during a weekend,\n the task is postponed to the next Monday instead."}},[a("b-form-input",{attrs:{id:"interval",type:"number",placeholder:"in days"},model:{value:e.task.interval,callback:function(t){e.$set(e.task,"interval",t)},expression:"task.interval"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("\n "+e._s("add"===e.taskId?"Add task":"Save changes")+"\n ")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1)},Ne=[],Qe=a("cebc"),qe={name:"AddEditTask",components:{PageTitleBar:M["a"]},props:["taskId"],data:function(){return{task:{name:"",description:"",repare:"",startDate:"",interval:""},machineIds:[],machines:[],selectedMachines:[],showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t,a;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,we["a"].index();case 2:if(t=e.sent.data,0===t.length&&(this.message="First you have to define a mass spec in the machines tab.",this.showForm=!1),this.machines=t.map(function(e){return{value:e.id,text:e.name}}),"add"===this.taskId){e.next=11;break}return e.next=8,je.task(this.taskId);case 8:a=e.sent.data,this.task=Object(Qe["a"])({},a,{startDate:a.startDate.split("T")[0]}),this.machineIds=this.task.MachineTasks.map(function(e){return e.Machine.id});case 11:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{addEditTask:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(e.prev=0,"add"!==this.taskId){e.next=6;break}return e.next=4,je.add({task:this.task,machineIds:this.machineIds});case 4:e.next=8;break;case 6:return e.next=8,je.update({task:Object(Qe["a"])({id:this.taskId},this.task),machineIds:this.machineIds});case 8:this.message=null,this.$router.push({path:"/tasks"}),e.next=15;break;case 12:e.prev=12,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 15:case"end":return e.stop()}},e,this,[[0,12]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.task.name="",this.task.description="",this.task.machineId=null,this.task.repare="",this.task.start="",this.task.interval="",this.message=null,this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},Ke=qe,Fe=Object(_["a"])(Ke,Ae,Ne,!1,null,"497a8216",null);Fe.options.__file="AddEditTask.vue";var We=Fe.exports,ze=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[e.task?a("page-title-bar",{attrs:{title:e.task.name,showBack:!0}}):e._e(),e.task?e._e():a("page-title-bar",{attrs:{title:"Error",showBack:"true"}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.task?a("table",{staticClass:"task-details-table"},[a("tr",[a("td",{staticClass:"row-title"},[e._v("Description")]),a("td",[e._v(e._s(e.task.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK")]),a("td",[e._v(e._s(e.task.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("First due date")]),a("td",[e._v(e._s(e.task.startDate.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Interval")]),a("td",[e._v(e._s(e.task.interval+(1===e.task.interval?" day":" days")))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v(e._s(1===e.machineNames.length?"Machine":"Machines"))]),a("td",[e._v(e._s(e.machineNames.join(", ")))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Created")]),a("td",[e._v(e._s(e.task.createdAt.split("T")[0]))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Created by")]),a("td",[e._v(e._s(e.task.User.name))])])]):e._e()],1)},Ge=[],He={name:"Tasks",components:{PageTitleBar:M["a"]},props:["taskId"],data:function(){return{message:null,task:null,machineNames:[]}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,je.task(this.taskId);case 3:this.task=e.sent.data,t=this.task.MachineTasks.map(function(e){return e.Machine.name}),this.machineNames=t.filter(function(e,t,a){return a.indexOf(e)===t}),this.message=null,e.next=12;break;case 9:e.prev=9,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 12:case"end":return e.stop()}},e,this,[[0,9]])}));function t(){return e.apply(this,arguments)}return t}()},Je=He,Ye=(a("eeae"),Object(_["a"])(Je,ze,Ge,!1,null,"2b2ddf46",null));Ye.options.__file="TaskDetails.vue";var Ve=Ye.exports,Xe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.machineTask?a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:e.machineTask.Task.name,showBack:!0}}),"check"===e.mode?a("div",{staticClass:"description green-desc"},[a("font-awesome-icon",{attrs:{icon:"check-circle"}}),e._v("\n The task has been successfully accomplished. Congrats!"),a("br")],1):e._e(),"dismiss"===e.mode?a("div",{staticClass:"description red-desc"},[a("font-awesome-icon",{attrs:{icon:"times-circle"}}),e._v("\n There have been issues!\n ")],1):e._e(),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),a("table",[a("tr",[a("td",{staticClass:"row-title"},[e._v("What to do:")]),a("td",[e._v(e._s(e.machineTask.Task.description))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("If not OK:")]),a("td",[e._v(e._s(e.machineTask.Task.repare))])]),a("tr",[a("td",{staticClass:"row-title"},[e._v("Machine:")]),a("td",[e._v(e._s(e.machineTask.Machine.name))])])]),e.showForm?a("b-form",{on:{submit:function(t){return t.preventDefault(),e.saveLog(t)},reset:function(t){return t.preventDefault(),e.reset(t)}}},[a("b-form-group",{attrs:{id:"commentLabel",label:"Comment:","label-for":"comment"}},[a("b-form-textarea",{class:["check"===e.mode?"green-textarea":"red-textarea"],attrs:{id:"comment",placeholder:"Enter some notes",rows:"3","no-resize":!0},model:{value:e.comment,callback:function(t){e.comment=t},expression:"comment"}})],1),a("b-button",{staticClass:"btn-outlined",attrs:{type:"submit"}},[e._v("Save")]),a("b-button",{staticClass:"btn-outlined",attrs:{type:"reset"}},[e._v("Reset")])],1):e._e()],1):e._e()},Ze=[],et={name:"WorkOnMachineTask",components:{PageTitleBar:M["a"]},props:["mode","machineTaskId"],data:function(){return{machineTask:null,comment:"",showForm:!0,message:null}},created:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,S.machineTask(this.machineTaskId);case 2:this.machineTask=e.sent.data.machineTask;case 3:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}(),methods:{saveLog:function(){var e=Object(T["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,K.add({status:this.mode,machineTaskId:this.machineTask.id,comment:this.comment});case 3:this.message=null,this.$router.push({path:"/"}),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),reset:function(){var e=this;this.comment="",this.showForm=!1,this.$nextTick(function(){e.showForm=!0})}}},tt=et,at=(a("3f95"),Object(_["a"])(tt,Xe,Ze,!1,null,"cb36d53c",null));at.options.__file="WorkOnMachineTask.vue";var st=at.exports,nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.machine?a("div",{staticClass:"qc-wrapper"},[a("page-title-bar",{attrs:{title:e.machine.name+" Quality Control",showBack:!0}}),a("div",{staticClass:"description"}),a("b-alert",{attrs:{show:null!==e.message}},[e._v("\n "+e._s(e.message)+"\n ")]),e.plotsLoaded||e.message?e._e():a("div",{staticClass:"description"},[e._v("Plots loading...")]),e.plotsLoaded?a("div",{staticClass:"plots"},[a("h5",[e._v("Number of identifications")]),a("div",{attrs:{id:e.plots.bokeh_code.div.amount_peptides.elementid}}),a("hr"),a("h5",[e._v("Number of PSMs")]),a("div",{attrs:{id:e.plots.bokeh_code.div.amount_psms.elementid}}),a("hr"),a("h5",[e._v("Peptide precursor areas")]),a("div",{attrs:{id:e.plots.bokeh_code.div.precursorarea.elementid}}),a("hr"),a("h5",[e._v("PSM MSGFScore")]),a("div",{attrs:{id:e.plots.bokeh_code.div.msgfscore.elementid}}),a("hr"),a("h5",[e._v("Precursor error (ppm)")]),a("div",{attrs:{id:e.plots.bokeh_code.div.prec_error.elementid}}),a("hr"),a("h5",[e._v("Retention time (min)")]),a("div",{attrs:{id:e.plots.bokeh_code.div.rt.elementid}})]):e._e()],1):e._e()},rt=[],it=a("a85a"),ot=it["a"],ct=(a("9021"),Object(_["a"])(ot,nt,rt,!1,null,"4802ca58",null));ct.options.__file="MachineQC.vue";var lt=ct.exports,ut=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper"},[a("page-title-bar",{attrs:{title:"About this app"}}),a("div",{staticClass:"description"},[e._v("Verkstad – The mass spec maintenance app.")]),a("br"),e._m(0),a("br"),e._m(1),e._m(2),a("br"),a("p",[e._v("\n Please note: The server is logging request information from this app.\n ")])],1)},dt=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n This app was created by Matthias Stahl in the\n "),a("a",{attrs:{href:"http://lehtiolab.se"}},[e._v("Lehtiö laboratory")]),e._v("\n at "),a("a",{attrs:{href:"http://ki.se"}},[e._v("Karolinska Institutet")]),e._v(" in winter 2019.\n ")])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n Client code: "),a("a",{attrs:{href:"https://github.com/mtstahl/verkstad_client"}},[e._v("github.com/mtstahl/verkstad_client")])])},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v("\n Server code: "),a("a",{attrs:{href:"https://github.com/mtstahl/verkstad_server"}},[e._v("github.com/mtstahl/verkstad_server")])])}],mt={name:"About",components:{PageTitleBar:M["a"]}},ht=mt,pt=(a("459c"),Object(_["a"])(ht,ut,dt,!1,null,"65378bdb",null));pt.options.__file="About.vue";var _t=pt.exports;s["a"].use(y["a"]);var ft=new y["a"]({mode:"history",base:"/verkstad/",hash:!1,routes:[{path:"/",name:"home",component:N},{path:"/logbook",name:"logbook",component:G},{path:"/logdetails/:logId",name:"logdetails",component:Z,props:!0},{path:"/users",name:"users",component:ie},{path:"/signup",name:"signup",component:me},{path:"/login",name:"login",component:be},{path:"/machines",name:"machines",component:Te},{path:"/addeditmachine/:machineId",name:"addeditmachine",component:Pe,props:!0},{path:"/tasks",name:"tasks",component:Ue},{path:"/addedittask/:taskId",name:"addedittask",component:We,props:!0},{path:"/taskdetails/:taskId",name:"taskdetails",component:Ve,props:!0},{path:"/workonmachinetask/:mode/:machineTaskId",name:"workonmachinetask",component:st,props:!0},{path:"/machineqc/:machineId",name:"machineqc",component:lt,props:!0},{path:"/about",name:"about",component:_t},{path:"*",redirect:"/"}]}),vt=a("07a4");a("f9e3"),a("2dd8");s["a"].config.productionTip=!1,s["a"].use(n["a"]),Object(c["sync"])(vt["a"],ft),r["c"].add(i["c"]),r["c"].add(i["a"]),r["c"].add(i["b"]),r["c"].add(i["d"]),s["a"].component("font-awesome-icon",o["a"]),new s["a"]({router:ft,store:vt["a"],render:function(e){return e(w)}}).$mount("#app")},"60f7":function(e,t,a){},"61e1":function(e,t,a){},"64a9":function(e,t,a){},"8a6a":function(e,t,a){},9021:function(e,t,a){"use strict";var s=a("a7e8"),n=a.n(s);n.a},9659:function(e,t,a){"use strict";var s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bar"},[e.showBack?a("b-button",{staticClass:"btn-back",attrs:{to:{path:e.$store.state.route.from.fullPath}}},[a("font-awesome-icon",{attrs:{icon:"arrow-alt-circle-left"}})],1):e._e(),a("h1",[e._v(e._s(e.title))]),a("div",{staticClass:"date"},[e._v(e._s(e.today))])],1)},n=[],r=(a("28a5"),a("cadf"),a("551c"),a("097d"),{name:"PageTitleBar",props:["title","showBack"],data:function(){return{today:null,days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}},created:function(){var e=new Date;this.today=[this.days[e.getDay()],e.toISOString().split("T")[0]].join(", ")}}),i=r,o=(a("306f"),a("2877")),c=Object(o["a"])(i,s,n,!1,null,"5bace19a",null);c.options.__file="PageTitleBar.vue";t["a"]=c.exports},a491:function(e,t,a){},a7e8:function(e,t,a){},a85a:function(module,__webpack_exports__,__webpack_require__){"use strict";var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("96cf"),regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_0__),_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("3b8d"),core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("cadf"),core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("551c"),core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_promise__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("097d"),core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es7_promise_finally__WEBPACK_IMPORTED_MODULE_4__),_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("9659"),_services_MachineService__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("aeee"),_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("dda9");__webpack_exports__["a"]={name:"MachineQC",components:{PageTitleBar:_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__["a"]},props:["machineId"],data:function(){return{message:null,machine:null,plots:{},plotsLoaded:!1}},created:function(){var e=Object(_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,_services_MachineService__WEBPACK_IMPORTED_MODULE_6__["a"].machine(this.machineId);case 3:this.machine=e.sent.data,0===this.machine.length?this.message="There are no machines.":this.machine.kanteleId?this.loadPlots():this.message="You have not provided a Kantele ID. No QC data can be fetched.",e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](0),e.t0.response?this.message=e.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 10:case"end":return e.stop()}},e,this,[[0,7]])}));function t(){return e.apply(this,arguments)}return t}(),methods:{loadPlots:function(){var _loadPlots=Object(_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["a"])(regeneratorRuntime.mark(function _callee2(){return regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:return _context2.prev=0,_context2.next=3,_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__["a"].getQCPlots(this.machine.kanteleId);case 3:this.plots=_context2.sent.data,console.log(this.plots),eval(this.plots.bokeh_code.script),this.plotsLoaded=!0,this.message=null,_context2.next=13;break;case 10:_context2.prev=10,_context2.t0=_context2["catch"](0),_context2.t0.response?this.message=_context2.t0.response.data.error:this.message="No connection to the server. Please contact an admin.";case 13:case"end":return _context2.stop()}},_callee2,this,[[0,10]])}));function loadPlots(){return _loadPlots.apply(this,arguments)}return loadPlots}()}}},aeee:function(e,t,a){"use strict";var s=a("3f4a");t["a"]={add:function(e){return Object(s["a"])().post("/addmachine",e)},index:function(){return Object(s["a"])().get("/machines")},machine:function(e){return Object(s["a"])().get("/machine/".concat(e))},update:function(e){return Object(s["a"])().put("/updatemachine/".concat(e.id),e)},deleteMachine:function(e){return Object(s["a"])().delete("deletemachine/".concat(e))}}},c548:function(e,t,a){},ceda:function(e,t,a){"use strict";var s=a("06e8"),n=a.n(s);n.a},d31f:function(e,t,a){},dda9:function(e,t,a){"use strict";var s=a("bc3a"),n=s.create({baseURL:"https://mozzarella.scilifelab.se/dash"});t["a"]={getQCPlots:function(e){return n.get("/longqc/".concat(e))}}},ddcf:function(e,t,a){},eeae:function(e,t,a){"use strict";var s=a("c548"),n=a.n(s);n.a},ffba:function(e,t,a){"use strict";var s=a("61e1"),n=a.n(s);n.a}}); -//# sourceMappingURL=app.804145be.js.map \ No newline at end of file diff --git a/dist/js/app.804145be.js.map b/dist/js/app.804145be.js.map deleted file mode 100644 index e26679f..0000000 --- a/dist/js/app.804145be.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/LogDetails.vue?17e0","webpack:///./src/App.vue?4241","webpack:///./src/store/store.js","webpack:///./src/components/PageTitleBar.vue?1c13","webpack:///./src/components/MachineTaskCard.vue?5b86","webpack:///./src/services/Api.js","webpack:///./src/components/WorkOnMachineTask.vue?a4b7","webpack:///./src/components/About.vue?cfae","webpack:///./src/App.vue?c6b0","webpack:///./src/components/Sidebar.vue?fa24","webpack:///src/components/Sidebar.vue","webpack:///./src/components/Sidebar.vue?d975","webpack:///./src/components/Sidebar.vue?ebf3","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?bff9","webpack:///./src/components/Home.vue?1690","webpack:///./src/components/MachineTaskCard.vue?5232","webpack:///src/components/MachineTaskCard.vue","webpack:///./src/components/MachineTaskCard.vue?69f3","webpack:///./src/components/MachineTaskCard.vue?eda1","webpack:///./src/services/MachineTaskService.js","webpack:///src/components/Home.vue","webpack:///./src/components/Home.vue?705d","webpack:///./src/components/Home.vue?2af2","webpack:///./src/components/Logbook.vue?53fd","webpack:///./src/services/LogService.js","webpack:///src/components/Logbook.vue","webpack:///./src/components/Logbook.vue?478b","webpack:///./src/components/Logbook.vue","webpack:///./src/components/LogDetails.vue?e5db","webpack:///src/components/LogDetails.vue","webpack:///./src/components/LogDetails.vue?22d2","webpack:///./src/components/LogDetails.vue?318e","webpack:///./src/components/Users.vue?57e3","webpack:///./src/services/AuthenticationService.js","webpack:///src/components/Users.vue","webpack:///./src/components/Users.vue?fb6d","webpack:///./src/components/Users.vue","webpack:///./src/components/Signup.vue?d8ac","webpack:///src/components/Signup.vue","webpack:///./src/components/Signup.vue?e399","webpack:///./src/components/Signup.vue","webpack:///./src/components/Login.vue?2ef0","webpack:///src/components/Login.vue","webpack:///./src/components/Login.vue?2227","webpack:///./src/components/Login.vue","webpack:///./src/components/Machines.vue?6585","webpack:///src/components/Machines.vue","webpack:///./src/components/Machines.vue?d0c9","webpack:///./src/components/Machines.vue","webpack:///./src/components/AddEditMachine.vue?d6e0","webpack:///src/components/AddEditMachine.vue","webpack:///./src/components/AddEditMachine.vue?115c","webpack:///./src/components/AddEditMachine.vue","webpack:///./src/components/Tasks.vue?e3ca","webpack:///./src/services/TaskService.js","webpack:///src/components/Tasks.vue","webpack:///./src/components/Tasks.vue?fa98","webpack:///./src/components/Tasks.vue","webpack:///./src/components/AddEditTask.vue?c2c9","webpack:///src/components/AddEditTask.vue","webpack:///./src/components/AddEditTask.vue?5cb5","webpack:///./src/components/AddEditTask.vue","webpack:///./src/components/TaskDetails.vue?8227","webpack:///src/components/TaskDetails.vue","webpack:///./src/components/TaskDetails.vue?9dee","webpack:///./src/components/TaskDetails.vue?f813","webpack:///./src/components/WorkOnMachineTask.vue?4e3a","webpack:///src/components/WorkOnMachineTask.vue","webpack:///./src/components/WorkOnMachineTask.vue?1e31","webpack:///./src/components/WorkOnMachineTask.vue?e06a","webpack:///./src/components/MachineQC.vue?305b","webpack:///./src/components/MachineQC.vue?d0bc","webpack:///./src/components/MachineQC.vue?6a0d","webpack:///./src/components/About.vue?d1ea","webpack:///src/components/About.vue","webpack:///./src/components/About.vue?f71c","webpack:///./src/components/About.vue?a6dc","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/MachineQC.vue?9a6d","webpack:///./src/components/PageTitleBar.vue?3dfa","webpack:///src/components/PageTitleBar.vue","webpack:///./src/components/PageTitleBar.vue?ac4d","webpack:///./src/components/PageTitleBar.vue?b4a8","webpack:///src/components/MachineQC.vue","webpack:///./src/services/MachineService.js","webpack:///./src/components/Home.vue?3aa8","webpack:///./src/services/MachineQCService.js","webpack:///./src/components/TaskDetails.vue?03f1","webpack:///./src/components/Sidebar.vue?b88f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","app","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogDetails_vue_vue_type_style_index_0_id_2456b989_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_LogDetails_vue_vue_type_style_index_0_id_2456b989_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Vue","use","Vuex","__webpack_exports__","Store","strict","state","user","JSON","parse","localStorage","getItem","token","mutations","setUser","setItem","_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_core_js_json_stringify__WEBPACK_IMPORTED_MODULE_0___default","removeItem","actions","_ref","commit","logout","_ref2","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PageTitleBar_vue_vue_type_style_index_0_id_5bace19a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PageTitleBar_vue_vue_type_style_index_0_id_5bace19a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineTaskCard_vue_vue_type_style_index_0_id_17f0c3b1_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineTaskCard_vue_vue_type_style_index_0_id_17f0c3b1_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","axios","baseURL","headers","Authorization","concat","store","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_WorkOnMachineTask_vue_vue_type_style_index_0_id_cb36d53c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_WorkOnMachineTask_vue_vue_type_style_index_0_id_cb36d53c_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_style_index_0_id_65378bdb_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_About_vue_vue_type_style_index_0_id_65378bdb_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_6357831e_render","_vm","this","_h","$createElement","_c","_self","attrs","id","fluid","staticRenderFns","Sidebarvue_type_template_id_5c6f1596_scoped_true_render","staticClass","to","icon","_v","exact","$store","_s","_e","on","click","href","fullScreen","year","Sidebarvue_type_template_id_5c6f1596_scoped_true_staticRenderFns","Sidebarvue_type_script_lang_js_","Date","getFullYear","methods","dispatch","document","documentElement","webkitRequestFullScreen","components_Sidebarvue_type_script_lang_js_","component","componentNormalizer","options","__file","Sidebar","Appvue_type_script_lang_js_","components","src_Appvue_type_script_lang_js_","App_component","App","Homevue_type_template_id_3105bf88_scoped_true_render","title","show","message","_l","orderedDueMachineTasks","dueMachineTask","today","getDay","Homevue_type_template_id_3105bf88_scoped_true_staticRenderFns","MachineTaskCardvue_type_template_id_17f0c3b1_scoped_true_render","class","dayDiff","showTaskDetails","machineTask","Task","Machine","nextDate","split","formatDay","disabled","Boolean","checkTask","dismissTask","MachineTaskCardvue_type_template_id_17f0c3b1_scoped_true_staticRenderFns","MachineTaskCardvue_type_script_lang_js_","props","$router","params","machineTaskId","taskId","days","rounded","Math","abs","ceil","components_MachineTaskCardvue_type_script_lang_js_","MachineTaskCard_component","MachineTaskCard","MachineTaskService","index","Api","Homevue_type_script_lang_js_","PageTitleBar","machineTasksAvailable","dueMachineTasks","upcoming","reloadInterval","created","_created","asyncToGenerator","regeneratorRuntime","mark","_callee2","_this","wrap","_context2","prev","next","loadMachineTasks","$options","interval","setInterval","_callee","_context","stop","arguments","beforeDestroy","clearInterval","_loadMachineTasks","_callee3","_context3","sent","machineTasks","filter","t0","response","error","computed","lodash_default","a","orderBy","components_Homevue_type_script_lang_js_","Home_component","Home","Logbookvue_type_template_id_2a5c114a_scoped_true_render","logs","items","fields","sort-by","sort-desc","responsive","scopedSlots","_u","fn","row","staticStyle","color","directives","rawName","expression","size","$event","stopPropagation","showDetails","item","deleteLogRequest","ok","deleteLog","Logbookvue_type_template_id_2a5c114a_scoped_true_staticRenderFns","LogService","add","properties","post","log","logId","delete","Logbookvue_type_script_lang_js_","status","label","sortable","task","machine","createdAt","formatter","toISOString","modalQuestion","loadLogs","_loadLogs","$root","$emit","_deleteLog","components_Logbookvue_type_script_lang_js_","Logbook_component","Logbook","LogDetailsvue_type_template_id_2456b989_scoped_true_render","showBack","description","repare","comment","LogDetailsvue_type_template_id_2456b989_scoped_true_staticRenderFns","LogDetailsvue_type_script_lang_js_","components_LogDetailsvue_type_script_lang_js_","LogDetails_component","LogDetails","Usersvue_type_template_id_59eb6a48_scoped_true_render","users","deleteUserRequest","deleteUser","userName","userEMail","email","font-weight","Usersvue_type_template_id_59eb6a48_scoped_true_staticRenderFns","AuthenticationService","signUp","credentials","login","userId","Usersvue_type_script_lang_js_","loadUsers","_loadUsers","_deleteUser","components_Usersvue_type_script_lang_js_","Users_component","Users","Signupvue_type_template_id_3ace11de_scoped_true_render","autocomplete","submit","preventDefault","reset","label-for","type","required","placeholder","model","callback","$$v","$set","Signupvue_type_template_id_3ace11de_scoped_true_staticRenderFns","Signupvue_type_script_lang_js_","password","showForm","_signUp","path","$nextTick","components_Signupvue_type_script_lang_js_","Signup_component","Signup","Loginvue_type_template_id_630eeda3_scoped_true_render","Loginvue_type_template_id_630eeda3_scoped_true_staticRenderFns","Loginvue_type_script_lang_js_","_login","route","from","components_Loginvue_type_script_lang_js_","Login_component","Login","Machinesvue_type_template_id_13ae183a_scoped_true_render","machines","editMachine","deleteMachineRequest","kanteleId","showQC","deleteMachine","hide","resetModal","Machinesvue_type_template_id_13ae183a_scoped_true_staticRenderFns","Machinesvue_type_script_lang_js_","User.name","loadMachines","_loadMachines","MachineService","machineId","_deleteMachine","components_Machinesvue_type_script_lang_js_","Machines_component","Machines","AddEditMachinevue_type_template_id_d5b1dc1e_scoped_true_render","addEditMachine","AddEditMachinevue_type_template_id_d5b1dc1e_scoped_true_staticRenderFns","AddEditMachinevue_type_script_lang_js_","_addEditMachine","update","components_AddEditMachinevue_type_script_lang_js_","AddEditMachine_component","AddEditMachine","Tasksvue_type_template_id_a823ba28_scoped_true_render","tasks","showEdit","deleteTaskRequest","deleteTask","Tasksvue_type_template_id_a823ba28_scoped_true_staticRenderFns","TaskService","put","Tasksvue_type_script_lang_js_","suffix","toString","loadTasks","_loadTasks","_deleteTask","components_Tasksvue_type_script_lang_js_","Tasks_component","Tasks","AddEditTaskvue_type_template_id_497a8216_scoped_true_render","addEditTask","multiple","machineIds","ref","AddEditTaskvue_type_template_id_497a8216_scoped_true_staticRenderFns","AddEditTaskvue_type_script_lang_js_","startDate","selectedMachines","map","element","text","objectSpread","MachineTasks","_addEditTask","start","components_AddEditTaskvue_type_script_lang_js_","AddEditTask_component","AddEditTask","TaskDetailsvue_type_template_id_2b2ddf46_scoped_true_render","machineNames","join","User","TaskDetailsvue_type_template_id_2b2ddf46_scoped_true_staticRenderFns","TaskDetailsvue_type_script_lang_js_","names","self","indexOf","components_TaskDetailsvue_type_script_lang_js_","TaskDetails_component","TaskDetails","WorkOnMachineTaskvue_type_template_id_cb36d53c_scoped_true_render","saveLog","rows","no-resize","WorkOnMachineTaskvue_type_template_id_cb36d53c_scoped_true_staticRenderFns","WorkOnMachineTaskvue_type_script_lang_js_","_saveLog","components_WorkOnMachineTaskvue_type_script_lang_js_","WorkOnMachineTask_component","WorkOnMachineTask","MachineQCvue_type_template_id_4802ca58_scoped_true_render","plotsLoaded","plots","bokeh_code","div","amount_peptides","elementid","amount_psms","precursorarea","msgfscore","prec_error","rt","MachineQCvue_type_template_id_4802ca58_scoped_true_staticRenderFns","components_MachineQCvue_type_script_lang_js_","MachineQCvue_type_script_lang_js_","MachineQC_component","MachineQC","Aboutvue_type_template_id_65378bdb_scoped_true_render","_m","Aboutvue_type_template_id_65378bdb_scoped_true_staticRenderFns","Aboutvue_type_script_lang_js_","components_Aboutvue_type_script_lang_js_","About_component","About","Router","router","base","hash","routes","redirect","config","productionTip","BootstrapVue","sync","library","faOilCan","faArrowAltCircleLeft","faCheckCircle","faTimesCircle","FontAwesomeIcon","render","h","$mount","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineQC_vue_vue_type_style_index_0_id_4802ca58_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MachineQC_vue_vue_type_style_index_0_id_4802ca58_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","fullPath","PageTitleBarvue_type_script_lang_js_","components_PageTitleBarvue_type_script_lang_js_","_PageTitleBar_vue__WEBPACK_IMPORTED_MODULE_5__","_Users_matthias_stahl_ki_jobs_mstodos_client_mstodos_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","_services_MachineService__WEBPACK_IMPORTED_MODULE_6__","loadPlots","_loadPlots","_callee2$","_services_MachineQCService__WEBPACK_IMPORTED_MODULE_7__","getQCPlots","console","eval","script","_Api__WEBPACK_IMPORTED_MODULE_0__","specifications","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_3105bf88_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Home_vue_vue_type_style_index_0_id_3105bf88_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","require","Kantele","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskDetails_vue_vue_type_style_index_0_id_2b2ddf46_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskDetails_vue_vue_type_style_index_0_id_2b2ddf46_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_5c6f1596_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_5c6f1596_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default"],"mappings":"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","file":"js/app.804145be.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/verkstad/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","/* eslint-disable no-param-reassign */\nimport Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n strict: true,\n state: {\n user: JSON.parse(localStorage.getItem('user')) || null,\n token: localStorage.getItem('token') || null,\n },\n mutations: {\n setUser(state, data) {\n state.user = data.user;\n state.token = data.token;\n if (state.token) {\n localStorage.setItem('token', state.token);\n localStorage.setItem('user', JSON.stringify(state.user));\n } else {\n localStorage.removeItem('token');\n localStorage.removeItem('user');\n }\n },\n },\n actions: {\n setUser({ commit }, data) {\n commit('setUser', data);\n },\n logout({ commit }) {\n commit('setUser', {\n user: null,\n token: null,\n });\n },\n },\n});\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"","import axios from 'axios';\nimport store from '../store/store';\n\nexport default () => axios.create({\n // baseURL: 'http://localhost:8081/',\n baseURL: 'https://mozzarella.scilifelab.se/verkstad_api/',\n headers: {\n Authorization: `Bearer ${store.state.token}`,\n },\n});\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Sidebar'),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-nav',{staticClass:\"sidebar\"},[_c('div',{staticClass:\"navbar-header\"},[_c('b-navbar-brand',{staticClass:\"logo-wrapper\",attrs:{\"to\":\"/\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"oil-can\"}})],1),_c('h5',{staticClass:\"title\"},[_vm._v(\"Verkstad\")]),_c('h6',{staticClass:\"subtitle\"},[_vm._v(\"Mass Spectrometer Maintenance\")])],1),_c('div',{staticClass:\"navbar-body\"},[_c('b-nav-item',{attrs:{\"to\":\"/\",\"exact\":\"\"}},[_vm._v(\"Home\")]),_c('b-nav-item',{attrs:{\"to\":\"/logbook\"}},[_vm._v(\"Logbook\")]),_c('b-nav-item',{attrs:{\"to\":\"/tasks\"}},[_vm._v(\"Tasks\")]),_c('b-nav-item',{attrs:{\"to\":\"/machines\"}},[_vm._v(\"Machines\")]),_c('b-nav-item',{attrs:{\"to\":\"/users\"}},[_vm._v(\"Users\")])],1),_c('div',{staticClass:\"navbar-user\"},[(_vm.$store.state.user)?_c('b-nav-text',{staticClass:\"user-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.$store.state.user.name)+\"\\n \")]):_vm._e(),(!_vm.$store.state.user)?_c('b-nav-item',{attrs:{\"to\":\"/login\"}},[_vm._v(\"Login\")]):_vm._e(),(_vm.$store.state.user)?_c('b-nav-item',{on:{\"click\":_vm.logout}},[_vm._v(\"Logout\")]):_vm._e(),_c('a',{staticClass:\"seemless\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.fullScreen}},[_vm._v(\"Full screen\")])],1),_c('div',{staticClass:\"navbar-footer\"},[_c('b-nav-text',[_c('router-link',{staticClass:\"link-about\",attrs:{\"to\":\"/about\"}},[_vm._v(\"Lehtiö Lab \"+_vm._s(_vm.year))])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-nav class=\"sidebar\">\n <div class=\"navbar-header\">\n <b-navbar-brand class=\"logo-wrapper\" to=\"/\">\n <font-awesome-icon icon=\"oil-can\"/>\n </b-navbar-brand>\n <h5 class=\"title\">Verkstad</h5>\n <h6 class=\"subtitle\">Mass Spectrometer Maintenance</h6>\n </div>\n <div class=\"navbar-body\">\n <b-nav-item to=\"/\" exact>Home</b-nav-item>\n <b-nav-item to=\"/logbook\">Logbook</b-nav-item>\n <b-nav-item to=\"/tasks\">Tasks</b-nav-item>\n <b-nav-item to=\"/machines\">Machines</b-nav-item>\n <b-nav-item to=\"/users\">Users</b-nav-item>\n </div>\n <div class=\"navbar-user\">\n <b-nav-text class=\"user-name\" v-if=\"$store.state.user\">\n {{ $store.state.user.name }}\n </b-nav-text>\n <b-nav-item to=\"/login\" v-if=\"!$store.state.user\">Login</b-nav-item>\n <b-nav-item @click=\"logout\" v-if=\"$store.state.user\">Logout</b-nav-item>\n <a href=\"#\" class=\"seemless\" @click=\"fullScreen\">Full screen</a>\n </div>\n <div class=\"navbar-footer\">\n <b-nav-text>\n <router-link class=\"link-about\" to=\"/about\">Lehtiö Lab {{ year }}</router-link>\n </b-nav-text>\n </div>\n </b-nav>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n year: new Date().getFullYear(),\n };\n },\n methods: {\n logout() {\n this.$store.dispatch('logout');\n },\n fullScreen() {\n document.documentElement.webkitRequestFullScreen();\n },\n },\n};\n</script>\n\n<style scoped>\n.sidebar {\n display: flex;\n align-items: flex-start;\n width: 30%;\n max-width: 300px;\n font-family: \"Work Sans\", sans-serif;\n font-weight: 200;\n background: #9dd5f8;\n color: #fffcf9;\n}\n\n.navbar-header {\n width: 90%;\n margin: 1.6rem auto 0 auto;\n text-align: center;\n}\n\n.navbar-header a {\n color: #fffcf9;\n}\n\n.logo-wrapper {\n width: 11rem;\n height: 11rem;\n margin-left: 12px;\n font-size: 6.5rem;\n border: 0.3rem solid #fffcf9;\n border-radius: 50%;\n}\n\n.title {\n margin-top: 5%;\n font-size: 2.5rem;\n}\n\n.subtitle {\n margin-top: 5%;\n font-size: 1.1rem;\n}\n\n.navbar-body {\n width: 100%;\n text-align: center;\n}\n\n.navbar-body a {\n font-size: 1.8rem;\n color: #fff;\n}\n\n.navbar-body a.active {\n background-color: #25899f;\n}\n\n.navbar-user {\n width: 100%;\n font-size: 1.2rem;\n text-align: center;\n}\n\n.navbar-user .user-name {\n width: 100%;\n background-color: #4c8fdb;\n}\n\n.navbar-user a {\n color: #fff;\n}\n\n.navbar-user a.active {\n background-color: #25899f;\n}\n\n.navbar-user .seemless {\n color: #9dd5f8;\n background-color: #9dd5f8;\n border: none;\n outline: none;\n}\n\n.navbar-footer {\n align-self: flex-end;\n width: 100%;\n font-size: 0.8rem;\n text-align: center;\n}\n\na.link-about {\n color: #fff;\n text-decoration: none;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=5c6f1596&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c6f1596\",\n null\n \n)\n\ncomponent.options.__file = \"Sidebar.vue\"\nexport default component.exports","<template>\n <div id=\"app\">\n <Sidebar />\n <b-container fluid>\n <router-view></router-view>\n </b-container>\n </div>\n</template>\n\n<script>\nimport Sidebar from './components/Sidebar.vue';\n\nexport default {\n name: 'App',\n components: {\n Sidebar,\n },\n};\n</script>\n\n\n<style>\n@import url('https://fonts.googleapis.com/css?family=Work+Sans:200,400');\n\nhtml, body {\n height: 100%;\n font-size: 15px;\n}\n\n@media(max-width: 1200px) {\n html, body {\n font-size: 11px;\n }\n}\n\n@media(max-width: 980px) {\n html, body {\n font-size: 10px;\n }\n}\n\n.wrapper {\n display: flex;\n flex-direction: column;\n height: 100vh;\n overflow-y: scroll;\n}\n\nform {\n max-width: 40%;\n overflow-y: scroll;\n padding-bottom: 10px;\n}\n\nbutton.btn-outlined, a.btn-outlined {\n margin: 0 0 5px 5px;\n background-color: #9dd5f8;\n border: none;\n}\n\nbutton.btn-details {\n background-color: #9dd5f8;\n border: none;\n}\n\nbutton.btn-delete {\n background-color: crimson;\n border: none;\n}\n\n.description {\n min-height: 5px;\n margin: 2% 0 2% 0;\n}\n\n.alert-info {\n color: #000;\n background-color: #9dd5f8;\n}\n\n#app {\n display: flex;\n width: 100%;\n height: 100%;\n}\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6357831e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Home\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.machineTasksAvailable)?_c('div',{staticClass:\"task-board\"},[_c('div',{staticClass:\"task-box\"},[_c('h5',[_vm._v(\"Latest today\")]),_c('ol',{staticClass:\"latest-today\"},[_vm._l((_vm.orderedDueMachineTasks.today),function(dueMachineTask){return _c('machine-task-card',{key:dueMachineTask.id,staticClass:\"task-card\",attrs:{\"data\":dueMachineTask}})}),(_vm.orderedDueMachineTasks.today.length === 0)?_c('li',[_c('b-alert',{attrs:{\"show\":true}},[_c('div',[_vm._v(\"All tasks done for today.\")]),(new Date().getDay() === 1)?_c('div',[_vm._v(\"Not bad for a Monday!\")]):_vm._e(),(new Date().getDay() === 4)?_c('div',[_vm._v(\"It's Thursday, why not going for the pub?\")]):_vm._e(),(new Date().getDay() === 5)?_c('div',[_vm._v(\"Go home! It's almost weekend!\")]):_vm._e()])],1):_vm._e()],2)]),_c('div',{staticClass:\"task-box\"},[_c('h5',[_vm._v(\"Upcoming\")]),_c('ol',{staticClass:\"upcoming\"},_vm._l((_vm.orderedDueMachineTasks.upcoming),function(dueMachineTask){return _c('machine-task-card',{key:dueMachineTask.id,staticClass:\"task-card\",attrs:{\"data\":dueMachineTask}})}),1)])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"task-card\"},[_c('div',{staticClass:\"task-color-bar\",class:[(_vm.data.dayDiff > -1) ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']}),_c('div',{staticClass:\"task-body\",on:{\"click\":_vm.showTaskDetails}},[_c('h1',[_vm._v(_vm._s(_vm.data.machineTask.Task.name))]),_c('div',{staticClass:\"task-machine\"},[_vm._v(_vm._s(_vm.data.machineTask.Machine.name))]),_c('div',{staticClass:\"task-latest\"},[_vm._v(\"\\n Latest: \"+_vm._s(_vm.data.nextDate.split('T')[0])+\"\\n (\"+_vm._s((_vm.data.dayDiff < -1)\n ? 'in ' + _vm.formatDay(_vm.data.dayDiff)\n : ((_vm.data.dayDiff < 0)\n ? 'today'\n : _vm.formatDay(_vm.data.dayDiff) + ' ago'))+\")\\n \")])]),_c('b-button',{staticClass:\"check-task\",class:[(_vm.data.dayDiff > -1)\n ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue'],attrs:{\"disabled\":!Boolean(_vm.$store.state.token)},on:{\"click\":_vm.checkTask}},[_c('font-awesome-icon',{attrs:{\"icon\":\"check-circle\"}})],1),_c('b-button',{staticClass:\"dismiss-task\",class:[(_vm.data.dayDiff > -1)\n ? 'bar-red' : (_vm.data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue'],attrs:{\"disabled\":!Boolean(_vm.$store.state.token)},on:{\"click\":_vm.dismissTask}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <li class=\"task-card\">\n <div class=\"task-color-bar\"\n :class=\"[(data.dayDiff > -1) ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\">\n </div>\n <div class=\"task-body\" @click=\"showTaskDetails\">\n <h1>{{ data.machineTask.Task.name }}</h1>\n <div class=\"task-machine\">{{ data.machineTask.Machine.name }}</div>\n <div class=\"task-latest\">\n Latest: {{ data.nextDate.split('T')[0] }}\n ({{ (data.dayDiff < -1)\n ? 'in ' + formatDay(data.dayDiff)\n : ((data.dayDiff < 0)\n ? 'today'\n : formatDay(data.dayDiff) + ' ago') }})\n </div>\n </div>\n <b-button class=\"check-task\"\n :class=\"[(data.dayDiff > -1)\n ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\"\n :disabled=\"!Boolean($store.state.token)\"\n @click=\"checkTask\">\n <font-awesome-icon icon=\"check-circle\"/>\n </b-button>\n <b-button class=\"dismiss-task\"\n :class=\"[(data.dayDiff > -1)\n ? 'bar-red' : (data.dayDiff > -7)\n ? 'bar-yellow' : 'bar-blue']\"\n :disabled=\"!Boolean($store.state.token)\"\n @click=\"dismissTask\">\n <font-awesome-icon icon=\"times-circle\"/>\n </b-button>\n </li>\n</template>\n\n<script>\nexport default {\n name: 'Login',\n props: ['data'],\n methods: {\n checkTask() {\n this.$router.push({\n name: 'workonmachinetask',\n params: {\n mode: 'check',\n machineTaskId: this.data.machineTask.id,\n },\n });\n },\n dismissTask() {\n this.$router.push({\n name: 'workonmachinetask',\n params: {\n mode: 'dismiss',\n machineTaskId: this.data.machineTask.id,\n },\n });\n },\n showTaskDetails() {\n this.$router.push({\n name: 'taskdetails',\n params: {\n taskId: this.data.machineTask.Task.id,\n },\n });\n },\n formatDay(days) {\n const rounded = Math.abs(Math.ceil(days));\n if (rounded > 1) {\n return `${rounded} days`;\n }\n return `${rounded} day`;\n },\n },\n};\n</script>\n\n<style scoped>\nli.task-card {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n height: 5.5rem;\n margin: 0 2% 2% 0;\n}\n\n.task-color-bar {\n width: 10%;\n max-width: 30px;\n height: 100%;\n border-radius: 5px 0 0 5px;\n}\n\n.bar-red {\n background-color: lightcoral;\n}\n\n.bar-yellow {\n background-color: darkkhaki;\n}\n\n.bar-blue {\n background-color: #9dd5f8;\n}\n\n.task-body {\n display: flex;\n flex-direction: column;\n align-items: left;\n width: 100%;\n height: 100%;\n padding: 0.6rem;\n background-color: rgb(233, 233, 233);\n}\n\n.task-body h1 {\n margin: 0;\n font-family: \"Work Sans\";\n font-size: 1.3rem;\n font-weight: 400;\n}\n\nbutton {\n width: 17%;\n max-width: 60px;\n height: 100%;\n margin: 0;\n padding: 0;\n font-size: 2.2rem;\n border: none;\n}\n\nbutton.dismiss-task {\n border-radius: 0 5px 5px 0;\n background-color: lightcoral;\n}\n\nbutton.check-task {\n border-radius: 0;\n background-color: darkseagreen;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineTaskCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MachineTaskCard.vue?vue&type=template&id=17f0c3b1&scoped=true&\"\nimport script from \"./MachineTaskCard.vue?vue&type=script&lang=js&\"\nexport * from \"./MachineTaskCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MachineTaskCard.vue?vue&type=style&index=0&id=17f0c3b1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17f0c3b1\",\n null\n \n)\n\ncomponent.options.__file = \"MachineTaskCard.vue\"\nexport default component.exports","import Api from './Api';\n\nexport default {\n index() {\n return Api().get('/machinetasks');\n },\n machineTask(machineTaskId) {\n return Api().get(`/machinetask/${machineTaskId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Home\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <div class=\"task-board\" v-if=\"machineTasksAvailable\">\n <div class=\"task-box\">\n <h5>Latest today</h5>\n <ol class=\"latest-today\">\n <machine-task-card v-for=\"dueMachineTask in orderedDueMachineTasks.today\"\n :key=\"dueMachineTask.id\"\n class=\"task-card\"\n :data=\"dueMachineTask\">\n </machine-task-card>\n <li v-if=\"orderedDueMachineTasks.today.length === 0\">\n <b-alert :show=\"true\">\n <div>All tasks done for today.</div>\n <div v-if=\"new Date().getDay() === 1\">Not bad for a Monday!</div>\n <div v-if=\"new Date().getDay() === 4\">It's Thursday, why not going for the pub?</div>\n <div v-if=\"new Date().getDay() === 5\">Go home! It's almost weekend!</div>\n </b-alert>\n </li>\n </ol>\n </div>\n <div class=\"task-box\">\n <h5>Upcoming</h5>\n <ol class=\"upcoming\">\n <machine-task-card v-for=\"dueMachineTask in orderedDueMachineTasks.upcoming\"\n :key=\"dueMachineTask.id\"\n class=\"task-card\"\n :data=\"dueMachineTask\">\n </machine-task-card>\n </ol>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport _ from 'lodash';\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineTaskCard from './MachineTaskCard.vue';\nimport MachineTaskService from '../services/MachineTaskService';\n\nexport default {\n name: 'Home',\n components: {\n PageTitleBar,\n MachineTaskCard,\n },\n data() {\n return {\n message: null,\n machineTasksAvailable: false,\n dueMachineTasks: {\n today: null,\n upcoming: null,\n },\n reloadInterval: 60000, // 1 min\n };\n },\n async created() {\n await this.loadMachineTasks();\n this.$options.interval = setInterval(async () => {\n await this.loadMachineTasks();\n }, this.reloadInterval);\n },\n beforeDestroy() {\n clearInterval(this.$options.interval);\n },\n methods: {\n async loadMachineTasks() {\n try {\n const dueMachineTasks = (await MachineTaskService.index()).data.machineTasks;\n if (dueMachineTasks.length === 0) {\n this.machineTasksAvailable = false;\n this.message = 'There are no upcoming tasks. '\n + 'Please define new tasks.';\n } else {\n this.dueMachineTasks.today = dueMachineTasks.filter(\n machineTask => machineTask.dayDiff >= -1,\n );\n this.dueMachineTasks.upcoming = dueMachineTasks.filter(\n machineTask => machineTask.dayDiff < -1,\n );\n this.machineTasksAvailable = true;\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n computed: {\n orderedDueMachineTasks() {\n return {\n today: _.orderBy(this.dueMachineTasks.today, ['dayDiff', 'id'], 'desc'),\n upcoming: _.orderBy(this.dueMachineTasks.upcoming, ['dayDiff', 'id'], 'desc'),\n };\n },\n },\n};\n</script>\n\n<style scoped>\n.task-board {\n display: flex;\n justify-content: space-between;\n height: 100%;\n}\n\n.task-box {\n display: flex;\n flex-direction: column;\n width: 49%;\n height: 100%;\n}\n\n.task-box h5 {\n font-family: \"Work Sans\", sans-serif;\n font-size: 1.8rem;\n font-weight: 200;\n}\n\nol {\n height: 100%;\n margin: 0;\n padding: 0;\n list-style: none;\n overflow-y: scroll;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=3105bf88&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3105bf88\",\n null\n \n)\n\ncomponent.options.__file = \"Home.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Logbook\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.logs.length > 0)?_c('b-table',{staticClass:\"logs-table\",attrs:{\"items\":_vm.logs,\"fields\":_vm.fields,\"sort-by\":\"createdAt\",\"sort-desc\":true,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"status\",fn:function(row){return [(row.value === 'check')?_c('font-awesome-icon',{staticStyle:{\"color\":\"darkseagreen\"},attrs:{\"icon\":\"check-circle\"}}):(row.value === 'dismiss')?_c('font-awesome-icon',{staticStyle:{\"color\":\"lightcoral\"},attrs:{\"icon\":\"times-circle\"}}):_vm._e()]}},{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showDetails(row.item)}}},[_vm._v(\"\\n Details\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteLogRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete log?\"},on:{\"ok\":_vm.deleteLog}},[_c('p',[_vm._v(\"Do you really want to delete this log?\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n add(properties) {\n return Api().post('/addlog', properties);\n },\n index() {\n return Api().get('/logbook');\n },\n log(logId) {\n return Api().get(`/log/${logId}`);\n },\n deleteLog(logId) {\n return Api().delete(`/deletelog/${logId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Logbook\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"logs-table\"\n :items=\"logs\"\n :fields=\"fields\"\n sort-by=\"createdAt\"\n :sort-desc=\"true\"\n responsive\n v-if=\"logs.length > 0\">\n <template slot=\"status\" slot-scope=\"row\">\n <font-awesome-icon v-if=\"row.value === 'check'\"\n icon=\"check-circle\"\n style=\"color:darkseagreen\" />\n <font-awesome-icon v-else-if=\"row.value === 'dismiss'\"\n icon=\"times-circle\"\n style=\"color:lightcoral\" />\n </template>\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showDetails(row.item)\"\n v-show=\"$store.state.token\">\n Details\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteLogRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-modal id=\"modalQuestion\" @ok=\"deleteLog\" title=\"Delete log?\">\n <p>Do you really want to delete this log?</p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'Logbook',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n logs: [],\n fields: {\n status: {\n label: '',\n sortable: false,\n },\n task: {\n label: 'Task',\n sortable: true,\n },\n machine: {\n label: 'Machine',\n sortable: true,\n },\n createdAt: {\n label: 'Done',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n user: {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n },\n };\n },\n async created() {\n await this.loadLogs();\n },\n methods: {\n async loadLogs() {\n try {\n this.logs = (await LogService.index()).data;\n if (this.logs.length === 0) {\n this.message = 'There are no logs.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n showDetails(item) {\n this.$router.push({\n name: 'logdetails',\n params: {\n logId: item.id,\n },\n });\n },\n deleteLogRequest(item) {\n this.modalQuestion.id = item.id;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteLog() {\n try {\n await LogService.deleteLog(this.modalQuestion.id);\n await this.loadLogs();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logbook.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logbook.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logbook.vue?vue&type=template&id=2a5c114a&scoped=true&\"\nimport script from \"./Logbook.vue?vue&type=script&lang=js&\"\nexport * from \"./Logbook.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a5c114a\",\n null\n \n)\n\ncomponent.options.__file = \"Logbook.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.log)?_c('page-title-bar',{attrs:{\"title\":_vm.log.task,\"showBack\":true}}):_vm._e(),(!_vm.log)?_c('page-title-bar',{attrs:{\"title\":\"Error\",\"showBack\":\"true\"}}):_vm._e(),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.log)?_c('table',{staticClass:\"log-details-table\"},[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Satus:\")]),_c('td',[(_vm.log.status === 'check')?_c('font-awesome-icon',{staticStyle:{\"color\":\"darkseagreen\"},attrs:{\"icon\":\"check-circle\"}}):_vm._e(),(_vm.log.status === 'dismiss')?_c('font-awesome-icon',{staticStyle:{\"color\":\"lightcoral\"},attrs:{\"icon\":\"times-circle\"}}):_vm._e()],1)]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Description:\")]),_c('td',[_vm._v(_vm._s(_vm.log.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK:\")]),_c('td',[_vm._v(_vm._s(_vm.log.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Interval:\")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.log.interval + ((_vm.log.interval === 1)\n ? ' day' : ' days'))+\"\\n \")])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Machine:\")]),_c('td',[_vm._v(_vm._s(_vm.log.machine))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Done:\")]),_c('td',[_vm._v(_vm._s(_vm.log.createdAt.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"By:\")]),_c('td',[_vm._v(_vm._s(_vm.log.user))])]),_c('tr',{staticClass:\"spacer\"}),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Comment:\")]),_c('td',[_vm._v(_vm._s(_vm.log.comment))])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar :title=\"log.task\" :showBack=\"true\" v-if=\"log\" />\n <page-title-bar title=\"Error\" showBack=\"true\" v-if=\"!log\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table class=\"log-details-table\" v-if=\"log\">\n <tr>\n <td class=\"row-title\">Satus:</td>\n <td>\n <font-awesome-icon icon=\"check-circle\"\n style=\"color: darkseagreen\"\n v-if=\"log.status === 'check'\" />\n <font-awesome-icon icon=\"times-circle\"\n style=\"color: lightcoral\"\n v-if=\"log.status === 'dismiss'\" />\n </td>\n </tr>\n <tr>\n <td class=\"row-title\">Description:</td>\n <td>{{ log.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK:</td>\n <td>{{ log.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Interval:</td>\n <td>\n {{ log.interval + ((log.interval === 1)\n ? ' day' : ' days')}}\n </td>\n </tr>\n <tr>\n <td class=\"row-title\">Machine:</td>\n <td>{{ log.machine }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Done:</td>\n <td>{{ log.createdAt.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">By:</td>\n <td>{{ log.user }}</td>\n </tr>\n <tr class=\"spacer\">\n </tr>\n <tr>\n <td class=\"row-title\">Comment:</td>\n <td>{{ log.comment }}</td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'LogDetails',\n components: {\n PageTitleBar,\n },\n props: ['logId'],\n data() {\n return {\n message: null,\n log: null,\n };\n },\n async created() {\n try {\n this.log = (await LogService.log(this.logId)).data;\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 80%;\n line-height: 2rem;\n}\n\n.row-title {\n min-width: 100px;\n font-weight: bold;\n vertical-align: top;\n}\n\n.spacer {\n height: 2rem;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogDetails.vue?vue&type=template&id=2456b989&scoped=true&\"\nimport script from \"./LogDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./LogDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LogDetails.vue?vue&type=style&index=0&id=2456b989&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2456b989\",\n null\n \n)\n\ncomponent.options.__file = \"LogDetails.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Users\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.users.length > 0)?_c('b-table',{staticClass:\"user-table\",attrs:{\"items\":_vm.users,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteUserRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),(!_vm.$store.state.user && this.users.length > 0)?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"to\":\"/login\"}},[_vm._v(\"\\n Login\\n \")]):_vm._e(),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"to\":\"/signup\"}},[_vm._v(\"\\n Add user\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete user?\"},on:{\"ok\":_vm.deleteUser}},[_c('p',[_vm._v(\"Do you really want to kick out this user?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.userName)),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.modalQuestion.userEMail))])]),(_vm.$store.state.user)?_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.user.email === _vm.modalQuestion.userEMail),expression:\"$store.state.user.email === modalQuestion.userEMail\"}],staticStyle:{\"color\":\"crimson\",\"font-weight\":\"bold\"}},[_vm._v(\"\\n Warning: You are going to delete yourself. If you continue,\\n you will be logged out automatically.\\n \")]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n signUp(credentials) {\n return Api().post('/signup', credentials);\n },\n login(credentials) {\n return Api().post('/login', credentials);\n },\n index() {\n return Api().get('/users');\n },\n deleteUser(userId) {\n return Api().delete(`deleteuser/${userId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Users\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"user-table\"\n :items=\"users\"\n :fields=\"fields\"\n responsive\n v-if=\"users.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteUserRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/login\"\n v-if=\"!$store.state.user && this.users.length > 0\">\n Login\n </b-button>\n <b-button class=\"btn-outlined\"\n to=\"/signup\">\n Add user\n </b-button>\n\n <b-modal id=\"modalQuestion\" @ok=\"deleteUser\" title=\"Delete user?\">\n <p>Do you really want to kick out this user?</p>\n <p><strong>{{ modalQuestion.userName }}<br />\n {{ modalQuestion.userEMail }}</strong></p>\n <p style=\"color: crimson; font-weight: bold\"\n v-if=\"$store.state.user\"\n v-show=\"$store.state.user.email === modalQuestion.userEMail\">\n Warning: You are going to delete yourself. If you continue,\n you will be logged out automatically.\n </p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Users',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n users: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n email: {\n label: 'eMail',\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n userId: null,\n userName: '',\n userEMail: '',\n },\n };\n },\n async created() {\n await this.loadUsers();\n },\n methods: {\n async loadUsers() {\n try {\n this.users = (await AuthenticationService.index()).data;\n if (this.users.length === 0) {\n this.message = 'There are no users registered.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteUserRequest(item) {\n this.modalQuestion.userId = item.id;\n this.modalQuestion.userName = item.name;\n this.modalQuestion.userEMail = item.email;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteUser() {\n try {\n await AuthenticationService.deleteUser(this.modalQuestion.userId);\n if (this.$store.state.user\n && (this.modalQuestion.userEMail === this.$store.state.user.email)) {\n this.logout();\n }\n this.loadUsers();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n logout() {\n this.$store.dispatch('logout');\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=59eb6a48&scoped=true&\"\nimport script from \"./Users.vue?vue&type=script&lang=js&\"\nexport * from \"./Users.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59eb6a48\",\n null\n \n)\n\ncomponent.options.__file = \"Users.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Sign up\",\"showBack\":true}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Register a new user for this app by submitting the form below.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.signUp($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"emailLabel\",\"label\":\"eMail address:\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"email\",\"required\":\"\",\"placeholder\":\"Enter eMail\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1),_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter name\"},model:{value:(_vm.user.name),callback:function ($$v) {_vm.$set(_vm.user, \"name\", $$v)},expression:\"user.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordLabel\",\"label\":\"Password:\",\"label-for\":\"password\"}},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Enter password (>3 characters)\"},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Sign up\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Sign up\" :showBack=\"true\" />\n <div class=\"description\">Register a new user for this app by submitting the form below.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"signUp\" @reset.prevent=\"reset\" autocomplete=\"off\" v-if=\"showForm\">\n <b-form-group id=\"emailLabel\"\n label=\"eMail address:\"\n label-for=\"email\">\n <b-form-input id=\"email\"\n type=\"email\"\n v-model=\"user.email\"\n required\n placeholder=\"Enter eMail\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"user.name\"\n required\n placeholder=\"Enter name\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"passwordLabel\"\n label=\"Password:\"\n label-for=\"password\">\n <b-form-input id=\"password\"\n type=\"password\"\n v-model=\"user.password\"\n required\n placeholder=\"Enter password (>3 characters)\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Sign up</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Signup',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n user: {\n email: '',\n name: '',\n password: '',\n },\n showForm: true,\n message: null,\n };\n },\n methods: {\n async signUp() {\n try {\n await AuthenticationService.signUp({\n email: this.user.email,\n name: this.user.name,\n password: this.user.password,\n });\n this.message = null;\n this.$router.push({\n path: '/users',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.user.email = '';\n this.user.name = '';\n this.user.password = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Signup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Signup.vue?vue&type=template&id=3ace11de&scoped=true&\"\nimport script from \"./Signup.vue?vue&type=script&lang=js&\"\nexport * from \"./Signup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ace11de\",\n null\n \n)\n\ncomponent.options.__file = \"Signup.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Login\",\"showBack\":true}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Come in and take care of your mass specs.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.login($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"emailLabel\",\"label\":\"eMail address:\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"type\":\"email\",\"required\":\"\",\"placeholder\":\"Enter eMail\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordLabel\",\"label\":\"Password:\",\"label-for\":\"password\"}},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Enter password\"},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Login\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Login\" :showBack=\"true\" />\n <div class=\"description\">Come in and take care of your mass specs.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"login\" @reset.prevent=\"reset\" v-if=\"showForm\">\n <b-form-group id=\"emailLabel\"\n label=\"eMail address:\"\n label-for=\"email\">\n <b-form-input id=\"email\"\n type=\"email\"\n v-model=\"user.email\"\n required\n placeholder=\"Enter eMail\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"passwordLabel\"\n label=\"Password:\"\n label-for=\"password\">\n <b-form-input id=\"password\"\n type=\"password\"\n v-model=\"user.password\"\n required\n placeholder=\"Enter password\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Login</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport AuthenticationService from '../services/AuthenticationService';\n\nexport default {\n name: 'Login',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n user: {\n email: '',\n password: '',\n },\n showForm: true,\n message: null,\n };\n },\n methods: {\n async login() {\n try {\n const response = await AuthenticationService.login({\n email: this.user.email,\n password: this.user.password,\n });\n this.$store.dispatch('setUser', response.data);\n this.message = null;\n this.$router.push({\n name: this.$store.state.route.from.name,\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.user.email = '';\n this.user.name = '';\n this.user.password = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=630eeda3&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"630eeda3\",\n null\n \n)\n\ncomponent.options.__file = \"Login.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Machines\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.machines.length > 0)?_c('b-table',{staticClass:\"machines-table\",attrs:{\"items\":_vm.machines,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.editMachine(row.item)}}},[_vm._v(\"\\n Edit\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteMachineRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token && row.item.kanteleId),expression:\"$store.state.token && row.item.kanteleId\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showQC(row.item)}}},[_vm._v(\"\\n Show QC\\n \")])]}}])}):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"btn-outlined\",attrs:{\"to\":\"/addeditmachine/add\"}},[_vm._v(\"\\n Add machine\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete machine?\"},on:{\"ok\":_vm.deleteMachine,\"hide\":_vm.resetModal}},[_c('p',[_vm._v(\"Do you really want to delete this machine?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.name))])]),_c('p',[_vm._v(\"Please note: Deleting a machine can lead to tasks\\n without machine. Please control your task settings\\n after deletion.\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Machines\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"machines-table\"\n :items=\"machines\"\n :fields=\"fields\"\n responsive\n v-if=\"machines.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n v-show=\"$store.state.token\"\n @click.stop=\"editMachine(row.item)\">\n Edit\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n v-show=\"$store.state.token\"\n @click.stop=\"deleteMachineRequest(row.item)\">\n Delete\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showQC(row.item)\"\n v-show=\"$store.state.token && row.item.kanteleId\">\n Show QC\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/addeditmachine/add\"\n v-show=\"$store.state.token\">\n Add machine\n </b-button>\n <b-modal id=\"modalQuestion\" @ok=\"deleteMachine\" @hide=\"resetModal\" title=\"Delete machine?\">\n <p>Do you really want to delete this machine?</p>\n <p><strong>{{ modalQuestion.name }}</strong></p>\n <p>Please note: Deleting a machine can lead to tasks\n without machine. Please control your task settings\n after deletion.</p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'Machines',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n machines: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n type: {\n label: 'Type',\n sortable: true,\n },\n kanteleId: {\n label: 'Kantele ID',\n sortable: true,\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n 'User.name': {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n name: '',\n },\n };\n },\n async created() {\n await this.loadMachines();\n },\n methods: {\n async loadMachines() {\n try {\n this.machines = (await MachineService.index()).data;\n if (this.machines.length === 0) {\n this.message = 'There are no machines.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteMachineRequest(item) {\n this.modalQuestion = {\n id: item.id,\n name: item.name,\n };\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n editMachine(item) {\n this.$router.push({\n name: 'addeditmachine',\n params: {\n machineId: item.id,\n },\n });\n },\n showQC(item) {\n this.$router.push({\n name: 'machineqc',\n params: {\n machineId: item.id,\n },\n });\n },\n async deleteMachine() {\n try {\n await MachineService.deleteMachine(this.modalQuestion.id);\n await this.loadMachines();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n resetModal() {\n this.modalQuestion.name = '';\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Machines.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Machines.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Machines.vue?vue&type=template&id=13ae183a&scoped=true&\"\nimport script from \"./Machines.vue?vue&type=script&lang=js&\"\nexport * from \"./Machines.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13ae183a\",\n null\n \n)\n\ncomponent.options.__file = \"Machines.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.machineId === 'add')?_c('page-title-bar',{attrs:{\"title\":\"Add machine\",\"showBack\":true}}):_vm._e(),(_vm.machineId !== 'add')?_c('page-title-bar',{attrs:{\"title\":_vm.machine.name,\"showBack\":true}}):_vm._e(),(_vm.machineId === 'add')?_c('div',{staticClass:\"description\"},[_vm._v(\"Register a new mass spectrometer.\")]):_c('div',{staticClass:\"description\"},[_vm._v(\"Edit the mass spectrometer.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.addEditMachine($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter name\"},model:{value:(_vm.machine.name),callback:function ($$v) {_vm.$set(_vm.machine, \"name\", $$v)},expression:\"machine.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"typeLabel\",\"label\":\"Type:\",\"label-for\":\"type\"}},[_c('b-form-input',{attrs:{\"id\":\"type\",\"placeholder\":\"Enter type\"},model:{value:(_vm.machine.type),callback:function ($$v) {_vm.$set(_vm.machine, \"type\", $$v)},expression:\"machine.type\"}})],1),_c('b-form-group',{attrs:{\"id\":\"kanteleIdLabel\",\"label\":\"Kantele ID:\",\"label-for\":\"kanteleId\",\"description\":\"Pleas ask your local admin.\"}},[_c('b-form-input',{attrs:{\"id\":\"kanteleId\",\"placeholder\":\"Enter Kantele ID\"},model:{value:(_vm.machine.kanteleId),callback:function ($$v) {_vm.$set(_vm.machine, \"kanteleId\", $$v)},expression:\"machine.kanteleId\"}})],1),(_vm.machineId === 'add')?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n Add machine\\n \")]):_vm._e(),(_vm.machineId !== 'add')?_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n Save changes\\n \")]):_vm._e(),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Add machine\" :showBack=\"true\" v-if=\"machineId === 'add'\" />\n <page-title-bar :title=\"machine.name\" :showBack=\"true\" v-if=\"machineId !== 'add'\" />\n <div class=\"description\" v-if=\"machineId === 'add'\">Register a new mass spectrometer.</div>\n <div class=\"description\" v-else>Edit the mass spectrometer.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"addEditMachine\"\n @reset.prevent=\"reset\"\n autocomplete=\"off\"\n v-if=\"showForm\">\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"machine.name\"\n required\n placeholder=\"Enter name\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"typeLabel\"\n label=\"Type:\"\n label-for=\"type\">\n <b-form-input id=\"type\"\n v-model=\"machine.type\"\n placeholder=\"Enter type\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"kanteleIdLabel\"\n label=\"Kantele ID:\"\n label-for=\"kanteleId\"\n description=\"Pleas ask your local admin.\">\n <b-form-input id=\"kanteleId\"\n v-model=\"machine.kanteleId\"\n placeholder=\"Enter Kantele ID\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\" v-if=\"machineId === 'add'\">\n Add machine\n </b-button>\n <b-button type=\"submit\" class=\"btn-outlined\" v-if=\"machineId !== 'add'\">\n Save changes\n </b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'AddEditMachine',\n components: {\n PageTitleBar,\n },\n props: ['machineId'],\n data() {\n return {\n machine: {\n name: '',\n type: '',\n kanteleId: null,\n },\n showForm: true,\n message: null,\n };\n },\n async created() {\n if (this.machineId !== 'add') {\n this.machine = (await MachineService.machine(this.machineId)).data;\n }\n },\n methods: {\n async addEditMachine() {\n try {\n if (this.machineId === 'add') {\n await MachineService.add(this.machine);\n } else {\n await MachineService.update(this.machine);\n }\n this.message = null;\n this.$router.push({\n path: '/machines',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.machine.name = '';\n this.machine.type = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditMachine.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditMachine.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddEditMachine.vue?vue&type=template&id=d5b1dc1e&scoped=true&\"\nimport script from \"./AddEditMachine.vue?vue&type=script&lang=js&\"\nexport * from \"./AddEditMachine.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d5b1dc1e\",\n null\n \n)\n\ncomponent.options.__file = \"AddEditMachine.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"Tasks\"}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.tasks.length > 0)?_c('b-table',{staticClass:\"tasks-table\",attrs:{\"items\":_vm.tasks,\"fields\":_vm.fields,\"responsive\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(row){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-details\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.showEdit(row.item)}}},[_vm._v(\"\\n Edit\\n \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"mr-2 btn-delete\",attrs:{\"size\":\"sm\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteTaskRequest(row.item)}}},[_vm._v(\"\\n Delete\\n \")])]}}])}):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$store.state.token),expression:\"$store.state.token\"}],staticClass:\"btn-outlined\",attrs:{\"to\":\"/addedittask/add\"}},[_vm._v(\"\\n Add task\\n \")]),_c('b-modal',{attrs:{\"id\":\"modalQuestion\",\"title\":\"Delete task?\"},on:{\"ok\":_vm.deleteTask}},[_c('p',[_vm._v(\"Do you really want to delete this task?\")]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.modalQuestion.name))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Api from './Api';\n\nexport default {\n add(properties) {\n return Api().post('/addtask', properties);\n },\n update(properties) {\n return Api().put(`/updatetask/${properties.task.id}`, properties);\n },\n index() {\n return Api().get('/tasks');\n },\n deleteTask(taskId) {\n return Api().delete(`deletetask/${taskId}`);\n },\n task(taskId) {\n return Api().get(`/task/${taskId}`);\n },\n};\n","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Tasks\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-table class=\"tasks-table\"\n :items=\"tasks\"\n :fields=\"fields\"\n responsive\n v-if=\"tasks.length > 0\">\n <template slot=\"actions\" slot-scope=\"row\">\n <b-button size=\"sm\"\n class=\"mr-2 btn-details\"\n @click.stop=\"showEdit(row.item)\"\n v-show=\"$store.state.token\">\n Edit\n </b-button>\n <b-button size=\"sm\"\n class=\"mr-2 btn-delete\"\n @click.stop=\"deleteTaskRequest(row.item)\"\n v-show=\"$store.state.token\">\n Delete\n </b-button>\n </template>\n </b-table>\n <b-button class=\"btn-outlined\"\n to=\"/addedittask/add\"\n v-show=\"$store.state.token\">\n Add task\n </b-button>\n\n <b-modal id=\"modalQuestion\" @ok=\"deleteTask\" title=\"Delete task?\">\n <p>Do you really want to delete this task?</p>\n <p><strong>{{ modalQuestion.name }}</strong></p>\n </b-modal>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\n\nexport default {\n name: 'Tasks',\n components: {\n PageTitleBar,\n },\n data() {\n return {\n message: null,\n tasks: [],\n fields: {\n name: {\n label: 'Name',\n sortable: true,\n },\n description: {\n label: 'Description',\n },\n interval: {\n label: 'Interval',\n sortable: true,\n formatter: (value) => {\n const suffix = value === 1 ? ' day' : ' days';\n return value.toString() + suffix;\n },\n },\n createdAt: {\n label: 'Created',\n sortable: true,\n formatter: (value) => {\n const d = new Date(value);\n return d.toISOString().split('T')[0];\n },\n },\n 'User.name': {\n label: 'by',\n sortable: true,\n },\n actions: {\n label: '',\n sortable: false,\n },\n },\n modalQuestion: {\n id: null,\n name: '',\n },\n };\n },\n async created() {\n await this.loadTasks();\n },\n methods: {\n async loadTasks() {\n try {\n this.tasks = (await TaskService.index()).data;\n if (this.tasks.length === 0) {\n this.message = 'There are no tasks.';\n } else {\n this.message = null;\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n deleteTaskRequest(item) {\n this.modalQuestion.id = item.id;\n this.modalQuestion.name = item.name;\n this.$root.$emit('bv::show::modal', 'modalQuestion');\n },\n async deleteTask() {\n try {\n await TaskService.deleteTask(this.modalQuestion.id);\n await this.loadTasks();\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n showEdit(item) {\n this.$router.push({\n name: 'addedittask',\n params: {\n taskId: item.id,\n },\n });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tasks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tasks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tasks.vue?vue&type=template&id=a823ba28&scoped=true&\"\nimport script from \"./Tasks.vue?vue&type=script&lang=js&\"\nexport * from \"./Tasks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a823ba28\",\n null\n \n)\n\ncomponent.options.__file = \"Tasks.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.taskId === 'add')?_c('page-title-bar',{attrs:{\"title\":\"Add task\",\"showBack\":true}}):_vm._e(),(_vm.taskId !== 'add')?_c('page-title-bar',{attrs:{\"title\":_vm.task.name,\"showBack\":true}}):_vm._e(),(_vm.taskId === 'add')?_c('div',{staticClass:\"description\"},[_vm._v(\"Create a new maintenance task.\")]):_c('div',{staticClass:\"description\"},[_vm._v(\"Edit a maintenance task.\")]),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.showForm)?_c('b-form',{attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.addEditTask($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"nameLabel\",\"label\":\"Name:\",\"label-for\":\"name\"}},[_c('b-form-input',{attrs:{\"id\":\"name\",\"type\":\"text\",\"placeholder\":\"Must be unique\",\"required\":\"\"},model:{value:(_vm.task.name),callback:function ($$v) {_vm.$set(_vm.task, \"name\", $$v)},expression:\"task.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"descriptionLabel\",\"label\":\"Description:\",\"label-for\":\"description\"}},[_c('b-form-input',{attrs:{\"id\":\"description\",\"placeholder\":\"What is the actual task?\"},model:{value:(_vm.task.description),callback:function ($$v) {_vm.$set(_vm.task, \"description\", $$v)},expression:\"task.description\"}})],1),_c('b-form-group',{attrs:{\"id\":\"machineLabel\",\"label\":\"Select machines:\",\"label-for\":\"machines\",\"description\":(_vm.taskId !== 'add')\n ? 'Changing the machine selection will rearrange tasks.'\n : ''}},[_c('b-form-select',{attrs:{\"id\":\"machines\",\"options\":_vm.machines,\"multiple\":\"\"},model:{value:(_vm.machineIds),callback:function ($$v) {_vm.machineIds=$$v},expression:\"machineIds\"}})],1),_c('b-form-group',{attrs:{\"id\":\"repareLabel\",\"label\":\"If not OK:\",\"label-for\":\"repare\"}},[_c('b-form-input',{attrs:{\"id\":\"repare\",\"placeholder\":\"What to do?\"},model:{value:(_vm.task.repare),callback:function ($$v) {_vm.$set(_vm.task, \"repare\", $$v)},expression:\"task.repare\"}})],1),_c('b-form-group',{attrs:{\"id\":\"startLabel\",\"label\":\"Start date:\",\"label-for\":\"start\",\"description\":\"If the start date is during a weekend,\\n the task is postponed to the next Monday instead.\"}},[_c('b-form-input',{ref:\"start\",attrs:{\"id\":\"start\",\"type\":\"date\"},model:{value:(_vm.task.startDate),callback:function ($$v) {_vm.$set(_vm.task, \"startDate\", $$v)},expression:\"task.startDate\"}})],1),_c('b-form-group',{attrs:{\"id\":\"intervalLabel\",\"label\":\"Interval:\",\"label-for\":\"interval\",\"description\":\"If the interval leads to a due date during a weekend,\\n the task is postponed to the next Monday instead.\"}},[_c('b-form-input',{attrs:{\"id\":\"interval\",\"type\":\"number\",\"placeholder\":\"in days\"},model:{value:(_vm.task.interval),callback:function ($$v) {_vm.$set(_vm.task, \"interval\", $$v)},expression:\"task.interval\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s((_vm.taskId === 'add') ? 'Add task' : 'Save changes')+\"\\n \")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"Add task\" :showBack=\"true\" v-if=\"taskId === 'add'\" />\n <page-title-bar :title=\"task.name\" :showBack=\"true\" v-if=\"taskId !== 'add'\" />\n <div class=\"description\" v-if=\"taskId === 'add'\">Create a new maintenance task.</div>\n <div class=\"description\" v-else>Edit a maintenance task.</div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <b-form @submit.prevent=\"addEditTask\" @reset.prevent=\"reset\" autocomplete=\"off\" v-if=\"showForm\">\n <b-form-group id=\"nameLabel\"\n label=\"Name:\"\n label-for=\"name\">\n <b-form-input id=\"name\"\n type=\"text\"\n v-model=\"task.name\"\n placeholder=\"Must be unique\"\n required>\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"descriptionLabel\"\n label=\"Description:\"\n label-for=\"description\">\n <b-form-input id=\"description\"\n v-model=\"task.description\"\n placeholder=\"What is the actual task?\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"machineLabel\"\n label=\"Select machines:\"\n label-for=\"machines\"\n :description=\"(taskId !== 'add')\n ? 'Changing the machine selection will rearrange tasks.'\n : ''\">\n <b-form-select id=\"machines\"\n v-model=\"machineIds\"\n :options=\"machines\"\n multiple>\n </b-form-select>\n </b-form-group>\n <b-form-group id=\"repareLabel\"\n label=\"If not OK:\"\n label-for=\"repare\">\n <b-form-input id=\"repare\"\n v-model=\"task.repare\"\n placeholder=\"What to do?\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"startLabel\"\n label=\"Start date:\"\n label-for=\"start\"\n description=\"If the start date is during a weekend,\n the task is postponed to the next Monday instead.\">\n <b-form-input id=\"start\"\n ref=\"start\"\n type=\"date\"\n v-model=\"task.startDate\">\n </b-form-input>\n </b-form-group>\n <b-form-group id=\"intervalLabel\"\n label=\"Interval:\"\n label-for=\"interval\"\n description=\"If the interval leads to a due date during a weekend,\n the task is postponed to the next Monday instead.\">\n <b-form-input id=\"interval\"\n type=\"number\"\n v-model=\"task.interval\"\n placeholder=\"in days\">\n </b-form-input>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">\n {{ (taskId === 'add') ? 'Add task' : 'Save changes' }}\n </b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\nimport MachineService from '../services/MachineService';\n\nexport default {\n name: 'AddEditTask',\n components: {\n PageTitleBar,\n },\n props: ['taskId'],\n data() {\n return {\n task: {\n name: '',\n description: '',\n repare: '',\n startDate: '',\n interval: '',\n },\n machineIds: [],\n machines: [],\n selectedMachines: [],\n showForm: true,\n message: null,\n };\n },\n async created() {\n const machines = (await MachineService.index()).data;\n if (machines.length === 0) {\n this.message = 'First you have to define a mass spec in the machines tab.';\n this.showForm = false;\n }\n\n this.machines = machines.map(element => ({\n value: element.id,\n text: element.name,\n }));\n\n if (this.taskId !== 'add') {\n const task = (await TaskService.task(this.taskId)).data;\n this.task = {\n ...task,\n startDate: task.startDate.split('T')[0],\n };\n\n this.machineIds = this.task.MachineTasks.map(\n machineTask => machineTask.Machine.id,\n );\n }\n },\n methods: {\n async addEditTask() {\n try {\n if (this.taskId === 'add') {\n await TaskService.add({\n task: this.task,\n machineIds: this.machineIds,\n });\n } else {\n await TaskService.update({\n task: {\n id: this.taskId,\n ...this.task,\n },\n machineIds: this.machineIds,\n });\n }\n this.message = null;\n this.$router.push({\n path: '/tasks',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.task.name = '';\n this.task.description = '';\n this.task.machineId = null;\n this.task.repare = '';\n this.task.start = '';\n this.task.interval = '';\n this.message = null;\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditTask.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditTask.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddEditTask.vue?vue&type=template&id=497a8216&scoped=true&\"\nimport script from \"./AddEditTask.vue?vue&type=script&lang=js&\"\nexport * from \"./AddEditTask.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"497a8216\",\n null\n \n)\n\ncomponent.options.__file = \"AddEditTask.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[(_vm.task)?_c('page-title-bar',{attrs:{\"title\":_vm.task.name,\"showBack\":true}}):_vm._e(),(!_vm.task)?_c('page-title-bar',{attrs:{\"title\":\"Error\",\"showBack\":\"true\"}}):_vm._e(),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(_vm.task)?_c('table',{staticClass:\"task-details-table\"},[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Description\")]),_c('td',[_vm._v(_vm._s(_vm.task.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK\")]),_c('td',[_vm._v(_vm._s(_vm.task.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"First due date\")]),_c('td',[_vm._v(_vm._s(_vm.task.startDate.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Interval\")]),_c('td',[_vm._v(_vm._s(_vm.task.interval + ((_vm.task.interval === 1) ? ' day' : ' days')))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(_vm._s((_vm.machineNames.length === 1) ? 'Machine' : 'Machines'))]),_c('td',[_vm._v(_vm._s(_vm.machineNames.join(', ')))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Created\")]),_c('td',[_vm._v(_vm._s(_vm.task.createdAt.split('T')[0]))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Created by\")]),_c('td',[_vm._v(_vm._s(_vm.task.User.name))])])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar :title=\"task.name\" :showBack=\"true\" v-if=\"task\" />\n <page-title-bar title=\"Error\" showBack=\"true\" v-if=\"!task\" />\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table class=\"task-details-table\" v-if=\"task\">\n <tr>\n <td class=\"row-title\">Description</td>\n <td>{{ task.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK</td>\n <td>{{ task.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">First due date</td>\n <td>{{ task.startDate.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Interval</td>\n <td>{{ task.interval + ((task.interval === 1) ? ' day' : ' days')}}</td>\n </tr>\n <tr>\n <td class=\"row-title\">{{ (machineNames.length === 1) ? 'Machine' : 'Machines' }}</td>\n <td>{{ machineNames.join(', ') }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Created</td>\n <td>{{ task.createdAt.split('T')[0] }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Created by</td>\n <td>{{ task.User.name }}</td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport TaskService from '../services/TaskService';\n\nexport default {\n name: 'Tasks',\n components: {\n PageTitleBar,\n },\n props: ['taskId'],\n data() {\n return {\n message: null,\n task: null,\n machineNames: [],\n };\n },\n async created() {\n try {\n this.task = (await TaskService.task(this.taskId)).data;\n const names = this.task.MachineTasks.map(\n machineTask => machineTask.Machine.name,\n );\n this.machineNames = names.filter((value, index, self) => self.indexOf(value) === index);\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 100%;\n line-height: 2rem;\n}\n\n.row-title {\n font-weight: bold;\n vertical-align: top;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskDetails.vue?vue&type=template&id=2b2ddf46&scoped=true&\"\nimport script from \"./TaskDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b2ddf46\",\n null\n \n)\n\ncomponent.options.__file = \"TaskDetails.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.machineTask)?_c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":_vm.machineTask.Task.name,\"showBack\":true}}),(_vm.mode === 'check')?_c('div',{staticClass:\"description green-desc\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"check-circle\"}}),_vm._v(\"\\n The task has been successfully accomplished. Congrats!\"),_c('br')],1):_vm._e(),(_vm.mode === 'dismiss')?_c('div',{staticClass:\"description red-desc\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}}),_vm._v(\"\\n There have been issues!\\n \")],1):_vm._e(),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),_c('table',[_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"What to do:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Task.description))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"If not OK:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Task.repare))])]),_c('tr',[_c('td',{staticClass:\"row-title\"},[_vm._v(\"Machine:\")]),_c('td',[_vm._v(_vm._s(_vm.machineTask.Machine.name))])])]),(_vm.showForm)?_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveLog($event)},\"reset\":function($event){$event.preventDefault();return _vm.reset($event)}}},[_c('b-form-group',{attrs:{\"id\":\"commentLabel\",\"label\":\"Comment:\",\"label-for\":\"comment\"}},[_c('b-form-textarea',{class:[(_vm.mode === 'check') ? 'green-textarea' : 'red-textarea'],attrs:{\"id\":\"comment\",\"placeholder\":\"Enter some notes\",\"rows\":\"3\",\"no-resize\":true},model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}})],1),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('b-button',{staticClass:\"btn-outlined\",attrs:{\"type\":\"reset\"}},[_vm._v(\"Reset\")])],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\" v-if=\"machineTask\">\n <page-title-bar :title=\"machineTask.Task.name\" :showBack=\"true\" />\n <div class=\"description green-desc\" v-if=\"mode === 'check'\">\n <font-awesome-icon icon=\"check-circle\" />\n The task has been successfully accomplished. Congrats!<br />\n </div>\n <div class=\"description red-desc\" v-if=\"mode === 'dismiss'\">\n <font-awesome-icon icon=\"times-circle\" />\n There have been issues!\n </div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <table>\n <tr>\n <td class=\"row-title\">What to do:</td>\n <td>{{ machineTask.Task.description }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">If not OK:</td>\n <td>{{ machineTask.Task.repare }}</td>\n </tr>\n <tr>\n <td class=\"row-title\">Machine:</td>\n <td>{{ machineTask.Machine.name }}</td>\n </tr>\n </table>\n <b-form @submit.prevent=\"saveLog\" @reset.prevent=\"reset\" v-if=\"showForm\">\n <b-form-group id=\"commentLabel\"\n label=\"Comment:\"\n label-for=\"comment\">\n <b-form-textarea id=\"comment\"\n :class=\"[(mode === 'check') ? 'green-textarea' : 'red-textarea']\"\n v-model=\"comment\"\n placeholder=\"Enter some notes\"\n rows=\"3\"\n :no-resize=\"true\">\n </b-form-textarea>\n </b-form-group>\n <b-button type=\"submit\" class=\"btn-outlined\">Save</b-button>\n <b-button type=\"reset\" class=\"btn-outlined\">Reset</b-button>\n </b-form>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineTaskService from '../services/MachineTaskService';\nimport LogService from '../services/LogService';\n\nexport default {\n name: 'WorkOnMachineTask',\n components: {\n PageTitleBar,\n },\n props: ['mode', 'machineTaskId'],\n data() {\n return {\n machineTask: null,\n comment: '',\n showForm: true,\n message: null,\n };\n },\n async created() {\n this.machineTask = (await MachineTaskService.machineTask(this.machineTaskId)).data.machineTask;\n },\n methods: {\n async saveLog() {\n try {\n await LogService.add({\n status: this.mode,\n machineTaskId: this.machineTask.id,\n comment: this.comment,\n });\n this.message = null;\n this.$router.push({\n path: '/',\n });\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n reset() {\n this.comment = '';\n this.showForm = false;\n this.$nextTick(() => { this.showForm = true; });\n },\n },\n};\n</script>\n\n<style scoped>\ntable {\n width: 50%;\n margin: 0 0 20px 0;\n line-height: 2rem;\n}\n\n.row-title {\n vertical-align: top;\n}\n\n.description {\n font-size: 1.3rem;\n}\n\n.green-desc {\n color: darkgreen\n}\n\n.red-desc {\n color: crimson;\n}\n\n.green-textarea {\n border-color: darkgreen\n}\n\n.red-textarea {\n border-color: crimson;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WorkOnMachineTask.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WorkOnMachineTask.vue?vue&type=template&id=cb36d53c&scoped=true&\"\nimport script from \"./WorkOnMachineTask.vue?vue&type=script&lang=js&\"\nexport * from \"./WorkOnMachineTask.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WorkOnMachineTask.vue?vue&type=style&index=0&id=cb36d53c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb36d53c\",\n null\n \n)\n\ncomponent.options.__file = \"WorkOnMachineTask.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.machine)?_c('div',{staticClass:\"qc-wrapper\"},[_c('page-title-bar',{attrs:{\"title\":_vm.machine.name + ' Quality Control',\"showBack\":true}}),_c('div',{staticClass:\"description\"}),_c('b-alert',{attrs:{\"show\":_vm.message === null ? false : true}},[_vm._v(\"\\n \"+_vm._s(_vm.message)+\"\\n \")]),(!_vm.plotsLoaded && !_vm.message)?_c('div',{staticClass:\"description\"},[_vm._v(\"Plots loading...\")]):_vm._e(),(_vm.plotsLoaded)?_c('div',{staticClass:\"plots\"},[_c('h5',[_vm._v(\"Number of identifications\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.amount_peptides.elementid}}),_c('hr'),_c('h5',[_vm._v(\"Number of PSMs\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.amount_psms.elementid}}),_c('hr'),_c('h5',[_vm._v(\"Peptide precursor areas\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.precursorarea.elementid}}),_c('hr'),_c('h5',[_vm._v(\"PSM MSGFScore\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.msgfscore.elementid}}),_c('hr'),_c('h5',[_vm._v(\"Precursor error (ppm)\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.prec_error.elementid}}),_c('hr'),_c('h5',[_vm._v(\"Retention time (min)\")]),_c('div',{attrs:{\"id\":_vm.plots.bokeh_code.div.rt.elementid}})]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MachineQC.vue?vue&type=template&id=4802ca58&scoped=true&\"\nimport script from \"./MachineQC.vue?vue&type=script&lang=js&\"\nexport * from \"./MachineQC.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MachineQC.vue?vue&type=style&index=0&id=4802ca58&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4802ca58\",\n null\n \n)\n\ncomponent.options.__file = \"MachineQC.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wrapper\"},[_c('page-title-bar',{attrs:{\"title\":\"About this app\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\"Verkstad – The mass spec maintenance app.\")]),_c('br'),_vm._m(0),_c('br'),_vm._m(1),_vm._m(2),_c('br'),_c('p',[_vm._v(\"\\n Please note: The server is logging request information from this app.\\n \")])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n This app was created by Matthias Stahl in the\\n \"),_c('a',{attrs:{\"href\":\"http://lehtiolab.se\"}},[_vm._v(\"Lehtiö laboratory\")]),_vm._v(\"\\n at \"),_c('a',{attrs:{\"href\":\"http://ki.se\"}},[_vm._v(\"Karolinska Institutet\")]),_vm._v(\" in winter 2019.\\n \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n Client code: \"),_c('a',{attrs:{\"href\":\"https://github.com/mtstahl/verkstad_client\"}},[_vm._v(\"github.com/mtstahl/verkstad_client\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"\\n Server code: \"),_c('a',{attrs:{\"href\":\"https://github.com/mtstahl/verkstad_server\"}},[_vm._v(\"github.com/mtstahl/verkstad_server\")])])}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"wrapper\">\n <page-title-bar title=\"About this app\" />\n <div class=\"description\">Verkstad – The mass spec maintenance app.</div>\n <br />\n <p>\n This app was created by Matthias Stahl in the\n <a href=\"http://lehtiolab.se\">Lehtiö laboratory</a>\n at <a href=\"http://ki.se\">Karolinska Institutet</a> in winter 2019.\n </p>\n <br />\n <p>\n Client code: <a href=\"https://github.com/mtstahl/verkstad_client\">github.com/mtstahl/verkstad_client</a>\n </p>\n <p>\n Server code: <a href=\"https://github.com/mtstahl/verkstad_server\">github.com/mtstahl/verkstad_server</a>\n </p>\n <br />\n <p>\n Please note: The server is logging request information from this app.\n </p>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\n\nexport default {\n name: 'About',\n components: {\n PageTitleBar,\n },\n};\n</script>\n\n<style scoped>\na {\n color: #9dd5f8;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=65378bdb&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=js&\"\nexport * from \"./About.vue?vue&type=script&lang=js&\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=65378bdb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65378bdb\",\n null\n \n)\n\ncomponent.options.__file = \"About.vue\"\nexport default component.exports","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Home from './components/Home.vue';\nimport Logbook from './components/Logbook.vue';\nimport LogDetails from './components/LogDetails.vue';\nimport Users from './components/Users.vue';\nimport Signup from './components/Signup.vue';\nimport Login from './components/Login.vue';\nimport Machines from './components/Machines.vue';\nimport AddEditMachine from './components/AddEditMachine.vue';\nimport Tasks from './components/Tasks.vue';\nimport AddEditTask from './components/AddEditTask.vue';\nimport TaskDetails from './components/TaskDetails.vue';\nimport WorkOnMachineTask from './components/WorkOnMachineTask.vue';\nimport MachineQC from './components/MachineQC.vue';\nimport About from './components/About.vue';\n\nVue.use(Router);\n\nexport default new Router({\n mode: 'history',\n base: '/verkstad/',\n hash: false,\n routes: [\n {\n path: '/',\n name: 'home',\n component: Home,\n },\n {\n path: '/logbook',\n name: 'logbook',\n component: Logbook,\n },\n {\n path: '/logdetails/:logId',\n name: 'logdetails',\n component: LogDetails,\n props: true,\n },\n {\n path: '/users',\n name: 'users',\n component: Users,\n },\n {\n path: '/signup',\n name: 'signup',\n component: Signup,\n },\n {\n path: '/login',\n name: 'login',\n component: Login,\n },\n {\n path: '/machines',\n name: 'machines',\n component: Machines,\n },\n {\n path: '/addeditmachine/:machineId',\n name: 'addeditmachine',\n component: AddEditMachine,\n props: true,\n },\n {\n path: '/tasks',\n name: 'tasks',\n component: Tasks,\n },\n {\n path: '/addedittask/:taskId',\n name: 'addedittask',\n component: AddEditTask,\n props: true,\n },\n {\n path: '/taskdetails/:taskId',\n name: 'taskdetails',\n component: TaskDetails,\n props: true,\n },\n {\n path: '/workonmachinetask/:mode/:machineTaskId',\n name: 'workonmachinetask',\n component: WorkOnMachineTask,\n props: true,\n },\n {\n path: '/machineqc/:machineId',\n name: 'machineqc',\n component: MachineQC,\n props: true,\n },\n {\n path: '/about',\n name: 'about',\n component: About,\n },\n {\n path: '*',\n redirect: '/',\n },\n ],\n});\n","import Vue from 'vue';\nimport BootstrapVue from 'bootstrap-vue';\n\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport {\n faOilCan,\n faArrowAltCircleLeft,\n faCheckCircle,\n faTimesCircle,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\n\nimport { sync } from 'vuex-router-sync';\n\nimport App from './App.vue';\nimport router from './router';\nimport store from './store/store';\n\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'bootstrap-vue/dist/bootstrap-vue.css';\n\nVue.config.productionTip = false;\nVue.use(BootstrapVue);\n\nsync(store, router);\n\nlibrary.add(faOilCan);\nlibrary.add(faArrowAltCircleLeft);\nlibrary.add(faCheckCircle);\nlibrary.add(faTimesCircle);\n\nVue.component('font-awesome-icon', FontAwesomeIcon);\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount('#app');\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=style&index=0&id=4802ca58&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MachineQC.vue?vue&type=style&index=0&id=4802ca58&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bar\"},[(_vm.showBack)?_c('b-button',{staticClass:\"btn-back\",attrs:{\"to\":{ path: _vm.$store.state.route.from.fullPath }}},[_c('font-awesome-icon',{attrs:{\"icon\":\"arrow-alt-circle-left\"}})],1):_vm._e(),_c('h1',[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.today))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"bar\">\n <b-button class=\"btn-back\" :to=\"{ path: $store.state.route.from.fullPath }\" v-if=\"showBack\">\n <font-awesome-icon icon=\"arrow-alt-circle-left\"/>\n </b-button>\n <h1>{{ title }}</h1>\n <div class=\"date\">{{ today }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'PageTitleBar',\n props: [\n 'title',\n 'showBack',\n ],\n data() {\n return {\n today: null,\n days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n };\n },\n created() {\n const d = new Date();\n this.today = [this.days[d.getDay()], d.toISOString().split('T')[0]].join(', ');\n },\n};\n</script>\n\n<style scoped>\n.bar {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n min-height: 7rem;\n margin: 0;\n padding: 1.6rem 0 0 0;\n font-family: 'Work Sans', sans-serif;\n border-bottom: 0.1rem solid #9dd5f8;\n}\n\n.bar h1 {\n font-weight: 200;\n font-size: 4rem;\n}\n\na.btn-back, a.btn-back.btn-secondary.active {\n margin: auto 0;\n font-size: 2.5rem;\n color: #9dd5f8;\n background-color: #fff;\n border: none;\n}\n\n.date {\n font-size: 2rem;\n font-weight: 200;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageTitleBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageTitleBar.vue?vue&type=template&id=5bace19a&scoped=true&\"\nimport script from \"./PageTitleBar.vue?vue&type=script&lang=js&\"\nexport * from \"./PageTitleBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PageTitleBar.vue?vue&type=style&index=0&id=5bace19a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bace19a\",\n null\n \n)\n\ncomponent.options.__file = \"PageTitleBar.vue\"\nexport default component.exports","<template>\n <div class=\"qc-wrapper\" v-if=\"machine\">\n <page-title-bar :title=\"machine.name + ' Quality Control'\" :showBack=\"true\"/>\n <div class=\"description\"></div>\n <b-alert :show=\"message === null ? false : true\">\n {{ message }}\n </b-alert>\n <div class=\"description\" v-if=\"!plotsLoaded && !message\">Plots loading...</div>\n <div class=\"plots\" v-if=\"plotsLoaded\">\n <h5>Number of identifications</h5>\n <div :id=\"plots.bokeh_code.div.amount_peptides.elementid\"></div>\n <hr />\n <h5>Number of PSMs</h5>\n <div :id=\"plots.bokeh_code.div.amount_psms.elementid\"></div>\n <hr />\n <h5>Peptide precursor areas</h5>\n <div :id=\"plots.bokeh_code.div.precursorarea.elementid\"></div>\n <hr />\n <h5>PSM MSGFScore</h5>\n <div :id=\"plots.bokeh_code.div.msgfscore.elementid\"></div>\n <hr />\n <h5>Precursor error (ppm)</h5>\n <div :id=\"plots.bokeh_code.div.prec_error.elementid\"></div>\n <hr />\n <h5>Retention time (min)</h5>\n <div :id=\"plots.bokeh_code.div.rt.elementid\"></div>\n </div>\n </div>\n</template>\n\n<script>\nimport PageTitleBar from './PageTitleBar.vue';\nimport MachineService from '../services/MachineService';\nimport MachineQCService from '../services/MachineQCService';\n\n// import plot from '../../data/plot.json';\n\nexport default {\n name: 'MachineQC',\n components: {\n PageTitleBar,\n },\n props: ['machineId'],\n data() {\n return {\n message: null,\n machine: null,\n plots: {},\n plotsLoaded: false,\n };\n },\n async created() {\n try {\n this.machine = (await MachineService.machine(this.machineId)).data;\n if (this.machine.length === 0) {\n this.message = 'There are no machines.';\n } else if (!this.machine.kanteleId) {\n this.message = 'You have not provided a Kantele ID. No QC data can be fetched.';\n } else {\n this.loadPlots();\n }\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n methods: {\n async loadPlots() {\n try {\n this.plots = (await MachineQCService.getQCPlots(this.machine.kanteleId)).data;\n console.log(this.plots);\n // this.plots = plot;\n // eslint-disable-next-line no-eval\n eval(this.plots.bokeh_code.script);\n this.plotsLoaded = true;\n this.message = null;\n } catch (err) {\n if (err.response) {\n this.message = err.response.data.error;\n } else {\n this.message = 'No connection to the server. Please contact an admin.';\n }\n }\n },\n },\n};\n</script>\n\n<style scoped>\n.qc-wrapper {\n display: flex;\n flex-direction: column;\n height: 100vh;\n}\n\n.plots {\n overflow-y: scroll;\n}\n\nh5 {\n font-size: 1.1rem;\n font-weight: normal;\n}\n</style>\n","import Api from './Api';\n\nexport default {\n add(specifications) {\n return Api().post('/addmachine', specifications);\n },\n index() {\n return Api().get('/machines');\n },\n machine(machineId) {\n return Api().get(`/machine/${machineId}`);\n },\n update(machine) {\n return Api().put(`/updatemachine/${machine.id}`, machine);\n },\n deleteMachine(machineId) {\n return Api().delete(`deletemachine/${machineId}`);\n },\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=3105bf88&scoped=true&lang=css&\"","const axios = require('axios');\n\nconst Kantele = axios.create({\n baseURL: 'https://mozzarella.scilifelab.se/dash',\n});\n\nexport default {\n getQCPlots(kanteleId) {\n return Kantele.get(`/longqc/${kanteleId}`);\n },\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetails.vue?vue&type=style&index=0&id=2b2ddf46&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=5c6f1596&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/src/components/MachineQC.vue b/src/components/MachineQC.vue index ebcf979..7492039 100644 --- a/src/components/MachineQC.vue +++ b/src/components/MachineQC.vue @@ -7,22 +7,22 @@ </b-alert> <div class="description" v-if="!plotsLoaded && !message">Plots loading...</div> <div class="plots" v-if="plotsLoaded"> - <h5>Number of identifications</h5> + <h3>Number of identifications</h3> <div :id="plots.bokeh_code.div.amount_peptides.elementid"></div> <hr /> - <h5>Number of PSMs</h5> + <h3>Number of PSMs</h3> <div :id="plots.bokeh_code.div.amount_psms.elementid"></div> <hr /> - <h5>Peptide precursor areas</h5> + <h3>Peptide precursor areas</h3> <div :id="plots.bokeh_code.div.precursorarea.elementid"></div> <hr /> - <h5>PSM MSGFScore</h5> + <h3>PSM MSGFScore</h3> <div :id="plots.bokeh_code.div.msgfscore.elementid"></div> <hr /> - <h5>Precursor error (ppm)</h5> + <h3>Precursor error (ppm)</h3> <div :id="plots.bokeh_code.div.prec_error.elementid"></div> <hr /> - <h5>Retention time (min)</h5> + <h3>Retention time (min)</h3> <div :id="plots.bokeh_code.div.rt.elementid"></div> </div> </div> @@ -100,8 +100,8 @@ export default { overflow-y: scroll; } -h5 { - font-size: 1.1rem; +h3 { + font-size: 1.5rem; font-weight: normal; } </style>