{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?c650","webpack:///./src/App.vue?54db","webpack:///./src/components/NavigationDrawer.vue?5ae7","webpack:///./src/components/NavigationDrawer.vue","webpack:///./src/components/NavigationDrawer.vue?646e","webpack:///./src/components/NavigationDrawer.vue?6b9a","webpack:///./src/store/names/Auth.ts","webpack:///./src/views/Home.vue?8ef9","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?2d60","webpack:///./src/views/Home.vue?1e69","webpack:///./src/views/Login.vue?ff50","webpack:///./src/views/Login.vue","webpack:///./src/views/Login.vue?0a24","webpack:///./src/views/Login.vue?6fd0","webpack:///./src/views/ResetPassword.vue?655c","webpack:///./src/api/Users.ts","webpack:///./src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?bd65","webpack:///./src/views/ResetPassword.vue?ca09","webpack:///./src/views/SetPassword.vue?5dd8","webpack:///./src/mixins/ChangeUserInfo.ts","webpack:///./src/views/SetPassword.vue","webpack:///./src/views/SetPassword.vue?261f","webpack:///./src/views/SetPassword.vue?1185","webpack:///./src/views/Plan.vue?7480","webpack:///./src/mixins/TrainingPlanEntry.ts","webpack:///./src/api/TrainingPlan.ts","webpack:///./src/views/Plan.vue","webpack:///./src/views/Plan.vue?093f","webpack:///./src/views/Plan.vue?1cb8","webpack:///./src/views/Users.vue?870b","webpack:///./src/components/UserList.vue?6000","webpack:///./src/components/UserList.vue","webpack:///./src/components/UserList.vue?d425","webpack:///./src/components/UserList.vue?1a7b","webpack:///./src/components/InvitationList.vue?5df3","webpack:///./src/api/Invitations.ts","webpack:///./src/plugins/EventBus.ts","webpack:///./src/components/InvitationList.vue","webpack:///./src/components/InvitationList.vue?374f","webpack:///./src/components/InvitationList.vue?4ec2","webpack:///./src/components/NewInvitation.vue?ef6b","webpack:///./src/mixins/Invitation.ts","webpack:///./src/components/NewInvitation.vue","webpack:///./src/components/NewInvitation.vue?70a6","webpack:///./src/components/NewInvitation.vue?f874","webpack:///./src/components/Profile.vue?a73b","webpack:///./src/components/Profile.vue","webpack:///./src/components/Profile.vue?8d3e","webpack:///./src/components/Profile.vue?6f99","webpack:///./src/views/Users.vue","webpack:///./src/views/Users.vue?f1df","webpack:///./src/views/Users.vue?0a46","webpack:///./src/views/UserSetup.vue?1340","webpack:///./src/views/UserSetup.vue","webpack:///./src/views/UserSetup.vue?2826","webpack:///./src/views/UserSetup.vue?5b22","webpack:///./src/views/Log.vue?fec3","webpack:///./src/views/Log.vue","webpack:///./src/views/Log.vue?ac1d","webpack:///./src/views/Log.vue?f8cb","webpack:///./src/views/Groups.vue?9fd9","webpack:///./src/views/Groups.vue","webpack:///./src/views/Groups.vue?ae24","webpack:///./src/views/Groups.vue?78fd","webpack:///./src/views/Administration.vue?ea74","webpack:///./src/components/UploadExcel.vue?025f","webpack:///./src/components/UploadExcel.vue","webpack:///./src/components/UploadExcel.vue?02ec","webpack:///./src/components/UploadExcel.vue?a50a","webpack:///./src/components/ChangeRequestList.vue?99a7","webpack:///./src/components/ChangeRequestList.vue","webpack:///./src/components/ChangeRequestList.vue?7b80","webpack:///./src/components/ChangeRequestList.vue?f542","webpack:///./src/views/Administration.vue","webpack:///./src/views/Administration.vue?41da","webpack:///./src/views/Administration.vue?1d27","webpack:///./src/router/index.ts","webpack:///./src/plugins/axios.ts","webpack:///./src/store/modules/Auth.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?4195","webpack:///./src/plugins/vuetify.ts","webpack:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","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","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_vm","this","_h","$createElement","_c","_self","attrs","drawer","on","$event","staticClass","stopPropagation","_v","staticRenderFns","model","callback","$$v","showDrawer","expression","$store","getters","_e","includes","AUTH_ROLE","IS_AUTHED","dispatch","$emit","component","VIcon","VList","VListItem","VListItemAction","VListItemContent","VListItemTitle","VNavigationDrawer","AUTH_REQUEST_ACTION","AUTH_LOGOUT_ACTION","AUTH_REQUEST_MUT","AUTH_LOGOUT_MUT","AUTH_SUCCESS_MUT","AUTH_ERROR_MUT","AUTH_NAME_MUT","AUTH_ROLE_MUT","AUTH_STATUS","AUTH_TOKEN","AUTH_NAME","VCol","VContainer","VRow","ref","isLocal","rules","required","notWrong","type","indexOf","_k","keyCode","$refs","password","focus","username","show","login","wrong","isWrong","document","title","validate","then","redirect","$route","query","$router","path","catch","loginForm","VUE_APP_ENVIRONMENT_NAME","VBtn","VCard","VCardActions","VCardText","VCardTitle","VForm","VTextField","submit","email","reset","GetUsers","resp","GetTrainers","filter","u","roleName","GetRoles","SetUserRole","userId","put","SetUserEmail","headers","SetUserPhone","phone","SetUserComment","comment","ResetPassword","post","CheckResetCode","UseResetCode","info","fresh","block","resetForm","preventDefault","codeValid","resetCode","notErrored","password2","show2","isSame","valid","init","assign","errored","deployColor","deployLogo","enforceUsername","hasError","getPassword","console","log","params","VUE_APP_DEPLOY_COLOR","VUE_APP_DEPLOY_LOGO","class","isSmall","style","flexBasis","locations","selectedLocations","_s","goToday","goPrev","goNext","scopedSlots","_u","fn","_g","_b","typeToLabel","directives","rawName","left","right","move","touchMove","start","touchReset","transition","transform","swipe","shownEntries","showEvent","viewDay","event","durationMinutes","label","formatTime","end","staticStyle","maxHeight","overflow","date","week","first","top","getNowY","activeDate","openAddEntryDialog","editEntryDialog","editEntryAllowed","editEntryDialogIsAdd","editEntryDate","editEntryStartTime","editEntryEndTime","editEntryLocation","types","editEntryType","editEntryRepeatingWeekly","editEntryLabel","trainers","editEntryTrainer","editEntryPersons","editEntryHomes","persons","personsLegal","homes","homesLegal","exclusiveness","exclusivenessLegal","editEntryProcessing","editEntryLegal","updateEntry","isAdmin","editEntry","repeatingWeekly","deleteEntryLegal","deleteConfirm","deleteSingleConfirm","deleteEntryProcessing","deleteGroupConfirm1","formatDateTime","deleteEntry","removeSingleEntry","deleteGroupConfirm2","errorOccured","changeRequested","ready","personCount","homeCount","typeId","color","exclusive","locationId","locationName","sort","getEntries","addEntry","entry","delete","getChangeRequests","addChangeRequest","confirmChangeRequest","denyChangeRequest","getTypes","getLocations","getMine","uploadExcel","excel","listenToEntryChanges","connection","onAdd","onChanged","onRemoved","baseUrl","stopListeningToChanges","off","createConnection","logLevel","None","withUrl","accessTokenFactory","store","configureLogging","build","startedPromise","err","error","Promise","reject","setTimeout","onclose","entries","now","toFormat","removingSingleEntryProcessing","resizeObserver","addingEntriesAllowed","month","day","all","find","$nextTick","entryAdded","entryChanged","entryRemoved","showTitle","scrollToTime","ResizeObserver","onResize","observe","plan","setInterval","getCalendar","updateTimes","disconnect","Array","size","contentRect","width","height","clientWidth","calendar","time","times","hour","minute","Math","max","format","timeToY","idx","findIndex","set","entryId","checkEntry","startDate","fromFormat","toISO","includeOffset","suppressMilliseconds","endDate","overlappingEntries","reduce","sum","current","some","isRequest","selection","fromISO","next","prev","nextTick","touchEvent","moveX","touchmoveX","touchstartX","moveY","touchmoveY","touchstartY","abs","VCalendar","VDatePicker","VDialog","VMenu","VOverlay","VProgressCircular","VSelect","VSpacer","VSwitch","VTimePicker","VToolbar","VToolbarTitle","Touch","tab","_l","user","active","roles","changeRole","$set","changeEmail","changePhone","changeComment","users","VListItemGroup","invitation","getLink","arg","copyingLink","onCopyLink","proxy","deleteInvitation","GetInvitations","AddInvitation","DeleteInvitation","CheckInvitation","UseInvitation","SetInvitationRole","invitationId","SetInvitationComment","EventBus","invitations","loadInvitations","$on","$off","forEach","item","location","origin","enforceName","roleId","isDisabled","add","usernames","inProgress","setDefaultRole","loadUsers","VCheckbox","components","UserList","InvitationList","NewInvitation","Profile","VTab","VTabItem","VTabs","VTabsItems","invitationCode","search","onOptionsChanged","options","totalEntries","loading","itemsPerPageOptions","sortBy","sortDesc","text","page","items","count","VDataTable","groups","changeRequests","cr","group","weeklyGroups","main","formatWeeklyTime","skip","formatDate","singleGroups","singles","unmappedSkips","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","upload","response","content","VTextarea","rc","updated","confirm","deny","changeId","UploadExcel","ChangeRequestList","use","routes","SetPassword","router","base","beforeEach","to","from","matched","record","meta","requiresAuth","fullPath","instance","a","baseURL","localStorage","getItem","defaults","common","Authorization","interceptors","status","Auth","state","token","role","actions","loginData","commit","setItem","removeItem","mutations","Store","strict","observer","addEventListener","appHeight","doc","documentElement","setProperty","innerHeight","NavigationDrawer","VApp","VAppBar","VAppBarNavIcon","VFadeTransition","VMain","inIframe","self","theme","themes","dark","primary","secondary","accent","light","customProperties","lang","locales","de","config","productionTip","undefined","vuetify","render","h","$mount"],"mappings":"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","file":"js/app.e364c0a4.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(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && 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\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 = \"/\";\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","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../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=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../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=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',[_c('navigation-drawer',{attrs:{\"drawer\":_vm.drawer},on:{\"update:drawer\":function($event){_vm.drawer=$event}}}),_c('v-app-bar',{staticClass:\"primary\",attrs:{\"app\":\"\",\"clipped-left\":\"\",\"dark\":\"\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){$event.stopPropagation();_vm.drawer = !_vm.drawer}}}),_c('v-toolbar-title',[_vm._v(\"BSDC: Kalender\")])],1),_c('v-main',[_c('v-fade-transition',{attrs:{\"mode\":\"out-in\"}},[_c('router-view')],1)],1)],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('v-navigation-drawer',{attrs:{\"app\":\"\",\"clipped\":\"\",\"temporary\":\"\"},model:{value:(_vm.showDrawer),callback:function ($$v) {_vm.showDrawer=$$v},expression:\"showDrawer\"}},[_c('v-list',[_c('v-list-item',{attrs:{\"to\":\"/\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-home\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Home\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/plan\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-calendar\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Plan\")])],1)],1),(_vm.$store.getters.IS_AUTHED)?_c('v-list-item',{attrs:{\"to\":\"/mine\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-crosshairs-gps\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Meine Trainings\")])],1)],1):_vm._e(),(_vm.$store.getters.IS_AUTHED)?_c('v-list-item',{attrs:{\"to\":\"/users\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-account-multiple\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Benutzer\")])],1)],1):_vm._e(),(['Administrator', 'Editor'].includes(_vm.$store.getters.AUTH_ROLE))?_c('v-list-item',{attrs:{\"to\":\"/administration\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-cog\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Administration\")])],1)],1):_vm._e(),(!_vm.$store.getters.IS_AUTHED)?_c('v-list-item',{attrs:{\"to\":\"/login\"}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-login\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Login\")])],1)],1):_vm._e(),(_vm.$store.getters.IS_AUTHED)?_c('v-list-item',{staticClass:\"error\",on:{\"click\":function($event){return _vm.$store.dispatch('AUTH_LOGOUT_ACTION')}}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Logout\")])],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class NavigationDrawer extends Vue {\r\n @Prop() drawer!: boolean\r\n\r\n showDrawer = false\r\n\r\n @Watch('drawer')\r\n onDrawerChanged () {\r\n this.showDrawer = false\r\n this.showDrawer = true\r\n }\r\n\r\n @Watch('showDrawer')\r\n onShowDrawerChanged () {\r\n this.$emit('update: drawer', this.showDrawer)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=f0ca0ab2&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemTitle,VNavigationDrawer})\n","export const AUTH_REQUEST_ACTION = 'AUTH_REQUEST_ACTION'\r\nexport const AUTH_LOGOUT_ACTION = 'AUTH_LOGOUT_ACTION'\r\n\r\nexport const AUTH_REQUEST_MUT = 'AUTH_REQUEST_MUT'\r\nexport const AUTH_LOGOUT_MUT = 'AUTH_LOGOUT_MUT'\r\nexport const AUTH_SUCCESS_MUT = 'AUTH_SUCCESS_MUT'\r\nexport const AUTH_ERROR_MUT = 'AUTH_ERROR_MUT'\r\nexport const AUTH_NAME_MUT = 'AUTH_NAME_MUT'\r\nexport const AUTH_ROLE_MUT = 'AUTH_ROLE_MUT'\r\n\r\nexport const AUTH_STATUS = 'AUTH_STATUS'\r\nexport const IS_AUTHED = 'IS_AUTHED'\r\nexport const AUTH_TOKEN = 'AUTH_TOKEN'\r\nexport const AUTH_NAME = 'AUTH_NAME'\r\nexport const AUTH_ROLE = 'AUTH_ROLE'\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{staticClass:\"home scroll\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('p',[_vm._v(\"Herzlich Willkommen beim Kalender der Braunschweig Dance Company!\")]),_c('p',[_vm._v(\"Alle wichtigen News findest du auf \"),_c('a',{attrs:{\"href\":\"http://wp1.bsdc.de\"}},[_vm._v(\"Unserer Homepage\")]),_vm._v(\".\")]),_c('p',[_vm._v(\"Den Trainingsplan selbst findest du im \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-menu\")]),_vm._v(\" Menu unter \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-calendar\")]),_vm._v(\" Plan.\")],1),_c('p',[_vm._v(\"Falls du Trainer oder Admin bist, logge dich bitte im \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-menu\")]),_vm._v(\" Menu \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-login\")]),_vm._v(\" ein, um Änderungen vorzunehmen.\")],1)])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class Home extends Vue {\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=16f30f10&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"login\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',[_c('v-card',{staticClass:\"authenticate\"},[_c('v-form',{ref:\"loginForm\"},[_c('v-card-title',{staticClass:\"headline primary\"},[_vm._v(\"Login\")]),_c('v-card-text',[(_vm.isLocal())?_c('p',[_vm._v(\"Hint: Test login is \\\"name\\\" and \\\"test\\\"\")]):_vm._e(),_c('v-text-field',{ref:\"name\",attrs:{\"label\":\"Name\",\"rules\":[_vm.rules.required, _vm.rules.notWrong]},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password.focus()}},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{ref:\"password\",attrs:{\"label\":\"Password\",\"append-icon\":_vm.show ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.rules.required, _vm.rules.notWrong],\"type\":_vm.show ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.show = !_vm.show},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.login()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.login}},[_vm._v(\"Login\")])],1)],1)],1),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"to\":\"/resetPassword\"}},[_vm._v(\"Passwort zurücksetzen\")]),_c('v-btn',{staticClass:\"mt-4 ml-4\",attrs:{\"to\":\"/userSetup\"}},[_vm._v(\"Registrieren\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport LoginData from '@/mixins/LoginData'\r\nimport { AUTH_REQUEST_ACTION } from '@/store/names/Auth'\r\n\r\n@Component\r\nexport default class Login extends Vue {\r\n username = ''\r\n password = ''\r\n show = false\r\n wrong = false\r\n\r\n rules = {\r\n required: (value: string) => !!value || 'Benötigt',\r\n notWrong: () => !this.isWrong() || 'Name oder Password falsch'\r\n }\r\n\r\n public mounted () {\r\n document.title = 'Login'\r\n }\r\n\r\n login () {\r\n if (!this.validate()) {\r\n return\r\n }\r\n this.$store\r\n .dispatch(AUTH_REQUEST_ACTION, {\r\n username: this.username,\r\n password: this.password\r\n } as LoginData)\r\n .then(() => {\r\n const redirect = this.$route.query.redirect as string\r\n this.$router.push({ path: redirect || '/plan' })\r\n })\r\n .catch(() => {\r\n this.wrong = true\r\n this.validate()\r\n this.wrong = false\r\n })\r\n }\r\n\r\n isWrong (): boolean {\r\n return this.wrong\r\n }\r\n\r\n validate (): boolean {\r\n return (this.$refs.loginForm as any).validate()\r\n }\r\n\r\n isLocal (): boolean {\r\n return process.env.VUE_APP_ENVIRONMENT_NAME === 'local'\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=b281b64e&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"resetPassword\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',[(_vm.fresh)?_c('v-card',{staticClass:\"authenticate\"},[_c('v-form',{ref:\"resetForm\",on:{\"submit\":_vm.submit}},[_c('v-card-title',{staticClass:\"headline primary\"},[_vm._v(\"Passwort zurücksetzen\")]),_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":\"Email\",\"rules\":[_vm.rules.required, _vm.rules.notWrong]},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('v-card-actions',[_c('v-btn',{ref:\"resetBtn\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.reset}},[_vm._v(\"Passwort zurücksetzen\")])],1)],1)],1):_c('p',[_vm._v(\" Wir haben einen Link zum zurücksetzen des Passworts an die Email versendet. Bitte im Zweifelsfall den Spamordner checken.\"),_c('br'),_vm._v(\" Der Link für 5 Minuten gültig. \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@/plugins/axios'\r\nimport User from '@/mixins/User'\r\nimport Role from '@/mixins/Role'\r\nimport ChangeUserInfo from '@/mixins/ChangeUserInfo'\r\n\r\nexport async function GetUsers (): Promise {\r\n const resp = await axios\r\n .get('users')\r\n return resp.data\r\n}\r\n\r\nexport async function GetTrainers (): Promise {\r\n return (await GetUsers())\r\n .filter(u => ['Administrator', 'Editor'].includes(u.roleName))\r\n}\r\n\r\nexport async function GetRoles (): Promise {\r\n const resp = await axios\r\n .get('users/roles')\r\n return resp.data\r\n}\r\n\r\nexport async function SetUserRole (userId: string, roleName: string): Promise {\r\n return axios\r\n .put(`users/${userId}/role/${roleName}`)\r\n}\r\n\r\nexport async function SetUserEmail (userId: string, email: string): Promise {\r\n return axios\r\n .put(`users/${userId}/email`, `\"${email}\"`, { headers: { 'Content-Type': 'application/json' } })\r\n}\r\n\r\nexport async function SetUserPhone (userId: string, phone: string): Promise {\r\n return axios\r\n .put(`users/${userId}/phone`, `\"${phone}\"`, { headers: { 'Content-Type': 'application/json' } })\r\n}\r\n\r\nexport async function SetUserComment (userId: string, comment: string): Promise {\r\n return axios\r\n .put(`users/${userId}/comment`, `\"${comment}\"`, { headers: { 'Content-Type': 'application/json' } })\r\n}\r\n\r\nexport async function ResetPassword (email: string): Promise {\r\n return axios\r\n .post(`users/passwordReset/${email}`, { headers: { 'Content-Type': 'application/json' } })\r\n}\r\n\r\nexport async function CheckResetCode (code: string): Promise {\r\n const resp = await axios.get(`users/checkResetcode/${code}`)\r\n return resp.data\r\n}\r\n\r\nexport async function UseResetCode (code: string, info: ChangeUserInfo): Promise {\r\n axios.post(`users/useResetCode/${code}`, info)\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport { ResetPassword } from '@/api/Users'\r\n\r\n@Component\r\nexport default class ResetPasswordView extends Vue {\r\n email = ''\r\n show = false\r\n wrong = false\r\n fresh = true\r\n block = false\r\n\r\n rules = {\r\n required: (value: string) => !!value || 'Benötigt',\r\n notWrong: () => !this.isWrong() || 'Email falsch oder gerade angefordert'\r\n }\r\n\r\n public mounted () {\r\n document.title = 'Login'\r\n }\r\n\r\n reset () {\r\n if (this.block) {\r\n return\r\n }\r\n if (!this.validate()) {\r\n return\r\n }\r\n this.block = true\r\n ResetPassword(this.email)\r\n .then(() => {\r\n this.fresh = false\r\n })\r\n .catch(() => {\r\n this.wrong = true\r\n this.validate()\r\n this.wrong = false\r\n })\r\n this.block = false\r\n }\r\n\r\n isWrong (): boolean {\r\n return this.wrong\r\n }\r\n\r\n validate (): boolean {\r\n return (this.$refs.resetForm as any).validate()\r\n }\r\n\r\n submit (e: Event) {\r\n e.preventDefault()\r\n this.reset()\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=354989bb&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"login\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',[_c('v-card',{staticClass:\"authenticate\"},[_c('v-form',{ref:\"loginForm\"},[_c('v-card-title',{staticClass:\"headline primary\"},[_vm._v(\"Passwort ändern\")]),_c('v-card-text',[_c('v-text-field',{ref:\"code\",attrs:{\"label\":\"Code\",\"autocomplete\":\"one-time-code\",\"rules\":[_vm.rules.required, _vm.rules.codeValid]},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password.focus()}},model:{value:(_vm.resetCode),callback:function ($$v) {_vm.resetCode=$$v},expression:\"resetCode\"}}),_c('v-text-field',{ref:\"name\",attrs:{\"label\":\"Name\",\"readonly\":\"\",\"rules\":[_vm.rules.required, _vm.rules.notErrored]},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password.focus()}},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{ref:\"password\",attrs:{\"label\":\"Password\",\"append-icon\":_vm.show ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.rules.required, _vm.rules.notErrored],\"type\":_vm.show ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.show = !_vm.show},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password2.focus()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('v-text-field',{ref:\"password2\",attrs:{\"label\":\"Repeat Password\",\"append-icon\":_vm.show2 ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.rules.required, _vm.rules.notErrored, _vm.rules.isSame],\"type\":_vm.show2 ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.show2 = !_vm.show2},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.create()}},model:{value:(_vm.password2),callback:function ($$v) {_vm.password2=$$v},expression:\"password2\"}})],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"success\",attrs:{\"outlined\":\"\",\"disabled\":!_vm.valid},on:{\"click\":_vm.create}},[_vm._v(\"Passwort ändern\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class ChangeUserInfo {\r\n name = ''\r\n password = ''\r\n constructor (init?: Partial) {\r\n Object.assign(this, init)\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport ChangeUserInfo from '@/mixins/ChangeUserInfo'\r\nimport { CheckResetCode, UseResetCode } from '@/api/Users'\r\n\r\n@Component\r\nexport default class SetPasswordView extends Vue {\r\n username = ''\r\n password = ''\r\n password2 = ''\r\n resetCode = ''\r\n codeValid = true\r\n show = false\r\n show2 = false\r\n errored = false\r\n valid = true\r\n deployColor = 'transparent' as string | null\r\n deployLogo = null as string | null\r\n enforceUsername = false\r\n\r\n rules = {\r\n codeValid: (value: string) => this.codeValid || 'Code nicht gültig',\r\n required: (value: string) => !!value || 'Benötigt',\r\n notErrored: () => !this.hasError() || 'Fehler',\r\n isSame: (value: string) => {\r\n return value === this.getPassword() || 'Passwörter stimmen nicht überein'\r\n }\r\n }\r\n\r\n async mounted () {\r\n console.log('hey', this.$route.params.resetCode)\r\n this.deployColor = process.env.VUE_APP_DEPLOY_COLOR ?? null\r\n this.deployLogo = process.env.VUE_APP_DEPLOY_LOGO ?? null\r\n this.resetCode = this.$route.params.resetCode\r\n if (this.resetCode) {\r\n this.username = await CheckResetCode(this.resetCode)\r\n this.codeValid = !!this.username\r\n } else {\r\n this.codeValid = false\r\n }\r\n }\r\n\r\n async create () {\r\n if (!this.validate()) {\r\n return\r\n }\r\n await UseResetCode(this.resetCode, new ChangeUserInfo({\r\n password: this.password\r\n })).catch(() => {\r\n this.errored = true\r\n this.validate()\r\n this.errored = false\r\n })\r\n this.$router.push({ path: '/login' })\r\n }\r\n\r\n validate (): boolean {\r\n return (this.$refs.loginForm as any).validate()\r\n }\r\n\r\n getPassword (): string {\r\n return this.password\r\n }\r\n\r\n hasError (): boolean {\r\n return this.errored\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetPassword.vue?vue&type=template&id=5f500f3f&\"\nimport script from \"./SetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetPassword.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{ref:\"plan\",staticClass:\"plan\",attrs:{\"fluid\":\"\"}},[_c('v-toolbar',{staticClass:\"less-inner-padding\",class:{\n isSmall: _vm.isSmall ? 'isSmall' : '',\n },attrs:{\"flat\":\"\"}},[_c('v-select',{staticClass:\"roomSelect allow-shrink mr-2 no-select-wrap\",style:({\n flexBasis: '188px',\n }),attrs:{\"multiple\":\"\",\"items\":_vm.locations,\"item-value\":\"id\",\"item-text\":\"name\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"no-data-text\":\"…\"},model:{value:(_vm.selectedLocations),callback:function ($$v) {_vm.selectedLocations=$$v},expression:\"selectedLocations\"}}),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-btn',{staticClass:\"ml-2 allow-shrink text-none\",attrs:{\"outlined\":\"\"},on:{\"click\":function($event){return _vm.goToday()}}},[_vm._v(\"Heute\")]),_c('div',[_c('v-btn',{staticClass:\"ml-2 allow-shrink\",attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.goPrev()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-chevron-left \")])],1),_c('v-btn',{staticClass:\"ml-2 allow-shrink\",attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.goNext()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1),_c('v-spacer'),_c('v-menu',{attrs:{\"bottom\":\"\",\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"allow-shrink text-none\",attrs:{\"outlined\":\"\"}},'v-btn',attrs,false),on),[_c('span',[_vm._v(_vm._s(_vm.typeToLabel[_vm.type]))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'day'}}},[_c('v-list-item-title',[_vm._v(\"Tag\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'week'}}},[_c('v-list-item-title',[_vm._v(\"Woche\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'month'}}},[_c('v-list-item-title',[_vm._v(\"Monat\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.type = '4day'}}},[_c('v-list-item-title',[_vm._v(\"4 Tage\")])],1)],1)],1)],1),_c('v-calendar',{directives:[{name:\"touch\",rawName:\"v-touch\",value:({\n left: _vm.goNext,\n right: _vm.goPrev,\n move: _vm.touchMove,\n start: _vm.touchReset\n }),expression:\"{\\n left: goNext,\\n right: goPrev,\\n move: touchMove,\\n start: touchReset\\n }\"}],ref:\"calendar\",style:({\n transition: 'transform 0.2s',\n transform: (\"translateX(\" + _vm.swipe + \"px)\")\n }),attrs:{\"weekdays\":[1, 2, 3, 4, 5, 6, 0],\"type\":_vm.type,\"first-interval\":8,\"interval-minutes\":60,\"interval-count\":15,\"events\":_vm.shownEntries,\"event-name\":\"displayText\"},on:{\"click:event\":_vm.showEvent,\"click:more\":_vm.viewDay,\"click:date\":_vm.viewDay},scopedSlots:_vm._u([{key:\"event\",fn:function(ref){\n var event = ref.event;\nreturn [(event.durationMinutes >= 90)?_c('div',{staticClass:\"pl-1\"},[(event.label)?_c('strong',[_vm._v(_vm._s(event.label)),_c('br')]):_vm._e(),(event.username)?_c('strong',[_vm._v(_vm._s(event.username)),_c('br')]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.formatTime(event.start))+\"–\"+_vm._s(_vm.formatTime(event.end))+\" \")]):_c('div',{staticClass:\"pl-1\",staticStyle:{\"white-space\":\"normal\"}},[_c('div',{style:({ maxHeight: event.durationMinutes * 0.8 - 18 + 'px', overflow: 'hidden' })},[_c('strong',[(event.label)?_c('span',[_vm._v(_vm._s(event.label))]):_vm._e(),(event.label && event.username)?_c('span',[(event.durationMinutes >= 90)?[_c('br')]:[_vm._v(\", \")]],2):_vm._e(),(event.username)?_c('span',[_vm._v(_vm._s(event.username))]):_vm._e()])]),_vm._v(\" \"+_vm._s(_vm.formatTime(event.start))+\"–\"+_vm._s(_vm.formatTime(event.end))+\" \")])]}},{key:\"day-body\",fn:function(ref){\n var date = ref.date;\n var week = ref.week;\nreturn [_c('div',{staticClass:\"v-current-time\",class:{ first: date === week[0].date },style:({ top: _vm.getNowY() })})]}}]),model:{value:(_vm.activeDate),callback:function ($$v) {_vm.activeDate=$$v},expression:\"activeDate\"}}),_c('v-dialog',{attrs:{\"max-width\":\"980\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [(_vm.$store.getters.AUTH_STATUS === 'success')?_c('v-btn',_vm._g(_vm._b({staticClass:\"primary\",attrs:{\"fab\":\"\",\"large\":\"\",\"fixed\":\"\",\"bottom\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.openAddEntryDialog()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-plus\")])],1):_vm._e()]}}]),model:{value:(_vm.editEntryDialog),callback:function ($$v) {_vm.editEntryDialog=$$v},expression:\"editEntryDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"primary\"},[_vm._v(_vm._s(_vm.editEntryAllowed ? _vm.editEntryDialogIsAdd ? \"Eintrag hinzufügen\" : \"Eintrag editieren\" : \"Details\"))]),_c('v-card-text',[_c('v-row',{attrs:{\"justify\":\"space-between\",\"align\":\"stretch\"}},[_c('v-col',{staticClass:\"d-flex flex-column justify-space-between mt-4\"},[_c('span',{staticClass:\"text-h4\"},[_vm._v(\"Datum\")]),_c('v-date-picker',{attrs:{\"first-day-of-week\":1,\"readonly\":!_vm.editEntryAllowed,\"prev-month-aria-label\":\"Vorheriger Monat\",\"next-month-aria-label\":\"Nächster Monat\"},model:{value:(_vm.editEntryDate),callback:function ($$v) {_vm.editEntryDate=$$v},expression:\"editEntryDate\"}})],1),_c('v-col',{staticClass:\"d-flex flex-column justify-space-between mt-4\"},[_c('span',{staticClass:\"text-h4\"},[_vm._v(\"Start\")]),_c('v-time-picker',{attrs:{\"format\":\"24hr\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryStartTime),callback:function ($$v) {_vm.editEntryStartTime=$$v},expression:\"editEntryStartTime\"}})],1),_c('v-col',{staticClass:\"d-flex flex-column justify-space-between mt-4\"},[_c('span',{staticClass:\"text-h4\"},[_vm._v(\"Ende\")]),_c('v-time-picker',{attrs:{\"format\":\"24hr\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryEndTime),callback:function ($$v) {_vm.editEntryEndTime=$$v},expression:\"editEntryEndTime\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Saal\")]),_c('v-col',[_c('v-select',{staticClass:\"flex-grow-0\",attrs:{\"items\":_vm.locations,\"no-data-text\":\"Kein Saal gefunden!\",\"item-text\":\"name\",\"hide-details\":\"\",\"dense\":\"\",\"solo\":\"\",\"return-object\":\"\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryLocation),callback:function ($$v) {_vm.editEntryLocation=$$v},expression:\"editEntryLocation\"}})],1)],1),(['Administrator', 'Editor'].includes(_vm.$store.getters.AUTH_ROLE))?_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Typ\")]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.types,\"no-data-text\":\"Keine Termintypen gefunden!\",\"item-text\":\"name\",\"hide-details\":\"\",\"dense\":\"\",\"solo\":\"\",\"return-object\":\"\"},model:{value:(_vm.editEntryType),callback:function ($$v) {_vm.editEntryType=$$v},expression:\"editEntryType\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[(_vm.editEntryType && _vm.editEntryType.name==='Gruppentraining')?_c('v-switch',{staticClass:\"no-margin\",attrs:{\"label\":\"Wöchentlich\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryRepeatingWeekly),callback:function ($$v) {_vm.editEntryRepeatingWeekly=$$v},expression:\"editEntryRepeatingWeekly\"}}):_vm._e()],1)],1):_vm._e(),(_vm.editEntryType && _vm.editEntryType.name==='Gruppentraining')?_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Gruppe\")]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"solo\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryLabel),callback:function ($$v) {_vm.editEntryLabel=$$v},expression:\"editEntryLabel\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{staticClass:\"no-margin ml-4\",attrs:{\"items\":_vm.trainers,\"no-data-text\":\"Keine Trainer gefunden!\",\"label\":\"Trainer\",\"item-text\":\"name\",\"return-object\":\"\",\"solo\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":!_vm.editEntryAllowed},model:{value:(_vm.editEntryTrainer),callback:function ($$v) {_vm.editEntryTrainer=$$v},expression:\"editEntryTrainer\"}})],1)],1):_vm._e(),(_vm.editEntryType && _vm.editEntryType.name!=='Gruppentraining' && _vm.editEntryAllowed)?_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Personen\")]),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"8\"}},[_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.editEntryPersons -= 1}}},[_c('v-icon',[_vm._v(\"mdi-minus\")])],1),_c('span',{staticClass:\"text-h4 mx-2\"},[_vm._v(_vm._s(_vm.editEntryPersons))]),_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.editEntryPersons += 1}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1)],1)],1):_vm._e(),(_vm.editEntryType && _vm.editEntryType.name!=='Gruppentraining' && _vm.editEntryAllowed)?_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Haushalte\")]),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"8\"}},[_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.editEntryHomes -= 1}}},[_c('v-icon',[_vm._v(\"mdi-minus\")])],1),_c('span',{staticClass:\"text-h4 mx-2\"},[_vm._v(_vm._s(_vm.editEntryHomes))]),_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.editEntryHomes += 1}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1)],1)],1):_vm._e(),(_vm.editEntryAllowed)?_c('v-row',[_c('v-col',{staticClass:\"text-h4 text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(\"Checks\")]),_c('v-col',{staticClass:\"pa-8\"},[(_vm.editEntryType && _vm.editEntryType.name!=='Gruppentraining')?_c('v-row',[_c('span',[_c('span',[_vm._v(\"Andere Personen im Saal: \"+_vm._s(_vm.persons))]),(_vm.personsLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"green\"}},[_vm._v(\"mdi-check\")]):_vm._e(),(!_vm.personsLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-close\")]):_vm._e()],1)]):_vm._e(),(_vm.editEntryType && _vm.editEntryType.name!=='Gruppentraining')?_c('v-row',[_c('span',[_c('span',[_vm._v(\"Andere Haushalte im Saal: \"+_vm._s(_vm.homes))]),(_vm.homesLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"green\"}},[_vm._v(\"mdi-check\")]):_vm._e(),(!_vm.homesLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-close\")]):_vm._e()],1)]):_vm._e(),_c('v-row',[_c('span',[_c('span',[_vm._v(\"Saal durch Veranstaltung blockiert: \"+_vm._s(_vm.exclusiveness ? \"ja\" : \"nein\"))]),(_vm.exclusivenessLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"green\"}},[_vm._v(\"mdi-check\")]):_vm._e(),(!_vm.exclusivenessLegal)?_c('v-icon',{staticClass:\"ml-2 mb-1\",attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-close\")]):_vm._e()],1)])],1)],1):_vm._e()],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"loading\":_vm.editEntryProcessing,\"disabled\":!_vm.editEntryLegal,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.updateEntry()}}},[_vm._v(\" \"+_vm._s(_vm.editEntryDialogIsAdd ? \"Hinzufügen\" : \"Editieren\")+_vm._s(_vm.editEntryType && _vm.editEntryType.name === \"Gruppentraining\" && !_vm.isAdmin() ? \" anfragen\" : \"\")+\" \")]),(_vm.editEntry && !_vm.editEntry.repeatingWeekly)?_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing,\"disabled\":!_vm.deleteEntryLegal},on:{\"click\":function($event){_vm.deleteConfirm = true}}},[_vm._v(\"Löschen\")]):_vm._e(),(_vm.editEntry && _vm.editEntry.repeatingWeekly)?_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing,\"disabled\":!_vm.deleteEntryLegal},on:{\"click\":function($event){_vm.deleteSingleConfirm = true}}},[_vm._v(\"Einzelnen Termin löschen\")]):_vm._e(),(_vm.editEntry && _vm.editEntry.repeatingWeekly)?_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.deleteEntryProcessing,\"disabled\":!_vm.deleteEntryLegal},on:{\"click\":function($event){_vm.deleteGroupConfirm1 = true}}},[_vm._v(\"Komplette Gruppe löschen\")]):_vm._e(),_c('v-btn',{on:{\"click\":function($event){_vm.editEntryDialog = false}}},[_vm._v(\"Close\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.deleteConfirm),callback:function ($$v) {_vm.deleteConfirm=$$v},expression:\"deleteConfirm\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"error\"},[_vm._v(\"Einzelnen Termin löschen\")]),(_vm.deleteConfirm)?_c('v-card-text',{staticClass:\"mt-4\"},[_vm._v(\"Möchtest du wirklich den Termin \"+_vm._s(_vm.editEntry.label)+\" am \"+_vm._s(_vm.formatDateTime(_vm.editEntry.start))+\" löschen?\")]):_vm._e(),_c('v-card-actions',[_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing},on:{\"click\":function($event){return _vm.deleteEntry()}}},[_vm._v(\"Löschen\")]),_c('v-btn',{on:{\"click\":function($event){_vm.deleteConfirm = false}}},[_vm._v(\"Abbrechen\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.deleteSingleConfirm),callback:function ($$v) {_vm.deleteSingleConfirm=$$v},expression:\"deleteSingleConfirm\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"error\"},[_vm._v(\"Einzelnen Termin löschen\")]),(_vm.deleteSingleConfirm)?_c('v-card-text',{staticClass:\"mt-4\"},[_vm._v(\"Möchtest du wirklich die Gruppe \"+_vm._s(_vm.editEntry.label)+\" am \"+_vm._s(_vm.formatDateTime(_vm.editEntry.start))+\" löschen?\")]):_vm._e(),_c('v-card-actions',[_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing},on:{\"click\":function($event){return _vm.removeSingleEntry()}}},[_vm._v(\"Löschen\")]),_c('v-btn',{on:{\"click\":function($event){_vm.deleteSingleConfirm = false}}},[_vm._v(\"Abbrechen\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.deleteGroupConfirm1),callback:function ($$v) {_vm.deleteGroupConfirm1=$$v},expression:\"deleteGroupConfirm1\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"error\"},[_vm._v(\"Komplette Gruppe löschen\")]),(_vm.deleteGroupConfirm1)?_c('v-card-text',{staticClass:\"mt-4\"},[_vm._v(\"Möchtest du wirklich die Gruppe \"+_vm._s(_vm.editEntry.label)+\" \"),_c('b',[_vm._v(\"komplett\")]),_vm._v(\" löschen?\")]):_vm._e(),_c('v-card-actions',[_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing},on:{\"click\":function($event){_vm.deleteGroupConfirm1 = false; _vm.deleteGroupConfirm2 = true}}},[_vm._v(\"Löschen\")]),_c('v-btn',{on:{\"click\":function($event){_vm.deleteGroupConfirm1 = false}}},[_vm._v(\"Abbrechen\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.deleteGroupConfirm2),callback:function ($$v) {_vm.deleteGroupConfirm2=$$v},expression:\"deleteGroupConfirm2\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"error\"},[_vm._v(\"Komplette Gruppe löschen\")]),(_vm.deleteGroupConfirm2)?_c('v-card-text',{staticClass:\"mt-4\"},[_c('b',[_vm._v(\"Wirklich ganz ganz sicher?\")])]):_vm._e(),_c('v-card-actions',[_c('v-btn',{staticClass:\"error\",attrs:{\"loading\":_vm.editEntryProcessing},on:{\"click\":function($event){return _vm.deleteEntry()}}},[_vm._v(\"Löschen\")]),_c('v-btn',{on:{\"click\":function($event){_vm.deleteGroupConfirm2 = false}}},[_vm._v(\"Abbrechen\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.errorOccured),callback:function ($$v) {_vm.errorOccured=$$v},expression:\"errorOccured\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"error\"},[_vm._v(\"Fehler\")]),_c('v-card-text',{staticClass:\"mt-4\"},[_vm._v(\"Leider ist ein Fehler aufgetreten.\"),_c('br'),_vm._v(\"Bitte neu probieren und auch aus-/einloggen und neu probieren versuchen.\"),_c('br'),_vm._v(\"Falls es dann immer noch nicht funktioniert, kontaktiert uns!\")]),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.errorOccured = false}}},[_vm._v(\"Okay\")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"800\"},model:{value:(_vm.changeRequested),callback:function ($$v) {_vm.changeRequested=$$v},expression:\"changeRequested\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"success\"},[_vm._v(\"Anfrage gestellt\")]),_c('v-card-text',{staticClass:\"mt-4\"},[_vm._v(\"Die Änderungsanfrage wurde an die Admins verschickt. Bitte etwas Geduld 😊\"),_c('br'),_vm._v(\"Deine aktuellen Anfragen kannst du unter \\\"Meine Gruppen\\\" im Menü sehen.\")]),_c('v-card-actions',[_c('v-btn',{on:{\"click\":function($event){_vm.changeRequested = false}}},[_vm._v(\"Verstanden\")])],1)],1)],1),_c('v-overlay',{attrs:{\"absolute\":\"\",\"value\":!_vm.ready}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"64\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class TrainingPlanEntry {\r\n id: string | null = null\r\n start = ''\r\n end = ''\r\n durationMinutes = 0\r\n personCount = 0\r\n homeCount = 0\r\n label = ''\r\n username = ''\r\n userId = ''\r\n typeId = ''\r\n color = ''\r\n repeatingWeekly = false\r\n exclusive = false\r\n locationId = ''\r\n locationName = ''\r\n sort = 0\r\n constructor (init?: Partial) {\r\n Object.assign(this, init)\r\n }\r\n}\r\n","import { HubConnection, HubConnectionBuilder, LogLevel } from '@microsoft/signalr'\r\nimport store from '@/store'\r\nimport { AUTH_TOKEN } from '@/store/names/Auth'\r\nimport TrainingPlanEntry from '@/mixins/TrainingPlanEntry'\r\nimport axios from '@/plugins/axios'\r\nimport TrainingPlanEntryType from '@/mixins/TrainingPlanEntryType'\r\nimport Location from '@/mixins/Location'\r\nimport MyGroups from '@/mixins/MyGroups'\r\nimport Excel from '@/mixins/Excel'\r\nimport RequestComparison from '@/mixins/RequestComparison'\r\n\r\nexport function getEntries (): Promise {\r\n return axios\r\n .get('trainingPlan')\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function addEntry (entry: TrainingPlanEntry): Promise {\r\n return axios\r\n .post('trainingPlan', entry)\r\n}\r\n\r\nexport function editEntry (entry: TrainingPlanEntry): Promise {\r\n return axios\r\n .put('trainingPlan', entry)\r\n}\r\n\r\nexport function deleteEntry (id: string): Promise {\r\n return axios\r\n .delete(`trainingPlan/${id}`)\r\n}\r\n\r\nexport function getChangeRequests (): Promise {\r\n return axios\r\n .get('trainingPlan/requests')\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function addChangeRequest (entry: TrainingPlanEntry): Promise {\r\n return axios\r\n .post('trainingPlan/request', entry)\r\n}\r\n\r\nexport function confirmChangeRequest (id: string): Promise {\r\n console.log('hi', id)\r\n return axios\r\n .post(`trainingPlan/confirm/${id}`)\r\n}\r\n\r\nexport function denyChangeRequest (id: string): Promise {\r\n return axios\r\n .post(`trainingPlan/deny/${id}`)\r\n}\r\n\r\nexport function getTypes (): Promise {\r\n return axios\r\n .get('types')\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function getLocations (): Promise {\r\n return axios\r\n .get('locations')\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function getMine (): Promise {\r\n return axios\r\n .get('trainingplan/mine')\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function uploadExcel (excel: Excel): Promise {\r\n return axios\r\n .post('trainingplan/uploadExcel', excel)\r\n .then(resp => resp.data)\r\n}\r\n\r\nexport function listenToEntryChanges (\r\n connection: HubConnection,\r\n onAdd: (added: TrainingPlanEntry) => void,\r\n onChanged: (changed: TrainingPlanEntry) => void,\r\n onRemoved: (removedId: string) => void\r\n) {\r\n connection.on('TrainingPlanEntryAdded', onAdd)\r\n connection.on('TrainingPlanEntryChanged', onChanged)\r\n connection.on('TrainingPlanEntryRemoved', onRemoved)\r\n console.log('🐵 Listening on ', connection.baseUrl)\r\n}\r\n\r\nexport function stopListeningToChanges (connection: HubConnection) {\r\n connection.off('TrainingPlanEntryAdded')\r\n connection.off('TrainingPlanEntryChanged')\r\n connection.off('TrainingPlanEntryRemoved')\r\n console.log('🙉 stopped listening on', connection.baseUrl)\r\n}\r\n\r\nexport function createConnection (): HubConnection {\r\n const logLevel = LogLevel.None\r\n const connection = new HubConnectionBuilder()\r\n .withUrl(process.env.VUE_APP_API_URL + 'trainingplan-hub', {\r\n accessTokenFactory: () => {\r\n return store.getters[AUTH_TOKEN]\r\n }\r\n })\r\n .configureLogging(logLevel)\r\n .build()\r\n\r\n let startedPromise = null\r\n function start () {\r\n startedPromise = connection.start().catch(err => {\r\n console.error('Failed to connect with hub', err)\r\n return new Promise((resolve, reject) =>\r\n setTimeout(() => start().then(resolve).catch(reject), 5000))\r\n })\r\n return startedPromise\r\n }\r\n connection.onclose(() => start())\r\n\r\n start()\r\n return connection\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator'\r\nimport { DateTime } from 'luxon'\r\nimport TrainingPlanEntry from '@/mixins/TrainingPlanEntry'\r\nimport { createConnection, getEntries, addEntry, stopListeningToChanges, listenToEntryChanges, editEntry, deleteEntry, getTypes, getLocations, addChangeRequest } from '@/api/TrainingPlan'\r\nimport { HubConnection } from '@microsoft/signalr'\r\nimport TrainingPlanEntryType from '@/mixins/TrainingPlanEntryType'\r\nimport User from '@/mixins/User'\r\nimport { GetTrainers } from '@/api/Users'\r\nimport Location from '@/mixins/Location'\r\nimport moment from 'moment'\r\n\r\n@Component\r\nexport default class Plan extends Vue {\r\n entries: TrainingPlanEntry[] = []\r\n shownEntries: TrainingPlanEntry[] = []\r\n types: TrainingPlanEntryType[] = []\r\n locations: Location[] = []\r\n selectedLocations: string[] = []\r\n editEntry: TrainingPlanEntry | null = null\r\n editEntryDialog = false\r\n editEntryDialogIsAdd = true\r\n editEntryDate = DateTime.now().toFormat('yyyy-LL-dd')\r\n editEntryStartTime = DateTime.now().toFormat('HH:mm')\r\n editEntryEndTime = DateTime.now().toFormat('HH:mm')\r\n editEntryType: TrainingPlanEntryType | null = null\r\n editEntryTrainer: User | null = null\r\n editEntryLabel = ''\r\n editEntryRepeatingWeekly = false\r\n editEntryPersons = 2\r\n editEntryHomes = 1\r\n editEntryLocation: Location | null = null\r\n editEntryProcessing = false\r\n editEntryLegal = true\r\n editEntryAllowed = false\r\n deleteEntryLegal = true\r\n deleteEntryProcessing = false\r\n removingSingleEntryProcessing = false\r\n connection: HubConnection | null = null\r\n activeDate = ''\r\n type = 'week'\r\n title = ''\r\n persons = 0\r\n personsLegal = true\r\n homes = 0\r\n homesLegal = true\r\n exclusiveness = false\r\n exclusivenessLegal = true\r\n trainers: User[] = []\r\n resizeObserver: ResizeObserver | null = null\r\n isSmall = false\r\n addingEntriesAllowed = false\r\n ready = false\r\n swipe = 0\r\n changeRequested = false\r\n errorOccured = false\r\n deleteConfirm = false\r\n deleteSingleConfirm = false\r\n deleteGroupConfirm1 = false\r\n deleteGroupConfirm2 = false\r\n typeToLabel = {\r\n month: 'Monat',\r\n week: 'Woche',\r\n day: 'Tag',\r\n '4day': '4 Tage'\r\n }\r\n\r\n async mounted () {\r\n [this.entries, this.types, this.trainers, this.locations] = await Promise.all([\r\n getEntries(), getTypes(), GetTrainers(), getLocations()\r\n ])\r\n this.editEntryType = this.types.find(t => t.name === 'Freies Training') ?? null\r\n this.selectedLocations = this.locations.map(l => l.id)\r\n await this.$nextTick()\r\n this.ready = true\r\n this.connection = createConnection()\r\n listenToEntryChanges(this.connection, this.entryAdded, this.entryChanged, this.entryRemoved)\r\n this.showTitle()\r\n this.scrollToTime()\r\n this.resizeObserver = new ResizeObserver(this.onResize)\r\n this.resizeObserver.observe(this.$refs.plan as Element)\r\n setInterval(() => this.getCalendar()?.updateTimes(), 60 * 1000)\r\n }\r\n\r\n beforeDestroy () {\r\n if (this.resizeObserver !== null) {\r\n this.resizeObserver.disconnect()\r\n }\r\n if (this.connection) {\r\n stopListeningToChanges(this.connection)\r\n }\r\n }\r\n\r\n onResize (entries: any[]) {\r\n if (entries instanceof Array) {\r\n if (!entries || entries.length === 0) return\r\n const size = entries[0]\r\n if (!size.contentRect || size.contentRect.width === 0 || size.contentRect.height === 0) return\r\n }\r\n const plan = this.$refs.plan as Element\r\n if (!plan) return\r\n this.isSmall = plan.clientWidth < 650\r\n if (this.type !== 'month') {\r\n if (plan.clientWidth >= 1680) {\r\n this.type = 'week'\r\n } else if (plan.clientWidth >= 950) {\r\n this.type = '4day'\r\n } else {\r\n this.type = 'day'\r\n }\r\n }\r\n }\r\n\r\n @Watch('entries')\r\n @Watch('selectedLocations')\r\n onEntriesChanged () {\r\n this.shownEntries = this.entries.filter(e => this.selectedLocations.includes(e.locationId))\r\n }\r\n\r\n getCalendar (): any {\r\n return this.ready ? this.$refs.calendar : null\r\n }\r\n\r\n showTitle () {\r\n this.title = this.getCalendar().title\r\n }\r\n\r\n scrollToTime () {\r\n const time = this.getCalendar().times.now.hour * 60 + this.getCalendar().times.now.minute\r\n const first = Math.max(0, time - (time % 30) - 30)\r\n\r\n this.getCalendar().scrollToTime(first)\r\n }\r\n\r\n formatTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('HH:mm')\r\n }\r\n\r\n formatDateTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd, DD.MM.YYYY HH:mm')\r\n }\r\n\r\n getNowY () {\r\n return this.getCalendar() !== null\r\n ? this.getCalendar().timeToY(this.getCalendar().times.now) + 'px'\r\n : '-10px'\r\n }\r\n\r\n entryAdded (entry: TrainingPlanEntry) {\r\n // console.log('entry added!', entry)\r\n if (entry.sort === 1) {\r\n const idx = this.entries.findIndex(e => e.label === entry.label && e.start === entry.start && e.end === entry.end)\r\n if (idx > -1) { this.entries.splice(idx, 1) }\r\n } else {\r\n this.entries.push(entry)\r\n }\r\n }\r\n\r\n entryChanged (entry: TrainingPlanEntry) {\r\n // console.log('entry changed!', entry)\r\n const idx = this.entries.findIndex(e => e.id === entry.id)\r\n if (idx > -1) {\r\n Vue.set(this.entries, idx, entry)\r\n } else {\r\n this.entries.push(entry)\r\n }\r\n }\r\n\r\n entryRemoved (entryId: string) {\r\n // console.log('entry removed!', entryId)\r\n const idx = this.entries.findIndex(e => e.id === entryId)\r\n if (idx > -1) {\r\n this.entries.splice(idx, 1)\r\n }\r\n }\r\n\r\n @Watch('editEntryDate')\r\n @Watch('editEntryStartTime')\r\n @Watch('editEntryEndTime')\r\n @Watch('editEntryLocation')\r\n timeChanged () {\r\n this.checkEntry()\r\n }\r\n\r\n checkEntry () {\r\n const startDate = DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryStartTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true })\r\n const endDate = DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryEndTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true })\r\n const overlappingEntries = this.entries.filter(e =>\r\n e.locationId === this.editEntryLocation?.id &&\r\n e.start < endDate &&\r\n e.end > startDate &&\r\n !(!this.editEntryDialogIsAdd && this.editEntry === e)\r\n )\r\n this.persons = overlappingEntries.reduce((sum, current) => sum + current.personCount, 0)\r\n this.homes = overlappingEntries.reduce((sum, current) => sum + current.homeCount, 0)\r\n this.exclusiveness = overlappingEntries.some(e => e.exclusive)\r\n this.personsLegal = this.persons <= 20\r\n this.homesLegal = this.homes <= 10\r\n this.exclusivenessLegal = !this.exclusiveness\r\n this.editEntryLegal = this.editEntryAllowed && this.personsLegal && this.homesLegal && this.exclusivenessLegal\r\n this.deleteEntryLegal = this.editEntryAllowed && !!this.editEntry?.id\r\n }\r\n\r\n openAddEntryDialog () {\r\n this.editEntryDialogIsAdd = true\r\n this.editEntry = null\r\n if (this.editEntryLocation === null || !this.selectedLocations.includes(this.editEntryLocation.id)) {\r\n this.editEntryLocation = this.locations.find(l => this.selectedLocations.includes(l.id)) ?? this.locations[0]\r\n }\r\n this.editEntryTrainer = this.trainers.find(t => t.name === this.$store.getters.AUTH_NAME) ?? null\r\n this.editEntryAllowed = true\r\n this.checkEntry()\r\n }\r\n\r\n updateEntry () {\r\n this.editEntryProcessing = true\r\n const entry = new TrainingPlanEntry({\r\n id: this.editEntry?.id,\r\n personCount: this.editEntryPersons,\r\n homeCount: this.editEntryHomes,\r\n start: DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryStartTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true }),\r\n end: DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryEndTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true }),\r\n repeatingWeekly: this.editEntryRepeatingWeekly,\r\n typeId: this.editEntryType?.id,\r\n userId: this.editEntryTrainer?.id,\r\n label: this.editEntryLabel,\r\n locationId: this.editEntryLocation?.id\r\n })\r\n const isRequest = this.editEntryType?.name === 'Gruppentraining' && !this.isAdmin()\r\n console.log(this.editEntryType?.name, this.isAdmin(), isRequest)\r\n if (!isRequest) {\r\n if (this.editEntry?.id == null) {\r\n addEntry(entry)\r\n .then(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n })\r\n .catch(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n this.errorOccured = true\r\n })\r\n } else {\r\n editEntry(entry)\r\n .then(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n })\r\n .catch(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n this.errorOccured = true\r\n })\r\n }\r\n } else {\r\n addChangeRequest(entry)\r\n .then(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n this.changeRequested = true\r\n })\r\n .catch(() => {\r\n this.editEntryProcessing = false\r\n this.editEntryDialog = false\r\n this.errorOccured = true\r\n })\r\n }\r\n }\r\n\r\n deleteEntry () {\r\n if (this.editEntry?.id) {\r\n this.deleteEntryProcessing = true\r\n deleteEntry(this.editEntry?.id)\r\n this.deleteEntryProcessing = false\r\n }\r\n this.deleteGroupConfirm2 = false\r\n this.deleteConfirm = false\r\n this.editEntryDialog = false\r\n }\r\n\r\n removeSingleEntry () {\r\n this.removingSingleEntryProcessing = true\r\n const entry = new TrainingPlanEntry({\r\n id: this.editEntry?.id,\r\n personCount: this.editEntryPersons,\r\n homeCount: this.editEntryHomes,\r\n start: DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryStartTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true }),\r\n end: DateTime.fromFormat(this.editEntryDate + ' ' + this.editEntryEndTime, 'yyyy-LL-dd HH:mm').toISO({ includeOffset: false, suppressMilliseconds: true }),\r\n repeatingWeekly: false,\r\n typeId: this.editEntryType?.id,\r\n userId: this.editEntryTrainer?.id,\r\n label: this.editEntryLabel,\r\n locationId: this.editEntryLocation?.id,\r\n sort: 1\r\n })\r\n addEntry(entry)\r\n this.editEntryProcessing = false\r\n this.deleteSingleConfirm = false\r\n this.editEntryDialog = false\r\n }\r\n\r\n viewDay (selection: any) {\r\n this.activeDate = selection.date\r\n this.type = 'day'\r\n }\r\n\r\n isAdmin () {\r\n return this.$store.getters.AUTH_ROLE === 'Administrator'\r\n }\r\n\r\n showEvent (event: any) {\r\n this.editEntry = event.event as TrainingPlanEntry\r\n const startDate = DateTime.fromISO(this.editEntry.start)\r\n this.editEntryDate = startDate.toFormat('yyyy-LL-dd')\r\n this.editEntryStartTime = startDate.toFormat('HH:mm')\r\n this.editEntryEndTime = DateTime.fromISO(this.editEntry.end).toFormat('HH:mm')\r\n this.editEntryPersons = this.editEntry.personCount\r\n this.editEntryHomes = this.editEntry.homeCount\r\n this.editEntryDialogIsAdd = false\r\n this.editEntryDialog = true\r\n this.editEntryRepeatingWeekly = this.editEntry.repeatingWeekly\r\n this.editEntryType = this.types.find(t => t.id === this.editEntry?.typeId) ?? null\r\n this.editEntryLabel = this.editEntry.label\r\n this.editEntryTrainer = this.trainers.find(t => t.id === this.editEntry?.userId) ?? null\r\n this.editEntryLocation = this.locations.find(l => l.id === this.editEntry?.locationId) ?? null\r\n this.editEntryAllowed = this.editEntry.id === null ||\r\n this.isAdmin() ||\r\n (this.$store.getters.AUTH_ROLE === 'Editor' && this.editEntryType?.name === 'Freies Training') ||\r\n (this.$store.getters.AUTH_NAME === this.editEntry.username)\r\n this.checkEntry()\r\n }\r\n\r\n async goNext () {\r\n this.touchReset()\r\n if (!this.ready) return\r\n this.getCalendar().next()\r\n await this.$nextTick()\r\n this.showTitle()\r\n }\r\n\r\n async goPrev () {\r\n this.touchReset()\r\n if (!this.ready) return\r\n this.getCalendar().prev()\r\n await this.$nextTick()\r\n this.showTitle()\r\n }\r\n\r\n goToday () {\r\n this.activeDate = ''\r\n Vue.nextTick(() => {\r\n this.showTitle()\r\n })\r\n }\r\n\r\n touchMove (touchEvent: any) {\r\n const moveX = (touchEvent.touchmoveX - touchEvent.touchstartX)\r\n const moveY = (touchEvent.touchmoveY - touchEvent.touchstartY)\r\n if (Math.abs(moveX) <= Math.max(2 * Math.abs(moveY), 16)) {\r\n this.swipe = 0\r\n } else if (moveX < 0) {\r\n this.swipe = -30\r\n } else {\r\n this.swipe = 30\r\n }\r\n }\r\n\r\n touchReset () {\r\n this.swipe = 0\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Plan.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Plan.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Plan.vue?vue&type=template&id=16c0af1b&\"\nimport script from \"./Plan.vue?vue&type=script&lang=ts&\"\nexport * from \"./Plan.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCalendar } from 'vuetify/lib/components/VCalendar';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCalendar,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDatePicker,VDialog,VIcon,VList,VListItem,VListItemTitle,VMenu,VOverlay,VProgressCircular,VRow,VSelect,VSpacer,VSwitch,VTextField,VTimePicker,VToolbar,VToolbarTitle})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Touch from 'vuetify/lib/directives/touch'\ninstallDirectives(component, {Touch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users d-flex flex-column fill-height\"},[_c('v-tabs',{staticClass:\"flex-grow-0\",attrs:{\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Profile\")]),(['Administrator', 'Editor'].includes(_vm.$store.getters.AUTH_ROLE))?[_c('v-tab',[_vm._v(\"Benutzer\")]),_c('v-tab',[_vm._v(\"Einladungen\")]),_c('v-tab',[_vm._v(\"Neue Einladung\")])]:_vm._e()],2),_c('v-tabs-items',{staticClass:\"flex-grow-1\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('profile')],1),(['Administrator', 'Editor'].includes(_vm.$store.getters.AUTH_ROLE))?[_c('v-tab-item',[_c('user-list')],1),_c('v-tab-item',[_c('invitation-list')],1),_c('v-tab-item',[_c('new-invitation')],1)]:_vm._e()],2)],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('v-list',[_c('v-list-item-group',_vm._l((_vm.users),function(user){return _c('v-list-item',{key:user.id,staticClass:\"d-flex align-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar active = ref.active;\nreturn [_vm._v(\" \"+_vm._s(user.name)+\", \"),(active)?_c('v-select',{staticClass:\"ml-4 flex-grow-0\",attrs:{\"items\":_vm.roles,\"item-text\":\"name\",\"item-value\":\"name\",\"dense\":\"\",\"hide-details\":\"\",\"solo\":\"\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changeRole(user)}},model:{value:(user.roleName),callback:function ($$v) {_vm.$set(user, \"roleName\", $$v)},expression:\"user.roleName\"}}):[_vm._v(_vm._s(user.roleName))],(active)?_c('v-text-field',{staticClass:\"ml-4 mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":\"Email\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changeEmail(user)}},model:{value:(user.email),callback:function ($$v) {_vm.$set(user, \"email\", $$v)},expression:\"user.email\"}}):(user.email)?[_vm._v(\" (\"+_vm._s(user.email)+\") \")]:_vm._e(),(active)?_c('v-text-field',{staticClass:\"ml-4 mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":\"Telefon\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changePhone(user)}},model:{value:(user.phone),callback:function ($$v) {_vm.$set(user, \"phone\", $$v)},expression:\"user.phone\"}}):(user.phone)?[_vm._v(\" (\"+_vm._s(user.phone)+\") \")]:_vm._e(),(active)?_c('v-text-field',{staticClass:\"ml-4 mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":\"Kommentar\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changeComment(user)}},model:{value:(user.comment),callback:function ($$v) {_vm.$set(user, \"comment\", $$v)},expression:\"user.comment\"}}):(user.comment)?[_vm._v(\" (\"+_vm._s(user.comment)+\") \")]:_vm._e()]}}],null,true)})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport User from '@/mixins/User'\r\nimport { GetRoles, GetUsers, SetUserComment, SetUserEmail, SetUserPhone, SetUserRole } from '@/api/Users'\r\nimport Role from '@/mixins/Role'\r\n\r\n@Component\r\nexport default class UserList extends Vue {\r\n users: User[] = []\r\n roles: Role[] = []\r\n\r\n async mounted () {\r\n [this.users, this.roles] = await Promise.all([\r\n GetUsers(), GetRoles()\r\n ])\r\n }\r\n\r\n changeRole (user: User) {\r\n SetUserRole(user.id, user.roleName)\r\n }\r\n\r\n changeEmail (user: User) {\r\n SetUserEmail(user.id, user.email)\r\n }\r\n\r\n changePhone (user: User) {\r\n SetUserPhone(user.id, user.phone)\r\n }\r\n\r\n changeComment (user: User) {\r\n SetUserComment(user.id, user.comment)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=ec8eb444&\"\nimport script from \"./UserList.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserList.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VList,VListItem,VListItemGroup,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',[_c('v-list-item-group',_vm._l((_vm.invitations),function(invitation){return _c('v-list-item',{key:invitation.id,staticClass:\"d-flex align-center\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar active = ref.active;\nreturn [_vm._v(\" \"+_vm._s(invitation.name)+\", \"),(active)?_c('v-select',{staticClass:\"ml-4 flex-grow-0\",attrs:{\"items\":_vm.roles,\"item-text\":\"name\",\"item-value\":\"name\",\"dense\":\"\",\"hide-details\":\"\",\"solo\":\"\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changeRole(invitation)}},model:{value:(invitation.roleName),callback:function ($$v) {_vm.$set(invitation, \"roleName\", $$v)},expression:\"invitation.roleName\"}}):[_vm._v(_vm._s(invitation.roleName))],(active)?_c('v-text-field',{staticClass:\"mx-4 mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":\"Kommentar\"},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.changeComment(invitation, invitation.comment)}},model:{value:(invitation.comment),callback:function ($$v) {_vm.$set(invitation, \"comment\", $$v)},expression:\"invitation.comment\"}}):(invitation.comment)?[_vm._v(\" (\"+_vm._s(invitation.comment)+\") \")]:_vm._e(),(active)?_c('v-btn',{directives:[{name:\"clipboard\",rawName:\"v-clipboard:copy\",value:(_vm.getLink(invitation.code)),expression:\"getLink(invitation.code)\",arg:\"copy\"}],attrs:{\"loading\":invitation.copyingLink,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.onCopyLink(invitation)}},scopedSlots:_vm._u([{key:\"loader\",fn:function(){return [_c('v-icon',[_vm._v(\"mdi-check\")])]},proxy:true}],null,true)},[_vm._v(\" Kopieren \")]):_vm._e(),(active)?_c('v-btn',{staticClass:\"ml-2\",on:{\"click\":function($event){return _vm.deleteInvitation(invitation.id)}}},[_vm._v(\"Löschen\")]):_vm._e()]}}],null,true)})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@/plugins/axios'\r\nimport Invitation from '@/mixins/Invitation'\r\nimport ChangeUserInfo from '@/mixins/ChangeUserInfo'\r\n\r\nexport async function GetInvitations (): Promise<[Invitation]> {\r\n const resp = await axios.get('invitations')\r\n return resp.data\r\n}\r\n\r\nexport function AddInvitation (invitation: Invitation): Promise {\r\n return axios.post('invitations', invitation)\r\n}\r\n\r\nexport function DeleteInvitation (id: string): Promise {\r\n return axios.delete(`invitations/${id}`)\r\n}\r\n\r\nexport async function CheckInvitation (code: string): Promise {\r\n const resp = await axios.get(`invitations/check/${code}`)\r\n return resp.data\r\n}\r\n\r\nexport async function UseInvitation (code: string, info: ChangeUserInfo): Promise {\r\n axios.post(`invitations/use/${code}`, info)\r\n}\r\n\r\nexport async function SetInvitationRole (invitationId: string, roleName: string): Promise {\r\n return axios\r\n .put(`invitations/${invitationId}/role/${roleName}`)\r\n}\r\n\r\nexport async function SetInvitationComment (invitationId: string, comment: string): Promise {\r\n return axios\r\n .put(`invitations/${invitationId}/comment`, `\"${comment}\"`, { headers: { 'Content-Type': 'application/json' } })\r\n}\r\n","import Vue from 'vue'\r\nexport const EventBus = new Vue()\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport { DeleteInvitation, GetInvitations, SetInvitationComment, SetInvitationRole } from '@/api/Invitations'\r\nimport Invitation from '@/mixins/Invitation'\r\nimport { EventBus } from '@/plugins/EventBus'\r\nimport Role from '@/mixins/Role'\r\nimport { GetRoles } from '@/api/Users'\r\n\r\n@Component\r\nexport default class InvitationList extends Vue {\r\n invitations: Invitation[] = []\r\n roles: Role[] = []\r\n\r\n async mounted () {\r\n this.roles = await GetRoles()\r\n this.loadInvitations()\r\n EventBus.$on('invitationsChanged', this.loadInvitations)\r\n }\r\n\r\n beforeDestroy () {\r\n EventBus.$off('invitationsChanged', this.loadInvitations)\r\n }\r\n\r\n async loadInvitations () {\r\n const invitations = await GetInvitations()\r\n invitations.forEach(i => {\r\n i.copyingLink = false\r\n })\r\n this.invitations = invitations\r\n }\r\n\r\n async deleteInvitation (id: string) {\r\n await DeleteInvitation(id)\r\n this.loadInvitations()\r\n }\r\n\r\n onCopyLink (item: Invitation) {\r\n item.copyingLink = true\r\n console.log(item)\r\n setTimeout(() => {\r\n item.copyingLink = false\r\n console.log(item)\r\n }, 500)\r\n }\r\n\r\n getLink (code: string): string {\r\n return window.location.origin + '/userSetup/' + code\r\n }\r\n\r\n changeRole (invitation: Invitation) {\r\n if (invitation.id === null) return\r\n SetInvitationRole(invitation.id, invitation.roleName)\r\n }\r\n\r\n changeComment (invitation: Invitation) {\r\n if (invitation.id === null) return\r\n SetInvitationComment(invitation.id, invitation.comment)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvitationList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvitationList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvitationList.vue?vue&type=template&id=71a30e72&\"\nimport script from \"./InvitationList.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvitationList.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemGroup,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pa-4\"},[_c('v-text-field',{attrs:{\"label\":\"name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":\"enforce name\"},model:{value:(_vm.enforceName),callback:function ($$v) {_vm.enforceName=$$v},expression:\"enforceName\"}}),_c('v-select',{attrs:{\"items\":_vm.roles,\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.roleId),callback:function ($$v) {_vm.roleId=$$v},expression:\"roleId\"}}),_c('v-text-field',{attrs:{\"label\":\"comment\"},model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}}),_c('v-btn',{attrs:{\"disabled\":_vm.isDisabled()},on:{\"click\":function($event){return _vm.add()}}},[_vm._v(\"Erstellen\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class Invitation {\r\n id: string | null = null\r\n name = ''\r\n enforceName = false\r\n comment = ''\r\n roleId = ''\r\n roleName = ''\r\n copyingLink = false\r\n constructor (init?: Partial) {\r\n Object.assign(this, init)\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport Invitation from '@/mixins/Invitation'\r\nimport Role from '@/mixins/Role'\r\nimport { GetRoles, GetUsers } from '@/api/Users'\r\nimport { AddInvitation, GetInvitations } from '@/api/Invitations'\r\nimport { EventBus } from '@/plugins/EventBus'\r\n\r\n@Component\r\nexport default class NewInvitation extends Vue {\r\n name = ''\r\n enforceName = false\r\n comment = ''\r\n roleId = ''\r\n usernames: string[] = []\r\n roles: Role[] = []\r\n inProgress = false\r\n\r\n async mounted () {\r\n this.roles = await GetRoles()\r\n this.setDefaultRole()\r\n console.log(this.roles, this.roleId)\r\n this.loadUsers()\r\n }\r\n\r\n async loadUsers () {\r\n this.usernames = [\r\n ...(await GetUsers()).map(u => u.name),\r\n ...(await GetInvitations()).filter(i => i.enforceName).map(i => i.name)\r\n ]\r\n }\r\n\r\n setDefaultRole () {\r\n this.roleId = this.roles.find(r => r.name === 'Viewer')?.id ?? this.roles[0].id\r\n }\r\n\r\n async add () {\r\n this.inProgress = true\r\n const invitation = new Invitation({\r\n name: this.name,\r\n enforceName: this.enforceName,\r\n roleId: this.roleId,\r\n comment: this.comment\r\n })\r\n console.log(invitation)\r\n await AddInvitation(invitation)\r\n this.name = ''\r\n this.comment = ''\r\n this.setDefaultRole()\r\n EventBus.$emit('invitationsChanged')\r\n this.loadUsers()\r\n }\r\n\r\n isDisabled (): boolean {\r\n return this.name === '' || this.usernames.includes(this.name)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInvitation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInvitation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewInvitation.vue?vue&type=template&id=616f3dff&\"\nimport script from \"./NewInvitation.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewInvitation.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pa-2\"},[_c('h1',[_vm._v(_vm._s(_vm.$store.getters.AUTH_NAME))]),_c('h2',[_vm._v(_vm._s(_vm.$store.getters.AUTH_ROLE))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class UserList extends Vue {\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=12dc1704&\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport UserList from '@/components/UserList.vue'\r\nimport InvitationList from '@/components/InvitationList.vue'\r\nimport NewInvitation from '@/components/NewInvitation.vue'\r\nimport Profile from '@/components/Profile.vue'\r\n\r\n@Component({\r\n components: {\r\n UserList,\r\n InvitationList,\r\n NewInvitation,\r\n Profile\r\n }\r\n})\r\nexport default class Users extends Vue {\r\n tab = 0\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../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=ts&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=236765bb&\"\nimport script from \"./Users.vue?vue&type=script&lang=ts&\"\nexport * from \"./Users.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabItem,VTabs,VTabsItems})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"login\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',[_c('v-card',{staticClass:\"authenticate\"},[_c('v-form',{ref:\"loginForm\"},[_c('v-card-title',{staticClass:\"headline primary\"},[_vm._v(\"Registrieren\")]),_c('v-card-text',[_c('v-text-field',{ref:\"code\",attrs:{\"label\":\"Code\",\"rules\":[_vm.rules.required, _vm.rules.codeValid]},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.name.focus()}},model:{value:(_vm.invitationCode),callback:function ($$v) {_vm.invitationCode=$$v},expression:\"invitationCode\"}}),_c('v-text-field',{ref:\"name\",attrs:{\"label\":\"Name\",\"readonly\":_vm.enforceUsername,\"rules\":[_vm.rules.required, _vm.rules.notErrored]},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password.focus()}},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{ref:\"password\",attrs:{\"label\":\"Password\",\"append-icon\":_vm.show ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.rules.required, _vm.rules.notErrored],\"type\":_vm.show ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.show = !_vm.show},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.$refs.password2.focus()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('v-text-field',{ref:\"password2\",attrs:{\"label\":\"Repeat Password\",\"append-icon\":_vm.show2 ? 'mdi-eye' : 'mdi-eye-off',\"rules\":[_vm.rules.required, _vm.rules.notErrored, _vm.rules.isSame],\"type\":_vm.show2 ? 'text' : 'password'},on:{\"click:append\":function($event){_vm.show2 = !_vm.show2},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.create()}},model:{value:(_vm.password2),callback:function ($$v) {_vm.password2=$$v},expression:\"password2\"}})],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"success\",attrs:{\"outlined\":\"\",\"disabled\":!_vm.valid},on:{\"click\":_vm.create}},[_vm._v(\"Account einrichten\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport ChangeUserInfo from '@/mixins/ChangeUserInfo'\r\nimport { CheckInvitation, UseInvitation } from '@/api/Invitations'\r\n\r\n@Component\r\nexport default class UserSetup extends Vue {\r\n username = ''\r\n password = ''\r\n password2 = ''\r\n invitationCode = ''\r\n codeValid = true\r\n show = false\r\n show2 = false\r\n errored = false\r\n valid = true\r\n deployColor = 'transparent' as string | null\r\n deployLogo = null as string | null\r\n enforceUsername = false\r\n\r\n rules = {\r\n codeValid: (value: string) => this.codeValid || 'Code nicht gültig',\r\n required: (value: string) => !!value || 'Benötigt',\r\n notErrored: () => !this.hasError() || 'Fehler',\r\n isSame: (value: string) => {\r\n return value === this.getPassword() || 'Passwörter stimmen nicht überein'\r\n }\r\n }\r\n\r\n async mounted () {\r\n this.deployColor = process.env.VUE_APP_DEPLOY_COLOR ?? null\r\n this.deployLogo = process.env.VUE_APP_DEPLOY_LOGO ?? null\r\n this.invitationCode = this.$route.params.invitationCode\r\n if (this.invitationCode) {\r\n const invitation = await CheckInvitation(this.invitationCode)\r\n this.codeValid = !!invitation\r\n this.username = invitation.name\r\n this.enforceUsername = invitation.enforceName\r\n } else {\r\n this.codeValid = false\r\n }\r\n }\r\n\r\n async create () {\r\n if (!this.validate()) {\r\n return\r\n }\r\n await UseInvitation(this.invitationCode, new ChangeUserInfo({\r\n name: this.username,\r\n password: this.password\r\n })).catch(() => {\r\n this.errored = true\r\n this.validate()\r\n this.errored = false\r\n })\r\n this.$router.push({ path: '/login' })\r\n }\r\n\r\n validate (): boolean {\r\n return (this.$refs.loginForm as any).validate()\r\n }\r\n\r\n getPassword (): string {\r\n return this.password\r\n }\r\n\r\n hasError (): boolean {\r\n return this.errored\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSetup.vue?vue&type=template&id=f1d0913e&\"\nimport script from \"./UserSetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSetup.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"log\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"placeholder\":\"Suchen\",\"dense\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-btn',{staticClass:\"ml-2\",on:{\"click\":function($event){return _vm.onOptionsChanged()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-refresh\")]),_vm._v(\"Aktualisieren\")],1)],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.entries,\"options\":_vm.options,\"server-items-length\":_vm.totalEntries,\"loading\":_vm.loading,\"multi-sort\":\"\",\"footer-props\":{\n itemsPerPageOptions: [10, 15, 20]\n }},on:{\"update:options\":function($event){_vm.options=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport axios from '@/plugins/axios'\r\nimport { Component, Vue, Watch } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class Log extends Vue {\r\n search = ''\r\n totalEntries = 0\r\n entries = []\r\n loading = true\r\n options: any = {\r\n sortBy: ['timestamp'],\r\n sortDesc: [true]\r\n }\r\n\r\n headers = [\r\n { text: 'Zeitpunkt', value: 'timestamp' },\r\n { text: 'User', value: 'userName' },\r\n { text: 'Aktion', value: 'action' },\r\n { text: 'Beschreibung', value: 'description' }\r\n ]\r\n\r\n @Watch('options')\r\n @Watch('search')\r\n async onOptionsChanged () {\r\n if (!(this.options.page > 0)) return\r\n this.loading = true\r\n this.options.search = this.search\r\n const data = (await axios.post('logs', this.options)).data\r\n this.entries = data.items\r\n this.totalEntries = data.count\r\n this.loading = false\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Log.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Log.vue?vue&type=template&id=2072aaa1&\"\nimport script from \"./Log.vue?vue&type=script&lang=ts&\"\nexport * from \"./Log.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VContainer,VDataTable,VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"groups\",attrs:{\"fluid\":\"\"}},[(_vm.groups.changeRequests.length > 0)?[_c('h1',[_vm._v(\"Gestellte Anfragen\")]),_vm._l((_vm.groups.changeRequests),function(cr){return _c('div',{key:cr.id},[_vm._v(\" \"+_vm._s(_vm.group.label)+\": \"+_vm._s(_vm.formatDateTime(_vm.group.start))+\", \"+_vm._s(_vm.group.locationName)+\" \")])})]:_vm._e(),(_vm.groups.weeklyGroups.length > 0)?[_c('h1',[_vm._v(\"Wöchentliche Gruppen\")]),_c('v-expansion-panels',{staticClass:\"mb-4\"},_vm._l((_vm.groups.weeklyGroups),function(group){return _c('v-expansion-panel',{key:group.main.id},[_c('v-expansion-panel-header',[_vm._v(_vm._s(group.main.label)+\": \"+_vm._s(_vm.formatWeeklyTime(group.main.start))+\", \"+_vm._s(group.main.locationName))]),_c('v-expansion-panel-content',[_c('h4',{staticClass:\"mt-2\"},[_vm._v(\"Ausfall:\")]),_vm._l((group.skips),function(skip){return _c('div',{key:skip.id},[_vm._v(\" \"+_vm._s(_vm.formatDate(skip.start))+\" \")])})],2)],1)}),1)]:_vm._e(),(_vm.groups.singleGroups.length > 0)?[_c('h1',[_vm._v(\"Einmalige Gruppen\")]),_vm._l((_vm.groups.singleGroups),function(group){return _c('div',{key:group.id},[_vm._v(\" \"+_vm._s(group.label)+\": \"+_vm._s(_vm.formatDateTime(group.start))+\", \"+_vm._s(group.locationName)+\" \")])})]:_vm._e(),(_vm.groups.singles.length > 0)?[_c('h1',[_vm._v(\"Freie Trainings\")]),_vm._l((_vm.groups.singles),function(entry){return _c('div',{key:entry.id},[_vm._v(\" \"+_vm._s(_vm.formatDateTime(entry.start))+\", \"+_vm._s(entry.locationName)+\" \")])})]:_vm._e(),(_vm.groups.unmappedSkips.length > 0)?[_c('h1',[_vm._v(\"Problematische gelöschte Termine\")]),_vm._l((_vm.groups.unmappedSkips),function(group){return _c('div',{key:group.id},[_vm._v(\" \"+_vm._s(_vm.formatDateTime(group.start))+\", \"+_vm._s(group.locationName)+\" \")])})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport MyGroups from '@/mixins/MyGroups'\r\nimport { getMine } from '@/api/TrainingPlan'\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport moment from 'moment'\r\n\r\n@Component\r\nexport default class Groups extends Vue {\r\n groups: MyGroups | null = null\r\n\r\n async mounted () {\r\n this.groups = await getMine()\r\n }\r\n\r\n formatDate (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd, DD.MM.YYYY')\r\n }\r\n\r\n formatDateTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd, DD.MM.YYYY HH:mm')\r\n }\r\n\r\n formatWeeklyTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd HH:mm')\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Groups.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Groups.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Groups.vue?vue&type=template&id=5ff4802b&\"\nimport script from \"./Groups.vue?vue&type=script&lang=ts&\"\nexport * from \"./Groups.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\ninstallComponents(component, {VContainer,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users d-flex flex-column fill-height\"},[_c('v-tabs',{staticClass:\"flex-grow-0\",attrs:{\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Aktive Anfragen\")]),_c('v-tab',[_vm._v(\"Import Excel\")])],1),_c('v-tabs-items',{staticClass:\"flex-grow-1\",model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('change-request-list')],1),_c('v-tab-item',[_c('upload-excel')],1)],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('div',{staticClass:\"pa-2 d-flex flex-column\"},[_c('v-textarea',{model:{value:(_vm.excel),callback:function ($$v) {_vm.excel=$$v},expression:\"excel\"}}),_c('v-btn',{on:{\"click\":function($event){return _vm.upload()}}},[_vm._v(\"Upload\")]),_c('label',{staticClass:\"ma-4\"},[_vm._v(_vm._s(_vm.response))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport { uploadExcel } from '@/api/TrainingPlan'\r\nimport Excel from '@/mixins/Excel'\r\n\r\n@Component\r\nexport default class UploadExcel extends Vue {\r\n excel = ''\r\n response = ''\r\n\r\n async upload () {\r\n this.response = await uploadExcel({\r\n content: this.excel\r\n } as Excel)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadExcel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadExcel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UploadExcel.vue?vue&type=template&id=624358ec&\"\nimport script from \"./UploadExcel.vue?vue&type=script&lang=ts&\"\nexport * from \"./UploadExcel.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"changeRequests\"},[(_vm.entries)?_c('div',[(_vm.entries.length === 0)?void 0:_vm._l((_vm.entries),function(rc){return _c('div',{key:rc.id},[(rc.current === null)?_c('div',[_vm._v(\" neuer eintrag \")]):_c('div',[_vm._v(\" Alt: \"+_vm._s(rc.current.label)+\" von \"+_vm._s(rc.updated.username)+\": \"+_vm._s(_vm.formatDateTime(rc.current.start))+\" - \"+_vm._s(_vm.formatDateTime(rc.current.end))+\", \"+_vm._s(rc.current.locationName)+\" \")]),_c('div',[_vm._v(\" Neu: \"+_vm._s(rc.updated.label)+\" von \"+_vm._s(rc.updated.username)+\": \"+_vm._s(_vm.formatDateTime(rc.updated.start))+\" - \"+_vm._s(_vm.formatDateTime(rc.updated.end))+\", \"+_vm._s(rc.updated.locationName)+\" \")]),_c('v-btn',{staticClass:\"success mr-2 mt-2\",on:{\"click\":function($event){return _vm.confirm(rc)}}},[_vm._v(\"Okay\")]),_c('v-btn',{staticClass:\"error mt-2\",on:{\"click\":function($event){return _vm.deny(rc)}}},[_vm._v(\"Nope\")])],1)})],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport { confirmChangeRequest, denyChangeRequest, getChangeRequests } from '@/api/TrainingPlan'\r\nimport RequestComparison from '@/mixins/RequestComparison'\r\nimport moment from 'moment'\r\n\r\n@Component\r\nexport default class ChangeRequestList extends Vue {\r\n entries: RequestComparison[] = []\r\n\r\n async mounted () {\r\n this.entries = await getChangeRequests()\r\n }\r\n\r\n formatDate (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd, DD.MM.YYYY')\r\n }\r\n\r\n formatDateTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd, DD.MM.YYYY HH:mm')\r\n }\r\n\r\n formatWeeklyTime (time: string): string {\r\n const m = moment(time)\r\n return m.format('dddd HH:mm')\r\n }\r\n\r\n async confirm (entry: RequestComparison) {\r\n await confirmChangeRequest(entry.changeId)\r\n this.entries.splice(this.entries.indexOf(entry), 1)\r\n }\r\n\r\n async deny (entry: RequestComparison) {\r\n await denyChangeRequest(entry.changeId)\r\n this.entries.splice(this.entries.indexOf(entry), 1)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeRequestList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeRequestList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangeRequestList.vue?vue&type=template&id=486c2142&\"\nimport script from \"./ChangeRequestList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChangeRequestList.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport UploadExcel from '@/components/UploadExcel.vue'\r\nimport ChangeRequestList from '@/components/ChangeRequestList.vue'\r\n\r\n@Component({\r\n components: {\r\n UploadExcel,\r\n ChangeRequestList\r\n }\r\n})\r\nexport default class Administration extends Vue {\r\n tab = 0\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Administration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Administration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Administration.vue?vue&type=template&id=0c81a0ef&\"\nimport script from \"./Administration.vue?vue&type=script&lang=ts&\"\nexport * from \"./Administration.vue?vue&type=script&lang=ts&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabItem,VTabs,VTabsItems})\n","import Vue from 'vue'\r\nimport VueRouter, { RouteConfig } from 'vue-router'\r\nimport Home from '@/views/Home.vue'\r\nimport Login from '@/views/Login.vue'\r\nimport ResetPassword from '@/views/ResetPassword.vue'\r\nimport SetPassword from '@/views/SetPassword.vue'\r\nimport Plan from '@/views/Plan.vue'\r\nimport Users from '@/views/Users.vue'\r\nimport UserSetup from '@/views/UserSetup.vue'\r\nimport Log from '@/views/Log.vue'\r\nimport Groups from '@/views/Groups.vue'\r\nimport Administration from '@/views/Administration.vue'\r\nimport { AUTH_STATUS } from '@/store/names/Auth'\r\nimport store from '@/store'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/',\r\n name: 'Home',\r\n component: Home\r\n },\r\n {\r\n path: '/plan',\r\n name: 'Plan',\r\n component: Plan\r\n },\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: Login\r\n },\r\n {\r\n path: '/resetPassword',\r\n name: 'Resetpassword',\r\n component: ResetPassword\r\n },\r\n {\r\n path: '/setPassword/:resetCode?',\r\n name: 'Setpassword',\r\n component: SetPassword\r\n },\r\n {\r\n path: '/users',\r\n name: 'Users',\r\n component: Users\r\n },\r\n {\r\n path: '/administration',\r\n name: 'Administration',\r\n component: Administration\r\n },\r\n {\r\n path: '/mine',\r\n name: 'Mine',\r\n component: Groups\r\n },\r\n {\r\n path: '/userSetup/:invitationCode?',\r\n name: 'UserSetup',\r\n component: UserSetup\r\n },\r\n {\r\n path: '/log',\r\n name: 'Log',\r\n component: Log\r\n }\r\n]\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.matched.some(record => record.meta.requiresAuth)) {\r\n if (store.getters[AUTH_STATUS] !== 'success') {\r\n next({\r\n path: '/login',\r\n query: { redirect: to.fullPath }\r\n })\r\n } else {\r\n console.log('authorized')\r\n next()\r\n }\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\nexport default router\r\n","import router from '@/router'\r\nimport store from '@/store'\r\nimport { AUTH_LOGOUT_ACTION, AUTH_NAME_MUT, AUTH_ROLE_MUT, IS_AUTHED } from '@/store/names/Auth'\r\nimport axios from 'axios'\r\n\r\nconsole.log('🔨 Using API at ', process.env.VUE_APP_API_URL)\r\n\r\nconst instance = axios.create({\r\n baseURL: process.env.VUE_APP_API_URL,\r\n params: {}\r\n})\r\n\r\nconst token = localStorage.getItem('user-token')\r\nif (token) {\r\n instance.defaults.headers.common.Authorization = 'Bearer ' + token\r\n}\r\n\r\ninstance.interceptors.response.use(\r\n (response) => {\r\n return response\r\n },\r\n (err) => {\r\n console.log(err)\r\n if (store.getters[IS_AUTHED] && err.status === 401) {\r\n store.dispatch(AUTH_LOGOUT_ACTION)\r\n router.push('/login')\r\n }\r\n return Promise.reject(err)\r\n }\r\n)\r\n\r\nexport default instance\r\n","import { AUTH_REQUEST_ACTION, AUTH_LOGOUT_ACTION, AUTH_REQUEST_MUT, AUTH_LOGOUT_MUT, AUTH_SUCCESS_MUT, AUTH_ERROR_MUT, AUTH_STATUS, IS_AUTHED, AUTH_TOKEN, AUTH_NAME, AUTH_NAME_MUT, AUTH_ROLE, AUTH_ROLE_MUT } from '@/store/names/Auth'\r\nimport { RootState } from '@/store/index'\r\nimport { Module } from 'vuex'\r\nimport axios from '@/plugins/axios'\r\nimport LoginData from '@/mixins/LoginData'\r\nimport router from '@/router'\r\n\r\ninterface AuthState {\r\n token: string;\r\n status: string;\r\n name: string;\r\n role: string;\r\n}\r\n\r\nconst Auth: Module = {\r\n state: {\r\n token: localStorage.getItem('user-token') || '',\r\n status: localStorage.getItem('user-token') ? 'success' : '',\r\n name: '',\r\n role: ''\r\n },\r\n getters: {\r\n [AUTH_STATUS]: state => state.status,\r\n [IS_AUTHED]: state => state.status === 'success',\r\n [AUTH_TOKEN]: state => state.token,\r\n [AUTH_NAME]: state => state.name,\r\n [AUTH_ROLE]: state => state.role\r\n },\r\n actions: {\r\n [AUTH_REQUEST_ACTION] ({ commit }, loginData: LoginData) {\r\n return new Promise((resolve, reject) => {\r\n commit(AUTH_REQUEST_MUT)\r\n axios.post('users/authenticate', loginData)\r\n .then(resp => {\r\n const token = resp.data.token\r\n localStorage.setItem('user-token', token)\r\n axios.defaults.headers.common.Authorization = 'Bearer ' + token\r\n commit(AUTH_SUCCESS_MUT, token)\r\n commit(AUTH_ROLE_MUT, resp.data.role)\r\n localStorage.setItem('user-role', resp.data.role)\r\n commit(AUTH_NAME_MUT, loginData.username)\r\n localStorage.setItem('user-name', loginData.username)\r\n resolve(resp)\r\n })\r\n .catch(err => {\r\n commit(AUTH_ERROR_MUT, err)\r\n localStorage.removeItem('user-token')\r\n reject(err)\r\n })\r\n })\r\n },\r\n [AUTH_LOGOUT_ACTION] ({ commit }) {\r\n return new Promise(resolve => {\r\n commit(AUTH_LOGOUT_MUT)\r\n localStorage.removeItem('user-token')\r\n router.push('/plan')\r\n resolve()\r\n })\r\n }\r\n },\r\n mutations: {\r\n [AUTH_REQUEST_MUT] (state) {\r\n state.status = 'loading'\r\n },\r\n [AUTH_SUCCESS_MUT] (state, token) {\r\n state.status = 'success'\r\n state.token = token\r\n },\r\n [AUTH_ERROR_MUT] (state) {\r\n state.status = 'error'\r\n state.token = ''\r\n },\r\n [AUTH_LOGOUT_MUT] (state) {\r\n state.status = ''\r\n state.token = ''\r\n state.role = ''\r\n state.name = ''\r\n localStorage.removeItem('user-token')\r\n localStorage.removeItem('user-role')\r\n localStorage.removeItem('user-name')\r\n },\r\n [AUTH_NAME_MUT] (state, name) {\r\n state.name = name\r\n },\r\n [AUTH_ROLE_MUT] (state, role) {\r\n state.role = role\r\n }\r\n }\r\n}\r\n\r\nexport default Auth\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport Auth from '@/store/modules/Auth'\r\n\r\nVue.use(Vuex)\r\n\r\nexport interface RootState {\r\n isInitialized: boolean;\r\n}\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n Auth\r\n },\r\n strict: true\r\n})\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport NavigationDrawer from '@/components/NavigationDrawer.vue'\r\nimport store from '@/store/index'\r\nimport router from '@/router/index'\r\nimport VueClipboard from 'vue-clipboard2'\r\nimport VueLazyload from 'vue-lazyload'\r\nimport { AUTH_NAME_MUT, AUTH_ROLE_MUT } from './store/names/Auth'\r\n\r\nVue.use(VueClipboard)\r\nVue.use(VueLazyload, {\r\n observer: true\r\n})\r\n\r\n@Component({\r\n router,\r\n store,\r\n components: {\r\n NavigationDrawer\r\n }\r\n})\r\nexport default class App extends Vue {\r\n drawer = false\r\n mounted () {\r\n const name = localStorage.getItem('user-name')\r\n if (name) {\r\n this.$store.commit(AUTH_NAME_MUT, name)\r\n }\r\n\r\n const role = localStorage.getItem('user-role')\r\n if (role) {\r\n this.$store.commit(AUTH_ROLE_MUT, role)\r\n }\r\n\r\n window.addEventListener('resize', this.appHeight)\r\n this.appHeight()\r\n }\r\n\r\n appHeight () {\r\n const doc = document.documentElement\r\n doc.style.setProperty('--app-height', `${window.innerHeight}px`)\r\n }\r\n}\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../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=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../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=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=457ff2fa&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VAppBar,VAppBarNavIcon,VFadeTransition,VMain,VToolbarTitle})\n","import Vue from 'vue'\r\nimport Vuetify from 'vuetify'\r\nimport '@mdi/font/css/materialdesignicons.css'\r\nimport de from 'vuetify/lib/locale/de'\r\n\r\nVue.use(Vuetify)\r\n\r\nfunction inIframe (): boolean {\r\n try {\r\n return window.self !== window.top\r\n } catch (e) {\r\n return true\r\n }\r\n}\r\n\r\nexport default new Vuetify({\r\n theme: {\r\n themes: {\r\n dark: {\r\n primary: '#ff7b00',\r\n secondary: '#cccccc',\r\n accent: '#ff7b00'\r\n },\r\n light: {\r\n primary: '#ff7b00',\r\n secondary: '#cccccc',\r\n accent: '#ff7b00'\r\n }\r\n },\r\n dark: !inIframe(),\r\n options: {\r\n customProperties: true\r\n }\r\n },\r\n lang: {\r\n locales: { de },\r\n current: de\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport App from '@/App.vue'\r\nimport router from '@/router/index'\r\nimport store from '@/store'\r\nimport vuetify from '@/plugins/vuetify'\r\nimport Axios from 'axios'\r\nimport { AUTH_LOGOUT_ACTION, IS_AUTHED } from './store/names/Auth'\r\n\r\ndocument.title = 'BSDC Calendar'\r\nVue.config.productionTip = false\r\n\r\nAxios.interceptors.response.use(undefined, function (err) {\r\n return new Promise(() => {\r\n if (store.getters[IS_AUTHED] && err.response.status === 401) {\r\n store.dispatch(AUTH_LOGOUT_ACTION)\r\n router.push('/')\r\n }\r\n throw err\r\n })\r\n})\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n vuetify,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n"],"sourceRoot":""}