Files
nextcloud-server-mirror/dist/SetStatusModal-Ccv1117Z.chunk.mjs
2026-10-07 08:58:40 +00:00

3 lines
14 KiB
JavaScript

import{b as v}from"./index-UXL_i2di.chunk.mjs";import{t as i}from"./translations-pLZlvQeM.chunk.mjs";import{c as S,a as O}from"./star-outline-BpDZzOb8.chunk.mjs";import{N as A}from"./Link-CUdpEe-t.chunk.mjs";import{c as q}from"./NcModal-BxLzaUZK.chunk.mjs";import{N as x}from"./index-BJ-wBpMs.chunk.mjs";import{c as C,m as R,a as T,O as j,l as I}from"./user_status-menu.mjs";import{j as c,o as n,f as m,l as s,t as u,p,w as g,z as b,G as $,H as B,k as y,ad as M,m as U,y as V,h as k}from"./PencilOutline-C4ZkKkas.chunk.mjs";import{N as L}from"./NcEmojiPicker-D7HkUvA6.chunk.mjs";import{_ as E}from"./NcHighlight.vue_vue_type_script_lang-CT7Xx-zK.chunk.mjs";import{N as H}from"./NcUserStatusIcon-CWV4DI9J.chunk.mjs";import{g as z}from"./statusOptionsService-ChGCgh7H.chunk.mjs";import"./AlertCircleOutline-jA3ki2Uu.chunk.mjs";import"./TrayArrowDown-vMg8Cl05.chunk.mjs";import"./Web-BMG0zIln.chunk.mjs";import"./_l10n-CK24vgHE.chunk.mjs";import"./File-xDTWu8L0.chunk.mjs";import"./ArrowRight-COu6qSN5.chunk.mjs";import"./Check-CEU1oy_I.chunk.mjs";import"./livePhotoUtils-CVUhgL4S.chunk.mjs";import"./index-D6fZh9CR.chunk.mjs";import"./cancel-DDzvQ-HX.chunk.mjs";import"./formatRelative-uuSCBZ1C.chunk.mjs";import"./MapMarkerOutline-Ip3bQdll.chunk.mjs";import"./index-DHyMMYTN.chunk.mjs";import"./emoji-Cbe4MxhY.chunk.mjs";import"./index-JFK8X6kZ.chunk.mjs";import"./colors-B1T-jIOW.chunk.mjs";import"./NcInputField-wKF2DDSn.chunk.mjs";function W(){return[{label:i("user_status","Don't clear"),clearAt:null},{label:i("user_status","30 minutes"),clearAt:{type:"period",time:1800}},{label:i("user_status","1 hour"),clearAt:{type:"period",time:3600}},{label:i("user_status","4 hours"),clearAt:{type:"period",time:14400}},{label:i("user_status","Today"),clearAt:{type:"end-of",time:"day"}},{label:i("user_status","This week"),clearAt:{type:"end-of",time:"week"}}]}const D={name:"ClearAtSelect",components:{NcSelect:x},props:{clearAt:{type:Object,default:null}},emits:["selectClearAt"],data(){return{options:W()}},computed:{option(){return{clearAt:this.clearAt,label:C(this.clearAt)}}},methods:{t:i,select(t){t&&this.$emit("selectClearAt",t.clearAt)}}},G={class:"clear-at-select"},K={class:"clear-at-select__label",for:"clearStatus"};function Y(t,a,l,f,o,e){const d=c("NcSelect");return n(),m("div",G,[s("label",K,u(e.t("user_status","Clear status after")),1),p(d,{inputId:"clearStatus",class:"clear-at-select__select",options:o.options,modelValue:e.option,clearable:!1,placement:"top",labelOutside:"","onOption:selected":e.select},null,8,["options","modelValue","onOption:selected"])])}const J=S(D,[["render",Y],["__scopeId","data-v-83a07433"]]),Q={name:"CustomMessageInput",components:{NcTextField:E,NcButton:A,NcEmojiPicker:L},props:{icon:{type:String,default:"😀"},message:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["change","selectIcon"],computed:{visibleIcon(){return this.icon||"😀"}},methods:{t:i,focus(){this.$refs.input.focus()},onChange(t){this.$emit("change",t)},setIcon(t){this.$emit("selectIcon",t)}}},X={class:"custom-input",role:"group"},Z={class:"custom-input__container"};function ee(t,a,l,f,o,e){const d=c("NcButton"),r=c("NcEmojiPicker"),_=c("NcTextField");return n(),m("div",X,[p(r,{container:"#user_status-dialog",onSelect:e.setIcon},{default:g(()=>[p(d,{variant:"tertiary","aria-label":e.t("user_status","Emoji for your status message")},{icon:g(()=>[b(u(e.visibleIcon),1)]),_:1},8,["aria-label"])]),_:1},8,["onSelect"]),s("div",Z,[p(_,{ref:"input",maxlength:"80",disabled:l.disabled,placeholder:e.t("user_status","What is your status?"),modelValue:l.message,type:"text",label:e.t("user_status","What is your status?"),"onUpdate:modelValue":e.onChange},null,8,["disabled","placeholder","modelValue","label","onUpdate:modelValue"])])])}const te=S(Q,[["render",ee],["__scopeId","data-v-90dc6f12"]]),se={name:"OnlineStatusSelect",components:{NcUserStatusIcon:H},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)}}},ae={class:"user-status-online-select"},re=["id","checked"],ie=["for"],le={class:"user-status-online-select__icon-wrapper"},ue={class:"user-status-online-select__subline"};function ne(t,a,l,f,o,e){const d=c("NcUserStatusIcon");return n(),m("div",ae,[s("input",{id:e.id,checked:l.checked,class:"hidden-visually user-status-online-select__input",type:"radio",name:"user-status-online",onChange:a[0]||(a[0]=(...r)=>e.onChange&&e.onChange(...r))},null,40,re),s("label",{for:e.id,class:"user-status-online-select__label"},[s("span",le,[p(d,{status:l.type,class:"user-status-online-select__icon","aria-hidden":"true"},null,8,["status"])]),b(" "+u(l.label)+" ",1),s("em",ue,u(l.subline),1)],8,ie)])}const ce=S(se,[["render",ne],["__scopeId","data-v-16876893"]]),oe={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 C(this.clearAt)}},methods:{select(){this.$emit("select")}}},de={class:"predefined-status"},pe=["id","checked"],me=["for"],he={"aria-hidden":"true",class:"predefined-status__label--icon"},ge={class:"predefined-status__label--message"},Se={class:"predefined-status__label--clear-at"};function fe(t,a,l,f,o,e){return n(),m("li",de,[s("input",{id:e.id,class:"hidden-visually predefined-status__input",type:"radio",name:"predefined-status",checked:l.selected,onChange:a[0]||(a[0]=(...d)=>e.select&&e.select(...d))},null,40,pe),s("label",{class:"predefined-status__label",for:e.id},[s("span",he,u(l.icon),1),s("span",ge,u(l.message),1),s("span",Se,u(e.formattedClearAt),1)],8,me)])}const _e=S(oe,[["render",fe],["__scopeId","data-v-200bf95b"]]),be={name:"PredefinedStatusesList",components:{PredefinedStatus:_e},emits:["selectStatus"],data(){return{lastSelected:null}},computed:{...T({predefinedStatuses:t=>t.predefinedStatuses.predefinedStatuses,messageId:t=>t.userStatus.messageId}),...R(["statusesHaveLoaded"])},watch:{messageId:{immediate:!0,handler(){this.lastSelected=this.messageId}}},created(){this.$store.dispatch("loadAllPredefinedStatuses")},methods:{t:i,selectStatus(t){this.lastSelected=t.id,this.$emit("selectStatus",t)}}},ye=["aria-label"],ve={key:1,class:"predefined-statuses-list"};function Ie(t,a,l,f,o,e){const d=c("PredefinedStatus");return t.statusesHaveLoaded?(n(),m("ul",{key:0,class:"predefined-statuses-list","aria-label":e.t("user_status","Predefined statuses")},[(n(!0),m($,null,B(t.predefinedStatuses,r=>(n(),y(d,{key:r.id,messageId:r.id,icon:r.icon,message:r.message,clearAt:r.clearAt,selected:o.lastSelected===r.id,onSelect:_=>e.selectStatus(r)},null,8,["messageId","icon","message","clearAt","selected","onSelect"]))),128))],8,ye)):(n(),m("div",ve,[...a[0]||(a[0]=[s("div",{class:"icon icon-loading-small"},null,-1)])]))}const ke=S(be,[["render",Ie],["__scopeId","data-v-b7009355"]]),Ae={name:"PreviousStatus",components:{NcButton:A},props:{icon:{type:[String,null],required:!0},message:{type:String,required:!0}},emits:["select"],methods:{t:i,select(){this.$emit("select")}}},Me={class:"predefined-status__icon"},Ce={class:"predefined-status__message"},$e={class:"predefined-status__clear-at"},Be={class:"backup-status__reset-button"};function Ne(t,a,l,f,o,e){const d=c("NcButton");return n(),m("div",{class:"predefined-status backup-status",tabindex:"0",onKeyup:[a[0]||(a[0]=M((...r)=>e.select&&e.select(...r),["enter"])),a[1]||(a[1]=M((...r)=>e.select&&e.select(...r),["space"]))],onClick:a[2]||(a[2]=(...r)=>e.select&&e.select(...r))},[s("span",Me,u(l.icon),1),s("span",Ce,u(l.message),1),s("span",$e,u(e.t("user_status","Previously set")),1),s("div",Be,[p(d,{onClick:e.select},{default:g(()=>[b(u(e.t("user_status","Reset status")),1)]),_:1},8,["onClick"])])],32)}const Pe=S(Ae,[["render",Ne],["__scopeId","data-v-5fa747a0"]]),we={name:"SetStatusModal",components:{ClearAtSelect:J,CustomMessageInput:te,NcModal:q,OnlineStatusSelect:ce,PredefinedStatusesList:ke,PreviousStatus:Pe,NcButton:A},mixins:[j],props:{inline:{type:Boolean,default:!1}},emits:["close"],data(){return{clearAt:null,editedMessage:"",predefinedMessageId:null,isSavingStatus:!1,statuses:z()}},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 O("settings/user/availability#absence")},resetButtonText(){return this.backupIcon&&this.backupMessage?i("user_status",'Reset status to "{icon} {message}"',{icon:this.backupIcon,message:this.backupMessage}):this.backupMessage?i("user_status",'Reset status to "{message}"',{message:this.backupMessage}):this.backupIcon?i("user_status",'Reset status to "{icon}"',{icon:this.backupIcon}):i("user_status","Reset status")},setReturnFocus(){if(!this.inline)return document.querySelector('[aria-controls="header-menu-user-menu"]')??void 0}},watch:{message:{immediate:!0,handler(t){this.editedMessage=t}}},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:i,closeModal(){this.$emit("close")},setIcon(t){this.predefinedMessageId=null,this.$store.dispatch("setCustomMessage",{message:this.message,icon:t,clearAt:this.clearAt}),this.$nextTick(()=>{this.$refs.customMessageInput.focus()})},setMessage(t){this.predefinedMessageId=null,this.editedMessage=t},setClearAt(t){this.clearAt=t},selectPredefinedMessage(t){this.predefinedMessageId=t.id,this.clearAt=t.clearAt,this.$store.dispatch("setPredefinedMessage",{messageId:t.id,clearAt:t.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(t){v(i("user_status","There was an error saving the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.closeModal()}},async clearStatus(){try{this.isSavingStatus=!0,await this.$store.dispatch("clearMessage")}catch(t){v(i("user_status","There was an error clearing the status")),I.debug(t),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(t){v(i("user_status","There was an error reverting the status")),I.debug(t),this.isSavingStatus=!1;return}this.isSavingStatus=!1,this.predefinedMessageId=this.$store.state.userStatus?.messageId}}},Fe={class:"set-status-modal"},Oe={id:"user_status-set-dialog",class:"set-status-modal__header"},qe=["aria-label"],xe={class:"set-status-modal__header"},Re={class:"set-status-modal__custom-input"},Te={key:0,class:"set-status-modal__automation-hint"},je={class:"status-buttons"};function Ue(t,a,l,f,o,e){const d=c("OnlineStatusSelect"),r=c("CustomMessageInput"),_=c("NcButton"),N=c("PreviousStatus"),P=c("PredefinedStatusesList"),w=c("ClearAtSelect"),F=c("NcModal");return n(),y(F,{id:"user_status-dialog",size:"normal",labelId:"user_status-set-dialog",dark:"",setReturnFocus:e.setReturnFocus,onClose:e.closeModal},{default:g(()=>[s("div",Fe,[s("h2",Oe,u(e.t("user_status","Online status")),1),s("div",{class:"set-status-modal__online-status",role:"radiogroup","aria-label":e.t("user_status","Online status")},[(n(!0),m($,null,B(o.statuses,h=>(n(),y(d,U({key:h.type},{ref_for:!0},h,{checked:h.type===t.statusType,onSelect:t.changeStatus}),null,16,["checked","onSelect"]))),128))],8,qe),s("form",{onSubmit:a[0]||(a[0]=V((...h)=>e.saveStatus&&e.saveStatus(...h),["prevent"])),onReset:a[1]||(a[1]=(...h)=>e.clearStatus&&e.clearStatus(...h))},[s("h3",xe,u(e.t("user_status","Status message")),1),s("div",Re,[p(r,{ref:"customMessageInput",icon:e.icon,message:o.editedMessage,onChange:e.setMessage,onSelectIcon:e.setIcon},null,8,["icon","message","onChange","onSelectIcon"]),e.messageId==="vacationing"?(n(),y(_,{key:0,href:e.absencePageUrl,target:"_blank",variant:"secondary","aria-label":e.t("user_status","Set absence period")},{default:g(()=>[b(u(e.t("user_status","Set absence period and replacement")+" ↗"),1)]),_:1},8,["href","aria-label"])):k("",!0)]),e.hasBackupStatus?(n(),m("div",Te,u(e.t("user_status","Your status was set automatically")),1)):k("",!0),e.hasBackupStatus?(n(),y(N,{key:1,icon:e.backupIcon,message:e.backupMessage,onSelect:e.revertBackupFromServer},null,8,["icon","message","onSelect"])):k("",!0),p(P,{onSelectStatus:e.selectPredefinedMessage},null,8,["onSelectStatus"]),p(w,{clearAt:o.clearAt,onSelectClearAt:e.setClearAt},null,8,["clearAt","onSelectClearAt"]),s("div",je,[p(_,{wide:!0,variant:"tertiary",type:"reset","aria-label":e.t("user_status","Clear status message"),disabled:o.isSavingStatus},{default:g(()=>[b(u(e.t("user_status","Clear status message")),1)]),_:1},8,["aria-label","disabled"]),p(_,{wide:!0,variant:"primary",type:"submit","aria-label":e.t("user_status","Set status message"),disabled:o.isSavingStatus},{default:g(()=>[b(u(e.t("user_status","Set status message")),1)]),_:1},8,["aria-label","disabled"])])],32)])]),_:1},8,["setReturnFocus","onClose"])}const gt=S(we,[["render",Ue],["__scopeId","data-v-e87f4d59"]]);export{gt as default};
//# sourceMappingURL=SetStatusModal-Ccv1117Z.chunk.mjs.map