You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
20 KiB

  1. /*! For license information please see user_status-menu.js.LICENSE.txt */
  2. (()=>{var s,e,a,r={86419:(s,e,a)=>{"use strict";var r=a(20144),n=a(77958),o=a(69183),u=a(62642),i=a(20296),c=a.n(i),d=a(93664),l=a(79753),m=a(84387),p=a(25108);const g={name:"UserStatus",components:{NcButton:u.Z,SetStatusModal:()=>Promise.all([a.e(7874),a.e(8299)]).then(a.bind(a,21124))},mixins:[m.Z],props:{inline:{type:Boolean,default:!1}},data:()=>({heartbeatInterval:null,isAway:!1,isModalOpen:!1,mouseMoveListener:null,setAwayTimeout:null}),mounted(){this.$store.dispatch("loadStatusFromInitialState"),OC.config.session_keepalive&&(this.heartbeatInterval=setInterval(this._backgroundHeartbeat.bind(this),3e5),this.setAwayTimeout=()=>{this.isAway=!0},this.mouseMoveListener=c()((()=>{const s=this.isAway;this.isAway=!1,clearTimeout(this.setAwayTimeout),setTimeout(this.setAwayTimeout,12e4),s&&this._backgroundHeartbeat()}),2e3,!0),window.addEventListener("mousemove",this.mouseMoveListener,{capture:!0,passive:!0}),this._backgroundHeartbeat()),(0,o.Ld)("user_status:status.updated",this.handleUserStatusUpdated)},beforeDestroy(){window.removeEventListener("mouseMove",this.mouseMoveListener),clearInterval(this.heartbeatInterval),(0,o.r1)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{openModal(){this.isModalOpen=!0},closeModal(){this.isModalOpen=!1},async _backgroundHeartbeat(){try{const s=await(async s=>{const t=(0,l.generateOcsUrl)("apps/user_status/api/v1/heartbeat?format=json");return(await d.Z.put(t,{status:s?"away":"online"})).data.ocs.data})(this.isAway);s?.userId?this.$store.dispatch("setStatusFromHeartbeat",s):await this.$store.dispatch("reFetchStatusFromServer")}catch(s){p.debug("Failed sending heartbeat, got: "+s.response?.status)}},handleUserStatusUpdated(s){OC.getCurrentUser().uid===s.userId&&this.$store.dispatch("setStatusFromObject",{status:s.status,icon:s.icon,message:s.message})}}};var h=a(93379),f=a.n(h),j=a(7795),v=a.n(j),b=a(90569),A=a.n(b),y=a(3565),w=a.n(y),k=a(19216),S=a.n(k),C=a(44589),I=a.n(C),_=a(34882),O={};O.styleTagTransform=I(),O.setAttributes=w(),O.insert=A().bind(null,"head"),O.domAPI=v(),O.insertStyleElement=S(),f()(_.Z,O),_.Z&&_.Z.locals&&_.Z.locals;const M=(0,a(51900).Z)(g,(function(){var s=this,t=s._self._c;return t(s.inline?"div":"li",{tag:"component"},[s.inline?t("NcButton",{attrs:{icon:s.statusIcon},on:{click:function(t){return t.stopPropagation(),s.openModal.apply(null,arguments)}},scopedSlots:s._u([{key:"icon",fn:function(){return[t("span",{staticClass:"user-status-icon",class:s.statusIcon,attrs:{"aria-hidden":"true"}})]},proxy:!0}])},[s._v("\n\t\t"+s._s(s.visibleMessage)+"\n\t")]):t("button",{staticClass:"user-status-menu-item",on:{click:function(t){return t.stopPropagation(),s.openModal.apply(null,arguments)}}},[t("span",{staticClass:"user-status-icon",class:s.statusIcon,attrs:{"aria-hidden":"true"}}),s._v("\n\t\t"+s._s(s.visibleMessage)+"\n\t")]),s._v(" "),s.isModalOpen?t("SetStatusModal",{on:{close:s.closeModal}}):s._e()],1)}),[],!1,null,"798bb70c",null).exports;var x=a(20629);const U={state:{predefinedStatuses:[]},mutations:{addPredefinedStatus(s,t){s.predefinedStatuses=[...s.predefinedStatuses,t]}},getters:{statusesHaveLoaded:s=>s.predefinedStatuses.length>0},actions:{async loadAllPredefinedStatuses(s){let{state:t,commit:e}=s;if(t.predefinedStatuses.length>0)return;const a=await(async()=>{const s=(0,l.generateOcsUrl)("apps/user_status/api/v1/predefined_statuses?format=json");return(await d.Z.get(s)).data.ocs.data})();for(const s of a)e("addPredefinedStatus",s)}}};var z=a(43554),P=a(64039),T=a(80351),F=a.n(T);const D=s=>{if(null===s)return null;const t=(0,P.n)();if("period"===s.type)return t.setSeconds(t.getSeconds()+s.time),Math.floor(t.getTime()/1e3);if("end-of"===s.type)switch(s.time){case"day":case"week":return Number(F()(t).endOf(s.time).format("X"))}return"_time"===s.type?s.time:null},E={state:{status:null,statusIsUserDefined:null,message:null,icon:null,clearAt:null,messageIsPredefined:null,messageId:null},mutations:{setStatus(s,t){let{statusType:e}=t;s.status=e,s.statusIsUserDefined=!0},setPredefinedMessage(s,t){let{messageId:e,clearAt:a,message:r,icon:n}=t;
  3. //# sourceMappingURL=user_status-menu.js.map?v=dc4dcdbcfe4a541313fd