"use strict";window.projectData=()=>({app:"bm_ab",app_client:"ab",user:{name:null,role:null},projects:[],project_selected:{project_id:"",project_name:""},form:{project_id:"",project_name:""},slide_over:{show:!1,type:"",header_text:"",header_subtext:"",button_text:""},modal:{show:!1},project_menu:{project_id:null},init(){let user_data=sessionStorage.getItem("inframonitor.user.data");user_data=JSON.parse(user_data),this.user.name=this.setFullName(user_data),this.user.role=user_data.user_role,this.getProjects()},setFullName(data){let name_set=[data.first_name,data.tussenvoegsels,data.last_name];return name_set=name_set.filter((element=>null!=element)),name_set.join(" ")},getProjects(){const url_conf=app_config[this.app_client].url[app_config[this.app_client].env],url_base=url_conf[0],url_full=new URL(`${url_conf[1]}projects/${this.app}/get-projects`,url_base);fetch(url_full).then((response=>{if(!response.ok)throw"Something went wrong.";return response.json()})).then((data=>{data&&(this.projects=data.filter((project=>{if("admin"===this.user.role||"manager"===this.user.role)return!0;if(!project.members)return!1;for(let member of project.members){if(this.setFullName(member)===this.user.name)return!0}return!1})))})).catch((error=>{console.error("Error:",error)}))},addProject(){this.slide_over.show=!0,this.slide_over.type="add",this.slide_over.header_text="Nieuw project aanmaken",this.slide_over.header_subtext="Gebruik onderstaand formulier om een nieuw project aan te maken.",this.slide_over.button_text="Aanmaken"},editProject(project){this.project_menu.project_id=null,this.slide_over.show=!0,this.slide_over.type="edit",this.slide_over.header_text="Projectnaam wijzigen",this.slide_over.header_subtext="Gebruik onderstaand formulier om de naam van het project te wijzigen.",this.slide_over.button_text="Bewerken",this.form.project_id=project.project_id,this.form.project_name=project.project_name},configureProject(project){const data={project_id:project.project_id,project_name:project.project_name};sessionStorage.setItem("inframonitor.project",JSON.stringify(data)),window.open("/settings/project","_self","noopener noreferrer")},deleteProject(project){this.project_menu.project_id=null,this.project_selected.project_id=project.project_id,this.project_selected.project_name=project.project_name,this.modal.show=!0},resetForm(){this.form.project_id="",this.form.project_name="",this.slide_over.show=!1,this.project_menu.project_id=null},submitNewProject(form_data){const url_conf=app_config[this.app_client].url[app_config[this.app_client].env],url_base=url_conf[0],url_full=new URL(`${url_conf[1]}projects/${this.app}/add-project`,url_base);fetch(url_full,{method:"POST",body:JSON.stringify(form_data),headers:{"Content-Type":"application/json"}}).then((response=>response.json())).then((data=>{200===data.db_projects[1]?(this.projects.push({project_id:data.db_projects[0].uuid,project_name:form_data.project_name}),this.resetForm()):console.log(data.db_projects[0])})).catch((error=>{console.error("Error:",error)}))},submitEditProject(changed_project){const url_conf=app_config[this.app_client].url[app_config[this.app_client].env],url_base=url_conf[0],url_full=new URL(`${url_conf[1]}projects/${this.app}/${changed_project.project_id}/edit-project`,url_base);fetch(url_full,{method:"PATCH",body:JSON.stringify(changed_project),headers:{"Content-Type":"application/json"}}).then((response=>response.json())).then((data=>{if(data.db_projects&&200===data.db_projects[1]){let index=this.projects.findIndex((x=>x.project_id===changed_project.project_id));Object.entries(changed_project).forEach((element=>{this.projects[index][element[0]]=element[1]})),this.resetForm()}})).catch((error=>{console.error("Error:",error)}))},submitDeleteProject(){const url_conf=app_config[this.app_client].url[app_config[this.app_client].env],url_base=url_conf[0],url_full=new URL(`${url_conf[1]}projects/${this.app}/${this.project_selected.project_id}/delete-project`,url_base);fetch(url_full,{method:"DELETE"}).then((response=>response.json())).then((data=>{if(data.db_projects&&200===data.db_projects[1]){let index=this.projects.findIndex((x=>x.project_id===this.project_selected.project_id));this.projects.splice(index,1),this.project_selected.project_id="",this.project_selected.project_name="",this.modal.show=!1}})).catch((error=>{console.error("Error:",error)}))},submit(){const form=document.getElementById("form01");if(!validateForm(form))return;const form_data=JSON.parse(JSON.stringify(this.form));if("add"===this.slide_over.type&&(delete form_data.project_id,this.submitNewProject(form_data)),"edit"===this.slide_over.type){let current=this.projects.filter((project=>project.project_id===form_data.project_id));current=current[0],Object.keys(current).forEach((key=>(null===current[key]||""===current[key])&&delete current[key])),Object.keys(form_data).forEach((key=>(null===form_data[key]||""===form_data[key])&&delete form_data[key]));const changed_project=diff(current,form_data);0!==Object.keys(changed_project).length&&changed_project.constructor===Object&&(changed_project.project_id=form_data.project_id,this.submitEditProject(changed_project))}}});