2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{_ as f,i as n,c as u,o as d,a as c,j as i,a5 as y,b as r,z as T,F as R}from"./main-D6qyxymd.js";const v={props:{plugin:{type:Object,required:!0},settings:{type:Object,required:!0}},emits:["update:settings"],data(){return{isLoading:!1,definitions:{}}},computed:{tablesOptions(){return[{label:"None",value:null},...Object.keys(this.definitions).map(t=>({label:t,value:t}))]},roleTablePropertiesOptions(){var e,s;const t=(s=this.definitions)==null?void 0:s[(e=this.settings.publicData)==null?void 0:e.roleTable];return t?Object.keys(t.properties).map(o=>({label:o,value:o})):[]},userRoleTablePropertiesOptions(){var e,s;const t=(s=this.definitions)==null?void 0:s[(e=this.settings.publicData)==null?void 0:e.userRoleTable];return t?Object.keys(t.properties).map(o=>({label:o,value:o})):[]},isRoleTableValid(){const t=this.definitions[this.settings.publicData.roleTable];return t?Object.keys(t.properties).includes("id"):!1},isUserRoleTableValid(){const t=this.definitions[this.settings.publicData.userRoleTable];return t?Object.keys(t.properties).includes("id"):!1},canGenerate(){return wwLib.wwPlugins.supabase&&this.settings.privateData.accessToken&&!this.settings.publicData.roleTable&&!this.settings.publicData.userRoleTable}},mounted(){var t,e;this.definitions=((e=(t=this.plugin)==null?void 0:t.doc)==null?void 0:e.definitions)||{}},methods:{async fetchTables(){var t,e;try{this.isLoading=!0,await this.plugin.fetchDoc(),this.definitions=((e=(t=this.plugin)==null?void 0:t.doc)==null?void 0:e.definitions)||{}}catch(s){wwLib.wwLog.error(s)}finally{this.isLoading=!1}},changePublicSettings(t,e){this.$emit("update:settings",{...this.settings,publicData:{...this.settings.publicData,[t]:e}})},async generateTables(){this.isLoading=!0;try{await wwLib.wwPlugins.supabase.install("roles"),await new Promise(t=>setTimeout(t,3e3)),await this.fetchTables(),this.$emit("update:settings",{...this.settings,publicData:{...this.settings.publicData,roleTable:"roles",userRoleTable:"users_roles",roleTableNameColumn:"name",userRoleTableRoleColumn:"role_id",userRoleTableUserColumn:"user_id"}})}catch(t){wwLib.wwLog.error(t)}finally{this.isLoading=!1}}}},_={key:0,class:"p-3 border-brand-secondary content-brand-secondary rounded-02 flex flex-row body-sm mb-2 items-center"},D=["disabled"],C={class:"flex items-center"},L={key:1,class:"body-sm content-warning mb-2"},O={class:"flex items-center"},k={key:2,class:"body-sm content-warning mb-2"};function P(t,e,s,o,m,l){const p=n("wwEditorInputTextSelect"),g=n("wwEditorIcon"),w=n("wwEditorFormRow"),b=n("wwEditorInputRow"),h=n("wwLoader");return d(),u(R,null,[l.canGenerate?(d(),u("div",_,[e[8]||(e[8]=y(" You don't have roles and users_roles tables yet? We can generate them for you. ")),r("button",{type:"button",class:"ww-editor-button -secondary -small",onClick:e[0]||(e[0]=(...a)=>l.generateTables&&l.generateTables(...a)),disabled:m.isLoading}," Generate ",8,D)])):c("",!0),i(w,{label:"Roles table"},{default:T(()=>[r("div",C,[i(p,{class:"w-100",placeholder:"Select a table",options:l.tablesOptions,"model-value":s.settings.publicData.roleTable,"onUpdate:modelValue":e[1]||(e[1]=a=>l.changePublicSettings("roleTable",a))},null,8,["options","model-value"]),r("button",{type:"button",class:"ww-editor-button -primary -small -icon ml-2",onClick:e[2]||(e[2]=(...a)=>l.fetchTables&&l.fetchTables(...a))},[i(g,{name:"refresh",medium:""})])])]),_:1}),s.settings.publicData.roleTable&&!l.isRoleTableValid?(d(),u("div",L,' This table must have an "id" column. ')):c("",!0),i(b,{label:"Name column",type:"select",placeholder:"name",options:l.roleTablePropertiesOptions,"model-value":s.settings.publicData.roleTableNameColumn,"onUpdate:modelValue":e[3]||(e[3]=a=>l.changePublicSettings("roleTableNameColumn",a))},null,8,["options","model-value"]),i(w,{label:"Users-Roles table"},{default:T(()=>[r("div",O,[i(p,{class:"w-100",placeholder:"Select a table",options:l.tablesOptions,"model-value":s.settings.publicData.userRoleTable,"onUpdate:modelValue":e[4]||(e[4]=a=>l.changePublicSettings("userRoleTable",a))},null,8,["options","model-value"]),r("button",{type:"button",class:"ww-editor-button -primary -small -icon ml-2",onClick:e[5]||(e[5]=(...a)=>l.fetchTables&&l.fetchTables(...a))},[i(g,{name:"refresh",medium:""})])])]),_:1}),s.settings.publicData.userRoleTable&&!l.isUserRoleTableValid?(d(),u("div",k,' This table must have an "id" column. ')):c("",!0),i(b,{label:"Role ID column",type:"select",placeholder:"role_id",options:l.userRoleTablePropertiesOptions,"model-value":s.settings.publicData.userRoleTableRoleColumn,"onUpdate:modelValue":e[6]||(e[6]=a=>l.changePublicSettings("userRoleTableRoleColumn",a))},null,8,["options","model-value"]),i(b,{label:"User ID column",type:"select",placeholder:"user_id",options:l.userRoleTablePropertiesOptions,"model-value":s.settings.publicData.userRoleTableUserColumn,"onUpdate:modelValue":e[7]||(e[7]=a=>l.changePublicSettings("userRoleTableUserColumn",a))},null,8,["options","model-value"]),i(h,{loading:m.isLoading},null,8,["loading"])],64)}const U=f(v,[["render",P],["__scopeId","data-v-427d040e"]]);export{U as default};
|