1import{L as C}from"./Loader-Baqe17Om.js";import{M as w}from"./Modal-TGyeVepA.js";import"./index-CNRiTe65.js";import{r as p,o,c as l,f as u,g as c,a as r,t as n,b as d,i as y,h as m,F as b,e as f,d as I}from"./vue-router-CSEP06dd.js";import{_ as L}from"./_plugin-vue_export-helper-DlAUqK2U.js";const S=5,T={components:{Loader:C,Modal:w},data(){return{group:null,ready:!1,status:"",timezone:"",showInvite:!1,classmates:[],classmatesReady:!1,classmatesLoadingMore:!1,classmatesCurrentPage:1,classmatesLastPage:1,selectedClassmateIds:[],confirmModal:null,confirmMeetingId:null}},computed:{groupId(){return this.$route.params.group_id},isInvited(){return this.group&&!this.group.is_owner&&this.group.my_status==="invited"},canManage(){var t;return!!((t=this.group)!=null&&t.is_owner)},canLeave(){return this.group&&!this.group.is_owner&&this.group.my_status==="accepted"},isAcceptedMember(){return this.group&&(this.group.is_owner||this.group.my_status==="accepted")},invitableClassmates(){var i;const t=(((i=this.group)==null?void 0:i.members)||[]).map(h=>h.id);return this.classmates.filter(h=>!t.includes(h.id))},hasMoreClassmates(){return this.classmatesCurrentPage<this.classmatesLastPage},confirmModalText(){return this.confirmModal==="leave"?this.$t("leaveGroupConfirm"):this.confirmModal==="cancel-meeting"?this.$t("cancelMeetingConfirm"):""}},mounted(){this.timezone=this.guessTimezone(),this.loadGroup()},methods:{loadGroup(){axios.get("/get-study-group/"+this.groupId).then(t=>{this.group=t.data.data,this.ready=!0,this.addTitleAndDescription(this.group.name,"")}).catch(t=>{Snackbar.show(this.getErrorMessage(t)),this.$router.push(this.$path("study-groups"))})},formatMeetingStart(t){return this.formatDateTimeShort(t.start,{timezone:this.timezone})},meetingLengthInMinutes(t){return moment(t.end).diff(moment(t.start),"minute")},joinMeeting(t){if(moment(t.start).valueOf()-Date.now()>S*6e4){Snackbar.show(this.$t("meetingNotStartedYet"));return}window.open(t.join_url,"_blank","noopener")},respond(t){this.status||(this.status="responding",Snackbar.show(this.$t("processing")),axios.post("/respond-to-study-group/"+this.groupId,{accept:t}).then(()=>{Snackbar.show(this.$t("success")),t?this.loadGroup():this.$router.push(this.$path("study-groups"))}).catch(i=>{Snackbar.show(this.getErrorMessage(i))}).finally(()=>{this.status=""}))},toggleInvite(){this.showInvite=!this.showInvite,this.showInvite&&!this.classmatesReady&&this.loadClassmates()},loadClassmates(t=!1){t&&(this.classmatesLoadingMore=!0,this.classmatesCurrentPage++),axios.get("/study-group-classmates",{params:{page:this.classmatesCurrentPage}}).then(i=>{this.classmates=t?[...this.classmates,...i.data.data]:i.data.data,this.classmatesCurrentPage=i.data.meta.current_page,this.classmatesLastPage=i.data.meta.last_page,this.classmatesLoadingMore=!1,this.classmatesReady=!0})},loadMoreClassmates(){this.classmatesLoadingMore||this.loadClassmates(!0)},toggleClassmate(t){this.selectedClassmateIds=this.selectedClassmateIds.includes(t)?this.selectedClassmateIds.filter(i=>i!==t):[...this.selectedClassmateIds,t]},invite(){if(!this.status){if(this.selectedClassmateIds.length===0){Snackbar.show(this.$t("selectClassmatesFirst"));return}this.status="inviting",Snackbar.show(this.$t("processing")),axios.post("/invite-to-study-group/"+this.groupId,{student_ids:this.selectedClassmateIds}).then(t=>{this.group=t.data.data,this.selectedClassmateIds=[],this.showInvite=!1,Snackbar.show(this.$t("success"))}).catch(t=>{Snackbar.show(this.getErrorMessage(t))}).finally(()=>{this.status=""})}},askToCancelMeeting(t){this.confirmMeetingId=t,this.confirmModal="cancel-meeting"},confirmAction(){this.confirmModal==="leave"&&this.leaveGroup(),this.confirmModal==="cancel-meeting"&&this.cancelMeeting()},cancelMeeting(){this.status||(this.status="cancelling",Snackbar.show(this.$t("processing")),axios.post("/cancel-study-group-meeting/"+this.groupId+"/"+this.confirmMeetingId).then(()=>{Snackbar.show(this.$t("success")),this.loadGroup()}).catch(t=>{Snackbar.show(this.getErrorMessage(t))}).finally(()=>{this.status="",this.confirmMeetingId=null}))},leaveGroup(){this.status||(this.status="leaving",Snackbar.show(this.$t("processing")),axios.post("/leave-study-group/"+this.groupId).then(()=>{Snackbar.show(this.$t("success")),this.$router.push(this.$path("study-groups"))}).catch(t=>{Snackbar.show(this.getErrorMessage(t))}).finally(()=>{this.status=""}))}}},z={type:"button",class:"btn btn-sm btn-dark","data-bs-dismiss":"modal"},E={key:0},j={class:"p-4 border-bottom"},D={class:"d-flex justify-content-between"},G={class:"d-flex align-items-center"},A=["src"],N={class:"h3 mb-1"},P={key:0,class:"text-muted small"},R={key:0,class:"mt-4 small fw-bold"},V={key:0},B={key:1},F={key:0,class:"py-3 px-4 border-bottom bg-light"},O={class:"mb-2"},U={class:"p-4 border-bottom"},Y={class:"d-flex justify-content-between align-items-center mb-2"},Z={class:"h5 mb-0"},J={key:0,class:"small text-muted"},q={key:0,class:"p-4 border-bottom small"},H={class:"d-flex justify-content-between"},K={class:"fw-bold"},Q={key:0,class:"mt-3"},W=["onClick"],X=["onClick"],$={class:"p-4 border-bottom"},x={class:"d-flex justify-content-between align-items-center mb-2"}
1,tt={class:"h5 mb-0"},st={key:0,class:"border rounded p-3 mb-3"},et={class:"small text-muted"},nt={key:0},ot={key:0,class:"small mb-0"},it={key:1},at=["id","checked","onChange"],rt=["for"],lt={key:0},dt={key:0},ut={key:1},ct={key:0,class:"ms-1 text-muted"},mt={key:1,class:"p-4"};function ht(t,i,h,gt,e,a){const k=p("modal"),v=p("loader"),g=p("router-link"),M=p("add-to-calendar-button");return o(),l("div",null,[u(k,{title:t.$t("pleaseConfirm"),shown:!!e.confirmModal,onClosed:i[1]||(i[1]=s=>e.confirmModal=null)},{body:c(()=>[r("div",null,n(a.confirmModalText),1)]),footer:c(()=>[r("button",z,n(t.$t("dontDoIt")),1),r("button",{type:"button",class:"ms-2 btn btn-sm btn-danger","data-bs-dismiss":"modal",onClick:i[0]||(i[0]=(...s)=>a.confirmAction&&a.confirmAction(...s))},n(t.$t("confirm")),1)]),_:1},8,["title","shown"]),u(v,{show:!e.ready},null,8,["show"]),e.ready&&e.group?(o(),l("div",E,[r("div",j,[r("div",D,[r("div",G,[e.group.image_url?(o(),l("img",{key:0,src:e.group.image_url,class:"rounded-circle me-3 group-image",alt:""},null,8,A)):d("",!0),r("div",null,[r("h1",N,n(e.group.name),1),e.group.description?(o(),l("div",P,n(e.group.description),1)):d("",!0)])]),r("div",null,[a.canManage?(o(),y(g,{key:0,to:t.$path("edit-study-group")+"/"+e.group.id,class:"btn btn-outline-secondary btn-sm ms-2"},{default:c(()=>[m(n(t.$t("editGroup")),1)]),_:1},8,["to"])):d("",!0)])]),a.isAcceptedMember?(o(),l("div",R,[e.group.comments_count>0?(o(),l("span",V,[u(g,{to:t.$path("study-group-discussion")+"/"+e.group.id},{default:c(()=>[m(n(e.group.comments_count)+" "+n(t.$tc("comment",e.group.comments_count).toLowerCase()),1)]),_:1},8,["to"])])):(o(),l("span",B,[u(g,{to:t.$path("study-group-discussion")+"/"+e.group.id},{default:c(()=>[m(n(t.$t("writeComment")),1)]),_:1},8,["to"])]))])):d("",!0)]),a.isInvited?(o(),l("div",F,[r("p",O,n(t.$t("youAreInvited")),1),r("button",{class:"btn btn-primary btn-sm",onClick:i[2]||(i[2]=s=>a.respond(!0))},n(t.$t("acceptInvitation")),1),r("button",{class:"btn btn-outline-dark btn-sm ms-2",onClick:i[3]||(i[3]=s=>a.respond(!1))},n(t.$t("declineInvitation")),1)])):d("",!0),r("div",U,[r("div",Y,[r("h2",Z,n(t.$t("upcomingMeetings")),1),a.canManage?(o(),y(g,{key:0,to:t.$path("schedule-meeting")+"/"+e.group.id,class:"btn btn-outline-primary btn-sm"},{default:c(()=>[m(n(t.$t("scheduleMeeting")),1)]),_:1},8,["to"])):d("",!0)]),e.group.upcoming_meetings.length>0?(o(),l("div",J,n(t.$t("timezone"))+": "+n(e.timezone.split("/").pop().replace(/_/g," ")),1)):d("",!0)]),r("div",null,[e.group.upcoming_meetings.length===0?(o(),l("div",q,n(t.$t("noMeetings")),1)):d("",!0),(o(!0),l(b,null,f(e.group.upcoming_meetings,s=>(o(),l("div",{key:s.id,class:"p-4 border-bottom"},[r("div",H,[r("div",null,[r("div",K,n(a.formatMeetingStart(s))+" ⢠"+n(a.meetingLengthInMinutes(s))+" min",1),a.isAcceptedMember?(o(),l("div",Q,[u(M,{styleLight:"--btn-background: #fff; --wrapper-padding: 0; margin: 0",size:"3",name:"Berges Institute: "+e.group.name,description:s.join_url?t.$t("virtualRoomURL")+": "+s.join_url:"",startDate:t.getCalEventValue("startDate",s.start,0,e.timezone),startTime:t.getCalEventValue("startTime",s.start,0,e.timezone),endDate:t.getCalEventValue("endDate",s.start,a.meetingLengthInMinutes(s),e.timezone),endTime:t.getCalEventValue("endTime",s.start,a.meetingLengthInMinutes(s),e.timezone),options:"['Apple','Google','iCal','Microsoft365','Outlook.com']",label:t.$t("addToCalendar"),timeZone:e.timezone},null,8,["name","description","startDate","startTime","endDate","endTime","label","timeZone"])])):d("",!0)]),r("div",null,[s.join_url?(o(),l("button",{key:0,class:"btn btn-primary btn-sm",onClick:_=>a.joinMeeting(s)},n(t.$t("joinMeeting")),9,W)):d("",!0),a.canManage?(o(),l("button",{key:1,class:"btn btn-outline-danger btn-sm ms-2",onClick:_=>a.askToCancelMeeting(s.id)},n(t.$t("cancel")),9,X)):d("",!0)])])]))),128))]),r("div",$,[r("div",x,[r("h2",tt,n(t.$t("membersTitle")),1),a.canManage?(o(),l("button",{key:0,class:"btn btn-outline-primary btn-sm",onClick:i[4]||(i[4]=(...s)=>a.toggleInvite&&a.toggleInvite(...s))},n(t.$t("inviteClassmates")),1)):d("",!0)]),e.showInvite?(o(),l("div",st,[r("p",et,n(t.$t("classmatesNote")),1),u(v,{show:!e.classmatesReady}
1,null,8,["show"]),e.classmatesReady?(o(),l("div",nt,[a.invitableClassmates.length===0&&!a.hasMoreClassmates?(o(),l("p",ot,n(t.$t("noClassmates")),1)):(o(),l("div",it,[(o(!0),l(b,null,f(a.invitableClassmates,s=>(o(),l("div",{key:s.id,class:"form-check"},[r("input",{class:"form-check-input",type:"checkbox",id:"classmate-"+s.id,checked:e.selectedClassmateIds.includes(s.id),onChange:_=>a.toggleClassmate(s.id)},null,40,at),r("label",{class:"form-check-label",for:"classmate-"+s.id},n(s.name),9,rt)]))),128)),a.hasMoreClassmates?(o(),l("div",lt,[r("button",{class:"btn btn-outline-primary btn-sm mt-2",onClick:i[5]||(i[5]=(...s)=>a.loadMoreClassmates&&a.loadMoreClassmates(...s))},[e.classmatesLoadingMore?(o(),l("span",dt,n(t.$t("loading"))+"...",1)):(o(),l("span",ut,n(t.$t("loadMore")),1))])])):d("",!0),r("button",{class:"btn btn-primary btn-sm mt-3",onClick:i[6]||(i[6]=(...s)=>a.invite&&a.invite(...s))},n(t.$t("sendInvitations")),1)]))])):d("",!0)])):d("",!0),(o(!0),l(b,null,f(e.group.members,s=>(o(),l("div",{key:s.id,class:"py-1 small"},[m(n(s.name)+" ",1),s.status==="invited"?(o(),l("span",ct,"("+n(t.$t("invitedLabel"))+")",1)):d("",!0)]))),128))]),a.canLeave?(o(),l("div",mt,[r("a",{href:"",class:"text-danger small",onClick:i[7]||(i[7]=I(s=>e.confirmModal="leave",["prevent"]))},n(t.$t("leaveGroup")),1)])):d("",!0)])):d("",!0),i[8]||(i[8]=r("div",{class:"py-5"},null,-1))])}const yt=L(T,[["render",ht],["__scopeId","data-v-3e13ba1f"]]);export{yt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.