diff --git a/api/migrations/0002_jobtemplate.py b/api/migrations/0002_jobtemplate.py
new file mode 100644
index 00000000..7257314f
--- /dev/null
+++ b/api/migrations/0002_jobtemplate.py
@@ -0,0 +1,28 @@
+# Generated by Django 2.2.6 on 2019-10-26 04:25
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [("api", "0001_initial")]
+
+ operations = [
+ migrations.CreateModel(
+ name="JobTemplate",
+ fields=[
+ (
+ "id",
+ models.AutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ ("name", models.CharField(max_length=255)),
+ ("job", models.TextField()),
+ ],
+ options={"db_table": "salt_job_template"},
+ )
+ ]
diff --git a/api/models.py b/api/models.py
index 783e0485..33176a03 100644
--- a/api/models.py
+++ b/api/models.py
@@ -53,7 +53,13 @@ def user(self):
def arguments(self):
ret = self.loaded_ret()
if "fun_args" in ret and ret["fun_args"]:
- return " ".join(str(i) for i in ret["fun_args"])
+ return " ".join(str(i) for i in ret["fun_args"] if "=" not in str(i))
+ return ""
+
+ def keyword_arguments(self):
+ ret = self.loaded_ret()
+ if "fun_args" in ret and ret["fun_args"]:
+ return " ".join(str(i) for i in ret["fun_args"] if "=" in str(i))
return ""
def success_bool(self):
@@ -104,6 +110,18 @@ class Meta:
app_label = "api"
+class JobTemplate(models.Model):
+ name = models.CharField(max_length=255)
+ job = models.TextField()
+
+ def __str__(self):
+ return "{}".format(self.name)
+
+ class Meta:
+ db_table = "salt_job_template"
+ app_label = "api"
+
+
class Minions(models.Model):
minion_id = models.CharField(max_length=128, null=False, blank=False)
grain = models.TextField()
diff --git a/api/serializers.py b/api/serializers.py
index e072840e..cd9489d1 100644
--- a/api/serializers.py
+++ b/api/serializers.py
@@ -1,7 +1,10 @@
+import json
+
from django.contrib.auth.models import User
from rest_framework import serializers
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
+from api.utils import RawCommand
from .models import (
SaltReturns,
SaltEvents,
@@ -12,12 +15,14 @@
UserSettings,
Functions,
Schedule,
+ JobTemplate,
)
class SaltReturnsSerializer(serializers.ModelSerializer):
user = serializers.CharField()
arguments = serializers.CharField()
+ keyword_arguments = serializers.CharField()
success = serializers.BooleanField(source="success_bool")
class Meta:
@@ -74,11 +79,26 @@ class Meta:
fields = "__all__"
+class JobTemplateSerializer(serializers.ModelSerializer):
+ def create(self, validated_data):
+ name = validated_data["name"]
+ job = validated_data["job"]
+ command = RawCommand(job)
+ parsed_command = command.parse()
+ obj, created = JobTemplate.objects.update_or_create(
+ name=name, defaults={"job": json.dumps(parsed_command[0])}
+ )
+ return obj
+
+ class Meta:
+ model = JobTemplate
+ fields = "__all__"
+
+
class UsersSerializer(serializers.ModelSerializer):
user_settings = UserSettingsSerializer(read_only=True)
def create(self, validated_data):
- print(validated_data)
for param in ["is_active", "groups", "user_permissions"]:
del validated_data[param]
user = User(**validated_data)
diff --git a/api/urls.py b/api/urls.py
index 471e859b..878c2630 100644
--- a/api/urls.py
+++ b/api/urls.py
@@ -30,6 +30,7 @@
search,
verify,
version,
+ JobTemplateViewSet,
)
from rest_framework import routers
@@ -43,6 +44,7 @@
router.register(r"minionsfields", MinionsCustomFieldsViewSet)
router.register(r"functions", FunctionsViewSet)
router.register(r"schedules", ScheduleViewSet)
+router.register(r"job_templates", JobTemplateViewSet)
urlpatterns = [
path("", index_view, name="index"),
diff --git a/api/views/alcali.py b/api/views/alcali.py
index 45fc9a55..906c4aca 100644
--- a/api/views/alcali.py
+++ b/api/views/alcali.py
@@ -36,7 +36,7 @@
manage_schedules,
)
from api.models import SaltReturns, Keys, Minions, SaltEvents, Schedule, Conformity
-from api.models import UserSettings, MinionsCustomFields, Functions
+from api.models import UserSettings, MinionsCustomFields, Functions, JobTemplate
from api.permissions import IsLoggedInUserOrAdmin, IsAdminUser
from api.renderer import StreamingRenderer
from api.serializers import (
@@ -48,6 +48,7 @@
ScheduleSerializer,
MyTokenObtainPairSerializer,
SaltReturnsSerializer,
+ JobTemplateSerializer,
)
from api.serializers import KeysSerializer, MinionsSerializer
from api.utils import graph_data, render_conformity, RawCommand
@@ -329,6 +330,11 @@ class UserSettingsViewSet(viewsets.ModelViewSet):
serializer_class = UserSettingsSerializer
+class JobTemplateViewSet(viewsets.ModelViewSet):
+ queryset = JobTemplate.objects.all()
+ serializer_class = JobTemplateSerializer
+
+
@api_view(["GET"])
def jobs_graph(request):
id = request.query_params.get("id", None)
@@ -387,7 +393,6 @@ def stats(request):
@api_view(["GET"])
def version(request):
-
return Response({"version": settings.VERSION})
diff --git a/dist/index.html b/dist/index.html
index 40625cbd..496fc342 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1 +1 @@
-
ALCALI We're sorry but my-app doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
+ALCALI We're sorry but my-app doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
diff --git a/dist/static/css/app.321866b5.css b/dist/static/css/app.7dd676e0.css
similarity index 92%
rename from dist/static/css/app.321866b5.css
rename to dist/static/css/app.7dd676e0.css
index de3c71eb..793fc662 100644
--- a/dist/static/css/app.321866b5.css
+++ b/dist/static/css/app.7dd676e0.css
@@ -1 +1 @@
-::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#f5f5f5}::-webkit-scrollbar{width:10px;background-color:#f5f5f5}::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#555}span .v-chip__content{white-space:nowrap}.v-list{border-radius:0!important}html{overflow-y:auto!important}.v-menu--inline[data-v-bcf3f6c0]{display:block}.chartjs-tooltip-key[data-v-bcf3f6c0]{display:inline-block;width:10px;height:10px;margin-right:10px}html[data-v-e48ee6a0]{overflow-y:auto!important}.cm-s-made-of-code{font-size:1em;line-height:1.5em;font-family:inconsolata,monospace;letter-spacing:.3px;word-spacing:1px;background:rgba(9,9,22,.95);color:#f8f8f8}.cm-s-made-of-code .CodeMirror-lines{padding:8px 0}.cm-s-made-of-code .CodeMirror-gutters{box-shadow:1px 0 2px 0 rgba(0,0,0,.5);-webkit-box-shadow:1px 0 2px 0 rgba(0,0,0,.5);background-color:rgba(9,9,22,.95);padding-right:10px;z-index:3;border:none}.cm-s-made-of-code div.CodeMirror-cursor{border-left:3px solid #f8f8f8}.cm-s-made-of-code .CodeMirror-activeline-background{background:transparent}.cm-s-made-of-code .CodeMirror-selected{background:rgba(0,125,255,.5)}.cm-s-made-of-code .cm-comment{color:#54576b;background:transparent}.cm-s-made-of-code .cm-keyword{color:#ff3854}.cm-s-made-of-code .cm-string{color:#8fff58;background:rgba(16,38,34,.98)}.cm-s-made-of-code .cm-atom,.cm-s-made-of-code .cm-number,.cm-s-made-of-code .cm-property{color:#f1d950}.cm-s-made-of-code .cm-operator{color:#ff3854}.cm-s-made-of-code .CodeMirror-linenumber{color:#54576b}.cm-s-made-of-code{padding-top:10px;outline:thin solid rgba(51,51,51,.3)}.CodeMirror{height:100%;font-size:16px}div.CodeMirror-sizer>div{padding-left:10px}.CodeMirror-foldmarker{color:#333;text-shadow:#bfbfbf 1px 1px 2px,#bfbfbf -1px -1px 2px,#bfbfbf 1px -1px 2px,#bfbfbf -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.9em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.overlayedBtn[data-v-107b300f]{position:absolute;right:0;z-index:1}.ansiStyle[data-v-ebea9e70]{background-color:#000;padding:10px}.desc[data-v-5dd162c9]{background-color:#8a8a8a;border:10px;border-right:20px}.ansiStyle[data-v-5dd162c9]{background-color:#000;padding:10px}.v-expansion-panel-content[data-v-69fc5fbb]{background-color:#000}
\ No newline at end of file
+::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#f5f5f5}::-webkit-scrollbar{width:10px;background-color:#f5f5f5}::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#555}span .v-chip__content{white-space:nowrap}.v-list{border-radius:0!important}html{overflow-y:auto!important}.v-menu--inline[data-v-bcf3f6c0]{display:block}.chartjs-tooltip-key[data-v-bcf3f6c0]{display:inline-block;width:10px;height:10px;margin-right:10px}html[data-v-e48ee6a0]{overflow-y:auto!important}.cm-s-made-of-code{font-size:1em;line-height:1.5em;font-family:inconsolata,monospace;letter-spacing:.3px;word-spacing:1px;background:rgba(9,9,22,.95);color:#f8f8f8}.cm-s-made-of-code .CodeMirror-lines{padding:8px 0}.cm-s-made-of-code .CodeMirror-gutters{box-shadow:1px 0 2px 0 rgba(0,0,0,.5);-webkit-box-shadow:1px 0 2px 0 rgba(0,0,0,.5);background-color:rgba(9,9,22,.95);padding-right:10px;z-index:3;border:none}.cm-s-made-of-code div.CodeMirror-cursor{border-left:3px solid #f8f8f8}.cm-s-made-of-code .CodeMirror-activeline-background{background:transparent}.cm-s-made-of-code .CodeMirror-selected{background:rgba(0,125,255,.5)}.cm-s-made-of-code .cm-comment{color:#54576b;background:transparent}.cm-s-made-of-code .cm-keyword{color:#ff3854}.cm-s-made-of-code .cm-string{color:#8fff58;background:rgba(16,38,34,.98)}.cm-s-made-of-code .cm-atom,.cm-s-made-of-code .cm-number,.cm-s-made-of-code .cm-property{color:#f1d950}.cm-s-made-of-code .cm-operator{color:#ff3854}.cm-s-made-of-code .CodeMirror-linenumber{color:#54576b}.cm-s-made-of-code{padding-top:10px;outline:thin solid rgba(51,51,51,.3)}.CodeMirror{height:100%;font-size:16px}div.CodeMirror-sizer>div{padding-left:10px}.CodeMirror-foldmarker{color:#333;text-shadow:#bfbfbf 1px 1px 2px,#bfbfbf -1px -1px 2px,#bfbfbf 1px -1px 2px,#bfbfbf -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.9em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.overlayedBtn[data-v-107b300f]{position:absolute;right:0;z-index:1}.ansiStyle[data-v-664654b1]{background-color:#000;padding:10px}.desc[data-v-ab381b0c]{background-color:#8a8a8a;border:10px;border-right:20px}.ansiStyle[data-v-ab381b0c]{background-color:#000;padding:10px}.v-expansion-panel-content[data-v-69fc5fbb]{background-color:#000}
\ No newline at end of file
diff --git a/dist/static/js/app.6bf41df6.js b/dist/static/js/app.6bf41df6.js
new file mode 100644
index 00000000..1bb1eb5d
--- /dev/null
+++ b/dist/static/js/app.6bf41df6.js
@@ -0,0 +1,2 @@
+(function(t){function e(e){for(var s,r,o=e[0],l=e[1],c=e[2],u=0,h=[];u0?a("span",[t._v(t._s(t.notif_nb))]):t._e()]},proxy:!0}],null,!0)},[a("v-icon",t._g({on:{click:function(e){t.notif_nb=0}}},s),[t._v("notifications")])],1)]}}]),model:{value:t.notif_menu,callback:function(e){t.notif_menu=e},expression:"notif_menu"}},[a("v-card",{attrs:{"min-width":"500px","max-width":"500px"}},[a("v-list",{attrs:{"max-height":"700px"}},[0===t.messages.length?a("v-list-item",[a("v-list-item-content",[a("v-list-item-subtitle",[t._v("No new notifications")])],1)],1):t._e(),t._l(t.messages,function(e,s){return a("v-list-item",{key:s,attrs:{to:e.link}},[a("v-list-item-avatar",[a("v-icon",{attrs:{dark:"",color:e.color,size:"62"}},[t._v(t._s(e.icon))])],1),a("v-list-item-content",[a("v-list-item-title",[t._v(t._s(e.text))]),a("v-list-item-subtitle",[t._v(t._s(e.tag))])],1)],1)})],2),a("v-card-actions",{directives:[{name:"show",rawName:"v-show",value:t.messages.length>0,expression:"messages.length > 0"}]},[a("v-spacer"),a("v-btn",{attrs:{text:""},on:{click:function(e){t.messages=[]}}},[t._v("Clear")])],1)],1)],1),a("v-menu",{attrs:{bottom:"",left:"","offset-y":"","offset-x":"","close-on-click":""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-btn",t._g({attrs:{icon:""}},s),[a("v-icon",[t._v("mdi-dots-vertical")])],1)]}}])},[a("v-list",[a("v-list-item",{on:{click:t.toggleTheme}},[a("v-list-item-title",[t._v("Toggle Theme")])],1),a("v-divider"),a("v-list-item",{on:{click:t.logout}},[a("v-list-item-title",[t._v("Logout")])],1)],1)],1)],1),a("v-content",[a("v-container",[a("v-fade-transition",{attrs:{mode:"out-in"}},[a("router-view")],1)],1)],1)],1)},o=[],l={methods:{fnmatch(t){if(-1===t.indexOf("*"))return e=>t===e;{let e=/[\\^$.*+?()[\]{}|]/g,a=t.replace(e,"\\$&"),s=new RegExp("^"+a.replace(/\\\*/g,".*")+"$");return t=>s.test(t)}},sleep(t){return new Promise(e=>setTimeout(e,t))}}},c={name:"Layout",props:{source:String},data:()=>({expand_search:!1,notif_menu:!1,searchInput:"",drawer:!0,mini:!0,messages:[],settings:null,notif_nb:0,notifs:{created:!1,published:!1,returned:!1,event:!1},routes:[{name:"Overview",path:"/",icon:"dashboard"},{name:"Minions",path:"/minions",icon:"device_hub"},{name:"Jobs",path:"/jobs",icon:"playlist_play"},{name:"Run",path:"/run",icon:"play_arrow"},{name:"Job Templates",path:"/job_templates",icon:"playlist_add_check"},{name:"Schedules",path:"/schedules",icon:"schedule"},{name:"Conformity",path:"/conformity",icon:"done_all"},{name:"Keys",path:"/keys",icon:"compare_arrows"},{name:"Events",path:"/events",icon:"playlist_add"}]}),methods:{logout:function(){this.$store.dispatch("logout").then(()=>{this.$router.push("/login")})},searchBar(){""!==this.searchInput&&this.$router.push({name:"search",query:{q:this.searchInput}})},getPrefs(){this.$http.get("api/userssettings/"+this.$store.getters.user_id+"/").then(t=>{this.settings=t.data,Object.keys(this.notifs).forEach(t=>{this.notifs[t]=this.settings["notifs_"+t]})})},toggleTheme(){this.$store.dispatch("toggleTheme").then(()=>{this.$vuetify.theme.dark=JSON.parse(this.$store.state.theme)})},saltStatus(){let t=l.methods.fnmatch("salt/job/*"),e=l.methods.fnmatch("salt/job/*/new"),a=l.methods.fnmatch("salt/job/*/ret/*"),s=new EventSource("/api/event_stream/");s.addEventListener("open",()=>{this.$store.dispatch("updateWs")}),s.addEventListener("message",s=>{let n=JSON.parse(s.data);if(e(n.tag)&&!0===this.notifs.published){n.type="new",n.color="green",n.icon="keyboard_tab",n.link="";let t="";t=n.data.hasOwnProperty("tgt")?n.data.tgt:n.data.minions.length+" minion(s)",n.text="Job "+n.data.fun+" published for "+t,this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1}else a(n.tag)&&!0===this.notifs.returned?(n.type="return",n.color="primary",n.icon="subdirectory_arrow_left",n.text="Job "+n.data.fun+" returned for "+n.data.id,n.link="/jobs/"+n.data.jid+"/"+n.data.id,this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1):t(n.tag)&&!0===this.notifs.event?(n.type="event",n.color="orange",n.icon="more_horiz",n.text="Job Event",n.link="",this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1):/^\w{20}$/.test(n.tag)&&!0===this.notifs.created&&(n.type="created",n.color="secondary",n.icon="add",n.text="New Job Created",n.link="",this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1)},!1)}},mounted(){this.getPrefs(),this.saltStatus(),this.$vuetify.theme.dark=JSON.parse(this.$store.getters.theme)},computed:{username(){return this.$store.state.username},email(){return this.$store.state.email},theme(){return this.$store.state.theme}}},d=c,u=(a("355a"),a("2877")),h=a("6544"),m=a.n(h),v=a("7496"),p=a("40dc"),f=a("5bc1"),b=a("4ca6"),_=a("8336"),g=a("b0af"),y=a("99d9"),x=a("a523"),k=a("a75b"),C=a("ce7e"),w=a("0789"),j=a("132d"),V=a("8860"),S=a("da13"),T=a("1800"),$=a("8270"),D=a("5d23"),O=a("e449"),E=a("f774"),R=a("2fa4"),A=a("8654"),F=a("2a7f"),I=a("3a2f"),P=Object(u["a"])(d,r,o,!1,null,null,null),M=P.exports;m()(P,{VApp:v["a"],VAppBar:p["a"],VAppBarNavIcon:f["a"],VBadge:b["a"],VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VContainer:x["a"],VContent:k["a"],VDivider:C["a"],VExpandTransition:w["a"],VFadeTransition:w["d"],VIcon:j["a"],VList:V["a"],VListItem:S["a"],VListItemAction:T["a"],VListItemAvatar:$["a"],VListItemContent:D["a"],VListItemSubtitle:D["b"],VListItemTitle:D["c"],VMenu:O["a"],VNavigationDrawer:E["a"],VSpacer:R["a"],VTextField:A["a"],VToolbarTitle:F["a"],VTooltip:I["a"]});var L=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("router-view")},N=[],J={name:"SimpleLayout"},q=J,U=Object(u["a"])(q,L,N,!1,null,"0f66a338",null),z=U.exports,B={computed:{layout(){return this.$route.meta.plainLayout}},components:{"app-layout":M,"simple-layout":z}},H=B,K=(a("034f"),Object(u["a"])(H,n,i,!1,null,null,null)),G=K.exports;m()(K,{VApp:v["a"]});a("5363");var W=a("f309"),Y=a("2db4"),Q=a("87f6"),X=a.n(Q);s["a"].use(W["a"],{components:{VSnackbar:Y["a"],VBtn:_["a"],VIcon:j["a"]}}),s["a"].use(X.a,{x:"center",y:"bottom",color:"black",icon:"info",iconColor:"",classes:["body-2"],timeout:3e3,dismissable:!0,multiLine:!1,vertical:!1,queueable:!1,showClose:!0,closeText:"",closeColor:"",shorts:{custom:{color:"purple"}},property:"$toast"});var Z=new W["a"]({icons:{iconfont:"md"},theme:{themes:{light:{primary:"#6200EE",secondary:"#03DAC6"},dark:{secondary:"#BB86FC",primary:"#03DAC6"}}}}),tt=a("8c4f"),et=a("2f62"),at=a("bc3a"),st=a.n(at);s["a"].use(et["a"]);var nt=new et["a"].Store({state:{username:localStorage.getItem("username")||"",email:localStorage.getItem("email")||"",id:localStorage.getItem("id")||"",access:localStorage.getItem("access")||"",refresh:localStorage.getItem("refresh")||"",ws_status:!1,theme:localStorage.getItem("theme")||!1},mutations:{auth_success(t,e){Object.keys(e).forEach(a=>{t[a]=e[a]})},logout(t){t.access=""},updateWs(t){t.ws_status=!0},toggleTheme(t){t.theme=!t.theme,localStorage.setItem("theme",JSON.stringify(t.theme))}},getters:{isLoggedIn:t=>!!t.access,theme:t=>t.theme,user_id:t=>t.id},actions:{updateWs({commit:t}){t("updateWs")},toggleTheme({commit:t}){t("toggleTheme")},login({commit:t},e){return new Promise((a,s)=>{st()({url:"/api/token/",data:e,method:"POST"}).then(e=>{Object.keys(e.data).forEach(t=>{localStorage.setItem(t,e.data[t])}),st.a.defaults.headers.common.Authorization=`Bearer ${e.data.access}`,t("auth_success",e.data),a(e)}).catch(t=>{localStorage.clear(),s(t)})})},logout({commit:t}){return new Promise(e=>{t("logout"),localStorage.clear(),delete st.a.defaults.headers.common["Authorization"],e()})}}}),it=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"7"}},[a("ConformityChart")],1),a("v-col",{attrs:{sm:"6",lg:"2"}},[a("KeysStatusCard")],1),a("v-col",{attrs:{sm:"6",lg:"3"}},[a("AlcaliStatusCard")],1)],1),a("v-row",[a("v-col",{attrs:{lg:"12"}},[a("JobsChartCard")],1)],1),a("v-row",[a("v-col",{attrs:{lg:"12"}},[a("JobsTable",{attrs:{filter:{limit:10}}})],1)],1)],1)},rt=[],ot=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Keys")]),a("v-simple-table",[a("tbody",t._l(t.keys_status,function(e,s){return a("tr",{key:s},[a("td",{staticClass:"pr-0"},[a("v-icon",[t._v(t._s(t.statusIcon(s)))])],1),a("td",{staticClass:"pl-0"},[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e)+" / "+t._s(t.keys_total))])])}),0)])],1)],1)},lt=[],ct={name:"KeysStatusCard",data(){return{keys_status:{},keys_total:0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/keys/keys_status/").then(t=>{this.keys_status=t.data,this.keys_total=Object.values(t.data).reduce((t,e)=>t+e)})},statusIcon(t){switch(t){case"accepted":return"check";case"rejected":return"first_page";case"denied":return"close";case"unaccepted":return"refresh"}}}},dt=ct,ut=a("1f4f"),ht=Object(u["a"])(dt,ot,lt,!1,null,"b6756222",null),mt=ht.exports;m()(ht,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VIcon:j["a"],VSimpleTable:ut["a"]});var vt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",{attrs:{elevation:null==t.minion?2:0}},[a("v-list-item",{attrs:{"three-line":"",dense:""}},[a("v-list-item-content",[a("v-list-item-title",{staticClass:"headline mb-1"},[t._v("Jobs Stats")])],1),a("v-spacer"),a("v-list-item-content",{staticClass:"mr-6"},[a("v-select",{attrs:{items:t.filters,label:"Filter","return-object":""},on:{change:t.loadData},model:{value:t.selectedFilter,callback:function(e){t.selectedFilter=e},expression:"selectedFilter"}})],1),a("v-list-item-content",[a("v-select",{attrs:{items:t.periods,label:"Period","return-object":""},on:{change:t.loadData},model:{value:t.selectedPeriod,callback:function(e){t.selectedPeriod=e},expression:"selectedPeriod"}})],1)],1),a("canvas",{ref:"chart"})],1)],1)},pt=[],ft=a("30ef"),bt=a.n(ft);let _t={afterLayout:function(t){if(t.options.linearGradientLine){let e=t.chart.ctx;t.data.datasets.forEach(a=>{let s=Number.MAX_VALUE,n=Number.MIN_VALUE;for(let t=0;ta.data[t]&&(s=a.data[t]),n{let s=(t.chartArea.left+t.chartArea.right)/2,n=(t.chartArea.top+t.chartArea.bottom)/2,i=e.createRadialGradient(s,n,2*t.innerRadius*.2,s,n,2*t.innerRadius);i.addColorStop(0,a.colorStart),i.addColorStop(1,a.colorEnd),a.backgroundColor=i})}}};var gt=_t,yt={name:"JobsChartCard",props:["minion"],data(){return{filters:[{text:"All",value:"all"},{text:"Highstate",value:"highstate"},{text:"Other",value:"other"}],periods:[{text:"Week",value:7},{text:"Two Weeks",value:14},{text:"Month",value:30},{text:"Year",value:365}],jobchart:null,selectedFilter:null,selectedPeriod:null,labels:null,chart_data:[]}},mounted(){this.createChart()},methods:{loadData(){let t=null==this.selectedFilter?"all":this.selectedFilter.value,e=null==this.selectedPeriod?7:this.selectedPeriod.value,a={params:{fun:t,period:e}};this.minion&&(a.params.id=this.minion),this.$http.get("api/jobs/graph",a).then(t=>{this.jobchart.data.labels=t.data.labels,this.jobchart.data.datasets[0].data=t.data.series[0],this.jobchart.data.datasets[1].data=t.data.series[1],this.jobchart.update()})},createChart(){let t=null==this.selectedFilter?"all":this.selectedFilter.value,e=null==this.selectedPeriod?7:this.selectedPeriod.value,a={params:{fun:t,period:e}};this.minion&&(a.params.id=this.minion),null!=this.jobchart&&this.jobchart.destroy(),this.$http.get("api/jobs/graph",a).then(t=>{this.labels=t.data.labels,this.chart_data[0]=t.data.series[0],this.chart_data[1]=t.data.series[1],this.$refs.chart.height=60,this.jobchart=new bt.a(this.$refs.chart,{type:"line",data:{labels:this.labels,datasets:[{lineTension:.1,pointRadius:1,data:this.chart_data[0],fill:!1,colorStart:"rgba(0, 173, 238, 1.0)",colorEnd:"rgba(231, 18, 143, 1.0)"},{lineTension:.1,pointRadius:1,data:this.chart_data[1],fill:!1,colorStart:"rgba(255, 255, 255, 1.0)",colorEnd:"rgba(255, 0, 0, 1.0)"}]},options:{linearGradientLine:!0,legend:{display:!1},scales:{xAxes:[{gridLines:{display:!0}}],yAxes:[{gridLines:{display:!0},ticks:{autoSkip:!0,beginAtZero:!0,maxTicksLimit:6}}]},responsive:!0},plugins:[gt]})})}}},xt=yt,kt=a("b974"),Ct=Object(u["a"])(xt,vt,pt,!1,null,"e0df043e",null),wt=Ct.exports;m()(Ct,{VCard:g["a"],VContainer:x["a"],VListItem:S["a"],VListItemContent:D["a"],VListItemTitle:D["c"],VSelect:kt["a"],VSpacer:R["a"]});var jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Status")]),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("Salt WebSocket")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.wsStatus?"green":"red","text-color":"white"}},[t._v("\n "+t._s(t.wsStatus?"OK":"NOT OK")+"\n ")])],1)]),t._l(t.stats,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e))])])})],2)])],1)],1)},Vt=[],St={name:"AlcaliStatusCard",mixins:[l],data(){return{stats:{}}},mounted(){this.loadData()},computed:{wsStatus(){return this.$store.state.ws_status}},methods:{loadData(){this.$http.get("api/stats/").then(t=>this.stats=t.data)}}},Tt=St,$t=a("cc20"),Dt=Object(u["a"])(Tt,jt,Vt,!1,null,"1eb41eb0",null),Ot=Dt.exports;m()(Dt,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"]});var Et=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Conformity")]),a("v-card-text",[a("v-container",[t._l(t.conformitynames,function(e){return[a("v-row",{key:e,attrs:{"no-gutters":"",align:"center",justify:"center"}},[a("v-col",{attrs:{sm:"2"}},[t._v(t._s(e))]),a("v-col",{attrs:{sm:"10"}},[a("v-menu",{attrs:{"open-on-hover":"","max-width":"250px"},scopedSlots:t._u([{key:"activator",fn:function(s){var n=s.on;return[a("canvas",t._g({ref:e,refInFor:!0,attrs:{height:"15"}},n))]}}],null,!0)},[a("v-simple-table",{attrs:{dense:""}},[a("thead",[a("tr",[a("th",[t._v(t._s(e))])])]),a("tbody",{domProps:{innerHTML:t._s(t.customTool)}})])],1)],1)],1)]})],2)],1)],1)],1)},Rt=[],At=(a("02d0"),a("fcf4")),Ft={name:"ConformityChart",data(){return{conformitynames:null,confchart:null,conformity:null,customTool:""}},created(){},mounted(){this.loadConformity()},methods:{loadConformity(){this.$http.get("api/minions/conformity/").then(t=>{this.conformity=t.data.data,this.conformitynames=t.data.name}).then(()=>{this.conformity.forEach((t,e)=>{let a={labels:[this.conformitynames[e]],datasets:[]};Object.keys(t).forEach(e=>{let s="";if(["conflict","false"].indexOf(e)>=0)s="#F44336";else if(["conform","true"].indexOf(e)>=0)s="#41f40e";else if(["None","unknown","null"].indexOf(e)>=0)s=this.$vuetify.theme.themes.light.primary;else{let t=Object.keys(At["a"]);s=At["a"][t[t.length*Math.random()<<0]].darken2}a.datasets.push({label:e,data:[t[e]],backgroundColor:s})}),new bt.a(this.$refs[this.conformitynames[e]],{type:"horizontalBar",data:a,options:{animation:!1,plugins:{stacked100:{enable:!0}},tooltips:{enabled:!1,mode:"index",intersect:!1,custom:t=>{if(t&&t.body){let e=t.body.map(t=>t.lines),a="";e.forEach(function(e,s){let n=t.labelColors[s],i="background:"+n.backgroundColor;i+="; border-color:"+n.borderColor,i+="; border-width: 2px";let r=`__ `;a+=""+r+" "+e+" "}),this.customTool=a}}},legend:{display:!1},scales:{xAxes:[{stacked:!0,display:!1,gridLines:{display:!1,drawTicks:!1,drawBorder:!1},ticks:{display:!1,padding:-20}}],yAxes:[{stacked:!0,display:!1,ticks:{display:!1,padding:-20},gridLines:{drawTicks:!1,display:!1,drawBorder:!1}}]}}})})})}}},It=Ft,Pt=(a("3244"),a("62ad")),Mt=a("0fd9"),Lt=Object(u["a"])(It,Et,Rt,!1,null,"bcf3f6c0",null),Nt=Lt.exports;m()(Lt,{VCard:g["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Pt["a"],VContainer:x["a"],VMenu:O["a"],VRow:Mt["a"],VSimpleTable:ut["a"]});var Jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[null==t.filter?a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{staticClass:"mb-8"},[a("v-row",[a("v-col",{attrs:{lg:"2"}},[a("v-card-title",[t._v("Search Jobs")])],1),a("v-divider"),a("v-col",{attrs:{lg:"2","align-self":"center"}},[a("v-menu",{ref:"menu",attrs:{"close-on-content-click":!1,"return-value":t.selectedDate,transition:"scale-transition","offset-y":"","min-width":"290px"},on:{"update:returnValue":function(e){t.selectedDate=e},"update:return-value":function(e){t.selectedDate=e}},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{label:"Select date(s)",readonly:""},model:{value:t.dateRangeText,callback:function(e){t.dateRangeText=e},expression:"dateRangeText"}},s))]}}],null,!1,4129137489),model:{value:t.menu,callback:function(e){t.menu=e},expression:"menu"}},[a("v-date-picker",{attrs:{max:(new Date).toISOString().split("T")[0],reactive:"","no-title":"",range:""},model:{value:t.selectedDate,callback:function(e){t.selectedDate=e},expression:"selectedDate"}},[a("div",{staticClass:"flex-grow-1"}),a("v-btn",{attrs:{text:"",color:"primary"},on:{click:function(e){t.menu=!1}}},[t._v("Cancel")]),a("v-btn",{attrs:{text:"",color:"primary"},on:{click:function(e){return t.$refs.menu.save(t.selectedDate)}}},[t._v("OK")])],1)],1)],1),a("v-col",{attrs:{lg:"2"}},[a("v-autocomplete",{attrs:{items:t.users,label:"User(s)",multiple:"","single-line":""},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item,n=e.index;return[0===n?a("span",[t._v(t._s(s))]):t._e(),1===n?a("span",{staticClass:"grey--text caption"},[t._v(" (+"+t._s(t.selectedUsers.length-1)+" others)")]):t._e()]}}],null,!1,2591977476),model:{value:t.selectedUsers,callback:function(e){t.selectedUsers=e},expression:"selectedUsers"}})],1),a("v-col",{attrs:{lg:"2"}},[a("v-autocomplete",{attrs:{items:t.minions,label:"Target(s)",multiple:"","single-line":""},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item,n=e.index;return[0===n?a("span",[t._v(t._s(s))]):t._e(),1===n?a("span",{staticClass:"grey--text caption"},[t._v(" (+"+t._s(t.selectedTarget.length-1)+" others)")]):t._e()]}}],null,!1,3190666039),model:{value:t.selectedTarget,callback:function(e){t.selectedTarget=e},expression:"selectedTarget"}})],1),a("v-col",{attrs:{lg:"1"}},[a("v-select",{attrs:{items:t.limit,label:"Limit","single-line":""},model:{value:t.selectedLimit,callback:function(e){t.selectedLimit=e},expression:"selectedLimit"}})],1),a("v-col",{attrs:{lg:"1","align-self":"center"}},[a("div",{staticClass:"text-center"},[a("v-btn",{attrs:{color:"primary"},on:{click:t.filterJobs}},[t._v("Search\n ")])],1)])],1)],1)],1)],1):t._e(),a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{attrs:{elevation:null==t.filter?2:0}},[a("v-card-title",[t._v("\n Jobs\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"jid","sort-desc":"","item-key":"uniqueid",headers:t.filteredHeaders,items:t.indexedItems,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.jid",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v(t._s(s.jid))])]}},{key:"item.id",fn:function(e){var s=e.item;return[a("v-btn",{directives:[{name:"show",rawName:"v-show",value:!t.filter,expression:"!filter"}],staticClass:"text-none",attrs:{text:"",small:"",to:"/minions/"+s.id}},[t._v(t._s(s.id))])]}},{key:"item.arguments",fn:function(e){var a=e.item;return[t._v("\n "+t._s(a.arguments.length>20?a.arguments.slice(0,20)+"...":a.arguments)+"\n ")]}},{key:"item.keyword_arguments",fn:function(e){var a=e.item;return[t._v("\n "+t._s(a.keyword_arguments.length>20?a.keyword_arguments.slice(0,20)+"...":a.keyword_arguments)+"\n ")]}},{key:"item.success",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.success),dark:""}},[t._v(t._s(t.boolText(s.success)))])]}},{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v("\n detail\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue-grey",tile:"",dark:"",to:"/run?tgt="+s.id+"&fun="+s.fun+"&arg="+s.arguments+"&kwarg="+s.keyword_arguments}},[t._v("\n rerun\n ")])],1)]}}])})],1)],1)],1)],1)},qt=[],Ut={name:"JobsTable",props:["filter"],data(){return{menu:!1,limit:[50,100,200,500,1e3],selectedDate:[],selectedLimit:null,selectedUsers:null,selectedTarget:null,minions:[],users:[],search:"",headers:[{text:"Jid",value:"jid"},{text:"Target",value:"id"},{text:"Function",value:"fun"},{text:"Arguments",value:"arguments"},{text:"Keyword Arguments",value:"keyword_arguments"},{text:"User",value:"user"},{text:"Status",value:"success"},{text:"Date",value:"alter_time"},{text:"Actions",value:"action",sortable:!1}],jobs:[],loading:!0}},computed:{indexedItems(){return this.jobs.map((t,e)=>({uniqueid:e,...t}))},dateRangeText(){return this.selectedDate.join(" ~ ")},filteredHeaders(){return this.filter&&this.filter.hasOwnProperty("target[]")&&this.headers.splice(1,1),this.headers}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/jobs/filters/").then(t=>{this.minions=t.data.minions,this.users=t.data.users}),this.$http.get("api/jobs/",{params:this.filter}).then(t=>{this.jobs=t.data,this.loading=!1})},filterJobs(){this.loading=!0;let t={limit:this.selectedLimit,target:this.selectedTarget,users:this.selectedUsers};this.selectedDate.length>0&&(t.start=this.selectedDate[0],t.end=this.selectedDate[1]||this.selectedDate[0]),this.$http.get("api/jobs/",{params:t}).then(t=>{this.jobs=t.data,this.loading=!1,this.selectedUsers=this.selectedTarget=this.selectedLimit=this.selectedDate=null,this.selectedDate=[]})},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"}}},zt=Ut,Bt=a("c6a6"),Ht=a("8fea"),Kt=a("2e4b"),Gt=Object(u["a"])(zt,Jt,qt,!1,null,"63e073c0",null),Wt=Gt.exports;m()(Gt,{VAutocomplete:Bt["a"],VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Pt["a"],VContainer:x["a"],VDataTable:Ht["a"],VDatePicker:Kt["a"],VDivider:C["a"],VMenu:O["a"],VRow:Mt["a"],VSelect:kt["a"],VSpacer:R["a"],VTextField:A["a"]});var Yt={name:"home",components:{JobsTable:Wt,ConformityChart:Nt,AlcaliStatusCard:Ot,KeysStatusCard:mt,JobsChartCard:wt}},Qt=Yt,Xt=Object(u["a"])(Qt,it,rt,!1,null,null,null),Zt=Xt.exports;m()(Xt,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var te=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-app",{attrs:{id:"inspire"}},[a("v-content",[a("v-container",{staticClass:"fill-height",attrs:{fluid:""}},[a("v-row",{attrs:{align:"center",justify:"center"}},[a("v-col",{attrs:{cols:"12",sm:"8",md:"4"}},[a("h1",{staticClass:"text-center font-weight-bold display-4 mb-8"},[t._v("ALCALI")]),a("v-card",{staticClass:"elevation-12"},[a("v-toolbar",{attrs:{color:"black",dark:"",flat:""}},[a("v-toolbar-title",[t._v("Login")]),a("v-spacer")],1),a("v-card-text",[a("v-form",[a("v-text-field",{attrs:{label:"Login",name:"login","prepend-icon":"person",type:"text"},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),a("v-text-field",{attrs:{label:"Password",name:"password","prepend-icon":"lock",type:"password"},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}})],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",dark:""},on:{click:function(e){return e.preventDefault(),t.authenticate(e)}}},[t._v("Login")])],1)],1)],1)],1)],1)],1)],1)},ee=[],ae={name:"Login",data:()=>({username:null,password:null}),methods:{authenticate(){let t=this.username,e=this.password;this.$store.dispatch("login",{username:t,password:e}).then(()=>this.$router.push("/")).catch(t=>{this.$toast.error("Invalid Login / Password")})}}},se=ae,ne=(a("a084"),a("4bd4")),ie=a("71d9"),re=Object(u["a"])(se,te,ee,!1,null,"e48ee6a0",null),oe=re.exports;m()(re,{VApp:v["a"],VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCol:Pt["a"],VContainer:x["a"],VContent:k["a"],VForm:ne["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"],VToolbar:ie["a"],VToolbarTitle:F["a"]});var le=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",cols:"12"}},[a("JobsTable")],1)],1)],1)},ce=[],de={name:"Jobs",components:{JobsTable:Wt}},ue=de,he=Object(u["a"])(ue,le,ce,!1,null,"4867fa69",null),me=he.exports;m()(he,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var ve=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("KeysTable",{key:t.refreshKey})],1)],1),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)},pe=[],fe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Keys\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id",headers:t.headers,items:t.keys,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return["accepted"===s.status?[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id))])]:[t._v("\n "+t._s(s.minion_id)+"\n ")]]}},{key:"item.status",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.keysRepr(s.status),dark:""}},[t._v(t._s(s.status.toString()))])]}},{key:"item.action",fn:function(e){var s=e.item;return[t._l(t.keyAction(s.status),function(e){return[a("v-btn",{key:e,staticClass:"ma-2",attrs:{small:"",dark:"",color:t.keysRepr(e)},on:{click:function(a){return t.manageKey(e,s.minion_id)}}},[t._v("\n "+t._s(e)+"\n ")])]})]}}])})],1)],1)},be=[],_e={name:"KeysTable",data(){return{search:"",headers:[{text:"Minion Id",value:"minion_id"},{text:"Status",value:"status"},{text:"Public Key",value:"pub"},{text:"Actions",value:"action",sortable:!1}],keys:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/keys/").then(t=>{this.keys=t.data,this.loading=!1})},sleep(t){return new Promise(e=>setTimeout(e,t))},keysRepr(t){return t.startsWith("accept")?"green":t.startsWith("reject")?"orange":t.startsWith("de")?"red":"grey"},keyAction(t){return"accepted"===t?["reject","delete"]:"rejected"===t?["accept","delete"]:"denied"===t?["accept"]:["accept","delete"]},manageKey(t,e){let a=new FormData;a.set("action",t),a.set("target",e),this.$http.post("api/keys/manage_keys/",a).then(t=>{this.$toast(t.data.result)}),this.sleep(2e3).then(()=>{this.loadData()})}}},ge=_e,ye=Object(u["a"])(ge,fe,be,!1,null,"50efcc63",null),xe=ye.exports;m()(ye,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ke=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-speed-dial",{attrs:{fixed:"",bottom:"",right:"",direction:"top",transition:"slide-y-reverse-transition"},scopedSlots:t._u([{key:"activator",fn:function(){return[a("v-btn",{attrs:{color:"primary",fab:""},model:{value:t.fab,callback:function(e){t.fab=e},expression:"fab"}},[t.fab?a("v-icon",[t._v("close")]):a("v-icon",[t._v("menu")])],1)]},proxy:!0}]),model:{value:t.fab,callback:function(e){t.fab=e},expression:"fab"}},[t._l(t.fabs,function(e){return[a("v-tooltip",{key:e.tooltip,attrs:{left:""},scopedSlots:t._u([{key:"activator",fn:function(s){var n=s.on;return[a("v-btn",t._g({attrs:{fab:"",dark:"",small:"",color:e.color},on:{click:function(a){return t.emit("fab_action",e.action)}}},n),[a("v-icon",[t._v(t._s(e.icon))])],1)]}}],null,!0)},[a("span",[t._v(t._s(e.tooltip))])])]})],2)},Ce=[],we={name:"Fab",props:["fabs"],methods:{emit(t,e){this.$emit(t,e)}},data:()=>({fab:!1})},je=we,Ve=a("c73b"),Se=Object(u["a"])(je,ke,Ce,!1,null,"56c34fbd",null),Te=Se.exports;m()(Se,{VBtn:_["a"],VIcon:j["a"],VSpeedDial:Ve["a"],VTooltip:I["a"]});var $e={name:"Keys",components:{Fab:Te,KeysTable:xe},data:()=>({fabs:[{color:"blue",action:"refreshKeys",icon:"compare_arrows",tooltip:"Refresh keys"},{color:"orange",action:"rejectAll",icon:"close",tooltip:"Reject all keys"},{color:"green",action:"acceptAll",icon:"done",tooltip:"Accept all keys"}],refreshKey:0}),methods:{fabAction(t){this[t]()},refreshKeys(){this.$toast("refreshing keys"),this.$http.post("/api/keys/refresh/").then(()=>{this.$toast("keys refreshed")}).then(()=>{this.refreshKey+=1}).catch(function(t){alert(t)})},acceptAll(){let t=new FormData;t.set("action","accept"),t.set("target","*"),this.$http.post("api/keys/manage_keys/",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.refreshKey+=1})},rejectAll(){let t=new FormData;t.set("action","reject"),t.set("target","*"),this.$http.post("api/keys/manage_keys/",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.refreshKey+=1})}}},De=$e,Oe=Object(u["a"])(De,ve,pe,!1,null,"47322cce",null),Ee=Oe.exports;m()(Oe,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var Re=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",cols:"12"}},[a("MinionsTable",{key:t.refreshKey}),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)],1)},Ae=[],Fe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Minions\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id",headers:t.headers,items:t.minions,search:t.search,loading:t.loading,"loading-text":"Loading... Please wait"},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id))])]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity.toString())+"\n ")])]}},{key:"item.last_job",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_job?"":new Date(a.last_job).toLocaleString("en-GB"))+"\n ")]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:""},on:{click:function(e){return t.refreshMinion(s.minion_id)}}},[t._v("\n refresh\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue-grey",tile:"",dark:"",to:"/run?tgt="+s.minion_id}},[t._v("\n run job\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"red",tile:"",dark:""},on:{click:function(e){return e.stopPropagation(),t.showDialog(s.minion_id)}}},[t._v("\n delete\n ")])],1)]}}])})],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[a("v-card",[a("v-card-title",{staticClass:"headline red",attrs:{"primary-title":""}},[t._v("\n Delete "+t._s(t.target)+" ?\n ")]),a("v-card-text",[a("br"),t._v("\n If you delete "+t._s(t.target)+" from the database, you will need to refresh all minions.\n ")]),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialog=!1}}},[t._v("\n close\n ")]),a("v-btn",{attrs:{color:"red",text:""},on:{click:function(e){return t.deleteMinion(t.target)}}},[t._v("\n delete\n ")])],1)],1)],1)],1)],1)},Ie=[],Pe={name:"MinionsTable",data(){return{search:"",dialog:!1,headers:[{text:"Minion Id",value:"minion_id"},{text:"Highstate Conformity",value:"conformity"},{text:"F.Q.D.N",value:"fqdn"},{text:"O.S",value:"os"},{text:"O.S Version",value:"oscodename"},{text:"Kernel",value:"kernelrelease"},{text:"Last Job",value:"last_job"},{text:"Last Highstate",value:"last_highstate"},{text:"Actions",value:"action",sortable:!1}],minions:[],target:null,loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/minions/").then(t=>{function e(t){return t.forEach(t=>{let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a]}),t}this.minions=e(t.data),this.loading=!1})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"},refreshMinion(t){this.$toast("refreshing "+t);let e=new FormData;e.set("minion_id",t),this.$http.post("/api/minions/refresh_minions/",e).then(t=>{this.$toast(t.data.result)})},deleteMinion(t){this.dialog=!1,this.$http.delete("/api/minions/"+t).then(()=>{this.minions.splice(this.minions.indexOf(t),1),this.$toast(t+" deleted")})},showDialog(t){this.target=t,this.dialog=!0}}},Me=Pe,Le=a("169a"),Ne=Object(u["a"])(Me,Fe,Ie,!1,null,"6727802c",null),Je=Ne.exports;m()(Ne,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VDialog:Le["a"],VDivider:C["a"],VSpacer:R["a"],VTextField:A["a"]});var qe={name:"Minions",components:{Fab:Te,MinionsTable:Je},data:()=>({refreshKey:0,fabs:[{color:"pink",action:"refreshMinions",icon:"refresh",tooltip:"Refresh all minions"},{color:"orange",action:"runAll",icon:"playlist_play",tooltip:"Run job on all minions"}]}),methods:{fabAction(t){this[t]()},refreshMinions(){this.$toast("refreshing minions"),this.$http.post("/api/minions/refresh_minions/").then(()=>{this.$toast("minions refreshed")}).then(()=>{this.refreshKey+=1}).catch(function(t){alert(t)})},runAll(){this.$router.push("/run?tgt=*")}}},Ue=qe,ze=Object(u["a"])(Ue,Re,Ae,!1,null,"a997aed2",null),Be=ze.exports;m()(ze,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var He=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"3"}},[null!==t.minion?a("InfosCard",{attrs:{minion:t.minion}}):t._e(),null!==t.minion?a("NetworkCard",{attrs:{minion:t.minion}}):t._e()],1),a("v-col",{attrs:{sm:"12",lg:"9"}},[null!==t.minion?a("MinionDetailCard",{attrs:{minion:t.minion}}):t._e()],1),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)},Ke=[],Ge=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Infos")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#common"}},[t._v("\n Common\n ")]),a("v-tab",{attrs:{href:"#salt"}},[t._v("\n Salt\n ")]),a("v-tab",{attrs:{href:"#hardware"}},[t._v("\n Hardware\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"common"}},[a("v-simple-table",[a("tbody",t._l(t.common,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),"last_job"===e.grain||"last_highstate"===e.grain&&null!==t.minion[e.grain]?a("td",{staticClass:"text-right"},[t._v(t._s(new Date(t.minion[e.grain]).toLocaleString("en-GB"))+"\n ")]):"conformity"===e.grain?a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.minion[e.grain]),dark:""}},[t._v(t._s(null==t.minion[e.grain]?"unknown":t.minion[e.grain]))])],1):a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1),a("v-tab-item",{attrs:{id:"salt"}},[a("v-simple-table",[a("tbody",t._l(t.salt,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1),a("v-tab-item",{attrs:{id:"hardware"}},[a("v-simple-table",[a("tbody",t._l(t.hardware,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1)],1)],1)],1)},We=[],Ye={name:"InfosCard",data(){return{tab:null,common:[{name:"F.Q.D.N",grain:"fqdn"},{name:"O.S",grain:"os"},{name:"O.S Version",grain:"oscodename"},{name:"Kernel",grain:"kernelrelease"},{name:"Last Job",grain:"last_job"},{name:"Last Highstate",grain:"last_highstate"},{name:"Highstate Conformity",grain:"conformity"}],salt:[{name:"ID",grain:"id"},{name:"Master",grain:"master"},{name:"Salt Version",grain:"saltversion"},{name:"Salt Path",grain:"saltpath"},{name:"Python Version",grain:"pythonversion"}],hardware:[{name:"C.P.U Model",grain:"cpu_model"},{name:"Number of C.P.U",grain:"num_cpus"},{name:"Total Memory",grain:"mem_total"},{name:"Total Swap",grain:"swap_total"},{name:"Virtual",grain:"virtual"}]}},props:["minion"],methods:{boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}}},Qe=Ye,Xe=a("71a3"),Ze=a("c671"),ta=a("fe57"),ea=a("aac8"),aa=a("9a96"),sa=Object(u["a"])(Qe,Ge,We,!1,null,"88be39d6",null),na=sa.exports;m()(sa,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var ia=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Network")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#interface"}},[t._v("\n Interfaces\n ")]),a("v-tab",{attrs:{href:"#mac"}},[t._v("\n Mac\n ")]),a("v-tab",{attrs:{href:"#dns"}},[t._v("\n Dns\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"interface"}},[a("v-simple-table",[a("tbody",[t._l(t.minion.ip_interfaces,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),t._l(e,function(e){return a("td",{staticClass:"text-right"},[t._v(t._s(e))])})],2)}),a("tr",[a("td",[t._v("IPv4 GATEWAY")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion.ip4_gw))])]),a("tr",[a("td",[t._v("IPv6 GATEWAY")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion.ip6_gw))])])],2)])],1),a("v-tab-item",{attrs:{id:"mac"}},[a("v-simple-table",[a("tbody",t._l(t.minion.hwaddr_interfaces,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e))])])}),0)])],1),a("v-tab-item",{attrs:{id:"dns"}},[a("v-simple-table",[a("tbody",t._l(t.minion.dns,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e.length>=1?e:""))])])}),0)])],1)],1)],1)],1)},ra=[],oa={name:"NetworkCard",data(){return{tab:null,tabs:3}},props:["minion"]},la=oa,ca=Object(u["a"])(la,ia,ra,!1,null,"4e9c41e8",null),da=ca.exports;m()(ca,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VSimpleTable:ut["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var ua=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#grain"}},[t._v("\n Grains\n ")]),a("v-tab",{attrs:{href:"#pillar"}},[t._v("\n Pillar\n ")]),a("v-tab",{attrs:{href:"#history"}},[t._v("\n History\n ")]),a("v-tab",{attrs:{href:"#graph"}},[t._v("\n Graph\n ")]),t._l(t.minion.custom_fields,function(e){return a("v-tab",{key:e.name},[t._v("\n "+t._s(e.name)+"\n ")])})],2),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"grain"}},[a("div",{staticClass:"text-right"},[a("v-btn",{staticClass:"overlayedBtn",on:{click:function(e){return t.fold("grainCm")}}},[t._v(t._s(t.grainCmFolded?"unfold":"fold"))])],1),a("codemirror",{ref:"grainCm",attrs:{options:t.cmOptions},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}})],1),a("v-tab-item",{attrs:{id:"pillar"}},[a("div",{staticClass:"text-right"},[a("v-btn",{staticClass:"overlayedBtn",on:{click:function(e){return t.fold("pillarCm")}}},[t._v(t._s(t.pillarCmFolded?"unfold":"fold"))])],1),a("codemirror",{ref:"pillarCm",attrs:{options:t.cmOptions},model:{value:t.codepillar,callback:function(e){t.codepillar=e},expression:"codepillar"}})],1),a("v-tab-item",{attrs:{id:"history"}},[a("JobsTable",{attrs:{filter:{"target[]":t.minion.minion_id}}})],1),a("v-tab-item",{attrs:{id:"graph",eager:""}},[t.minion?a("JobsChartCard",{attrs:{minion:t.minion.minion_id}}):t._e()],1),t._l(t.minion.custom_fields,function(e){return a("v-tab-item",{key:e.name},[a("codemirror",{attrs:{options:t.cmOptions,value:t.yamlRepr(e.value)}})],1)})],2)],1)],1)},ha=[],ma=a("56b3"),va=a.n(ma),pa=a("8f94"),fa=(a("f4ba"),a("4895"),a("aedd"),a("cbc8"),a("8d70"),a("f9d4"),a("a7be"),a("ced0"),a("efe9"),a("651e")),ba=a.n(fa),_a={name:"MinionDetailCard",components:{JobsTable:Wt,JobsChartCard:wt,codemirror:pa["codemirror"]},data(){return{tab:null,code:ba.a.safeDump(JSON.parse(this.minion.grain)),codepillar:ba.a.safeDump(JSON.parse(this.minion.pillar)),grainCmFolded:!1,pillarCmFolded:!1,cmOptions:{tabSize:4,mode:"yaml",theme:"made-of-code",line:!0,autoRefresh:!0,lineNumbers:!1,readOnly:!0,cursorBlinkRate:0,foldGutter:!0,gutters:["CodeMirror-foldgutter"]}}},methods:{yamlRepr(t){return ba.a.safeDump(JSON.parse(t))},fold(t){!0===this[t+"Folded"]?(va.a.commands.unfoldAll(this.$refs[t].codemirror),this[t+"Folded"]=!1):(va.a.commands.foldAll(this.$refs[t].codemirror),this[t+"Folded"]=!0)}},props:["minion"]},ga=_a,ya=(a("15fa"),Object(u["a"])(ga,ua,ha,!1,null,"107b300f",null)),xa=ya.exports;function ka(t){let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a];return t}m()(ya,{VBtn:_["a"],VCard:g["a"],VContainer:x["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var Ca={name:"MinionDetail",components:{Fab:Te,MinionDetailCard:xa,InfosCard:na,NetworkCard:da},data(){return{minion:null,fabs:[{color:"blue",action:"refreshMinion",icon:"refresh",tooltip:"Refresh "+this.minion_id},{color:"purple",action:"runMinion",icon:"play_arrow",tooltip:"Run job on "+this.minion_id},{color:"orange",action:"highstateMinion",icon:"all_inclusive",tooltip:"Run highstate on "+this.minion_id}]}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/minions/"+this.minion_id+"/").then(t=>this.minion=ka(t.data))},fabAction(t){this[t]()},refreshMinion(){this.$toast("refreshing "+this.minion_id);let t=new FormData;t.set("minion_id",this.minion_id),this.$http.post("/api/minions/refresh_minions/",t).then(()=>{this.$toast("minion refreshed")}).catch(function(t){alert(t)})},runMinion(){this.$router.push("/run?tgt="+this.minion_id)},highstateMinion(){this.$router.push("/run?tgt="+this.minion_id+"&fun=state.apply")}},props:["minion_id"]},wa=Ca,ja=Object(u["a"])(wa,He,Ke,!1,null,"28b94c04",null),Va=ja.exports;m()(ja,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var Sa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"4"}},[a("v-container",[a("v-card",[a("v-list-item",{attrs:{"two-line":""}},[a("v-list-item-content",[a("v-list-item-title",{staticClass:"headline"},[t._v(t._s(t.job.fun))]),a("v-list-item-subtitle",[t._v("Run on "+t._s(t.formatDate(t.job.alter_time)))])],1)],1),a("v-divider"),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("FUNCTION:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.fun))])]),a("tr",[a("td",[t._v("JID:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.jid))])]),t.job.arguments?a("tr",[a("td",[t._v("ARGUMENTS:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.arguments))])]):t._e(),t.job.keyword_arguments?a("tr",[a("td",[t._v("KEYWORD ARGUMENTS:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.keyword_arguments))])]):t._e(),a("tr",[a("td",[t._v("MINION ID:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.id))])]),a("tr",[a("td",[t._v("STATUS:")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.job.success),dark:""}},[t._v(t._s(t.boolText(t.job.success)))])],1)]),a("tr",[a("td",[t._v("START TIME:")]),a("td",{staticClass:"text-right"},[t._v(t._s(new Date(t.job.alter_time).toLocaleString("en-GB")))])])])])],1)],1)],1),a("v-col",{attrs:{sm:"12",lg:"8"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("Results")]),a("v-divider"),a("div",{staticClass:"ansiStyle",domProps:{innerHTML:t._s(t.ansiResult)}})],1)],1)],1)],1)],1)},Ta=[],$a={name:"JobDetail",props:["jid","minion_id"],data(){return{job:{},ansiResult:null}},mounted(){this.loadData(),this.loadRenderedJob()},methods:{loadData(){this.$http.get(`api/jobs/${this.jid}/${this.minion_id}/`).then(t=>this.job=t.data)},loadRenderedJob(){this.$http.get(`api/jobs/${this.jid}/${this.minion_id}/rendered_state/`).then(t=>this.ansiResult=t.data)},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"},formatDate(t){return new Date(t).toLocaleString("en-GB")}}},Da=$a,Oa=(a("df9d"),Object(u["a"])(Da,Sa,Ta,!1,null,"664654b1",null)),Ea=Oa.exports;m()(Oa,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Pt["a"],VContainer:x["a"],VDivider:C["a"],VListItem:S["a"],VListItemContent:D["a"],VListItemSubtitle:D["b"],VListItemTitle:D["c"],VRow:Mt["a"],VSimpleTable:ut["a"]});var Ra=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("EventsTable")],1)],1)],1)},Aa=[],Fa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Events\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"alter_time","sort-desc":"",headers:t.headers,items:t.events,search:t.search,"show-expand":"",loading:t.loading},scopedSlots:t._u([{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}},{key:"expanded-item",fn:function(e){var s=e.headers,n=e.item;return[a("td",{attrs:{colspan:s.length}},[a("pre",[t._v(t._s(JSON.stringify(JSON.parse(n.data),null,2)))])])]}}])})],1)],1)},Ia=[];function Pa(t){return t.forEach(t=>{let e=JSON.parse(t.data);for(let a in e)"id"===a?t["minion_id"]=e[a]:t[a]=e[a]}),t}var Ma={name:"EventsTable",data(){return{search:"",headers:[{text:"Tag",value:"tag"},{text:"Jid",value:"jid"},{text:"Target",value:"minion_id"},{text:"Function",value:"fun"},{text:"Arguments",value:"fun_args"},{text:"Date",value:"alter_time"}],events:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/events/").then(t=>{this.events=Pa(t.data),this.loading=!1})}}},La=Ma,Na=Object(u["a"])(La,Fa,Ia,!1,null,"e7265fc6",null),Ja=Na.exports;m()(Na,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var qa={name:"Events",components:{EventsTable:Ja}},Ua=qa,za=Object(u["a"])(Ua,Ra,Aa,!1,null,"7408d9dd",null),Ba=za.exports;m()(za,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var Ha=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("RunCard")],1)],1)],1)},Ka=[],Ga=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{staticClass:"mb-8"},[a("v-card-title",[t._v("Run")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#formatted"}},[t._v("\n Formatted\n ")]),a("v-tab",{attrs:{href:"#cli"}},[t._v("\n Cli\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"formatted",eager:""}},[a("v-card",[a("v-spacer"),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{staticClass:"text-right",attrs:{sm:"3",lg:"1","align-self":"center"}},[a("span",[t._v("Client Type:")])]),a("v-col",{attrs:{sm:"3",lg:"1"}},[a("v-select",{attrs:{items:t.client},model:{value:t.selected_client,callback:function(e){t.selected_client=e},expression:"selected_client"}})],1),t.client_batch||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":"1"}},[a("v-checkbox",{attrs:{label:"Async",color:"primary"},model:{value:t.client_async,callback:function(e){t.client_async=e},expression:"client_async"}})],1),"local"!==t.selected_client||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":t.client_batch?3:1}},[a("v-checkbox",{attrs:{label:"Batch",color:"primary"},model:{value:t.client_batch,callback:function(e){t.client_batch=e},expression:"client_batch"}})],1),"local"===t.selected_client&&t.client_batch&&!t.scheduleSwitch?a("v-col",{attrs:{sm:"3",lg:"1"}},[a("v-text-field",{attrs:{label:"Batch"},model:{value:t.batch,callback:function(e){t.batch=e},expression:"batch"}})],1):t._e(),"local"!==t.selected_client||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":t.client_batch?0:1}},[a("v-text-field",{attrs:{label:"Timeout",type:"number"},model:{value:t.timeout,callback:function(e){t.timeout=e},expression:"timeout"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"1"}},["local"===t.selected_client?a("v-select",{attrs:{items:t.target_type,label:"Target Type"},on:{change:function(e){t.target=null}},model:{value:t.selected_target_type,callback:function(e){t.selected_target_type=e},expression:"selected_target_type"}}):t._e()],1),a("v-col",{attrs:{lg:"2"}},["local"===t.selected_client?a("v-text-field",{attrs:{label:"Target"},model:{value:t.target,callback:function(e){t.target=e},expression:"target"}}):t._e()],1),a("v-col",{attrs:{lg:"2"}},[a("v-combobox",{attrs:{"item-value":"name","item-text":"name",items:t.filteredFunction,label:"Function","return-object":""},scopedSlots:t._u([t.selectedFunction?{key:"append-outer",fn:function(){return[a("v-menu",{attrs:{"offset-y":""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-icon",t._g({attrs:{color:"black"}},s),[t._v("info\n ")])]}}],null,!1,1349456046)},[a("div",{staticClass:"desc"},[a("pre",[t._v(t._s(t.selectedFunction.description))])])])]},proxy:!0}:null],null,!0),model:{value:t.selectedFunction,callback:function(e){t.selectedFunction=e},expression:"selectedFunction"}})],1),a("v-col",{attrs:{lg:"3"}},[a("v-text-field",{attrs:{label:"Arguments"},model:{value:t.arg,callback:function(e){t.arg=e},expression:"arg"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Keyword Arguments"},model:{value:t.kwarg,callback:function(e){t.kwarg=e},expression:"kwarg"}})],1)],1),a("v-row",{attrs:{dense:""}},[a("v-col",{attrs:{sm:"12",lg:"3"}},[a("v-row",{attrs:{dense:""}},[a("v-col",{attrs:{sm:"12"}},[a("v-switch",{directives:[{name:"show",rawName:"v-show",value:"local"===t.selected_client,expression:"selected_client === 'local'"}],attrs:{label:"Schedule",color:"primary"},model:{value:t.scheduleSwitch,callback:function(e){t.scheduleSwitch=e},expression:"scheduleSwitch"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.scheduleSwitch,expression:"scheduleSwitch"}],attrs:{sm:"12"}},[a("v-text-field",{staticStyle:{width:"350px"},attrs:{label:"Schedule Name"},model:{value:t.scheduleName,callback:function(e){t.scheduleName=e},expression:"scheduleName"}}),a("v-radio-group",{staticClass:"mt-0",model:{value:t.scheduleType,callback:function(e){t.scheduleType=e},expression:"scheduleType"}},[a("v-radio",{attrs:{value:"once",color:"primary"},scopedSlots:t._u([{key:"label",fn:function(){return[a("span",[a("strong",[t._v("Once: ")])]),a("v-row",[a("v-col",{staticClass:"ml-2",attrs:{sm:"4"}},[a("v-menu",{attrs:{"close-on-content-click":!1,transition:"scale-transition","offset-y":"","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{readonly:""},model:{value:t.scheduleDate,callback:function(e){t.scheduleDate=e},expression:"scheduleDate"}},s))]}}]),model:{value:t.dateMenu,callback:function(e){t.dateMenu=e},expression:"dateMenu"}},[a("v-date-picker",{attrs:{min:t.scheduleDate},on:{input:function(e){t.dateMenu=!1}},model:{value:t.scheduleDate,callback:function(e){t.scheduleDate=e},expression:"scheduleDate"}})],1)],1),a("v-col",{attrs:{sm:"4"}},[a("v-menu",{ref:"menu",attrs:{"close-on-content-click":!1,"nudge-right":40,transition:"scale-transition","offset-y":"","max-width":"290px","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{readonly:""},model:{value:t.scheduleTime,callback:function(e){t.scheduleTime=e},expression:"scheduleTime"}},s))]}}]),model:{value:t.timeMenu,callback:function(e){t.timeMenu=e},expression:"timeMenu"}},[t.timeMenu?a("v-time-picker",{attrs:{"full-width":""},model:{value:t.scheduleTime,callback:function(e){t.scheduleTime=e},expression:"scheduleTime"}}):t._e()],1)],1)],1)]},proxy:!0}])}),a("v-radio",{attrs:{value:"recurring",color:"primary"},scopedSlots:t._u([{key:"label",fn:function(){return[a("div",[a("strong",[t._v("Recurring: ")]),t._v(" Every "),a("span",{attrs:{id:"cron"}})])]},proxy:!0}])})],1)],1)],1)],1),a("v-col",{attrs:{sm:"12",lg:"6"}},[a("v-row",{attrs:{dense:""}},[a("v-col",{attrs:{sm:"12"}},[a("v-switch",{directives:[{name:"show",rawName:"v-show",value:"local"===t.selected_client,expression:"selected_client === 'local'"}],attrs:{label:"Pillar",color:"primary"},model:{value:t.pillarSwitch,callback:function(e){t.pillarSwitch=e},expression:"pillarSwitch"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.pillarSwitch,expression:"pillarSwitch"}],attrs:{sm:"12"}},[a("codemirror",{attrs:{options:t.cmOptions},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.pillarSwitch,expression:"pillarSwitch"}],attrs:{sm:"12"}},[a("span",{domProps:{innerHTML:t._s(t.pillarRendered)}})])],1)],1),a("v-col",{attrs:{sm:"12",lg:"3"}},[a("v-row",{attrs:{dense:""}},[a("v-col",{attrs:{sm:"12"}},[a("v-switch",{attrs:{label:"Save as template",color:"primary"},model:{value:t.saveJobSwitch,callback:function(e){t.saveJobSwitch=e},expression:"saveJobSwitch"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.saveJobSwitch,expression:"saveJobSwitch"}],attrs:{sm:"12"}},[a("v-text-field",{staticStyle:{width:"350px"},attrs:{label:"Job Template Name"},model:{value:t.jobTemplateName,callback:function(e){t.jobTemplateName=e},expression:"jobTemplateName"}})],1)],1)],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:!t.saveJobSwitch,expression:"!saveJobSwitch"}],attrs:{color:"orange",large:"",dark:""},on:{click:function(e){return t.runJob(t.test=!0)}}},[t._v("Test")]),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:!t.saveJobSwitch,expression:"!saveJobSwitch"}],attrs:{color:"info",large:"",dark:""},on:{click:t.runJob}},[t._v("Run")]),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:t.saveJobSwitch,expression:"saveJobSwitch"}],attrs:{color:"green",large:"",dark:""},on:{click:t.saveJob}},[t._v("Save")])],1)],1)],1),a("v-tab-item",{attrs:{id:"cli"}},[null!==t.functions?a("TerminalCard",{attrs:{minions:t.minions,functions:t.functions}}):t._e()],1)],1)],1)],1)],1),a("v-row",[a("v-col",{attrs:{sm:"12"}},[t.results?a("v-card",[a("v-card-title",[t._v("Results")]),a("v-card-text",{staticClass:"ansiStyle",domProps:{innerHTML:t._s(t.results)}})],1):t._e()],1)],1)],1)},Wa=[],Ya=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-row",{directives:[{name:"resize",rawName:"v-resize",value:t.onResize,expression:"onResize"}]},[a("v-col",{attrs:{sm:"12"}},[a("div",{staticClass:"console",attrs:{id:"terminal"}})])],1)},Qa=[],Xa=a("fcf3"),Za=a("47d0");a("abb2");class ts{constructor(t){this.size=t,this.entries=[],this.cursor=0}push(t){if(""===t.trim())return;const e=this.entries[this.entries.length-1];t!=e&&(this.entries.push(t),this.entries.length>this.size&&this.entries.pop(0),this.cursor=this.entries.length)}rewind(){this.cursor=this.entries.length}getPrevious(){const t=Math.max(0,this.cursor-1);return this.cursor=t,this.entries[t]}getNext(){const t=Math.min(this.entries.length,this.cursor+1);return this.cursor=t,this.entries[t]}}var es=a("8e33");function as(t,e=!0){let a;const s=[],n=/\w+/g;while(a=n.exec(t))e?s.push(a.index):s.push(a.index+a[0].length);return s}function ss(t,e){const a=as(t,!0).reverse().find(t=>tt>e);return null==a?t.length:a}function is(t,e,a){let s=0,n=0;for(let i=0;ia&&(n=0,s+=1))}return{row:s,col:n}}function rs(t,e){return is(t,t.length,e).row+1}function os(t){return""!=t.trim()&&((t.match(/'/g)||[]).length%2!==0||((t.match(/"/g)||[]).length%2!==0||(""==t.split(/(\|\||\||&&)/g).pop().trim()||!(!t.endsWith("\\")||t.endsWith("\\\\")))))}function ls(t){return null!=t.match(/[^\\][ \t]$/m)}function cs(t){if(""===t.trim())return"";if(ls(t))return"";const e=Object(es["parse"])(t);return e.pop()||""}function ds(t,e){const a=Object(es["parse"])(e);let s=a.length-1,n=a[s]||"";""===e.trim()?(s=0,n=""):ls(e)&&(s+=1,n="");const i=t.reduce((t,{fn:e,args:n})=>{try{return t.concat(e(s,a,...n))}catch(i){return console.error("Auto-complete error:",i),t}},[]);return i.filter(t=>t.startsWith(n))}class us{constructor(t,e={}){this.term=t,this._handleTermData=this.handleTermData.bind(this),this._handleTermResize=this.handleTermResize.bind(this),this.history=new ts(e.historySize||100),this.maxAutocompleteEntries=e.maxAutocompleteEntries||100,this._autocompleteHandlers=[],this._active=!1,this._input="",this._cursor=0,this._activePrompt=null,this._activeCharPrompt=null,this._termSize={cols:this.term.cols,rows:this.term.rows},this.attach()}detach(){this.term.off("data",this._handleTermData),this.term.off("resize",this._handleTermResize)}attach(){this.term.onData(this._handleTermData),this.term.onResize(this._handleTermResize)}addAutocompleteHandler(t,...e){this._autocompleteHandlers.push({fn:t,args:e})}removeAutocompleteHandler(t){const e=this._autocompleteHandlers.findIndex(e=>e.fn===t);-1!==e&&this._autocompleteHandlers.splice(e,1)}read(t,e="> "){return new Promise((a,s)=>{this.term.write(t),this._activePrompt={prompt:t,continuationPrompt:e,resolve:a,reject:s},this._input="",this._cursor=0,this._active=!0})}readChar(t){return new Promise((e,a)=>{this.term.write(t),this._activeCharPrompt={prompt:t,resolve:e,reject:a}})}abortRead(t="aborted"){null==this._activePrompt&&null==this._activeCharPrompt||this.term.write("\r\n"),null!=this._activePrompt&&(this._activePrompt.reject(t),this._activePrompt=null),null!=this._activeCharPrompt&&(this._activeCharPrompt.reject(t),this._activeCharPrompt=null),this._active=!1}println(t){this.print(t+"\n")}print(t){const e=t.replace(/[\r\n]+/g,"\n");this.term.write(e.replace(/\n/g,"\r\n"))}printWide(t,e=2){if(0==t.length)return println("");const a=t.reduce((t,e)=>Math.max(t,e.length),0)+e,s=Math.floor(this._termSize.cols/a),n=Math.ceil(t.length/s);let i=0;for(let r=0;rt.length&&(this._cursor=t.length);const s=this.applyPromptOffset(t,this._cursor),n=rs(a,this._termSize.cols),{col:i,row:r}=is(a,s,this._termSize.cols),o=n-r-1;this.term.write("\r");for(var l=0;l{this._cursor=e,this.setInput(this._input)},s=t();null==s?a():s.then(a)}setCursor(t){t<0&&(t=0),t>this._input.length&&(t=this._input.length);const e=this.applyPrompts(this._input),a=(rs(e,this._termSize.cols),this.applyPromptOffset(this._input,this._cursor)),{col:s,row:n}=is(e,a,this._termSize.cols),i=this.applyPromptOffset(this._input,t),{col:r,row:o}=is(e,i,this._termSize.cols);if(o>n)for(let l=n;ls)for(let l=s;l0){const e=Math.min(t,this._input.length-this._cursor);this.setCursor(this._cursor+e)}else if(t<0){const e=Math.max(t,-this._cursor);this.setCursor(this._cursor+e)}}handleCursorErase(t){const{_cursor:e,_input:a}=this;if(t){if(e<=0)return;const t=a.substr(0,e-1)+a.substr(e);this.clearInput(),this._cursor-=1,this.setInput(t,!1)}else{const t=a.substr(0,e)+a.substr(e+1);this.setInput(t)}}handleCursorInsert(t){const{_cursor:e,_input:a}=this,s=a.substr(0,e)+t+a.substr(e);this._cursor+=t.length,this.setInput(s)}handleReadComplete(){this.history&&this.history.push(this._input),this._activePrompt&&(this._activePrompt.resolve(this._input),this._activePrompt=null),this.term.write("\r\n"),this._active=!1}handleTermResize(t){const{rows:e,cols:a}=t;this.clearInput(),this._termSize={cols:a,rows:e},this.setInput(this._input,!1)}handleTermData(t){if(this._active){if(null!=this._activeCharPrompt)return this._activeCharPrompt.resolve(t),this._activeCharPrompt=null,void this.term.write("\r\n");if(t.length>3&&27!==t.charCodeAt(0)){const e=t.replace(/[\r\n]+/g,"\r");Array.from(e).forEach(t=>this.handleData(t))}else this.handleData(t)}}handleData(t){if(!this._active)return;const e=t.charCodeAt(0);let a;if(27==e)switch(t.substr(1)){case"[A":if(this.history){let t=this.history.getPrevious();t&&(this.setInput(t),this.setCursor(t.length))}break;case"[B":if(this.history){let t=this.history.getNext();t||(t=""),this.setInput(t),this.setCursor(t.length)}break;case"[D":this.handleCursorMove(-1);break;case"[C":this.handleCursorMove(1);break;case"[3~":this.handleCursorErase(!1);break;case"[F":this.setCursor(this._input.length);break;case"[H":this.setCursor(0);break;case"b":a=ss(this._input,this._cursor),null!=a&&this.setCursor(a);break;case"f":a=ns(this._input,this._cursor),null!=a&&this.setCursor(a);break;case"":a=ss(this._input,this._cursor),null!=a&&(this.setInput(this._input.substr(0,a)+this._input.substr(this._cursor)),this.setCursor(a));break}else if(e<32||127===e)switch(t){case"\r":os(this._input)?this.handleCursorInsert("\n"):this.handleReadComplete();break;case"":this.handleCursorErase(!0);break;case"\t":if(this._autocompleteHandlers.length>0){const t=this._input.substr(0,this._cursor),e=ls(t),a=ds(this._autocompleteHandlers,t);if(a.sort(),0===a.length)e||this.handleCursorInsert(" ");else if(1===a.length){const e=cs(t);this.handleCursorInsert(a[0].substr(e.length)+" ")}else a.length<=this.maxAutocompleteEntries?this.printAndRestartPrompt(()=>{this.printWide(a)}):this.printAndRestartPrompt(()=>this.readChar(`Display all ${a.length} possibilities? (y or n)`).then(t=>{"y"!=t&&"Y"!=t||this.printWide(a)}))}else this.handleCursorInsert(" ");break;case"":this.setCursor(this._input.length),this.term.write("^C\r\n"+((this._activePrompt||{}).prompt||"")),this._input="",this._cursor=0,this.history&&this.history.rewind();break}else this.handleCursorInsert(t)}}var hs={name:"TerminalCard",props:["minions","functions"],data(){return{term:null,fitter:null,functions_name:null}},methods:{initTerm(){let t=document.getElementById("terminal");this.term=new Xa["Terminal"]({cursorBlink:!0,fontSize:20,fontFamily:"'Roboto Mono', monospace"});const e=new Za["FitAddon"];this.term.loadAddon(e),this.term.open(t),e.fit(),this.fitter=e;const a=new us(this.term);a.addAutocompleteHandler(t=>{return 0!==t?[]:["salt","clear"]}),a.addAutocompleteHandler(t=>{return 1!==t?[]:this.minions}),a.addAutocompleteHandler(t=>{return 2!==t?[]:this.functions.map(t=>t.name)});const s="Usage: salt [options] '' [arguments]",n=()=>{a.read(" ~$ ").then(t=>{let e=t.split(" ").filter(t=>{return""!==t});if(0===e.length)n();else if(1===e.length&&"clear"===e[0])this.term.clear(),n();else if(e.length<=2)a.println(s),n();else if(t.split(" ").length>=3&&"salt"===e[0]){let e=new FormData;e.set("raw",!0),e.set("cli",!0),e.set("command",t),this.$toast("Running "+t),this.$http.post("api/run/",e).then(t=>{a.println(t.data.results)}).then(()=>n())}else a.println(s),n()})};n()},onResize(){null!==this.term&&this.fitter.fit()}},mounted(){setTimeout(()=>{this.initTerm()},100)},beforeDestroy(){null!==this.term&&this.term.dispose()}},ms=hs,vs=a("269a"),ps=a.n(vs),fs=a("dc22"),bs=Object(u["a"])(ms,Ya,Qa,!1,null,"cc052c0c",null),_s=bs.exports;function gs(t,e){if(t instanceof HTMLElement)this.el=t;else{if("string"!==typeof t)throw"CronUI: container parameter in initialization must be an html element or a string selector.";this.el=document.querySelector(t)}this.options=e||{},this.render(),"string"!==typeof this.options.initial&&(this.options.initial="* * * * *"),this.setCronString(this.options.initial),this.currentValue=this.options.initial}m()(bs,{VCol:Pt["a"],VRow:Mt["a"]}),ps()(bs,{Resize:fs["a"]}),gs.prototype.render=function(){let t,e,a,s=this.el,n="";for(a=0;a<60;a++)e=a<10?"0":"",n+=""+e+a+" \n";let i="";for(a=0;a<24;a++)e=a<10?"0":"",i+=""+e+a+" \n";let r="";for(a=1;a<32;a++)t=1==a||21==a||31==a?"st":2==a||22==a?"nd":3==a||23==a?"rd":"th",r+=""+a+t+" \n";let o="";const l=["January","February","March","April","May","June","July","August","September","October","November","December"];for(a=0;a"+l[a]+"\n";let c="";const d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];for(a=0;a"+d[a]+"\n";let u="";const h=["minute","hour","day","week","month","year"];for(a=0;a"+h[a]+"\n";let m={};s.insertAdjacentHTML("beforeend",""+u+" ");let v=s.querySelector(".cron-period select");v.addEventListener("change",this.periodChanged.bind(this)),v.addEventListener("change",this.changeEvent.bind(this)),s.insertAdjacentHTML("beforeend"," on the "+r+" "),m["dom"]=s.querySelector(".cron-block-dom"),s.insertAdjacentHTML("beforeend"," of "+o+" "),m["month"]=s.querySelector(".cron-block-month"),s.insertAdjacentHTML("beforeend"," at "+n+" minutes past the hour "),m["mins"]=s.querySelector(".cron-block-mins"),s.insertAdjacentHTML("beforeend"," on "+c+" "),m["dow"]=s.querySelector(".cron-block-dow"),s.insertAdjacentHTML("beforeend"," at "+i+" :"+n+" "),m["time"]=s.querySelector(".cron-block-time");for(let p in m)[].forEach.call(m[p].querySelectorAll("select"),function(t){t.addEventListener("change",this.changeEvent.bind(this))}.bind(this));this.blocks=m},gs.prototype.periodChanged=function(){let t=this.blocks,e=this.el.querySelector(".cron-period select"),a=e.options[e.selectedIndex].value;for(let s in t)t[s].style.display="none";if(gs.displayMatrix.hasOwnProperty(a)){let e=gs.displayMatrix[a];for(let a=0;a=s[i]))return}for(let o in gs.cronTypes)if(gs.cronTypes[o].test(t))return o};var ys=gs,xs={name:"RunCard",components:{TerminalCard:_s,codemirror:pa["codemirror"]},data(){return{scheduleSwitch:!1,pillarSwitch:!1,saveJobSwitch:!1,jobTemplateName:"",code:"# Type valid yaml to override pillars\n\n\n",cmOptions:{tabSize:4,mode:"yaml",theme:"made-of-code",line:!0,autoRefresh:!0,lineNumbers:!1,foldGutter:!0,gutters:["CodeMirror-foldgutter"]},tab:null,client:[{text:"Local",value:"local"},{text:"Runner",value:"runner"},{text:"Wheel",value:"wheel"}],selected_client:"local",client_async:!1,client_batch:!1,minions:[],functions:null,selectedFunction:null,description:null,batch:null,timeout:null,target_type:[{text:"glob",value:"glob"},{text:"pcre",value:"--pcre"},{text:"list",value:"--list"},{text:"grain",value:"--grain"},{text:"grain_pcre",value:"--grain-pcre"},{text:"pillar",value:"--pillar"},{text:"pillar_pcre",value:"--pillar-pcre"},{text:"range",value:"--range"},{text:"compound",value:"--compound"},{text:"nodegroup",value:"--nodegroup"}],selected_target_type:"glob",target:"",arg:"",kwarg:"",results:"",termKey:0,cron:null,dateMenu:!1,timeMenu:!1,scheduleType:null,scheduleDate:(new Date).toISOString().substr(0,10),scheduleTime:(new Date).toISOString().substr(11,11).split(":").slice(0,-1).join(":"),scheduleName:null}},methods:{loadData(){this.$http.get("api/functions/").then(t=>{this.functions=t.data}),this.$http.get("api/minions/").then(t=>{t.data.forEach(t=>this.minions.push(t.minion_id))})},createCommand(t=!1){let e=`salt --client=${this.client_batch?"local_batch":this.selected_client}${this.client_async&&!this.client_batch?"_async":""}`;return"local"===this.selected_client&&("glob"!==this.selected_target_type?e+=" "+this.selected_target_type+" "+this.target:e+=" "+this.target),this.selectedFunction&&this.selectedFunction.hasOwnProperty("name")?e+=` ${this.selectedFunction.name}`:e+=` ${this.selectedFunction}`,e+=`${this.arg?` ${this.arg}`:""}${!0===t?" test=True":""}${this.kwarg?` ${this.kwarg}`:""}`,e+=`${this.pillarSwitch?` pillar='${this.pillarRendered}'`:""}`,e+=`${this.client_batch&&this.batch?` -b ${this.batch}`:""}${this.timeout?` -t ${this.timeout}`:""}`,e},saveJob(){let t=new FormData,e=this.createCommand(!1);t.set("name",this.jobTemplateName),t.set("job",e),this.$http.post("api/job_templates/",t).then(t=>{this.$toast("Template "+this.jobTemplateName+" saved")})},runJob(t=!1){let e="Running",a=new FormData,s=this.createCommand(t);a.set("raw",!0),a.set("command",s),this.scheduleSwitch&&this.scheduleType&&(e="Scheduling",a.set("schedule_type",this.scheduleType),this.scheduleName&&a.set("schedule_name",this.scheduleName),"once"===this.scheduleType?a.set("schedule",this.scheduleDate+" "+this.scheduleTime+":00"):a.set("cron",this.cron.currentValue)),this.$toast(e+" "+s),this.$http.post("api/run/",a).then(t=>{let e=t.data;if(this.client_async&&"local"===this.selected_client){let t=new DOMParser,a=t.parseFromString(e,"text/html"),s=a.getElementsByClassName("ansi2html-content")[0].children,n=s[s.length-1].innerText;for(let e=1;e{return t.type===this.selected_client})},pillarRendered:function(){return`${JSON.stringify(null===ba.a.safeLoad(this.code)?{}:ba.a.safeLoad(this.code))}`}},mounted(){if(this.cron=new ys("#cron",{initial:"* * * * *"}),this.loadData(),this.$route.query.client&&(this.selected_client=this.$route.query.client.split("_")[0],this.$route.query.client.split("_").length>1&&(this["client_"+this.$route.query.client.split("_")[1]]=!0)),this.$route.query.tgt_type&&this.target_type.forEach(t=>{t.text===this.$route.query.tgt_type&&(this.selected_target_type=t.value)}),this.batch=this.$route.query.batch?this.$route.query.batch:null,this.target=this.$route.query.tgt,this.selectedFunction=!0===this.$route.query.hasOwnProperty("fun")?{name:this.$route.query.fun}:this.selectedFunction,this.arg=this.$route.query.arg,this.$route.query.kwarg){let t=this.$route.query.kwarg.split(" ").filter(t=>{return t.startsWith("pillar")}).join();t?(this.pillarSwitch=!0,this.code=ba.a.dump(JSON.parse(t.split("=")[1])),this.kwarg=this.$route.query.kwarg.split(" ").filter(t=>{return!t.startsWith("pillar")}).join(" ")):this.kwarg=this.$route.query.kwarg}this.$route.query.name&&(this.saveJobSwitch=!0,this.jobTemplateName=this.$route.query.name)}},ks=xs,Cs=(a("1ead"),a("ac7c")),ws=a("2b5d"),js=a("67b6"),Vs=a("43a6"),Ss=a("b73d"),Ts=a("c964"),$s=Object(u["a"])(ks,Ga,Wa,!1,null,"ab381b0c",null),Ds=$s.exports;m()($s,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCheckbox:Cs["a"],VCol:Pt["a"],VCombobox:ws["a"],VContainer:x["a"],VDatePicker:Kt["a"],VIcon:j["a"],VMenu:O["a"],VRadio:js["a"],VRadioGroup:Vs["a"],VRow:Mt["a"],VSelect:kt["a"],VSpacer:R["a"],VSwitch:Ss["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"],VTextField:A["a"],VTimePicker:Ts["b"]});var Os={name:"Run",components:{RunCard:Ds}},Es=Os,Rs=Object(u["a"])(Es,Ha,Ka,!1,null,"74868f95",null),As=Rs.exports;m()(Rs,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var Fs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("CommonSettings")],1)],1),a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("UserSettings")],1)],1)],1)},Is=[],Ps=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Common Settings")]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"4",lg:"2","align-self":"center"}},[t._v("\n Parse modules from:\n ")]),a("v-col",{attrs:{sm:"4",lg:"2"}},[a("v-select",{attrs:{items:t.minions,"item-text":"minion_id","item-value":"minion_id",label:"Target"},model:{value:t.target,callback:function(e){t.target=e},expression:"target"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.target,color:"primary"},on:{click:t.parseModules}},[t._v("Submit")])],1),a("v-col",{attrs:{sm:"4",lg:"1","align-self":"center"}},[t._v("\n Alcali Version:\n ")]),a("v-col",{attrs:{sm:"4",lg:"2","align-self":"center"}},[a("span",[t._v(t._s(t.version))])])],1),a("v-row",[a("v-col",{attrs:{sm:"12",lg:"6"}},[a("v-row",[t._v("Minions Fields")]),t._l(t.uniqueMinionField,function(e){return a("v-row",{key:e.name},[a("v-col",{attrs:{lg:"4"}},[a("b",[t._v(t._s(e.name))])]),a("v-col",{attrs:{lg:"4"}},[t._v(t._s(e["function"]))]),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{color:"red",dark:""},on:{click:function(a){return t.deleteMinionsFields(e.name)}}},[t._v("Delete")])],1)],1)}),a("v-row",[a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Name","single-line":""},model:{value:t.minionsfields_name,callback:function(e){t.minionsfields_name=e},expression:"minionsfields_name"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-combobox",{attrs:{items:t.functions,"item-value":"name","item-text":"name",label:"Functions"},model:{value:t.minionsfields_value,callback:function(e){t.minionsfields_value=e},expression:"minionsfields_value"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.minionsfields_name||null==t.minionsfields_value,color:"primary"},on:{click:t.createMinionsFields}},[t._v("Create\n ")])],1)],1)],2),a("v-col",{attrs:{sm:"12",lg:"6"}},[a("v-row",[t._v("Custom Conformity")]),t._l(t.conformity,function(e){return a("v-row",{key:e.id},[a("v-col",{attrs:{lg:"4"}},[a("b",[t._v(t._s(e.name))])]),a("v-col",{attrs:{lg:"4"}},[t._v(t._s(e.function))]),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{color:"red",dark:""},on:{click:function(a){return t.deleteConformity(e.id)}}},[t._v("Delete")])],1)],1)}),a("v-row",[a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Name","single-line":""},model:{value:t.conformity_name,callback:function(e){t.conformity_name=e},expression:"conformity_name"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Function","single-line":""},model:{value:t.conformity_value,callback:function(e){t.conformity_value=e},expression:"conformity_value"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.conformity_name||null===t.conformity_value,color:"primary"},on:{click:t.createConformity}},[t._v("Create\n ")])],1)],1)],2)],1)],1)],1)],1)],1)},Ms=[],Ls={name:"CommonSettings",data(){return{version:"unknown",minions:[],target:null,functions:null,minionsfields:[],minionsfields_name:null,minionsfields_value:null,conformity:null,conformity_name:null,conformity_value:null}},mounted(){this.loadData()},computed:{uniqueMinionField(){if(null!==this.minionsfields)return this.minionsfields.filter((t,e,a)=>e===a.findIndex(e=>e["function"]===t["function"]&&e.name===t.name))}},methods:{loadData(){this.$http.get("api/keys/").then(t=>{this.minions=t.data.filter(t=>"accepted"===t.status)}),this.$http.get("api/functions/").then(t=>{this.functions=t.data.filter(t=>"local"===t.type)}),this.$http.get("api/conformity/").then(t=>{this.conformity=t.data}),this.$http.get("api/minionsfields/").then(t=>{this.minionsfields=t.data}),this.$http.get("api/version/").then(t=>{this.version=t.data.version})},parseModules(){this.$toast("Parse module started");let t=new FormData;t.set("target",this.target),this.$http.post("api/settings/initdb",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.loadData()})},deleteConformity(t){let e=new FormData;e.set("id",t),this.$http.delete("/api/conformity/"+t).then(()=>{this.$toast("conformity deleted"),this.conformity.splice(this.conformity.indexOf(t),1)})},createConformity(){let t=new FormData;t.set("name",this.conformity_name),t.set("function",this.conformity_value),this.$http.post("/api/conformity/",t).then(()=>{this.conformity.push({name:this.conformity_name,function:this.conformity_value,id:this.conformity.length+2}),this.$toast("conformity created"),this.conformity_name=null,this.conformity_value=null})},createMinionsFields(){let t=new FormData;t.set("name",this.minionsfields_name),t.set("function",this.minionsfields_value.name),t.set("value","{}"),this.$http.post("/api/minionsfields/",t).then(()=>{this.minionsfields.push({name:this.minionsfields_name,function:this.minionsfields_value.name}),this.$toast("minions fields created"),this.minionsfields_name=null,this.minionsfields_value=null})},deleteMinionsFields(t){let e=new FormData;e.set("name",t),this.$http.post("/api/minionsfields/delete_field/",e).then(e=>{this.$toast(e.data.result),this.minionsfields=this.minionsfields.filter(e=>e.name!==t)})}}},Ns=Ls,Js=Object(u["a"])(Ns,Ps,Ms,!1,null,"ba67d60c",null),qs=Js.exports;m()(Js,{VBtn:_["a"],VCard:g["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Pt["a"],VCombobox:ws["a"],VContainer:x["a"],VRow:Mt["a"],VSelect:kt["a"],VTextField:A["a"]});var Us=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("User Settings")]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{lg:"2"}},[a("span",[t._v("Jobs Notifications")]),t._l(t.notifs,function(e,s){return a("div",{key:s},[a("v-switch",{attrs:{label:s,color:"primary","hide-details":""},model:{value:t.notifs[s],callback:function(e){t.$set(t.notifs,s,e)},expression:"notifs[name]"}})],1)})],2),a("v-col",{attrs:{lg:"2"}},[a("span",[t._v("Max Notifications")]),a("v-text-field",{attrs:{type:"number"},model:{value:t.max_notifs,callback:function(e){t.max_notifs=e},expression:"max_notifs"}})],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary"},on:{click:t.updateUserSettings}},[t._v("Submit")])],1)],1)],1)},zs=[],Bs={name:"UserSettings",data(){return{switch1:!0,switch2:!1,notifs:{created:!1,published:!0,returned:!1,event:!1},settings:null,max_notifs:null}},methods:{loadData(){this.$http.get("api/userssettings/"+this.$store.getters.user_id+"/").then(t=>{this.settings=t.data,this.max_notifs=t.data.max_notifs,Object.keys(this.notifs).forEach(t=>{this.notifs[t]=this.settings["notifs_"+t]})})},updateUserSettings(){let t={max_notifs:this.max_notifs};Object.keys(this.notifs).forEach(e=>{t["notifs_"+e]=this.notifs[e]}),this.$http.patch("api/userssettings/"+this.$store.getters.user_id+"/",t).then(t=>{this.$toast("user settings updated")})}},mounted(){this.loadData()}},Hs=Bs,Ks=Object(u["a"])(Hs,Us,zs,!1,null,"50109ca2",null),Gs=Ks.exports;m()(Ks,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"],VSpacer:R["a"],VSwitch:Ss["a"],VTextField:A["a"]});var Ws={name:"Settings",components:{UserSettings:Gs,CommonSettings:qs}},Ys=Ws,Qs=Object(u["a"])(Ys,Fs,Is,!1,null,"ef54e078",null),Xs=Qs.exports;m()(Qs,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var Zs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("ConformityTable")],1)],1)],1)},tn=[],en=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Conformity\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id","item-key":"minion_id",headers:t.headers,items:t.conformity,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/conformity/"+s.minion_id}},[t._v(t._s(s.minion_id))])]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity.toString())+"\n ")])]}},{key:"item.succeeded",fn:function(e){var s=e.item;return[null!=s.succeeded?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"green","text-color":"base"}},[t._v("\n "+t._s(s.succeeded)+"\n ")]):t._e()]}},{key:"item.unchanged",fn:function(e){var s=e.item;return[null!=s.unchanged?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"orange","text-color":"base"}},[t._v("\n "+t._s(s.unchanged)+"\n ")]):t._e()]}},{key:"item.failed",fn:function(e){var s=e.item;return[null!=s.failed?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"red","text-color":"base"}},[t._v("\n "+t._s(s.failed)+"\n ")]):t._e()]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:"",to:"/conformity/"+s.minion_id}},[t._v("\n detail\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:"",to:"/run?tgt="+s.minion_id+"&fun=state.apply"}},[t._v("\n highstate\n ")])],1)]}}])})],1)],1)},an=[],sn={name:"ConformityTable",data(){return{search:"",headers:[],conformity:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/conformity/render/").then(t=>{this.headers=t.data.name,this.headers.push({text:"Actions",value:"action",sortable:!1}),this.conformity=t.data.data,this.loading=!1})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}}},nn=sn,rn=Object(u["a"])(nn,en,an,!1,null,"65a616a4",null),on=rn.exports;m()(rn,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ln={name:"Conformity",components:{ConformityTable:on}},cn=ln,dn=Object(u["a"])(cn,Zs,tn,!1,null,"090bf60e",null),un=dn.exports;m()(dn,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var hn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"4"}},[a("ConformityCard",{attrs:{minion_id:t.minion_id,conformity:t.conformity,custom_conformity:t.custom_conformity}})],1),a("v-col",{attrs:{sm:"12",lg:"8"}},[a("ConformityDetailCard",{attrs:{succeeded:t.succeeded,unchanged:t.unchanged,failed:t.failed}})],1)],1)],1)},mn=[],vn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Highstate Conformity\n "),a("v-spacer"),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.succeeded).length>0,expression:"Object.keys(succeeded).length>0"}],staticClass:"mb-0 mt-0",attrs:{color:"green",label:"Succeeded: "+Object.keys(t.succeeded).length},model:{value:t.succeeded_checkbox,callback:function(e){t.succeeded_checkbox=e},expression:"succeeded_checkbox"}}),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.unchanged).length>0,expression:"Object.keys(unchanged).length>0"}],staticClass:"ml-3 mb-0 mt-0",attrs:{color:"orange",label:"Unchanged: "+Object.keys(t.unchanged).length},model:{value:t.unchanged_checkbox,callback:function(e){t.unchanged_checkbox=e},expression:"unchanged_checkbox"}}),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.failed).length>0,expression:"Object.keys(failed).length>0"}],staticClass:"ml-3 mb-0 mt-0",attrs:{color:"red",label:"Failed: "+Object.keys(t.failed).length},model:{value:t.failed_checkbox,callback:function(e){t.failed_checkbox=e},expression:"failed_checkbox"}})],1),a("v-expansion-panels",t._l(t.succeeded,function(e,s){return t.succeeded_checkbox?a("v-expansion-panel",{key:s,attrs:{dark:""}},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"green"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1),a("v-expansion-panels",t._l(t.unchanged,function(e,s){return t.unchanged_checkbox?a("v-expansion-panel",{key:s},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"orange"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1),a("v-expansion-panels",t._l(t.failed,function(e,s){return t.failed_checkbox?a("v-expansion-panel",{key:s},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"red"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1)],1)],1)},pn=[],fn={name:"ConformityDetailCard",props:["succeeded","unchanged","failed"],data(){return{expand_search:!1,succeeded_checkbox:!0,unchanged_checkbox:!0,failed_checkbox:!0}}},bn=fn,_n=(a("cced"),a("cd55")),gn=a("49e2"),yn=a("c865"),xn=a("0393"),kn=Object(u["a"])(bn,vn,pn,!1,null,"69fc5fbb",null),Cn=kn.exports;m()(kn,{VCard:g["a"],VCardTitle:y["c"],VCheckbox:Cs["a"],VContainer:x["a"],VExpansionPanel:_n["a"],VExpansionPanelContent:gn["a"],VExpansionPanelHeader:yn["a"],VExpansionPanels:xn["a"],VIcon:j["a"],VSpacer:R["a"]});var wn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v(t._s(t.minion_id))]),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("Highstate")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.conformity),dark:""}},[t._v(t._s(t.valRepr(t.conformity)))])],1)])]),t._l(t.custom_conformity,function(e){return a("tbody",{key:e.key},t._l(e,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t.isBool(e)?a("v-chip",{attrs:{color:t.boolRepr(t.conformity),dark:""}},[t._v(t._s(t.valRepr(t.conformity)))]):a("span",[t._v(t._s(t.valRepr(e)))])],1)])}),0)})],2)],1)],1)},jn=[],Vn={name:"ConformityCard",props:["minion_id","conformity","custom_conformity"],data(){return{}},methods:{boolRepr(t){return!0===t?"green":!1===t?"red":"primary"},isBool(t){return"boolean"===typeof t},valRepr(t){return null===t?"unknown":t}}},Sn=Vn,Tn=Object(u["a"])(Sn,wn,jn,!1,null,"71cc8090",null),$n=Tn.exports;m()(Tn,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"]});var Dn={name:"ConformityDetail",props:["minion_id"],components:{ConformityCard:$n,ConformityDetailCard:Cn},data(){return{conformity:"",succeeded:{},unchanged:{},failed:{},custom_conformity:[]}},mounted(){this.loadConformity()},methods:{loadConformity(){this.$http.get("api/minions/"+this.minion_id+"/conformity_detail/").then(t=>{this.conformity=t.data.conformity,this.custom_conformity=t.data.custom_conformity,this.succeeded=t.data.succeeded,this.unchanged=t.data.unchanged,this.failed=t.data.failed})}}},On=Dn,En=Object(u["a"])(On,hn,mn,!1,null,"bc290f46",null),Rn=En.exports;m()(En,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var An=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("UserCard")],1)},Fn=[],In=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("v-card",[a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"username",headers:t.headers,items:t.users},scopedSlots:t._u([{key:"top",fn:function(){return[a("v-toolbar",{attrs:{flat:""}},[a("v-toolbar-title",{staticClass:"headline"},[t._v("Users")]),a("div",{staticClass:"flex-grow-1"}),a("v-dialog",{attrs:{"max-width":"500px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-btn",t._g({staticClass:"mb-2",attrs:{color:"primary",dark:""},on:{click:function(e){t.user={}}}},s),[t._v("Create")])]}}]),model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[a("v-card",[a("v-card-title",[t._v(t._s(!0===t.editing?"Update User":"Create User"))]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Username",rules:t.userRules,required:""},model:{value:t.user.username,callback:function(e){t.$set(t.user,"username",e)},expression:"user.username"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Email",rules:t.emailRules,required:""},model:{value:t.user.email,callback:function(e){t.$set(t.user,"email",e)},expression:"user.email"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"First Name"},model:{value:t.user.first_name,callback:function(e){t.$set(t.user,"first_name",e)},expression:"user.first_name"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Last Name"},model:{value:t.user.last_name,callback:function(e){t.$set(t.user,"last_name",e)},expression:"user.last_name"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{"append-icon":t.show?"visibility":"visibility_off",type:t.show?"text":"password",name:"input-10-1",label:"Password",counter:""},on:{"click:append":function(e){t.show=!t.show}},model:{value:t.user.password,callback:function(e){t.$set(t.user,"password",e)},expression:"user.password"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-checkbox",{attrs:{label:"Staff User"},model:{value:t.user.is_staff,callback:function(e){t.$set(t.user,"is_staff",e)},expression:"user.is_staff"}})],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),t.editing?a("v-btn",{attrs:{color:"primary"},on:{click:t.resetUser}},[t._v("Discard")]):t._e(),t.editing?a("v-btn",{attrs:{color:"warning"},on:{click:t.updateUser}},[t._v("Update")]):t._e(),t.editing?t._e():a("v-btn",{attrs:{color:"warning",disabled:null==t.user.username||""==t.user.email},on:{click:t.createUser}},[t._v("Create\n ")])],1)],1)],1)],1)]},proxy:!0},{key:"item.is_staff",fn:function(e){var s=e.item;return[s.is_staff?a("v-chip",{attrs:{color:"primary",dark:""}},[t._v(t._s(s.is_staff))]):t._e()]}},{key:"item.token",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"primary",tile:"",dark:""},on:{click:function(e){return t.showToken(s)}}},[t._v("\n view\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:""},on:{click:function(e){return t.manageToken("renew",s)}}},[t._v("\n renew\n ")]),a("v-btn",{attrs:{small:"",color:"red",tile:"",dark:"",disabled:String(s.id)===t.currentUserId},on:{click:function(e){return t.manageToken("revoke",s)}}},[t._v("\n revoke\n ")])],1)]}},{key:"item.date_joined",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.date_joined).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:""},on:{click:function(e){return t.editUser(s)}}},[t._v("\n update\n ")]),a("v-btn",{attrs:{small:"",color:"red",tile:"",dark:"",disabled:String(s.id)===t.currentUserId},on:{click:function(e){return t.confirmDelete(s)}}},[t._v("\n delete\n ")])],1)]}}])})],1)],1)],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialogDelete,callback:function(e){t.dialogDelete=e},expression:"dialogDelete"}},[a("v-card",[a("v-card-title",{staticClass:"headline red",attrs:{"primary-title":""}},[t._v("\n Delete "+t._s(t.user.username)+" ?\n ")]),a("v-card-text",[a("br"),t._v("\n this action is irreversible.\n ")]),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialogDelete=!1}}},[t._v("\n close\n ")]),a("v-btn",{attrs:{color:"red",text:""},on:{click:function(e){return t.deleteUser(t.user.id)}}},[t._v("\n delete\n ")])],1)],1)],1)],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialogToken,callback:function(e){t.dialogToken=e},expression:"dialogToken"}},[a("v-card",[a("v-card-title",{staticClass:"headline primary",attrs:{"primary-title":""}},[t._v("\n "+t._s(t.user.username)+" Token\n ")]),t.user.user_settings?a("v-card-text",[a("br"),t._v("\n "+t._s(t.user.user_settings.token)+"\n ")]):t._e(),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialogToken=!1}}},[t._v("\n close\n ")])],1)],1)],1)],1)],1)},Pn=[],Mn={name:"UserCard",data(){return{search:"",headers:[{text:"Username",value:"username"},{text:"First Name",value:"first_name"},{text:"Last Name",value:"last_name"},{text:"Email",value:"email"},{text:"Staff",value:"is_staff"},{text:"Token",value:"token",sortable:!1},{text:"Date Joined",value:"date_joined"},{text:"Actions",value:"action",sortable:!1}],userRules:[t=>!!t||"Username is required"],emailRules:[t=>!!t||"E-mail is required",t=>/.+@.+/.test(t)||"E-mail must be valid"],users:[],user:{},editing:!1,show:!1,dialog:!1,dialogDelete:!1,dialogToken:!1}},mounted(){this.getUsers()},computed:{currentUserId(){return this.$store.state.id}},methods:{getUsers(){this.$http.get("api/users/").then(t=>{this.users=t.data})},createUser(){let t=new FormData;Object.keys(this.user).forEach(e=>t.append(e,this.user[e])),this.$http.post("api/users/",t).then(()=>{this.$toast("User created"),this.dialog=!1}).then(()=>{this.user={},this.getUsers()})},updateUser(){this.editing=!1;let t=new FormData;t.set("username",this.user.username),t.set("email",this.user.email),t.set("first_name",this.user.first_name),t.set("last_name",this.user.last_name),t.set("password",this.user.password),t.set("is_staff",this.user.is_staff),this.$http.patch("api/users/"+this.user.id+"/",t).then(()=>{this.$toast("User updated"),this.dialog=!1,this.user={}}).then(()=>{this.getUsers()})},showToken(t){this.dialogToken=!0,this.user=t},manageToken(t,e){let a=new FormData;a.set("action",t),this.$http.post("api/users/"+e.id+"/manage_token/",a).then(t=>{this.$toast(t.data.result)}).then(()=>{this.getUsers()})},confirmDelete(t){this.dialogDelete=!0,this.user=t},deleteUser(t){this.$http.delete("api/users/"+t).then(()=>{this.dialogDelete=!1,this.$toast("User deleted")}).then(()=>this.getUsers())},editUser(t){this.dialog=!0,this.editing=!0,this.user=t},resetUser(){this.dialog=!1,this.editing=!1,this.user={}}}},Ln=Mn,Nn=Object(u["a"])(Ln,In,Pn,!1,null,"7dccc9a6",null),Jn=Nn.exports;m()(Nn,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCheckbox:Cs["a"],VChip:$t["a"],VCol:Pt["a"],VContainer:x["a"],VDataTable:Ht["a"],VDialog:Le["a"],VDivider:C["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"],VToolbar:ie["a"],VToolbarTitle:F["a"]});var qn={name:"Users",components:{UserCard:Jn}},Un=qn,zn=Object(u["a"])(Un,An,Fn,!1,null,"68ff4932",null),Bn=zn.exports;m()(zn,{VContainer:x["a"]});var Hn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("ScheduleTable",{key:t.refreshKey}),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)],1)},Kn=[],Gn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Schedules\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion",headers:t.headers,items:t.schedules,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.enabled",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.enabled),dark:""}},[t._v(t._s(s.enabled))])]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:s.enabled?"orange":"green",tile:"",dark:""},on:{click:function(e){return t.manageSchedule(s.enabled?"disable_job":"enable_job",s.name,s.minion)}}},[t._v("\n "+t._s(s.enabled?"disable":"enable")+"\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"red",tile:"",dark:""},on:{click:function(e){return t.manageSchedule("delete",s.name,s.minion)}}},[t._v("\n delete\n ")])],1)]}}])})],1)],1)},Wn=[],Yn={name:"ScheduleTable",data(){return{search:"",headers:[],schedules:[],loading:!0}},methods:{loadData(){this.loading=!1,this.$http.get("api/schedules/").then(t=>{if(this.schedules=t.data,this.schedules.length>0){let t=new Set(["minion","name","function"]);this.schedules.forEach(e=>{Object.keys(e).forEach(e=>{t.add(e)})}),t.delete("id"),t.forEach(t=>{this.headers.push({text:t,value:t})}),this.headers.push({text:"action",value:"action"})}})},manageSchedule(t,e,a){this.$toast(`${t} on ${a} for job ${e}`);let s=new FormData;s.set("action",t),s.set("name",e),s.set("minion",a),this.$http.post("api/schedules/manage/",s).then(()=>{this.$toast(`${t} on ${a} for job ${e}: done`)}).then(()=>{this.headers=[],this.schedules=[],this.loadData()})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}},mounted(){this.loadData()}},Qn=Yn,Xn=Object(u["a"])(Qn,Gn,Wn,!1,null,"16fe8902",null),Zn=Xn.exports;m()(Xn,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ti={name:"Schedules",components:{Fab:Te,ScheduleTable:Zn},data:()=>({fabs:[{color:"pink",action:"refreshSchedules",icon:"refresh",tooltip:"Refresh schedules"}],refreshKey:0}),methods:{fabAction(t){this[t]()},refreshSchedules(){this.$toast("refreshing schedules"),this.$http.post("/api/schedules/refresh/").then(()=>{this.refreshKey+=1,this.$toast("schedules refreshed")}).catch(function(t){alert(t)})}}},ei=ti,ai=Object(u["a"])(ei,Hn,Kn,!1,null,"56af01f4",null),si=ai.exports;m()(ai,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]});var ni=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{cols:"4",offset:"4"}},[a("v-card",[a("v-card-title",{staticClass:"black white--text subheading",attrs:{"primary-title":""}},[a("span",{staticClass:"title"},[t._v("Oops")])]),a("v-card-text",{staticClass:"display-1 ma-7 text-center"},[t._v("\n 404. There is no page here.\n ")]),a("v-card-actions",[a("v-btn",{staticClass:"primary darken-3 white--text",attrs:{text:"",to:"/"}},[a("v-icon",{attrs:{left:""},domProps:{textContent:t._s("mdi-arrow-left")}}),t._v("\n Back\n ")],1)],1)],1)],1)],1)],1)},ii=[],ri={name:"NotFound"},oi=ri,li=Object(u["a"])(oi,ni,ii,!1,null,"06e44549",null),ci=li.exports;m()(li,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Pt["a"],VContainer:x["a"],VIcon:j["a"],VRow:Mt["a"]});var di=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[0===t.jobs.length&&0===t.minions.length?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("p",{staticClass:"display-2 text-center"},[t._v("Sorry, no results...")])])],1):t._e(),t.jobs.length>0?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Jobs\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.job_search,callback:function(e){t.job_search=e},expression:"job_search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"jid","sort-desc":"",headers:t.jobs_headers,items:t.jobs,search:t.search,"items-per-page":5},scopedSlots:t._u([{key:"item.jid",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",class:s.jid.includes(t.query)?"red":"",attrs:{text:"",small:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v(t._s(s.jid)+"\n ")])]}},{key:"item.fun",fn:function(e){var s=e.item;return[a("span",{class:s.fun.includes(t.query)?"red":""},[t._v(t._s(s.fun))])]}},{key:"item.arguments",fn:function(e){var a=e.item;return[t._v("\n "+t._s(a.arguments.length>20?a.arguments.slice(0,20)+"...":a.arguments)+"\n ")]}},{key:"item.success",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.success),dark:""}},[t._v(t._s(t.boolText(s.success)))])]}},{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}}],null,!1,1135029737)})],1)],1)],1):t._e(),t.minions.length>0?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Minions\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{headers:t.minions_headers,items:t.minions,"items-per-page":5},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",class:s.minion_id.includes(t.query)?"red":"",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id)+"\n ")])]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity)+"\n ")])]}},{key:"item.last_job",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_job?"":new Date(a.last_job).toLocaleString("en-GB"))+"\n ")]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}}],null,!1,771680795)})],1)],1)],1):t._e()],1)],1)},ui=[],hi={name:"Search",data(){return{query:null,jobs:[],jobs_headers:[{text:"Jid",value:"jid"},{text:"Target",value:"id"},{text:"Function",value:"fun"},{text:"Arguments",value:"arguments"},{text:"User",value:"user"},{text:"Status",value:"success"},{text:"Date",value:"alter_time"}],job_search:"",minions:[],minions_headers:[{text:"Minion Id",value:"minion_id"},{text:"Highstate Conformity",value:"conformity"},{text:"F.Q.D.N",value:"fqdn"},{text:"O.S",value:"os"},{text:"O.S Version",value:"oscodename"},{text:"Kernel",value:"kernelrelease"},{text:"Last Job",value:"last_job"},{text:"Last Highstate",value:"last_highstate"}]}},created(){this.query=this.$route.query.q},mounted(){this.searchBar()},methods:{searchBar(){this.$http.get("api/search/?q="+this.query).then(t=>{function e(t){return t.forEach(t=>{let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a]}),t}this.jobs=t.data.jobs,this.minions=e(t.data.minions)})},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"}}},mi=hi,vi=Object(u["a"])(mi,di,ui,!1,null,"f2f59722",null),pi=vi.exports;m()(vi,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Pt["a"],VContainer:x["a"],VDataTable:Ht["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"]});var fi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",cols:"12"}},[a("JobTemplatesTable")],1)],1)],1)},bi=[],_i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",[a("v-card-title",[t._v("\n Job Templates\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"jid","sort-desc":"",headers:t.headers,items:t.job_templates,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.name",fn:function(e){var s=e.item;return[a("b",[t._v(t._s(s.name))])]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue-grey",tile:"",dark:"",to:t.computeUrl(s,!1)}},[t._v("\n run\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:"",to:t.computeUrl(s,!0)}},[t._v("\n edit\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"red",tile:"",dark:""},on:{click:function(e){return t.deleteTemplate(s.id)}}},[t._v("\n delete\n ")])],1)]}}])})],1)],1)],1)],1)},gi=[],yi={name:"JobTemplatesTable",data(){return{search:"",headers:[{text:"Name",value:"name"},{text:"Client",value:"client"},{text:"Target Type",value:"tgt_type"},{text:"Target",value:"tgt"},{text:"Function",value:"fun"},{text:"Arguments",value:"arg"},{text:"Keyword Arguments",value:"kwarg"},{text:"Batch",value:"batch"},{text:"Actions",value:"action",sortable:!1}],loading:!0,job_templates:[]}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/job_templates/").then(t=>{let e=t.data;e.forEach(t=>{let e=JSON.parse(t.job);Object.keys(e).forEach(a=>{if("arg"===a){let s=e[a],n=s.filter(t=>{return t.includes("=")});s=s.filter(t=>{return!t.includes("=")}),t[a]=s.join(" "),t["kwarg"]=n.join(" ")}else t[a]=e[a]}),delete t.job}),this.job_templates=e,this.loading=!1})},deleteTemplate(t){this.$http.delete("api/job_templates/"+t).then(t=>{this.$toast("Template deleted")}).then(()=>{this.loadData()})},computeUrl(t,e=!1){let a=new URLSearchParams(t);return a.delete("id"),e||a.delete("name"),"/run?"+a.toString()}}},xi=yi,ki=Object(u["a"])(xi,_i,gi,!1,null,"7019d861",null),Ci=ki.exports;m()(ki,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VCol:Pt["a"],VContainer:x["a"],VDataTable:Ht["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"]});var wi={name:"JobTemplates",components:{JobTemplatesTable:Ci}},ji=wi,Vi=Object(u["a"])(ji,fi,bi,!1,null,"cb15827a",null),Si=Vi.exports;m()(Vi,{VCol:Pt["a"],VContainer:x["a"],VRow:Mt["a"]}),s["a"].use(tt["a"]);const Ti=new tt["a"]({routes:[{path:"/",name:"home",component:Zt},{path:"/minions",name:"minions",component:Be},{path:"/minions/:minion_id",name:"minion_detail",component:Va,props:!0},{path:"/jobs",name:"jobs",component:me},{path:"/jobs/:jid/:minion_id",name:"job_detail",component:Ea,props:!0},{path:"/run",name:"run",component:As},{path:"/job_templates",name:"job_templates",component:Si},{path:"/keys",name:"keys",component:Ee},{path:"/events",name:"events",component:Ba},{path:"/conformity",name:"conformity",component:un},{path:"/conformity/:minion_id",name:"conformity_detail",component:Rn,props:!0},{path:"/schedules",name:"schedules",component:si},{path:"/users",name:"users",component:Bn},{path:"/settings",name:"settings",component:Xs},{path:"/search",name:"search",component:pi},{path:"/login",name:"Login",component:oe,meta:{plainLayout:!0}},{path:"*",component:ci}]});Ti.beforeEach((t,e,a)=>{nt.getters.isLoggedIn||"/login"===t.path?"/login"===t.path&&nt.getters.isLoggedIn?a("/"):a():a("/login")});var $i=Ti,Di=a("04e1"),Oi=a.n(Di);s["a"].config.productionTip=!1,s["a"].prototype.$http=st.a,s["a"].prototype.$http.defaults.xsrfCookieName="csrftoken",s["a"].prototype.$http.defaults.xsrfHeaderName="X-CSRFToken",s["a"].prototype.$http.defaults.headers.common["Content-Type"]="application/json";const Ei=localStorage.getItem("token");Ei&&(s["a"].prototype.$http.defaults.headers.common.Authorization=`Bearer ${Ei}`,s["a"].prototype.$http.defaults.withCredentials=!0);let Ri=!1,Ai=[];const Fi=(t,e=null)=>{Ai.forEach(a=>{t?a.reject(t):a.resolve(e)}),Ai=[]};s["a"].prototype.$http.interceptors.request.use(t=>{const e=t,a=window.localStorage.getItem("refresh");return a&&Oi()(a).exp-Math.floor(Date.now()/1e3)<60?nt.dispatch("logout").then(()=>{return $i.push({path:"/login",name:"Login"})}):e},t=>{return Promise.reject(t)}),s["a"].prototype.$http.interceptors.response.use(function(t){return t},function(t){const e=t.config;if(401===t.response.status&&!e._retry){if(Ri)return new Promise(function(t,e){Ai.push({resolve:t,reject:e})}).then(t=>{return e.headers["Authorization"]="Bearer "+t,s["a"].prototype.$http(e)}).catch(t=>{return t});e._retry=!0,Ri=!0;const t=window.localStorage.getItem("refresh");return new Promise(function(a,n){s["a"].prototype.$http.post("/api/token/refresh/",{refresh:t}).then(({data:t})=>{window.localStorage.setItem("access",t.access),s["a"].prototype.$http.defaults.headers.common["Authorization"]="Bearer "+t.access,e.headers["Authorization"]="Bearer "+t.access,Fi(null,t.access),a(s["a"].prototype.$http(e))}).catch(t=>{Fi(t,null),n(t)}).then(()=>{Ri=!1})})}return Promise.reject(t)}),new s["a"]({vuetify:Z,router:$i,store:nt,render:t=>t(G)}).$mount("#app")},6684:function(t,e,a){},a084:function(t,e,a){"use strict";var s=a("6684"),n=a.n(s);n.a},ab8d:function(t,e,a){},c8ef:function(t,e,a){},cced:function(t,e,a){"use strict";var s=a("1775"),n=a.n(s);n.a},df9d:function(t,e,a){"use strict";var s=a("c8ef"),n=a.n(s);n.a},e100:function(t,e,a){},efe9:function(t,e,a){}});
+//# sourceMappingURL=app.6bf41df6.js.map
\ No newline at end of file
diff --git a/dist/static/js/app.6bf41df6.js.map b/dist/static/js/app.6bf41df6.js.map
new file mode 100644
index 00000000..d8d71427
--- /dev/null
+++ b/dist/static/js/app.6bf41df6.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9745","webpack:///./src/components/MinionDetailCard.vue?9d1e","webpack:///./src/components/RunCard.vue?1013","webpack:///./src/components/ConformityChart.vue?f251","webpack:///./src/components/core/Layout.vue?d05e","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?a0a5","webpack:///./src/components/core/Layout.vue?3c87","webpack:///./src/components/mixins/helpersMixin.js","webpack:///src/components/core/Layout.vue","webpack:///./src/components/core/Layout.vue?035b","webpack:///./src/components/core/Layout.vue","webpack:///./src/components/core/SimpleLayout.vue?319a","webpack:///src/components/core/SimpleLayout.vue","webpack:///./src/components/core/SimpleLayout.vue?af82","webpack:///./src/components/core/SimpleLayout.vue","webpack:///src/App.vue","webpack:///./src/App.vue?d7d8","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/store.js","webpack:///./src/views/Home.vue?cbda","webpack:///./src/components/KeysStatusCard.vue?9800","webpack:///src/components/KeysStatusCard.vue","webpack:///./src/components/KeysStatusCard.vue?d973","webpack:///./src/components/KeysStatusCard.vue","webpack:///./src/components/JobsChartCard.vue?1aef","webpack:///./src/assets/js/utils/chart-line-gradient.js","webpack:///src/components/JobsChartCard.vue","webpack:///./src/components/JobsChartCard.vue?3f73","webpack:///./src/components/JobsChartCard.vue","webpack:///./src/components/AlcaliStatusCard.vue?6bba","webpack:///src/components/AlcaliStatusCard.vue","webpack:///./src/components/AlcaliStatusCard.vue?647a","webpack:///./src/components/AlcaliStatusCard.vue","webpack:///./src/components/ConformityChart.vue?5fd5","webpack:///src/components/ConformityChart.vue","webpack:///./src/components/ConformityChart.vue?eb15","webpack:///./src/components/ConformityChart.vue","webpack:///./src/components/JobsTable.vue?5505","webpack:///src/components/JobsTable.vue","webpack:///./src/components/JobsTable.vue?87e5","webpack:///./src/components/JobsTable.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?3ac6","webpack:///./src/views/Home.vue","webpack:///./src/views/Login.vue?ab9a","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?7320","webpack:///./src/views/Login.vue","webpack:///./src/views/Jobs.vue?738c","webpack:///src/views/Jobs.vue","webpack:///./src/views/Jobs.vue?4c05","webpack:///./src/views/Jobs.vue","webpack:///./src/views/Keys.vue?9a8c","webpack:///./src/components/KeysTable.vue?2c11","webpack:///src/components/KeysTable.vue","webpack:///./src/components/KeysTable.vue?c374","webpack:///./src/components/KeysTable.vue","webpack:///./src/components/core/Fab.vue?92c2","webpack:///src/components/core/Fab.vue","webpack:///./src/components/core/Fab.vue?cec0","webpack:///./src/components/core/Fab.vue","webpack:///src/views/Keys.vue","webpack:///./src/views/Keys.vue?3eed","webpack:///./src/views/Keys.vue","webpack:///./src/views/Minions.vue?91bd","webpack:///./src/components/MinionsTable.vue?4271","webpack:///src/components/MinionsTable.vue","webpack:///./src/components/MinionsTable.vue?bb3b","webpack:///./src/components/MinionsTable.vue","webpack:///src/views/Minions.vue","webpack:///./src/views/Minions.vue?8bb8","webpack:///./src/views/Minions.vue","webpack:///./src/views/MinionDetail.vue?4e8b","webpack:///./src/components/InfosCard.vue?0ef7","webpack:///src/components/InfosCard.vue","webpack:///./src/components/InfosCard.vue?6266","webpack:///./src/components/InfosCard.vue","webpack:///./src/components/NetworkCard.vue?faf2","webpack:///src/components/NetworkCard.vue","webpack:///./src/components/NetworkCard.vue?4bc0","webpack:///./src/components/NetworkCard.vue","webpack:///./src/components/MinionDetailCard.vue?82dc","webpack:///src/components/MinionDetailCard.vue","webpack:///./src/components/MinionDetailCard.vue?7aef","webpack:///./src/components/MinionDetailCard.vue","webpack:///src/views/MinionDetail.vue","webpack:///./src/views/MinionDetail.vue?2696","webpack:///./src/views/MinionDetail.vue","webpack:///./src/views/JobDetail.vue?1553","webpack:///src/views/JobDetail.vue","webpack:///./src/views/JobDetail.vue?ccdb","webpack:///./src/views/JobDetail.vue","webpack:///./src/views/Events.vue?bf68","webpack:///./src/components/EventsTable.vue?37f0","webpack:///src/components/EventsTable.vue","webpack:///./src/components/EventsTable.vue?c21d","webpack:///./src/components/EventsTable.vue","webpack:///src/views/Events.vue","webpack:///./src/views/Events.vue?1bc8","webpack:///./src/views/Events.vue","webpack:///./src/views/Run.vue?3f6b","webpack:///./src/components/RunCard.vue?af79","webpack:///./src/components/TerminalCard.vue?5d77","webpack:///./src/assets/js/local-echo/HistoryController.js","webpack:///./src/assets/js/local-echo/Utils.js","webpack:///./src/assets/js/local-echo/LocalEchoController.js","webpack:///src/components/TerminalCard.vue","webpack:///./src/components/TerminalCard.vue?2355","webpack:///./src/components/TerminalCard.vue","webpack:///./src/assets/js/utils/cron-ui.js","webpack:///src/components/RunCard.vue","webpack:///./src/components/RunCard.vue?60b2","webpack:///./src/components/RunCard.vue","webpack:///src/views/Run.vue","webpack:///./src/views/Run.vue?90f1","webpack:///./src/views/Run.vue","webpack:///./src/views/Settings.vue?ccad","webpack:///./src/components/CommonSettings.vue?4cd2","webpack:///src/components/CommonSettings.vue","webpack:///./src/components/CommonSettings.vue?8e82","webpack:///./src/components/CommonSettings.vue","webpack:///./src/components/UserSettings.vue?34f8","webpack:///src/components/UserSettings.vue","webpack:///./src/components/UserSettings.vue?67d2","webpack:///./src/components/UserSettings.vue","webpack:///src/views/Settings.vue","webpack:///./src/views/Settings.vue?bf73","webpack:///./src/views/Settings.vue","webpack:///./src/views/Conformity.vue?6213","webpack:///./src/components/ConformityTable.vue?49d1","webpack:///src/components/ConformityTable.vue","webpack:///./src/components/ConformityTable.vue?700c","webpack:///./src/components/ConformityTable.vue","webpack:///src/views/Conformity.vue","webpack:///./src/views/Conformity.vue?fb4d","webpack:///./src/views/Conformity.vue","webpack:///./src/views/ConformityDetail.vue?e432","webpack:///./src/components/ConformityDetailCard.vue?9bfe","webpack:///src/components/ConformityDetailCard.vue","webpack:///./src/components/ConformityDetailCard.vue?afa1","webpack:///./src/components/ConformityDetailCard.vue","webpack:///./src/components/ConformityCard.vue?cc43","webpack:///src/components/ConformityCard.vue","webpack:///./src/components/ConformityCard.vue?97bf","webpack:///./src/components/ConformityCard.vue","webpack:///src/views/ConformityDetail.vue","webpack:///./src/views/ConformityDetail.vue?67e0","webpack:///./src/views/ConformityDetail.vue","webpack:///./src/views/Users.vue?54c0","webpack:///./src/components/mixins/UserCard.vue?80ef","webpack:///src/components/mixins/UserCard.vue","webpack:///./src/components/mixins/UserCard.vue?3795","webpack:///./src/components/mixins/UserCard.vue","webpack:///src/views/Users.vue","webpack:///./src/views/Users.vue?1ef6","webpack:///./src/views/Users.vue","webpack:///./src/views/Schedules.vue?a714","webpack:///./src/components/ScheduleTable.vue?284f","webpack:///src/components/ScheduleTable.vue","webpack:///./src/components/ScheduleTable.vue?2a0f","webpack:///./src/components/ScheduleTable.vue","webpack:///src/views/Schedules.vue","webpack:///./src/views/Schedules.vue?4da2","webpack:///./src/views/Schedules.vue","webpack:///./src/components/NotFound.vue?f190","webpack:///src/components/NotFound.vue","webpack:///./src/components/NotFound.vue?0381","webpack:///./src/components/NotFound.vue","webpack:///./src/views/Search.vue?4070","webpack:///src/views/Search.vue","webpack:///./src/views/Search.vue?f11a","webpack:///./src/views/Search.vue","webpack:///./src/views/JobTemplates.vue?9ed7","webpack:///./src/components/JobTemplatesTable.vue?ba2e","webpack:///src/components/JobTemplatesTable.vue","webpack:///./src/components/JobTemplatesTable.vue?72c4","webpack:///./src/components/JobTemplatesTable.vue","webpack:///src/views/JobTemplates.vue","webpack:///./src/views/JobTemplates.vue?0ac6","webpack:///./src/views/JobTemplates.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/views/Login.vue?6fa5","webpack:///./src/components/ConformityDetailCard.vue?a51e","webpack:///./src/views/JobDetail.vue?074e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","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","render","_vm","this","_h","$createElement","_c","_self","layout","staticRenderFns","attrs","mini","scopedSlots","_u","fn","staticClass","on","$event","stopPropagation","_v","proxy","model","callback","$$v","drawer","expression","_s","username","email","_l","route","ref","_g","icon","directives","rawName","nativeOn","type","indexOf","_k","keyCode","searchBar","searchInput","expand_search","notif_nb","_e","notif_menu","messages","item","link","color","text","tag","toggleTheme","logout","methods","pattern","filename","reRegExpChar","escaped","replace","matcher","RegExp","test","milliseconds","Promise","setTimeout","component","VApp","VAppBar","VAppBarNavIcon","VBadge","VBtn","VCard","VCardActions","VContainer","VContent","VDivider","VExpandTransition","VFadeTransition","VIcon","VList","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VListItemSubtitle","VListItemTitle","VMenu","VNavigationDrawer","VSpacer","VTextField","VToolbarTitle","VToolbar","VTooltip","use","components","VSnackbar","x","y","iconColor","classes","timeout","dismissable","multiLine","vertical","queueable","showClose","closeText","closeColor","shorts","custom","icons","iconfont","theme","themes","light","primary","secondary","dark","Store","state","localStorage","getItem","access","refresh","ws_status","mutations","forEach","setItem","JSON","stringify","getters","isLoggedIn","user_id","actions","commit","user_data","reject","url","method","then","resp","a","defaults","headers","common","Authorization","catch","err","clear","limit","count","status","statusIcon","keys_total","VCardTitle","VSimpleTable","minion","filters","loadData","selectedFilter","periods","selectedPeriod","gradientLinePlugin","afterLayout","chartInstance","options","linearGradientLine","ctx","chart","datasets","dataset","minValue","Number","MAX_VALUE","maxValue","MIN_VALUE","yAxis","scales","minValueYPixel","getPixelForValue","maxValueYPixel","gradient","createLinearGradient","addColorStop","colorStart","colorEnd","borderColor","radialGradientDonut","centerX","chartArea","left","right","centerY","top","bottom","createRadialGradient","innerRadius","backgroundColor","VSelect","wsStatus","VChip","refInFor","domProps","customTool","VCardText","VCol","VRow","filter","selectedDate","dateRangeText","menu","Date","toISOString","split","$refs","save","users","index","selectedUsers","minions","selectedTarget","selectedLimit","filterJobs","search","filteredHeaders","indexedItems","loading","jid","arguments","keyword_arguments","boolRepr","success","boolText","alter_time","toLocaleString","fun","VAutocomplete","VDataTable","VDatePicker","password","preventDefault","authenticate","VForm","refreshKey","fabs","fabAction","minion_id","keysRepr","toString","keyAction","action","manageKey","fab","f","tooltip","emit","VSpeedDial","conformity","last_job","last_highstate","refreshMinion","showDialog","dialog","target","deleteMinion","VDialog","tab","grain","VTab","VTabItem","VTabs","VTabsItems","VTabsSlider","val","iface","ip4_gw","ip6_gw","field","fold","grainCmFolded","cmOptions","pillarCmFolded","codepillar","yamlRepr","job","formatDate","ansiResult","events","parse","client","selected_client","client_batch","scheduleSwitch","client_async","batch","target_type","selected_target_type","filteredFunction","selectedFunction","description","arg","kwarg","staticStyle","scheduleName","scheduleType","scheduleDate","dateMenu","scheduleTime","timeMenu","pillarSwitch","pillarRendered","saveJobSwitch","jobTemplateName","runJob","saveJob","functions","results","HistoryController","size","entries","cursor","entry","trim","lastEntry","pop","idx","Math","max","min","wordBoundaries","input","leftSide","match","words","rx","exec","closestLeftBoundary","offset","found","reverse","find","closestRightBoundary","offsetToColRow","maxCols","row","col","chr","charAt","countLines","isIncompleteInput","endsWith","hasTailingWhitespace","getLastToken","tokens","collectAutocompleteCandidates","callbacks","expr","all","reduce","candidates","args","concat","console","error","txt","startsWith","term","_handleTermData","handleTermData","_handleTermResize","handleTermResize","history","historySize","maxAutocompleteEntries","_autocompleteHandlers","_active","_input","_cursor","_activePrompt","_activeCharPrompt","_termSize","cols","rows","attach","off","onData","onResize","findIndex","prompt","continuationPrompt","write","reason","message","print","normInput","items","padding","println","itemWidth","width","wideCols","floor","wideRows","ceil","rowStr","repeat","newInput","applyPrompts","substr","currentPrompt","allRows","promptCursor","applyPromptOffset","moveRows","clearInput","newPrompt","newCursor","newLines","moveUpRows","setCursor","resume","setInput","ret","inputWithPrompt","prevPromptOffset","prevCol","prevRow","newPromptOffset","newCol","newRow","dir","num","backspace","charCodeAt","normData","Array","from","handleData","ord","ofs","getPrevious","getNext","handleCursorMove","handleCursorErase","handleCursorInsert","handleReadComplete","inputFragment","hasTailingSpace","sort","lastToken","printAndRestartPrompt","printWide","readChar","yn","rewind","CronUI","container","opts","HTMLElement","el","document","querySelector","initial","setCronString","currentValue","Resize","suffix","str_opt_mih","str_opt_hid","str_opt_dom","str_opt_month","months","str_opt_dow","days","str_opt_period","blocks","insertAdjacentHTML","periodEl","addEventListener","periodChanged","changeEvent","blockName","querySelectorAll","selectEl","cronPeriodEl","period","selectedIndex","style","display","displayMatrix","b","getCronString","hour","day","month","dow","getSelectValue","join","cronString","cronType","getCronType","v","targets","tgt","cronTypes","valid_cron","minval","maxval","parseInt","VCheckbox","VCombobox","VRadio","VRadioGroup","VSwitch","VTimePicker","parseModules","version","deleteMinionsFields","minionsfields_name","minionsfields_value","createMinionsFields","function","deleteConformity","conformity_name","conformity_value","createConformity","notifs","$set","max_notifs","updateUserSettings","succeeded","unchanged","failed","custom_conformity","succeeded_checkbox","unchanged_checkbox","failed_checkbox","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","valRepr","conf","isBool","user","editing","userRules","emailRules","show","resetUser","updateUser","createUser","is_staff","showToken","manageToken","String","currentUserId","date_joined","editUser","confirmDelete","dialogDelete","deleteUser","dialogToken","user_settings","token","schedules","enabled","manageSchedule","jobs","job_search","jobs_headers","class","includes","query","minions_headers","job_templates","computeUrl","deleteTemplate","router","routes","path","Home","Minions","MinionDetail","props","Jobs","JobDetail","Run","JobTemplates","Keys","Events","Conformity","ConformityDetail","Schedules","Users","Settings","Search","Login","meta","plainLayout","NotFound","beforeEach","to","next","store","config","productionTip","$http","xsrfCookieName","xsrfHeaderName","accessToken","withCredentials","isRefreshing","failedQueue","processQueue","prom","interceptors","request","originalRequest","exp","now","dispatch","response","_retry","refreshToken","post","vuetify","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,EAAgBP,IAClBK,EAASG,KAAKD,EAAgBP,GAAS,IAExCO,EAAgBP,GAAW,EAE5B,IAAID,KAAYG,EACZO,OAAOC,UAAUC,eAAeC,KAAKV,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBR,KAAKS,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3Bf,EAAgBgB,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAGtE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBpB,EAAkB,CACrB,IAAO,GAGJS,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU6B,QAGnC,IAAIC,EAASF,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHF,QAAS,IAUV,OANAf,EAAQd,GAAUa,KAAKiB,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOC,GAAI,EAGJD,EAAOD,QAKfH,EAAoBM,EAAIlB,EAGxBY,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASL,EAASM,EAAMC,GAC3CV,EAAoBW,EAAER,EAASM,IAClCzB,OAAO4B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEV,EAAoBe,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CjC,OAAO4B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DlC,OAAO4B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKtC,OAAOuC,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBtC,OAAO4B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBQ,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAJ,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASgB,EAAQC,GAAY,OAAO5C,OAAOC,UAAUC,eAAeC,KAAKwC,EAAQC,IAGzG5B,EAAoB6B,EAAI,IAExB,IAAIC,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAW/C,KAAK0C,KAAKK,GAC5CA,EAAW/C,KAAOX,EAClB0D,EAAaA,EAAWG,QACxB,IAAI,IAAItD,EAAI,EAAGA,EAAImD,EAAWjD,OAAQF,IAAKP,EAAqB0D,EAAWnD,IAC3E,IAAIU,EAAsB2C,EAI1BzC,EAAgBR,KAAK,CAAC,EAAE,kBAEjBU,K,6ECtJT,yBAAke,EAAG,G,2DCAre,yBAA4hB,EAAG,G,2DCA/hB,yBAAmhB,EAAG,G,kFCAthB,yBAA2hB,EAAG,G,oCCA9hB,yBAA+gB,EAAG,G,qBCAlhB,IAAIyC,EAAM,CACT,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OA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","file":"static/js/app.6bf41df6.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=style&index=0&id=ab381b0c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=style&index=0&id=ab381b0c&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&lang=css&\"","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.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-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\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-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\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-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\"./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-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\"./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\"./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-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\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\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 id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[(!_vm.layout)?_c('app-layout'):_c('simple-layout')],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-app',[_c('v-navigation-drawer',{attrs:{\"mini-variant\":_vm.mini,\"app\":\"\",\"clipped\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-list-item',{staticClass:\"elevation-24\",on:{\"click\":function($event){$event.stopPropagation();_vm.mini = !_vm.mini}}},[_c('v-list-item-action',[(_vm.mini)?_c('v-icon',[_vm._v(\"arrow_forward\")]):_c('v-icon',[_vm._v(\"arrow_back\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"COLLAPSE\")])],1)],1)]},proxy:true}]),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',{staticClass:\"py-0\",attrs:{\"dense\":\"\",\"nav\":\"\",\"dark\":\"\",\"color\":\"#212121\"}},[_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"person\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.username))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.email))])],1)],1)],1),_c('v-divider'),_vm._l((_vm.routes),function(route){return _c('v-list',{key:route.name,attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"to\":(\"\" + (route.path))}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(_vm._s(route.icon))])]}}],null,true)},[_c('span',[_vm._v(_vm._s(route.name))])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(route.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(route.name))])],1)],1)],1)}),_c('v-divider'),_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"to\":\"/users\"}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"group\")])]}}],null,false,3527340433)},[_c('span',[_vm._v(\"Users\")])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(\"group\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Users\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/settings\"}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"settings\")])]}}],null,false,1926182315)},[_c('span',[_vm._v(\"Settings\")])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(\"settings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Settings\")])],1)],1)],1)],2),_c('v-app-bar',{attrs:{\"color\":\"black\",\"dark\":\"\",\"app\":\"\",\"clipped-left\":\"\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){$event.stopPropagation();_vm.drawer = !_vm.drawer}}}),_c('v-toolbar-title',{staticClass:\"font-weight-bold\"},[_vm._v(\"ALCALI\")]),_c('v-spacer'),_c('v-expand-transition',[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.expand_search),expression:\"expand_search\"}],staticClass:\"mx-auto\",attrs:{\"flat\":\"\",\"hide-details\":\"\",\"label\":\"Search jids, minions, states...\",\"solo-inverted\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.searchBar($event)}},model:{value:(_vm.searchInput),callback:function ($$v) {_vm.searchInput=$$v},expression:\"searchInput\"}})],1),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.expand_search = !_vm.expand_search}}},[_c('v-icon',[_vm._v(\"mdi-magnify\")])],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"offset-x\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-badge',{attrs:{\"color\":\"primary\",\"overlap\":\"\"},scopedSlots:_vm._u([{key:\"badge\",fn:function(){return [(_vm.notif_nb > 0)?_c('span',[_vm._v(_vm._s(_vm.notif_nb))]):_vm._e()]},proxy:true}],null,true)},[_c('v-icon',_vm._g({on:{\"click\":function($event){_vm.notif_nb = 0}}},on),[_vm._v(\"notifications\")])],1)]}}]),model:{value:(_vm.notif_menu),callback:function ($$v) {_vm.notif_menu=$$v},expression:\"notif_menu\"}},[_c('v-card',{attrs:{\"min-width\":\"500px\",\"max-width\":\"500px\"}},[_c('v-list',{attrs:{\"max-height\":\"700px\"}},[(_vm.messages.length === 0)?_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-subtitle',[_vm._v(\"No new notifications\")])],1)],1):_vm._e(),_vm._l((_vm.messages),function(item,i){return _c('v-list-item',{key:i,attrs:{\"to\":item.link}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"dark\":\"\",\"color\":item.color,\"size\":\"62\"}},[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.text))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(item.tag))])],1)],1)})],2),_c('v-card-actions',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.messages.length > 0),expression:\"messages.length > 0\"}]},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.messages = []}}},[_vm._v(\"Clear\")])],1)],1)],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"offset-x\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.toggleTheme}},[_c('v-list-item-title',[_vm._v(\"Toggle Theme\")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.logout}},[_c('v-list-item-title',[_vm._v(\"Logout\")])],1)],1)],1)],1),_c('v-content',[_c('v-container',[_c('v-fade-transition',{attrs:{\"mode\":\"out-in\"}},[_c('router-view')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n /* function to allow Salt-style globbing on event tags. */\n fnmatch(pattern) {\n if (pattern.indexOf('*') === -1) {\n return filename => pattern === filename;\n } else {\n let reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n let escaped = pattern.replace(reRegExpChar, '\\\\$&');\n let matcher = new RegExp('^' + escaped.replace(/\\\\\\*/g, '.*') + '$');\n return filename => matcher.test(filename);\n }\n },\n sleep(milliseconds) {\n return new Promise(resolve => setTimeout(resolve, milliseconds))\n },\n }\n};","\n \n \n \n \n \n person \n \n \n {{username}} \n {{email}} \n \n \n \n \n \n \n \n \n \n {{ route.icon }} \n \n {{route.name}} \n \n \n \n {{ route.icon }} \n \n \n {{ route.name }} \n \n \n \n \n \n \n \n \n \n group \n \n Users \n \n \n \n group \n \n \n Users \n \n \n \n \n \n \n settings \n \n Settings \n \n \n \n settings \n \n \n Settings \n \n \n \n \n \n \n arrow_forward \n arrow_back \n \n \n COLLAPSE \n \n \n \n \n \n \n ALCALI \n \n \n \n \n \n mdi-magnify \n \n \n \n \n \n 0\">{{ notif_nb }} \n \n notifications \n \n \n \n \n \n \n No new notifications \n \n \n \n \n {{item.icon}} \n \n\n \n {{ item.text }} \n {{ item.tag}} \n \n \n \n 0\">\n \n Clear \n \n \n \n \n \n \n mdi-dots-vertical \n \n \n \n \n Toggle Theme \n \n \n \n Logout \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=3cf9859d&\"\nimport script from \"./Layout.vue?vue&type=script&lang=js&\"\nexport * from \"./Layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Layout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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 { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\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 { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VApp,VAppBar,VAppBarNavIcon,VBadge,VBtn,VCard,VCardActions,VContainer,VContent,VDivider,VExpandTransition,VFadeTransition,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VMenu,VNavigationDrawer,VSpacer,VTextField,VToolbarTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimpleLayout.vue?vue&type=template&id=0f66a338&scoped=true&\"\nimport script from \"./SimpleLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleLayout.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f66a338\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n \n \n\n\n","import mod from \"-!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=62f0e333&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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';\ninstallComponents(component, {VApp})\n","import '@mdi/font/css/materialdesignicons.css';\nimport Vue from 'vue';\nimport Vuetify, {VSnackbar, VBtn, VIcon} from 'vuetify/lib'\n\nimport VuetifyToast from 'vuetify-toast-snackbar';\n\nVue.use(Vuetify, {\n components: {\n VSnackbar,\n VBtn,\n VIcon\n }\n});\n\nVue.use(VuetifyToast, {\n x: 'center', // default\n y: 'bottom', // default\n color: 'black', // default\n icon: 'info',\n iconColor: '', // default\n classes: [\n 'body-2'\n ],\n timeout: 3000, // default\n dismissable: true, // default\n multiLine: false, // default\n vertical: false, // default\n queueable: false, // default\n showClose: true, // default\n closeText: '', // default\n closeColor: '', // default\n shorts: {\n custom: {\n color: 'purple'\n }\n },\n property: '$toast' // default\n});\n\nexport default new Vuetify({\n icons: {\n iconfont: 'md',\n },\n theme: {\n themes: {\n light: {\n primary: '#6200EE',\n secondary: '#03DAC6',\n },\n dark: {\n secondary: '#BB86FC',\n primary: '#03DAC6',\n },\n },\n },\n});\n","import Vue from \"vue\"\nimport Vuex from \"vuex\"\nimport axios from \"axios\"\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n username: localStorage.getItem(\"username\") || \"\",\n email: localStorage.getItem(\"email\") || \"\",\n id: localStorage.getItem(\"id\") || \"\",\n access: localStorage.getItem(\"access\") || \"\",\n refresh: localStorage.getItem(\"refresh\") || \"\",\n ws_status: false,\n theme: localStorage.getItem(\"theme\") || false,\n },\n mutations: {\n auth_success(state, data) {\n Object.keys(data).forEach(key => {\n state[key] = data[key]\n })\n },\n logout(state) {\n state.access = \"\"\n },\n updateWs(state) {\n state.ws_status = true\n },\n toggleTheme(state) {\n state.theme = !state.theme\n localStorage.setItem('theme', JSON.stringify(state.theme))\n },\n },\n getters: {\n isLoggedIn: state => !!state.access,\n theme: state => state.theme,\n user_id: state => state.id,\n },\n actions: {\n updateWs({ commit }) {\n commit(\"updateWs\")\n },\n toggleTheme({ commit }) {\n commit(\"toggleTheme\")\n },\n login({ commit }, user_data) {\n return new Promise((resolve, reject) => {\n axios({ url: \"/api/token/\", data: user_data, method: \"POST\" })\n .then(resp => {\n Object.keys(resp.data).forEach(key => {\n localStorage.setItem(key, resp.data[key])\n })\n axios.defaults.headers.common.Authorization = `Bearer ${resp.data.access}`\n commit(\"auth_success\", resp.data)\n resolve(resp)\n })\n .catch(err => {\n localStorage.clear()\n reject(err)\n })\n })\n },\n logout({ commit }) {\n return new Promise((resolve) => {\n commit(\"logout\")\n localStorage.clear()\n delete axios.defaults.headers.common[\"Authorization\"]\n resolve()\n })\n },\n\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"7\"}},[_c('ConformityChart')],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('KeysStatusCard')],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('AlcaliStatusCard')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\"}},[_c('JobsChartCard')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\"}},[_c('JobsTable',{attrs:{\"filter\":{limit: 10}}})],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Keys\")]),_c('v-simple-table',[_c('tbody',_vm._l((_vm.keys_status),function(count,status){return _c('tr',{key:status},[_c('td',{staticClass:\"pr-0\"},[_c('v-icon',[_vm._v(_vm._s(_vm.statusIcon(status)))])],1),_c('td',{staticClass:\"pl-0\"},[_vm._v(_vm._s(status))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(count)+\" / \"+_vm._s(_vm.keys_total))])])}),0)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Keys \n \n \n \n \n {{statusIcon(status)}} \n \n {{ status }} \n {{ count }} / {{keys_total}} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysStatusCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysStatusCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeysStatusCard.vue?vue&type=template&id=b6756222&scoped=true&\"\nimport script from \"./KeysStatusCard.vue?vue&type=script&lang=js&\"\nexport * from \"./KeysStatusCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b6756222\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',{attrs:{\"elevation\":_vm.minion == null ? 2 : 0}},[_c('v-list-item',{attrs:{\"three-line\":\"\",\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline mb-1\"},[_vm._v(\"Jobs Stats\")])],1),_c('v-spacer'),_c('v-list-item-content',{staticClass:\"mr-6\"},[_c('v-select',{attrs:{\"items\":_vm.filters,\"label\":\"Filter\",\"return-object\":\"\"},on:{\"change\":_vm.loadData},model:{value:(_vm.selectedFilter),callback:function ($$v) {_vm.selectedFilter=$$v},expression:\"selectedFilter\"}})],1),_c('v-list-item-content',[_c('v-select',{attrs:{\"items\":_vm.periods,\"label\":\"Period\",\"return-object\":\"\"},on:{\"change\":_vm.loadData},model:{value:(_vm.selectedPeriod),callback:function ($$v) {_vm.selectedPeriod=$$v},expression:\"selectedPeriod\"}})],1)],1),_c('canvas',{ref:\"chart\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","let gradientLinePlugin = {\n // Called at start of update.\n afterLayout: function (chartInstance) {\n if (chartInstance.options.linearGradientLine) {\n // The context, needed for the creation of the linear gradient.\n let ctx = chartInstance.chart.ctx;\n chartInstance.data.datasets.forEach((dataset) => {\n // Calculate min and max values of the dataset.\n let minValue = Number.MAX_VALUE;\n let maxValue = Number.MIN_VALUE;\n for (let i = 0; i < dataset.data.length; ++i) {\n if (minValue > dataset.data[i])\n minValue = dataset.data[i];\n if (maxValue < dataset.data[i])\n maxValue = dataset.data[i];\n }\n let yAxis = chartInstance.scales['y-axis-0'];\n let minValueYPixel = yAxis.getPixelForValue(minValue);\n let maxValueYPixel = yAxis.getPixelForValue(maxValue);\n // Create the gradient.\n let gradient = ctx.createLinearGradient(0, minValueYPixel, 0, maxValueYPixel);\n // A kind of red for min.\n gradient.addColorStop(0, dataset.colorStart);\n // A kind of blue for max.\n gradient.addColorStop(1, dataset.colorEnd);\n // Assign the gradient to the dataset's border color.\n dataset.borderColor = gradient;\n })\n } else if (chartInstance.options.radialGradientDonut) {\n // The context, needed for the creation of the linear gradient.\n let ctx = chartInstance.chart.ctx;\n\n chartInstance.data.datasets.forEach((dataset) => {\n let centerX = ((chartInstance.chartArea.left + chartInstance.chartArea.right) / 2);\n let centerY = ((chartInstance.chartArea.top + chartInstance.chartArea.bottom) / 2);\n\n // Create the gradient.\n let gradient = ctx.createRadialGradient(centerX, centerY, (chartInstance.innerRadius * 2) * (20 / 100), centerX, centerY, (chartInstance.innerRadius * 2));\n // A kind of red for min.\n gradient.addColorStop(0, dataset.colorStart);\n // A kind of blue for max.\n gradient.addColorStop(1, dataset.colorEnd);\n // Assign the gradient to the dataset's border color.\n dataset.backgroundColor = gradient;\n })\n\n }\n }\n};\n\nexport default gradientLinePlugin;\n","\n \n \n \n \n Jobs Stats \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsChartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsChartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobsChartCard.vue?vue&type=template&id=e0df043e&scoped=true&\"\nimport script from \"./JobsChartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./JobsChartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e0df043e\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VContainer,VListItem,VListItemContent,VListItemTitle,VSelect,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Status\")]),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"Salt WebSocket\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.wsStatus ? 'green': 'red',\"text-color\":\"white\"}},[_vm._v(\"\\n \"+_vm._s(_vm.wsStatus ? \"OK\": \"NOT OK\")+\"\\n \")])],1)]),_vm._l((_vm.stats),function(count,status){return _c('tr',{key:status},[_c('td',[_vm._v(_vm._s(status))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(count))])])})],2)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Status \n \n \n \n Salt WebSocket \n \n \n {{ wsStatus ? \"OK\": \"NOT OK\" }}\n \n \n \n \n {{ status }} \n {{ count }} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlcaliStatusCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlcaliStatusCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AlcaliStatusCard.vue?vue&type=template&id=1eb41eb0&scoped=true&\"\nimport script from \"./AlcaliStatusCard.vue?vue&type=script&lang=js&\"\nexport * from \"./AlcaliStatusCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1eb41eb0\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Conformity\")]),_c('v-card-text',[_c('v-container',[_vm._l((_vm.conformitynames),function(name){return [_c('v-row',{key:name,attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"sm\":\"2\"}},[_vm._v(_vm._s(name))]),_c('v-col',{attrs:{\"sm\":\"10\"}},[_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"max-width\":\"250px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('canvas',_vm._g({ref:name,refInFor:true,attrs:{\"height\":\"15\"}},on))]}}],null,true)},[_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(name))])])]),_c('tbody',{domProps:{\"innerHTML\":_vm._s(_vm.customTool)}})])],1)],1)],1)]})],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Conformity \n \n \n \n \n {{name}} \n \n \n \n \n \n \n \n \n {{name}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityChart.vue?vue&type=template&id=bcf3f6c0&scoped=true&\"\nimport script from \"./ConformityChart.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityChart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcf3f6c0\",\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 { VCard } 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 { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VContainer,VMenu,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[(_vm.filter == null)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{staticClass:\"mb-8\"},[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-card-title',[_vm._v(\"Search Jobs\")])],1),_c('v-divider'),_c('v-col',{attrs:{\"lg\":\"2\",\"align-self\":\"center\"}},[_c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.selectedDate,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.selectedDate=$event},\"update:return-value\":function($event){_vm.selectedDate=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Select date(s)\",\"readonly\":\"\"},model:{value:(_vm.dateRangeText),callback:function ($$v) {_vm.dateRangeText=$$v},expression:\"dateRangeText\"}},on))]}}],null,false,4129137489),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-date-picker',{attrs:{\"max\":new Date().toISOString().split('T')[0],\"reactive\":\"\",\"no-title\":\"\",\"range\":\"\"},model:{value:(_vm.selectedDate),callback:function ($$v) {_vm.selectedDate=$$v},expression:\"selectedDate\"}},[_c('div',{staticClass:\"flex-grow-1\"}),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.menu = false}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.menu.save(_vm.selectedDate)}}},[_vm._v(\"OK\")])],1)],1)],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.users,\"label\":\"User(s)\",\"multiple\":\"\",\"single-line\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === 0)?_c('span',[_vm._v(_vm._s(item))]):_vm._e(),(index === 1)?_c('span',{staticClass:\"grey--text caption\"},[_vm._v(\" (+\"+_vm._s(_vm.selectedUsers.length - 1)+\" others)\")]):_vm._e()]}}],null,false,2591977476),model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}})],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.minions,\"label\":\"Target(s)\",\"multiple\":\"\",\"single-line\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === 0)?_c('span',[_vm._v(_vm._s(item))]):_vm._e(),(index === 1)?_c('span',{staticClass:\"grey--text caption\"},[_vm._v(\" (+\"+_vm._s(_vm.selectedTarget.length - 1)+\" others)\")]):_vm._e()]}}],null,false,3190666039),model:{value:(_vm.selectedTarget),callback:function ($$v) {_vm.selectedTarget=$$v},expression:\"selectedTarget\"}})],1),_c('v-col',{attrs:{\"lg\":\"1\"}},[_c('v-select',{attrs:{\"items\":_vm.limit,\"label\":\"Limit\",\"single-line\":\"\"},model:{value:(_vm.selectedLimit),callback:function ($$v) {_vm.selectedLimit=$$v},expression:\"selectedLimit\"}})],1),_c('v-col',{attrs:{\"lg\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"text-center\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.filterJobs}},[_vm._v(\"Search\\n \")])],1)])],1)],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{attrs:{\"elevation\":_vm.filter == null ? 2 : 0}},[_c('v-card-title',[_vm._v(\"\\n Jobs\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"jid\",\"sort-desc\":\"\",\"item-key\":\"uniqueid\",\"headers\":_vm.filteredHeaders,\"items\":_vm.indexedItems,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.jid\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(_vm._s(item.jid))])]}},{key:\"item.id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.filter),expression:\"!filter\"}],staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.id}},[_vm._v(_vm._s(item.id))])]}},{key:\"item.arguments\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments)+\"\\n \")]}},{key:\"item.keyword_arguments\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.keyword_arguments.length > 20 ? item.keyword_arguments.slice(0, 20)+\"...\": item.keyword_arguments)+\"\\n \")]}},{key:\"item.success\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(item.success)))])]}},{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(\"\\n detail\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue-grey\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run?tgt='+item.id+'&fun='+item.fun+'&arg='+item.arguments+'&kwarg='+item.keyword_arguments}},[_vm._v(\"\\n rerun\\n \")])],1)]}}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n Search Jobs \n \n \n \n \n \n \n \n \n
\n Cancel \n OK \n \n \n \n \n \n \n {{ item }} \n (+{{ selectedUsers.length - 1 }} others) \n \n \n \n \n \n \n {{ item }} \n (+{{ selectedTarget.length - 1 }} others) \n \n \n \n \n \n \n \n \n \n Search\n \n
\n \n \n \n \n \n \n \n \n \n Jobs\n \n \n \n \n \n {{ item.jid }} \n \n \n {{ item.id }} \n \n \n {{ item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments }}\n \n \n {{ item.keyword_arguments.length > 20 ? item.keyword_arguments.slice(0, 20)+\"...\": item.keyword_arguments }}\n \n \n {{ boolText(item.success) }} \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n \n detail\n \n \n rerun\n \n
\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobsTable.vue?vue&type=template&id=63e073c0&scoped=true&\"\nimport script from \"./JobsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./JobsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63e073c0\",\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 { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardTitle,VChip,VCol,VContainer,VDataTable,VDatePicker,VDivider,VMenu,VRow,VSelect,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=730766ce&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n 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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"inspire\"}},[_c('v-content',[_c('v-container',{staticClass:\"fill-height\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\",\"md\":\"4\"}},[_c('h1',{staticClass:\"text-center font-weight-bold display-4 mb-8\"},[_vm._v(\"ALCALI\")]),_c('v-card',{staticClass:\"elevation-12\"},[_c('v-toolbar',{attrs:{\"color\":\"black\",\"dark\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Login\")]),_c('v-spacer')],1),_c('v-card-text',[_c('v-form',[_c('v-text-field',{attrs:{\"label\":\"Login\",\"name\":\"login\",\"prepend-icon\":\"person\",\"type\":\"text\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":\"Password\",\"name\":\"password\",\"prepend-icon\":\"lock\",\"type\":\"password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){$event.preventDefault();return _vm.authenticate($event)}}},[_vm._v(\"Login\")])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n ALCALI \n \n \n Login \n \n \n \n \n \n\n \n \n \n \n \n Login \n \n \n \n \n \n \n \n \n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=e48ee6a0&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e48ee6a0\",\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 { 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 { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VContent,VForm,VRow,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"cols\":\"12\"}},[_c('JobsTable')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jobs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jobs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Jobs.vue?vue&type=template&id=4867fa69&scoped=true&\"\nimport script from \"./Jobs.vue?vue&type=script&lang=js&\"\nexport * from \"./Jobs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4867fa69\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('KeysTable',{key:_vm.refreshKey})],1)],1),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Keys\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.keys,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.status === 'accepted')?[_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]:[_vm._v(\"\\n \"+_vm._s(item.minion_id)+\"\\n \")]]}},{key:\"item.status\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.keysRepr(item.status),\"dark\":\"\"}},[_vm._v(_vm._s(item.status.toString()))])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._l((_vm.keyAction(item.status)),function(action){return [_c('v-btn',{key:action,staticClass:\"ma-2\",attrs:{\"small\":\"\",\"dark\":\"\",\"color\":_vm.keysRepr(action)},on:{\"click\":function($event){return _vm.manageKey(action, item.minion_id)}}},[_vm._v(\"\\n \"+_vm._s(action)+\"\\n \")])]})]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Keys\n \n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{item.minion_id}}\n \n \n \n {{ item.status.toString() }} \n \n \n \n \n {{ action }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeysTable.vue?vue&type=template&id=50efcc63&scoped=true&\"\nimport script from \"./KeysTable.vue?vue&type=script&lang=js&\"\nexport * from \"./KeysTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50efcc63\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-speed-dial',{attrs:{\"fixed\":\"\",\"bottom\":\"\",\"right\":\"\",\"direction\":\"top\",\"transition\":\"slide-y-reverse-transition\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"primary\",\"fab\":\"\"},model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:\"fab\"}},[(_vm.fab)?_c('v-icon',[_vm._v(\"close\")]):_c('v-icon',[_vm._v(\"menu\")])],1)]},proxy:true}]),model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:\"fab\"}},[_vm._l((_vm.fabs),function(f){return [_c('v-tooltip',{key:f.tooltip,attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"color\":f.color},on:{\"click\":function($event){return _vm.emit('fab_action', f.action)}}},on),[_c('v-icon',[_vm._v(_vm._s(f.icon))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(f.tooltip))])])]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n close \n menu \n \n \n \n \n \n \n {{f.icon}} \n \n \n {{f.tooltip}} \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Fab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Fab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Fab.vue?vue&type=template&id=56c34fbd&scoped=true&\"\nimport script from \"./Fab.vue?vue&type=script&lang=js&\"\nexport * from \"./Fab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56c34fbd\",\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 { VSpeedDial } from 'vuetify/lib/components/VSpeedDial';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VSpeedDial,VTooltip})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keys.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keys.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Keys.vue?vue&type=template&id=47322cce&scoped=true&\"\nimport script from \"./Keys.vue?vue&type=script&lang=js&\"\nexport * from \"./Keys.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47322cce\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"cols\":\"12\"}},[_c('MinionsTable',{key:_vm.refreshKey}),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Minions\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.minions,\"search\":_vm.search,\"loading\":_vm.loading,\"loading-text\":\"Loading... Please wait\"},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity.toString())+\"\\n \")])]}},{key:\"item.last_job\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.refreshMinion(item.minion_id)}}},[_vm._v(\"\\n refresh\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue-grey\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run?tgt='+item.minion_id}},[_vm._v(\"\\n run job\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showDialog(item.minion_id)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline red\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Delete \"+_vm._s(_vm.target)+\" ?\\n \")]),_c('v-card-text',[_c('br'),_vm._v(\"\\n If you delete \"+_vm._s(_vm.target)+\" from the database, you will need to refresh all minions.\\n \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"\\n close\\n \")]),_c('v-btn',{attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteMinion(_vm.target)}}},[_vm._v(\"\\n delete\\n \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Minions\n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{ item.conformity == null ? \"unknown\": item.conformity.toString() }}\n \n \n \n {{item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\")}}\n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n \n \n refresh\n \n \n run job\n \n \n delete\n \n
\n \n \n \n \n \n \n \n Delete {{ target }} ?\n \n\n \n \n If you delete {{ target }} from the database, you will need to refresh all minions.\n \n\n \n\n \n \n \n close\n \n \n delete\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionsTable.vue?vue&type=template&id=6727802c&scoped=true&\"\nimport script from \"./MinionsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6727802c\",\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 { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VContainer,VDataTable,VDialog,VDivider,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Minions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Minions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Minions.vue?vue&type=template&id=a997aed2&scoped=true&\"\nimport script from \"./Minions.vue?vue&type=script&lang=js&\"\nexport * from \"./Minions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a997aed2\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[(_vm.minion !== null)?_c('InfosCard',{attrs:{\"minion\":_vm.minion}}):_vm._e(),(_vm.minion !== null)?_c('NetworkCard',{attrs:{\"minion\":_vm.minion}}):_vm._e()],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"9\"}},[(_vm.minion !== null)?_c('MinionDetailCard',{attrs:{\"minion\":_vm.minion}}):_vm._e()],1),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Infos\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#common\"}},[_vm._v(\"\\n Common\\n \")]),_c('v-tab',{attrs:{\"href\":\"#salt\"}},[_vm._v(\"\\n Salt\\n \")]),_c('v-tab',{attrs:{\"href\":\"#hardware\"}},[_vm._v(\"\\n Hardware\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"common\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.common),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),(item.grain === 'last_job' || item.grain === 'last_highstate' && _vm.minion[item.grain] !== null)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(new Date(_vm.minion[item.grain]).toLocaleString(\"en-GB\"))+\"\\n \")]):(item.grain === 'conformity')?_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.minion[item.grain]),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.minion[item.grain] == null ? \"unknown\": _vm.minion[item.grain]))])],1):_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"salt\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.salt),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"hardware\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.hardware),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Infos \n \n \n\n \n Common\n \n\n \n Salt\n \n\n \n Hardware\n \n \n \n \n \n \n \n {{ item.name }} \n {{ new Date(minion[item.grain]).toLocaleString(\"en-GB\")}}\n \n {{ minion[item.grain] == null ? \"unknown\": minion[item.grain] }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n {{ item.name }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n {{ item.name }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfosCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfosCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InfosCard.vue?vue&type=template&id=88be39d6&scoped=true&\"\nimport script from \"./InfosCard.vue?vue&type=script&lang=js&\"\nexport * from \"./InfosCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"88be39d6\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Network\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#interface\"}},[_vm._v(\"\\n Interfaces\\n \")]),_c('v-tab',{attrs:{\"href\":\"#mac\"}},[_vm._v(\"\\n Mac\\n \")]),_c('v-tab',{attrs:{\"href\":\"#dns\"}},[_vm._v(\"\\n Dns\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"interface\"}},[_c('v-simple-table',[_c('tbody',[_vm._l((_vm.minion.ip_interfaces),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_vm._l((val),function(iface){return _c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(iface))])})],2)}),_c('tr',[_c('td',[_vm._v(\"IPv4 GATEWAY\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion.ip4_gw))])]),_c('tr',[_c('td',[_vm._v(\"IPv6 GATEWAY\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion.ip6_gw))])])],2)])],1),_c('v-tab-item',{attrs:{\"id\":\"mac\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.minion.hwaddr_interfaces),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(val))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"dns\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.minion.dns),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(val.length >= 1 ? val: \"\"))])])}),0)])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Network \n \n \n\n \n Interfaces\n \n\n \n Mac\n \n\n \n Dns\n \n \n \n \n \n \n \n {{key}} \n {{ iface }} \n \n \n IPv4 GATEWAY \n {{ minion.ip4_gw }} \n \n \n IPv6 GATEWAY \n {{ minion.ip6_gw }} \n \n \n \n \n \n \n \n \n {{key}} \n {{ val }} \n \n \n \n \n \n \n \n \n {{key}} \n {{ val.length >= 1 ? val: \"\" }} \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NetworkCard.vue?vue&type=template&id=4e9c41e8&scoped=true&\"\nimport script from \"./NetworkCard.vue?vue&type=script&lang=js&\"\nexport * from \"./NetworkCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e9c41e8\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VSimpleTable,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#grain\"}},[_vm._v(\"\\n Grains\\n \")]),_c('v-tab',{attrs:{\"href\":\"#pillar\"}},[_vm._v(\"\\n Pillar\\n \")]),_c('v-tab',{attrs:{\"href\":\"#history\"}},[_vm._v(\"\\n History\\n \")]),_c('v-tab',{attrs:{\"href\":\"#graph\"}},[_vm._v(\"\\n Graph\\n \")]),_vm._l((_vm.minion.custom_fields),function(field){return _c('v-tab',{key:field.name},[_vm._v(\"\\n \"+_vm._s(field.name)+\"\\n \")])})],2),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"grain\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"overlayedBtn\",on:{\"click\":function($event){return _vm.fold('grainCm')}}},[_vm._v(_vm._s(_vm.grainCmFolded ? \"unfold\" : \"fold\"))])],1),_c('codemirror',{ref:\"grainCm\",attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}})],1),_c('v-tab-item',{attrs:{\"id\":\"pillar\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"overlayedBtn\",on:{\"click\":function($event){return _vm.fold('pillarCm')}}},[_vm._v(_vm._s(_vm.pillarCmFolded ? \"unfold\" : \"fold\"))])],1),_c('codemirror',{ref:\"pillarCm\",attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.codepillar),callback:function ($$v) {_vm.codepillar=$$v},expression:\"codepillar\"}})],1),_c('v-tab-item',{attrs:{\"id\":\"history\"}},[_c('JobsTable',{attrs:{\"filter\":{'target[]': _vm.minion.minion_id}}})],1),_c('v-tab-item',{attrs:{\"id\":\"graph\",\"eager\":\"\"}},[(_vm.minion)?_c('JobsChartCard',{attrs:{\"minion\":_vm.minion.minion_id}}):_vm._e()],1),_vm._l((_vm.minion.custom_fields),function(field){return _c('v-tab-item',{key:field.name},[_c('codemirror',{attrs:{\"options\":_vm.cmOptions,\"value\":_vm.yamlRepr(field.value)}})],1)})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n\n \n Grains\n \n\n \n Pillar\n \n \n History\n \n \n Graph\n \n \n {{field.name}}\n \n \n \n \n \n {{ grainCmFolded ? \"unfold\" : \"fold\" }} \n
\n \n \n \n \n {{ pillarCmFolded ? \"unfold\" : \"fold\" }} \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionDetailCard.vue?vue&type=template&id=107b300f&scoped=true&\"\nimport script from \"./MinionDetailCard.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionDetailCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"107b300f\",\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 { VContainer } from 'vuetify/lib/components/VGrid';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VBtn,VCard,VContainer,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionDetail.vue?vue&type=template&id=28b94c04&scoped=true&\"\nimport script from \"./MinionDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28b94c04\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('v-container',[_c('v-card',[_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.job.fun))]),_c('v-list-item-subtitle',[_vm._v(\"Run on \"+_vm._s(_vm.formatDate(_vm.job.alter_time)))])],1)],1),_c('v-divider'),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"FUNCTION:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.fun))])]),_c('tr',[_c('td',[_vm._v(\"JID:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.jid))])]),(_vm.job.arguments)?_c('tr',[_c('td',[_vm._v(\"ARGUMENTS:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.arguments))])]):_vm._e(),(_vm.job.keyword_arguments)?_c('tr',[_c('td',[_vm._v(\"KEYWORD ARGUMENTS:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.keyword_arguments))])]):_vm._e(),_c('tr',[_c('td',[_vm._v(\"MINION ID:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.id))])]),_c('tr',[_c('td',[_vm._v(\"STATUS:\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.job.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(_vm.job.success)))])],1)]),_c('tr',[_c('td',[_vm._v(\"START TIME:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(new Date(_vm.job.alter_time).toLocaleString(\"en-GB\")))])])])])],1)],1)],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"8\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Results\")]),_c('v-divider'),_c('div',{staticClass:\"ansiStyle\",domProps:{\"innerHTML\":_vm._s(_vm.ansiResult)}})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n {{ job.fun }} \n Run on {{ formatDate(job.alter_time) }} \n \n \n \n \n \n \n FUNCTION: \n {{ job.fun }} \n \n \n JID: \n {{ job.jid }} \n \n \n ARGUMENTS: \n {{ job.arguments }} \n \n \n KEYWORD ARGUMENTS: \n {{ job.keyword_arguments }} \n \n \n MINION ID: \n {{ job.id }} \n \n \n STATUS: \n \n {{ boolText(job.success) }} \n\n \n \n \n START TIME: \n {{ new Date(job.alter_time).toLocaleString(\"en-GB\") }} \n \n \n \n \n \n \n \n \n \n Results \n \n
\n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobDetail.vue?vue&type=template&id=664654b1&scoped=true&\"\nimport script from \"./JobDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./JobDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./JobDetail.vue?vue&type=style&index=0&id=664654b1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"664654b1\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VCol,VContainer,VDivider,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('EventsTable')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Events\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"alter_time\",\"sort-desc\":\"\",\"headers\":_vm.headers,\"items\":_vm.events,\"search\":_vm.search,\"show-expand\":\"\",\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"expanded-item\",fn:function(ref){\nvar headers = ref.headers;\nvar item = ref.item;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},[_c('pre',[_vm._v(_vm._s(JSON.stringify(JSON.parse(item.data), null, 2)))])])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Events\n \n \n \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n {{JSON.stringify(JSON.parse(item.data), null, 2)}} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventsTable.vue?vue&type=template&id=e7265fc6&scoped=true&\"\nimport script from \"./EventsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./EventsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7265fc6\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Events.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Events.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Events.vue?vue&type=template&id=7408d9dd&scoped=true&\"\nimport script from \"./Events.vue?vue&type=script&lang=js&\"\nexport * from \"./Events.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7408d9dd\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('RunCard')],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-container',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{staticClass:\"mb-8\"},[_c('v-card-title',[_vm._v(\"Run\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#formatted\"}},[_vm._v(\"\\n Formatted\\n \")]),_c('v-tab',{attrs:{\"href\":\"#cli\"}},[_vm._v(\"\\n Cli\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"formatted\",\"eager\":\"\"}},[_c('v-card',[_c('v-spacer'),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-right\",attrs:{\"sm\":\"3\",\"lg\":\"1\",\"align-self\":\"center\"}},[_c('span',[_vm._v(\"Client Type:\")])]),_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\"}},[_c('v-select',{attrs:{\"items\":_vm.client},model:{value:(_vm.selected_client),callback:function ($$v) {_vm.selected_client=$$v},expression:\"selected_client\"}})],1),(!_vm.client_batch && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":\"1\"}},[_c('v-checkbox',{attrs:{\"label\":\"Async\",\"color\":\"primary\"},model:{value:(_vm.client_async),callback:function ($$v) {_vm.client_async=$$v},expression:\"client_async\"}})],1):_vm._e(),(_vm.selected_client === 'local' && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":_vm.client_batch ? 3: 1}},[_c('v-checkbox',{attrs:{\"label\":\"Batch\",\"color\":\"primary\"},model:{value:(_vm.client_batch),callback:function ($$v) {_vm.client_batch=$$v},expression:\"client_batch\"}})],1):_vm._e(),(_vm.selected_client === 'local' && _vm.client_batch && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\"}},[_c('v-text-field',{attrs:{\"label\":\"Batch\"},model:{value:(_vm.batch),callback:function ($$v) {_vm.batch=$$v},expression:\"batch\"}})],1):_vm._e(),(_vm.selected_client === 'local' && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":_vm.client_batch ? 0: 1}},[_c('v-text-field',{attrs:{\"label\":\"Timeout\",\"type\":\"number\"},model:{value:(_vm.timeout),callback:function ($$v) {_vm.timeout=$$v},expression:\"timeout\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"1\"}},[(_vm.selected_client === 'local')?_c('v-select',{attrs:{\"items\":_vm.target_type,\"label\":\"Target Type\"},on:{\"change\":function($event){_vm.target = null}},model:{value:(_vm.selected_target_type),callback:function ($$v) {_vm.selected_target_type=$$v},expression:\"selected_target_type\"}}):_vm._e()],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[(_vm.selected_client === 'local')?_c('v-text-field',{attrs:{\"label\":\"Target\"},model:{value:(_vm.target),callback:function ($$v) {_vm.target=$$v},expression:\"target\"}}):_vm._e()],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-combobox',{attrs:{\"item-value\":\"name\",\"item-text\":\"name\",\"items\":_vm.filteredFunction,\"label\":\"Function\",\"return-object\":\"\"},scopedSlots:_vm._u([(_vm.selectedFunction)?{key:\"append-outer\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"color\":\"black\"}},on),[_vm._v(\"info\\n \")])]}}],null,false,1349456046)},[_c('div',{staticClass:\"desc\"},[_c('pre',[_vm._v(_vm._s(_vm.selectedFunction.description))])])])]},proxy:true}:null],null,true),model:{value:(_vm.selectedFunction),callback:function ($$v) {_vm.selectedFunction=$$v},expression:\"selectedFunction\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Arguments\"},model:{value:(_vm.arg),callback:function ($$v) {_vm.arg=$$v},expression:\"arg\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Keyword Arguments\"},model:{value:(_vm.kwarg),callback:function ($$v) {_vm.kwarg=$$v},expression:\"kwarg\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-switch',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selected_client === 'local'),expression:\"selected_client === 'local'\"}],attrs:{\"label\":\"Schedule\",\"color\":\"primary\"},model:{value:(_vm.scheduleSwitch),callback:function ($$v) {_vm.scheduleSwitch=$$v},expression:\"scheduleSwitch\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.scheduleSwitch),expression:\"scheduleSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('v-text-field',{staticStyle:{\"width\":\"350px\"},attrs:{\"label\":\"Schedule Name\"},model:{value:(_vm.scheduleName),callback:function ($$v) {_vm.scheduleName=$$v},expression:\"scheduleName\"}}),_c('v-radio-group',{staticClass:\"mt-0\",model:{value:(_vm.scheduleType),callback:function ($$v) {_vm.scheduleType=$$v},expression:\"scheduleType\"}},[_c('v-radio',{attrs:{\"value\":\"once\",\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_c('strong',[_vm._v(\"Once: \")])]),_c('v-row',[_c('v-col',{staticClass:\"ml-2\",attrs:{\"sm\":\"4\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\"},model:{value:(_vm.scheduleDate),callback:function ($$v) {_vm.scheduleDate=$$v},expression:\"scheduleDate\"}},on))]}}]),model:{value:(_vm.dateMenu),callback:function ($$v) {_vm.dateMenu=$$v},expression:\"dateMenu\"}},[_c('v-date-picker',{attrs:{\"min\":_vm.scheduleDate},on:{\"input\":function($event){_vm.dateMenu = false}},model:{value:(_vm.scheduleDate),callback:function ($$v) {_vm.scheduleDate=$$v},expression:\"scheduleDate\"}})],1)],1),_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\"},model:{value:(_vm.scheduleTime),callback:function ($$v) {_vm.scheduleTime=$$v},expression:\"scheduleTime\"}},on))]}}]),model:{value:(_vm.timeMenu),callback:function ($$v) {_vm.timeMenu=$$v},expression:\"timeMenu\"}},[(_vm.timeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\"},model:{value:(_vm.scheduleTime),callback:function ($$v) {_vm.scheduleTime=$$v},expression:\"scheduleTime\"}}):_vm._e()],1)],1)],1)]},proxy:true}])}),_c('v-radio',{attrs:{\"value\":\"recurring\",\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',[_c('strong',[_vm._v(\"Recurring: \")]),_vm._v(\" Every \"),_c('span',{attrs:{\"id\":\"cron\"}})])]},proxy:true}])})],1)],1)],1)],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-switch',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selected_client === 'local'),expression:\"selected_client === 'local'\"}],attrs:{\"label\":\"Pillar\",\"color\":\"primary\"},model:{value:(_vm.pillarSwitch),callback:function ($$v) {_vm.pillarSwitch=$$v},expression:\"pillarSwitch\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pillarSwitch),expression:\"pillarSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('codemirror',{attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pillarSwitch),expression:\"pillarSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.pillarRendered)}})])],1)],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-switch',{attrs:{\"label\":\"Save as template\",\"color\":\"primary\"},model:{value:(_vm.saveJobSwitch),callback:function ($$v) {_vm.saveJobSwitch=$$v},expression:\"saveJobSwitch\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveJobSwitch),expression:\"saveJobSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('v-text-field',{staticStyle:{\"width\":\"350px\"},attrs:{\"label\":\"Job Template Name\"},model:{value:(_vm.jobTemplateName),callback:function ($$v) {_vm.jobTemplateName=$$v},expression:\"jobTemplateName\"}})],1)],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.saveJobSwitch),expression:\"!saveJobSwitch\"}],attrs:{\"color\":\"orange\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.runJob(_vm.test=true)}}},[_vm._v(\"Test\")]),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.saveJobSwitch),expression:\"!saveJobSwitch\"}],attrs:{\"color\":\"info\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":_vm.runJob}},[_vm._v(\"Run\")]),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveJobSwitch),expression:\"saveJobSwitch\"}],attrs:{\"color\":\"green\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":_vm.saveJob}},[_vm._v(\"Save\")])],1)],1)],1),_c('v-tab-item',{attrs:{\"id\":\"cli\"}},[(_vm.functions !== null)?_c('TerminalCard',{attrs:{\"minions\":_vm.minions,\"functions\":_vm.functions}}):_vm._e()],1)],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[(_vm.results)?_c('v-card',[_c('v-card-title',[_vm._v(\"Results\")]),_c('v-card-text',{staticClass:\"ansiStyle\",domProps:{\"innerHTML\":_vm._s(_vm.results)}})],1):_vm._e()],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-row',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.onResize),expression:\"onResize\"}]},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('div',{staticClass:\"console\",attrs:{\"id\":\"terminal\"}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * The history controller provides an ring-buffer\n */\nexport class HistoryController {\n constructor(size) {\n this.size = size;\n this.entries = [];\n this.cursor = 0;\n }\n\n /**\n * Push an entry and maintain ring buffer size\n */\n push(entry) {\n // Skip empty entries\n if (entry.trim() === \"\") return;\n // Skip duplicate entries\n const lastEntry = this.entries[this.entries.length - 1];\n if (entry == lastEntry) return;\n // Keep track of entries\n this.entries.push(entry);\n if (this.entries.length > this.size) {\n this.entries.pop(0);\n }\n this.cursor = this.entries.length;\n }\n\n /**\n * Rewind history cursor on the last entry\n */\n rewind() {\n this.cursor = this.entries.length;\n }\n\n /**\n * Returns the previous entry\n */\n getPrevious() {\n const idx = Math.max(0, this.cursor - 1);\n this.cursor = idx;\n return this.entries[idx];\n }\n\n /**\n * Returns the next entry\n */\n getNext() {\n const idx = Math.min(this.entries.length, this.cursor + 1);\n this.cursor = idx;\n return this.entries[idx];\n }\n}\n","import { parse } from \"shell-quote\";\n\n/**\n * Detects all the word boundaries on the given input\n */\nexport function wordBoundaries(input, leftSide = true) {\n let match;\n const words = [];\n const rx = /\\w+/g;\n\n while ((match = rx.exec(input))) {\n if (leftSide) {\n words.push(match.index);\n } else {\n words.push(match.index + match[0].length);\n }\n }\n\n return words;\n}\n\n/**\n * The closest left (or right) word boundary of the given input at the\n * given offset.\n */\nexport function closestLeftBoundary(input, offset) {\n const found = wordBoundaries(input, true)\n .reverse()\n .find(x => x < offset);\n return found == null ? 0 : found;\n}\nexport function closestRightBoundary(input, offset) {\n const found = wordBoundaries(input, false).find(x => x > offset);\n return found == null ? input.length : found;\n}\n\n/**\n * Convert offset at the given input to col/row location\n *\n * This function is not optimized and practically emulates via brute-force\n * the navigation on the terminal, wrapping when they reach the column width.\n */\nexport function offsetToColRow(input, offset, maxCols) {\n let row = 0,\n col = 0;\n\n for (let i = 0; i < offset; ++i) {\n const chr = input.charAt(i);\n if (chr == \"\\n\") {\n col = 0;\n row += 1;\n } else {\n col += 1;\n if (col > maxCols) {\n col = 0;\n row += 1;\n }\n }\n }\n\n return { row, col };\n}\n\n/**\n * Counts the lines in the given input\n */\nexport function countLines(input, maxCols) {\n return offsetToColRow(input, input.length, maxCols).row + 1;\n}\n\n/**\n * Checks if there is an incomplete input\n *\n * An incomplete input is considered:\n * - An input that contains unterminated single quotes\n * - An input that contains unterminated double quotes\n * - An input that ends with \"\\\"\n * - An input that has an incomplete boolean shell expression (&& and ||)\n * - An incomplete pipe expression (|)\n */\nexport function isIncompleteInput(input) {\n // Empty input is not incomplete\n if (input.trim() == \"\") {\n return false;\n }\n\n // Check for dangling single-quote strings\n if ((input.match(/'/g) || []).length % 2 !== 0) {\n return true;\n }\n // Check for dangling double-quote strings\n if ((input.match(/\"/g) || []).length % 2 !== 0) {\n return true;\n }\n // Check for dangling boolean or pipe operations\n if (\n input\n .split(/(\\|\\||\\||&&)/g)\n .pop()\n .trim() == \"\"\n ) {\n return true;\n }\n // Check for tailing slash\n if (input.endsWith(\"\\\\\") && !input.endsWith(\"\\\\\\\\\")) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns true if the expression ends on a tailing whitespace\n */\nexport function hasTailingWhitespace(input) {\n return input.match(/[^\\\\][ \\t]$/m) != null;\n}\n\n/**\n * Returns the last expression in the given input\n */\nexport function getLastToken(input) {\n // Empty expressions\n if (input.trim() === \"\") return \"\";\n if (hasTailingWhitespace(input)) return \"\";\n\n // Last token\n const tokens = parse(input);\n return tokens.pop() || \"\";\n}\n\n/**\n * Returns the auto-complete candidates for the given input\n */\nexport function collectAutocompleteCandidates(callbacks, input) {\n const tokens = parse(input);\n let index = tokens.length - 1;\n let expr = tokens[index] || \"\";\n\n // Empty expressions\n if (input.trim() === \"\") {\n index = 0;\n expr = \"\";\n } else if (hasTailingWhitespace(input)) {\n // Expressions with danging space\n index += 1;\n expr = \"\";\n }\n\n // Collect all auto-complete candidates from the callbacks\n const all = callbacks.reduce((candidates, { fn, args }) => {\n try {\n return candidates.concat(fn(index, tokens, ...args));\n } catch (e) {\n console.error(\"Auto-complete error:\", e);\n return candidates;\n }\n }, []);\n\n // Filter only the ones starting with the expression\n return all.filter(txt => txt.startsWith(expr));\n}\n","import { HistoryController } from \"./HistoryController\";\nimport {\n closestLeftBoundary,\n closestRightBoundary,\n collectAutocompleteCandidates,\n countLines,\n getLastToken,\n hasTailingWhitespace,\n isIncompleteInput,\n offsetToColRow\n} from \"./Utils\";\n\n/**\n * A local terminal controller is responsible for displaying messages\n * and handling local echo for the terminal.\n *\n * Local echo supports most of bash-like input primitives. Namely:\n * - Arrow navigation on the input\n * - Alt-arrow for word-boundary navigation\n * - Alt-backspace for word-boundary deletion\n * - Multi-line input for incomplete commands\n * - Auto-complete hooks\n */\nexport default class LocalEchoController {\n constructor(term, options = {}) {\n this.term = term;\n this._handleTermData = this.handleTermData.bind(this);\n this._handleTermResize = this.handleTermResize.bind(this)\n \n this.history = new HistoryController(options.historySize || 100);\n this.maxAutocompleteEntries = options.maxAutocompleteEntries || 100;\n\n this._autocompleteHandlers = [];\n this._active = false;\n this._input = \"\";\n this._cursor = 0;\n this._activePrompt = null;\n this._activeCharPrompt = null;\n this._termSize = {\n cols: this.term.cols,\n rows: this.term.rows\n };\n \n this.attach()\n }\n\n /////////////////////////////////////////////////////////////////////////////\n // User-Facing API\n /////////////////////////////////////////////////////////////////////////////\n \n /**\n * Detach the controller from the terminal\n */\n detach() {\n this.term.off(\"data\", this._handleTermData);\n this.term.off(\"resize\", this._handleTermResize);\n }\n \n /**\n * Attach controller to the terminal, handling events\n */\n attach() {\n this.term.onData(this._handleTermData);\n this.term.onResize(this._handleTermResize);\n }\n\n /**\n * Register a handler that will be called to satisfy auto-completion\n */\n addAutocompleteHandler(fn, ...args) {\n this._autocompleteHandlers.push({\n fn,\n args\n });\n }\n\n /**\n * Remove a previously registered auto-complete handler\n */\n removeAutocompleteHandler(fn) {\n const idx = this._autocompleteHandlers.findIndex(e => e.fn === fn);\n if (idx === -1) return;\n\n this._autocompleteHandlers.splice(idx, 1);\n }\n\n /**\n * Return a promise that will resolve when the user has completed\n * typing a single line\n */\n read(prompt, continuationPrompt = \"> \") {\n return new Promise((resolve, reject) => {\n this.term.write(prompt);\n this._activePrompt = {\n prompt,\n continuationPrompt,\n resolve,\n reject\n };\n\n this._input = \"\";\n this._cursor = 0;\n this._active = true;\n });\n }\n\n /**\n * Return a promise that will be resolved when the user types a single\n * character.\n *\n * This can be active in addition to `.read()` and will be resolved in\n * priority before it.\n */\n readChar(prompt) {\n return new Promise((resolve, reject) => {\n this.term.write(prompt);\n this._activeCharPrompt = {\n prompt,\n resolve,\n reject\n };\n });\n }\n\n /**\n * Abort a pending read operation\n */\n abortRead(reason = \"aborted\") {\n if (this._activePrompt != null || this._activeCharPrompt != null) {\n this.term.write(\"\\r\\n\");\n }\n if (this._activePrompt != null) {\n this._activePrompt.reject(reason);\n this._activePrompt = null;\n }\n if (this._activeCharPrompt != null) {\n this._activeCharPrompt.reject(reason);\n this._activeCharPrompt = null;\n }\n this._active = false;\n }\n\n /**\n * Prints a message and changes line\n */\n println(message) {\n this.print(message + \"\\n\");\n }\n\n /**\n * Prints a message and properly handles new-lines\n */\n print(message) {\n const normInput = message.replace(/[\\r\\n]+/g, \"\\n\");\n this.term.write(normInput.replace(/\\n/g, \"\\r\\n\"));\n }\n\n /**\n * Prints a list of items using a wide-format\n */\n printWide(items, padding = 2) {\n if (items.length == 0) return println(\"\");\n\n // Compute item sizes and matrix row/cols\n const itemWidth =\n items.reduce((width, item) => Math.max(width, item.length), 0) + padding;\n const wideCols = Math.floor(this._termSize.cols / itemWidth);\n const wideRows = Math.ceil(items.length / wideCols);\n\n // Print matrix\n let i = 0;\n for (let row = 0; row < wideRows; ++row) {\n let rowStr = \"\";\n\n // Prepare columns\n for (let col = 0; col < wideCols; ++col) {\n if (i < items.length) {\n let item = items[i++];\n item += \" \".repeat(itemWidth - item.length);\n rowStr += item;\n }\n }\n this.println(rowStr);\n }\n }\n\n /////////////////////////////////////////////////////////////////////////////\n // Internal API\n /////////////////////////////////////////////////////////////////////////////\n\n /**\n * Apply prompts to the given input\n */\n applyPrompts(input) {\n const prompt = (this._activePrompt || {}).prompt || \"\";\n const continuationPrompt =\n (this._activePrompt || {}).continuationPrompt || \"\";\n\n return prompt + input.replace(/\\n/g, \"\\n\" + continuationPrompt);\n }\n\n /**\n * Advances the `offset` as required in order to accompany the prompt\n * additions to the input.\n */\n applyPromptOffset(input, offset) {\n const newInput = this.applyPrompts(input.substr(0, offset));\n return newInput.length;\n }\n\n /**\n * Clears the current prompt\n *\n * This function will erase all the lines that display the current prompt\n * and move the cursor in the beginning of the first line of the prompt.\n */\n clearInput() {\n const currentPrompt = this.applyPrompts(this._input);\n\n // Get the overall number of lines to clear\n const allRows = countLines(currentPrompt, this._termSize.cols);\n\n // Get the line we are currently in\n const promptCursor = this.applyPromptOffset(this._input, this._cursor);\n const { col, row } = offsetToColRow(\n currentPrompt,\n promptCursor,\n this._termSize.cols\n );\n\n // First move on the last line\n const moveRows = allRows - row - 1;\n for (var i = 0; i < moveRows; ++i) this.term.write(\"\\x1B[E\");\n\n // Clear current input line(s)\n this.term.write(\"\\r\\x1B[K\");\n for (var i = 1; i < allRows; ++i) this.term.write(\"\\x1B[F\\x1B[K\");\n }\n\n /**\n * Replace input with the new input given\n *\n * This function clears all the lines that the current input occupies and\n * then replaces them with the new input.\n */\n setInput(newInput, clearInput = true) {\n // Clear current input\n if (clearInput) this.clearInput();\n\n // Write the new input lines, including the current prompt\n const newPrompt = this.applyPrompts(newInput);\n this.print(newPrompt);\n\n // Trim cursor overflow\n if (this._cursor > newInput.length) {\n this._cursor = newInput.length;\n }\n\n // Move the cursor to the appropriate row/col\n const newCursor = this.applyPromptOffset(newInput, this._cursor);\n const newLines = countLines(newPrompt, this._termSize.cols);\n const { col, row } = offsetToColRow(\n newPrompt,\n newCursor,\n this._termSize.cols\n );\n const moveUpRows = newLines - row - 1;\n\n this.term.write(\"\\r\");\n for (var i = 0; i < moveUpRows; ++i) this.term.write(\"\\x1B[F\");\n for (var i = 0; i < col; ++i) this.term.write(\"\\x1B[C\");\n\n // Replace input\n this._input = newInput;\n }\n\n /**\n * This function completes the current input, calls the given callback\n * and then re-displays the prompt.\n */\n printAndRestartPrompt(callback) {\n const cursor = this._cursor;\n\n // Complete input\n this.setCursor(this._input.length);\n this.term.write(\"\\r\\n\");\n\n // Prepare a function that will resume prompt\n const resume = () => {\n this._cursor = cursor;\n this.setInput(this._input);\n };\n\n // Call the given callback to echo something, and if there is a promise\n // returned, wait for the resolution before resuming prompt.\n const ret = callback();\n if (ret == null) {\n resume();\n } else {\n ret.then(resume);\n }\n }\n\n /**\n * Set the new cursor position, as an offset on the input string\n *\n * This function:\n * - Calculates the previous and current\n */\n setCursor(newCursor) {\n if (newCursor < 0) newCursor = 0;\n if (newCursor > this._input.length) newCursor = this._input.length;\n\n // Apply prompt formatting to get the visual status of the display\n const inputWithPrompt = this.applyPrompts(this._input);\n const inputLines = countLines(inputWithPrompt, this._termSize.cols);\n\n // Estimate previous cursor position\n const prevPromptOffset = this.applyPromptOffset(this._input, this._cursor);\n const { col: prevCol, row: prevRow } = offsetToColRow(\n inputWithPrompt,\n prevPromptOffset,\n this._termSize.cols\n );\n\n // Estimate next cursor position\n const newPromptOffset = this.applyPromptOffset(this._input, newCursor);\n const { col: newCol, row: newRow } = offsetToColRow(\n inputWithPrompt,\n newPromptOffset,\n this._termSize.cols\n );\n\n // Adjust vertically\n if (newRow > prevRow) {\n for (let i = prevRow; i < newRow; ++i) this.term.write(\"\\x1B[B\");\n } else {\n for (let i = newRow; i < prevRow; ++i) this.term.write(\"\\x1B[A\");\n }\n\n // Adjust horizontally\n if (newCol > prevCol) {\n for (let i = prevCol; i < newCol; ++i) this.term.write(\"\\x1B[C\");\n } else {\n for (let i = newCol; i < prevCol; ++i) this.term.write(\"\\x1B[D\");\n }\n\n // Set new offset\n this._cursor = newCursor;\n }\n\n /**\n * Move cursor at given direction\n */\n handleCursorMove(dir) {\n if (dir > 0) {\n const num = Math.min(dir, this._input.length - this._cursor);\n this.setCursor(this._cursor + num);\n } else if (dir < 0) {\n const num = Math.max(dir, -this._cursor);\n this.setCursor(this._cursor + num);\n }\n }\n\n /**\n * Erase a character at cursor location\n */\n handleCursorErase(backspace) {\n const { _cursor, _input } = this;\n if (backspace) {\n if (_cursor <= 0) return;\n const newInput = _input.substr(0, _cursor - 1) + _input.substr(_cursor);\n this.clearInput();\n this._cursor -= 1;\n this.setInput(newInput, false);\n } else {\n const newInput = _input.substr(0, _cursor) + _input.substr(_cursor + 1);\n this.setInput(newInput);\n }\n }\n\n /**\n * Insert character at cursor location\n */\n handleCursorInsert(data) {\n const { _cursor, _input } = this;\n const newInput = _input.substr(0, _cursor) + data + _input.substr(_cursor);\n this._cursor += data.length;\n this.setInput(newInput);\n }\n\n /**\n * Handle input completion\n */\n handleReadComplete() {\n if (this.history) {\n this.history.push(this._input);\n }\n if (this._activePrompt) {\n this._activePrompt.resolve(this._input);\n this._activePrompt = null;\n }\n this.term.write(\"\\r\\n\");\n this._active = false;\n }\n\n /**\n * Handle terminal resize\n *\n * This function clears the prompt using the previous configuration,\n * updates the cached terminal size information and then re-renders the\n * input. This leads (most of the times) into a better formatted input.\n */\n handleTermResize(data) {\n const { rows, cols } = data;\n this.clearInput();\n this._termSize = { cols, rows };\n this.setInput(this._input, false);\n }\n\n /**\n * Handle terminal input\n */\n handleTermData(data) {\n if (!this._active) return;\n\n // If we have an active character prompt, satisfy it in priority\n if (this._activeCharPrompt != null) {\n this._activeCharPrompt.resolve(data);\n this._activeCharPrompt = null;\n this.term.write(\"\\r\\n\");\n return;\n }\n\n // If this looks like a pasted input, expand it\n if (data.length > 3 && data.charCodeAt(0) !== 0x1b) {\n const normData = data.replace(/[\\r\\n]+/g, \"\\r\");\n Array.from(normData).forEach(c => this.handleData(c));\n } else {\n this.handleData(data);\n }\n }\n\n /**\n * Handle a single piece of information from the terminal.\n */\n handleData(data) {\n if (!this._active) return;\n const ord = data.charCodeAt(0);\n let ofs;\n\n // Handle ANSI escape sequences\n if (ord == 0x1b) {\n switch (data.substr(1)) {\n case \"[A\": // Up arrow\n if (this.history) {\n let value = this.history.getPrevious();\n if (value) {\n this.setInput(value);\n this.setCursor(value.length);\n }\n }\n break;\n\n case \"[B\": // Down arrow\n if (this.history) {\n let value = this.history.getNext();\n if (!value) value = \"\";\n this.setInput(value);\n this.setCursor(value.length);\n }\n break;\n\n case \"[D\": // Left Arrow\n this.handleCursorMove(-1);\n break;\n\n case \"[C\": // Right Arrow\n this.handleCursorMove(1);\n break;\n\n case \"[3~\": // Delete\n this.handleCursorErase(false);\n break;\n\n case \"[F\": // End\n this.setCursor(this._input.length);\n break;\n\n case \"[H\": // Home\n this.setCursor(0);\n break;\n\n case \"b\": // ALT + LEFT\n ofs = closestLeftBoundary(this._input, this._cursor);\n if (ofs != null) this.setCursor(ofs);\n break;\n\n case \"f\": // ALT + RIGHT\n ofs = closestRightBoundary(this._input, this._cursor);\n if (ofs != null) this.setCursor(ofs);\n break;\n\n case \"\\x7F\": // CTRL + BACKSPACE\n ofs = closestLeftBoundary(this._input, this._cursor);\n if (ofs != null) {\n this.setInput(\n this._input.substr(0, ofs) + this._input.substr(this._cursor)\n );\n this.setCursor(ofs);\n }\n break;\n }\n\n // Handle special characters\n } else if (ord < 32 || ord === 0x7f) {\n switch (data) {\n case \"\\r\": // ENTER\n if (isIncompleteInput(this._input)) {\n this.handleCursorInsert(\"\\n\");\n } else {\n this.handleReadComplete();\n }\n break;\n\n case \"\\x7F\": // BACKSPACE\n this.handleCursorErase(true);\n break;\n\n case \"\\t\": // TAB\n if (this._autocompleteHandlers.length > 0) {\n const inputFragment = this._input.substr(0, this._cursor);\n const hasTailingSpace = hasTailingWhitespace(inputFragment);\n const candidates = collectAutocompleteCandidates(\n this._autocompleteHandlers,\n inputFragment\n );\n\n // Sort candidates\n candidates.sort();\n\n // Depending on the number of candidates, we are handing them in\n // a different way.\n if (candidates.length === 0) {\n // No candidates? Just add a space if there is none already\n if (!hasTailingSpace) {\n this.handleCursorInsert(\" \");\n }\n } else if (candidates.length === 1) {\n // Just a single candidate? Complete\n const lastToken = getLastToken(inputFragment);\n this.handleCursorInsert(\n candidates[0].substr(lastToken.length) + \" \"\n );\n } else if (candidates.length <= this.maxAutocompleteEntries) {\n // If we are less than maximum auto-complete candidates, print\n // them to the user and re-start prompt\n this.printAndRestartPrompt(() => {\n this.printWide(candidates);\n });\n } else {\n // If we have more than maximum auto-complete candidates, print\n // them only if the user acknowledges a warning\n this.printAndRestartPrompt(() =>\n this.readChar(\n `Display all ${candidates.length} possibilities? (y or n)`\n ).then(yn => {\n if (yn == \"y\" || yn == \"Y\") {\n this.printWide(candidates);\n }\n })\n );\n }\n } else {\n this.handleCursorInsert(\" \");\n }\n break;\n\n case \"\\x03\": // CTRL+C\n this.setCursor(this._input.length);\n this.term.write(\"^C\\r\\n\" + ((this._activePrompt || {}).prompt || \"\"));\n this._input = \"\";\n this._cursor = 0;\n if (this.history) this.history.rewind();\n break;\n }\n\n // Handle visible characters\n } else {\n this.handleCursorInsert(data);\n }\n }\n}\n","\n \n \n
\n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TerminalCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TerminalCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TerminalCard.vue?vue&type=template&id=cc052c0c&scoped=true&\"\nimport script from \"./TerminalCard.vue?vue&type=script&lang=js&\"\nexport * from \"./TerminalCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cc052c0c\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","/*\n * Version: 0.1\n * Usage:\n * Create the ui by initiating new instance of `CronUI`.\n * Pass in the selector for the container element of the form,\n * and an options object.\n *\n * recurrentEventForm = new CronUI('.container', {initial: '* * * * *'});\n */\nfunction CronUI(container, opts) {\n if (container instanceof HTMLElement) {\n this.el = container\n } else if (typeof container === \"string\") {\n this.el = document.querySelector(container)\n } else {\n throw \"CronUI: container parameter in initialization must be an html element or a string selector.\"\n }\n\n // init options\n this.options = opts ? opts : {} /* default to empty obj */\n\n // Render the cron form\n this.render()\n\n // Make sure there is an initial value and set it on.\n if (typeof this.options.initial !== \"string\") {\n this.options.initial = \"* * * * *\"\n }\n this.setCronString(this.options.initial)\n this.currentValue = this.options.initial\n}\n\n\nCronUI.prototype.render = function() {\n let suffix\n let j\n let i\n let el = this.el\n\n // ------- build some static data -------\n\n // options for minutes in an hour\n let str_opt_mih = \"\"\n for (i = 0; i < 60; i++) {\n j = (i < 10) ? \"0\" : \"\"\n str_opt_mih += \"\" + j + i + \" \\n\"\n }\n\n // options for hours in a day\n let str_opt_hid = \"\"\n for (i = 0; i < 24; i++) {\n j = (i < 10) ? \"0\" : \"\"\n str_opt_hid += \"\" + j + i + \" \\n\"\n }\n\n // options for days of month\n let str_opt_dom = \"\"\n for (i = 1; i < 32; i++) {\n if (i == 1 || i == 21 || i == 31) {\n suffix = \"st\"\n } else if (i == 2 || i == 22) {\n suffix = \"nd\"\n } else if (i == 3 || i == 23) {\n suffix = \"rd\"\n } else {\n suffix = \"th\"\n }\n str_opt_dom += \"\" + i + suffix + \" \\n\"\n }\n\n // options for months\n let str_opt_month = \"\"\n const months = [\"January\", \"February\", \"March\", \"April\",\n \"May\", \"June\", \"July\", \"August\",\n \"September\", \"October\", \"November\", \"December\"]\n for (i = 0; i < months.length; i++) {\n str_opt_month += \"\" + months[i] + \" \\n\"\n }\n\n // options for day of week\n let str_opt_dow = \"\"\n const days = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\",\n \"Friday\", \"Saturday\"]\n for (i = 0; i < days.length; i++) {\n str_opt_dow += \"\" + days[i] + \" \\n\"\n }\n\n // options for period\n let str_opt_period = \"\"\n const periods = [\"minute\", \"hour\", \"day\", \"week\", \"month\", \"year\"]\n for (i = 0; i < periods.length; i++) {\n str_opt_period += \"\" + periods[i] + \" \\n\"\n }\n\n\n // ---- define select boxes in the right order -----\n let blocks = {}\n\n // Period\n el.insertAdjacentHTML(\"beforeend\",\n \"\" + str_opt_period + \" \")\n let periodEl = el.querySelector(\".cron-period select\")\n periodEl.addEventListener(\"change\", this.periodChanged.bind(this))\n periodEl.addEventListener(\"change\", this.changeEvent.bind(this))\n\n // Day of month\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" on the \" + str_opt_dom\n + \" \")\n blocks[\"dom\"] = el.querySelector(\".cron-block-dom\")\n\n // Month\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" of \" + str_opt_month\n + \" \")\n blocks[\"month\"] = el.querySelector(\".cron-block-month\")\n\n // Minutes\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" at \" + str_opt_mih\n + \" minutes past the hour \")\n blocks[\"mins\"] = el.querySelector(\".cron-block-mins\")\n\n // Day of week\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" on \" + str_opt_dow\n + \" \")\n blocks[\"dow\"] = el.querySelector(\".cron-block-dow\")\n\n // Time\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" at \" + str_opt_hid\n + \" :\" + str_opt_mih\n + \" \")\n blocks[\"time\"] = el.querySelector(\".cron-block-time\")\n\n // Atttach the change event to all selectors\n for (let blockName in blocks) {\n [].forEach.call(blocks[blockName].querySelectorAll(\"select\"), function(selectEl) {\n selectEl.addEventListener(\"change\", this.changeEvent.bind(this))\n }.bind(this))\n }\n\n // Save a reference to blocks\n this.blocks = blocks\n}\n\nCronUI.prototype.periodChanged = function() {\n let blocks = this.blocks\n let cronPeriodEl = this.el.querySelector(\".cron-period select\")\n let period = cronPeriodEl.options[cronPeriodEl.selectedIndex].value\n\n // Hide all current blocks\n for (let blockName in blocks) {\n blocks[blockName].style.display = \"none\"\n }\n\n // Show only blocks that needs to be shown by the period chosen\n if (CronUI.displayMatrix.hasOwnProperty(period)) {\n let b = CronUI.displayMatrix[period]\n for (let i = 0; i < b.length; i++) {\n blocks[b[i]].style.display = \"\"\n }\n }\n}\n\n// The `changeEvent` is fired whenever there is a form change.\n// It updates the `currentValue` of cron string and optionally calls\n// a user set callback.\nCronUI.prototype.changeEvent = function() {\n this.currentValue = this.getCronString()\n if (typeof this.options.changeEvent === \"function\") {\n this.options.changeEvent(this.currentValue)\n }\n}\n\n\nCronUI.prototype.getCronString = function() {\n let min, hour, day, month, dow\n min = hour = day = month = dow = \"*\"\n let blocks = this.blocks\n // Helper to get value from select fields\n let getSelectValue = function(el) {\n return el.options[el.selectedIndex].value\n }\n\n let selectedPeriod = getSelectValue(this.el.querySelector(\".cron-period select\"))\n switch (selectedPeriod) {\n case \"minute\":\n break\n\n case \"hour\":\n min = getSelectValue(blocks[\"mins\"].querySelector(\"select\"))\n break\n\n case \"day\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n break\n\n case \"week\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n dow = getSelectValue(blocks[\"dow\"].querySelector(\"select\"))\n break\n\n case \"month\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n day = getSelectValue(blocks[\"dom\"].querySelector(\"select\"))\n break\n\n case \"year\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n day = getSelectValue(blocks[\"dom\"].querySelector(\"select\"))\n month = getSelectValue(blocks[\"month\"].querySelector(\"select\"))\n break\n\n default:\n // we assume this only happens when customValues is set\n return selectedPeriod\n }\n return [min, hour, day, month, dow].join(\" \")\n}\n\nCronUI.prototype.setCronString = function(cronString) {\n let blocks = this.blocks\n let cronType = CronUI.getCronType(cronString)\n\n if (!cronType) {\n return false\n }\n\n let d = cronString.split(\" \")\n let v = {\n \"mins\": d[0],\n \"hour\": d[1],\n \"dom\": d[2],\n \"month\": d[3],\n \"dow\": d[4],\n }\n\n // update appropriate select boxes\n let targets = CronUI.displayMatrix[cronType]\n for (let i = 0; i < targets.length; i++) {\n let tgt = targets[i]\n if (tgt == \"time\") {\n blocks[tgt].querySelector(\".cron-time-hour\").value = v[\"hour\"]\n\n blocks[tgt].querySelector(\".cron-time-min\").value = v[\"mins\"]\n } else {\n blocks[tgt].querySelector(\"select\").value = v[tgt]\n }\n }\n\n // Update the period select box\n this.el.querySelector(\".cron-period select\").value = cronType\n this.periodChanged()\n\n return this\n}\n\n// Static functions and settings\n// --------------------------------------------------\n\nCronUI.displayMatrix = {\n \"minute\": [],\n \"hour\": [\"mins\"],\n \"day\": [\"time\"],\n \"week\": [\"dow\", \"time\"],\n \"month\": [\"dom\", \"time\"],\n \"year\": [\"dom\", \"month\", \"time\"],\n}\n\nCronUI.cronTypes = {\n \"minute\": /^(\\*\\s){4}\\*$/, // \"* * * * *\"\n \"hour\": /^\\d{1,2}\\s(\\*\\s){3}\\*$/, // \"? * * * *\"\n \"day\": /^(\\d{1,2}\\s){2}(\\*\\s){2}\\*$/, // \"? ? * * *\"\n \"week\": /^(\\d{1,2}\\s){2}(\\*\\s){2}\\d{1,2}$/, // \"? ? * * ?\"\n \"month\": /^(\\d{1,2}\\s){3}\\*\\s\\*$/, // \"? ? ? * *\"\n \"year\": /^(\\d{1,2}\\s){4}\\*$/, // \"? ? ? ? *\"\n}\n\nCronUI.getCronType = function(cronString) {\n // Try for provided cron string, and fallback to the instance cron string\n cronString = cronString ? cronString : this.getCronString()\n\n // check format of initial cron value\n const valid_cron = /^((\\d{1,2}|\\*)\\s){4}(\\d{1,2}|\\*)$/\n if (typeof cronString != \"string\" || !valid_cron.test(cronString)) {\n return undefined\n }\n\n // check actual cron values\n let d = cronString.split(\" \")\n // mm, hh, DD, MM, DOW\n let minval = [0, 0, 1, 1, 0]\n let maxval = [59, 23, 31, 12, 6]\n for (var i = 0; i < d.length; i++) {\n if (d[i] == \"*\") continue\n var v = parseInt(d[i])\n if (v <= maxval[i] && v >= minval[i]) continue\n // If we got here, the value is violating some rule. exit.\n return undefined\n }\n\n // determine combination\n for (let type in CronUI.cronTypes) {\n if (CronUI.cronTypes[type].test(cronString)) {\n return type\n }\n }\n\n // unknown combination\n return undefined\n}\n\nexport default CronUI\n","\n \n \n \n \n Run \n \n \n\n \n Formatted\n \n \n Cli\n \n \n \n \n \n \n \n \n \n \n Client Type: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n info\n \n \n \n
{{ selectedFunction.description }} \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Once: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Recurring: Every
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Test \n Run \n Save \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n Results \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunCard.vue?vue&type=template&id=ab381b0c&scoped=true&\"\nimport script from \"./RunCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RunCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunCard.vue?vue&type=style&index=0&id=ab381b0c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ab381b0c\",\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 { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\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 { 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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VCombobox,VContainer,VDatePicker,VIcon,VMenu,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VSwitch,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider,VTextField,VTimePicker})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Run.vue?vue&type=template&id=74868f95&scoped=true&\"\nimport script from \"./Run.vue?vue&type=script&lang=js&\"\nexport * from \"./Run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74868f95\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('CommonSettings')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('UserSettings')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Common Settings\")]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\",\"align-self\":\"center\"}},[_vm._v(\"\\n Parse modules from:\\n \")]),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.minions,\"item-text\":\"minion_id\",\"item-value\":\"minion_id\",\"label\":\"Target\"},model:{value:(_vm.target),callback:function ($$v) {_vm.target=$$v},expression:\"target\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.target == null,\"color\":\"primary\"},on:{\"click\":_vm.parseModules}},[_vm._v(\"Submit\")])],1),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"1\",\"align-self\":\"center\"}},[_vm._v(\"\\n Alcali Version:\\n \")]),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\",\"align-self\":\"center\"}},[_c('span',[_vm._v(_vm._s(_vm.version))])])],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',[_vm._v(\"Minions Fields\")]),_vm._l((_vm.uniqueMinionField),function(item){return _c('v-row',{key:item.name},[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('b',[_vm._v(_vm._s(item.name))])]),_c('v-col',{attrs:{\"lg\":\"4\"}},[_vm._v(_vm._s(item[\"function\"]))]),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"red\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.deleteMinionsFields(item.name)}}},[_vm._v(\"Delete\")])],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"single-line\":\"\"},model:{value:(_vm.minionsfields_name),callback:function ($$v) {_vm.minionsfields_name=$$v},expression:\"minionsfields_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-combobox',{attrs:{\"items\":_vm.functions,\"item-value\":\"name\",\"item-text\":\"name\",\"label\":\"Functions\"},model:{value:(_vm.minionsfields_value),callback:function ($$v) {_vm.minionsfields_value=$$v},expression:\"minionsfields_value\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.minionsfields_name == null || _vm.minionsfields_value == null,\"color\":\"primary\"},on:{\"click\":_vm.createMinionsFields}},[_vm._v(\"Create\\n \")])],1)],1)],2),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',[_vm._v(\"Custom Conformity\")]),_vm._l((_vm.conformity),function(item){return _c('v-row',{key:item.id},[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('b',[_vm._v(_vm._s(item.name))])]),_c('v-col',{attrs:{\"lg\":\"4\"}},[_vm._v(_vm._s(item.function))]),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"red\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.deleteConformity(item.id)}}},[_vm._v(\"Delete\")])],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"single-line\":\"\"},model:{value:(_vm.conformity_name),callback:function ($$v) {_vm.conformity_name=$$v},expression:\"conformity_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Function\",\"single-line\":\"\"},model:{value:(_vm.conformity_value),callback:function ($$v) {_vm.conformity_value=$$v},expression:\"conformity_value\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.conformity_name == null || _vm.conformity_value === null,\"color\":\"primary\"},on:{\"click\":_vm.createConformity}},[_vm._v(\"Create\\n \")])],1)],1)],2)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Common Settings \n \n \n \n \n Parse modules from:\n \n \n \n \n \n Submit \n \n \n Alcali Version:\n \n \n {{version}} \n \n \n \n \n Minions Fields \n \n {{item.name}} \n {{item[\"function\"]}} \n \n Delete \n \n \n \n \n \n\n \n \n \n \n \n Create\n \n \n \n\n \n \n Custom Conformity \n \n {{item.name}} \n {{item.function}} \n \n Delete \n \n \n \n \n \n \n \n \n \n \n Create\n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommonSettings.vue?vue&type=template&id=ba67d60c&scoped=true&\"\nimport script from \"./CommonSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./CommonSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ba67d60c\",\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 { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VCombobox,VContainer,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"User Settings\")]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('span',[_vm._v(\"Jobs Notifications\")]),_vm._l((_vm.notifs),function(val,name){return _c('div',{key:name},[_c('v-switch',{attrs:{\"label\":name,\"color\":\"primary\",\"hide-details\":\"\"},model:{value:(_vm.notifs[name]),callback:function ($$v) {_vm.$set(_vm.notifs, name, $$v)},expression:\"notifs[name]\"}})],1)})],2),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('span',[_vm._v(\"Max Notifications\")]),_c('v-text-field',{attrs:{\"type\":\"number\"},model:{value:(_vm.max_notifs),callback:function ($$v) {_vm.max_notifs=$$v},expression:\"max_notifs\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.updateUserSettings}},[_vm._v(\"Submit\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n User Settings \n \n \n \n \n Jobs Notifications \n \n \n
\n \n \n Max Notifications \n \n \n \n \n \n \n \n Submit \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserSettings.vue?vue&type=template&id=50109ca2&scoped=true&\"\nimport script from \"./UserSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./UserSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50109ca2\",\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 { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VRow,VSpacer,VSwitch,VTextField})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=ef54e078&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef54e078\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('ConformityTable')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Conformity\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"item-key\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.conformity,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/conformity/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity.toString())+\"\\n \")])]}},{key:\"item.succeeded\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.succeeded != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"green\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.succeeded)+\"\\n \")]):_vm._e()]}},{key:\"item.unchanged\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.unchanged != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"orange\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.unchanged)+\"\\n \")]):_vm._e()]}},{key:\"item.failed\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.failed != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"red\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.failed)+\"\\n \")]):_vm._e()]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\",\"to\":'/conformity/'+item.minion_id}},[_vm._v(\"\\n detail\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run?tgt='+item.minion_id+'&fun=state.apply'}},[_vm._v(\"\\n highstate\\n \")])],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Conformity\n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n {{ item.conformity == null ? \"unknown\": item.conformity.toString() }}\n \n \n \n \n {{item.succeeded}}\n \n \n \n \n {{item.unchanged}}\n \n \n \n \n {{item.failed}}\n \n \n \n \n \n detail\n \n \n highstate\n \n
\n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityTable.vue?vue&type=template&id=65a616a4&scoped=true&\"\nimport script from \"./ConformityTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65a616a4\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conformity.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conformity.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Conformity.vue?vue&type=template&id=090bf60e&scoped=true&\"\nimport script from \"./Conformity.vue?vue&type=script&lang=js&\"\nexport * from \"./Conformity.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"090bf60e\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('ConformityCard',{attrs:{\"minion_id\":_vm.minion_id,\"conformity\":_vm.conformity,\"custom_conformity\":_vm.custom_conformity}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"8\"}},[_c('ConformityDetailCard',{attrs:{\"succeeded\":_vm.succeeded,\"unchanged\":_vm.unchanged,\"failed\":_vm.failed}})],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Highstate Conformity\\n \"),_c('v-spacer'),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.succeeded).length>0),expression:\"Object.keys(succeeded).length>0\"}],staticClass:\"mb-0 mt-0\",attrs:{\"color\":\"green\",\"label\":(\"Succeeded: \" + (Object.keys(_vm.succeeded).length))},model:{value:(_vm.succeeded_checkbox),callback:function ($$v) {_vm.succeeded_checkbox=$$v},expression:\"succeeded_checkbox\"}}),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.unchanged).length>0),expression:\"Object.keys(unchanged).length>0\"}],staticClass:\"ml-3 mb-0 mt-0\",attrs:{\"color\":\"orange\",\"label\":(\"Unchanged: \" + (Object.keys(_vm.unchanged).length))},model:{value:(_vm.unchanged_checkbox),callback:function ($$v) {_vm.unchanged_checkbox=$$v},expression:\"unchanged_checkbox\"}}),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.failed).length>0),expression:\"Object.keys(failed).length>0\"}],staticClass:\"ml-3 mb-0 mt-0\",attrs:{\"color\":\"red\",\"label\":(\"Failed: \" + (Object.keys(_vm.failed).length))},model:{value:(_vm.failed_checkbox),callback:function ($$v) {_vm.failed_checkbox=$$v},expression:\"failed_checkbox\"}})],1),_c('v-expansion-panels',_vm._l((_vm.succeeded),function(item,i){return (_vm.succeeded_checkbox)?_c('v-expansion-panel',{key:i,attrs:{\"dark\":\"\"}},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1),_c('v-expansion-panels',_vm._l((_vm.unchanged),function(item,i){return (_vm.unchanged_checkbox)?_c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"orange\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1),_c('v-expansion-panels',_vm._l((_vm.failed),function(item,i){return (_vm.failed_checkbox)?_c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Highstate Conformity\n \n 0\"\n color=\"green\"\n v-model=\"succeeded_checkbox\"\n :label=\"`Succeeded: ${Object.keys(succeeded).length}`\"\n > \n 0\"\n class=\"ml-3 mb-0 mt-0\"\n color=\"orange\"\n v-model=\"unchanged_checkbox\"\n :label=\"`Unchanged: ${Object.keys(unchanged).length}`\"\n > \n 0\"\n class=\"ml-3 mb-0 mt-0\"\n color=\"red\"\n v-model=\"failed_checkbox\"\n :label=\"`Failed: ${Object.keys(failed).length}`\"\n > \n \n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n\n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n\n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityDetailCard.vue?vue&type=template&id=69fc5fbb&scoped=true&\"\nimport script from \"./ConformityDetailCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityDetailCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69fc5fbb\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\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';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardTitle,VCheckbox,VContainer,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.minion_id))]),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"Highstate\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.valRepr(_vm.conformity)))])],1)])]),_vm._l((_vm.custom_conformity),function(conf){return _c('tbody',{key:conf.key},_vm._l((conf),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[(_vm.isBool(val))?_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.valRepr(_vm.conformity)))]):_c('span',[_vm._v(_vm._s(_vm.valRepr(val)))])],1)])}),0)})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{minion_id}} \n \n \n \n Highstate \n \n {{ valRepr(conformity) }} \n \n \n \n \n \n {{ key }} \n \n {{ valRepr(conformity) }} \n {{ valRepr(val) }} \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityCard.vue?vue&type=template&id=71cc8090&scoped=true&\"\nimport script from \"./ConformityCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71cc8090\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable})\n","\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityDetail.vue?vue&type=template&id=bc290f46&scoped=true&\"\nimport script from \"./ConformityDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc290f46\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('UserCard')],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-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"username\",\"headers\":_vm.headers,\"items\":_vm.users},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',{staticClass:\"headline\"},[_vm._v(\"Users\")]),_c('div',{staticClass:\"flex-grow-1\"}),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"mb-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.user = {}}}},on),[_vm._v(\"Create\")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.editing === true ? \"Update User\" : \"Create User\"))]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Username\",\"rules\":_vm.userRules,\"required\":\"\"},model:{value:(_vm.user.username),callback:function ($$v) {_vm.$set(_vm.user, \"username\", $$v)},expression:\"user.username\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Email\",\"rules\":_vm.emailRules,\"required\":\"\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"First Name\"},model:{value:(_vm.user.first_name),callback:function ($$v) {_vm.$set(_vm.user, \"first_name\", $$v)},expression:\"user.first_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Last Name\"},model:{value:(_vm.user.last_name),callback:function ($$v) {_vm.$set(_vm.user, \"last_name\", $$v)},expression:\"user.last_name\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.show ? 'visibility' : 'visibility_off',\"type\":_vm.show ? 'text' : 'password',\"name\":\"input-10-1\",\"label\":\"Password\",\"counter\":\"\"},on:{\"click:append\":function($event){_vm.show = !_vm.show}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":\"Staff User\"},model:{value:(_vm.user.is_staff),callback:function ($$v) {_vm.$set(_vm.user, \"is_staff\", $$v)},expression:\"user.is_staff\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),(_vm.editing)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.resetUser}},[_vm._v(\"Discard\")]):_vm._e(),(_vm.editing)?_c('v-btn',{attrs:{\"color\":\"warning\"},on:{\"click\":_vm.updateUser}},[_vm._v(\"Update\")]):_vm._e(),(!_vm.editing)?_c('v-btn',{attrs:{\"color\":\"warning\",\"disabled\":_vm.user.username == null || _vm.user.email == ''},on:{\"click\":_vm.createUser}},[_vm._v(\"Create\\n \")]):_vm._e()],1)],1)],1)],1)]},proxy:true},{key:\"item.is_staff\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.is_staff)?_c('v-chip',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_vm._v(_vm._s(item.is_staff))]):_vm._e()]}},{key:\"item.token\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"primary\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.showToken(item)}}},[_vm._v(\"\\n view\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageToken('renew', item)}}},[_vm._v(\"\\n renew\\n \")]),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\",\"disabled\":String(item.id) === _vm.currentUserId},on:{\"click\":function($event){return _vm.manageToken('revoke', item)}}},[_vm._v(\"\\n revoke\\n \")])],1)]}},{key:\"item.date_joined\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.date_joined).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.editUser(item)}}},[_vm._v(\"\\n update\\n \")]),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\",\"disabled\":String(item.id) === _vm.currentUserId},on:{\"click\":function($event){return _vm.confirmDelete(item)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1)],1)],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialogDelete),callback:function ($$v) {_vm.dialogDelete=$$v},expression:\"dialogDelete\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline red\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Delete \"+_vm._s(_vm.user.username)+\" ?\\n \")]),_c('v-card-text',[_c('br'),_vm._v(\"\\n this action is irreversible.\\n \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogDelete = false}}},[_vm._v(\"\\n close\\n \")]),_c('v-btn',{attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteUser(_vm.user.id)}}},[_vm._v(\"\\n delete\\n \")])],1)],1)],1)],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialogToken),callback:function ($$v) {_vm.dialogToken=$$v},expression:\"dialogToken\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline primary\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.user.username)+\" Token\\n \")]),(_vm.user.user_settings)?_c('v-card-text',[_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.user.user_settings.token)+\"\\n \")]):_vm._e(),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogToken = false}}},[_vm._v(\"\\n close\\n \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n Users \n
\n \n \n Create \n \n \n {{ editing === true ? \"Update User\" : \"Create User\"}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n Discard \n Update \n Create\n \n \n \n\n \n \n \n\n \n {{ item.is_staff }} \n \n \n \n \n view\n \n \n renew\n \n \n revoke\n \n
\n \n \n {{new Date(item.date_joined).toLocaleString(\"en-GB\")}}\n \n \n \n \n update\n \n \n delete\n \n
\n \n \n \n \n \n \n \n \n \n Delete {{ user.username }} ?\n \n\n \n \n this action is irreversible.\n \n\n \n\n \n \n \n close\n \n \n delete\n \n \n \n \n
\n \n \n \n \n {{ user.username }} Token\n \n\n \n \n {{user.user_settings.token}}\n \n\n \n\n \n \n \n close\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserCard.vue?vue&type=template&id=7dccc9a6&scoped=true&\"\nimport script from \"./UserCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7dccc9a6\",\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 { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VChip,VCol,VContainer,VDataTable,VDialog,VDivider,VRow,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","\n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=68ff4932&scoped=true&\"\nimport script from \"./Users.vue?vue&type=script&lang=js&\"\nexport * from \"./Users.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ff4932\",\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';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('ScheduleTable',{key:_vm.refreshKey}),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Schedules\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion\",\"headers\":_vm.headers,\"items\":_vm.schedules,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.enabled\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.enabled),\"dark\":\"\"}},[_vm._v(_vm._s(item.enabled))])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":item.enabled ? 'orange': 'green',\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageSchedule(item.enabled ? 'disable_job': 'enable_job', item.name, item.minion)}}},[_vm._v(\"\\n \"+_vm._s(item.enabled ? \"disable\":\"enable\")+\"\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageSchedule('delete', item.name, item.minion)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Schedules\n \n \n \n \n \n {{ item.enabled }} \n \n \n \n \n {{ item.enabled ? \"disable\":\"enable\"}}\n \n \n delete\n \n
\n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScheduleTable.vue?vue&type=template&id=16fe8902&scoped=true&\"\nimport script from \"./ScheduleTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ScheduleTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16fe8902\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Schedules.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Schedules.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Schedules.vue?vue&type=template&id=56af01f4&scoped=true&\"\nimport script from \"./Schedules.vue?vue&type=script&lang=js&\"\nexport * from \"./Schedules.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56af01f4\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"offset\":\"4\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"black white--text subheading\",attrs:{\"primary-title\":\"\"}},[_c('span',{staticClass:\"title\"},[_vm._v(\"Oops\")])]),_c('v-card-text',{staticClass:\"display-1 ma-7 text-center\"},[_vm._v(\"\\n 404. There is no page here.\\n \")]),_c('v-card-actions',[_c('v-btn',{staticClass:\"primary darken-3 white--text\",attrs:{\"text\":\"\",\"to\":\"/\"}},[_c('v-icon',{attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s('mdi-arrow-left')}}),_vm._v(\"\\n Back\\n \")],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n Oops \n \n \n 404. There is no page here.\n \n \n \n \n Back\n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=06e44549&scoped=true&\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06e44549\",\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 { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,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',[_c('v-row',[(_vm.jobs.length === 0 && _vm.minions.length === 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('p',{staticClass:\"display-2 text-center\"},[_vm._v(\"Sorry, no results...\")])])],1):_vm._e(),(_vm.jobs.length > 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Jobs\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.job_search),callback:function ($$v) {_vm.job_search=$$v},expression:\"job_search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"jid\",\"sort-desc\":\"\",\"headers\":_vm.jobs_headers,\"items\":_vm.jobs,\"search\":_vm.search,\"items-per-page\":5},scopedSlots:_vm._u([{key:\"item.jid\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",class:item.jid.includes(_vm.query) ? 'red': '',attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(_vm._s(item.jid)+\"\\n \")])]}},{key:\"item.fun\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{class:item.fun.includes(_vm.query) ? 'red': ''},[_vm._v(_vm._s(item.fun))])]}},{key:\"item.arguments\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments)+\"\\n \")]}},{key:\"item.success\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(item.success)))])]}},{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}}],null,false,1135029737)})],1)],1)],1):_vm._e(),(_vm.minions.length > 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Minions\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.minions_headers,\"items\":_vm.minions,\"items-per-page\":5},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",class:item.minion_id.includes(_vm.query) ? 'red': '',attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id)+\"\\n \")])]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity)+\"\\n \")])]}},{key:\"item.last_job\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}}],null,false,771680795)})],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n Sorry, no results...
\n \n \n 0\">\n \n \n \n Jobs\n \n \n \n \n \n {{ item.jid }}\n \n \n \n {{item.fun}} \n \n \n {{ item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments }}\n \n \n {{ boolText(item.success) }} \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n \n \n 0\">\n \n \n \n Minions\n \n \n \n \n \n {{ item.minion_id }}\n \n \n \n {{ item.conformity == null ? \"unknown\": item.conformity\n }}\n \n \n \n {{item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\")}}\n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=f2f59722&scoped=true&\"\nimport script from \"./Search.vue?vue&type=script&lang=js&\"\nexport * from \"./Search.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2f59722\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VCol,VContainer,VDataTable,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"cols\":\"12\"}},[_c('JobTemplatesTable')],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-container',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Job Templates\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"jid\",\"sort-desc\":\"\",\"headers\":_vm.headers,\"items\":_vm.job_templates,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('b',[_vm._v(_vm._s(item.name))])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue-grey\",\"tile\":\"\",\"dark\":\"\",\"to\":_vm.computeUrl(item, false)}},[_vm._v(\"\\n run\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\",\"to\":_vm.computeUrl(item, true)}},[_vm._v(\"\\n edit\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.deleteTemplate(item.id)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n Job Templates\n \n \n \n \n \n {{item.name}} \n \n \n \n \n run\n \n \n edit\n \n \n delete\n \n
\n \n \n \n \n \n \n\n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobTemplatesTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobTemplatesTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobTemplatesTable.vue?vue&type=template&id=7019d861&scoped=true&\"\nimport script from \"./JobTemplatesTable.vue?vue&type=script&lang=js&\"\nexport * from \"./JobTemplatesTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7019d861\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VCol,VContainer,VDataTable,VRow,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobTemplates.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobTemplates.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobTemplates.vue?vue&type=template&id=cb15827a&scoped=true&\"\nimport script from \"./JobTemplates.vue?vue&type=script&lang=js&\"\nexport * from \"./JobTemplates.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cb15827a\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","import Vue from \"vue\"\nimport Router from \"vue-router\"\nimport store from \"./store\"\nimport Home from \"./views/Home.vue\"\nimport Login from \"./views/Login\"\nimport Jobs from \"./views/Jobs\"\nimport Keys from \"./views/Keys\"\nimport Minions from \"./views/Minions\"\nimport MinionDetail from \"./views/MinionDetail\"\nimport JobDetail from \"./views/JobDetail\"\nimport Events from \"./views/Events\"\nimport Run from \"./views/Run\"\nimport Settings from \"./views/Settings\"\nimport Conformity from \"./views/Conformity\"\nimport ConformityDetail from \"./views/ConformityDetail\"\nimport Users from \"./views/Users\"\nimport Schedules from \"./views/Schedules\"\nimport NotFound from \"./components/NotFound\"\nimport Search from \"./views/Search\"\nimport JobTemplates from \"./views/JobTemplates\"\n\nVue.use(Router)\n\nconst router = new Router({\n routes: [\n {\n path: \"/\",\n name: \"home\",\n component: Home,\n },\n {\n path: \"/minions\",\n name: \"minions\",\n component: Minions,\n },\n {\n path: \"/minions/:minion_id\",\n name: \"minion_detail\",\n component: MinionDetail,\n props: true,\n },\n {\n path: \"/jobs\",\n name: \"jobs\",\n component: Jobs,\n },\n {\n path: \"/jobs/:jid/:minion_id\",\n name: \"job_detail\",\n component: JobDetail,\n props: true,\n },\n {\n path: \"/run\",\n name: \"run\",\n component: Run,\n },\n {\n path: \"/job_templates\",\n name: \"job_templates\",\n component: JobTemplates,\n },\n {\n path: \"/keys\",\n name: \"keys\",\n component: Keys,\n },\n {\n path: \"/events\",\n name: \"events\",\n component: Events,\n },\n {\n path: \"/conformity\",\n name: \"conformity\",\n component: Conformity,\n },\n {\n path: \"/conformity/:minion_id\",\n name: \"conformity_detail\",\n component: ConformityDetail,\n props: true,\n },\n {\n path: \"/schedules\",\n name: \"schedules\",\n component: Schedules,\n },\n {\n path: \"/users\",\n name: \"users\",\n component: Users,\n },\n {\n path: \"/settings\",\n name: \"settings\",\n component: Settings,\n },\n {\n path: \"/search\",\n name: \"search\",\n component: Search,\n },\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n meta: {\n plainLayout: true,\n },\n },\n { path: \"*\", component: NotFound },\n /*\n {\n path: '/about',\n name: 'about',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/!* webpackChunkName: \"about\" *!/ './views/About.vue')\n },\n */\n\n ],\n})\n\nrouter.beforeEach((to, from, next) => {\n if (!store.getters.isLoggedIn && to.path !== \"/login\") {\n next(\"/login\")\n } else if (to.path === \"/login\" && store.getters.isLoggedIn) {\n next(\"/\")\n } else {\n next()\n }\n})\n\n\nexport default router\n","import Vue from \"vue\"\nimport App from \"./App.vue\"\nimport vuetify from \"./plugins/vuetify\"\nimport router from \"./router\"\nimport axios from \"axios\"\nimport store from \"./store\"\nimport jwtDecode from \"jwt-decode\"\n\n\nVue.config.productionTip = false\n\nVue.prototype.$http = axios\nVue.prototype.$http.defaults.xsrfCookieName = \"csrftoken\"\nVue.prototype.$http.defaults.xsrfHeaderName = \"X-CSRFToken\"\nVue.prototype.$http.defaults.headers.common[\"Content-Type\"] = \"application/json\"\n\nconst accessToken = localStorage.getItem(\"token\")\nif (accessToken) {\n Vue.prototype.$http.defaults.headers.common.Authorization = `Bearer ${accessToken}`\n Vue.prototype.$http.defaults.withCredentials = true\n}\n\n/// for multiple parallel requests\nlet isRefreshing = false\nlet failedQueue = []\n\nconst processQueue = (error, token = null) => {\n failedQueue.forEach(prom => {\n if (error) {\n prom.reject(error)\n } else {\n prom.resolve(token)\n }\n })\n\n failedQueue = []\n}\n\nVue.prototype.$http.interceptors.request.use((config) => {\n const originalRequest = config\n // before request is sent check if refresh token is about to expire.\n const refresh = window.localStorage.getItem(\"refresh\")\n if (refresh && jwtDecode(refresh).exp - Math.floor(Date.now() / 1000) < 60) {\n // cleanup local storage and reroute to login.\n return store.dispatch(\"logout\").then(() => {\n return router.push({ path: \"/login\", name: \"Login\" })\n })\n }\n return originalRequest\n}, (error) => {\n // Do something with request error\n return Promise.reject(error)\n})\n\n\nVue.prototype.$http.interceptors.response.use(function(response) {\n return response\n}, function(error) {\n\n const originalRequest = error.config\n\n if (error.response.status === 401 && !originalRequest._retry) {\n\n if (isRefreshing) {\n return new Promise(function(resolve, reject) {\n failedQueue.push({ resolve, reject })\n }).then(token => {\n originalRequest.headers[\"Authorization\"] = \"Bearer \" + token\n return Vue.prototype.$http(originalRequest)\n }).catch(err => {\n return err\n })\n }\n\n originalRequest._retry = true\n isRefreshing = true\n\n const refreshToken = window.localStorage.getItem(\"refresh\")\n return new Promise(function(resolve, reject) {\n Vue.prototype.$http.post(\"/api/token/refresh/\", { refresh: refreshToken })\n .then(({ data }) => {\n window.localStorage.setItem(\"access\", data.access)\n Vue.prototype.$http.defaults.headers.common[\"Authorization\"] = \"Bearer \" + data.access\n originalRequest.headers[\"Authorization\"] = \"Bearer \" + data.access\n processQueue(null, data.access)\n resolve(Vue.prototype.$http(originalRequest))\n })\n .catch((err) => {\n processQueue(err, null)\n reject(err)\n })\n .then(() => {\n isRefreshing = false\n })\n })\n }\n\n return Promise.reject(error)\n})\n\n\nnew Vue({\n vuetify,\n router,\n store,\n render: h => h(App),\n}).$mount(\"#app\")\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=style&index=0&id=664654b1&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=style&index=0&id=664654b1&scoped=true&lang=css&\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/static/js/app.b0501687.js b/dist/static/js/app.b0501687.js
deleted file mode 100644
index c12d342a..00000000
--- a/dist/static/js/app.b0501687.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(t){function e(e){for(var s,r,o=e[0],l=e[1],c=e[2],u=0,h=[];u0?a("span",[t._v(t._s(t.notif_nb))]):t._e()]},proxy:!0}],null,!0)},[a("v-icon",t._g({on:{click:function(e){t.notif_nb=0}}},s),[t._v("notifications")])],1)]}}]),model:{value:t.notif_menu,callback:function(e){t.notif_menu=e},expression:"notif_menu"}},[a("v-card",{attrs:{"min-width":"500px","max-width":"500px"}},[a("v-list",{attrs:{"max-height":"700px"}},[0===t.messages.length?a("v-list-item",[a("v-list-item-content",[a("v-list-item-subtitle",[t._v("No new notifications")])],1)],1):t._e(),t._l(t.messages,function(e,s){return a("v-list-item",{key:s,attrs:{to:e.link}},[a("v-list-item-avatar",[a("v-icon",{attrs:{dark:"",color:e.color,size:"62"}},[t._v(t._s(e.icon))])],1),a("v-list-item-content",[a("v-list-item-title",[t._v(t._s(e.text))]),a("v-list-item-subtitle",[t._v(t._s(e.tag))])],1)],1)})],2),a("v-card-actions",{directives:[{name:"show",rawName:"v-show",value:t.messages.length>0,expression:"messages.length > 0"}]},[a("v-spacer"),a("v-btn",{attrs:{text:""},on:{click:function(e){t.messages=[]}}},[t._v("Clear")])],1)],1)],1),a("v-menu",{attrs:{bottom:"",left:"","offset-y":"","offset-x":"","close-on-click":""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-btn",t._g({attrs:{icon:""}},s),[a("v-icon",[t._v("mdi-dots-vertical")])],1)]}}])},[a("v-list",[a("v-list-item",{on:{click:t.toggleTheme}},[a("v-list-item-title",[t._v("Toggle Theme")])],1),a("v-divider"),a("v-list-item",{on:{click:t.logout}},[a("v-list-item-title",[t._v("Logout")])],1)],1)],1)],1),a("v-content",[a("v-container",[a("v-fade-transition",{attrs:{mode:"out-in"}},[a("router-view")],1)],1)],1)],1)},o=[],l={methods:{fnmatch(t){if(-1===t.indexOf("*"))return e=>t===e;{let e=/[\\^$.*+?()[\]{}|]/g,a=t.replace(e,"\\$&"),s=new RegExp("^"+a.replace(/\\\*/g,".*")+"$");return t=>s.test(t)}},sleep(t){return new Promise(e=>setTimeout(e,t))}}},c={name:"Layout",props:{source:String},data:()=>({expand_search:!1,notif_menu:!1,searchInput:"",drawer:!0,mini:!0,messages:[],settings:null,notif_nb:0,notifs:{created:!1,published:!1,returned:!1,event:!1},routes:[{name:"Overview",path:"/",icon:"dashboard"},{name:"Minions",path:"/minions",icon:"device_hub"},{name:"Jobs",path:"/jobs",icon:"playlist_play"},{name:"Run",path:"/run",icon:"play_arrow"},{name:"Schedules",path:"/schedules",icon:"schedule"},{name:"Conformity",path:"/conformity",icon:"done_all"},{name:"Keys",path:"/keys",icon:"compare_arrows"},{name:"Events",path:"/events",icon:"playlist_add"}]}),methods:{logout:function(){this.$store.dispatch("logout").then(()=>{this.$router.push("/login")})},searchBar(){""!==this.searchInput&&this.$router.push({name:"search",query:{q:this.searchInput}})},getPrefs(){this.$http.get("api/userssettings/"+this.$store.getters.user_id+"/").then(t=>{this.settings=t.data,Object.keys(this.notifs).forEach(t=>{this.notifs[t]=this.settings["notifs_"+t]})})},toggleTheme(){this.$store.dispatch("toggleTheme").then(()=>{this.$vuetify.theme.dark=JSON.parse(this.$store.state.theme)})},saltStatus(){let t=l.methods.fnmatch("salt/job/*"),e=l.methods.fnmatch("salt/job/*/new"),a=l.methods.fnmatch("salt/job/*/ret/*"),s=new EventSource("/api/event_stream/");s.addEventListener("open",()=>{this.$store.dispatch("updateWs")}),s.addEventListener("message",s=>{let n=JSON.parse(s.data);if(e(n.tag)&&!0===this.notifs.published){n.type="new",n.color="green",n.icon="keyboard_tab",n.link="";let t="";t=n.data.hasOwnProperty("tgt")?n.data.tgt:n.data.minions.length+" minion(s)",n.text="Job "+n.data.fun+" published for "+t,this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1}else a(n.tag)&&!0===this.notifs.returned?(n.type="return",n.color="primary",n.icon="subdirectory_arrow_left",n.text="Job "+n.data.fun+" returned for "+n.data.id,n.link="/jobs/"+n.data.jid+"/"+n.data.id,this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1):t(n.tag)&&!0===this.notifs.event?(n.type="event",n.color="orange",n.icon="more_horiz",n.text="Job Event",n.link="",this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1):/^\w{20}$/.test(n.tag)&&!0===this.notifs.created&&(n.type="created",n.color="secondary",n.icon="add",n.text="New Job Created",n.link="",this.messages.unshift(n),this.messages.length>this.settings.max_notifs&&this.messages.pop(),this.notif_nb+=1)},!1)}},mounted(){this.getPrefs(),this.saltStatus(),this.$vuetify.theme.dark=JSON.parse(this.$store.getters.theme)},computed:{username(){return this.$store.state.username},email(){return this.$store.state.email},theme(){return this.$store.state.theme}}},d=c,u=(a("355a"),a("2877")),h=a("6544"),m=a.n(h),v=a("7496"),p=a("40dc"),f=a("5bc1"),b=a("4ca6"),_=a("8336"),g=a("b0af"),y=a("99d9"),x=a("a523"),k=a("a75b"),C=a("ce7e"),w=a("0789"),j=a("132d"),V=a("8860"),S=a("da13"),T=a("1800"),$=a("8270"),D=a("5d23"),O=a("e449"),E=a("f774"),R=a("2fa4"),A=a("8654"),I=a("2a7f"),P=a("3a2f"),F=Object(u["a"])(d,r,o,!1,null,null,null),M=F.exports;m()(F,{VApp:v["a"],VAppBar:p["a"],VAppBarNavIcon:f["a"],VBadge:b["a"],VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VContainer:x["a"],VContent:k["a"],VDivider:C["a"],VExpandTransition:w["a"],VFadeTransition:w["d"],VIcon:j["a"],VList:V["a"],VListItem:S["a"],VListItemAction:T["a"],VListItemAvatar:$["a"],VListItemContent:D["a"],VListItemSubtitle:D["b"],VListItemTitle:D["c"],VMenu:O["a"],VNavigationDrawer:E["a"],VSpacer:R["a"],VTextField:A["a"],VToolbarTitle:I["a"],VTooltip:P["a"]});var L=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("router-view")},N=[],J={name:"SimpleLayout"},U=J,z=Object(u["a"])(U,L,N,!1,null,"0f66a338",null),B=z.exports,q={computed:{layout(){return this.$route.meta.plainLayout}},components:{"app-layout":M,"simple-layout":B}},H=q,K=(a("034f"),Object(u["a"])(H,n,i,!1,null,null,null)),G=K.exports;m()(K,{VApp:v["a"]});a("5363");var W=a("f309"),Y=a("2db4"),Q=a("87f6"),X=a.n(Q);s["a"].use(W["a"],{components:{VSnackbar:Y["a"],VBtn:_["a"],VIcon:j["a"]}}),s["a"].use(X.a,{x:"center",y:"bottom",color:"black",icon:"info",iconColor:"",classes:["body-2"],timeout:3e3,dismissable:!0,multiLine:!1,vertical:!1,queueable:!1,showClose:!0,closeText:"",closeColor:"",shorts:{custom:{color:"purple"}},property:"$toast"});var Z=new W["a"]({icons:{iconfont:"md"},theme:{themes:{light:{primary:"#6200EE",secondary:"#03DAC6"},dark:{secondary:"#BB86FC",primary:"#03DAC6"}}}}),tt=a("8c4f"),et=a("2f62"),at=a("bc3a"),st=a.n(at);s["a"].use(et["a"]);var nt=new et["a"].Store({state:{username:localStorage.getItem("username")||"",email:localStorage.getItem("email")||"",id:localStorage.getItem("id")||"",access:localStorage.getItem("access")||"",refresh:localStorage.getItem("refresh")||"",ws_status:!1,theme:localStorage.getItem("theme")||!1},mutations:{auth_success(t,e){Object.keys(e).forEach(a=>{t[a]=e[a]})},logout(t){t.access=""},updateWs(t){t.ws_status=!0},toggleTheme(t){t.theme=!t.theme,localStorage.setItem("theme",JSON.stringify(t.theme))}},getters:{isLoggedIn:t=>!!t.access,theme:t=>t.theme,user_id:t=>t.id},actions:{updateWs({commit:t}){t("updateWs")},toggleTheme({commit:t}){t("toggleTheme")},login({commit:t},e){return new Promise((a,s)=>{st()({url:"/api/token/",data:e,method:"POST"}).then(e=>{Object.keys(e.data).forEach(t=>{localStorage.setItem(t,e.data[t])}),st.a.defaults.headers.common.Authorization=`Bearer ${e.data.access}`,t("auth_success",e.data),a(e)}).catch(t=>{localStorage.clear(),s(t)})})},logout({commit:t}){return new Promise(e=>{t("logout"),localStorage.clear(),delete st.a.defaults.headers.common["Authorization"],e()})}}}),it=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"7"}},[a("ConformityChart")],1),a("v-col",{attrs:{sm:"6",lg:"2"}},[a("KeysStatusCard")],1),a("v-col",{attrs:{sm:"6",lg:"3"}},[a("AlcaliStatusCard")],1)],1),a("v-row",[a("v-col",{attrs:{lg:"12"}},[a("JobsChartCard")],1)],1),a("v-row",[a("v-col",{attrs:{lg:"12"}},[a("JobsTable",{attrs:{filter:{limit:10}}})],1)],1)],1)},rt=[],ot=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Keys")]),a("v-simple-table",[a("tbody",t._l(t.keys_status,function(e,s){return a("tr",{key:s},[a("td",{staticClass:"pr-0"},[a("v-icon",[t._v(t._s(t.statusIcon(s)))])],1),a("td",{staticClass:"pl-0"},[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e)+" / "+t._s(t.keys_total))])])}),0)])],1)],1)},lt=[],ct={name:"KeysStatusCard",data(){return{keys_status:{},keys_total:0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/keys/keys_status/").then(t=>{this.keys_status=t.data,this.keys_total=Object.values(t.data).reduce((t,e)=>t+e)})},statusIcon(t){switch(t){case"accepted":return"check";case"rejected":return"first_page";case"denied":return"close";case"unaccepted":return"refresh"}}}},dt=ct,ut=a("1f4f"),ht=Object(u["a"])(dt,ot,lt,!1,null,"b6756222",null),mt=ht.exports;m()(ht,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VIcon:j["a"],VSimpleTable:ut["a"]});var vt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",{attrs:{elevation:null==t.minion?2:0}},[a("v-list-item",{attrs:{"three-line":"",dense:""}},[a("v-list-item-content",[a("v-list-item-title",{staticClass:"headline mb-1"},[t._v("Jobs Stats")])],1),a("v-spacer"),a("v-list-item-content",{staticClass:"mr-6"},[a("v-select",{attrs:{items:t.filters,label:"Filter","return-object":""},on:{change:t.loadData},model:{value:t.selectedFilter,callback:function(e){t.selectedFilter=e},expression:"selectedFilter"}})],1),a("v-list-item-content",[a("v-select",{attrs:{items:t.periods,label:"Period","return-object":""},on:{change:t.loadData},model:{value:t.selectedPeriod,callback:function(e){t.selectedPeriod=e},expression:"selectedPeriod"}})],1)],1),a("canvas",{ref:"chart"})],1)],1)},pt=[],ft=a("30ef"),bt=a.n(ft);let _t={afterLayout:function(t){if(t.options.linearGradientLine){let e=t.chart.ctx;t.data.datasets.forEach(a=>{let s=Number.MAX_VALUE,n=Number.MIN_VALUE;for(let t=0;ta.data[t]&&(s=a.data[t]),n{let s=(t.chartArea.left+t.chartArea.right)/2,n=(t.chartArea.top+t.chartArea.bottom)/2,i=e.createRadialGradient(s,n,2*t.innerRadius*.2,s,n,2*t.innerRadius);i.addColorStop(0,a.colorStart),i.addColorStop(1,a.colorEnd),a.backgroundColor=i})}}};var gt=_t,yt={name:"JobsChartCard",props:["minion"],data(){return{filters:[{text:"All",value:"all"},{text:"Highstate",value:"highstate"},{text:"Other",value:"other"}],periods:[{text:"Week",value:7},{text:"Two Weeks",value:14},{text:"Month",value:30},{text:"Year",value:365}],jobchart:null,selectedFilter:null,selectedPeriod:null,labels:null,chart_data:[]}},mounted(){this.createChart()},methods:{loadData(){let t=null==this.selectedFilter?"all":this.selectedFilter.value,e=null==this.selectedPeriod?7:this.selectedPeriod.value,a={params:{fun:t,period:e}};this.minion&&(a.params.id=this.minion),this.$http.get("api/jobs/graph",a).then(t=>{this.jobchart.data.labels=t.data.labels,this.jobchart.data.datasets[0].data=t.data.series[0],this.jobchart.data.datasets[1].data=t.data.series[1],this.jobchart.update()})},createChart(){let t=null==this.selectedFilter?"all":this.selectedFilter.value,e=null==this.selectedPeriod?7:this.selectedPeriod.value,a={params:{fun:t,period:e}};this.minion&&(a.params.id=this.minion),null!=this.jobchart&&this.jobchart.destroy(),this.$http.get("api/jobs/graph",a).then(t=>{this.labels=t.data.labels,this.chart_data[0]=t.data.series[0],this.chart_data[1]=t.data.series[1],this.$refs.chart.height=60,this.jobchart=new bt.a(this.$refs.chart,{type:"line",data:{labels:this.labels,datasets:[{lineTension:.1,pointRadius:1,data:this.chart_data[0],fill:!1,colorStart:"rgba(0, 173, 238, 1.0)",colorEnd:"rgba(231, 18, 143, 1.0)"},{lineTension:.1,pointRadius:1,data:this.chart_data[1],fill:!1,colorStart:"rgba(255, 255, 255, 1.0)",colorEnd:"rgba(255, 0, 0, 1.0)"}]},options:{linearGradientLine:!0,legend:{display:!1},scales:{xAxes:[{gridLines:{display:!0}}],yAxes:[{gridLines:{display:!0},ticks:{autoSkip:!0,beginAtZero:!0,maxTicksLimit:6}}]},responsive:!0},plugins:[gt]})})}}},xt=yt,kt=a("b974"),Ct=Object(u["a"])(xt,vt,pt,!1,null,"e0df043e",null),wt=Ct.exports;m()(Ct,{VCard:g["a"],VContainer:x["a"],VListItem:S["a"],VListItemContent:D["a"],VListItemTitle:D["c"],VSelect:kt["a"],VSpacer:R["a"]});var jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Status")]),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("Salt WebSocket")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.wsStatus?"green":"red","text-color":"white"}},[t._v("\n "+t._s(t.wsStatus?"OK":"NOT OK")+"\n ")])],1)]),t._l(t.stats,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e))])])})],2)])],1)],1)},Vt=[],St={name:"AlcaliStatusCard",mixins:[l],data(){return{stats:{}}},mounted(){this.loadData()},computed:{wsStatus(){return this.$store.state.ws_status}},methods:{loadData(){this.$http.get("api/stats/").then(t=>this.stats=t.data)}}},Tt=St,$t=a("cc20"),Dt=Object(u["a"])(Tt,jt,Vt,!1,null,"1eb41eb0",null),Ot=Dt.exports;m()(Dt,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"]});var Et=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Conformity")]),a("v-card-text",[a("v-container",[t._l(t.conformitynames,function(e){return[a("v-row",{key:e,attrs:{"no-gutters":"",align:"center",justify:"center"}},[a("v-col",{attrs:{sm:"2"}},[t._v(t._s(e))]),a("v-col",{attrs:{sm:"10"}},[a("v-menu",{attrs:{"open-on-hover":"","max-width":"250px"},scopedSlots:t._u([{key:"activator",fn:function(s){var n=s.on;return[a("canvas",t._g({ref:e,refInFor:!0,attrs:{height:"15"}},n))]}}],null,!0)},[a("v-simple-table",{attrs:{dense:""}},[a("thead",[a("tr",[a("th",[t._v(t._s(e))])])]),a("tbody",{domProps:{innerHTML:t._s(t.customTool)}})])],1)],1)],1)]})],2)],1)],1)],1)},Rt=[],At=(a("02d0"),a("fcf4")),It={name:"ConformityChart",data(){return{conformitynames:null,confchart:null,conformity:null,customTool:""}},created(){},mounted(){this.loadConformity()},methods:{loadConformity(){this.$http.get("api/minions/conformity/").then(t=>{this.conformity=t.data.data,this.conformitynames=t.data.name}).then(()=>{this.conformity.forEach((t,e)=>{let a={labels:[this.conformitynames[e]],datasets:[]};Object.keys(t).forEach(e=>{let s="";if(["conflict","false"].indexOf(e)>=0)s="#F44336";else if(["conform","true"].indexOf(e)>=0)s="#41f40e";else if(["None","unknown","null"].indexOf(e)>=0)s=this.$vuetify.theme.themes.light.primary;else{let t=Object.keys(At["a"]);s=At["a"][t[t.length*Math.random()<<0]].darken2}a.datasets.push({label:e,data:[t[e]],backgroundColor:s})}),new bt.a(this.$refs[this.conformitynames[e]],{type:"horizontalBar",data:a,options:{animation:!1,plugins:{stacked100:{enable:!0}},tooltips:{enabled:!1,mode:"index",intersect:!1,custom:t=>{if(t&&t.body){let e=t.body.map(t=>t.lines),a="";e.forEach(function(e,s){let n=t.labelColors[s],i="background:"+n.backgroundColor;i+="; border-color:"+n.borderColor,i+="; border-width: 2px";let r=`__ `;a+=""+r+" "+e+" "}),this.customTool=a}}},legend:{display:!1},scales:{xAxes:[{stacked:!0,display:!1,gridLines:{display:!1,drawTicks:!1,drawBorder:!1},ticks:{display:!1,padding:-20}}],yAxes:[{stacked:!0,display:!1,ticks:{display:!1,padding:-20},gridLines:{drawTicks:!1,display:!1,drawBorder:!1}}]}}})})})}}},Pt=It,Ft=(a("3244"),a("62ad")),Mt=a("0fd9"),Lt=Object(u["a"])(Pt,Et,Rt,!1,null,"bcf3f6c0",null),Nt=Lt.exports;m()(Lt,{VCard:g["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Ft["a"],VContainer:x["a"],VMenu:O["a"],VRow:Mt["a"],VSimpleTable:ut["a"]});var Jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[null==t.filter?a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{staticClass:"mb-8"},[a("v-row",[a("v-col",{attrs:{lg:"2"}},[a("v-card-title",[t._v("Search Jobs")])],1),a("v-divider"),a("v-col",{attrs:{lg:"2","align-self":"center"}},[a("v-menu",{ref:"menu",attrs:{"close-on-content-click":!1,"return-value":t.selectedDate,transition:"scale-transition","offset-y":"","min-width":"290px"},on:{"update:returnValue":function(e){t.selectedDate=e},"update:return-value":function(e){t.selectedDate=e}},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{label:"Select date(s)",readonly:""},model:{value:t.dateRangeText,callback:function(e){t.dateRangeText=e},expression:"dateRangeText"}},s))]}}],null,!1,4129137489),model:{value:t.menu,callback:function(e){t.menu=e},expression:"menu"}},[a("v-date-picker",{attrs:{max:(new Date).toISOString().split("T")[0],reactive:"","no-title":"",range:""},model:{value:t.selectedDate,callback:function(e){t.selectedDate=e},expression:"selectedDate"}},[a("div",{staticClass:"flex-grow-1"}),a("v-btn",{attrs:{text:"",color:"primary"},on:{click:function(e){t.menu=!1}}},[t._v("Cancel")]),a("v-btn",{attrs:{text:"",color:"primary"},on:{click:function(e){return t.$refs.menu.save(t.selectedDate)}}},[t._v("OK")])],1)],1)],1),a("v-col",{attrs:{lg:"2"}},[a("v-autocomplete",{attrs:{items:t.users,label:"User(s)",multiple:"","single-line":""},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item,n=e.index;return[0===n?a("span",[t._v(t._s(s))]):t._e(),1===n?a("span",{staticClass:"grey--text caption"},[t._v(" (+"+t._s(t.selectedUsers.length-1)+" others)")]):t._e()]}}],null,!1,2591977476),model:{value:t.selectedUsers,callback:function(e){t.selectedUsers=e},expression:"selectedUsers"}})],1),a("v-col",{attrs:{lg:"2"}},[a("v-autocomplete",{attrs:{items:t.minions,label:"Target(s)",multiple:"","single-line":""},scopedSlots:t._u([{key:"selection",fn:function(e){var s=e.item,n=e.index;return[0===n?a("span",[t._v(t._s(s))]):t._e(),1===n?a("span",{staticClass:"grey--text caption"},[t._v(" (+"+t._s(t.selectedTarget.length-1)+" others)")]):t._e()]}}],null,!1,3190666039),model:{value:t.selectedTarget,callback:function(e){t.selectedTarget=e},expression:"selectedTarget"}})],1),a("v-col",{attrs:{lg:"1"}},[a("v-select",{attrs:{items:t.limit,label:"Limit","single-line":""},model:{value:t.selectedLimit,callback:function(e){t.selectedLimit=e},expression:"selectedLimit"}})],1),a("v-col",{attrs:{lg:"1","align-self":"center"}},[a("div",{staticClass:"text-center"},[a("v-btn",{attrs:{color:"primary"},on:{click:t.filterJobs}},[t._v("Search\n ")])],1)])],1)],1)],1)],1):t._e(),a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{attrs:{elevation:null==t.filter?2:0}},[a("v-card-title",[t._v("\n Jobs\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"jid","sort-desc":"","item-key":"uniqueid",headers:t.filteredHeaders,items:t.indexedItems,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.jid",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v(t._s(s.jid))])]}},{key:"item.id",fn:function(e){var a=e.item;return[t._v("\n "+t._s(t.filter?"":a.id)+"\n ")]}},{key:"item.arguments",fn:function(e){var a=e.item;return[t._v("\n "+t._s(a.arguments.length>20?a.arguments.slice(0,20)+"...":a.arguments)+"\n ")]}},{key:"item.success",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.success),dark:""}},[t._v(t._s(t.boolText(s.success)))])]}},{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v("\n detail\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue-grey",tile:"",dark:"",to:"/run/?target="+s.id+"&function="+s.fun+"&args="+s.arguments}},[t._v("\n rerun\n ")])],1)]}}])})],1)],1)],1)],1)},Ut=[],zt={name:"JobsTable",props:["filter"],data(){return{menu:!1,limit:[50,100,200,500,1e3],selectedDate:[],selectedLimit:null,selectedUsers:null,selectedTarget:null,minions:[],users:[],search:"",headers:[{text:"Jid",value:"jid"},{text:"Target",value:"id"},{text:"Function",value:"fun"},{text:"Arguments",value:"arguments"},{text:"User",value:"user"},{text:"Status",value:"success"},{text:"Date",value:"alter_time"},{text:"Actions",value:"action",sortable:!1}],jobs:[],loading:!0}},computed:{indexedItems(){return this.jobs.map((t,e)=>({uniqueid:e,...t}))},dateRangeText(){return this.selectedDate.join(" ~ ")},filteredHeaders(){return this.filter&&this.filter.hasOwnProperty("target[]")&&this.headers.splice(1,1),this.headers}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/jobs/filters/").then(t=>{this.minions=t.data.minions,this.users=t.data.users}),this.$http.get("api/jobs/",{params:this.filter}).then(t=>{this.jobs=t.data,this.loading=!1})},filterJobs(){this.loading=!0;let t={limit:this.selectedLimit,target:this.selectedTarget,users:this.selectedUsers};this.selectedDate.length>0&&(t.start=this.selectedDate[0],t.end=this.selectedDate[1]||this.selectedDate[0]),this.$http.get("api/jobs/",{params:t}).then(t=>{this.jobs=t.data,this.loading=!1,this.selectedUsers=this.selectedTarget=this.selectedLimit=this.selectedDate=null,this.selectedDate=[]})},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"}}},Bt=zt,qt=a("c6a6"),Ht=a("8fea"),Kt=a("2e4b"),Gt=Object(u["a"])(Bt,Jt,Ut,!1,null,"108fe07a",null),Wt=Gt.exports;m()(Gt,{VAutocomplete:qt["a"],VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Ft["a"],VContainer:x["a"],VDataTable:Ht["a"],VDatePicker:Kt["a"],VDivider:C["a"],VMenu:O["a"],VRow:Mt["a"],VSelect:kt["a"],VSpacer:R["a"],VTextField:A["a"]});var Yt={name:"home",components:{JobsTable:Wt,ConformityChart:Nt,AlcaliStatusCard:Ot,KeysStatusCard:mt,JobsChartCard:wt}},Qt=Yt,Xt=Object(u["a"])(Qt,it,rt,!1,null,null,null),Zt=Xt.exports;m()(Xt,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var te=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-app",{attrs:{id:"inspire"}},[a("v-content",[a("v-container",{staticClass:"fill-height",attrs:{fluid:""}},[a("v-row",{attrs:{align:"center",justify:"center"}},[a("v-col",{attrs:{cols:"12",sm:"8",md:"4"}},[a("h1",{staticClass:"text-center font-weight-bold display-4 mb-8"},[t._v("ALCALI")]),a("v-card",{staticClass:"elevation-12"},[a("v-toolbar",{attrs:{color:"black",dark:"",flat:""}},[a("v-toolbar-title",[t._v("Login")]),a("v-spacer")],1),a("v-card-text",[a("v-form",[a("v-text-field",{attrs:{label:"Login",name:"login","prepend-icon":"person",type:"text"},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),a("v-text-field",{attrs:{label:"Password",name:"password","prepend-icon":"lock",type:"password"},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}})],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",dark:""},on:{click:function(e){return e.preventDefault(),t.authenticate(e)}}},[t._v("Login")])],1)],1)],1)],1)],1)],1)],1)},ee=[],ae={name:"Login",data:()=>({username:null,password:null}),methods:{authenticate(){let t=this.username,e=this.password;this.$store.dispatch("login",{username:t,password:e}).then(()=>this.$router.push("/")).catch(t=>{this.$toast.error("Invalid Login / Password")})}}},se=ae,ne=(a("a084"),a("4bd4")),ie=a("71d9"),re=Object(u["a"])(se,te,ee,!1,null,"e48ee6a0",null),oe=re.exports;m()(re,{VApp:v["a"],VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCol:Ft["a"],VContainer:x["a"],VContent:k["a"],VForm:ne["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"],VToolbar:ie["a"],VToolbarTitle:I["a"]});var le=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",cols:"12"}},[a("JobsTable")],1)],1)],1)},ce=[],de={name:"Jobs",components:{JobsTable:Wt}},ue=de,he=Object(u["a"])(ue,le,ce,!1,null,"4867fa69",null),me=he.exports;m()(he,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var ve=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("KeysTable",{key:t.refreshKey})],1)],1),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)},pe=[],fe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Keys\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id",headers:t.headers,items:t.keys,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return["accepted"===s.status?[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id))])]:[t._v("\n "+t._s(s.minion_id)+"\n ")]]}},{key:"item.status",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.keysRepr(s.status),dark:""}},[t._v(t._s(s.status.toString()))])]}},{key:"item.action",fn:function(e){var s=e.item;return[t._l(t.keyAction(s.status),function(e){return[a("v-btn",{key:e,staticClass:"ma-2",attrs:{small:"",dark:"",color:t.keysRepr(e)},on:{click:function(a){return t.manageKey(e,s.minion_id)}}},[t._v("\n "+t._s(e)+"\n ")])]})]}}])})],1)],1)},be=[],_e={name:"KeysTable",data(){return{search:"",headers:[{text:"Minion Id",value:"minion_id"},{text:"Status",value:"status"},{text:"Public Key",value:"pub"},{text:"Actions",value:"action",sortable:!1}],keys:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/keys/").then(t=>{this.keys=t.data,this.loading=!1})},sleep(t){return new Promise(e=>setTimeout(e,t))},keysRepr(t){return t.startsWith("accept")?"green":t.startsWith("reject")?"orange":t.startsWith("de")?"red":"grey"},keyAction(t){return"accepted"===t?["reject","delete"]:"rejected"===t?["accept","delete"]:"denied"===t?["accept"]:["accept","delete"]},manageKey(t,e){let a=new FormData;a.set("action",t),a.set("target",e),this.$http.post("api/keys/manage_keys/",a).then(t=>{this.$toast(t.data.result)}),this.sleep(2e3).then(()=>{this.loadData()})}}},ge=_e,ye=Object(u["a"])(ge,fe,be,!1,null,"50efcc63",null),xe=ye.exports;m()(ye,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ke=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-speed-dial",{attrs:{fixed:"",bottom:"",right:"",direction:"top",transition:"slide-y-reverse-transition"},scopedSlots:t._u([{key:"activator",fn:function(){return[a("v-btn",{attrs:{color:"primary",fab:""},model:{value:t.fab,callback:function(e){t.fab=e},expression:"fab"}},[t.fab?a("v-icon",[t._v("close")]):a("v-icon",[t._v("menu")])],1)]},proxy:!0}]),model:{value:t.fab,callback:function(e){t.fab=e},expression:"fab"}},[t._l(t.fabs,function(e){return[a("v-tooltip",{key:e.tooltip,attrs:{left:""},scopedSlots:t._u([{key:"activator",fn:function(s){var n=s.on;return[a("v-btn",t._g({attrs:{fab:"",dark:"",small:"",color:e.color},on:{click:function(a){return t.emit("fab_action",e.action)}}},n),[a("v-icon",[t._v(t._s(e.icon))])],1)]}}],null,!0)},[a("span",[t._v(t._s(e.tooltip))])])]})],2)},Ce=[],we={name:"Fab",props:["fabs"],methods:{emit(t,e){this.$emit(t,e)}},data:()=>({fab:!1})},je=we,Ve=a("c73b"),Se=Object(u["a"])(je,ke,Ce,!1,null,"56c34fbd",null),Te=Se.exports;m()(Se,{VBtn:_["a"],VIcon:j["a"],VSpeedDial:Ve["a"],VTooltip:P["a"]});var $e={name:"Keys",components:{Fab:Te,KeysTable:xe},data:()=>({fabs:[{color:"blue",action:"refreshKeys",icon:"compare_arrows",tooltip:"Refresh keys"},{color:"orange",action:"rejectAll",icon:"close",tooltip:"Reject all keys"},{color:"green",action:"acceptAll",icon:"done",tooltip:"Accept all keys"}],refreshKey:0}),methods:{fabAction(t){this[t]()},refreshKeys(){this.$toast("refreshing keys"),this.$http.post("/api/keys/refresh/").then(()=>{this.$toast("keys refreshed")}).then(()=>{this.refreshKey+=1}).catch(function(t){alert(t)})},acceptAll(){let t=new FormData;t.set("action","accept"),t.set("target","*"),this.$http.post("api/keys/manage_keys/",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.refreshKey+=1})},rejectAll(){let t=new FormData;t.set("action","reject"),t.set("target","*"),this.$http.post("api/keys/manage_keys/",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.refreshKey+=1})}}},De=$e,Oe=Object(u["a"])(De,ve,pe,!1,null,"47322cce",null),Ee=Oe.exports;m()(Oe,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var Re=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",cols:"12"}},[a("MinionsTable",{key:t.refreshKey}),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)],1)},Ae=[],Ie=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Minions\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id",headers:t.headers,items:t.minions,search:t.search,loading:t.loading,"loading-text":"Loading... Please wait"},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id))])]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity.toString())+"\n ")])]}},{key:"item.last_job",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_job?"":new Date(a.last_job).toLocaleString("en-GB"))+"\n ")]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:""},on:{click:function(e){return t.refreshMinion(s.minion_id)}}},[t._v("\n refresh\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue-grey",tile:"",dark:"",to:"/run?target="+s.minion_id}},[t._v("\n run job\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"red",tile:"",dark:""},on:{click:function(e){return e.stopPropagation(),t.showDialog(s.minion_id)}}},[t._v("\n delete\n ")])],1)]}}])})],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[a("v-card",[a("v-card-title",{staticClass:"headline red",attrs:{"primary-title":""}},[t._v("\n Delete "+t._s(t.target)+" ?\n ")]),a("v-card-text",[a("br"),t._v("\n If you delete "+t._s(t.target)+" from the database, you will need to refresh all minions.\n ")]),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialog=!1}}},[t._v("\n close\n ")]),a("v-btn",{attrs:{color:"red",text:""},on:{click:function(e){return t.deleteMinion(t.target)}}},[t._v("\n delete\n ")])],1)],1)],1)],1)],1)},Pe=[],Fe={name:"MinionsTable",data(){return{search:"",dialog:!1,headers:[{text:"Minion Id",value:"minion_id"},{text:"Highstate Conformity",value:"conformity"},{text:"F.Q.D.N",value:"fqdn"},{text:"O.S",value:"os"},{text:"O.S Version",value:"oscodename"},{text:"Kernel",value:"kernelrelease"},{text:"Last Job",value:"last_job"},{text:"Last Highstate",value:"last_highstate"},{text:"Actions",value:"action",sortable:!1}],minions:[],target:null,loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/minions/").then(t=>{function e(t){return t.forEach(t=>{let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a]}),t}this.minions=e(t.data),this.loading=!1})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"},refreshMinion(t){this.$toast("refreshing "+t);let e=new FormData;e.set("minion_id",t),this.$http.post("/api/minions/refresh_minions/",e).then(t=>{this.$toast(t.data.result)})},deleteMinion(t){this.dialog=!1,this.$http.delete("/api/minions/"+t).then(()=>{this.minions.splice(this.minions.indexOf(t),1),this.$toast(t+" deleted")})},showDialog(t){this.target=t,this.dialog=!0}}},Me=Fe,Le=a("169a"),Ne=Object(u["a"])(Me,Ie,Pe,!1,null,"e7f10790",null),Je=Ne.exports;m()(Ne,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VDialog:Le["a"],VDivider:C["a"],VSpacer:R["a"],VTextField:A["a"]});var Ue={name:"Minions",components:{Fab:Te,MinionsTable:Je},data:()=>({refreshKey:0,fabs:[{color:"pink",action:"refreshMinions",icon:"refresh",tooltip:"Refresh all minions"},{color:"orange",action:"runAll",icon:"playlist_play",tooltip:"Run job on all minions"}]}),methods:{fabAction(t){this[t]()},refreshMinions(){this.$toast("refreshing minions"),this.$http.post("/api/minions/refresh_minions/").then(()=>{this.$toast("minions refreshed")}).then(()=>{this.refreshKey+=1}).catch(function(t){alert(t)})},runAll(){this.$router.push("/run/?target=*")}}},ze=Ue,Be=Object(u["a"])(ze,Re,Ae,!1,null,"31331556",null),qe=Be.exports;m()(Be,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var He=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"3"}},[null!==t.minion?a("InfosCard",{attrs:{minion:t.minion}}):t._e(),null!==t.minion?a("NetworkCard",{attrs:{minion:t.minion}}):t._e()],1),a("v-col",{attrs:{sm:"12",lg:"9"}},[null!==t.minion?a("MinionDetailCard",{attrs:{minion:t.minion}}):t._e()],1),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)},Ke=[],Ge=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Infos")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#common"}},[t._v("\n Common\n ")]),a("v-tab",{attrs:{href:"#salt"}},[t._v("\n Salt\n ")]),a("v-tab",{attrs:{href:"#hardware"}},[t._v("\n Hardware\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"common"}},[a("v-simple-table",[a("tbody",t._l(t.common,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),"last_job"===e.grain||"last_highstate"===e.grain&&null!==t.minion[e.grain]?a("td",{staticClass:"text-right"},[t._v(t._s(new Date(t.minion[e.grain]).toLocaleString("en-GB"))+"\n ")]):"conformity"===e.grain?a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.minion[e.grain]),dark:""}},[t._v(t._s(null==t.minion[e.grain]?"unknown":t.minion[e.grain]))])],1):a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1),a("v-tab-item",{attrs:{id:"salt"}},[a("v-simple-table",[a("tbody",t._l(t.salt,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1),a("v-tab-item",{attrs:{id:"hardware"}},[a("v-simple-table",[a("tbody",t._l(t.hardware,function(e){return a("tr",{key:e.name},[a("td",[t._v(t._s(e.name))]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion[e.grain]))])])}),0)])],1)],1)],1)],1)},We=[],Ye={name:"InfosCard",data(){return{tab:null,common:[{name:"F.Q.D.N",grain:"fqdn"},{name:"O.S",grain:"os"},{name:"O.S Version",grain:"oscodename"},{name:"Kernel",grain:"kernelrelease"},{name:"Last Job",grain:"last_job"},{name:"Last Highstate",grain:"last_highstate"},{name:"Highstate Conformity",grain:"conformity"}],salt:[{name:"ID",grain:"id"},{name:"Master",grain:"master"},{name:"Salt Version",grain:"saltversion"},{name:"Salt Path",grain:"saltpath"},{name:"Python Version",grain:"pythonversion"}],hardware:[{name:"C.P.U Model",grain:"cpu_model"},{name:"Number of C.P.U",grain:"num_cpus"},{name:"Total Memory",grain:"mem_total"},{name:"Total Swap",grain:"swap_total"},{name:"Virtual",grain:"virtual"}]}},props:["minion"],methods:{boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}}},Qe=Ye,Xe=a("71a3"),Ze=a("c671"),ta=a("fe57"),ea=a("aac8"),aa=a("9a96"),sa=Object(u["a"])(Qe,Ge,We,!1,null,"88be39d6",null),na=sa.exports;m()(sa,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var ia=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Network")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#interface"}},[t._v("\n Interfaces\n ")]),a("v-tab",{attrs:{href:"#mac"}},[t._v("\n Mac\n ")]),a("v-tab",{attrs:{href:"#dns"}},[t._v("\n Dns\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"interface"}},[a("v-simple-table",[a("tbody",[t._l(t.minion.ip_interfaces,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),t._l(e,function(e){return a("td",{staticClass:"text-right"},[t._v(t._s(e))])})],2)}),a("tr",[a("td",[t._v("IPv4 GATEWAY")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion.ip4_gw))])]),a("tr",[a("td",[t._v("IPv6 GATEWAY")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.minion.ip6_gw))])])],2)])],1),a("v-tab-item",{attrs:{id:"mac"}},[a("v-simple-table",[a("tbody",t._l(t.minion.hwaddr_interfaces,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e))])])}),0)])],1),a("v-tab-item",{attrs:{id:"dns"}},[a("v-simple-table",[a("tbody",t._l(t.minion.dns,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t._v(t._s(e.length>=1?e:""))])])}),0)])],1)],1)],1)],1)},ra=[],oa={name:"NetworkCard",data(){return{tab:null,tabs:3}},props:["minion"]},la=oa,ca=Object(u["a"])(la,ia,ra,!1,null,"4e9c41e8",null),da=ca.exports;m()(ca,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VSimpleTable:ut["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var ua=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#grain"}},[t._v("\n Grains\n ")]),a("v-tab",{attrs:{href:"#pillar"}},[t._v("\n Pillar\n ")]),a("v-tab",{attrs:{href:"#history"}},[t._v("\n History\n ")]),a("v-tab",{attrs:{href:"#graph"}},[t._v("\n Graph\n ")]),t._l(t.minion.custom_fields,function(e){return a("v-tab",{key:e.name},[t._v("\n "+t._s(e.name)+"\n ")])})],2),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"grain"}},[a("div",{staticClass:"text-right"},[a("v-btn",{staticClass:"overlayedBtn",on:{click:function(e){return t.fold("grainCm")}}},[t._v(t._s(t.grainCmFolded?"unfold":"fold"))])],1),a("codemirror",{ref:"grainCm",attrs:{options:t.cmOptions},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}})],1),a("v-tab-item",{attrs:{id:"pillar"}},[a("div",{staticClass:"text-right"},[a("v-btn",{staticClass:"overlayedBtn",on:{click:function(e){return t.fold("pillarCm")}}},[t._v(t._s(t.pillarCmFolded?"unfold":"fold"))])],1),a("codemirror",{ref:"pillarCm",attrs:{options:t.cmOptions},model:{value:t.codepillar,callback:function(e){t.codepillar=e},expression:"codepillar"}})],1),a("v-tab-item",{attrs:{id:"history"}},[a("JobsTable",{attrs:{filter:{"target[]":t.minion.minion_id}}})],1),a("v-tab-item",{attrs:{id:"graph",eager:""}},[t.minion?a("JobsChartCard",{attrs:{minion:t.minion.minion_id}}):t._e()],1),t._l(t.minion.custom_fields,function(e){return a("v-tab-item",{key:e.name},[a("codemirror",{attrs:{options:t.cmOptions,value:t.yamlRepr(e.value)}})],1)})],2)],1)],1)},ha=[],ma=a("56b3"),va=a.n(ma),pa=a("8f94"),fa=(a("f4ba"),a("4895"),a("aedd"),a("cbc8"),a("8d70"),a("f9d4"),a("a7be"),a("ced0"),a("efe9"),a("651e")),ba=a.n(fa),_a={name:"MinionDetailCard",components:{JobsTable:Wt,JobsChartCard:wt,codemirror:pa["codemirror"]},data(){return{tab:null,code:ba.a.safeDump(JSON.parse(this.minion.grain)),codepillar:ba.a.safeDump(JSON.parse(this.minion.pillar)),grainCmFolded:!1,pillarCmFolded:!1,cmOptions:{tabSize:4,mode:"yaml",theme:"made-of-code",line:!0,autoRefresh:!0,lineNumbers:!1,readOnly:!0,cursorBlinkRate:0,foldGutter:!0,gutters:["CodeMirror-foldgutter"]}}},methods:{yamlRepr(t){return ba.a.safeDump(JSON.parse(t))},fold(t){!0===this[t+"Folded"]?(va.a.commands.unfoldAll(this.$refs[t].codemirror),this[t+"Folded"]=!1):(va.a.commands.foldAll(this.$refs[t].codemirror),this[t+"Folded"]=!0)}},props:["minion"]},ga=_a,ya=(a("15fa"),Object(u["a"])(ga,ua,ha,!1,null,"107b300f",null)),xa=ya.exports;function ka(t){let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a];return t}m()(ya,{VBtn:_["a"],VCard:g["a"],VContainer:x["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"]});var Ca={name:"MinionDetail",components:{Fab:Te,MinionDetailCard:xa,InfosCard:na,NetworkCard:da},data(){return{minion:null,fabs:[{color:"blue",action:"refreshMinion",icon:"refresh",tooltip:"Refresh "+this.minion_id},{color:"purple",action:"runMinion",icon:"play_arrow",tooltip:"Run job on "+this.minion_id},{color:"orange",action:"highstateMinion",icon:"all_inclusive",tooltip:"Run highstate on "+this.minion_id}]}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/minions/"+this.minion_id+"/").then(t=>this.minion=ka(t.data))},fabAction(t){this[t]()},refreshMinion(){this.$toast("refreshing "+this.minion_id);let t=new FormData;t.set("minion_id",this.minion_id),this.$http.post("/api/minions/refresh_minions/",t).then(()=>{this.$toast("minion refreshed")}).catch(function(t){alert(t)})},runMinion(){this.$router.push("/run/?target="+this.minion_id)},highstateMinion(){this.$router.push("/run/?target="+this.minion_id+"&function=state.apply")}},props:["minion_id"]},wa=Ca,ja=Object(u["a"])(wa,He,Ke,!1,null,"2b1fbb2b",null),Va=ja.exports;m()(ja,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var Sa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"4"}},[a("v-container",[a("v-card",[a("v-list-item",{attrs:{"two-line":""}},[a("v-list-item-content",[a("v-list-item-title",{staticClass:"headline"},[t._v(t._s(t.job.fun))]),a("v-list-item-subtitle",[t._v("Run "+t._s(t.formatDate(t.job.alter_time)))])],1)],1),a("v-divider"),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("FUNCTION:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.fun))])]),a("tr",[a("td",[t._v("JID:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.jid))])]),t.job.arguments?a("tr",[a("td",[t._v("ARGUMENTS:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.arguments))])]):t._e(),a("tr",[a("td",[t._v("MINION ID:")]),a("td",{staticClass:"text-right"},[t._v(t._s(t.job.id))])]),a("tr",[a("td",[t._v("STATUS:")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.job.success),dark:""}},[t._v(t._s(t.boolText(t.job.success)))])],1)]),a("tr",[a("td",[t._v("START TIME:")]),a("td",{staticClass:"text-right"},[t._v(t._s(new Date(t.job.alter_time).toLocaleString("en-GB")))])])])])],1)],1)],1),a("v-col",{attrs:{sm:"12",lg:"8"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("Results")]),a("v-divider"),a("div",{staticClass:"ansiStyle",domProps:{innerHTML:t._s(t.ansiResult)}})],1)],1)],1)],1)],1)},Ta=[],$a={name:"JobDetail",props:["jid","minion_id"],data(){return{job:{},ansiResult:null}},mounted(){this.loadData(),this.loadRenderedJob()},methods:{loadData(){this.$http.get(`api/jobs/${this.jid}/${this.minion_id}/`).then(t=>this.job=t.data)},loadRenderedJob(){this.$http.get(`api/jobs/${this.jid}/${this.minion_id}/rendered_state/`).then(t=>this.ansiResult=t.data)},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"},formatDate(t){return new Date(t).toLocaleString("en-GB")}}},Da=$a,Oa=(a("ce2f"),Object(u["a"])(Da,Sa,Ta,!1,null,"ebea9e70",null)),Ea=Oa.exports;m()(Oa,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Ft["a"],VContainer:x["a"],VDivider:C["a"],VListItem:S["a"],VListItemContent:D["a"],VListItemSubtitle:D["b"],VListItemTitle:D["c"],VRow:Mt["a"],VSimpleTable:ut["a"]});var Ra=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("EventsTable")],1)],1)],1)},Aa=[],Ia=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Events\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"alter_time","sort-desc":"",headers:t.headers,items:t.events,search:t.search,"show-expand":"",loading:t.loading},scopedSlots:t._u([{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}},{key:"expanded-item",fn:function(e){var s=e.headers,n=e.item;return[a("td",{attrs:{colspan:s.length}},[a("pre",[t._v(t._s(JSON.stringify(JSON.parse(n.data),null,2)))])])]}}])})],1)],1)},Pa=[];function Fa(t){return t.forEach(t=>{let e=JSON.parse(t.data);for(let a in e)"id"===a?t["minion_id"]=e[a]:t[a]=e[a]}),t}var Ma={name:"EventsTable",data(){return{search:"",headers:[{text:"Tag",value:"tag"},{text:"Jid",value:"jid"},{text:"Target",value:"minion_id"},{text:"Function",value:"fun"},{text:"Arguments",value:"fun_args"},{text:"Date",value:"alter_time"}],events:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/events/").then(t=>{this.events=Fa(t.data),this.loading=!1})}}},La=Ma,Na=Object(u["a"])(La,Ia,Pa,!1,null,"e7265fc6",null),Ja=Na.exports;m()(Na,{VCard:g["a"],VCardTitle:y["c"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var Ua={name:"Events",components:{EventsTable:Ja}},za=Ua,Ba=Object(u["a"])(za,Ra,Aa,!1,null,"7408d9dd",null),qa=Ba.exports;m()(Ba,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var Ha=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("RunCard")],1)],1)],1)},Ka=[],Ga=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",{attrs:{"no-gutters":""}},[a("v-col",{attrs:{sm:"12"}},[a("v-card",{staticClass:"mb-8"},[a("v-card-title",[t._v("Run")]),a("v-tabs",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tabs-slider"),a("v-tab",{attrs:{href:"#formatted"}},[t._v("\n Formatted\n ")]),a("v-tab",{attrs:{href:"#cli"}},[t._v("\n Cli\n ")])],1),a("v-tabs-items",{model:{value:t.tab,callback:function(e){t.tab=e},expression:"tab"}},[a("v-tab-item",{attrs:{id:"formatted",eager:""}},[a("v-card",[a("v-spacer"),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{staticClass:"text-right",attrs:{sm:"3",lg:"1","align-self":"center"}},[a("span",[t._v("Client Type:")])]),a("v-col",{attrs:{sm:"3",lg:"1"}},[a("v-select",{attrs:{items:t.client},model:{value:t.selected_client,callback:function(e){t.selected_client=e},expression:"selected_client"}})],1),t.client_batch||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":"1"}},[a("v-checkbox",{attrs:{label:"Async",color:"primary"},model:{value:t.client_async,callback:function(e){t.client_async=e},expression:"client_async"}})],1),"local"!==t.selected_client||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":t.client_batch?3:1}},[a("v-checkbox",{attrs:{label:"Batch",color:"primary"},model:{value:t.client_batch,callback:function(e){t.client_batch=e},expression:"client_batch"}})],1),"local"===t.selected_client&&t.client_batch&&!t.scheduleSwitch?a("v-col",{attrs:{sm:"3",lg:"1"}},[a("v-text-field",{attrs:{label:"Batch"},model:{value:t.batch,callback:function(e){t.batch=e},expression:"batch"}})],1):t._e(),"local"!==t.selected_client||t.scheduleSwitch?t._e():a("v-col",{attrs:{sm:"3",lg:"1","offset-lg":t.client_batch?0:1}},[a("v-text-field",{attrs:{label:"Timeout",type:"number"},model:{value:t.timeout,callback:function(e){t.timeout=e},expression:"timeout"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"1"}},["local"===t.selected_client?a("v-select",{attrs:{items:t.target_type,label:"Target Type"},on:{change:function(e){t.target=null}},model:{value:t.selected_target_type,callback:function(e){t.selected_target_type=e},expression:"selected_target_type"}}):t._e()],1),a("v-col",{attrs:{lg:"2"}},["local"===t.selected_client?a("v-text-field",{attrs:{label:"Target"},model:{value:t.target,callback:function(e){t.target=e},expression:"target"}}):t._e()],1),a("v-col",{attrs:{lg:"2"}},[a("v-combobox",{attrs:{"item-value":"name","item-text":"name",items:t.filteredFunction,label:"Function","return-object":""},scopedSlots:t._u([t.selectedFunction?{key:"append-outer",fn:function(){return[a("v-menu",{attrs:{"offset-y":""},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-icon",t._g({attrs:{color:"black"}},s),[t._v("info\n ")])]}}],null,!1,1349456046)},[a("div",{staticClass:"desc"},[a("pre",[t._v(t._s(t.selectedFunction.description))])])])]},proxy:!0}:null],null,!0),model:{value:t.selectedFunction,callback:function(e){t.selectedFunction=e},expression:"selectedFunction"}})],1),a("v-col",{attrs:{lg:"3"}},[a("v-text-field",{attrs:{label:"Arguments"},model:{value:t.args,callback:function(e){t.args=e},expression:"args"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Keyword Arguments"},model:{value:t.kwargs,callback:function(e){t.kwargs=e},expression:"kwargs"}})],1)],1),a("v-row",{attrs:{dense:""}},[a("v-col",{attrs:{sm:"3"}},[a("v-switch",{directives:[{name:"show",rawName:"v-show",value:"local"===t.selected_client,expression:"selected_client === 'local'"}],attrs:{label:"Schedule",color:"primary"},model:{value:t.scheduleSwitch,callback:function(e){t.scheduleSwitch=e},expression:"scheduleSwitch"}})],1),a("v-col",{attrs:{sm:"3"}},[a("v-switch",{directives:[{name:"show",rawName:"v-show",value:"local"===t.selected_client,expression:"selected_client === 'local'"}],attrs:{label:"Pillar",color:"primary"},model:{value:t.pillarSwitch,callback:function(e){t.pillarSwitch=e},expression:"pillarSwitch"}})],1),a("v-col",{attrs:{sm:"3"}},[a("v-switch",{attrs:{label:"Save",color:"primary"},model:{value:t.saveJobSwitch,callback:function(e){t.saveJobSwitch=e},expression:"saveJobSwitch"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.saveJobSwitch,expression:"saveJobSwitch"}],attrs:{sm:"12"}},[a("v-text-field",{staticStyle:{width:"350px"},attrs:{label:"Job Template Name"},model:{value:t.jobTemplateName,callback:function(e){t.jobTemplateName=e},expression:"jobTemplateName"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.pillarSwitch,expression:"pillarSwitch"}],attrs:{sm:"12"}},[a("codemirror",{attrs:{options:t.cmOptions},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}})],1),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.pillarSwitch,expression:"pillarSwitch"}],attrs:{sm:"12"}},[a("span",{domProps:{innerHTML:t._s(t.pillarRendered)}})]),a("v-col",{directives:[{name:"show",rawName:"v-show",value:t.scheduleSwitch,expression:"scheduleSwitch"}],attrs:{sm:"12"}},[a("v-text-field",{staticStyle:{width:"350px"},attrs:{label:"Schedule name"},model:{value:t.scheduleName,callback:function(e){t.scheduleName=e},expression:"scheduleName"}}),a("v-radio-group",{staticClass:"mt-0",model:{value:t.scheduleType,callback:function(e){t.scheduleType=e},expression:"scheduleType"}},[a("v-radio",{attrs:{value:"once",color:"primary"},scopedSlots:t._u([{key:"label",fn:function(){return[a("span",[a("strong",[t._v("Once: ")])]),a("v-row",[a("v-col",{staticClass:"ml-2",attrs:{sm:"4"}},[a("v-menu",{attrs:{"close-on-content-click":!1,transition:"scale-transition","offset-y":"","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{readonly:""},model:{value:t.scheduleDate,callback:function(e){t.scheduleDate=e},expression:"scheduleDate"}},s))]}}]),model:{value:t.dateMenu,callback:function(e){t.dateMenu=e},expression:"dateMenu"}},[a("v-date-picker",{attrs:{min:t.scheduleDate},on:{input:function(e){t.dateMenu=!1}},model:{value:t.scheduleDate,callback:function(e){t.scheduleDate=e},expression:"scheduleDate"}})],1)],1),a("v-col",{attrs:{sm:"4"}},[a("v-menu",{ref:"menu",attrs:{"close-on-content-click":!1,"nudge-right":40,transition:"scale-transition","offset-y":"","max-width":"290px","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-text-field",t._g({attrs:{readonly:""},model:{value:t.scheduleTime,callback:function(e){t.scheduleTime=e},expression:"scheduleTime"}},s))]}}]),model:{value:t.timeMenu,callback:function(e){t.timeMenu=e},expression:"timeMenu"}},[t.timeMenu?a("v-time-picker",{attrs:{"full-width":""},model:{value:t.scheduleTime,callback:function(e){t.scheduleTime=e},expression:"scheduleTime"}}):t._e()],1)],1)],1)]},proxy:!0}])}),a("v-radio",{attrs:{value:"recurring",color:"primary"},scopedSlots:t._u([{key:"label",fn:function(){return[a("div",[a("strong",[t._v("Recurring: ")]),t._v(" Every "),a("span",{attrs:{id:"cron"}})])]},proxy:!0}])})],1)],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:!t.saveJobSwitch,expression:"!saveJobSwitch"}],attrs:{color:"orange",large:"",dark:""},on:{click:function(e){return t.runJob(t.test=!0)}}},[t._v("Test")]),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:!t.saveJobSwitch,expression:"!saveJobSwitch"}],attrs:{color:"info",large:"",dark:""},on:{click:t.runJob}},[t._v("Run")]),a("v-btn",{directives:[{name:"show",rawName:"v-show",value:t.saveJobSwitch,expression:"saveJobSwitch"}],attrs:{color:"green",large:"",dark:""},on:{click:t.runJob}},[t._v("Save")])],1)],1)],1),a("v-tab-item",{attrs:{id:"cli"}},[null!==t.functions?a("TerminalCard",{attrs:{minions:t.minions,functions:t.functions}}):t._e()],1)],1)],1)],1)],1),a("v-row",[a("v-col",{attrs:{sm:"12"}},[t.results?a("v-card",[a("v-card-title",[t._v("Results")]),a("v-card-text",{staticClass:"ansiStyle",domProps:{innerHTML:t._s(t.results)}})],1):t._e()],1)],1)],1)},Wa=[],Ya=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-row",{directives:[{name:"resize",rawName:"v-resize",value:t.onResize,expression:"onResize"}]},[a("v-col",{attrs:{sm:"12"}},[a("div",{staticClass:"console",attrs:{id:"terminal"}})])],1)},Qa=[],Xa=a("fcf3"),Za=a("47d0");a("abb2");class ts{constructor(t){this.size=t,this.entries=[],this.cursor=0}push(t){if(""===t.trim())return;const e=this.entries[this.entries.length-1];t!=e&&(this.entries.push(t),this.entries.length>this.size&&this.entries.pop(0),this.cursor=this.entries.length)}rewind(){this.cursor=this.entries.length}getPrevious(){const t=Math.max(0,this.cursor-1);return this.cursor=t,this.entries[t]}getNext(){const t=Math.min(this.entries.length,this.cursor+1);return this.cursor=t,this.entries[t]}}var es=a("8e33");function as(t,e=!0){let a;const s=[],n=/\w+/g;while(a=n.exec(t))e?s.push(a.index):s.push(a.index+a[0].length);return s}function ss(t,e){const a=as(t,!0).reverse().find(t=>tt>e);return null==a?t.length:a}function is(t,e,a){let s=0,n=0;for(let i=0;ia&&(n=0,s+=1))}return{row:s,col:n}}function rs(t,e){return is(t,t.length,e).row+1}function os(t){return""!=t.trim()&&((t.match(/'/g)||[]).length%2!==0||((t.match(/"/g)||[]).length%2!==0||(""==t.split(/(\|\||\||&&)/g).pop().trim()||!(!t.endsWith("\\")||t.endsWith("\\\\")))))}function ls(t){return null!=t.match(/[^\\][ \t]$/m)}function cs(t){if(""===t.trim())return"";if(ls(t))return"";const e=Object(es["parse"])(t);return e.pop()||""}function ds(t,e){const a=Object(es["parse"])(e);let s=a.length-1,n=a[s]||"";""===e.trim()?(s=0,n=""):ls(e)&&(s+=1,n="");const i=t.reduce((t,{fn:e,args:n})=>{try{return t.concat(e(s,a,...n))}catch(i){return console.error("Auto-complete error:",i),t}},[]);return i.filter(t=>t.startsWith(n))}class us{constructor(t,e={}){this.term=t,this._handleTermData=this.handleTermData.bind(this),this._handleTermResize=this.handleTermResize.bind(this),this.history=new ts(e.historySize||100),this.maxAutocompleteEntries=e.maxAutocompleteEntries||100,this._autocompleteHandlers=[],this._active=!1,this._input="",this._cursor=0,this._activePrompt=null,this._activeCharPrompt=null,this._termSize={cols:this.term.cols,rows:this.term.rows},this.attach()}detach(){this.term.off("data",this._handleTermData),this.term.off("resize",this._handleTermResize)}attach(){this.term.onData(this._handleTermData),this.term.onResize(this._handleTermResize)}addAutocompleteHandler(t,...e){this._autocompleteHandlers.push({fn:t,args:e})}removeAutocompleteHandler(t){const e=this._autocompleteHandlers.findIndex(e=>e.fn===t);-1!==e&&this._autocompleteHandlers.splice(e,1)}read(t,e="> "){return new Promise((a,s)=>{this.term.write(t),this._activePrompt={prompt:t,continuationPrompt:e,resolve:a,reject:s},this._input="",this._cursor=0,this._active=!0})}readChar(t){return new Promise((e,a)=>{this.term.write(t),this._activeCharPrompt={prompt:t,resolve:e,reject:a}})}abortRead(t="aborted"){null==this._activePrompt&&null==this._activeCharPrompt||this.term.write("\r\n"),null!=this._activePrompt&&(this._activePrompt.reject(t),this._activePrompt=null),null!=this._activeCharPrompt&&(this._activeCharPrompt.reject(t),this._activeCharPrompt=null),this._active=!1}println(t){this.print(t+"\n")}print(t){const e=t.replace(/[\r\n]+/g,"\n");this.term.write(e.replace(/\n/g,"\r\n"))}printWide(t,e=2){if(0==t.length)return println("");const a=t.reduce((t,e)=>Math.max(t,e.length),0)+e,s=Math.floor(this._termSize.cols/a),n=Math.ceil(t.length/s);let i=0;for(let r=0;rt.length&&(this._cursor=t.length);const s=this.applyPromptOffset(t,this._cursor),n=rs(a,this._termSize.cols),{col:i,row:r}=is(a,s,this._termSize.cols),o=n-r-1;this.term.write("\r");for(var l=0;l{this._cursor=e,this.setInput(this._input)},s=t();null==s?a():s.then(a)}setCursor(t){t<0&&(t=0),t>this._input.length&&(t=this._input.length);const e=this.applyPrompts(this._input),a=(rs(e,this._termSize.cols),this.applyPromptOffset(this._input,this._cursor)),{col:s,row:n}=is(e,a,this._termSize.cols),i=this.applyPromptOffset(this._input,t),{col:r,row:o}=is(e,i,this._termSize.cols);if(o>n)for(let l=n;ls)for(let l=s;l0){const e=Math.min(t,this._input.length-this._cursor);this.setCursor(this._cursor+e)}else if(t<0){const e=Math.max(t,-this._cursor);this.setCursor(this._cursor+e)}}handleCursorErase(t){const{_cursor:e,_input:a}=this;if(t){if(e<=0)return;const t=a.substr(0,e-1)+a.substr(e);this.clearInput(),this._cursor-=1,this.setInput(t,!1)}else{const t=a.substr(0,e)+a.substr(e+1);this.setInput(t)}}handleCursorInsert(t){const{_cursor:e,_input:a}=this,s=a.substr(0,e)+t+a.substr(e);this._cursor+=t.length,this.setInput(s)}handleReadComplete(){this.history&&this.history.push(this._input),this._activePrompt&&(this._activePrompt.resolve(this._input),this._activePrompt=null),this.term.write("\r\n"),this._active=!1}handleTermResize(t){const{rows:e,cols:a}=t;this.clearInput(),this._termSize={cols:a,rows:e},this.setInput(this._input,!1)}handleTermData(t){if(this._active){if(null!=this._activeCharPrompt)return this._activeCharPrompt.resolve(t),this._activeCharPrompt=null,void this.term.write("\r\n");if(t.length>3&&27!==t.charCodeAt(0)){const e=t.replace(/[\r\n]+/g,"\r");Array.from(e).forEach(t=>this.handleData(t))}else this.handleData(t)}}handleData(t){if(!this._active)return;const e=t.charCodeAt(0);let a;if(27==e)switch(t.substr(1)){case"[A":if(this.history){let t=this.history.getPrevious();t&&(this.setInput(t),this.setCursor(t.length))}break;case"[B":if(this.history){let t=this.history.getNext();t||(t=""),this.setInput(t),this.setCursor(t.length)}break;case"[D":this.handleCursorMove(-1);break;case"[C":this.handleCursorMove(1);break;case"[3~":this.handleCursorErase(!1);break;case"[F":this.setCursor(this._input.length);break;case"[H":this.setCursor(0);break;case"b":a=ss(this._input,this._cursor),null!=a&&this.setCursor(a);break;case"f":a=ns(this._input,this._cursor),null!=a&&this.setCursor(a);break;case"":a=ss(this._input,this._cursor),null!=a&&(this.setInput(this._input.substr(0,a)+this._input.substr(this._cursor)),this.setCursor(a));break}else if(e<32||127===e)switch(t){case"\r":os(this._input)?this.handleCursorInsert("\n"):this.handleReadComplete();break;case"":this.handleCursorErase(!0);break;case"\t":if(this._autocompleteHandlers.length>0){const t=this._input.substr(0,this._cursor),e=ls(t),a=ds(this._autocompleteHandlers,t);if(a.sort(),0===a.length)e||this.handleCursorInsert(" ");else if(1===a.length){const e=cs(t);this.handleCursorInsert(a[0].substr(e.length)+" ")}else a.length<=this.maxAutocompleteEntries?this.printAndRestartPrompt(()=>{this.printWide(a)}):this.printAndRestartPrompt(()=>this.readChar(`Display all ${a.length} possibilities? (y or n)`).then(t=>{"y"!=t&&"Y"!=t||this.printWide(a)}))}else this.handleCursorInsert(" ");break;case"":this.setCursor(this._input.length),this.term.write("^C\r\n"+((this._activePrompt||{}).prompt||"")),this._input="",this._cursor=0,this.history&&this.history.rewind();break}else this.handleCursorInsert(t)}}var hs={name:"TerminalCard",props:["minions","functions"],data(){return{term:null,fitter:null,functions_name:null}},methods:{initTerm(){let t=document.getElementById("terminal");this.term=new Xa["Terminal"]({cursorBlink:!0,fontSize:20,fontFamily:"'Roboto Mono', monospace"});const e=new Za["FitAddon"];this.term.loadAddon(e),this.term.open(t),e.fit(),this.fitter=e;const a=new us(this.term);a.addAutocompleteHandler(t=>{return 0!==t?[]:["salt","clear"]}),a.addAutocompleteHandler(t=>{return 1!==t?[]:this.minions}),a.addAutocompleteHandler(t=>{return 2!==t?[]:this.functions.map(t=>t.name)});const s="Usage: salt [options] '' [arguments]",n=()=>{a.read(" ~$ ").then(t=>{let e=t.split(" ").filter(t=>{return""!==t});if(0===e.length)n();else if(1===e.length&&"clear"===e[0])this.term.clear(),n();else if(e.length<=2)a.println(s),n();else if(t.split(" ").length>=3&&"salt"===e[0]){let e=new FormData;e.set("raw",!0),e.set("cli",!0),e.set("command",t),this.$toast("Running "+t),this.$http.post("api/run/",e).then(t=>{a.println(t.data.results)}).then(()=>n())}else a.println(s),n()})};n()},onResize(){null!==this.term&&this.fitter.fit()}},mounted(){setTimeout(()=>{this.initTerm()},100)},beforeDestroy(){null!==this.term&&this.term.dispose()}},ms=hs,vs=a("269a"),ps=a.n(vs),fs=a("dc22"),bs=Object(u["a"])(ms,Ya,Qa,!1,null,"cc052c0c",null),_s=bs.exports;function gs(t,e){if(t instanceof HTMLElement)this.el=t;else{if("string"!==typeof t)throw"CronUI: container parameter in initialization must be an html element or a string selector.";this.el=document.querySelector(t)}this.options=e||{},this.render(),"string"!==typeof this.options.initial&&(this.options.initial="* * * * *"),this.setCronString(this.options.initial),this.currentValue=this.options.initial}m()(bs,{VCol:Ft["a"],VRow:Mt["a"]}),ps()(bs,{Resize:fs["a"]}),gs.prototype.render=function(){let t,e,a,s=this.el,n="";for(a=0;a<60;a++)e=a<10?"0":"",n+=""+e+a+" \n";let i="";for(a=0;a<24;a++)e=a<10?"0":"",i+=""+e+a+" \n";let r="";for(a=1;a<32;a++)t=1==a||21==a||31==a?"st":2==a||22==a?"nd":3==a||23==a?"rd":"th",r+=""+a+t+" \n";let o="";const l=["January","February","March","April","May","June","July","August","September","October","November","December"];for(a=0;a"+l[a]+"\n";let c="";const d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];for(a=0;a"+d[a]+"\n";let u="";const h=["minute","hour","day","week","month","year"];for(a=0;a"+h[a]+"\n";let m={};s.insertAdjacentHTML("beforeend",""+u+" ");let v=s.querySelector(".cron-period select");v.addEventListener("change",this.periodChanged.bind(this)),v.addEventListener("change",this.changeEvent.bind(this)),s.insertAdjacentHTML("beforeend"," on the "+r+" "),m["dom"]=s.querySelector(".cron-block-dom"),s.insertAdjacentHTML("beforeend"," of "+o+" "),m["month"]=s.querySelector(".cron-block-month"),s.insertAdjacentHTML("beforeend"," at "+n+" minutes past the hour "),m["mins"]=s.querySelector(".cron-block-mins"),s.insertAdjacentHTML("beforeend"," on "+c+" "),m["dow"]=s.querySelector(".cron-block-dow"),s.insertAdjacentHTML("beforeend"," at "+i+" :"+n+" "),m["time"]=s.querySelector(".cron-block-time");for(let p in m)[].forEach.call(m[p].querySelectorAll("select"),function(t){t.addEventListener("change",this.changeEvent.bind(this))}.bind(this));this.blocks=m},gs.prototype.periodChanged=function(){let t=this.blocks,e=this.el.querySelector(".cron-period select"),a=e.options[e.selectedIndex].value;for(let s in t)t[s].style.display="none";if(gs.displayMatrix.hasOwnProperty(a)){let e=gs.displayMatrix[a];for(let a=0;a=s[i]))return}for(let o in gs.cronTypes)if(gs.cronTypes[o].test(t))return o};var ys=gs,xs={name:"RunCard",components:{TerminalCard:_s,codemirror:pa["codemirror"]},data(){return{scheduleSwitch:!1,pillarSwitch:!1,saveJobSwitch:!1,jobTemplateName:"",code:"# Type valid yaml to override pillars\n\n\n",cmOptions:{tabSize:4,mode:"yaml",theme:"made-of-code",line:!0,autoRefresh:!0,lineNumbers:!1,foldGutter:!0,gutters:["CodeMirror-foldgutter"]},tab:null,client:[{text:"Local",value:"local"},{text:"Runner",value:"runner"},{text:"Wheel",value:"wheel"}],selected_client:"local",client_async:!1,client_batch:!1,minions:[],functions:null,selectedFunction:null,description:null,batch:null,timeout:null,target_type:[{text:"glob",value:"glob"},{text:"pcre",value:"--pcre"},{text:"list",value:"--list"},{text:"grain",value:"--grain"},{text:"grain_pcre",value:"--grain-pcre"},{text:"pillar",value:"--pillar"},{text:"pillar_pcre",value:"--pillar-pcre"},{text:"range",value:"--range"},{text:"compound",value:"--compound"},{text:"nodegroup",value:"--nodegroup"}],selected_target_type:"glob",target:"",args:"",kwargs:"",results:"",termKey:0,cron:null,dateMenu:!1,timeMenu:!1,scheduleType:null,scheduleDate:(new Date).toISOString().substr(0,10),scheduleTime:(new Date).toISOString().substr(11,11).split(":").slice(0,-1).join(":"),scheduleName:null}},methods:{loadData(){this.$http.get("api/functions/").then(t=>{this.functions=t.data}),this.$http.get("api/minions/").then(t=>{t.data.forEach(t=>this.minions.push(t.minion_id))})},runJob(t=!1){let e="Running",a=`salt --client=${this.client_batch?"local_batch":this.selected_client}${this.client_async&&!this.client_batch?"_async":""}`;"local"===this.selected_client&&("glob"!==this.selected_target_type?a+=" "+this.selected_target_type+" "+this.target:a+=" "+this.target),a+=` ${this.selectedFunction.hasOwnProperty("name")?this.selectedFunction.name:this.selectedFunction}`,a+=`${this.args?` ${this.args}`:""}${!0===t?" test=True":""}${this.kwargs?` ${this.kwargs}`:""}`,a+=`${this.pillarSwitch?` pillar='${this.pillarRendered}'`:""}`,a+=`${this.client_batch&&this.batch?` -b ${this.batch}`:""}${this.timeout?` -t ${this.timeout}`:""}`;let s=new FormData;s.set("raw",!0),s.set("command",a),this.scheduleSwitch&&this.scheduleType&&(e="Scheduling",s.set("schedule_type",this.scheduleType),this.scheduleName&&s.set("schedule_name",this.scheduleName),"once"===this.scheduleType?s.set("schedule",this.scheduleDate+" "+this.scheduleTime+":00"):s.set("cron",this.cron.currentValue)),this.$toast(e+" "+a),this.$http.post("api/run/",s).then(t=>{let e=t.data;if(this.client_async&&"local"===this.selected_client){let t=new DOMParser,a=t.parseFromString(e,"text/html"),s=a.getElementsByClassName("ansi2html-content")[0].children,n=s[s.length-1].innerText;for(let e=1;e{return t.type===this.selected_client})},pillarRendered:function(){return`${JSON.stringify(null===ba.a.safeLoad(this.code)?{}:ba.a.safeLoad(this.code))}`}},mounted(){this.cron=new ys("#cron",{initial:"* * * * *"}),this.loadData(),this.target=this.$route.query.target,this.selectedFunction=!0===this.$route.query.hasOwnProperty("function")?{name:this.$route.query.function}:this.selectedFunction,this.args=this.$route.query.args}},ks=xs,Cs=(a("89c4"),a("ac7c")),ws=a("2b5d"),js=a("67b6"),Vs=a("43a6"),Ss=a("b73d"),Ts=a("c964"),$s=Object(u["a"])(ks,Ga,Wa,!1,null,"5dd162c9",null),Ds=$s.exports;m()($s,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCheckbox:Cs["a"],VCol:Ft["a"],VCombobox:ws["a"],VContainer:x["a"],VDatePicker:Kt["a"],VIcon:j["a"],VMenu:O["a"],VRadio:js["a"],VRadioGroup:Vs["a"],VRow:Mt["a"],VSelect:kt["a"],VSpacer:R["a"],VSwitch:Ss["a"],VTab:Xe["a"],VTabItem:Ze["a"],VTabs:ta["a"],VTabsItems:ea["a"],VTabsSlider:aa["a"],VTextField:A["a"],VTimePicker:Ts["b"]});var Os={name:"Run",components:{RunCard:Ds}},Es=Os,Rs=Object(u["a"])(Es,Ha,Ka,!1,null,"74868f95",null),As=Rs.exports;m()(Rs,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var Is=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("CommonSettings")],1)],1),a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("UserSettings")],1)],1)],1)},Ps=[],Fs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("Common Settings")]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"4",lg:"2","align-self":"center"}},[t._v("\n Parse modules from:\n ")]),a("v-col",{attrs:{sm:"4",lg:"2"}},[a("v-select",{attrs:{items:t.minions,"item-text":"minion_id","item-value":"minion_id",label:"Target"},model:{value:t.target,callback:function(e){t.target=e},expression:"target"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.target,color:"primary"},on:{click:t.parseModules}},[t._v("Submit")])],1),a("v-col",{attrs:{sm:"4",lg:"1","align-self":"center"}},[t._v("\n Alcali Version:\n ")]),a("v-col",{attrs:{sm:"4",lg:"2","align-self":"center"}},[a("span",[t._v(t._s(t.version))])])],1),a("v-row",[a("v-col",{attrs:{sm:"12",lg:"6"}},[a("v-row",[t._v("Minions Fields")]),t._l(t.uniqueMinionField,function(e){return a("v-row",{key:e.name},[a("v-col",{attrs:{lg:"4"}},[a("b",[t._v(t._s(e.name))])]),a("v-col",{attrs:{lg:"4"}},[t._v(t._s(e["function"]))]),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{color:"red",dark:""},on:{click:function(a){return t.deleteMinionsFields(e.name)}}},[t._v("Delete")])],1)],1)}),a("v-row",[a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Name","single-line":""},model:{value:t.minionsfields_name,callback:function(e){t.minionsfields_name=e},expression:"minionsfields_name"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-combobox",{attrs:{items:t.functions,"item-value":"name","item-text":"name",label:"Functions"},model:{value:t.minionsfields_value,callback:function(e){t.minionsfields_value=e},expression:"minionsfields_value"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.minionsfields_name||null==t.minionsfields_value,color:"primary"},on:{click:t.createMinionsFields}},[t._v("Create\n ")])],1)],1)],2),a("v-col",{attrs:{sm:"12",lg:"6"}},[a("v-row",[t._v("Custom Conformity")]),t._l(t.conformity,function(e){return a("v-row",{key:e.id},[a("v-col",{attrs:{lg:"4"}},[a("b",[t._v(t._s(e.name))])]),a("v-col",{attrs:{lg:"4"}},[t._v(t._s(e.function))]),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{color:"red",dark:""},on:{click:function(a){return t.deleteConformity(e.id)}}},[t._v("Delete")])],1)],1)}),a("v-row",[a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Name","single-line":""},model:{value:t.conformity_name,callback:function(e){t.conformity_name=e},expression:"conformity_name"}})],1),a("v-col",{attrs:{lg:"4"}},[a("v-text-field",{attrs:{label:"Function","single-line":""},model:{value:t.conformity_value,callback:function(e){t.conformity_value=e},expression:"conformity_value"}})],1),a("v-col",{attrs:{"align-self":"center"}},[a("v-btn",{attrs:{disabled:null==t.conformity_name||null===t.conformity_value,color:"primary"},on:{click:t.createConformity}},[t._v("Create\n ")])],1)],1)],2)],1)],1)],1)],1)],1)},Ms=[],Ls={name:"CommonSettings",data(){return{version:"unknown",minions:[],target:null,functions:null,minionsfields:[],minionsfields_name:null,minionsfields_value:null,conformity:null,conformity_name:null,conformity_value:null}},mounted(){this.loadData()},computed:{uniqueMinionField(){if(null!==this.minionsfields)return this.minionsfields.filter((t,e,a)=>e===a.findIndex(e=>e["function"]===t["function"]&&e.name===t.name))}},methods:{loadData(){this.$http.get("api/keys/").then(t=>{this.minions=t.data.filter(t=>"accepted"===t.status)}),this.$http.get("api/functions/").then(t=>{this.functions=t.data.filter(t=>"local"===t.type)}),this.$http.get("api/conformity/").then(t=>{this.conformity=t.data}),this.$http.get("api/minionsfields/").then(t=>{this.minionsfields=t.data}),this.$http.get("api/version/").then(t=>{this.version=t.data.version})},parseModules(){this.$toast("Parse module started");let t=new FormData;t.set("target",this.target),this.$http.post("api/settings/initdb",t).then(t=>{this.$toast(t.data.result)}).then(()=>{this.loadData()})},deleteConformity(t){let e=new FormData;e.set("id",t),this.$http.delete("/api/conformity/"+t).then(()=>{this.$toast("conformity deleted"),this.conformity.splice(this.conformity.indexOf(t),1)})},createConformity(){let t=new FormData;t.set("name",this.conformity_name),t.set("function",this.conformity_value),this.$http.post("/api/conformity/",t).then(()=>{this.conformity.push({name:this.conformity_name,function:this.conformity_value,id:this.conformity.length+2}),this.$toast("conformity created"),this.conformity_name=null,this.conformity_value=null})},createMinionsFields(){let t=new FormData;t.set("name",this.minionsfields_name),t.set("function",this.minionsfields_value.name),t.set("value","{}"),this.$http.post("/api/minionsfields/",t).then(()=>{this.minionsfields.push({name:this.minionsfields_name,function:this.minionsfields_value.name}),this.$toast("minions fields created"),this.minionsfields_name=null,this.minionsfields_value=null})},deleteMinionsFields(t){let e=new FormData;e.set("name",t),this.$http.post("/api/minionsfields/delete_field/",e).then(e=>{this.$toast(e.data.result),this.minionsfields=this.minionsfields.filter(e=>e.name!==t)})}}},Ns=Ls,Js=Object(u["a"])(Ns,Fs,Ms,!1,null,"ba67d60c",null),Us=Js.exports;m()(Js,{VBtn:_["a"],VCard:g["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Ft["a"],VCombobox:ws["a"],VContainer:x["a"],VRow:Mt["a"],VSelect:kt["a"],VTextField:A["a"]});var zs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("User Settings")]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{lg:"2"}},[a("span",[t._v("Jobs Notifications")]),t._l(t.notifs,function(e,s){return a("div",{key:s},[a("v-switch",{attrs:{label:s,color:"primary","hide-details":""},model:{value:t.notifs[s],callback:function(e){t.$set(t.notifs,s,e)},expression:"notifs[name]"}})],1)})],2),a("v-col",{attrs:{lg:"2"}},[a("span",[t._v("Max Notifications")]),a("v-text-field",{attrs:{type:"number"},model:{value:t.max_notifs,callback:function(e){t.max_notifs=e},expression:"max_notifs"}})],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary"},on:{click:t.updateUserSettings}},[t._v("Submit")])],1)],1)],1)},Bs=[],qs={name:"UserSettings",data(){return{switch1:!0,switch2:!1,notifs:{created:!1,published:!0,returned:!1,event:!1},settings:null,max_notifs:null}},methods:{loadData(){this.$http.get("api/userssettings/"+this.$store.getters.user_id+"/").then(t=>{this.settings=t.data,this.max_notifs=t.data.max_notifs,Object.keys(this.notifs).forEach(t=>{this.notifs[t]=this.settings["notifs_"+t]})})},updateUserSettings(){let t={max_notifs:this.max_notifs};Object.keys(this.notifs).forEach(e=>{t["notifs_"+e]=this.notifs[e]}),this.$http.patch("api/userssettings/"+this.$store.getters.user_id+"/",t).then(t=>{this.$toast("user settings updated")})}},mounted(){this.loadData()}},Hs=qs,Ks=Object(u["a"])(Hs,zs,Bs,!1,null,"50109ca2",null),Gs=Ks.exports;m()(Ks,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"],VSpacer:R["a"],VSwitch:Ss["a"],VTextField:A["a"]});var Ws={name:"Settings",components:{UserSettings:Gs,CommonSettings:Us}},Ys=Ws,Qs=Object(u["a"])(Ys,Is,Ps,!1,null,"ef54e078",null),Xs=Qs.exports;m()(Qs,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var Zs=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("ConformityTable")],1)],1)],1)},tn=[],en=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Conformity\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion_id","item-key":"minion_id",headers:t.headers,items:t.conformity,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",attrs:{text:"",small:"",to:"/conformity/"+s.minion_id}},[t._v(t._s(s.minion_id))])]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity.toString())+"\n ")])]}},{key:"item.succeeded",fn:function(e){var s=e.item;return[null!=s.succeeded?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"green","text-color":"base"}},[t._v("\n "+t._s(s.succeeded)+"\n ")]):t._e()]}},{key:"item.unchanged",fn:function(e){var s=e.item;return[null!=s.unchanged?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"orange","text-color":"base"}},[t._v("\n "+t._s(s.unchanged)+"\n ")]):t._e()]}},{key:"item.failed",fn:function(e){var s=e.item;return[null!=s.failed?a("v-chip",{staticClass:"ma-2",attrs:{label:"",outlined:"",color:"red","text-color":"base"}},[t._v("\n "+t._s(s.failed)+"\n ")]):t._e()]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"blue",tile:"",dark:"",to:"/conformity/"+s.minion_id}},[t._v("\n detail\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:"",to:"/run/?target="+s.minion_id+"&function=state.apply"}},[t._v("\n highstate\n ")])],1)]}}])})],1)],1)},an=[],sn={name:"ConformityTable",data(){return{search:"",headers:[],conformity:[],loading:!0}},mounted(){this.loadData()},methods:{loadData(){this.$http.get("api/conformity/render/").then(t=>{this.headers=t.data.name,this.headers.push({text:"Actions",value:"action",sortable:!1}),this.conformity=t.data.data,this.loading=!1})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}}},nn=sn,rn=Object(u["a"])(nn,en,an,!1,null,"01c8285c",null),on=rn.exports;m()(rn,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ln={name:"Conformity",components:{ConformityTable:on}},cn=ln,dn=Object(u["a"])(cn,Zs,tn,!1,null,"090bf60e",null),un=dn.exports;m()(dn,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var hn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12",lg:"4"}},[a("ConformityCard",{attrs:{minion_id:t.minion_id,conformity:t.conformity,custom_conformity:t.custom_conformity}})],1),a("v-col",{attrs:{sm:"12",lg:"8"}},[a("ConformityDetailCard",{attrs:{succeeded:t.succeeded,unchanged:t.unchanged,failed:t.failed}})],1)],1)],1)},mn=[],vn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Highstate Conformity\n "),a("v-spacer"),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.succeeded).length>0,expression:"Object.keys(succeeded).length>0"}],staticClass:"mb-0 mt-0",attrs:{color:"green",label:"Succeeded: "+Object.keys(t.succeeded).length},model:{value:t.succeeded_checkbox,callback:function(e){t.succeeded_checkbox=e},expression:"succeeded_checkbox"}}),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.unchanged).length>0,expression:"Object.keys(unchanged).length>0"}],staticClass:"ml-3 mb-0 mt-0",attrs:{color:"orange",label:"Unchanged: "+Object.keys(t.unchanged).length},model:{value:t.unchanged_checkbox,callback:function(e){t.unchanged_checkbox=e},expression:"unchanged_checkbox"}}),a("v-checkbox",{directives:[{name:"show",rawName:"v-show",value:Object.keys(t.failed).length>0,expression:"Object.keys(failed).length>0"}],staticClass:"ml-3 mb-0 mt-0",attrs:{color:"red",label:"Failed: "+Object.keys(t.failed).length},model:{value:t.failed_checkbox,callback:function(e){t.failed_checkbox=e},expression:"failed_checkbox"}})],1),a("v-expansion-panels",t._l(t.succeeded,function(e,s){return t.succeeded_checkbox?a("v-expansion-panel",{key:s,attrs:{dark:""}},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"green"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1),a("v-expansion-panels",t._l(t.unchanged,function(e,s){return t.unchanged_checkbox?a("v-expansion-panel",{key:s},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"orange"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1),a("v-expansion-panels",t._l(t.failed,function(e,s){return t.failed_checkbox?a("v-expansion-panel",{key:s},[a("v-expansion-panel-header",{scopedSlots:t._u([{key:"actions",fn:function(){return[a("v-icon",{attrs:{color:"red"}},[t._v("$vuetify.icons.expand")])]},proxy:!0}],null,!0)},[t._v(t._s(s)+"\n ")]),a("v-expansion-panel-content",{domProps:{innerHTML:t._s(e)}})],1):t._e()}),1)],1)],1)},pn=[],fn={name:"ConformityDetailCard",props:["succeeded","unchanged","failed"],data(){return{expand_search:!1,succeeded_checkbox:!0,unchanged_checkbox:!0,failed_checkbox:!0}}},bn=fn,_n=(a("cced"),a("cd55")),gn=a("49e2"),yn=a("c865"),xn=a("0393"),kn=Object(u["a"])(bn,vn,pn,!1,null,"69fc5fbb",null),Cn=kn.exports;m()(kn,{VCard:g["a"],VCardTitle:y["c"],VCheckbox:Cs["a"],VContainer:x["a"],VExpansionPanel:_n["a"],VExpansionPanelContent:gn["a"],VExpansionPanelHeader:yn["a"],VExpansionPanels:xn["a"],VIcon:j["a"],VSpacer:R["a"]});var wn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v(t._s(t.minion_id))]),a("v-simple-table",[a("tbody",[a("tr",[a("td",[t._v("Highstate")]),a("td",{staticClass:"text-right"},[a("v-chip",{attrs:{color:t.boolRepr(t.conformity),dark:""}},[t._v(t._s(t.valRepr(t.conformity)))])],1)])]),t._l(t.custom_conformity,function(e){return a("tbody",{key:e.key},t._l(e,function(e,s){return a("tr",{key:s},[a("td",[t._v(t._s(s))]),a("td",{staticClass:"text-right"},[t.isBool(e)?a("v-chip",{attrs:{color:t.boolRepr(t.conformity),dark:""}},[t._v(t._s(t.valRepr(t.conformity)))]):a("span",[t._v(t._s(t.valRepr(e)))])],1)])}),0)})],2)],1)],1)},jn=[],Vn={name:"ConformityCard",props:["minion_id","conformity","custom_conformity"],data(){return{}},methods:{boolRepr(t){return!0===t?"green":!1===t?"red":"primary"},isBool(t){return"boolean"===typeof t},valRepr(t){return null===t?"unknown":t}}},Sn=Vn,Tn=Object(u["a"])(Sn,wn,jn,!1,null,"71cc8090",null),$n=Tn.exports;m()(Tn,{VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VSimpleTable:ut["a"]});var Dn={name:"ConformityDetail",props:["minion_id"],components:{ConformityCard:$n,ConformityDetailCard:Cn},data(){return{conformity:"",succeeded:{},unchanged:{},failed:{},custom_conformity:[]}},mounted(){this.loadConformity()},methods:{loadConformity(){this.$http.get("api/minions/"+this.minion_id+"/conformity_detail/").then(t=>{this.conformity=t.data.conformity,this.custom_conformity=t.data.custom_conformity,this.succeeded=t.data.succeeded,this.unchanged=t.data.unchanged,this.failed=t.data.failed})}}},On=Dn,En=Object(u["a"])(On,hn,mn,!1,null,"bc290f46",null),Rn=En.exports;m()(En,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var An=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("UserCard")],1)},In=[],Pn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("v-card",[a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"username",headers:t.headers,items:t.users},scopedSlots:t._u([{key:"top",fn:function(){return[a("v-toolbar",{attrs:{flat:""}},[a("v-toolbar-title",{staticClass:"headline"},[t._v("Users")]),a("div",{staticClass:"flex-grow-1"}),a("v-dialog",{attrs:{"max-width":"500px"},scopedSlots:t._u([{key:"activator",fn:function(e){var s=e.on;return[a("v-btn",t._g({staticClass:"mb-2",attrs:{color:"primary",dark:""},on:{click:function(e){t.user={}}}},s),[t._v("Create")])]}}]),model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[a("v-card",[a("v-card-title",[t._v(t._s(!0===t.editing?"Update User":"Create User"))]),a("v-card-text",[a("v-container",[a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Username",rules:t.userRules,required:""},model:{value:t.user.username,callback:function(e){t.$set(t.user,"username",e)},expression:"user.username"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Email",rules:t.emailRules,required:""},model:{value:t.user.email,callback:function(e){t.$set(t.user,"email",e)},expression:"user.email"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"First Name"},model:{value:t.user.first_name,callback:function(e){t.$set(t.user,"first_name",e)},expression:"user.first_name"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{label:"Last Name"},model:{value:t.user.last_name,callback:function(e){t.$set(t.user,"last_name",e)},expression:"user.last_name"}})],1)],1),a("v-row",[a("v-col",{attrs:{lg:"6"}},[a("v-text-field",{attrs:{"append-icon":t.show?"visibility":"visibility_off",type:t.show?"text":"password",name:"input-10-1",label:"Password",counter:""},on:{"click:append":function(e){t.show=!t.show}},model:{value:t.user.password,callback:function(e){t.$set(t.user,"password",e)},expression:"user.password"}})],1),a("v-col",{attrs:{lg:"6"}},[a("v-checkbox",{attrs:{label:"Staff User"},model:{value:t.user.is_staff,callback:function(e){t.$set(t.user,"is_staff",e)},expression:"user.is_staff"}})],1)],1)],1)],1),a("v-card-actions",[a("v-spacer"),t.editing?a("v-btn",{attrs:{color:"primary"},on:{click:t.resetUser}},[t._v("Discard")]):t._e(),t.editing?a("v-btn",{attrs:{color:"warning"},on:{click:t.updateUser}},[t._v("Update")]):t._e(),t.editing?t._e():a("v-btn",{attrs:{color:"warning",disabled:null==t.user.username||""==t.user.email},on:{click:t.createUser}},[t._v("Create\n ")])],1)],1)],1)],1)]},proxy:!0},{key:"item.is_staff",fn:function(e){var s=e.item;return[s.is_staff?a("v-chip",{attrs:{color:"primary",dark:""}},[t._v(t._s(s.is_staff))]):t._e()]}},{key:"item.token",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"primary",tile:"",dark:""},on:{click:function(e){return t.showToken(s)}}},[t._v("\n view\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:""},on:{click:function(e){return t.manageToken("renew",s)}}},[t._v("\n renew\n ")]),a("v-btn",{attrs:{small:"",color:"red",tile:"",dark:"",disabled:String(s.id)===t.currentUserId},on:{click:function(e){return t.manageToken("revoke",s)}}},[t._v("\n revoke\n ")])],1)]}},{key:"item.date_joined",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.date_joined).toLocaleString("en-GB"))+"\n ")]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"orange",tile:"",dark:""},on:{click:function(e){return t.editUser(s)}}},[t._v("\n update\n ")]),a("v-btn",{attrs:{small:"",color:"red",tile:"",dark:"",disabled:String(s.id)===t.currentUserId},on:{click:function(e){return t.confirmDelete(s)}}},[t._v("\n delete\n ")])],1)]}}])})],1)],1)],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialogDelete,callback:function(e){t.dialogDelete=e},expression:"dialogDelete"}},[a("v-card",[a("v-card-title",{staticClass:"headline red",attrs:{"primary-title":""}},[t._v("\n Delete "+t._s(t.user.username)+" ?\n ")]),a("v-card-text",[a("br"),t._v("\n this action is irreversible.\n ")]),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialogDelete=!1}}},[t._v("\n close\n ")]),a("v-btn",{attrs:{color:"red",text:""},on:{click:function(e){return t.deleteUser(t.user.id)}}},[t._v("\n delete\n ")])],1)],1)],1)],1),a("div",{staticClass:"text-center"},[a("v-dialog",{attrs:{width:"500"},model:{value:t.dialogToken,callback:function(e){t.dialogToken=e},expression:"dialogToken"}},[a("v-card",[a("v-card-title",{staticClass:"headline primary",attrs:{"primary-title":""}},[t._v("\n "+t._s(t.user.username)+" Token\n ")]),t.user.user_settings?a("v-card-text",[a("br"),t._v("\n "+t._s(t.user.user_settings.token)+"\n ")]):t._e(),a("v-divider"),a("v-card-actions",[a("v-spacer"),a("v-btn",{attrs:{color:"primary",text:""},on:{click:function(e){t.dialogToken=!1}}},[t._v("\n close\n ")])],1)],1)],1)],1)],1)},Fn=[],Mn={name:"UserCard",data(){return{search:"",headers:[{text:"Username",value:"username"},{text:"First Name",value:"first_name"},{text:"Last Name",value:"last_name"},{text:"Email",value:"email"},{text:"Staff",value:"is_staff"},{text:"Token",value:"token",sortable:!1},{text:"Date Joined",value:"date_joined"},{text:"Actions",value:"action",sortable:!1}],userRules:[t=>!!t||"Username is required"],emailRules:[t=>!!t||"E-mail is required",t=>/.+@.+/.test(t)||"E-mail must be valid"],users:[],user:{},editing:!1,show:!1,dialog:!1,dialogDelete:!1,dialogToken:!1}},mounted(){this.getUsers()},computed:{currentUserId(){return this.$store.state.id}},methods:{getUsers(){this.$http.get("api/users/").then(t=>{this.users=t.data})},createUser(){let t=new FormData;Object.keys(this.user).forEach(e=>t.append(e,this.user[e])),this.$http.post("api/users/",t).then(()=>{this.$toast("User created"),this.dialog=!1}).then(()=>{this.user={},this.getUsers()})},updateUser(){this.editing=!1;let t=new FormData;t.set("username",this.user.username),t.set("email",this.user.email),t.set("first_name",this.user.first_name),t.set("last_name",this.user.last_name),t.set("password",this.user.password),t.set("is_staff",this.user.is_staff),this.$http.patch("api/users/"+this.user.id+"/",t).then(()=>{this.$toast("User updated"),this.dialog=!1,this.user={}}).then(()=>{this.getUsers()})},showToken(t){this.dialogToken=!0,this.user=t},manageToken(t,e){let a=new FormData;a.set("action",t),this.$http.post("api/users/"+e.id+"/manage_token/",a).then(t=>{this.$toast(t.data.result)}).then(()=>{this.getUsers()})},confirmDelete(t){this.dialogDelete=!0,this.user=t},deleteUser(t){this.$http.delete("api/users/"+t).then(()=>{this.dialogDelete=!1,this.$toast("User deleted")}).then(()=>this.getUsers())},editUser(t){this.dialog=!0,this.editing=!0,this.user=t},resetUser(){this.dialog=!1,this.editing=!1,this.user={}}}},Ln=Mn,Nn=Object(u["a"])(Ln,Pn,Fn,!1,null,"7dccc9a6",null),Jn=Nn.exports;m()(Nn,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCheckbox:Cs["a"],VChip:$t["a"],VCol:Ft["a"],VContainer:x["a"],VDataTable:Ht["a"],VDialog:Le["a"],VDivider:C["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"],VToolbar:ie["a"],VToolbarTitle:I["a"]});var Un={name:"Users",components:{UserCard:Jn}},zn=Un,Bn=Object(u["a"])(zn,An,In,!1,null,"68ff4932",null),qn=Bn.exports;m()(Bn,{VContainer:x["a"]});var Hn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{sm:"12"}},[a("ScheduleTable",{key:t.refreshKey}),t.fabs?a("Fab",{attrs:{fabs:t.fabs},on:{fab_action:t.fabAction}}):t._e()],1)],1)],1)},Kn=[],Gn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Schedules\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"minion",headers:t.headers,items:t.schedules,search:t.search,loading:t.loading},scopedSlots:t._u([{key:"item.enabled",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.enabled),dark:""}},[t._v(t._s(s.enabled))])]}},{key:"item.action",fn:function(e){var s=e.item;return[a("div",{staticClass:"text-center"},[a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:s.enabled?"orange":"green",tile:"",dark:""},on:{click:function(e){return t.manageSchedule(s.enabled?"disable_job":"enable_job",s.name,s.minion)}}},[t._v("\n "+t._s(s.enabled?"disable":"enable")+"\n ")]),a("v-btn",{staticClass:"ma-2",attrs:{small:"",color:"red",tile:"",dark:""},on:{click:function(e){return t.manageSchedule("delete",s.name,s.minion)}}},[t._v("\n delete\n ")])],1)]}}])})],1)],1)},Wn=[],Yn={name:"ScheduleTable",data(){return{search:"",headers:[],schedules:[],loading:!0}},methods:{loadData(){this.loading=!1,this.$http.get("api/schedules/").then(t=>{if(this.schedules=t.data,this.schedules.length>0){let t=new Set(["minion","name","function"]);this.schedules.forEach(e=>{Object.keys(e).forEach(e=>{t.add(e)})}),t.delete("id"),t.forEach(t=>{this.headers.push({text:t,value:t})}),this.headers.push({text:"action",value:"action"})}})},manageSchedule(t,e,a){this.$toast(`${t} on ${a} for job ${e}`);let s=new FormData;s.set("action",t),s.set("name",e),s.set("minion",a),this.$http.post("api/schedules/manage/",s).then(()=>{this.$toast(`${t} on ${a} for job ${e}: done`)}).then(()=>{this.headers=[],this.schedules=[],this.loadData()})},boolRepr(t){return!0===t?"green":!1===t?"red":"primary"}},mounted(){this.loadData()}},Qn=Yn,Xn=Object(u["a"])(Qn,Gn,Wn,!1,null,"16fe8902",null),Zn=Xn.exports;m()(Xn,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VContainer:x["a"],VDataTable:Ht["a"],VSpacer:R["a"],VTextField:A["a"]});var ti={name:"Schedules",components:{Fab:Te,ScheduleTable:Zn},data:()=>({fabs:[{color:"pink",action:"refreshSchedules",icon:"refresh",tooltip:"Refresh schedules"}],refreshKey:0}),methods:{fabAction(t){this[t]()},refreshSchedules(){this.$toast("refreshing schedules"),this.$http.post("/api/schedules/refresh/").then(()=>{this.refreshKey+=1,this.$toast("schedules refreshed")}).catch(function(t){alert(t)})}}},ei=ti,ai=Object(u["a"])(ei,Hn,Kn,!1,null,"56af01f4",null),si=ai.exports;m()(ai,{VCol:Ft["a"],VContainer:x["a"],VRow:Mt["a"]});var ni=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[a("v-col",{attrs:{cols:"4",offset:"4"}},[a("v-card",[a("v-card-title",{staticClass:"black white--text subheading",attrs:{"primary-title":""}},[a("span",{staticClass:"title"},[t._v("Oops")])]),a("v-card-text",{staticClass:"display-1 ma-7 text-center"},[t._v("\n 404. There is no page here.\n ")]),a("v-card-actions",[a("v-btn",{staticClass:"primary darken-3 white--text",attrs:{text:"",to:"/"}},[a("v-icon",{attrs:{left:""},domProps:{textContent:t._s("mdi-arrow-left")}}),t._v("\n Back\n ")],1)],1)],1)],1)],1)],1)},ii=[],ri={name:"NotFound"},oi=ri,li=Object(u["a"])(oi,ni,ii,!1,null,"06e44549",null),ci=li.exports;m()(li,{VBtn:_["a"],VCard:g["a"],VCardActions:y["a"],VCardText:y["b"],VCardTitle:y["c"],VCol:Ft["a"],VContainer:x["a"],VIcon:j["a"],VRow:Mt["a"]});var di=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("v-container",[a("v-row",[0===t.jobs.length&&0===t.minions.length?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("p",{staticClass:"display-2 text-center"},[t._v("Sorry, no results...")])])],1):t._e(),t.jobs.length>0?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Jobs\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.job_search,callback:function(e){t.job_search=e},expression:"job_search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{"sort-by":"jid","sort-desc":"",headers:t.jobs_headers,items:t.jobs,search:t.search,"items-per-page":5},scopedSlots:t._u([{key:"item.jid",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",class:s.jid.includes(t.query)?"red":"",attrs:{text:"",small:"",to:"/jobs/"+s.jid+"/"+s.id}},[t._v(t._s(s.jid)+"\n ")])]}},{key:"item.fun",fn:function(e){var s=e.item;return[a("span",{class:s.fun.includes(t.query)?"red":""},[t._v(t._s(s.fun))])]}},{key:"item.arguments",fn:function(e){var a=e.item;return[t._v("\n "+t._s(a.arguments.length>20?a.arguments.slice(0,20)+"...":a.arguments)+"\n ")]}},{key:"item.success",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.success),dark:""}},[t._v(t._s(t.boolText(s.success)))])]}},{key:"item.alter_time",fn:function(e){var a=e.item;return[t._v("\n "+t._s(new Date(a.alter_time).toLocaleString("en-GB"))+"\n ")]}}],null,!1,1135029737)})],1)],1)],1):t._e(),t.minions.length>0?a("v-col",{attrs:{sm:"12"}},[a("v-container",[a("v-card",[a("v-card-title",[t._v("\n Minions\n "),a("v-spacer"),a("v-text-field",{attrs:{"append-icon":"search",label:"Search","single-line":"","hide-details":""},model:{value:t.search,callback:function(e){t.search=e},expression:"search"}})],1),a("v-data-table",{staticClass:"elevation-1",attrs:{headers:t.minions_headers,items:t.minions,"items-per-page":5},scopedSlots:t._u([{key:"item.minion_id",fn:function(e){var s=e.item;return[a("v-btn",{staticClass:"text-none",class:s.minion_id.includes(t.query)?"red":"",attrs:{text:"",small:"",to:"/minions/"+s.minion_id}},[t._v(t._s(s.minion_id)+"\n ")])]}},{key:"item.conformity",fn:function(e){var s=e.item;return[a("v-chip",{attrs:{color:t.boolRepr(s.conformity),dark:""}},[t._v(t._s(null==s.conformity?"unknown":s.conformity)+"\n ")])]}},{key:"item.last_job",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_job?"":new Date(a.last_job).toLocaleString("en-GB"))+"\n ")]}},{key:"item.last_highstate",fn:function(e){var a=e.item;return[t._v("\n "+t._s(null===a.last_highstate?"":new Date(a.last_highstate).toLocaleString("en-GB"))+"\n ")]}}],null,!1,771680795)})],1)],1)],1):t._e()],1)],1)},ui=[],hi={name:"Search",data(){return{query:null,jobs:[],jobs_headers:[{text:"Jid",value:"jid"},{text:"Target",value:"id"},{text:"Function",value:"fun"},{text:"Arguments",value:"arguments"},{text:"User",value:"user"},{text:"Status",value:"success"},{text:"Date",value:"alter_time"}],job_search:"",minions:[],minions_headers:[{text:"Minion Id",value:"minion_id"},{text:"Highstate Conformity",value:"conformity"},{text:"F.Q.D.N",value:"fqdn"},{text:"O.S",value:"os"},{text:"O.S Version",value:"oscodename"},{text:"Kernel",value:"kernelrelease"},{text:"Last Job",value:"last_job"},{text:"Last Highstate",value:"last_highstate"}]}},created(){this.query=this.$route.query.q},mounted(){this.searchBar()},methods:{searchBar(){this.$http.get("api/search/?q="+this.query).then(t=>{function e(t){return t.forEach(t=>{let e=JSON.parse(t.grain);for(let a in e)t[a]=e[a]}),t}this.jobs=t.data.jobs,this.minions=e(t.data.minions)})},boolRepr(t){return!0===t?"green":"red"},boolText(t){return!0===t?"success":"failed"}}},mi=hi,vi=Object(u["a"])(mi,di,ui,!1,null,"f2f59722",null),pi=vi.exports;m()(vi,{VBtn:_["a"],VCard:g["a"],VCardTitle:y["c"],VChip:$t["a"],VCol:Ft["a"],VContainer:x["a"],VDataTable:Ht["a"],VRow:Mt["a"],VSpacer:R["a"],VTextField:A["a"]}),s["a"].use(tt["a"]);const fi=new tt["a"]({routes:[{path:"/",name:"home",component:Zt},{path:"/minions",name:"minions",component:qe},{path:"/minions/:minion_id",name:"minion_detail",component:Va,props:!0},{path:"/jobs",name:"jobs",component:me},{path:"/jobs/:jid/:minion_id",name:"job_detail",component:Ea,props:!0},{path:"/run",name:"run",component:As},{path:"/keys",name:"keys",component:Ee},{path:"/events",name:"events",component:qa},{path:"/conformity",name:"conformity",component:un},{path:"/conformity/:minion_id",name:"conformity_detail",component:Rn,props:!0},{path:"/schedules",name:"schedules",component:si},{path:"/users",name:"users",component:qn},{path:"/settings",name:"settings",component:Xs},{path:"/search",name:"search",component:pi},{path:"/login",name:"Login",component:oe,meta:{plainLayout:!0}},{path:"*",component:ci}]});fi.beforeEach((t,e,a)=>{nt.getters.isLoggedIn||"/login"===t.path?"/login"===t.path&&nt.getters.isLoggedIn?a("/"):a():a("/login")});var bi=fi,_i=a("04e1"),gi=a.n(_i);s["a"].config.productionTip=!1,s["a"].prototype.$http=st.a,s["a"].prototype.$http.defaults.xsrfCookieName="csrftoken",s["a"].prototype.$http.defaults.xsrfHeaderName="X-CSRFToken",s["a"].prototype.$http.defaults.headers.common["Content-Type"]="application/json";const yi=localStorage.getItem("token");yi&&(s["a"].prototype.$http.defaults.headers.common.Authorization=`Bearer ${yi}`,s["a"].prototype.$http.defaults.withCredentials=!0);let xi=!1,ki=[];const Ci=(t,e=null)=>{ki.forEach(a=>{t?a.reject(t):a.resolve(e)}),ki=[]};s["a"].prototype.$http.interceptors.request.use(t=>{const e=t,a=window.localStorage.getItem("refresh");return a&&gi()(a).exp-Math.floor(Date.now()/1e3)<60?nt.dispatch("logout").then(()=>{return bi.push({path:"/login",name:"Login"})}):e},t=>{return Promise.reject(t)}),s["a"].prototype.$http.interceptors.response.use(function(t){return t},function(t){const e=t.config;if(401===t.response.status&&!e._retry){if(xi)return new Promise(function(t,e){ki.push({resolve:t,reject:e})}).then(t=>{return e.headers["Authorization"]="Bearer "+t,s["a"].prototype.$http(e)}).catch(t=>{return t});e._retry=!0,xi=!0;const t=window.localStorage.getItem("refresh");return new Promise(function(a,n){s["a"].prototype.$http.post("/api/token/refresh/",{refresh:t}).then(({data:t})=>{window.localStorage.setItem("access",t.access),s["a"].prototype.$http.defaults.headers.common["Authorization"]="Bearer "+t.access,e.headers["Authorization"]="Bearer "+t.access,Ci(null,t.access),a(s["a"].prototype.$http(e))}).catch(t=>{Ci(t,null),n(t)}).then(()=>{xi=!1})})}return Promise.reject(t)}),new s["a"]({vuetify:Z,router:bi,store:nt,render:t=>t(G)}).$mount("#app")},6684:function(t,e,a){},"69a2":function(t,e,a){},"89c4":function(t,e,a){"use strict";var s=a("69a2"),n=a.n(s);n.a},a084:function(t,e,a){"use strict";var s=a("6684"),n=a.n(s);n.a},a655:function(t,e,a){},cced:function(t,e,a){"use strict";var s=a("1775"),n=a.n(s);n.a},ce2f:function(t,e,a){"use strict";var s=a("a655"),n=a.n(s);n.a},e100:function(t,e,a){},efe9:function(t,e,a){}});
-//# sourceMappingURL=app.b0501687.js.map
\ No newline at end of file
diff --git a/dist/static/js/app.b0501687.js.map b/dist/static/js/app.b0501687.js.map
deleted file mode 100644
index 7f8f806f..00000000
--- a/dist/static/js/app.b0501687.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9745","webpack:///./src/components/MinionDetailCard.vue?9d1e","webpack:///./src/components/ConformityChart.vue?f251","webpack:///./src/components/core/Layout.vue?d05e","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?a0a5","webpack:///./src/components/core/Layout.vue?33f6","webpack:///./src/components/mixins/helpersMixin.js","webpack:///src/components/core/Layout.vue","webpack:///./src/components/core/Layout.vue?035b","webpack:///./src/components/core/Layout.vue","webpack:///./src/components/core/SimpleLayout.vue?319a","webpack:///src/components/core/SimpleLayout.vue","webpack:///./src/components/core/SimpleLayout.vue?af82","webpack:///./src/components/core/SimpleLayout.vue","webpack:///src/App.vue","webpack:///./src/App.vue?d7d8","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/store.js","webpack:///./src/views/Home.vue?cbda","webpack:///./src/components/KeysStatusCard.vue?9800","webpack:///src/components/KeysStatusCard.vue","webpack:///./src/components/KeysStatusCard.vue?d973","webpack:///./src/components/KeysStatusCard.vue","webpack:///./src/components/JobsChartCard.vue?1aef","webpack:///./src/assets/js/utils/chart-line-gradient.js","webpack:///src/components/JobsChartCard.vue","webpack:///./src/components/JobsChartCard.vue?3f73","webpack:///./src/components/JobsChartCard.vue","webpack:///./src/components/AlcaliStatusCard.vue?6bba","webpack:///src/components/AlcaliStatusCard.vue","webpack:///./src/components/AlcaliStatusCard.vue?647a","webpack:///./src/components/AlcaliStatusCard.vue","webpack:///./src/components/ConformityChart.vue?5fd5","webpack:///src/components/ConformityChart.vue","webpack:///./src/components/ConformityChart.vue?eb15","webpack:///./src/components/ConformityChart.vue","webpack:///./src/components/JobsTable.vue?f3f8","webpack:///src/components/JobsTable.vue","webpack:///./src/components/JobsTable.vue?87e5","webpack:///./src/components/JobsTable.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?3ac6","webpack:///./src/views/Home.vue","webpack:///./src/views/Login.vue?ab9a","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?7320","webpack:///./src/views/Login.vue","webpack:///./src/views/Jobs.vue?738c","webpack:///src/views/Jobs.vue","webpack:///./src/views/Jobs.vue?4c05","webpack:///./src/views/Jobs.vue","webpack:///./src/views/Keys.vue?9a8c","webpack:///./src/components/KeysTable.vue?2c11","webpack:///src/components/KeysTable.vue","webpack:///./src/components/KeysTable.vue?c374","webpack:///./src/components/KeysTable.vue","webpack:///./src/components/core/Fab.vue?92c2","webpack:///src/components/core/Fab.vue","webpack:///./src/components/core/Fab.vue?cec0","webpack:///./src/components/core/Fab.vue","webpack:///src/views/Keys.vue","webpack:///./src/views/Keys.vue?3eed","webpack:///./src/views/Keys.vue","webpack:///./src/views/Minions.vue?063c","webpack:///./src/components/MinionsTable.vue?b7e9","webpack:///src/components/MinionsTable.vue","webpack:///./src/components/MinionsTable.vue?bb3b","webpack:///./src/components/MinionsTable.vue","webpack:///src/views/Minions.vue","webpack:///./src/views/Minions.vue?8bb8","webpack:///./src/views/Minions.vue","webpack:///./src/views/MinionDetail.vue?ef6a","webpack:///./src/components/InfosCard.vue?0ef7","webpack:///src/components/InfosCard.vue","webpack:///./src/components/InfosCard.vue?6266","webpack:///./src/components/InfosCard.vue","webpack:///./src/components/NetworkCard.vue?faf2","webpack:///src/components/NetworkCard.vue","webpack:///./src/components/NetworkCard.vue?4bc0","webpack:///./src/components/NetworkCard.vue","webpack:///./src/components/MinionDetailCard.vue?82dc","webpack:///src/components/MinionDetailCard.vue","webpack:///./src/components/MinionDetailCard.vue?7aef","webpack:///./src/components/MinionDetailCard.vue","webpack:///src/views/MinionDetail.vue","webpack:///./src/views/MinionDetail.vue?2696","webpack:///./src/views/MinionDetail.vue","webpack:///./src/views/JobDetail.vue?2a53","webpack:///src/views/JobDetail.vue","webpack:///./src/views/JobDetail.vue?ccdb","webpack:///./src/views/JobDetail.vue","webpack:///./src/views/Events.vue?bf68","webpack:///./src/components/EventsTable.vue?37f0","webpack:///src/components/EventsTable.vue","webpack:///./src/components/EventsTable.vue?c21d","webpack:///./src/components/EventsTable.vue","webpack:///src/views/Events.vue","webpack:///./src/views/Events.vue?1bc8","webpack:///./src/views/Events.vue","webpack:///./src/views/Run.vue?3f6b","webpack:///./src/components/RunCard.vue?aab8","webpack:///./src/components/TerminalCard.vue?5d77","webpack:///./src/assets/js/local-echo/HistoryController.js","webpack:///./src/assets/js/local-echo/Utils.js","webpack:///./src/assets/js/local-echo/LocalEchoController.js","webpack:///src/components/TerminalCard.vue","webpack:///./src/components/TerminalCard.vue?2355","webpack:///./src/components/TerminalCard.vue","webpack:///./src/assets/js/utils/cron-ui.js","webpack:///src/components/RunCard.vue","webpack:///./src/components/RunCard.vue?60b2","webpack:///./src/components/RunCard.vue","webpack:///src/views/Run.vue","webpack:///./src/views/Run.vue?90f1","webpack:///./src/views/Run.vue","webpack:///./src/views/Settings.vue?ccad","webpack:///./src/components/CommonSettings.vue?4cd2","webpack:///src/components/CommonSettings.vue","webpack:///./src/components/CommonSettings.vue?8e82","webpack:///./src/components/CommonSettings.vue","webpack:///./src/components/UserSettings.vue?34f8","webpack:///src/components/UserSettings.vue","webpack:///./src/components/UserSettings.vue?67d2","webpack:///./src/components/UserSettings.vue","webpack:///src/views/Settings.vue","webpack:///./src/views/Settings.vue?bf73","webpack:///./src/views/Settings.vue","webpack:///./src/views/Conformity.vue?6213","webpack:///./src/components/ConformityTable.vue?e433","webpack:///src/components/ConformityTable.vue","webpack:///./src/components/ConformityTable.vue?700c","webpack:///./src/components/ConformityTable.vue","webpack:///src/views/Conformity.vue","webpack:///./src/views/Conformity.vue?fb4d","webpack:///./src/views/Conformity.vue","webpack:///./src/views/ConformityDetail.vue?e432","webpack:///./src/components/ConformityDetailCard.vue?9bfe","webpack:///src/components/ConformityDetailCard.vue","webpack:///./src/components/ConformityDetailCard.vue?afa1","webpack:///./src/components/ConformityDetailCard.vue","webpack:///./src/components/ConformityCard.vue?cc43","webpack:///src/components/ConformityCard.vue","webpack:///./src/components/ConformityCard.vue?97bf","webpack:///./src/components/ConformityCard.vue","webpack:///src/views/ConformityDetail.vue","webpack:///./src/views/ConformityDetail.vue?67e0","webpack:///./src/views/ConformityDetail.vue","webpack:///./src/views/Users.vue?54c0","webpack:///./src/components/mixins/UserCard.vue?80ef","webpack:///src/components/mixins/UserCard.vue","webpack:///./src/components/mixins/UserCard.vue?3795","webpack:///./src/components/mixins/UserCard.vue","webpack:///src/views/Users.vue","webpack:///./src/views/Users.vue?1ef6","webpack:///./src/views/Users.vue","webpack:///./src/views/Schedules.vue?a714","webpack:///./src/components/ScheduleTable.vue?284f","webpack:///src/components/ScheduleTable.vue","webpack:///./src/components/ScheduleTable.vue?2a0f","webpack:///./src/components/ScheduleTable.vue","webpack:///src/views/Schedules.vue","webpack:///./src/views/Schedules.vue?4da2","webpack:///./src/views/Schedules.vue","webpack:///./src/components/NotFound.vue?f190","webpack:///src/components/NotFound.vue","webpack:///./src/components/NotFound.vue?0381","webpack:///./src/components/NotFound.vue","webpack:///./src/views/Search.vue?4070","webpack:///src/views/Search.vue","webpack:///./src/views/Search.vue?f11a","webpack:///./src/views/Search.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/RunCard.vue?1430","webpack:///./src/views/Login.vue?6fa5","webpack:///./src/components/ConformityDetailCard.vue?a51e","webpack:///./src/views/JobDetail.vue?33f4"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","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","render","_vm","this","_h","$createElement","_c","_self","layout","staticRenderFns","attrs","mini","scopedSlots","_u","fn","staticClass","on","$event","stopPropagation","_v","proxy","model","callback","$$v","drawer","expression","_s","username","email","_l","route","ref","_g","icon","directives","rawName","nativeOn","type","indexOf","_k","keyCode","searchBar","searchInput","expand_search","notif_nb","_e","notif_menu","messages","item","link","color","text","tag","toggleTheme","logout","methods","pattern","filename","reRegExpChar","escaped","replace","matcher","RegExp","test","milliseconds","Promise","setTimeout","component","VApp","VAppBar","VAppBarNavIcon","VBadge","VBtn","VCard","VCardActions","VContainer","VContent","VDivider","VExpandTransition","VFadeTransition","VIcon","VList","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VListItemSubtitle","VListItemTitle","VMenu","VNavigationDrawer","VSpacer","VTextField","VToolbarTitle","VToolbar","VTooltip","use","components","VSnackbar","x","y","iconColor","classes","timeout","dismissable","multiLine","vertical","queueable","showClose","closeText","closeColor","shorts","custom","icons","iconfont","theme","themes","light","primary","secondary","dark","Store","state","localStorage","getItem","access","refresh","ws_status","mutations","forEach","setItem","JSON","stringify","getters","isLoggedIn","user_id","actions","commit","user_data","reject","url","method","then","resp","a","defaults","headers","common","Authorization","catch","err","clear","limit","count","status","statusIcon","keys_total","VCardTitle","VSimpleTable","minion","filters","loadData","selectedFilter","periods","selectedPeriod","gradientLinePlugin","afterLayout","chartInstance","options","linearGradientLine","ctx","chart","datasets","dataset","minValue","Number","MAX_VALUE","maxValue","MIN_VALUE","yAxis","scales","minValueYPixel","getPixelForValue","maxValueYPixel","gradient","createLinearGradient","addColorStop","colorStart","colorEnd","borderColor","radialGradientDonut","centerX","chartArea","left","right","centerY","top","bottom","createRadialGradient","innerRadius","backgroundColor","VSelect","wsStatus","VChip","refInFor","domProps","customTool","VCardText","VCol","VRow","filter","selectedDate","dateRangeText","menu","Date","toISOString","split","$refs","save","users","index","selectedUsers","minions","selectedTarget","selectedLimit","filterJobs","search","filteredHeaders","indexedItems","loading","jid","arguments","boolRepr","success","boolText","alter_time","toLocaleString","fun","VAutocomplete","VDataTable","VDatePicker","password","preventDefault","authenticate","VForm","refreshKey","fabs","fabAction","minion_id","keysRepr","toString","keyAction","action","manageKey","fab","f","tooltip","emit","VSpeedDial","conformity","last_job","last_highstate","refreshMinion","showDialog","dialog","target","deleteMinion","VDialog","tab","grain","VTab","VTabItem","VTabs","VTabsItems","VTabsSlider","val","iface","ip4_gw","ip6_gw","field","fold","grainCmFolded","cmOptions","pillarCmFolded","codepillar","yamlRepr","job","formatDate","ansiResult","events","parse","client","selected_client","client_batch","scheduleSwitch","client_async","batch","target_type","selected_target_type","filteredFunction","selectedFunction","description","args","kwargs","pillarSwitch","saveJobSwitch","staticStyle","jobTemplateName","pillarRendered","scheduleName","scheduleType","scheduleDate","dateMenu","scheduleTime","timeMenu","runJob","functions","results","HistoryController","size","entries","cursor","entry","trim","lastEntry","pop","idx","Math","max","min","wordBoundaries","input","leftSide","match","words","rx","exec","closestLeftBoundary","offset","found","reverse","find","closestRightBoundary","offsetToColRow","maxCols","row","col","chr","charAt","countLines","isIncompleteInput","endsWith","hasTailingWhitespace","getLastToken","tokens","collectAutocompleteCandidates","callbacks","expr","all","reduce","candidates","concat","console","error","txt","startsWith","term","_handleTermData","handleTermData","_handleTermResize","handleTermResize","history","historySize","maxAutocompleteEntries","_autocompleteHandlers","_active","_input","_cursor","_activePrompt","_activeCharPrompt","_termSize","cols","rows","attach","off","onData","onResize","findIndex","prompt","continuationPrompt","write","reason","message","print","normInput","items","padding","println","itemWidth","width","wideCols","floor","wideRows","ceil","rowStr","repeat","newInput","applyPrompts","substr","currentPrompt","allRows","promptCursor","applyPromptOffset","moveRows","clearInput","newPrompt","newCursor","newLines","moveUpRows","setCursor","resume","setInput","ret","inputWithPrompt","prevPromptOffset","prevCol","prevRow","newPromptOffset","newCol","newRow","dir","num","backspace","charCodeAt","normData","Array","from","handleData","ord","ofs","getPrevious","getNext","handleCursorMove","handleCursorErase","handleCursorInsert","handleReadComplete","inputFragment","hasTailingSpace","sort","lastToken","printAndRestartPrompt","printWide","readChar","yn","rewind","CronUI","container","opts","HTMLElement","el","document","querySelector","initial","setCronString","currentValue","Resize","suffix","str_opt_mih","str_opt_hid","str_opt_dom","str_opt_month","months","str_opt_dow","days","str_opt_period","blocks","insertAdjacentHTML","periodEl","addEventListener","periodChanged","changeEvent","blockName","querySelectorAll","selectEl","cronPeriodEl","period","selectedIndex","style","display","displayMatrix","b","getCronString","hour","day","month","dow","getSelectValue","join","cronString","cronType","getCronType","v","targets","tgt","cronTypes","valid_cron","minval","maxval","parseInt","VCheckbox","VCombobox","VRadio","VRadioGroup","VSwitch","VTimePicker","parseModules","version","deleteMinionsFields","minionsfields_name","minionsfields_value","createMinionsFields","function","deleteConformity","conformity_name","conformity_value","createConformity","notifs","$set","max_notifs","updateUserSettings","succeeded","unchanged","failed","custom_conformity","succeeded_checkbox","unchanged_checkbox","failed_checkbox","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","valRepr","conf","isBool","user","editing","userRules","emailRules","show","resetUser","updateUser","createUser","is_staff","showToken","manageToken","String","currentUserId","date_joined","editUser","confirmDelete","dialogDelete","deleteUser","dialogToken","user_settings","token","schedules","enabled","manageSchedule","jobs","job_search","jobs_headers","class","includes","query","minions_headers","router","routes","path","Home","Minions","MinionDetail","props","Jobs","JobDetail","Run","Keys","Events","Conformity","ConformityDetail","Schedules","Users","Settings","Search","Login","meta","plainLayout","NotFound","beforeEach","to","next","store","config","productionTip","$http","xsrfCookieName","xsrfHeaderName","accessToken","withCredentials","isRefreshing","failedQueue","processQueue","prom","interceptors","request","originalRequest","exp","now","dispatch","response","_retry","refreshToken","post","vuetify","h","App","$mount"],"mappings":"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c,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,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","file":"static/js/app.b0501687.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&lang=css&\"","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.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-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\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-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\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-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\"./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-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\"./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\"./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-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\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\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 id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[(!_vm.layout)?_c('app-layout'):_c('simple-layout')],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-app',[_c('v-navigation-drawer',{attrs:{\"mini-variant\":_vm.mini,\"app\":\"\",\"clipped\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-list-item',{staticClass:\"elevation-24\",on:{\"click\":function($event){$event.stopPropagation();_vm.mini = !_vm.mini}}},[_c('v-list-item-action',[(_vm.mini)?_c('v-icon',[_vm._v(\"arrow_forward\")]):_c('v-icon',[_vm._v(\"arrow_back\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"COLLAPSE\")])],1)],1)]},proxy:true}]),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',{staticClass:\"py-0\",attrs:{\"dense\":\"\",\"nav\":\"\",\"dark\":\"\",\"color\":\"#212121\"}},[_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"person\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.username))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.email))])],1)],1)],1),_c('v-divider'),_vm._l((_vm.routes),function(route){return _c('v-list',{key:route.name,attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"to\":(\"\" + (route.path))}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(_vm._s(route.icon))])]}}],null,true)},[_c('span',[_vm._v(_vm._s(route.name))])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(route.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(route.name))])],1)],1)],1)}),_c('v-divider'),_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"to\":\"/users\"}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"group\")])]}}],null,false,3527340433)},[_c('span',[_vm._v(\"Users\")])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(\"group\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Users\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/settings\"}},[(_vm.mini)?_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"settings\")])]}}],null,false,1926182315)},[_c('span',[_vm._v(\"Settings\")])])],1):_c('v-list-item-action',[_c('v-icon',[_vm._v(\"settings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Settings\")])],1)],1)],1)],2),_c('v-app-bar',{attrs:{\"color\":\"black\",\"dark\":\"\",\"app\":\"\",\"clipped-left\":\"\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){$event.stopPropagation();_vm.drawer = !_vm.drawer}}}),_c('v-toolbar-title',{staticClass:\"font-weight-bold\"},[_vm._v(\"ALCALI\")]),_c('v-spacer'),_c('v-expand-transition',[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.expand_search),expression:\"expand_search\"}],staticClass:\"mx-auto\",attrs:{\"flat\":\"\",\"hide-details\":\"\",\"label\":\"Search jids, minions, states...\",\"solo-inverted\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.searchBar($event)}},model:{value:(_vm.searchInput),callback:function ($$v) {_vm.searchInput=$$v},expression:\"searchInput\"}})],1),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.expand_search = !_vm.expand_search}}},[_c('v-icon',[_vm._v(\"mdi-magnify\")])],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"offset-x\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-badge',{attrs:{\"color\":\"primary\",\"overlap\":\"\"},scopedSlots:_vm._u([{key:\"badge\",fn:function(){return [(_vm.notif_nb > 0)?_c('span',[_vm._v(_vm._s(_vm.notif_nb))]):_vm._e()]},proxy:true}],null,true)},[_c('v-icon',_vm._g({on:{\"click\":function($event){_vm.notif_nb = 0}}},on),[_vm._v(\"notifications\")])],1)]}}]),model:{value:(_vm.notif_menu),callback:function ($$v) {_vm.notif_menu=$$v},expression:\"notif_menu\"}},[_c('v-card',{attrs:{\"min-width\":\"500px\",\"max-width\":\"500px\"}},[_c('v-list',{attrs:{\"max-height\":\"700px\"}},[(_vm.messages.length === 0)?_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-subtitle',[_vm._v(\"No new notifications\")])],1)],1):_vm._e(),_vm._l((_vm.messages),function(item,i){return _c('v-list-item',{key:i,attrs:{\"to\":item.link}},[_c('v-list-item-avatar',[_c('v-icon',{attrs:{\"dark\":\"\",\"color\":item.color,\"size\":\"62\"}},[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.text))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(item.tag))])],1)],1)})],2),_c('v-card-actions',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.messages.length > 0),expression:\"messages.length > 0\"}]},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.messages = []}}},[_vm._v(\"Clear\")])],1)],1)],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"offset-x\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"mdi-dots-vertical\")])],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.toggleTheme}},[_c('v-list-item-title',[_vm._v(\"Toggle Theme\")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.logout}},[_c('v-list-item-title',[_vm._v(\"Logout\")])],1)],1)],1)],1),_c('v-content',[_c('v-container',[_c('v-fade-transition',{attrs:{\"mode\":\"out-in\"}},[_c('router-view')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n /* function to allow Salt-style globbing on event tags. */\n fnmatch(pattern) {\n if (pattern.indexOf('*') === -1) {\n return filename => pattern === filename;\n } else {\n let reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n let escaped = pattern.replace(reRegExpChar, '\\\\$&');\n let matcher = new RegExp('^' + escaped.replace(/\\\\\\*/g, '.*') + '$');\n return filename => matcher.test(filename);\n }\n },\n sleep(milliseconds) {\n return new Promise(resolve => setTimeout(resolve, milliseconds))\n },\n }\n};","\n \n \n \n \n \n person \n \n \n {{username}} \n {{email}} \n \n \n \n \n \n \n \n \n \n {{ route.icon }} \n \n {{route.name}} \n \n \n \n {{ route.icon }} \n \n \n {{ route.name }} \n \n \n \n \n \n \n \n \n \n group \n \n Users \n \n \n \n group \n \n \n Users \n \n \n \n \n \n \n settings \n \n Settings \n \n \n \n settings \n \n \n Settings \n \n \n \n \n \n \n arrow_forward \n arrow_back \n \n \n COLLAPSE \n \n \n \n \n \n \n ALCALI \n \n \n \n \n \n mdi-magnify \n \n \n \n \n \n 0\">{{ notif_nb }} \n \n notifications \n \n \n \n \n \n \n No new notifications \n \n \n \n \n {{item.icon}} \n \n\n \n {{ item.text }} \n {{ item.tag}} \n \n \n \n 0\">\n \n Clear \n \n \n \n \n \n \n mdi-dots-vertical \n \n \n \n \n Toggle Theme \n \n \n \n Logout \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=28cf21ea&\"\nimport script from \"./Layout.vue?vue&type=script&lang=js&\"\nexport * from \"./Layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Layout.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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 { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\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 { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VApp,VAppBar,VAppBarNavIcon,VBadge,VBtn,VCard,VCardActions,VContainer,VContent,VDivider,VExpandTransition,VFadeTransition,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VMenu,VNavigationDrawer,VSpacer,VTextField,VToolbarTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SimpleLayout.vue?vue&type=template&id=0f66a338&scoped=true&\"\nimport script from \"./SimpleLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleLayout.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f66a338\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n \n \n\n\n","import mod from \"-!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/vuetify-loader/lib/loader.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=62f0e333&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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';\ninstallComponents(component, {VApp})\n","import '@mdi/font/css/materialdesignicons.css';\nimport Vue from 'vue';\nimport Vuetify, {VSnackbar, VBtn, VIcon} from 'vuetify/lib'\n\nimport VuetifyToast from 'vuetify-toast-snackbar';\n\nVue.use(Vuetify, {\n components: {\n VSnackbar,\n VBtn,\n VIcon\n }\n});\n\nVue.use(VuetifyToast, {\n x: 'center', // default\n y: 'bottom', // default\n color: 'black', // default\n icon: 'info',\n iconColor: '', // default\n classes: [\n 'body-2'\n ],\n timeout: 3000, // default\n dismissable: true, // default\n multiLine: false, // default\n vertical: false, // default\n queueable: false, // default\n showClose: true, // default\n closeText: '', // default\n closeColor: '', // default\n shorts: {\n custom: {\n color: 'purple'\n }\n },\n property: '$toast' // default\n});\n\nexport default new Vuetify({\n icons: {\n iconfont: 'md',\n },\n theme: {\n themes: {\n light: {\n primary: '#6200EE',\n secondary: '#03DAC6',\n },\n dark: {\n secondary: '#BB86FC',\n primary: '#03DAC6',\n },\n },\n },\n});\n","import Vue from \"vue\"\nimport Vuex from \"vuex\"\nimport axios from \"axios\"\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n username: localStorage.getItem(\"username\") || \"\",\n email: localStorage.getItem(\"email\") || \"\",\n id: localStorage.getItem(\"id\") || \"\",\n access: localStorage.getItem(\"access\") || \"\",\n refresh: localStorage.getItem(\"refresh\") || \"\",\n ws_status: false,\n theme: localStorage.getItem(\"theme\") || false,\n },\n mutations: {\n auth_success(state, data) {\n Object.keys(data).forEach(key => {\n state[key] = data[key]\n })\n },\n logout(state) {\n state.access = \"\"\n },\n updateWs(state) {\n state.ws_status = true\n },\n toggleTheme(state) {\n state.theme = !state.theme\n localStorage.setItem('theme', JSON.stringify(state.theme))\n },\n },\n getters: {\n isLoggedIn: state => !!state.access,\n theme: state => state.theme,\n user_id: state => state.id,\n },\n actions: {\n updateWs({ commit }) {\n commit(\"updateWs\")\n },\n toggleTheme({ commit }) {\n commit(\"toggleTheme\")\n },\n login({ commit }, user_data) {\n return new Promise((resolve, reject) => {\n axios({ url: \"/api/token/\", data: user_data, method: \"POST\" })\n .then(resp => {\n Object.keys(resp.data).forEach(key => {\n localStorage.setItem(key, resp.data[key])\n })\n axios.defaults.headers.common.Authorization = `Bearer ${resp.data.access}`\n commit(\"auth_success\", resp.data)\n resolve(resp)\n })\n .catch(err => {\n localStorage.clear()\n reject(err)\n })\n })\n },\n logout({ commit }) {\n return new Promise((resolve) => {\n commit(\"logout\")\n localStorage.clear()\n delete axios.defaults.headers.common[\"Authorization\"]\n resolve()\n })\n },\n\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"7\"}},[_c('ConformityChart')],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('KeysStatusCard')],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('AlcaliStatusCard')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\"}},[_c('JobsChartCard')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\"}},[_c('JobsTable',{attrs:{\"filter\":{limit: 10}}})],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Keys\")]),_c('v-simple-table',[_c('tbody',_vm._l((_vm.keys_status),function(count,status){return _c('tr',{key:status},[_c('td',{staticClass:\"pr-0\"},[_c('v-icon',[_vm._v(_vm._s(_vm.statusIcon(status)))])],1),_c('td',{staticClass:\"pl-0\"},[_vm._v(_vm._s(status))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(count)+\" / \"+_vm._s(_vm.keys_total))])])}),0)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Keys \n \n \n \n \n {{statusIcon(status)}} \n \n {{ status }} \n {{ count }} / {{keys_total}} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysStatusCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysStatusCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeysStatusCard.vue?vue&type=template&id=b6756222&scoped=true&\"\nimport script from \"./KeysStatusCard.vue?vue&type=script&lang=js&\"\nexport * from \"./KeysStatusCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b6756222\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',{attrs:{\"elevation\":_vm.minion == null ? 2 : 0}},[_c('v-list-item',{attrs:{\"three-line\":\"\",\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline mb-1\"},[_vm._v(\"Jobs Stats\")])],1),_c('v-spacer'),_c('v-list-item-content',{staticClass:\"mr-6\"},[_c('v-select',{attrs:{\"items\":_vm.filters,\"label\":\"Filter\",\"return-object\":\"\"},on:{\"change\":_vm.loadData},model:{value:(_vm.selectedFilter),callback:function ($$v) {_vm.selectedFilter=$$v},expression:\"selectedFilter\"}})],1),_c('v-list-item-content',[_c('v-select',{attrs:{\"items\":_vm.periods,\"label\":\"Period\",\"return-object\":\"\"},on:{\"change\":_vm.loadData},model:{value:(_vm.selectedPeriod),callback:function ($$v) {_vm.selectedPeriod=$$v},expression:\"selectedPeriod\"}})],1)],1),_c('canvas',{ref:\"chart\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","let gradientLinePlugin = {\n // Called at start of update.\n afterLayout: function (chartInstance) {\n if (chartInstance.options.linearGradientLine) {\n // The context, needed for the creation of the linear gradient.\n let ctx = chartInstance.chart.ctx;\n chartInstance.data.datasets.forEach((dataset) => {\n // Calculate min and max values of the dataset.\n let minValue = Number.MAX_VALUE;\n let maxValue = Number.MIN_VALUE;\n for (let i = 0; i < dataset.data.length; ++i) {\n if (minValue > dataset.data[i])\n minValue = dataset.data[i];\n if (maxValue < dataset.data[i])\n maxValue = dataset.data[i];\n }\n let yAxis = chartInstance.scales['y-axis-0'];\n let minValueYPixel = yAxis.getPixelForValue(minValue);\n let maxValueYPixel = yAxis.getPixelForValue(maxValue);\n // Create the gradient.\n let gradient = ctx.createLinearGradient(0, minValueYPixel, 0, maxValueYPixel);\n // A kind of red for min.\n gradient.addColorStop(0, dataset.colorStart);\n // A kind of blue for max.\n gradient.addColorStop(1, dataset.colorEnd);\n // Assign the gradient to the dataset's border color.\n dataset.borderColor = gradient;\n })\n } else if (chartInstance.options.radialGradientDonut) {\n // The context, needed for the creation of the linear gradient.\n let ctx = chartInstance.chart.ctx;\n\n chartInstance.data.datasets.forEach((dataset) => {\n let centerX = ((chartInstance.chartArea.left + chartInstance.chartArea.right) / 2);\n let centerY = ((chartInstance.chartArea.top + chartInstance.chartArea.bottom) / 2);\n\n // Create the gradient.\n let gradient = ctx.createRadialGradient(centerX, centerY, (chartInstance.innerRadius * 2) * (20 / 100), centerX, centerY, (chartInstance.innerRadius * 2));\n // A kind of red for min.\n gradient.addColorStop(0, dataset.colorStart);\n // A kind of blue for max.\n gradient.addColorStop(1, dataset.colorEnd);\n // Assign the gradient to the dataset's border color.\n dataset.backgroundColor = gradient;\n })\n\n }\n }\n};\n\nexport default gradientLinePlugin;\n","\n \n \n \n \n Jobs Stats \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsChartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsChartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobsChartCard.vue?vue&type=template&id=e0df043e&scoped=true&\"\nimport script from \"./JobsChartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./JobsChartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e0df043e\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VContainer,VListItem,VListItemContent,VListItemTitle,VSelect,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Status\")]),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"Salt WebSocket\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.wsStatus ? 'green': 'red',\"text-color\":\"white\"}},[_vm._v(\"\\n \"+_vm._s(_vm.wsStatus ? \"OK\": \"NOT OK\")+\"\\n \")])],1)]),_vm._l((_vm.stats),function(count,status){return _c('tr',{key:status},[_c('td',[_vm._v(_vm._s(status))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(count))])])})],2)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Status \n \n \n \n Salt WebSocket \n \n \n {{ wsStatus ? \"OK\": \"NOT OK\" }}\n \n \n \n \n {{ status }} \n {{ count }} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlcaliStatusCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlcaliStatusCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AlcaliStatusCard.vue?vue&type=template&id=1eb41eb0&scoped=true&\"\nimport script from \"./AlcaliStatusCard.vue?vue&type=script&lang=js&\"\nexport * from \"./AlcaliStatusCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1eb41eb0\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Conformity\")]),_c('v-card-text',[_c('v-container',[_vm._l((_vm.conformitynames),function(name){return [_c('v-row',{key:name,attrs:{\"no-gutters\":\"\",\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"sm\":\"2\"}},[_vm._v(_vm._s(name))]),_c('v-col',{attrs:{\"sm\":\"10\"}},[_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"max-width\":\"250px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('canvas',_vm._g({ref:name,refInFor:true,attrs:{\"height\":\"15\"}},on))]}}],null,true)},[_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(name))])])]),_c('tbody',{domProps:{\"innerHTML\":_vm._s(_vm.customTool)}})])],1)],1)],1)]})],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Conformity \n \n \n \n \n {{name}} \n \n \n \n \n \n \n \n \n {{name}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityChart.vue?vue&type=template&id=bcf3f6c0&scoped=true&\"\nimport script from \"./ConformityChart.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityChart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConformityChart.vue?vue&type=style&index=0&id=bcf3f6c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcf3f6c0\",\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 { VCard } 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 { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VContainer,VMenu,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[(_vm.filter == null)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{staticClass:\"mb-8\"},[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-card-title',[_vm._v(\"Search Jobs\")])],1),_c('v-divider'),_c('v-col',{attrs:{\"lg\":\"2\",\"align-self\":\"center\"}},[_c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.selectedDate,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.selectedDate=$event},\"update:return-value\":function($event){_vm.selectedDate=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Select date(s)\",\"readonly\":\"\"},model:{value:(_vm.dateRangeText),callback:function ($$v) {_vm.dateRangeText=$$v},expression:\"dateRangeText\"}},on))]}}],null,false,4129137489),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-date-picker',{attrs:{\"max\":new Date().toISOString().split('T')[0],\"reactive\":\"\",\"no-title\":\"\",\"range\":\"\"},model:{value:(_vm.selectedDate),callback:function ($$v) {_vm.selectedDate=$$v},expression:\"selectedDate\"}},[_c('div',{staticClass:\"flex-grow-1\"}),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.menu = false}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.menu.save(_vm.selectedDate)}}},[_vm._v(\"OK\")])],1)],1)],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.users,\"label\":\"User(s)\",\"multiple\":\"\",\"single-line\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === 0)?_c('span',[_vm._v(_vm._s(item))]):_vm._e(),(index === 1)?_c('span',{staticClass:\"grey--text caption\"},[_vm._v(\" (+\"+_vm._s(_vm.selectedUsers.length - 1)+\" others)\")]):_vm._e()]}}],null,false,2591977476),model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}})],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.minions,\"label\":\"Target(s)\",\"multiple\":\"\",\"single-line\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [(index === 0)?_c('span',[_vm._v(_vm._s(item))]):_vm._e(),(index === 1)?_c('span',{staticClass:\"grey--text caption\"},[_vm._v(\" (+\"+_vm._s(_vm.selectedTarget.length - 1)+\" others)\")]):_vm._e()]}}],null,false,3190666039),model:{value:(_vm.selectedTarget),callback:function ($$v) {_vm.selectedTarget=$$v},expression:\"selectedTarget\"}})],1),_c('v-col',{attrs:{\"lg\":\"1\"}},[_c('v-select',{attrs:{\"items\":_vm.limit,\"label\":\"Limit\",\"single-line\":\"\"},model:{value:(_vm.selectedLimit),callback:function ($$v) {_vm.selectedLimit=$$v},expression:\"selectedLimit\"}})],1),_c('v-col',{attrs:{\"lg\":\"1\",\"align-self\":\"center\"}},[_c('div',{staticClass:\"text-center\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.filterJobs}},[_vm._v(\"Search\\n \")])],1)])],1)],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{attrs:{\"elevation\":_vm.filter == null ? 2 : 0}},[_c('v-card-title',[_vm._v(\"\\n Jobs\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"jid\",\"sort-desc\":\"\",\"item-key\":\"uniqueid\",\"headers\":_vm.filteredHeaders,\"items\":_vm.indexedItems,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.jid\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(_vm._s(item.jid))])]}},{key:\"item.id\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(_vm.filter ? \"\" :item.id)+\"\\n \")]}},{key:\"item.arguments\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments)+\"\\n \")]}},{key:\"item.success\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(item.success)))])]}},{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(\"\\n detail\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue-grey\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run/?target='+item.id+'&function='+item.fun+'&args='+item.arguments}},[_vm._v(\"\\n rerun\\n \")])],1)]}}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n Search Jobs \n \n \n \n \n \n \n \n \n
\n Cancel \n OK \n \n \n \n \n \n \n {{ item }} \n (+{{ selectedUsers.length - 1 }} others) \n \n \n \n \n \n \n {{ item }} \n (+{{ selectedTarget.length - 1 }} others) \n \n \n \n \n \n \n \n \n \n Search\n \n
\n \n \n \n \n \n \n \n \n \n Jobs\n \n \n \n \n \n {{ item.jid }} \n \n \n {{ filter ? \"\" :item.id }}\n \n \n {{ item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments }}\n \n \n {{ boolText(item.success) }} \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n \n detail\n \n \n rerun\n \n
\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobsTable.vue?vue&type=template&id=108fe07a&scoped=true&\"\nimport script from \"./JobsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./JobsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"108fe07a\",\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 { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardTitle,VChip,VCol,VContainer,VDataTable,VDatePicker,VDivider,VMenu,VRow,VSelect,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=730766ce&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n 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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"inspire\"}},[_c('v-content',[_c('v-container',{staticClass:\"fill-height\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\",\"md\":\"4\"}},[_c('h1',{staticClass:\"text-center font-weight-bold display-4 mb-8\"},[_vm._v(\"ALCALI\")]),_c('v-card',{staticClass:\"elevation-12\"},[_c('v-toolbar',{attrs:{\"color\":\"black\",\"dark\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Login\")]),_c('v-spacer')],1),_c('v-card-text',[_c('v-form',[_c('v-text-field',{attrs:{\"label\":\"Login\",\"name\":\"login\",\"prepend-icon\":\"person\",\"type\":\"text\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":\"Password\",\"name\":\"password\",\"prepend-icon\":\"lock\",\"type\":\"password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){$event.preventDefault();return _vm.authenticate($event)}}},[_vm._v(\"Login\")])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n ALCALI \n \n \n Login \n \n \n \n \n \n\n \n \n \n \n \n Login \n \n \n \n \n \n \n \n \n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=e48ee6a0&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e48ee6a0\",\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 { 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 { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VBtn,VCard,VCardActions,VCardText,VCol,VContainer,VContent,VForm,VRow,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"cols\":\"12\"}},[_c('JobsTable')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jobs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jobs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Jobs.vue?vue&type=template&id=4867fa69&scoped=true&\"\nimport script from \"./Jobs.vue?vue&type=script&lang=js&\"\nexport * from \"./Jobs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4867fa69\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('KeysTable',{key:_vm.refreshKey})],1)],1),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Keys\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.keys,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.status === 'accepted')?[_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]:[_vm._v(\"\\n \"+_vm._s(item.minion_id)+\"\\n \")]]}},{key:\"item.status\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.keysRepr(item.status),\"dark\":\"\"}},[_vm._v(_vm._s(item.status.toString()))])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._l((_vm.keyAction(item.status)),function(action){return [_c('v-btn',{key:action,staticClass:\"ma-2\",attrs:{\"small\":\"\",\"dark\":\"\",\"color\":_vm.keysRepr(action)},on:{\"click\":function($event){return _vm.manageKey(action, item.minion_id)}}},[_vm._v(\"\\n \"+_vm._s(action)+\"\\n \")])]})]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Keys\n \n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{item.minion_id}}\n \n \n \n {{ item.status.toString() }} \n \n \n \n \n {{ action }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeysTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeysTable.vue?vue&type=template&id=50efcc63&scoped=true&\"\nimport script from \"./KeysTable.vue?vue&type=script&lang=js&\"\nexport * from \"./KeysTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50efcc63\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-speed-dial',{attrs:{\"fixed\":\"\",\"bottom\":\"\",\"right\":\"\",\"direction\":\"top\",\"transition\":\"slide-y-reverse-transition\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"primary\",\"fab\":\"\"},model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:\"fab\"}},[(_vm.fab)?_c('v-icon',[_vm._v(\"close\")]):_c('v-icon',[_vm._v(\"menu\")])],1)]},proxy:true}]),model:{value:(_vm.fab),callback:function ($$v) {_vm.fab=$$v},expression:\"fab\"}},[_vm._l((_vm.fabs),function(f){return [_c('v-tooltip',{key:f.tooltip,attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"color\":f.color},on:{\"click\":function($event){return _vm.emit('fab_action', f.action)}}},on),[_c('v-icon',[_vm._v(_vm._s(f.icon))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(f.tooltip))])])]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n close \n menu \n \n \n \n \n \n \n {{f.icon}} \n \n \n {{f.tooltip}} \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Fab.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Fab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Fab.vue?vue&type=template&id=56c34fbd&scoped=true&\"\nimport script from \"./Fab.vue?vue&type=script&lang=js&\"\nexport * from \"./Fab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56c34fbd\",\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 { VSpeedDial } from 'vuetify/lib/components/VSpeedDial';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VSpeedDial,VTooltip})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keys.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Keys.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Keys.vue?vue&type=template&id=47322cce&scoped=true&\"\nimport script from \"./Keys.vue?vue&type=script&lang=js&\"\nexport * from \"./Keys.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47322cce\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"cols\":\"12\"}},[_c('MinionsTable',{key:_vm.refreshKey}),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Minions\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.minions,\"search\":_vm.search,\"loading\":_vm.loading,\"loading-text\":\"Loading... Please wait\"},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity.toString())+\"\\n \")])]}},{key:\"item.last_job\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.refreshMinion(item.minion_id)}}},[_vm._v(\"\\n refresh\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue-grey\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run?target='+item.minion_id}},[_vm._v(\"\\n run job\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.showDialog(item.minion_id)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline red\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Delete \"+_vm._s(_vm.target)+\" ?\\n \")]),_c('v-card-text',[_c('br'),_vm._v(\"\\n If you delete \"+_vm._s(_vm.target)+\" from the database, you will need to refresh all minions.\\n \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"\\n close\\n \")]),_c('v-btn',{attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteMinion(_vm.target)}}},[_vm._v(\"\\n delete\\n \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Minions\n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{ item.conformity == null ? \"unknown\": item.conformity.toString() }}\n \n \n \n {{item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\")}}\n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n \n \n refresh\n \n \n run job\n \n \n delete\n \n
\n \n \n \n \n \n \n \n Delete {{ target }} ?\n \n\n \n \n If you delete {{ target }} from the database, you will need to refresh all minions.\n \n\n \n\n \n \n \n close\n \n \n delete\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionsTable.vue?vue&type=template&id=e7f10790&scoped=true&\"\nimport script from \"./MinionsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7f10790\",\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 { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VContainer,VDataTable,VDialog,VDivider,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Minions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Minions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Minions.vue?vue&type=template&id=31331556&scoped=true&\"\nimport script from \"./Minions.vue?vue&type=script&lang=js&\"\nexport * from \"./Minions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31331556\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[(_vm.minion !== null)?_c('InfosCard',{attrs:{\"minion\":_vm.minion}}):_vm._e(),(_vm.minion !== null)?_c('NetworkCard',{attrs:{\"minion\":_vm.minion}}):_vm._e()],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"9\"}},[(_vm.minion !== null)?_c('MinionDetailCard',{attrs:{\"minion\":_vm.minion}}):_vm._e()],1),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Infos\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#common\"}},[_vm._v(\"\\n Common\\n \")]),_c('v-tab',{attrs:{\"href\":\"#salt\"}},[_vm._v(\"\\n Salt\\n \")]),_c('v-tab',{attrs:{\"href\":\"#hardware\"}},[_vm._v(\"\\n Hardware\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"common\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.common),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),(item.grain === 'last_job' || item.grain === 'last_highstate' && _vm.minion[item.grain] !== null)?_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(new Date(_vm.minion[item.grain]).toLocaleString(\"en-GB\"))+\"\\n \")]):(item.grain === 'conformity')?_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.minion[item.grain]),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.minion[item.grain] == null ? \"unknown\": _vm.minion[item.grain]))])],1):_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"salt\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.salt),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"hardware\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.hardware),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion[item.grain]))])])}),0)])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Infos \n \n \n\n \n Common\n \n\n \n Salt\n \n\n \n Hardware\n \n \n \n \n \n \n \n {{ item.name }} \n {{ new Date(minion[item.grain]).toLocaleString(\"en-GB\")}}\n \n {{ minion[item.grain] == null ? \"unknown\": minion[item.grain] }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n {{ item.name }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n {{ item.name }} \n {{minion[item.grain]}} \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfosCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfosCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InfosCard.vue?vue&type=template&id=88be39d6&scoped=true&\"\nimport script from \"./InfosCard.vue?vue&type=script&lang=js&\"\nexport * from \"./InfosCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"88be39d6\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Network\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#interface\"}},[_vm._v(\"\\n Interfaces\\n \")]),_c('v-tab',{attrs:{\"href\":\"#mac\"}},[_vm._v(\"\\n Mac\\n \")]),_c('v-tab',{attrs:{\"href\":\"#dns\"}},[_vm._v(\"\\n Dns\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"interface\"}},[_c('v-simple-table',[_c('tbody',[_vm._l((_vm.minion.ip_interfaces),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_vm._l((val),function(iface){return _c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(iface))])})],2)}),_c('tr',[_c('td',[_vm._v(\"IPv4 GATEWAY\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion.ip4_gw))])]),_c('tr',[_c('td',[_vm._v(\"IPv6 GATEWAY\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.minion.ip6_gw))])])],2)])],1),_c('v-tab-item',{attrs:{\"id\":\"mac\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.minion.hwaddr_interfaces),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(val))])])}),0)])],1),_c('v-tab-item',{attrs:{\"id\":\"dns\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.minion.dns),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(val.length >= 1 ? val: \"\"))])])}),0)])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Network \n \n \n\n \n Interfaces\n \n\n \n Mac\n \n\n \n Dns\n \n \n \n \n \n \n \n {{key}} \n {{ iface }} \n \n \n IPv4 GATEWAY \n {{ minion.ip4_gw }} \n \n \n IPv6 GATEWAY \n {{ minion.ip6_gw }} \n \n \n \n \n \n \n \n \n {{key}} \n {{ val }} \n \n \n \n \n \n \n \n \n {{key}} \n {{ val.length >= 1 ? val: \"\" }} \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NetworkCard.vue?vue&type=template&id=4e9c41e8&scoped=true&\"\nimport script from \"./NetworkCard.vue?vue&type=script&lang=js&\"\nexport * from \"./NetworkCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e9c41e8\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VSimpleTable,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#grain\"}},[_vm._v(\"\\n Grains\\n \")]),_c('v-tab',{attrs:{\"href\":\"#pillar\"}},[_vm._v(\"\\n Pillar\\n \")]),_c('v-tab',{attrs:{\"href\":\"#history\"}},[_vm._v(\"\\n History\\n \")]),_c('v-tab',{attrs:{\"href\":\"#graph\"}},[_vm._v(\"\\n Graph\\n \")]),_vm._l((_vm.minion.custom_fields),function(field){return _c('v-tab',{key:field.name},[_vm._v(\"\\n \"+_vm._s(field.name)+\"\\n \")])})],2),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"grain\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"overlayedBtn\",on:{\"click\":function($event){return _vm.fold('grainCm')}}},[_vm._v(_vm._s(_vm.grainCmFolded ? \"unfold\" : \"fold\"))])],1),_c('codemirror',{ref:\"grainCm\",attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}})],1),_c('v-tab-item',{attrs:{\"id\":\"pillar\"}},[_c('div',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"overlayedBtn\",on:{\"click\":function($event){return _vm.fold('pillarCm')}}},[_vm._v(_vm._s(_vm.pillarCmFolded ? \"unfold\" : \"fold\"))])],1),_c('codemirror',{ref:\"pillarCm\",attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.codepillar),callback:function ($$v) {_vm.codepillar=$$v},expression:\"codepillar\"}})],1),_c('v-tab-item',{attrs:{\"id\":\"history\"}},[_c('JobsTable',{attrs:{\"filter\":{'target[]': _vm.minion.minion_id}}})],1),_c('v-tab-item',{attrs:{\"id\":\"graph\",\"eager\":\"\"}},[(_vm.minion)?_c('JobsChartCard',{attrs:{\"minion\":_vm.minion.minion_id}}):_vm._e()],1),_vm._l((_vm.minion.custom_fields),function(field){return _c('v-tab-item',{key:field.name},[_c('codemirror',{attrs:{\"options\":_vm.cmOptions,\"value\":_vm.yamlRepr(field.value)}})],1)})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n\n \n Grains\n \n\n \n Pillar\n \n \n History\n \n \n Graph\n \n \n {{field.name}}\n \n \n \n \n \n {{ grainCmFolded ? \"unfold\" : \"fold\" }} \n
\n \n \n \n \n {{ pillarCmFolded ? \"unfold\" : \"fold\" }} \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetailCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionDetailCard.vue?vue&type=template&id=107b300f&scoped=true&\"\nimport script from \"./MinionDetailCard.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionDetailCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MinionDetailCard.vue?vue&type=style&index=0&id=107b300f&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"107b300f\",\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 { VContainer } from 'vuetify/lib/components/VGrid';\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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VBtn,VCard,VContainer,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinionDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MinionDetail.vue?vue&type=template&id=2b1fbb2b&scoped=true&\"\nimport script from \"./MinionDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./MinionDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b1fbb2b\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('v-container',[_c('v-card',[_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.job.fun))]),_c('v-list-item-subtitle',[_vm._v(\"Run \"+_vm._s(_vm.formatDate(_vm.job.alter_time)))])],1)],1),_c('v-divider'),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"FUNCTION:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.fun))])]),_c('tr',[_c('td',[_vm._v(\"JID:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.jid))])]),(_vm.job.arguments)?_c('tr',[_c('td',[_vm._v(\"ARGUMENTS:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.arguments))])]):_vm._e(),_c('tr',[_c('td',[_vm._v(\"MINION ID:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.job.id))])]),_c('tr',[_c('td',[_vm._v(\"STATUS:\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.job.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(_vm.job.success)))])],1)]),_c('tr',[_c('td',[_vm._v(\"START TIME:\")]),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(new Date(_vm.job.alter_time).toLocaleString(\"en-GB\")))])])])])],1)],1)],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"8\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Results\")]),_c('v-divider'),_c('div',{staticClass:\"ansiStyle\",domProps:{\"innerHTML\":_vm._s(_vm.ansiResult)}})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n {{ job.fun }} \n Run {{ formatDate(job.alter_time) }} \n \n \n \n \n \n \n FUNCTION: \n {{ job.fun }} \n \n \n JID: \n {{ job.jid }} \n \n \n ARGUMENTS: \n {{ job.arguments }} \n \n \n MINION ID: \n {{ job.id }} \n \n \n STATUS: \n \n {{ boolText(job.success) }} \n\n \n \n \n START TIME: \n {{ new Date(job.alter_time).toLocaleString(\"en-GB\") }} \n \n \n \n \n \n \n \n \n \n Results \n \n
\n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobDetail.vue?vue&type=template&id=ebea9e70&scoped=true&\"\nimport script from \"./JobDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./JobDetail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./JobDetail.vue?vue&type=style&index=0&id=ebea9e70&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ebea9e70\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VCol,VContainer,VDivider,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('EventsTable')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Events\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"alter_time\",\"sort-desc\":\"\",\"headers\":_vm.headers,\"items\":_vm.events,\"search\":_vm.search,\"show-expand\":\"\",\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"expanded-item\",fn:function(ref){\nvar headers = ref.headers;\nvar item = ref.item;\nreturn [_c('td',{attrs:{\"colspan\":headers.length}},[_c('pre',[_vm._v(_vm._s(JSON.stringify(JSON.parse(item.data), null, 2)))])])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Events\n \n \n \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n {{JSON.stringify(JSON.parse(item.data), null, 2)}} \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EventsTable.vue?vue&type=template&id=e7265fc6&scoped=true&\"\nimport script from \"./EventsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./EventsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e7265fc6\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Events.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Events.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Events.vue?vue&type=template&id=7408d9dd&scoped=true&\"\nimport script from \"./Events.vue?vue&type=script&lang=js&\"\nexport * from \"./Events.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7408d9dd\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('RunCard')],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-container',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',{staticClass:\"mb-8\"},[_c('v-card-title',[_vm._v(\"Run\")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_c('v-tab',{attrs:{\"href\":\"#formatted\"}},[_vm._v(\"\\n Formatted\\n \")]),_c('v-tab',{attrs:{\"href\":\"#cli\"}},[_vm._v(\"\\n Cli\\n \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{attrs:{\"id\":\"formatted\",\"eager\":\"\"}},[_c('v-card',[_c('v-spacer'),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-right\",attrs:{\"sm\":\"3\",\"lg\":\"1\",\"align-self\":\"center\"}},[_c('span',[_vm._v(\"Client Type:\")])]),_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\"}},[_c('v-select',{attrs:{\"items\":_vm.client},model:{value:(_vm.selected_client),callback:function ($$v) {_vm.selected_client=$$v},expression:\"selected_client\"}})],1),(!_vm.client_batch && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":\"1\"}},[_c('v-checkbox',{attrs:{\"label\":\"Async\",\"color\":\"primary\"},model:{value:(_vm.client_async),callback:function ($$v) {_vm.client_async=$$v},expression:\"client_async\"}})],1):_vm._e(),(_vm.selected_client === 'local' && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":_vm.client_batch ? 3: 1}},[_c('v-checkbox',{attrs:{\"label\":\"Batch\",\"color\":\"primary\"},model:{value:(_vm.client_batch),callback:function ($$v) {_vm.client_batch=$$v},expression:\"client_batch\"}})],1):_vm._e(),(_vm.selected_client === 'local' && _vm.client_batch && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\"}},[_c('v-text-field',{attrs:{\"label\":\"Batch\"},model:{value:(_vm.batch),callback:function ($$v) {_vm.batch=$$v},expression:\"batch\"}})],1):_vm._e(),(_vm.selected_client === 'local' && !_vm.scheduleSwitch)?_c('v-col',{attrs:{\"sm\":\"3\",\"lg\":\"1\",\"offset-lg\":_vm.client_batch ? 0: 1}},[_c('v-text-field',{attrs:{\"label\":\"Timeout\",\"type\":\"number\"},model:{value:(_vm.timeout),callback:function ($$v) {_vm.timeout=$$v},expression:\"timeout\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"1\"}},[(_vm.selected_client === 'local')?_c('v-select',{attrs:{\"items\":_vm.target_type,\"label\":\"Target Type\"},on:{\"change\":function($event){_vm.target = null}},model:{value:(_vm.selected_target_type),callback:function ($$v) {_vm.selected_target_type=$$v},expression:\"selected_target_type\"}}):_vm._e()],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[(_vm.selected_client === 'local')?_c('v-text-field',{attrs:{\"label\":\"Target\"},model:{value:(_vm.target),callback:function ($$v) {_vm.target=$$v},expression:\"target\"}}):_vm._e()],1),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('v-combobox',{attrs:{\"item-value\":\"name\",\"item-text\":\"name\",\"items\":_vm.filteredFunction,\"label\":\"Function\",\"return-object\":\"\"},scopedSlots:_vm._u([(_vm.selectedFunction)?{key:\"append-outer\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"color\":\"black\"}},on),[_vm._v(\"info\\n \")])]}}],null,false,1349456046)},[_c('div',{staticClass:\"desc\"},[_c('pre',[_vm._v(_vm._s(_vm.selectedFunction.description))])])])]},proxy:true}:null],null,true),model:{value:(_vm.selectedFunction),callback:function ($$v) {_vm.selectedFunction=$$v},expression:\"selectedFunction\"}})],1),_c('v-col',{attrs:{\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Arguments\"},model:{value:(_vm.args),callback:function ($$v) {_vm.args=$$v},expression:\"args\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Keyword Arguments\"},model:{value:(_vm.kwargs),callback:function ($$v) {_vm.kwargs=$$v},expression:\"kwargs\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"3\"}},[_c('v-switch',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selected_client === 'local'),expression:\"selected_client === 'local'\"}],attrs:{\"label\":\"Schedule\",\"color\":\"primary\"},model:{value:(_vm.scheduleSwitch),callback:function ($$v) {_vm.scheduleSwitch=$$v},expression:\"scheduleSwitch\"}})],1),_c('v-col',{attrs:{\"sm\":\"3\"}},[_c('v-switch',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selected_client === 'local'),expression:\"selected_client === 'local'\"}],attrs:{\"label\":\"Pillar\",\"color\":\"primary\"},model:{value:(_vm.pillarSwitch),callback:function ($$v) {_vm.pillarSwitch=$$v},expression:\"pillarSwitch\"}})],1),_c('v-col',{attrs:{\"sm\":\"3\"}},[_c('v-switch',{attrs:{\"label\":\"Save\",\"color\":\"primary\"},model:{value:(_vm.saveJobSwitch),callback:function ($$v) {_vm.saveJobSwitch=$$v},expression:\"saveJobSwitch\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveJobSwitch),expression:\"saveJobSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('v-text-field',{staticStyle:{\"width\":\"350px\"},attrs:{\"label\":\"Job Template Name\"},model:{value:(_vm.jobTemplateName),callback:function ($$v) {_vm.jobTemplateName=$$v},expression:\"jobTemplateName\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pillarSwitch),expression:\"pillarSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('codemirror',{attrs:{\"options\":_vm.cmOptions},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}})],1),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pillarSwitch),expression:\"pillarSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.pillarRendered)}})]),_c('v-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.scheduleSwitch),expression:\"scheduleSwitch\"}],attrs:{\"sm\":\"12\"}},[_c('v-text-field',{staticStyle:{\"width\":\"350px\"},attrs:{\"label\":\"Schedule name\"},model:{value:(_vm.scheduleName),callback:function ($$v) {_vm.scheduleName=$$v},expression:\"scheduleName\"}}),_c('v-radio-group',{staticClass:\"mt-0\",model:{value:(_vm.scheduleType),callback:function ($$v) {_vm.scheduleType=$$v},expression:\"scheduleType\"}},[_c('v-radio',{attrs:{\"value\":\"once\",\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_c('strong',[_vm._v(\"Once: \")])]),_c('v-row',[_c('v-col',{staticClass:\"ml-2\",attrs:{\"sm\":\"4\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\"},model:{value:(_vm.scheduleDate),callback:function ($$v) {_vm.scheduleDate=$$v},expression:\"scheduleDate\"}},on))]}}]),model:{value:(_vm.dateMenu),callback:function ($$v) {_vm.dateMenu=$$v},expression:\"dateMenu\"}},[_c('v-date-picker',{attrs:{\"min\":_vm.scheduleDate},on:{\"input\":function($event){_vm.dateMenu = false}},model:{value:(_vm.scheduleDate),callback:function ($$v) {_vm.scheduleDate=$$v},expression:\"scheduleDate\"}})],1)],1),_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\"},model:{value:(_vm.scheduleTime),callback:function ($$v) {_vm.scheduleTime=$$v},expression:\"scheduleTime\"}},on))]}}]),model:{value:(_vm.timeMenu),callback:function ($$v) {_vm.timeMenu=$$v},expression:\"timeMenu\"}},[(_vm.timeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\"},model:{value:(_vm.scheduleTime),callback:function ($$v) {_vm.scheduleTime=$$v},expression:\"scheduleTime\"}}):_vm._e()],1)],1)],1)]},proxy:true}])}),_c('v-radio',{attrs:{\"value\":\"recurring\",\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',[_c('strong',[_vm._v(\"Recurring: \")]),_vm._v(\" Every \"),_c('span',{attrs:{\"id\":\"cron\"}})])]},proxy:true}])})],1)],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.saveJobSwitch),expression:\"!saveJobSwitch\"}],attrs:{\"color\":\"orange\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.runJob(_vm.test=true)}}},[_vm._v(\"Test\")]),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.saveJobSwitch),expression:\"!saveJobSwitch\"}],attrs:{\"color\":\"info\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":_vm.runJob}},[_vm._v(\"Run\")]),_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.saveJobSwitch),expression:\"saveJobSwitch\"}],attrs:{\"color\":\"green\",\"large\":\"\",\"dark\":\"\"},on:{\"click\":_vm.runJob}},[_vm._v(\"Save\")])],1)],1)],1),_c('v-tab-item',{attrs:{\"id\":\"cli\"}},[(_vm.functions !== null)?_c('TerminalCard',{attrs:{\"minions\":_vm.minions,\"functions\":_vm.functions}}):_vm._e()],1)],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[(_vm.results)?_c('v-card',[_c('v-card-title',[_vm._v(\"Results\")]),_c('v-card-text',{staticClass:\"ansiStyle\",domProps:{\"innerHTML\":_vm._s(_vm.results)}})],1):_vm._e()],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-row',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.onResize),expression:\"onResize\"}]},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('div',{staticClass:\"console\",attrs:{\"id\":\"terminal\"}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * The history controller provides an ring-buffer\n */\nexport class HistoryController {\n constructor(size) {\n this.size = size;\n this.entries = [];\n this.cursor = 0;\n }\n\n /**\n * Push an entry and maintain ring buffer size\n */\n push(entry) {\n // Skip empty entries\n if (entry.trim() === \"\") return;\n // Skip duplicate entries\n const lastEntry = this.entries[this.entries.length - 1];\n if (entry == lastEntry) return;\n // Keep track of entries\n this.entries.push(entry);\n if (this.entries.length > this.size) {\n this.entries.pop(0);\n }\n this.cursor = this.entries.length;\n }\n\n /**\n * Rewind history cursor on the last entry\n */\n rewind() {\n this.cursor = this.entries.length;\n }\n\n /**\n * Returns the previous entry\n */\n getPrevious() {\n const idx = Math.max(0, this.cursor - 1);\n this.cursor = idx;\n return this.entries[idx];\n }\n\n /**\n * Returns the next entry\n */\n getNext() {\n const idx = Math.min(this.entries.length, this.cursor + 1);\n this.cursor = idx;\n return this.entries[idx];\n }\n}\n","import { parse } from \"shell-quote\";\n\n/**\n * Detects all the word boundaries on the given input\n */\nexport function wordBoundaries(input, leftSide = true) {\n let match;\n const words = [];\n const rx = /\\w+/g;\n\n while ((match = rx.exec(input))) {\n if (leftSide) {\n words.push(match.index);\n } else {\n words.push(match.index + match[0].length);\n }\n }\n\n return words;\n}\n\n/**\n * The closest left (or right) word boundary of the given input at the\n * given offset.\n */\nexport function closestLeftBoundary(input, offset) {\n const found = wordBoundaries(input, true)\n .reverse()\n .find(x => x < offset);\n return found == null ? 0 : found;\n}\nexport function closestRightBoundary(input, offset) {\n const found = wordBoundaries(input, false).find(x => x > offset);\n return found == null ? input.length : found;\n}\n\n/**\n * Convert offset at the given input to col/row location\n *\n * This function is not optimized and practically emulates via brute-force\n * the navigation on the terminal, wrapping when they reach the column width.\n */\nexport function offsetToColRow(input, offset, maxCols) {\n let row = 0,\n col = 0;\n\n for (let i = 0; i < offset; ++i) {\n const chr = input.charAt(i);\n if (chr == \"\\n\") {\n col = 0;\n row += 1;\n } else {\n col += 1;\n if (col > maxCols) {\n col = 0;\n row += 1;\n }\n }\n }\n\n return { row, col };\n}\n\n/**\n * Counts the lines in the given input\n */\nexport function countLines(input, maxCols) {\n return offsetToColRow(input, input.length, maxCols).row + 1;\n}\n\n/**\n * Checks if there is an incomplete input\n *\n * An incomplete input is considered:\n * - An input that contains unterminated single quotes\n * - An input that contains unterminated double quotes\n * - An input that ends with \"\\\"\n * - An input that has an incomplete boolean shell expression (&& and ||)\n * - An incomplete pipe expression (|)\n */\nexport function isIncompleteInput(input) {\n // Empty input is not incomplete\n if (input.trim() == \"\") {\n return false;\n }\n\n // Check for dangling single-quote strings\n if ((input.match(/'/g) || []).length % 2 !== 0) {\n return true;\n }\n // Check for dangling double-quote strings\n if ((input.match(/\"/g) || []).length % 2 !== 0) {\n return true;\n }\n // Check for dangling boolean or pipe operations\n if (\n input\n .split(/(\\|\\||\\||&&)/g)\n .pop()\n .trim() == \"\"\n ) {\n return true;\n }\n // Check for tailing slash\n if (input.endsWith(\"\\\\\") && !input.endsWith(\"\\\\\\\\\")) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns true if the expression ends on a tailing whitespace\n */\nexport function hasTailingWhitespace(input) {\n return input.match(/[^\\\\][ \\t]$/m) != null;\n}\n\n/**\n * Returns the last expression in the given input\n */\nexport function getLastToken(input) {\n // Empty expressions\n if (input.trim() === \"\") return \"\";\n if (hasTailingWhitespace(input)) return \"\";\n\n // Last token\n const tokens = parse(input);\n return tokens.pop() || \"\";\n}\n\n/**\n * Returns the auto-complete candidates for the given input\n */\nexport function collectAutocompleteCandidates(callbacks, input) {\n const tokens = parse(input);\n let index = tokens.length - 1;\n let expr = tokens[index] || \"\";\n\n // Empty expressions\n if (input.trim() === \"\") {\n index = 0;\n expr = \"\";\n } else if (hasTailingWhitespace(input)) {\n // Expressions with danging space\n index += 1;\n expr = \"\";\n }\n\n // Collect all auto-complete candidates from the callbacks\n const all = callbacks.reduce((candidates, { fn, args }) => {\n try {\n return candidates.concat(fn(index, tokens, ...args));\n } catch (e) {\n console.error(\"Auto-complete error:\", e);\n return candidates;\n }\n }, []);\n\n // Filter only the ones starting with the expression\n return all.filter(txt => txt.startsWith(expr));\n}\n","import { HistoryController } from \"./HistoryController\";\nimport {\n closestLeftBoundary,\n closestRightBoundary,\n collectAutocompleteCandidates,\n countLines,\n getLastToken,\n hasTailingWhitespace,\n isIncompleteInput,\n offsetToColRow\n} from \"./Utils\";\n\n/**\n * A local terminal controller is responsible for displaying messages\n * and handling local echo for the terminal.\n *\n * Local echo supports most of bash-like input primitives. Namely:\n * - Arrow navigation on the input\n * - Alt-arrow for word-boundary navigation\n * - Alt-backspace for word-boundary deletion\n * - Multi-line input for incomplete commands\n * - Auto-complete hooks\n */\nexport default class LocalEchoController {\n constructor(term, options = {}) {\n this.term = term;\n this._handleTermData = this.handleTermData.bind(this);\n this._handleTermResize = this.handleTermResize.bind(this)\n \n this.history = new HistoryController(options.historySize || 100);\n this.maxAutocompleteEntries = options.maxAutocompleteEntries || 100;\n\n this._autocompleteHandlers = [];\n this._active = false;\n this._input = \"\";\n this._cursor = 0;\n this._activePrompt = null;\n this._activeCharPrompt = null;\n this._termSize = {\n cols: this.term.cols,\n rows: this.term.rows\n };\n \n this.attach()\n }\n\n /////////////////////////////////////////////////////////////////////////////\n // User-Facing API\n /////////////////////////////////////////////////////////////////////////////\n \n /**\n * Detach the controller from the terminal\n */\n detach() {\n this.term.off(\"data\", this._handleTermData);\n this.term.off(\"resize\", this._handleTermResize);\n }\n \n /**\n * Attach controller to the terminal, handling events\n */\n attach() {\n this.term.onData(this._handleTermData);\n this.term.onResize(this._handleTermResize);\n }\n\n /**\n * Register a handler that will be called to satisfy auto-completion\n */\n addAutocompleteHandler(fn, ...args) {\n this._autocompleteHandlers.push({\n fn,\n args\n });\n }\n\n /**\n * Remove a previously registered auto-complete handler\n */\n removeAutocompleteHandler(fn) {\n const idx = this._autocompleteHandlers.findIndex(e => e.fn === fn);\n if (idx === -1) return;\n\n this._autocompleteHandlers.splice(idx, 1);\n }\n\n /**\n * Return a promise that will resolve when the user has completed\n * typing a single line\n */\n read(prompt, continuationPrompt = \"> \") {\n return new Promise((resolve, reject) => {\n this.term.write(prompt);\n this._activePrompt = {\n prompt,\n continuationPrompt,\n resolve,\n reject\n };\n\n this._input = \"\";\n this._cursor = 0;\n this._active = true;\n });\n }\n\n /**\n * Return a promise that will be resolved when the user types a single\n * character.\n *\n * This can be active in addition to `.read()` and will be resolved in\n * priority before it.\n */\n readChar(prompt) {\n return new Promise((resolve, reject) => {\n this.term.write(prompt);\n this._activeCharPrompt = {\n prompt,\n resolve,\n reject\n };\n });\n }\n\n /**\n * Abort a pending read operation\n */\n abortRead(reason = \"aborted\") {\n if (this._activePrompt != null || this._activeCharPrompt != null) {\n this.term.write(\"\\r\\n\");\n }\n if (this._activePrompt != null) {\n this._activePrompt.reject(reason);\n this._activePrompt = null;\n }\n if (this._activeCharPrompt != null) {\n this._activeCharPrompt.reject(reason);\n this._activeCharPrompt = null;\n }\n this._active = false;\n }\n\n /**\n * Prints a message and changes line\n */\n println(message) {\n this.print(message + \"\\n\");\n }\n\n /**\n * Prints a message and properly handles new-lines\n */\n print(message) {\n const normInput = message.replace(/[\\r\\n]+/g, \"\\n\");\n this.term.write(normInput.replace(/\\n/g, \"\\r\\n\"));\n }\n\n /**\n * Prints a list of items using a wide-format\n */\n printWide(items, padding = 2) {\n if (items.length == 0) return println(\"\");\n\n // Compute item sizes and matrix row/cols\n const itemWidth =\n items.reduce((width, item) => Math.max(width, item.length), 0) + padding;\n const wideCols = Math.floor(this._termSize.cols / itemWidth);\n const wideRows = Math.ceil(items.length / wideCols);\n\n // Print matrix\n let i = 0;\n for (let row = 0; row < wideRows; ++row) {\n let rowStr = \"\";\n\n // Prepare columns\n for (let col = 0; col < wideCols; ++col) {\n if (i < items.length) {\n let item = items[i++];\n item += \" \".repeat(itemWidth - item.length);\n rowStr += item;\n }\n }\n this.println(rowStr);\n }\n }\n\n /////////////////////////////////////////////////////////////////////////////\n // Internal API\n /////////////////////////////////////////////////////////////////////////////\n\n /**\n * Apply prompts to the given input\n */\n applyPrompts(input) {\n const prompt = (this._activePrompt || {}).prompt || \"\";\n const continuationPrompt =\n (this._activePrompt || {}).continuationPrompt || \"\";\n\n return prompt + input.replace(/\\n/g, \"\\n\" + continuationPrompt);\n }\n\n /**\n * Advances the `offset` as required in order to accompany the prompt\n * additions to the input.\n */\n applyPromptOffset(input, offset) {\n const newInput = this.applyPrompts(input.substr(0, offset));\n return newInput.length;\n }\n\n /**\n * Clears the current prompt\n *\n * This function will erase all the lines that display the current prompt\n * and move the cursor in the beginning of the first line of the prompt.\n */\n clearInput() {\n const currentPrompt = this.applyPrompts(this._input);\n\n // Get the overall number of lines to clear\n const allRows = countLines(currentPrompt, this._termSize.cols);\n\n // Get the line we are currently in\n const promptCursor = this.applyPromptOffset(this._input, this._cursor);\n const { col, row } = offsetToColRow(\n currentPrompt,\n promptCursor,\n this._termSize.cols\n );\n\n // First move on the last line\n const moveRows = allRows - row - 1;\n for (var i = 0; i < moveRows; ++i) this.term.write(\"\\x1B[E\");\n\n // Clear current input line(s)\n this.term.write(\"\\r\\x1B[K\");\n for (var i = 1; i < allRows; ++i) this.term.write(\"\\x1B[F\\x1B[K\");\n }\n\n /**\n * Replace input with the new input given\n *\n * This function clears all the lines that the current input occupies and\n * then replaces them with the new input.\n */\n setInput(newInput, clearInput = true) {\n // Clear current input\n if (clearInput) this.clearInput();\n\n // Write the new input lines, including the current prompt\n const newPrompt = this.applyPrompts(newInput);\n this.print(newPrompt);\n\n // Trim cursor overflow\n if (this._cursor > newInput.length) {\n this._cursor = newInput.length;\n }\n\n // Move the cursor to the appropriate row/col\n const newCursor = this.applyPromptOffset(newInput, this._cursor);\n const newLines = countLines(newPrompt, this._termSize.cols);\n const { col, row } = offsetToColRow(\n newPrompt,\n newCursor,\n this._termSize.cols\n );\n const moveUpRows = newLines - row - 1;\n\n this.term.write(\"\\r\");\n for (var i = 0; i < moveUpRows; ++i) this.term.write(\"\\x1B[F\");\n for (var i = 0; i < col; ++i) this.term.write(\"\\x1B[C\");\n\n // Replace input\n this._input = newInput;\n }\n\n /**\n * This function completes the current input, calls the given callback\n * and then re-displays the prompt.\n */\n printAndRestartPrompt(callback) {\n const cursor = this._cursor;\n\n // Complete input\n this.setCursor(this._input.length);\n this.term.write(\"\\r\\n\");\n\n // Prepare a function that will resume prompt\n const resume = () => {\n this._cursor = cursor;\n this.setInput(this._input);\n };\n\n // Call the given callback to echo something, and if there is a promise\n // returned, wait for the resolution before resuming prompt.\n const ret = callback();\n if (ret == null) {\n resume();\n } else {\n ret.then(resume);\n }\n }\n\n /**\n * Set the new cursor position, as an offset on the input string\n *\n * This function:\n * - Calculates the previous and current\n */\n setCursor(newCursor) {\n if (newCursor < 0) newCursor = 0;\n if (newCursor > this._input.length) newCursor = this._input.length;\n\n // Apply prompt formatting to get the visual status of the display\n const inputWithPrompt = this.applyPrompts(this._input);\n const inputLines = countLines(inputWithPrompt, this._termSize.cols);\n\n // Estimate previous cursor position\n const prevPromptOffset = this.applyPromptOffset(this._input, this._cursor);\n const { col: prevCol, row: prevRow } = offsetToColRow(\n inputWithPrompt,\n prevPromptOffset,\n this._termSize.cols\n );\n\n // Estimate next cursor position\n const newPromptOffset = this.applyPromptOffset(this._input, newCursor);\n const { col: newCol, row: newRow } = offsetToColRow(\n inputWithPrompt,\n newPromptOffset,\n this._termSize.cols\n );\n\n // Adjust vertically\n if (newRow > prevRow) {\n for (let i = prevRow; i < newRow; ++i) this.term.write(\"\\x1B[B\");\n } else {\n for (let i = newRow; i < prevRow; ++i) this.term.write(\"\\x1B[A\");\n }\n\n // Adjust horizontally\n if (newCol > prevCol) {\n for (let i = prevCol; i < newCol; ++i) this.term.write(\"\\x1B[C\");\n } else {\n for (let i = newCol; i < prevCol; ++i) this.term.write(\"\\x1B[D\");\n }\n\n // Set new offset\n this._cursor = newCursor;\n }\n\n /**\n * Move cursor at given direction\n */\n handleCursorMove(dir) {\n if (dir > 0) {\n const num = Math.min(dir, this._input.length - this._cursor);\n this.setCursor(this._cursor + num);\n } else if (dir < 0) {\n const num = Math.max(dir, -this._cursor);\n this.setCursor(this._cursor + num);\n }\n }\n\n /**\n * Erase a character at cursor location\n */\n handleCursorErase(backspace) {\n const { _cursor, _input } = this;\n if (backspace) {\n if (_cursor <= 0) return;\n const newInput = _input.substr(0, _cursor - 1) + _input.substr(_cursor);\n this.clearInput();\n this._cursor -= 1;\n this.setInput(newInput, false);\n } else {\n const newInput = _input.substr(0, _cursor) + _input.substr(_cursor + 1);\n this.setInput(newInput);\n }\n }\n\n /**\n * Insert character at cursor location\n */\n handleCursorInsert(data) {\n const { _cursor, _input } = this;\n const newInput = _input.substr(0, _cursor) + data + _input.substr(_cursor);\n this._cursor += data.length;\n this.setInput(newInput);\n }\n\n /**\n * Handle input completion\n */\n handleReadComplete() {\n if (this.history) {\n this.history.push(this._input);\n }\n if (this._activePrompt) {\n this._activePrompt.resolve(this._input);\n this._activePrompt = null;\n }\n this.term.write(\"\\r\\n\");\n this._active = false;\n }\n\n /**\n * Handle terminal resize\n *\n * This function clears the prompt using the previous configuration,\n * updates the cached terminal size information and then re-renders the\n * input. This leads (most of the times) into a better formatted input.\n */\n handleTermResize(data) {\n const { rows, cols } = data;\n this.clearInput();\n this._termSize = { cols, rows };\n this.setInput(this._input, false);\n }\n\n /**\n * Handle terminal input\n */\n handleTermData(data) {\n if (!this._active) return;\n\n // If we have an active character prompt, satisfy it in priority\n if (this._activeCharPrompt != null) {\n this._activeCharPrompt.resolve(data);\n this._activeCharPrompt = null;\n this.term.write(\"\\r\\n\");\n return;\n }\n\n // If this looks like a pasted input, expand it\n if (data.length > 3 && data.charCodeAt(0) !== 0x1b) {\n const normData = data.replace(/[\\r\\n]+/g, \"\\r\");\n Array.from(normData).forEach(c => this.handleData(c));\n } else {\n this.handleData(data);\n }\n }\n\n /**\n * Handle a single piece of information from the terminal.\n */\n handleData(data) {\n if (!this._active) return;\n const ord = data.charCodeAt(0);\n let ofs;\n\n // Handle ANSI escape sequences\n if (ord == 0x1b) {\n switch (data.substr(1)) {\n case \"[A\": // Up arrow\n if (this.history) {\n let value = this.history.getPrevious();\n if (value) {\n this.setInput(value);\n this.setCursor(value.length);\n }\n }\n break;\n\n case \"[B\": // Down arrow\n if (this.history) {\n let value = this.history.getNext();\n if (!value) value = \"\";\n this.setInput(value);\n this.setCursor(value.length);\n }\n break;\n\n case \"[D\": // Left Arrow\n this.handleCursorMove(-1);\n break;\n\n case \"[C\": // Right Arrow\n this.handleCursorMove(1);\n break;\n\n case \"[3~\": // Delete\n this.handleCursorErase(false);\n break;\n\n case \"[F\": // End\n this.setCursor(this._input.length);\n break;\n\n case \"[H\": // Home\n this.setCursor(0);\n break;\n\n case \"b\": // ALT + LEFT\n ofs = closestLeftBoundary(this._input, this._cursor);\n if (ofs != null) this.setCursor(ofs);\n break;\n\n case \"f\": // ALT + RIGHT\n ofs = closestRightBoundary(this._input, this._cursor);\n if (ofs != null) this.setCursor(ofs);\n break;\n\n case \"\\x7F\": // CTRL + BACKSPACE\n ofs = closestLeftBoundary(this._input, this._cursor);\n if (ofs != null) {\n this.setInput(\n this._input.substr(0, ofs) + this._input.substr(this._cursor)\n );\n this.setCursor(ofs);\n }\n break;\n }\n\n // Handle special characters\n } else if (ord < 32 || ord === 0x7f) {\n switch (data) {\n case \"\\r\": // ENTER\n if (isIncompleteInput(this._input)) {\n this.handleCursorInsert(\"\\n\");\n } else {\n this.handleReadComplete();\n }\n break;\n\n case \"\\x7F\": // BACKSPACE\n this.handleCursorErase(true);\n break;\n\n case \"\\t\": // TAB\n if (this._autocompleteHandlers.length > 0) {\n const inputFragment = this._input.substr(0, this._cursor);\n const hasTailingSpace = hasTailingWhitespace(inputFragment);\n const candidates = collectAutocompleteCandidates(\n this._autocompleteHandlers,\n inputFragment\n );\n\n // Sort candidates\n candidates.sort();\n\n // Depending on the number of candidates, we are handing them in\n // a different way.\n if (candidates.length === 0) {\n // No candidates? Just add a space if there is none already\n if (!hasTailingSpace) {\n this.handleCursorInsert(\" \");\n }\n } else if (candidates.length === 1) {\n // Just a single candidate? Complete\n const lastToken = getLastToken(inputFragment);\n this.handleCursorInsert(\n candidates[0].substr(lastToken.length) + \" \"\n );\n } else if (candidates.length <= this.maxAutocompleteEntries) {\n // If we are less than maximum auto-complete candidates, print\n // them to the user and re-start prompt\n this.printAndRestartPrompt(() => {\n this.printWide(candidates);\n });\n } else {\n // If we have more than maximum auto-complete candidates, print\n // them only if the user acknowledges a warning\n this.printAndRestartPrompt(() =>\n this.readChar(\n `Display all ${candidates.length} possibilities? (y or n)`\n ).then(yn => {\n if (yn == \"y\" || yn == \"Y\") {\n this.printWide(candidates);\n }\n })\n );\n }\n } else {\n this.handleCursorInsert(\" \");\n }\n break;\n\n case \"\\x03\": // CTRL+C\n this.setCursor(this._input.length);\n this.term.write(\"^C\\r\\n\" + ((this._activePrompt || {}).prompt || \"\"));\n this._input = \"\";\n this._cursor = 0;\n if (this.history) this.history.rewind();\n break;\n }\n\n // Handle visible characters\n } else {\n this.handleCursorInsert(data);\n }\n }\n}\n","\n \n \n
\n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TerminalCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TerminalCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TerminalCard.vue?vue&type=template&id=cc052c0c&scoped=true&\"\nimport script from \"./TerminalCard.vue?vue&type=script&lang=js&\"\nexport * from \"./TerminalCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cc052c0c\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","/*\n * Version: 0.1\n * Usage:\n * Create the ui by initiating new instance of `CronUI`.\n * Pass in the selector for the container element of the form,\n * and an options object.\n *\n * recurrentEventForm = new CronUI('.container', {initial: '* * * * *'});\n */\nfunction CronUI(container, opts) {\n if (container instanceof HTMLElement) {\n this.el = container\n } else if (typeof container === \"string\") {\n this.el = document.querySelector(container)\n } else {\n throw \"CronUI: container parameter in initialization must be an html element or a string selector.\"\n }\n\n // init options\n this.options = opts ? opts : {} /* default to empty obj */\n\n // Render the cron form\n this.render()\n\n // Make sure there is an initial value and set it on.\n if (typeof this.options.initial !== \"string\") {\n this.options.initial = \"* * * * *\"\n }\n this.setCronString(this.options.initial)\n this.currentValue = this.options.initial\n}\n\n\nCronUI.prototype.render = function() {\n let suffix\n let j\n let i\n let el = this.el\n\n // ------- build some static data -------\n\n // options for minutes in an hour\n let str_opt_mih = \"\"\n for (i = 0; i < 60; i++) {\n j = (i < 10) ? \"0\" : \"\"\n str_opt_mih += \"\" + j + i + \" \\n\"\n }\n\n // options for hours in a day\n let str_opt_hid = \"\"\n for (i = 0; i < 24; i++) {\n j = (i < 10) ? \"0\" : \"\"\n str_opt_hid += \"\" + j + i + \" \\n\"\n }\n\n // options for days of month\n let str_opt_dom = \"\"\n for (i = 1; i < 32; i++) {\n if (i == 1 || i == 21 || i == 31) {\n suffix = \"st\"\n } else if (i == 2 || i == 22) {\n suffix = \"nd\"\n } else if (i == 3 || i == 23) {\n suffix = \"rd\"\n } else {\n suffix = \"th\"\n }\n str_opt_dom += \"\" + i + suffix + \" \\n\"\n }\n\n // options for months\n let str_opt_month = \"\"\n const months = [\"January\", \"February\", \"March\", \"April\",\n \"May\", \"June\", \"July\", \"August\",\n \"September\", \"October\", \"November\", \"December\"]\n for (i = 0; i < months.length; i++) {\n str_opt_month += \"\" + months[i] + \" \\n\"\n }\n\n // options for day of week\n let str_opt_dow = \"\"\n const days = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\",\n \"Friday\", \"Saturday\"]\n for (i = 0; i < days.length; i++) {\n str_opt_dow += \"\" + days[i] + \" \\n\"\n }\n\n // options for period\n let str_opt_period = \"\"\n const periods = [\"minute\", \"hour\", \"day\", \"week\", \"month\", \"year\"]\n for (i = 0; i < periods.length; i++) {\n str_opt_period += \"\" + periods[i] + \" \\n\"\n }\n\n\n // ---- define select boxes in the right order -----\n let blocks = {}\n\n // Period\n el.insertAdjacentHTML(\"beforeend\",\n \"\" + str_opt_period + \" \")\n let periodEl = el.querySelector(\".cron-period select\")\n periodEl.addEventListener(\"change\", this.periodChanged.bind(this))\n periodEl.addEventListener(\"change\", this.changeEvent.bind(this))\n\n // Day of month\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" on the \" + str_opt_dom\n + \" \")\n blocks[\"dom\"] = el.querySelector(\".cron-block-dom\")\n\n // Month\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" of \" + str_opt_month\n + \" \")\n blocks[\"month\"] = el.querySelector(\".cron-block-month\")\n\n // Minutes\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" at \" + str_opt_mih\n + \" minutes past the hour \")\n blocks[\"mins\"] = el.querySelector(\".cron-block-mins\")\n\n // Day of week\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" on \" + str_opt_dow\n + \" \")\n blocks[\"dow\"] = el.querySelector(\".cron-block-dow\")\n\n // Time\n el.insertAdjacentHTML(\"beforeend\", \"\"\n + \" at \" + str_opt_hid\n + \" :\" + str_opt_mih\n + \" \")\n blocks[\"time\"] = el.querySelector(\".cron-block-time\")\n\n // Atttach the change event to all selectors\n for (let blockName in blocks) {\n [].forEach.call(blocks[blockName].querySelectorAll(\"select\"), function(selectEl) {\n selectEl.addEventListener(\"change\", this.changeEvent.bind(this))\n }.bind(this))\n }\n\n // Save a reference to blocks\n this.blocks = blocks\n}\n\nCronUI.prototype.periodChanged = function() {\n let blocks = this.blocks\n let cronPeriodEl = this.el.querySelector(\".cron-period select\")\n let period = cronPeriodEl.options[cronPeriodEl.selectedIndex].value\n\n // Hide all current blocks\n for (let blockName in blocks) {\n blocks[blockName].style.display = \"none\"\n }\n\n // Show only blocks that needs to be shown by the period chosen\n if (CronUI.displayMatrix.hasOwnProperty(period)) {\n let b = CronUI.displayMatrix[period]\n for (let i = 0; i < b.length; i++) {\n blocks[b[i]].style.display = \"\"\n }\n }\n}\n\n// The `changeEvent` is fired whenever there is a form change.\n// It updates the `currentValue` of cron string and optionally calls\n// a user set callback.\nCronUI.prototype.changeEvent = function() {\n this.currentValue = this.getCronString()\n if (typeof this.options.changeEvent === \"function\") {\n this.options.changeEvent(this.currentValue)\n }\n}\n\n\nCronUI.prototype.getCronString = function() {\n let min, hour, day, month, dow\n min = hour = day = month = dow = \"*\"\n let blocks = this.blocks\n // Helper to get value from select fields\n let getSelectValue = function(el) {\n return el.options[el.selectedIndex].value\n }\n\n let selectedPeriod = getSelectValue(this.el.querySelector(\".cron-period select\"))\n switch (selectedPeriod) {\n case \"minute\":\n break\n\n case \"hour\":\n min = getSelectValue(blocks[\"mins\"].querySelector(\"select\"))\n break\n\n case \"day\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n break\n\n case \"week\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n dow = getSelectValue(blocks[\"dow\"].querySelector(\"select\"))\n break\n\n case \"month\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n day = getSelectValue(blocks[\"dom\"].querySelector(\"select\"))\n break\n\n case \"year\":\n min = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-min\"))\n hour = getSelectValue(blocks[\"time\"].querySelector(\".cron-time-hour\"))\n day = getSelectValue(blocks[\"dom\"].querySelector(\"select\"))\n month = getSelectValue(blocks[\"month\"].querySelector(\"select\"))\n break\n\n default:\n // we assume this only happens when customValues is set\n return selectedPeriod\n }\n return [min, hour, day, month, dow].join(\" \")\n}\n\nCronUI.prototype.setCronString = function(cronString) {\n let blocks = this.blocks\n let cronType = CronUI.getCronType(cronString)\n\n if (!cronType) {\n return false\n }\n\n let d = cronString.split(\" \")\n let v = {\n \"mins\": d[0],\n \"hour\": d[1],\n \"dom\": d[2],\n \"month\": d[3],\n \"dow\": d[4],\n }\n\n // update appropriate select boxes\n let targets = CronUI.displayMatrix[cronType]\n for (let i = 0; i < targets.length; i++) {\n let tgt = targets[i]\n if (tgt == \"time\") {\n blocks[tgt].querySelector(\".cron-time-hour\").value = v[\"hour\"]\n\n blocks[tgt].querySelector(\".cron-time-min\").value = v[\"mins\"]\n } else {\n blocks[tgt].querySelector(\"select\").value = v[tgt]\n }\n }\n\n // Update the period select box\n this.el.querySelector(\".cron-period select\").value = cronType\n this.periodChanged()\n\n return this\n}\n\n// Static functions and settings\n// --------------------------------------------------\n\nCronUI.displayMatrix = {\n \"minute\": [],\n \"hour\": [\"mins\"],\n \"day\": [\"time\"],\n \"week\": [\"dow\", \"time\"],\n \"month\": [\"dom\", \"time\"],\n \"year\": [\"dom\", \"month\", \"time\"],\n}\n\nCronUI.cronTypes = {\n \"minute\": /^(\\*\\s){4}\\*$/, // \"* * * * *\"\n \"hour\": /^\\d{1,2}\\s(\\*\\s){3}\\*$/, // \"? * * * *\"\n \"day\": /^(\\d{1,2}\\s){2}(\\*\\s){2}\\*$/, // \"? ? * * *\"\n \"week\": /^(\\d{1,2}\\s){2}(\\*\\s){2}\\d{1,2}$/, // \"? ? * * ?\"\n \"month\": /^(\\d{1,2}\\s){3}\\*\\s\\*$/, // \"? ? ? * *\"\n \"year\": /^(\\d{1,2}\\s){4}\\*$/, // \"? ? ? ? *\"\n}\n\nCronUI.getCronType = function(cronString) {\n // Try for provided cron string, and fallback to the instance cron string\n cronString = cronString ? cronString : this.getCronString()\n\n // check format of initial cron value\n const valid_cron = /^((\\d{1,2}|\\*)\\s){4}(\\d{1,2}|\\*)$/\n if (typeof cronString != \"string\" || !valid_cron.test(cronString)) {\n return undefined\n }\n\n // check actual cron values\n let d = cronString.split(\" \")\n // mm, hh, DD, MM, DOW\n let minval = [0, 0, 1, 1, 0]\n let maxval = [59, 23, 31, 12, 6]\n for (var i = 0; i < d.length; i++) {\n if (d[i] == \"*\") continue\n var v = parseInt(d[i])\n if (v <= maxval[i] && v >= minval[i]) continue\n // If we got here, the value is violating some rule. exit.\n return undefined\n }\n\n // determine combination\n for (let type in CronUI.cronTypes) {\n if (CronUI.cronTypes[type].test(cronString)) {\n return type\n }\n }\n\n // unknown combination\n return undefined\n}\n\nexport default CronUI\n","\n \n \n \n \n Run \n \n \n\n \n Formatted\n \n \n Cli\n \n \n \n \n \n \n \n \n \n \n Client Type: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n info\n \n \n \n
{{ selectedFunction.description }} \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Once: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Recurring: Every
\n \n \n \n \n \n \n \n \n \n Test \n Run \n Save \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n Results \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunCard.vue?vue&type=template&id=5dd162c9&scoped=true&\"\nimport script from \"./RunCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RunCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunCard.vue?vue&type=style&index=0&id=5dd162c9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5dd162c9\",\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 { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\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 { 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';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VCombobox,VContainer,VDatePicker,VIcon,VMenu,VRadio,VRadioGroup,VRow,VSelect,VSpacer,VSwitch,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider,VTextField,VTimePicker})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Run.vue?vue&type=template&id=74868f95&scoped=true&\"\nimport script from \"./Run.vue?vue&type=script&lang=js&\"\nexport * from \"./Run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74868f95\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('CommonSettings')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('UserSettings')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"Common Settings\")]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\",\"align-self\":\"center\"}},[_vm._v(\"\\n Parse modules from:\\n \")]),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.minions,\"item-text\":\"minion_id\",\"item-value\":\"minion_id\",\"label\":\"Target\"},model:{value:(_vm.target),callback:function ($$v) {_vm.target=$$v},expression:\"target\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.target == null,\"color\":\"primary\"},on:{\"click\":_vm.parseModules}},[_vm._v(\"Submit\")])],1),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"1\",\"align-self\":\"center\"}},[_vm._v(\"\\n Alcali Version:\\n \")]),_c('v-col',{attrs:{\"sm\":\"4\",\"lg\":\"2\",\"align-self\":\"center\"}},[_c('span',[_vm._v(_vm._s(_vm.version))])])],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',[_vm._v(\"Minions Fields\")]),_vm._l((_vm.uniqueMinionField),function(item){return _c('v-row',{key:item.name},[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('b',[_vm._v(_vm._s(item.name))])]),_c('v-col',{attrs:{\"lg\":\"4\"}},[_vm._v(_vm._s(item[\"function\"]))]),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"red\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.deleteMinionsFields(item.name)}}},[_vm._v(\"Delete\")])],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"single-line\":\"\"},model:{value:(_vm.minionsfields_name),callback:function ($$v) {_vm.minionsfields_name=$$v},expression:\"minionsfields_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-combobox',{attrs:{\"items\":_vm.functions,\"item-value\":\"name\",\"item-text\":\"name\",\"label\":\"Functions\"},model:{value:(_vm.minionsfields_value),callback:function ($$v) {_vm.minionsfields_value=$$v},expression:\"minionsfields_value\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.minionsfields_name == null || _vm.minionsfields_value == null,\"color\":\"primary\"},on:{\"click\":_vm.createMinionsFields}},[_vm._v(\"Create\\n \")])],1)],1)],2),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',[_vm._v(\"Custom Conformity\")]),_vm._l((_vm.conformity),function(item){return _c('v-row',{key:item.id},[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('b',[_vm._v(_vm._s(item.name))])]),_c('v-col',{attrs:{\"lg\":\"4\"}},[_vm._v(_vm._s(item.function))]),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"color\":\"red\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.deleteConformity(item.id)}}},[_vm._v(\"Delete\")])],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"single-line\":\"\"},model:{value:(_vm.conformity_name),callback:function ($$v) {_vm.conformity_name=$$v},expression:\"conformity_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Function\",\"single-line\":\"\"},model:{value:(_vm.conformity_value),callback:function ($$v) {_vm.conformity_value=$$v},expression:\"conformity_value\"}})],1),_c('v-col',{attrs:{\"align-self\":\"center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.conformity_name == null || _vm.conformity_value === null,\"color\":\"primary\"},on:{\"click\":_vm.createConformity}},[_vm._v(\"Create\\n \")])],1)],1)],2)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n Common Settings \n \n \n \n \n Parse modules from:\n \n \n \n \n \n Submit \n \n \n Alcali Version:\n \n \n {{version}} \n \n \n \n \n Minions Fields \n \n {{item.name}} \n {{item[\"function\"]}} \n \n Delete \n \n \n \n \n \n\n \n \n \n \n \n Create\n \n \n \n\n \n \n Custom Conformity \n \n {{item.name}} \n {{item.function}} \n \n Delete \n \n \n \n \n \n \n \n \n \n \n Create\n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommonSettings.vue?vue&type=template&id=ba67d60c&scoped=true&\"\nimport script from \"./CommonSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./CommonSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ba67d60c\",\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 { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VCombobox,VContainer,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"User Settings\")]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('span',[_vm._v(\"Jobs Notifications\")]),_vm._l((_vm.notifs),function(val,name){return _c('div',{key:name},[_c('v-switch',{attrs:{\"label\":name,\"color\":\"primary\",\"hide-details\":\"\"},model:{value:(_vm.notifs[name]),callback:function ($$v) {_vm.$set(_vm.notifs, name, $$v)},expression:\"notifs[name]\"}})],1)})],2),_c('v-col',{attrs:{\"lg\":\"2\"}},[_c('span',[_vm._v(\"Max Notifications\")]),_c('v-text-field',{attrs:{\"type\":\"number\"},model:{value:(_vm.max_notifs),callback:function ($$v) {_vm.max_notifs=$$v},expression:\"max_notifs\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.updateUserSettings}},[_vm._v(\"Submit\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n User Settings \n \n \n \n \n Jobs Notifications \n \n \n
\n \n \n Max Notifications \n \n \n \n \n \n \n \n Submit \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserSettings.vue?vue&type=template&id=50109ca2&scoped=true&\"\nimport script from \"./UserSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./UserSettings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50109ca2\",\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 { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VRow,VSpacer,VSwitch,VTextField})\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=ef54e078&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef54e078\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('ConformityTable')],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Conformity\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion_id\",\"item-key\":\"minion_id\",\"headers\":_vm.headers,\"items\":_vm.conformity,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/conformity/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id))])]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity.toString())+\"\\n \")])]}},{key:\"item.succeeded\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.succeeded != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"green\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.succeeded)+\"\\n \")]):_vm._e()]}},{key:\"item.unchanged\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.unchanged != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"orange\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.unchanged)+\"\\n \")]):_vm._e()]}},{key:\"item.failed\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.failed != null)?_c('v-chip',{staticClass:\"ma-2\",attrs:{\"label\":\"\",\"outlined\":\"\",\"color\":\"red\",\"text-color\":\"base\"}},[_vm._v(\"\\n \"+_vm._s(item.failed)+\"\\n \")]):_vm._e()]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"blue\",\"tile\":\"\",\"dark\":\"\",\"to\":'/conformity/'+item.minion_id}},[_vm._v(\"\\n detail\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\",\"to\":'/run/?target='+item.minion_id+'&function=state.apply'}},[_vm._v(\"\\n highstate\\n \")])],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Conformity\n \n \n \n \n \n {{ item.minion_id }} \n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n {{ item.conformity == null ? \"unknown\": item.conformity.toString() }}\n \n \n \n \n {{item.succeeded}}\n \n \n \n \n {{item.unchanged}}\n \n \n \n \n {{item.failed}}\n \n \n \n \n \n detail\n \n \n highstate\n \n
\n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityTable.vue?vue&type=template&id=01c8285c&scoped=true&\"\nimport script from \"./ConformityTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01c8285c\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conformity.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conformity.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Conformity.vue?vue&type=template&id=090bf60e&scoped=true&\"\nimport script from \"./Conformity.vue?vue&type=script&lang=js&\"\nexport * from \"./Conformity.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"090bf60e\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('ConformityCard',{attrs:{\"minion_id\":_vm.minion_id,\"conformity\":_vm.conformity,\"custom_conformity\":_vm.custom_conformity}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"lg\":\"8\"}},[_c('ConformityDetailCard',{attrs:{\"succeeded\":_vm.succeeded,\"unchanged\":_vm.unchanged,\"failed\":_vm.failed}})],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Highstate Conformity\\n \"),_c('v-spacer'),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.succeeded).length>0),expression:\"Object.keys(succeeded).length>0\"}],staticClass:\"mb-0 mt-0\",attrs:{\"color\":\"green\",\"label\":(\"Succeeded: \" + (Object.keys(_vm.succeeded).length))},model:{value:(_vm.succeeded_checkbox),callback:function ($$v) {_vm.succeeded_checkbox=$$v},expression:\"succeeded_checkbox\"}}),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.unchanged).length>0),expression:\"Object.keys(unchanged).length>0\"}],staticClass:\"ml-3 mb-0 mt-0\",attrs:{\"color\":\"orange\",\"label\":(\"Unchanged: \" + (Object.keys(_vm.unchanged).length))},model:{value:(_vm.unchanged_checkbox),callback:function ($$v) {_vm.unchanged_checkbox=$$v},expression:\"unchanged_checkbox\"}}),_c('v-checkbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(Object.keys(_vm.failed).length>0),expression:\"Object.keys(failed).length>0\"}],staticClass:\"ml-3 mb-0 mt-0\",attrs:{\"color\":\"red\",\"label\":(\"Failed: \" + (Object.keys(_vm.failed).length))},model:{value:(_vm.failed_checkbox),callback:function ($$v) {_vm.failed_checkbox=$$v},expression:\"failed_checkbox\"}})],1),_c('v-expansion-panels',_vm._l((_vm.succeeded),function(item,i){return (_vm.succeeded_checkbox)?_c('v-expansion-panel',{key:i,attrs:{\"dark\":\"\"}},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1),_c('v-expansion-panels',_vm._l((_vm.unchanged),function(item,i){return (_vm.unchanged_checkbox)?_c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"orange\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1),_c('v-expansion-panels',_vm._l((_vm.failed),function(item,i){return (_vm.failed_checkbox)?_c('v-expansion-panel',{key:i},[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"$vuetify.icons.expand\")])]},proxy:true}],null,true)},[_vm._v(_vm._s(i)+\"\\n \")]),_c('v-expansion-panel-content',{domProps:{\"innerHTML\":_vm._s(item)}})],1):_vm._e()}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Highstate Conformity\n \n 0\"\n color=\"green\"\n v-model=\"succeeded_checkbox\"\n :label=\"`Succeeded: ${Object.keys(succeeded).length}`\"\n > \n 0\"\n class=\"ml-3 mb-0 mt-0\"\n color=\"orange\"\n v-model=\"unchanged_checkbox\"\n :label=\"`Unchanged: ${Object.keys(unchanged).length}`\"\n > \n 0\"\n class=\"ml-3 mb-0 mt-0\"\n color=\"red\"\n v-model=\"failed_checkbox\"\n :label=\"`Failed: ${Object.keys(failed).length}`\"\n > \n \n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n\n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n\n \n \n {{i}}\n \n $vuetify.icons.expand \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityDetailCard.vue?vue&type=template&id=69fc5fbb&scoped=true&\"\nimport script from \"./ConformityDetailCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityDetailCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69fc5fbb\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\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';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardTitle,VCheckbox,VContainer,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.minion_id))]),_c('v-simple-table',[_c('tbody',[_c('tr',[_c('td',[_vm._v(\"Highstate\")]),_c('td',{staticClass:\"text-right\"},[_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.valRepr(_vm.conformity)))])],1)])]),_vm._l((_vm.custom_conformity),function(conf){return _c('tbody',{key:conf.key},_vm._l((conf),function(val,key){return _c('tr',{key:key},[_c('td',[_vm._v(_vm._s(key))]),_c('td',{staticClass:\"text-right\"},[(_vm.isBool(val))?_c('v-chip',{attrs:{\"color\":_vm.boolRepr(_vm.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.valRepr(_vm.conformity)))]):_c('span',[_vm._v(_vm._s(_vm.valRepr(val)))])],1)])}),0)})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{minion_id}} \n \n \n \n Highstate \n \n {{ valRepr(conformity) }} \n \n \n \n \n \n {{ key }} \n \n {{ valRepr(conformity) }} \n {{ valRepr(val) }} \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityCard.vue?vue&type=template&id=71cc8090&scoped=true&\"\nimport script from \"./ConformityCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71cc8090\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VChip,VContainer,VSimpleTable})\n","\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConformityDetail.vue?vue&type=template&id=bc290f46&scoped=true&\"\nimport script from \"./ConformityDetail.vue?vue&type=script&lang=js&\"\nexport * from \"./ConformityDetail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc290f46\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('UserCard')],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-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"username\",\"headers\":_vm.headers,\"items\":_vm.users},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',{staticClass:\"headline\"},[_vm._v(\"Users\")]),_c('div',{staticClass:\"flex-grow-1\"}),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"mb-2\",attrs:{\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){_vm.user = {}}}},on),[_vm._v(\"Create\")])]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.editing === true ? \"Update User\" : \"Create User\"))]),_c('v-card-text',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Username\",\"rules\":_vm.userRules,\"required\":\"\"},model:{value:(_vm.user.username),callback:function ($$v) {_vm.$set(_vm.user, \"username\", $$v)},expression:\"user.username\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Email\",\"rules\":_vm.emailRules,\"required\":\"\"},model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"First Name\"},model:{value:(_vm.user.first_name),callback:function ($$v) {_vm.$set(_vm.user, \"first_name\", $$v)},expression:\"user.first_name\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Last Name\"},model:{value:(_vm.user.last_name),callback:function ($$v) {_vm.$set(_vm.user, \"last_name\", $$v)},expression:\"user.last_name\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.show ? 'visibility' : 'visibility_off',\"type\":_vm.show ? 'text' : 'password',\"name\":\"input-10-1\",\"label\":\"Password\",\"counter\":\"\"},on:{\"click:append\":function($event){_vm.show = !_vm.show}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1),_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('v-checkbox',{attrs:{\"label\":\"Staff User\"},model:{value:(_vm.user.is_staff),callback:function ($$v) {_vm.$set(_vm.user, \"is_staff\", $$v)},expression:\"user.is_staff\"}})],1)],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),(_vm.editing)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.resetUser}},[_vm._v(\"Discard\")]):_vm._e(),(_vm.editing)?_c('v-btn',{attrs:{\"color\":\"warning\"},on:{\"click\":_vm.updateUser}},[_vm._v(\"Update\")]):_vm._e(),(!_vm.editing)?_c('v-btn',{attrs:{\"color\":\"warning\",\"disabled\":_vm.user.username == null || _vm.user.email == ''},on:{\"click\":_vm.createUser}},[_vm._v(\"Create\\n \")]):_vm._e()],1)],1)],1)],1)]},proxy:true},{key:\"item.is_staff\",fn:function(ref){\nvar item = ref.item;\nreturn [(item.is_staff)?_c('v-chip',{attrs:{\"color\":\"primary\",\"dark\":\"\"}},[_vm._v(_vm._s(item.is_staff))]):_vm._e()]}},{key:\"item.token\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"primary\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.showToken(item)}}},[_vm._v(\"\\n view\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageToken('renew', item)}}},[_vm._v(\"\\n renew\\n \")]),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\",\"disabled\":String(item.id) === _vm.currentUserId},on:{\"click\":function($event){return _vm.manageToken('revoke', item)}}},[_vm._v(\"\\n revoke\\n \")])],1)]}},{key:\"item.date_joined\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.date_joined).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"orange\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.editUser(item)}}},[_vm._v(\"\\n update\\n \")]),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\",\"disabled\":String(item.id) === _vm.currentUserId},on:{\"click\":function($event){return _vm.confirmDelete(item)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1)],1)],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialogDelete),callback:function ($$v) {_vm.dialogDelete=$$v},expression:\"dialogDelete\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline red\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Delete \"+_vm._s(_vm.user.username)+\" ?\\n \")]),_c('v-card-text',[_c('br'),_vm._v(\"\\n this action is irreversible.\\n \")]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogDelete = false}}},[_vm._v(\"\\n close\\n \")]),_c('v-btn',{attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":function($event){return _vm.deleteUser(_vm.user.id)}}},[_vm._v(\"\\n delete\\n \")])],1)],1)],1)],1),_c('div',{staticClass:\"text-center\"},[_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.dialogToken),callback:function ($$v) {_vm.dialogToken=$$v},expression:\"dialogToken\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline primary\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.user.username)+\" Token\\n \")]),(_vm.user.user_settings)?_c('v-card-text',[_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.user.user_settings.token)+\"\\n \")]):_vm._e(),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.dialogToken = false}}},[_vm._v(\"\\n close\\n \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n Users \n
\n \n \n Create \n \n \n {{ editing === true ? \"Update User\" : \"Create User\"}} \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n Discard \n Update \n Create\n \n \n \n\n \n \n \n\n \n {{ item.is_staff }} \n \n \n \n \n view\n \n \n renew\n \n \n revoke\n \n
\n \n \n {{new Date(item.date_joined).toLocaleString(\"en-GB\")}}\n \n \n \n \n update\n \n \n delete\n \n
\n \n \n \n \n \n \n \n \n \n Delete {{ user.username }} ?\n \n\n \n \n this action is irreversible.\n \n\n \n\n \n \n \n close\n \n \n delete\n \n \n \n \n
\n \n \n \n \n {{ user.username }} Token\n \n\n \n \n {{user.user_settings.token}}\n \n\n \n\n \n \n \n close\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/vuetify-loader/lib/loader.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserCard.vue?vue&type=template&id=7dccc9a6&scoped=true&\"\nimport script from \"./UserCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UserCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7dccc9a6\",\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 { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VChip,VCol,VContainer,VDataTable,VDialog,VDivider,VRow,VSpacer,VTextField,VToolbar,VToolbarTitle})\n","\n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=68ff4932&scoped=true&\"\nimport script from \"./Users.vue?vue&type=script&lang=js&\"\nexport * from \"./Users.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ff4932\",\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';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('ScheduleTable',{key:_vm.refreshKey}),(_vm.fabs)?_c('Fab',{attrs:{\"fabs\":_vm.fabs},on:{\"fab_action\":_vm.fabAction}}):_vm._e()],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-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Schedules\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"minion\",\"headers\":_vm.headers,\"items\":_vm.schedules,\"search\":_vm.search,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"item.enabled\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.enabled),\"dark\":\"\"}},[_vm._v(_vm._s(item.enabled))])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":item.enabled ? 'orange': 'green',\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageSchedule(item.enabled ? 'disable_job': 'enable_job', item.name, item.minion)}}},[_vm._v(\"\\n \"+_vm._s(item.enabled ? \"disable\":\"enable\")+\"\\n \")]),_c('v-btn',{staticClass:\"ma-2\",attrs:{\"small\":\"\",\"color\":\"red\",\"tile\":\"\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.manageSchedule('delete', item.name, item.minion)}}},[_vm._v(\"\\n delete\\n \")])],1)]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n Schedules\n \n \n \n \n \n {{ item.enabled }} \n \n \n \n \n {{ item.enabled ? \"disable\":\"enable\"}}\n \n \n delete\n \n
\n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScheduleTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScheduleTable.vue?vue&type=template&id=16fe8902&scoped=true&\"\nimport script from \"./ScheduleTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ScheduleTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16fe8902\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VContainer,VDataTable,VSpacer,VTextField})\n","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Schedules.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Schedules.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Schedules.vue?vue&type=template&id=56af01f4&scoped=true&\"\nimport script from \"./Schedules.vue?vue&type=script&lang=js&\"\nexport * from \"./Schedules.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56af01f4\",\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 { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"offset\":\"4\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"black white--text subheading\",attrs:{\"primary-title\":\"\"}},[_c('span',{staticClass:\"title\"},[_vm._v(\"Oops\")])]),_c('v-card-text',{staticClass:\"display-1 ma-7 text-center\"},[_vm._v(\"\\n 404. There is no page here.\\n \")]),_c('v-card-actions',[_c('v-btn',{staticClass:\"primary darken-3 white--text\",attrs:{\"text\":\"\",\"to\":\"/\"}},[_c('v-icon',{attrs:{\"left\":\"\"},domProps:{\"textContent\":_vm._s('mdi-arrow-left')}}),_vm._v(\"\\n Back\\n \")],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n Oops \n \n \n 404. There is no page here.\n \n \n \n \n Back\n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=06e44549&scoped=true&\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06e44549\",\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 { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,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',[_c('v-row',[(_vm.jobs.length === 0 && _vm.minions.length === 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('p',{staticClass:\"display-2 text-center\"},[_vm._v(\"Sorry, no results...\")])])],1):_vm._e(),(_vm.jobs.length > 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Jobs\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.job_search),callback:function ($$v) {_vm.job_search=$$v},expression:\"job_search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"sort-by\":\"jid\",\"sort-desc\":\"\",\"headers\":_vm.jobs_headers,\"items\":_vm.jobs,\"search\":_vm.search,\"items-per-page\":5},scopedSlots:_vm._u([{key:\"item.jid\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",class:item.jid.includes(_vm.query) ? 'red': '',attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/jobs/'+item.jid+'/'+item.id}},[_vm._v(_vm._s(item.jid)+\"\\n \")])]}},{key:\"item.fun\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{class:item.fun.includes(_vm.query) ? 'red': ''},[_vm._v(_vm._s(item.fun))])]}},{key:\"item.arguments\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments)+\"\\n \")]}},{key:\"item.success\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.success),\"dark\":\"\"}},[_vm._v(_vm._s(_vm.boolText(item.success)))])]}},{key:\"item.alter_time\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(new Date(item.alter_time).toLocaleString(\"en-GB\"))+\"\\n \")]}}],null,false,1135029737)})],1)],1)],1):_vm._e(),(_vm.minions.length > 0)?_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n Minions\\n \"),_c('v-spacer'),_c('v-text-field',{attrs:{\"append-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.minions_headers,\"items\":_vm.minions,\"items-per-page\":5},scopedSlots:_vm._u([{key:\"item.minion_id\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{staticClass:\"text-none\",class:item.minion_id.includes(_vm.query) ? 'red': '',attrs:{\"text\":\"\",\"small\":\"\",\"to\":'/minions/'+item.minion_id}},[_vm._v(_vm._s(item.minion_id)+\"\\n \")])]}},{key:\"item.conformity\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.boolRepr(item.conformity),\"dark\":\"\"}},[_vm._v(_vm._s(item.conformity == null ? \"unknown\": item.conformity)+\"\\n \")])]}},{key:\"item.last_job\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\"))+\"\\n \")]}},{key:\"item.last_highstate\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\"\\n \"+_vm._s(item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\"))+\"\\n \")]}}],null,false,771680795)})],1)],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n Sorry, no results...
\n \n \n 0\">\n \n \n \n Jobs\n \n \n \n \n \n {{ item.jid }}\n \n \n \n {{item.fun}} \n \n \n {{ item.arguments.length > 20 ? item.arguments.slice(0, 20)+\"...\": item.arguments }}\n \n \n {{ boolText(item.success) }} \n \n \n {{new Date(item.alter_time).toLocaleString(\"en-GB\")}}\n \n \n \n \n \n 0\">\n \n \n \n Minions\n \n \n \n \n \n {{ item.minion_id }}\n \n \n \n {{ item.conformity == null ? \"unknown\": item.conformity\n }}\n \n \n \n {{item.last_job === null ? \"\": new Date(item.last_job).toLocaleString(\"en-GB\")}}\n \n \n {{item.last_highstate === null ? \"\": new Date(item.last_highstate).toLocaleString(\"en-GB\")}}\n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=f2f59722&scoped=true&\"\nimport script from \"./Search.vue?vue&type=script&lang=js&\"\nexport * from \"./Search.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2f59722\",\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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VCol,VContainer,VDataTable,VRow,VSpacer,VTextField})\n","import Vue from \"vue\"\nimport Router from \"vue-router\"\nimport store from \"./store\"\nimport Home from \"./views/Home.vue\"\nimport Login from \"./views/Login\"\nimport Jobs from \"./views/Jobs\"\nimport Keys from \"./views/Keys\"\nimport Minions from \"./views/Minions\"\nimport MinionDetail from \"./views/MinionDetail\"\nimport JobDetail from \"./views/JobDetail\"\nimport Events from \"./views/Events\"\nimport Run from \"./views/Run\"\nimport Settings from \"./views/Settings\"\nimport Conformity from \"./views/Conformity\"\nimport ConformityDetail from \"./views/ConformityDetail\"\nimport Users from \"./views/Users\"\nimport Schedules from \"./views/Schedules\"\nimport NotFound from \"./components/NotFound\"\nimport Search from \"./views/Search\"\n\nVue.use(Router)\n\nconst router = new Router({\n routes: [\n {\n path: \"/\",\n name: \"home\",\n component: Home,\n },\n {\n path: \"/minions\",\n name: \"minions\",\n component: Minions,\n },\n {\n path: \"/minions/:minion_id\",\n name: \"minion_detail\",\n component: MinionDetail,\n props: true,\n },\n {\n path: \"/jobs\",\n name: \"jobs\",\n component: Jobs,\n },\n {\n path: \"/jobs/:jid/:minion_id\",\n name: \"job_detail\",\n component: JobDetail,\n props: true,\n },\n {\n path: \"/run\",\n name: \"run\",\n component: Run,\n },\n {\n path: \"/keys\",\n name: \"keys\",\n component: Keys,\n },\n {\n path: \"/events\",\n name: \"events\",\n component: Events,\n },\n {\n path: \"/conformity\",\n name: \"conformity\",\n component: Conformity,\n },\n {\n path: \"/conformity/:minion_id\",\n name: \"conformity_detail\",\n component: ConformityDetail,\n props: true,\n },\n {\n path: \"/schedules\",\n name: \"schedules\",\n component: Schedules,\n },\n {\n path: \"/users\",\n name: \"users\",\n component: Users,\n },\n {\n path: \"/settings\",\n name: \"settings\",\n component: Settings,\n },\n {\n path: \"/search\",\n name: \"search\",\n component: Search,\n },\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n meta: {\n plainLayout: true,\n },\n },\n { path: \"*\", component: NotFound },\n /*\n {\n path: '/about',\n name: 'about',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/!* webpackChunkName: \"about\" *!/ './views/About.vue')\n },\n */\n\n ],\n})\n\nrouter.beforeEach((to, from, next) => {\n if (!store.getters.isLoggedIn && to.path !== \"/login\") {\n next(\"/login\")\n } else if (to.path === \"/login\" && store.getters.isLoggedIn) {\n next(\"/\")\n } else {\n next()\n }\n})\n\n\nexport default router\n","import Vue from \"vue\"\nimport App from \"./App.vue\"\nimport vuetify from \"./plugins/vuetify\"\nimport router from \"./router\"\nimport axios from \"axios\"\nimport store from \"./store\"\nimport jwtDecode from \"jwt-decode\"\n\n\nVue.config.productionTip = false\n\nVue.prototype.$http = axios\nVue.prototype.$http.defaults.xsrfCookieName = \"csrftoken\"\nVue.prototype.$http.defaults.xsrfHeaderName = \"X-CSRFToken\"\nVue.prototype.$http.defaults.headers.common[\"Content-Type\"] = \"application/json\"\n\nconst accessToken = localStorage.getItem(\"token\")\nif (accessToken) {\n Vue.prototype.$http.defaults.headers.common.Authorization = `Bearer ${accessToken}`\n Vue.prototype.$http.defaults.withCredentials = true\n}\n\n/// for multiple parallel requests\nlet isRefreshing = false\nlet failedQueue = []\n\nconst processQueue = (error, token = null) => {\n failedQueue.forEach(prom => {\n if (error) {\n prom.reject(error)\n } else {\n prom.resolve(token)\n }\n })\n\n failedQueue = []\n}\n\nVue.prototype.$http.interceptors.request.use((config) => {\n const originalRequest = config\n // before request is sent check if refresh token is about to expire.\n const refresh = window.localStorage.getItem(\"refresh\")\n if (refresh && jwtDecode(refresh).exp - Math.floor(Date.now() / 1000) < 60) {\n // cleanup local storage and reroute to login.\n return store.dispatch(\"logout\").then(() => {\n return router.push({ path: \"/login\", name: \"Login\" })\n })\n }\n return originalRequest\n}, (error) => {\n // Do something with request error\n return Promise.reject(error)\n})\n\n\nVue.prototype.$http.interceptors.response.use(function(response) {\n return response\n}, function(error) {\n\n const originalRequest = error.config\n\n if (error.response.status === 401 && !originalRequest._retry) {\n\n if (isRefreshing) {\n return new Promise(function(resolve, reject) {\n failedQueue.push({ resolve, reject })\n }).then(token => {\n originalRequest.headers[\"Authorization\"] = \"Bearer \" + token\n return Vue.prototype.$http(originalRequest)\n }).catch(err => {\n return err\n })\n }\n\n originalRequest._retry = true\n isRefreshing = true\n\n const refreshToken = window.localStorage.getItem(\"refresh\")\n return new Promise(function(resolve, reject) {\n Vue.prototype.$http.post(\"/api/token/refresh/\", { refresh: refreshToken })\n .then(({ data }) => {\n window.localStorage.setItem(\"access\", data.access)\n Vue.prototype.$http.defaults.headers.common[\"Authorization\"] = \"Bearer \" + data.access\n originalRequest.headers[\"Authorization\"] = \"Bearer \" + data.access\n processQueue(null, data.access)\n resolve(Vue.prototype.$http(originalRequest))\n })\n .catch((err) => {\n processQueue(err, null)\n reject(err)\n })\n .then(() => {\n isRefreshing = false\n })\n })\n }\n\n return Promise.reject(error)\n})\n\n\nnew Vue({\n vuetify,\n router,\n store,\n render: h => h(App),\n}).$mount(\"#app\")\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=style&index=0&id=5dd162c9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunCard.vue?vue&type=style&index=0&id=5dd162c9&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=e48ee6a0&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConformityDetailCard.vue?vue&type=style&index=0&id=69fc5fbb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=style&index=0&id=ebea9e70&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobDetail.vue?vue&type=style&index=0&id=ebea9e70&scoped=true&lang=css&\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/docs/docs/images/job_templates.png b/docs/docs/images/job_templates.png
new file mode 100644
index 00000000..60077735
Binary files /dev/null and b/docs/docs/images/job_templates.png differ
diff --git a/docs/docs/images/job_templates_save.png b/docs/docs/images/job_templates_save.png
new file mode 100644
index 00000000..a5a2c54d
Binary files /dev/null and b/docs/docs/images/job_templates_save.png differ
diff --git a/docs/docs/screenshots.md b/docs/docs/screenshots.md
index c37ce003..fd23d906 100644
--- a/docs/docs/screenshots.md
+++ b/docs/docs/screenshots.md
@@ -23,6 +23,9 @@ Jobs | Jobs Dark
#### Run

+#### Job Templates
+
+
Keys | Keys Dark
:-------------------------:|:-------------------------:
 | 
diff --git a/docs/docs/views/job_templates.md b/docs/docs/views/job_templates.md
new file mode 100644
index 00000000..3a23688e
--- /dev/null
+++ b/docs/docs/views/job_templates.md
@@ -0,0 +1,8 @@
+# Job Templates
+
+
+
+To create a job template, fill some fields in the [run](run.md) view, switch on "Save as Template",
+and choose a name.
+
+
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index bcfb7dae..f2e4249c 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -14,6 +14,7 @@ nav:
- 'Jobs': views/jobs.md
- 'Job Details': views/job_detail.md
- 'Run': views/run.md
+ - 'Job Templates': views/job_templates.md
- 'Schedule': views/schedule.md
- 'Conformity': views/conformity.md
- 'Conformity Details': views/conformity_details.md
@@ -22,8 +23,7 @@ nav:
- 'Users': views/users.md
- 'Settings': views/settings.md
- Troubleshooting: troubleshooting.md
- - Screenshots:
- - '': screenshots.md
+ - Screenshots: screenshots.md
- Contribute: contribute.md
- Licence: licence.md
site_description: 'A web based tool for monitoring and administrating Saltstack'
@@ -39,8 +39,6 @@ copyright: 'Copyright © 2019 All rights reserved'
theme:
name: 'material'
- feature:
- tabs: true
custom_dir: 'theme'
logo: 'images/logo-144.png'
favicon: 'images/favicon.ico'
diff --git a/src/components/ConformityTable.vue b/src/components/ConformityTable.vue
index a29c479c..9cd605c4 100644
--- a/src/components/ConformityTable.vue
+++ b/src/components/ConformityTable.vue
@@ -85,7 +85,7 @@
color="orange"
tile
dark
- :to="'/run/?target='+item.minion_id+'&function=state.apply'"
+ :to="'/run?tgt='+item.minion_id+'&fun=state.apply'"
>
highstate
diff --git a/src/components/JobTemplatesTable.vue b/src/components/JobTemplatesTable.vue
new file mode 100644
index 00000000..6c192d9d
--- /dev/null
+++ b/src/components/JobTemplatesTable.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+ Job Templates
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+ run
+
+
+ edit
+
+
+ delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/JobsTable.vue b/src/components/JobsTable.vue
index 5ebea456..01d0e3ee 100644
--- a/src/components/JobsTable.vue
+++ b/src/components/JobsTable.vue
@@ -123,11 +123,14 @@
{{ item.jid }}
- {{ filter ? "" :item.id }}
+ {{ item.id }}
{{ item.arguments.length > 20 ? item.arguments.slice(0, 20)+"...": item.arguments }}
+
+ {{ item.keyword_arguments.length > 20 ? item.keyword_arguments.slice(0, 20)+"...": item.keyword_arguments }}
+
{{ boolText(item.success) }}
@@ -152,7 +155,7 @@
color="blue-grey"
tile
dark
- :to="'/run/?target='+item.id+'&function='+item.fun+'&args='+item.arguments"
+ :to="'/run?tgt='+item.id+'&fun='+item.fun+'&arg='+item.arguments+'&kwarg='+item.keyword_arguments"
>
rerun
@@ -186,6 +189,7 @@
{ text: "Target", value: "id" },
{ text: "Function", value: "fun" },
{ text: "Arguments", value: "arguments" },
+ { text: "Keyword Arguments", value: "keyword_arguments" },
{ text: "User", value: "user" },
{ text: "Status", value: "success" },
{ text: "Date", value: "alter_time" },
diff --git a/src/components/MinionsTable.vue b/src/components/MinionsTable.vue
index 28b27e2d..201cc0ca 100644
--- a/src/components/MinionsTable.vue
+++ b/src/components/MinionsTable.vue
@@ -51,7 +51,7 @@
color="blue-grey"
tile
dark
- :to="'/run?target='+item.minion_id"
+ :to="'/run?tgt='+item.minion_id"
>
run job
diff --git a/src/components/RunCard.vue b/src/components/RunCard.vue
index c037fd0c..64b0d5a0 100644
--- a/src/components/RunCard.vue
+++ b/src/components/RunCard.vue
@@ -92,96 +92,116 @@
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+ Once:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Recurring: Every
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- Once:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Recurring: Every
-
-
-
+
+
+
+
+
+
+
+
+
- Test
- Run
+ Test
+ Run
+ Save
@@ -234,6 +254,8 @@
return {
scheduleSwitch: false,
pillarSwitch: false,
+ saveJobSwitch: false,
+ jobTemplateName: "",
code: "# Type valid yaml to override pillars\n\n\n",
cmOptions: {
tabSize: 4,
@@ -274,8 +296,8 @@
],
selected_target_type: "glob",
target: "",
- args: "",
- kwargs: "",
+ arg: "",
+ kwarg: "",
results: "",
termKey: 0,
cron: null,
@@ -296,18 +318,41 @@
response.data.forEach(item => this.minions.push(item.minion_id))
})
},
- runJob(test = false) {
- let action = "Running"
+ createCommand(test = false) {
+ // Client, async options.
let command = `salt --client=${this.client_batch ? "local_batch" : this.selected_client}${this.client_async && !this.client_batch ? "_async" : ""}`
+ // Targeting.
if (this.selected_client === "local") {
if (this.selected_target_type !== "glob") command += " " + this.selected_target_type + " " + this.target
else command += " " + this.target
}
- command += ` ${this.selectedFunction.hasOwnProperty("name") ? this.selectedFunction.name : this.selectedFunction}`
- command += `${this.args ? ` ${this.args}` : ""}${test === true ? " test=True" : ""}${this.kwargs ? ` ${this.kwargs}` : ""}`
+ // Functions.
+ if (this.selectedFunction && this.selectedFunction.hasOwnProperty("name")) {
+ command += ` ${this.selectedFunction.name}`
+ } else {
+ command += ` ${this.selectedFunction}`
+ }
+ // Args and Kwargs.
+ command += `${this.arg ? ` ${this.arg}` : ""}${test === true ? " test=True" : ""}${this.kwarg ? ` ${this.kwarg}` : ""}`
+ // Pillar override.
command += `${this.pillarSwitch ? ` pillar='${this.pillarRendered}'` : ""}`
+ // Batch and timeout options.
command += `${this.client_batch && this.batch ? ` -b ${this.batch}` : ""}${this.timeout ? ` -t ${this.timeout}` : ""}`
+ return command
+ },
+ saveJob() {
+ let formData = new FormData
+ let command = this.createCommand(false)
+ formData.set("name", this.jobTemplateName)
+ formData.set("job", command)
+ this.$http.post("api/job_templates/", formData).then(response => {
+ this.$toast("Template "+this.jobTemplateName+" saved")
+ })
+ },
+ runJob(test = false) {
+ let action = "Running"
let formData = new FormData
+ let command = this.createCommand(test)
formData.set("raw", true)
formData.set("command", command)
if (this.scheduleSwitch && this.scheduleType) {
@@ -324,7 +369,7 @@
this.$http.post("api/run/", formData).then(response => {
let result = response.data
// If we're expecting an async result, display a link to the minion's result.
- if (this.client_async && this.selected_client === 'local') {
+ if (this.client_async && this.selected_client === "local") {
let parser = new DOMParser()
let htmlRes = parser.parseFromString(result, "text/html")
let resultChild = htmlRes.getElementsByClassName("ansi2html-content")[0].children
@@ -364,10 +409,41 @@
initial: "* * * * *",
})
this.loadData()
- this.target = this.$route.query.target
- this.selectedFunction = this.$route.query.hasOwnProperty("function") === true ? { name: this.$route.query.function } : this.selectedFunction
- this.args = this.$route.query.args
-
+ if (this.$route.query.client) {
+ this.selected_client = this.$route.query.client.split("_")[0]
+ if (this.$route.query.client.split("_").length > 1) {
+ this['client_'+this.$route.query.client.split("_")[1]] = true
+ }
+ }
+ if (this.$route.query.tgt_type) {
+ this.target_type.forEach(tgt_type => {
+ if (tgt_type.text === this.$route.query.tgt_type) {
+ this.selected_target_type = tgt_type.value
+ }
+ })
+ }
+ this.batch = this.$route.query.batch ? this.$route.query.batch: null
+ this.target = this.$route.query.tgt
+ this.selectedFunction = this.$route.query.hasOwnProperty("fun") === true ? { name: this.$route.query.fun } : this.selectedFunction
+ this.arg = this.$route.query.arg
+ if (this.$route.query.kwarg) {
+ let pillar = this.$route.query.kwarg.split(" ").filter(item => {
+ return item.startsWith("pillar")
+ }).join()
+ if (pillar) {
+ this.pillarSwitch = true
+ this.code = yaml.dump(JSON.parse(pillar.split("=")[1]))
+ this.kwarg = this.$route.query.kwarg.split(" ").filter(item => {
+ return !item.startsWith("pillar")
+ }).join(" ")
+ } else {
+ this.kwarg = this.$route.query.kwarg
+ }
+ }
+ if (this.$route.query.name) {
+ this.saveJobSwitch = true
+ this.jobTemplateName = this.$route.query.name
+ }
},
}
diff --git a/src/components/core/Layout.vue b/src/components/core/Layout.vue
index ae723f51..3cac60dc 100644
--- a/src/components/core/Layout.vue
+++ b/src/components/core/Layout.vue
@@ -231,6 +231,11 @@
path: "/run",
icon: "play_arrow",
},
+ {
+ name: "Job Templates",
+ path: "/job_templates",
+ icon: "playlist_add_check",
+ },
{
name: "Schedules",
path: "/schedules",
diff --git a/src/router.js b/src/router.js
index e912b167..8a5ec7c8 100644
--- a/src/router.js
+++ b/src/router.js
@@ -17,6 +17,7 @@ import Users from "./views/Users"
import Schedules from "./views/Schedules"
import NotFound from "./components/NotFound"
import Search from "./views/Search"
+import JobTemplates from "./views/JobTemplates"
Vue.use(Router)
@@ -54,6 +55,11 @@ const router = new Router({
name: "run",
component: Run,
},
+ {
+ path: "/job_templates",
+ name: "job_templates",
+ component: JobTemplates,
+ },
{
path: "/keys",
name: "keys",
diff --git a/src/views/JobDetail.vue b/src/views/JobDetail.vue
index 30eacc04..fe96d96e 100644
--- a/src/views/JobDetail.vue
+++ b/src/views/JobDetail.vue
@@ -7,7 +7,7 @@
{{ job.fun }}
- Run {{ formatDate(job.alter_time) }}
+ Run on {{ formatDate(job.alter_time) }}
@@ -25,6 +25,10 @@
ARGUMENTS:
{{ job.arguments }}
+
+ KEYWORD ARGUMENTS:
+ {{ job.keyword_arguments }}
+
MINION ID:
{{ job.id }}
diff --git a/src/views/JobTemplates.vue b/src/views/JobTemplates.vue
new file mode 100644
index 00000000..258f4be0
--- /dev/null
+++ b/src/views/JobTemplates.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/MinionDetail.vue b/src/views/MinionDetail.vue
index b973161f..31650df3 100644
--- a/src/views/MinionDetail.vue
+++ b/src/views/MinionDetail.vue
@@ -77,10 +77,10 @@
})
},
runMinion() {
- this.$router.push("/run/?target=" + this.minion_id)
+ this.$router.push("/run?tgt=" + this.minion_id)
},
highstateMinion() {
- this.$router.push("/run/?target=" + this.minion_id + "&function=state.apply")
+ this.$router.push("/run?tgt=" + this.minion_id + "&fun=state.apply")
},
},
props: [
diff --git a/src/views/Minions.vue b/src/views/Minions.vue
index e5689354..807b0f27 100644
--- a/src/views/Minions.vue
+++ b/src/views/Minions.vue
@@ -48,7 +48,7 @@
})
},
runAll() {
- this.$router.push("/run/?target=*")
+ this.$router.push("/run?tgt=*")
},
},
}
diff --git a/tests/test_models.py b/tests/test_models.py
index fbd9c344..787fd523 100644
--- a/tests/test_models.py
+++ b/tests/test_models.py
@@ -57,4 +57,5 @@ def test_custom_conformity(minion_master, alcali_version_state, version_conformi
@pytest.mark.django_db
def test_salt_return_job_args(jobs_arguments):
- assert jobs_arguments.arguments() == "foo 1 bar=baz"
+ assert jobs_arguments.arguments() == "foo 1"
+ assert jobs_arguments.keyword_arguments() == "bar=baz"