nextcloud-server/dist/SetStatusModal-b9x9Hknf.chu...

3 lines
13 KiB
JavaScript

import{t as F,u as O,N as A,_ as x,v as T,w as R,s as v}from"./Plus-ClaUDINn.chunk.mjs";import{f as t,_ as S,r as c,p as m,o as r,j as a,b as p,t as n,w as g,d as b,F as C,v as $,c as y,a5 as M,$ as j,S as U,q as I,i as L}from"./TrashCanOutline-Das_T9Qh.chunk.mjs";import{c as B,m as E,a as V,O as D,l as k}from"./user_status-menu.mjs";import"./index-ffwW1mAI.chunk.mjs";function H(){return[{label:t("user_status","Don't clear"),clearAt:null},{label:t("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:t("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:t("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:t("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:t("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const W={name:"ClearAtSelect",components:{NcSelect:F},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:H()}},computed:{option(){return{clearAt:this.clearAt,label:B(this.clearAt)}}},methods:{t,select(s){s&&this.$emit("selectClearAt",s.clearAt)}}},z={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(s,i,l,_,o,e){const d=c("NcSelect");return r(),m("div",z,[a("label",K,n(e.t("user_status","Clear status after")),1),p(d,{"input-id":"clearStatus",class:"clear-at-select__select",options:o.options,"model-value":e.option,clearable:!1,placement:"top","label-outside":"","onOption:selected":e.select},null,8,["options","model-value","onOption:selected"])])}const G=S(W,[["render",Y],["__scopeId","data-v-84b8c013"]]),J={name:"CustomMessageInput",components:{NcTextField:x,NcButton:A,NcEmojiPicker:O},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t,focus(){this.$refs.input.focus()},onChange(s){this.$emit("change",s)},setIcon(s){this.$emit("selectIcon",s)}}},Q={class:"custom-input",role:"group"},X={class:"custom-input__container"};function Z(s,i,l,_,o,e){const d=c("NcButton"),u=c("NcEmojiPicker"),f=c("NcTextField");return r(),m("div",Q,[p(u,{container:".custom-input",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(n(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),a("div",X,[p(f,{ref:"input",maxlength:"80",disabled:l.disabled,placeholder:e.t("user_status","What is your status?"),"model-value":l.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","model-value","label","onUpdate:modelValue"])])])}const ee=S(J,[["render",Z],["__scopeId","data-v-a19a0a87"]]),se={name:"OnlineStatusSelect",components:{NcUserStatusIcon:T},props:{checked:{type:Boolean,default:!1},type:{type:String,required:!0},label:{type:String,required:!0},subline:{type:String,default:null}},emits:["select"],computed:{id(){return`user-status-online-status-${this.type}`}},methods:{onChange(){this.$emit("select",this.type)}}},te={class:"user-status-online-select"},ae=["id","checked"],ie=["for"],ue={class:"user-status-online-select__icon-wrapper"},le={class:"user-status-online-select__subline"};function ne(s,i,l,_,o,e){const d=c("NcUserStatusIcon");return r(),m("div",te,[a("input",{id:e.id,checked:l.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:i[0]||(i[0]=(...u)=>e.onChange&&e.onChange(...u))},null,40,ae),a("label",{for:e.id,class:"user-status-online-select__label"},[a("span",ue,[p(d,{status:l.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+n(l.label)+" ",1),a("em",le,n(l.subline),1)],8,ie)])}const re=S(se,[["render",ne],["__scopeId","data-v-16876893"]]),ce={name:"PredefinedStatus",props:{messageId:{type:String,required:!0},icon:{type:String,required:!0},message:{type:String,required:!0},clearAt:{type:Object,required:!1,default:null},selected:{type:Boolean,required:!1,default:!1}},emits:["select"],computed:{id(){return`user-status-predefined-status-${this.messageId}`},formattedClearAt(){return B(this.clearAt)}},methods:{select(){this.$emit("select")}}},oe={class:"predefined-status"},de=["id","checked"],pe=["for"],me={"aria-hidden":"true",class:"predefined-status__label--icon"},he={class:"predefined-status__label--message"},ge={class:"predefined-status__label--clear-at"};function Se(s,i,l,_,o,e){return r(),m("li",oe,[a("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:l.selected,onChange:i[0]||(i[0]=(...d)=>e.select&&e.select(...d))},null,40,de),a("label",{class:"predefined-status__label",for:e.id},[a("span",me,n(l.icon),1),a("span",he,n(l.message),1),a("span",ge,n(e.formattedClearAt),1)],8,pe)])}const _e=S(ce,[["render",Se],["__scopeId","data-v-200bf95b"]]),fe={name:"PredefinedStatusesList",components:{PredefinedStatus:_e},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...V({predefinedStatuses:s=>s.predefinedStatuses.predefinedStatuses,messageId:s=>s.userStatus.messageId}),...E(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t,selectStatus(s){this.lastSelected=s.id,this.$emit("selectStatus",s)}}},be=["aria-label"],ye={key:1,class:"predefined-statuses-list"};function ve(s,i,l,_,o,e){const d=c("PredefinedStatus");return s.statusesHaveLoaded?(r(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(r(!0),m(C,null,$(s.predefinedStatuses,u=>(r(),y(d,{key:u.id,"message-id":u.id,icon:u.icon,message:u.message,"clear-at":u.clearAt,selected:o.lastSelected===u.id,onSelect:f=>e.selectStatus(u)},null,8,["message-id","icon","message","clear-at","selected","onSelect"]))),128))],8,be)):(r(),m("div",ye,[...i[0]||(i[0]=[a("div",{class:"icon icon-loading-small"},null,-1)])]))}const Ie=S(fe,[["render",ve],["__scopeId","data-v-09171ec7"]]),ke={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t,select(){this.$emit("select")}}},Ae={class:"predefined-status__icon"},Me={class:"predefined-status__message"},Ce={class:"predefined-status__clear-at"},$e={class:"backup-status__reset-button"};function Be(s,i,l,_,o,e){const d=c("NcButton");return r(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[i[0]||(i[0]=M((...u)=>e.select&&e.select(...u),["enter"])),i[1]||(i[1]=M((...u)=>e.select&&e.select(...u),["space"]))],onClick:i[2]||(i[2]=(...u)=>e.select&&e.select(...u))},[a("span",Ae,n(l.icon),1),a("span",Me,n(l.message),1),a("span",Ce,n(e.t("user_status","Previously set")),1),a("div",$e,[p(d,{onClick:e.select},{default:g(()=>[b(n(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(ke,[["render",Be],["__scopeId","data-v-5fa747a0"]]);function we(){return[{type:"online",label:t("user_status","Online")},{type:"away",label:t("user_status","Away")},{type:"busy",label:t("user_status","Busy")},{type:"dnd",label:t("user_status","Do not disturb"),subline:t("user_status","Mute all notifications")},{type:"invisible",label:t("user_status","Invisible"),subline:t("user_status","Appear offline")}]}const Ne={name:"SetStatusModal",components:{ClearAtSelect:G,CustomMessageInput:ee,NcModal:R,OnlineStatusSelect:re,PredefinedStatusesList:Ie,PreviousStatus:Pe,NcButton:A},mixins:[D],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:we()}},computed:{messageId(){return this.$store.state.userStatus.messageId},icon(){return this.$store.state.userStatus.icon},message(){return this.$store.state.userStatus.message||""},hasBackupStatus(){return this.messageId&&(this.backupIcon||this.backupMessage)},backupIcon(){return this.$store.state.userBackupStatus.icon||""},backupMessage(){return this.$store.state.userBackupStatus.message||""},absencePageUrl(){return L("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?t("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?t("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?t("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):t("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(s){this.editedMessage=s}}},mounted(){this.$store.dispatch("fetchBackupFromServer"),this.predefinedMessageId=this.$store.state.userStatus.messageId,this.$store.state.userStatus.clearAt!==null&&(this.clearAt={type:"_time",time:this.$store.state.userStatus.clearAt})},methods:{t,closeModal(){this.$emit("close")},setIcon(s){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:s,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(s){this.predefinedMessageId=null,this.editedMessage=s},setClearAt(s){this.clearAt=s},selectPredefinedMessage(s){this.predefinedMessageId=s.id,this.clearAt=s.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:s.id,clearAt:s.clearAt})},async saveStatus(){if(!this.isSavingStatus){try{this.isSavingStatus=!0,this.predefinedMessageId===null?await this.$store.dispatch("setCustomMessage",{message:this.editedMessage,icon:this.icon,clearAt:this.clearAt}):this.$store.dispatch("setPredefinedMessage",{messageId:this.predefinedMessageId,clearAt:this.clearAt})}catch(s){v(t("user_status","There was an error saving the status")),k.debug(s),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(s){v(t("user_status","There was an error clearing the status")),k.debug(s),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=null,this.closeModal()},async revertBackupFromServer(){try{this.isSavingStatus=!0,await this.$store.dispatch("revertBackupFromServer",{messageId:this.messageId})}catch(s){v(t("user_status","There was an error reverting the status")),k.debug(s),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},qe={class:"set-status-modal"},Fe={id:"user_status-set-dialog",class:"set-status-modal__header"},Oe=["aria-label"],xe={class:"set-status-modal__header"},Te={class:"set-status-modal__custom-input"},Re={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(s,i,l,_,o,e){const d=c("OnlineStatusSelect"),u=c("CustomMessageInput"),f=c("NcButton"),P=c("PreviousStatus"),w=c("PredefinedStatusesList"),N=c("ClearAtSelect"),q=c("NcModal");return r(),y(q,{size:"normal","label-id":"user_status-set-dialog",dark:"","set-return-focus":e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[a("div",qe,[a("h2",Fe,n(e.t("user_status","Online status")),1),a("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(r(!0),m(C,null,$(o.statuses,h=>(r(),y(d,j({key:h.type},{ref_for:!0},h,{checked:h.type===s.statusType,onSelect:s.changeStatus}),null,16,["checked","onSelect"]))),128))],8,Oe),a("form",{onSubmit:i[0]||(i[0]=U((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:i[1]||(i[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[a("h3",xe,n(e.t("user_status","Status message")),1),a("div",Te,[p(u,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(r(),y(f,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(n(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):I("",!0)]),e.hasBackupStatus?(r(),m("div",Re,n(e.t("user_status","Your status was set automatically")),1)):I("",!0),e.hasBackupStatus?(r(),y(P,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):I("",!0),p(w,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(N,{"clear-at":o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clear-at","onSelectClearAt"]),a("div",je,[p(f,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(n(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(f,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(n(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["set-return-focus","onClose"])}const He=S(Ne,[["render",Ue],["__scopeId","data-v-40458f54"]]);export{He as default};
//# sourceMappingURL=SetStatusModal-b9x9Hknf.chunk.mjs.map