app.controller('AgendaRingCtrl', function($scope, $http, $filter, $location, $rootScope, $routeParams) { // Agenda item that need follow up $scope.personalContactOverview = { name: 'Agendering met opvolging', controller: 'customer_note', function: 'getForDashboard', // Panel class panelClass: 'panel-trainingskampen', pageLimit: 15, autoChangeTo: ['user_id', 'customer_id'], fields: [ 'id', 'v_follow_up_date', // follow up date for view 'customer_id', 'subject', 'date', 'user_id', 'follow_up', 'follow_up_date', // follow up date for edit 'finished', 'note', 'show', 'files', 'send_agenda_item', 'time', 'duration', ], style:{ row:{ 'danger':{ 'v_status': '==danger', }, 'warning':{ 'v_status': '==warning', }, 'success':{ 'v_status': '==success', }, }, }, predefinedFilters: { finished: "false", }, fieldDetails: { files: { type: 'file', label: 'Bestanden', dropzoneDescription: 'Sleep of klik om een bestand toe te voegen!', uploadFileUrl: 'customer_note/upload/' + 0, fetchFileUrl: 'customer_note/fetch/' + 0, hideList: true, }, id: { hideList: false, hideEdit: true, label: '#', }, show: { label: 'Tonen', hideList: true, hideEdit: true, }, customer_id: { hideEdit: false, required: true, label: 'Klant', changeTo: ['customer.id', ' - ', 'customer.club_name'], }, subject: { label: 'Onderwerp', required: true, }, user_id: { label: 'Verantwoordelijke', default: $scope.user.id, }, follow_up: { label: 'Taak opvolgen', hideList: true, default: true, type: "boolean", booleanOn:"1", booleanOff:"0", }, v_follow_up_date: { label: 'Opvolg datum', hideEdit: true, sortAsc: true, }, follow_up_date: { label: 'Opvolg datum', sortAsc: true, hideList: true, hideEdit: false, required: true, }, finished: { label: 'Afgerond', hideList: true, type: "boolean", booleanOn:"1", booleanOff:"0", }, note: { label: 'Beschrijving', hideList: true, }, date: { label: 'Datum', hideList: true, required: true, default: new Date(), }, send_agenda_item: { label: 'Stuur herinneringsmail naar verantwoordelijke', type: 'boolean', booleanOn: '1', booleanOff: '0', hideList: true, }, time: { label: 'Tijd', hideList: true, hideEdit: true, required: true, }, duration: { label: 'Duur', hideList: true, hideEdit: true, required: true, }, }, buttons: { 'C':{ 'id': 'c', 'name': 'Agenda notitie toevoegen', 'label': 'Agenda notitie toevoegen', 'cancelName': 'Annuleren', 'confirmName': 'Toevoegen', 'confirmClass': 'success', 'icon':'fa-plus-square', 'header': true, 'inline': false, 'action': 'create', }, 'R':{ 'id': 'r', 'inline': true, 'cancelName': 'Sluiten', 'name': 'Bekijk', 'label': 'Bekijk', 'icon':'fa-search', 'action': 'read', }, 'U': { 'id': 'u', 'name': 'Bewerk', 'label': 'Bewerk', 'cancelName': 'Annuleren', 'confirmName': 'Wijzig', 'confirmClass': 'success', 'inline':true, 'icon':'fa-pencil', 'action': 'update', }, 'D': { 'id': 'd', 'inline': false, }, } } $scope.sbaCrudTableChange = function(tableName, fieldName, fieldValue, eventType) { switch(fieldName) { case 'send_agenda_item': if (fieldValue === true) { $scope.personalContactOverview.fieldDetails['time']['hideEdit'] = false; $scope.personalContactOverview.fieldDetails['duration']['hideEdit'] = false; $scope.personalContactOverview.modal.fields.forEach((field) => { if (field['name'] == 'time' || field['name'] == 'duration') { field['required'] = true; } }); } else if (fieldValue === false) { $scope.personalContactOverview.fieldDetails['time']['hideEdit'] = true; $scope.personalContactOverview.fieldDetails['duration']['hideEdit'] = true; $scope.personalContactOverview.modal.fields.forEach((field) => { if (field['name'] == 'time' || field['name'] == 'duration') { field['required'] = false; } }); } break; } } $scope.modalReady = function(tableName) { switch(tableName) { case $scope.personalContactOverview.name: let sendAgendaValue = $scope.personalContactOverview.modal.data.send_agenda_item !== undefined ? $scope.personalContactOverview.modal.data.send_agenda_item : true; $scope.sbaCrudTableChange(tableName, 'send_agenda_item', sendAgendaValue, 'CHANGE'); break; } } });