diff --git a/apps/maarch_entreprise/Views/doctypes-administration.component.html b/apps/maarch_entreprise/Views/doctypes-administration.component.html index 38a73457aebfd69218280181f5aefc3ca7224883..bc8ed41225a0432386a61301a964efc46ad53932 100644 --- a/apps/maarch_entreprise/Views/doctypes-administration.component.html +++ b/apps/maarch_entreprise/Views/doctypes-administration.component.html @@ -31,7 +31,7 @@ <mat-divider></mat-divider> <mat-nav-list> <h3 mat-subheader>{{lang.tools}}</h3> - <a mat-list-item (click)="prepareEntityAdd()"> + <a mat-list-item (click)="prepareDoctypeAdd()"> <mat-icon color="primary" mat-list-icon class="fa fa-plus"></mat-icon> <p mat-line> {{lang.add}} @@ -58,9 +58,9 @@ <mat-nav-list> <mat-tab-group> - <mat-tab label="{{lang.firstLevelDoctype}}" *ngIf="currentFirstLevel"> + <mat-tab label="{{lang.firstLevelDoctype}}" *ngIf="currentFirstLevel || creationMode"> <form class="form-horizontal" #firstLevelForm="ngForm" style="overflow:hidden;"> - <div class="form-group"> + <div class="form-group" *ngIf="!creationMode"> <div class="col-sm-12"> <mat-form-field> <input matInput [(ngModel)]="currentFirstLevel.doctypes_first_level_id" required name="doctypes_first_level_id" id="doctypes_first_level_id" title="{{lang.id}}" type="text" @@ -85,8 +85,8 @@ <div class="col-sm-12"> <mat-form-field> <mat-select id="foldertypeList" name="foldertypeList" title="{{lang.folderTypeList}}" placeholder="{{lang.folderTypeList}}" - [(ngModel)]="currentFirstLevel.folderTypeSelected" multiple required> - <mat-option *ngFor="let folderType of FolderTypes" [value]="folderType.foldertype_id"> + [(ngModel)]="currentFirstLevel.foldertype_id" multiple required> + <mat-option *ngFor="let folderType of folderTypes" [value]="folderType.foldertype_id"> {{folderType.foldertype_label}} </mat-option> </mat-select> @@ -95,18 +95,18 @@ </div> <div class="form-group"> <div class="col-md-12 text-center" style="padding:10px;"> - <button mat-raised-button [disabled]="!firstLevelForm.form.valid" color="primary" (click)="saveEntity()">{{lang.save}}</button> - <button mat-raised-button *ngIf="!creationMode" [disabled]="!firstLevelForm.form.valid" - color="warn" (click)="removeEntity()">{{lang.delete}}</button> - <button mat-raised-button *ngIf="creationMode" color="default" (click)="readMode()">{{lang.cancel}}</button> + <button mat-raised-button [disabled]="!firstLevelForm.form.valid" color="primary" (click)="saveFirstLevel()">{{lang.save}}</button> + <button type="button" mat-raised-button *ngIf="!creationMode" [disabled]="!firstLevelForm.form.valid" + color="warn" (click)="removeFirstLevel()">{{lang.delete}}</button> + <button type="button" mat-raised-button *ngIf="creationMode" color="default" (click)="readMode()">{{lang.cancel}}</button> </div> </div> </form> </mat-tab> - <mat-tab label="{{lang.secondLevelDoctype}}" *ngIf="currentSecondLevel"> + <mat-tab label="{{lang.secondLevelDoctype}}" *ngIf="currentSecondLevel || creationMode"> <form class="form-horizontal" #secondLevelForm="ngForm" style="overflow:hidden;"> - <div class="form-group"> + <div class="form-group" *ngIf="!creationMode"> <div class="col-sm-12"> <mat-form-field> <input matInput [(ngModel)]="currentSecondLevel.doctypes_second_level_id" required name="doctypes_second_level_id" id="doctypes_second_level_id" title="{{lang.id}}" type="text" @@ -141,18 +141,18 @@ </div> <div class="form-group"> <div class="col-md-12 text-center" style="padding:10px;"> - <button mat-raised-button [disabled]="!secondLevelForm.form.valid" color="primary" (click)="saveEntity()">{{lang.save}}</button> + <button mat-raised-button [disabled]="!secondLevelForm.form.valid" color="primary" (click)="saveSecondLevel()">{{lang.save}}</button> <button mat-raised-button *ngIf="!creationMode" [disabled]="!secondLevelForm.form.valid" - color="warn" (click)="removeEntity()">{{lang.delete}}</button> + color="warn" (click)="removeSecondLevel()">{{lang.delete}}</button> <button mat-raised-button *ngIf="creationMode" color="default" (click)="readMode()">{{lang.cancel}}</button> </div> </div> </form> </mat-tab> - <mat-tab label="{{lang.doctype}}" *ngIf="currentType"> + <mat-tab label="{{lang.doctype}}" *ngIf="currentType || creationMode"> <form class="form-horizontal" #typeForm="ngForm" style="overflow:hidden;"> - <div class="form-group"> + <div class="form-group" *ngIf="!creationMode"> <div class="col-sm-12"> <mat-form-field> <input matInput [(ngModel)]="currentType.type_id" required name="type_id" id="type_id" title="{{lang.id}}" type="text" diff --git a/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.js b/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.js index 1763cf800b272fc07667e09afd65e8537a5c3107..93ec8d8099ad3489242c9632b3a03e2d66a9419b 100644 --- a/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.js +++ b/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.js @@ -1,14 +1,4 @@ "use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -24,31 +14,27 @@ var layout_1 = require("@angular/cdk/layout"); var http_1 = require("@angular/common/http"); var translate_component_1 = require("../translate.component"); var notification_service_1 = require("../notification.service"); -var autocomplete_plugin_1 = require("../../plugins/autocomplete.plugin"); -var DoctypesAdministrationComponent = /** @class */ (function (_super) { - __extends(DoctypesAdministrationComponent, _super); +var DoctypesAdministrationComponent = /** @class */ (function () { function DoctypesAdministrationComponent(changeDetectorRef, media, http, notify) { - var _this = _super.call(this, http, ['usersAndEntities']) || this; - _this.http = http; - _this.notify = notify; - _this.lang = translate_component_1.LANG; - _this.doctypes = []; - _this.currentType = false; - _this.currentSecondLevel = false; - _this.currentFirstLevel = false; - _this.firstLevels = false; - _this.FolderTypes = false; - _this.secondLevels = false; - _this.processModes = false; - _this.models = false; - _this.indexes = false; - _this.loading = false; - _this.creationMode = false; + this.http = http; + this.notify = notify; + this.lang = translate_component_1.LANG; + this.doctypes = []; + this.currentType = false; + this.currentSecondLevel = false; + this.currentFirstLevel = false; + this.firstLevels = false; + this.folderTypes = false; + this.secondLevels = false; + this.processModes = false; + this.models = false; + this.indexes = false; + this.loading = false; + this.creationMode = false; $j("link[href='merged_css.php']").remove(); - _this.mobileQuery = media.matchMedia('(max-width: 768px)'); - _this._mobileQueryListener = function () { return changeDetectorRef.detectChanges(); }; - _this.mobileQuery.addListener(_this._mobileQueryListener); - return _this; + this.mobileQuery = media.matchMedia('(max-width: 768px)'); + this._mobileQueryListener = function () { return changeDetectorRef.detectChanges(); }; + this.mobileQuery.addListener(this._mobileQueryListener); } DoctypesAdministrationComponent.prototype.updateBreadcrumb = function (applicationName) { if ($j('#ariane')[0]) { @@ -114,12 +100,13 @@ var DoctypesAdministrationComponent = /** @class */ (function (_super) { }; DoctypesAdministrationComponent.prototype.loadDoctype = function (data) { var _this = this; + this.creationMode = false; // Doctype if (data.original.type_id) { + this.currentFirstLevel = false; + this.currentSecondLevel = false; this.http.get(this.coreUrl + "rest/doctypes/types/" + data.original.type_id) .subscribe(function (data) { - _this.currentFirstLevel = false; - _this.currentSecondLevel = false; _this.currentType = data['doctype']; _this.secondLevels = data['secondLevel']; _this.processModes = data['processModes']; @@ -131,24 +118,24 @@ var DoctypesAdministrationComponent = /** @class */ (function (_super) { // Second level } else if (data.original.doctypes_second_level_id) { + this.currentFirstLevel = false; + this.currentType = false; this.http.get(this.coreUrl + "rest/doctypes/secondLevel/" + data.original.doctypes_second_level_id) .subscribe(function (data) { - _this.currentFirstLevel = false; _this.currentSecondLevel = data['secondLevel']; _this.firstLevels = data['firstLevel']; - _this.currentType = false; }, function (err) { _this.notify.error(err.error.errors); }); // First level } else { + this.currentSecondLevel = false; + this.currentType = false; this.http.get(this.coreUrl + "rest/doctypes/firstLevel/" + data.original.doctypes_first_level_id) .subscribe(function (data) { _this.currentFirstLevel = data['firstLevel']; - _this.FolderTypes = data['folderTypes']; - _this.currentSecondLevel = false; - _this.currentType = false; + _this.folderTypes = data['folderTypes']; }, function (err) { _this.notify.error(err.error.errors); }); @@ -178,30 +165,58 @@ var DoctypesAdministrationComponent = /** @class */ (function (_super) { // this.currentDoctype.listTemplate.cc.unshift(newElemListModel); // } // } - // saveEntity() { - // if (this.creationMode) { - // this.http.post(this.coreUrl + "rest/entities", this.currentDoctype) - // .subscribe((data: any) => { - // this.creationMode = false; - // this.doctypes.push(this.currentDoctype); - // $j('#jstree').jstree("refresh"); - // this.notify.success(this.lang.entityAdded); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } else { - // this.http.put(this.coreUrl + "rest/entities/" + this.currentDoctype.entity_id, this.currentDoctype) - // .subscribe((data: any) => { - // console.log(data); - // this.doctypes = data['entities']; - // $j('#jstree').jstree(true).settings.core.data = this.doctypes; - // $j('#jstree').jstree("refresh"); - // this.notify.success(this.lang.entityUpdated); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } - // } + DoctypesAdministrationComponent.prototype.saveFirstLevel = function () { + var _this = this; + if (this.creationMode) { + this.http.post(this.coreUrl + "rest/doctypes/firstLevel", this.currentFirstLevel) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.firstLevelAdded); + _this.creationMode = false; + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + else { + this.http.put(this.coreUrl + "rest/doctypes/firstLevel/" + this.currentFirstLevel.doctypes_first_level_id, this.currentFirstLevel) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.firstLevelUpdated); + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + }; + DoctypesAdministrationComponent.prototype.saveSecondLevel = function () { + var _this = this; + if (this.creationMode) { + this.http.post(this.coreUrl + "rest/doctypes/secondLevel", this.currentSecondLevel) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.secondLevelAdded); + _this.creationMode = false; + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + else { + this.http.put(this.coreUrl + "rest/doctypes/secondLevel/" + this.currentSecondLevel.doctypes_second_level_id, this.currentSecondLevel) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.secondLevelUpdated); + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + }; // moveEntity() { // this.http.put(this.coreUrl + "rest/entities/" + this.currentDoctype.entity_id, this.currentDoctype) // .subscribe((data: any) => { @@ -215,6 +230,57 @@ var DoctypesAdministrationComponent = /** @class */ (function (_super) { $j('#jstree').jstree('deselect_all'); $j('#jstree').jstree('select_node', this.doctypes[0]); }; + DoctypesAdministrationComponent.prototype.removeFirstLevel = function () { + var _this = this; + var r = confirm(this.lang.confirmAction + ' ' + this.lang.delete + ' « ' + this.currentFirstLevel.doctypes_first_level_label + ' »'); + if (r) { + this.http.delete(this.coreUrl + "rest/doctypes/firstLevel/" + this.currentFirstLevel.doctypes_first_level_id) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.firstLevelDeleted); + $j('#jstree').jstree('select_node', _this.doctypes[0]); + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + }; + DoctypesAdministrationComponent.prototype.removeSecondLevel = function () { + var _this = this; + var r = confirm(this.lang.confirmAction + ' ' + this.lang.delete + ' « ' + this.currentSecondLevel.doctypes_second_level_label + ' »'); + if (r) { + this.http.delete(this.coreUrl + "rest/doctypes/secondLevel/" + this.currentSecondLevel.doctypes_second_level_id) + .subscribe(function (data) { + _this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = _this.doctypes; + $j('#jstree').jstree("refresh"); + _this.notify.success(_this.lang.secondLevelDeleted); + $j('#jstree').jstree('select_node', _this.doctypes[0]); + }, function (err) { + _this.notify.error(err.error.errors); + }); + } + }; + DoctypesAdministrationComponent.prototype.prepareDoctypeAdd = function () { + var _this = this; + this.currentFirstLevel = {}; + this.currentSecondLevel = {}; + this.currentType = {}; + $j('#jstree').jstree('deselect_all'); + this.http.get(this.coreUrl + "rest/administration/doctypes/new") + .subscribe(function (data) { + _this.folderTypes = data['folderTypes']; + _this.firstLevels = data['firstLevel']; + _this.secondLevels = data['secondLevel']; + _this.processModes = data['processModes']; + _this.models = data['models']; + _this.indexes = data['models']; + }, function (err) { + _this.notify.error(err.error.errors); + }); + this.creationMode = true; + }; DoctypesAdministrationComponent = __decorate([ core_1.Component({ templateUrl: angularGlobals["doctypes-administrationView"], @@ -223,5 +289,5 @@ var DoctypesAdministrationComponent = /** @class */ (function (_super) { __metadata("design:paramtypes", [core_1.ChangeDetectorRef, layout_1.MediaMatcher, http_1.HttpClient, notification_service_1.NotificationService]) ], DoctypesAdministrationComponent); return DoctypesAdministrationComponent; -}(autocomplete_plugin_1.AutoCompletePlugin)); +}()); exports.DoctypesAdministrationComponent = DoctypesAdministrationComponent; diff --git a/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.ts index 6c97f7ae4a9e5f0c5123aaf0f58dcf03877e43fd..ffccc5c2d78ba61ed7b2e05ea0b2409c5e56a00b 100644 --- a/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.ts +++ b/apps/maarch_entreprise/js/angular/app/administration/doctypes-administration.component.ts @@ -4,8 +4,6 @@ import { HttpClient } from '@angular/common/http'; import { LANG } from '../translate.component'; import { NotificationService } from '../notification.service'; -import { AutoCompletePlugin } from '../../plugins/autocomplete.plugin'; - declare function $j(selector: any): any; declare var angularGlobals: any; @@ -16,7 +14,7 @@ declare var angularGlobals: any; providers: [NotificationService] }) -export class DoctypesAdministrationComponent extends AutoCompletePlugin implements OnInit { +export class DoctypesAdministrationComponent implements OnInit { mobileQuery: MediaQueryList; private _mobileQueryListener: () => void; coreUrl: string; @@ -27,7 +25,7 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen currentSecondLevel: any = false; currentFirstLevel: any = false; firstLevels: any = false; - FolderTypes: any = false; + folderTypes: any = false; secondLevels: any = false; processModes: any = false; models: any = false; @@ -38,7 +36,6 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private notify: NotificationService) { - super(http, ['usersAndEntities']); $j("link[href='merged_css.php']").remove(); this.mobileQuery = media.matchMedia('(max-width: 768px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); @@ -112,41 +109,43 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen } loadDoctype(data: any) { + this.creationMode = false; + // Doctype if(data.original.type_id){ + this.currentFirstLevel = false; + this.currentSecondLevel = false; this.http.get(this.coreUrl + "rest/doctypes/types/" + data.original.type_id ) .subscribe((data: any) => { - this.currentFirstLevel = false; - this.currentSecondLevel = false; - this.currentType = data['doctype']; - this.secondLevels = data['secondLevel']; - this.processModes = data['processModes']; - this.models = data['models']; - this.indexes = data['indexes']; + this.currentType = data['doctype']; + this.secondLevels = data['secondLevel']; + this.processModes = data['processModes']; + this.models = data['models']; + this.indexes = data['indexes']; }, (err) => { this.notify.error(err.error.errors); }); // Second level } else if(data.original.doctypes_second_level_id) { + this.currentFirstLevel = false; + this.currentType = false; this.http.get(this.coreUrl + "rest/doctypes/secondLevel/" + data.original.doctypes_second_level_id ) .subscribe((data: any) => { - this.currentFirstLevel = false; this.currentSecondLevel = data['secondLevel']; this.firstLevels = data['firstLevel']; - this.currentType = false; }, (err) => { this.notify.error(err.error.errors); }); // First level } else { + this.currentSecondLevel = false; + this.currentType = false; this.http.get(this.coreUrl + "rest/doctypes/firstLevel/" + data.original.doctypes_first_level_id ) .subscribe((data: any) => { this.currentFirstLevel = data['firstLevel']; - this.FolderTypes = data['folderTypes']; - this.currentSecondLevel = false; - this.currentType = false; + this.folderTypes = data['folderTypes']; }, (err) => { this.notify.error(err.error.errors); }); @@ -180,31 +179,55 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen // } - // saveEntity() { - // if (this.creationMode) { - // this.http.post(this.coreUrl + "rest/entities", this.currentDoctype) - // .subscribe((data: any) => { - // this.creationMode = false; - // this.doctypes.push(this.currentDoctype); - // $j('#jstree').jstree("refresh"); - // this.notify.success(this.lang.entityAdded); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } else { - // this.http.put(this.coreUrl + "rest/entities/" + this.currentDoctype.entity_id, this.currentDoctype) - // .subscribe((data: any) => { - // console.log(data); - // this.doctypes = data['entities']; - // $j('#jstree').jstree(true).settings.core.data = this.doctypes; - // $j('#jstree').jstree("refresh"); - // this.notify.success(this.lang.entityUpdated); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } - // } + saveFirstLevel() { + if (this.creationMode) { + this.http.post(this.coreUrl + "rest/doctypes/firstLevel", this.currentFirstLevel) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.firstLevelAdded); + this.creationMode = false; + }, (err) => { + this.notify.error(err.error.errors); + }); + } else { + this.http.put(this.coreUrl + "rest/doctypes/firstLevel/" + this.currentFirstLevel.doctypes_first_level_id, this.currentFirstLevel) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.firstLevelUpdated); + }, (err) => { + this.notify.error(err.error.errors); + }); + } + } + saveSecondLevel() { + if (this.creationMode) { + this.http.post(this.coreUrl + "rest/doctypes/secondLevel", this.currentSecondLevel) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.secondLevelAdded); + this.creationMode = false; + }, (err) => { + this.notify.error(err.error.errors); + }); + } else { + this.http.put(this.coreUrl + "rest/doctypes/secondLevel/" + this.currentSecondLevel.doctypes_second_level_id, this.currentSecondLevel) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.secondLevelUpdated); + }, (err) => { + this.notify.error(err.error.errors); + }); + } + } // moveEntity() { // this.http.put(this.coreUrl + "rest/entities/" + this.currentDoctype.entity_id, this.currentDoctype) // .subscribe((data: any) => { @@ -212,7 +235,6 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen // }, (err) => { // this.notify.error(err.error.errors); // }); - // } readMode() { @@ -221,40 +243,57 @@ export class DoctypesAdministrationComponent extends AutoCompletePlugin implemen $j('#jstree').jstree('select_node', this.doctypes[0]); } - // removeEntity() { - // this.http.delete(this.coreUrl + "rest/entities/" + this.currentDoctype.entity_id) - // .subscribe((data: any) => { - // this.doctypes = data['entities']; - // $j('#jstree').jstree("refresh"); - // this.notify.success(this.lang.entityDeleted); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } + removeFirstLevel() { + let r = confirm(this.lang.confirmAction + ' ' + this.lang.delete + ' « ' + this.currentFirstLevel.doctypes_first_level_label + ' »'); - // prepareEntityAdd() { - // $j('#jstree').jstree('deselect_all'); - // this.creationMode = true; - // this.currentDoctype = {}; - // } + if (r) { + this.http.delete(this.coreUrl + "rest/doctypes/firstLevel/" + this.currentFirstLevel.doctypes_first_level_id) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.firstLevelDeleted); + $j('#jstree').jstree('select_node', this.doctypes[0]); + }, (err) => { + this.notify.error(err.error.errors); + }); + } + } + removeSecondLevel() { + let r = confirm(this.lang.confirmAction + ' ' + this.lang.delete + ' « ' + this.currentSecondLevel.doctypes_second_level_label + ' »'); - // updateStatus(entity: any, method: string) { - // this.http.put(this.coreUrl + "rest/entities/" + entity['entity_id'] + "/status", { "method": method }) - // .subscribe((data: any) => { - // this.notify.success(""); - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } + if (r) { + this.http.delete(this.coreUrl + "rest/doctypes/secondLevel/" + this.currentSecondLevel.doctypes_second_level_id) + .subscribe((data: any) => { + this.doctypes = data['doctypeTree']; + $j('#jstree').jstree(true).settings.core.data = this.doctypes; + $j('#jstree').jstree("refresh"); + this.notify.success(this.lang.secondLevelDeleted); + $j('#jstree').jstree('select_node', this.doctypes[0]); + }, (err) => { + this.notify.error(err.error.errors); + }); + } + } + + prepareDoctypeAdd() { + this.currentFirstLevel = {}; + this.currentSecondLevel = {}; + this.currentType = {}; + $j('#jstree').jstree('deselect_all'); + this.http.get(this.coreUrl + "rest/administration/doctypes/new") + .subscribe((data: any) => { + this.folderTypes = data['folderTypes']; + this.firstLevels = data['firstLevel']; + this.secondLevels = data['secondLevel']; + this.processModes = data['processModes']; + this.models = data['models']; + this.indexes = data['models']; + }, (err) => { + this.notify.error(err.error.errors); + }); + this.creationMode = true; + } - // delete(entity: any) { - // this.http.delete(this.coreUrl + "rest/entities/" + entity['entity_id']) - // .subscribe((data: any) => { - // this.notify.success(this.lang.entityDeleted); - // this.doctypes = data['entities']; - // }, (err) => { - // this.notify.error(err.error.errors); - // }); - // } } diff --git a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.js b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.js index 1e4ecc7e25c22cf7342f38cae7b459a69fbb65ef..6a92d253d8cc355976afa85a2900ee79c1c0dc8d 100644 --- a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.js +++ b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.js @@ -32,7 +32,7 @@ var autocomplete_plugin_1 = require("../../plugins/autocomplete.plugin"); var EntitiesAdministrationComponent = /** @class */ (function (_super) { __extends(EntitiesAdministrationComponent, _super); function EntitiesAdministrationComponent(changeDetectorRef, media, http, notify, dialog) { - var _this = _super.call(this, http, 'usersAndEntities') || this; + var _this = _super.call(this, http, ['usersAndEntities']) || this; _this.http = http; _this.notify = notify; _this.dialog = dialog; @@ -346,7 +346,7 @@ exports.EntitiesAdministrationComponent = EntitiesAdministrationComponent; var EntitiesAdministrationRedirectModalComponent = /** @class */ (function (_super) { __extends(EntitiesAdministrationRedirectModalComponent, _super); function EntitiesAdministrationRedirectModalComponent(http, data, dialogRef) { - var _this = _super.call(this, http, 'entities') || this; + var _this = _super.call(this, http, ['entities']) || this; _this.http = http; _this.data = data; _this.dialogRef = dialogRef; diff --git a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts index e9e1edc2f3da183097ea1a9b0c7a9750ea2fdd3b..884781b497f230d90e1c26c162483a08c6d9f6bb 100644 --- a/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts +++ b/apps/maarch_entreprise/js/angular/app/administration/entities-administration.component.ts @@ -47,7 +47,7 @@ export class EntitiesAdministrationComponent extends AutoCompletePlugin implemen constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private notify: NotificationService, public dialog: MatDialog) { - super(http, 'usersAndEntities'); + super(http, ['usersAndEntities']); $j("link[href='merged_css.php']").remove(); this.mobileQuery = media.matchMedia('(max-width: 768px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); @@ -341,6 +341,6 @@ export class EntitiesAdministrationRedirectModalComponent extends AutoCompletePl lang: any = LANG; constructor(public http: HttpClient, @Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef<EntitiesAdministrationRedirectModalComponent>) { - super(http, 'entities'); + super(http, ['entities']); } } \ No newline at end of file diff --git a/apps/maarch_entreprise/js/angular/lang/lang-fr.js b/apps/maarch_entreprise/js/angular/lang/lang-fr.js index 3ecd083907bd0e471a7c6a9223f5de045f7d57c7..cd0f2afb0084963db04bd43f47aca94a317d71b1 100755 --- a/apps/maarch_entreprise/js/angular/lang/lang-fr.js +++ b/apps/maarch_entreprise/js/angular/lang/lang-fr.js @@ -304,4 +304,10 @@ exports.LANG_FR = { "generatedFile": "Fichier généré", "destruction": "Destruction", "conservation": "Conservation", + "firstLevelAdded": "Chemise créée", + "firstLevelUpdated": "Chemise mise à jour", + "firstLevelDeleted": "Chemise supprimée", + "secondLevelAdded": "Sous-chemise créée", + "secondLevelUpdated": "Sous-chemise mise à jour", + "secondLevelDeleted": "Sous-chemise supprimée", }; diff --git a/apps/maarch_entreprise/js/angular/lang/lang-fr.ts b/apps/maarch_entreprise/js/angular/lang/lang-fr.ts index fc6ed5896384759a668be107d237063259f59d34..023926dfc2d11b8929f6d1c0e29326ce190f6da8 100755 --- a/apps/maarch_entreprise/js/angular/lang/lang-fr.ts +++ b/apps/maarch_entreprise/js/angular/lang/lang-fr.ts @@ -302,4 +302,10 @@ export const LANG_FR = { "generatedFile" : "Fichier généré", "destruction" : "Destruction", "conservation" : "Conservation", + "firstLevelAdded" : "Chemise créée", + "firstLevelUpdated" : "Chemise mise à jour", + "firstLevelDeleted" : "Chemise supprimée", + "secondLevelAdded" : "Sous-chemise créée", + "secondLevelUpdated" : "Sous-chemise mise à jour", + "secondLevelDeleted" : "Sous-chemise supprimée", }; \ No newline at end of file diff --git a/core/Test/DoctypeControllerTest.php b/core/Test/DoctypeControllerTest.php index 7daf03237aae233cec80f2d39aecc6cc92d296ff..c72d9dc59df6829a297a1d2f2a43c02c46425fd8 100755 --- a/core/Test/DoctypeControllerTest.php +++ b/core/Test/DoctypeControllerTest.php @@ -39,42 +39,22 @@ class DoctypeControllerTest extends TestCase $this->assertNotNull($responseBody->structure[0]->enabled); } - public function testinitFirstLevel() + public function testinitDoctypes() { $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $request = \Slim\Http\Request::createFromEnvironment($environment); $firstLevelController = new \Doctype\controllers\FirstLevelController(); - $response = $firstLevelController->initFirstLevel($request, new \Slim\Http\Response()); + $response = $firstLevelController->initDoctypes($request, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); - $this->assertNotNull($responseBody->folderType); - $this->assertNotNull($responseBody->folderType[0]->foldertype_id); - $this->assertNotNull($responseBody->folderType[0]->foldertype_label); - } - - public function testinitSecondLevel() - { - $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); - $request = \Slim\Http\Request::createFromEnvironment($environment); - - $secondLevelController = new \Doctype\controllers\SecondLevelController(); - $response = $secondLevelController->initSecondLevel($request, new \Slim\Http\Response()); - $responseBody = json_decode((string)$response->getBody()); + $this->assertNotNull($responseBody->folderTypes); + $this->assertNotNull($responseBody->folderTypes[0]->foldertype_id); + $this->assertNotNull($responseBody->folderTypes[0]->foldertype_label); $this->assertNotNull($responseBody->firstLevel); $this->assertNotNull($responseBody->firstLevel[0]->doctypes_first_level_id); $this->assertNotNull($responseBody->firstLevel[0]->doctypes_first_level_label); - } - - public function testinitDoctype() - { - $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); - $request = \Slim\Http\Request::createFromEnvironment($environment); - - $doctypeController = new \Doctype\controllers\DoctypeController(); - $response = $doctypeController->initDoctype($request, new \Slim\Http\Response()); - $responseBody = json_decode((string)$response->getBody()); $this->assertNotNull($responseBody->secondLevel); $this->assertNotNull($responseBody->processModes); @@ -105,7 +85,7 @@ class DoctypeControllerTest extends TestCase $response = $firstLevelController->create($fullRequest, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); - self::$firstLevelId = $responseBody->firstLevel; + self::$firstLevelId = $responseBody->firstLevelId; $this->assertInternalType('int', self::$firstLevelId); @@ -144,7 +124,7 @@ class DoctypeControllerTest extends TestCase $response = $secondLevelController->create($fullRequest, new \Slim\Http\Response()); $responseBody = json_decode((string)$response->getBody()); - self::$secondLevelId = $responseBody->secondLevel; + self::$secondLevelId = $responseBody->secondLevelId; $this->assertInternalType('int', self::$secondLevelId); @@ -245,10 +225,10 @@ class DoctypeControllerTest extends TestCase $response = $firstLevelController->update($fullRequest, new \Slim\Http\Response(), ["id" => self::$firstLevelId]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame(self::$firstLevelId, $responseBody->firstLevel->doctypes_first_level_id); - $this->assertSame('testTUfirstlevelUPDATE', $responseBody->firstLevel->doctypes_first_level_label); - $this->assertSame('#7777', $responseBody->firstLevel->css_style); - $this->assertSame('Y', $responseBody->firstLevel->enabled); + $this->assertSame(self::$firstLevelId, $responseBody->firstLevelId->doctypes_first_level_id); + $this->assertSame('testTUfirstlevelUPDATE', $responseBody->firstLevelId->doctypes_first_level_label); + $this->assertSame('#7777', $responseBody->firstLevelId->css_style); + $this->assertSame('Y', $responseBody->firstLevelId->enabled); // UPDATE FAIL $aArgs = [ @@ -287,11 +267,11 @@ class DoctypeControllerTest extends TestCase $response = $secondLevelController->update($fullRequest, new \Slim\Http\Response(), ["id" => self::$secondLevelId]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id); - $this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevel->doctypes_second_level_label); - $this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id); - $this->assertSame('#7777', $responseBody->secondLevel->css_style); - $this->assertSame('Y', $responseBody->secondLevel->enabled); + $this->assertSame(self::$secondLevelId, $responseBody->secondLevelId->doctypes_second_level_id); + $this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevelId->doctypes_second_level_label); + $this->assertSame(self::$firstLevelId, $responseBody->secondLevelId->doctypes_first_level_id); + $this->assertSame('#7777', $responseBody->secondLevelId->css_style); + $this->assertSame('Y', $responseBody->secondLevelId->enabled); // UPDATE FAIL $aArgs = [ @@ -387,7 +367,7 @@ class DoctypeControllerTest extends TestCase $this->assertSame('testTUfirstlevelUPDATE', $responseBody->firstLevel->doctypes_first_level_label); $this->assertSame('#7777', $responseBody->firstLevel->css_style); $this->assertSame(true, $responseBody->firstLevel->enabled); - $this->assertNotNull($responseBody->firstLevel->folderTypeSelected); + $this->assertNotNull($responseBody->firstLevel->foldertype_id); $this->assertNotNull($responseBody->folderTypes); // READ FIRST LEVEL FAIL @@ -607,11 +587,11 @@ class DoctypeControllerTest extends TestCase $response = $secondLevelController->delete($fullRequest, new \Slim\Http\Response(), ["id" => self::$secondLevelId]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id); - $this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id); - $this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevel->doctypes_second_level_label); - $this->assertSame('#7777', $responseBody->secondLevel->css_style); - $this->assertSame('N', $responseBody->secondLevel->enabled); + $this->assertSame(self::$secondLevelId, $responseBody->secondLevelDeleted->doctypes_second_level_id); + $this->assertSame(self::$firstLevelId, $responseBody->secondLevelDeleted->doctypes_first_level_id); + $this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevelDeleted->doctypes_second_level_label); + $this->assertSame('#7777', $responseBody->secondLevelDeleted->css_style); + $this->assertSame('N', $responseBody->secondLevelDeleted->enabled); // DELETE FAIL $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); @@ -640,10 +620,10 @@ class DoctypeControllerTest extends TestCase $response = $firstLevelController->delete($fullRequest, new \Slim\Http\Response(), ["id" => self::$firstLevelId]); $responseBody = json_decode((string)$response->getBody()); - $this->assertSame(self::$firstLevelId, $responseBody->firstLevel->doctypes_first_level_id); - $this->assertSame('testTUfirstlevelUPDATE', $responseBody->firstLevel->doctypes_first_level_label); - $this->assertSame('#7777', $responseBody->firstLevel->css_style); - $this->assertSame('N', $responseBody->firstLevel->enabled); + $this->assertSame(self::$firstLevelId, $responseBody->firstLevelDeleted->doctypes_first_level_id); + $this->assertSame('testTUfirstlevelUPDATE', $responseBody->firstLevelDeleted->doctypes_first_level_label); + $this->assertSame('#7777', $responseBody->firstLevelDeleted->css_style); + $this->assertSame('N', $responseBody->firstLevelDeleted->enabled); // DELETE FAIL $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); diff --git a/package-lock.json b/package-lock.json index d2c8814d4927e325e59d2ea42c2addc4a5173f49..3067bfa391109180085ce10f6bbd8ff2fa9858ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -128,7 +128,7 @@ "@browserify/acorn5-object-spread": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@browserify/acorn5-object-spread/-/acorn5-object-spread-5.0.1.tgz", - "integrity": "sha1-kumzf5e+rJ7EKaPMR53tOAKXVAw=", + "integrity": "sha512-sFCUPzgeEjdq3rinwy4TFXtak2YZdhqpj6MdNusxkdTFr9TXAUEYK4YQSamR8Joqt/yii1drgl5hk8q/AtJDKA==", "dev": true, "requires": { "acorn": "5.3.0" @@ -137,7 +137,7 @@ "acorn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha1-dEbTlFnFT7SagObuZHgUm5QOyCI=", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", "dev": true } } @@ -145,7 +145,7 @@ "@types/datatables.net": { "version": "1.10.8", "resolved": "https://registry.npmjs.org/@types/datatables.net/-/datatables.net-1.10.8.tgz", - "integrity": "sha1-La3k1KULWHq3l0px5J7Q654Y8wA=", + "integrity": "sha512-5RzUppTRNhVJhAtP1Pq+hFVJgFP7V7yNt8Tjob8cXFg1zo91mtCR6xZn4JJ1hT6fYM1w9Bz9Iy62ja1bbZx7ZA==", "dev": true, "requires": { "@types/jquery": "2.0.48" @@ -154,13 +154,13 @@ "@types/jquery": { "version": "2.0.48", "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.48.tgz", - "integrity": "sha1-PpDYzeLSkBXlWDAX94MMs5dbLu8=", + "integrity": "sha512-nNLzUrVjaRV/Ds1eHZLYTd7IZxs38cwwLSaqMJj8OTXY8xNUbxSK69bi9cMLvQ7dm/IBeQ1wHwQ0S1uYa0rd2w==", "dev": true }, "@types/node": { "version": "7.0.55", "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.55.tgz", - "integrity": "sha1-e7YhX/lCWh1xQQa+nw0+DiiCkog=", + "integrity": "sha512-diCxfWNT4g2UM9Y+BPgy4s3egcZ2qOXc0mXLauvbsBUq9SBKQfh0SmuEUEhJVFZt/p6UDsjg1s2EgfM6OSlp4g==", "dev": true }, "JSONStream": { @@ -248,7 +248,7 @@ "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { "micromatch": "2.3.11", @@ -283,7 +283,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { @@ -331,7 +331,7 @@ "asn1.js": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha1-gRfvT37YfNj4kES1v/l6wkOhbJo=", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -446,7 +446,7 @@ "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, "bcrypt-pbkdf": { @@ -477,7 +477,7 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, "boom": { @@ -607,7 +607,7 @@ "browser-pack": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.3.tgz", - "integrity": "sha1-kcqWUYWD71gKsGOjCd5i5Ad2ejk=", + "integrity": "sha512-Jo+RYsn8X8OhyP9tMXXg0ueR2fW696HUu1Hf3/DeiwNean1oGiPtdgGRNuUHBpPHzBH3x4n1kzAlgOgHSIq88g==", "dev": true, "requires": { "JSONStream": "1.3.2", @@ -638,7 +638,7 @@ "browserify": { "version": "15.2.0", "resolved": "https://registry.npmjs.org/browserify/-/browserify-15.2.0.tgz", - "integrity": "sha1-HhIbofpyz5/S2N8AL4Z0totF34k=", + "integrity": "sha512-IHYyFPm2XjJCL+VV0ZtFv8wn/sAHVOm83q3yfSn8YWbZ9jcybgPKxSDdiuMU+35jUL1914l74RnXXPD9Iyo9yg==", "dev": true, "requires": { "JSONStream": "1.3.2", @@ -694,7 +694,7 @@ "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha1-OLerVe24Bv8tzaGn8WIHc6R3xJ8=", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "dev": true, "requires": { "buffer-xor": "1.0.3", @@ -755,7 +755,7 @@ "browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { "pako": "1.0.6" @@ -764,7 +764,7 @@ "buffer": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", - "integrity": "sha1-hNqlLnzy+ozkGVvFzw94CeCTCyQ=", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", "dev": true, "requires": { "base64-js": "1.2.1", @@ -886,7 +886,7 @@ "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { "inherits": "2.0.3", @@ -1051,7 +1051,7 @@ "commander": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao=", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", "dev": true }, "component-emitter": { @@ -1224,7 +1224,7 @@ "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { "browserify-cipher": "1.0.0", @@ -1374,7 +1374,7 @@ "detective": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/detective/-/detective-5.0.2.tgz", - "integrity": "sha1-hOwuHFgedCEeKuT/zh7fUsMmP4Q=", + "integrity": "sha512-NUsLoezj4wb9o7vpxS9F3L5vcO87ceyRBcl48op06YFNwkyIEY997JpSCA5lDlDuDc6JxOtaL5qfK3muoWxpMA==", "dev": true, "requires": { "@browserify/acorn5-object-spread": "5.0.1", @@ -1385,7 +1385,7 @@ "acorn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha1-dEbTlFnFT7SagObuZHgUm5QOyCI=", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", "dev": true } } @@ -1410,7 +1410,7 @@ "domino": { "version": "1.0.30", "resolved": "https://registry.npmjs.org/domino/-/domino-1.0.30.tgz", - "integrity": "sha1-VKQVTsrpaGFmgPj+ujzt/zVccfQ=", + "integrity": "sha512-ikq8WiDSkICdkElud317F2Sigc6A3EDpWsxWBwIZqOl95km4p/Vc9Rj98id7qKgsjDmExj0AVM7JOd4bb647Xg==", "dev": true }, "dot-prop": { @@ -1507,7 +1507,7 @@ "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { "md5.js": "1.3.4", @@ -2603,7 +2603,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "gauge": { @@ -2690,7 +2690,7 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -2885,7 +2885,7 @@ "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { "inherits": "2.0.3", @@ -3376,7 +3376,7 @@ "jquery": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha1-lYzinoHJeQ8xvneS311NlfxX+8o=" + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" }, "jquery-typeahead": { "version": "2.10.4", @@ -3745,7 +3745,7 @@ "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -3782,7 +3782,7 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -3835,7 +3835,7 @@ "module-deps": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-5.0.1.tgz", - "integrity": "sha1-O8R8FLCm2SWv8uxKF3tFapauA5Y=", + "integrity": "sha512-sigq/hm/L+Z5IGi1DDl0x2ptkw7S86aFh213QhPLD8v9Opv90IHzKIuWJrRa5bJ77DVKHco2CfIEuThcT/vDJA==", "dev": true, "requires": { "JSONStream": "1.3.2", @@ -4570,7 +4570,7 @@ "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", "dev": true }, "parents": { @@ -4696,7 +4696,7 @@ "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha1-o14TxkeZsGzhUyD0WcIw5o5zut4=", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { "create-hash": "1.1.3", @@ -4826,7 +4826,7 @@ "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { "is-number": "3.0.0", @@ -4867,7 +4867,7 @@ "randombytes": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha1-0wLFIpSFiISKjTAMkytEwkIx2oA=", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -4876,7 +4876,7 @@ "randomfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha1-uWt99YfwHdkXJsQY8wVTsUGOPWI=", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", "dev": true, "requires": { "randombytes": "2.0.6", @@ -4928,7 +4928,7 @@ "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -4976,13 +4976,13 @@ "reflect-metadata": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", - "integrity": "sha1-MRvwxrY814LyKKgavhRqK/qcVvI=", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", "dev": true }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -5087,7 +5087,7 @@ "resolve": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha1-HwmsznlsmnYlefMbLBzEw83fnzY=", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -5127,7 +5127,7 @@ "rxjs": { "version": "5.5.6", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", - "integrity": "sha1-4x+5bW/S/x/YS86orpwC0AcXnAI=", + "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", "dev": true, "requires": { "symbol-observable": "1.0.1" @@ -5144,7 +5144,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "safe-regex": { @@ -5673,7 +5673,7 @@ "stream-http": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha1-/YZUbaybHJGv+PxdKHuY+vtBvBA=", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", "dev": true, "requires": { "builtin-status-codes": "3.0.0", @@ -5707,7 +5707,7 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -5785,7 +5785,7 @@ "systemjs": { "version": "0.20.19", "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.20.19.tgz", - "integrity": "sha1-wrnnnBn0vqU6GbHtP5dP+0Y76Uk=", + "integrity": "sha512-H/rKwNEEyej/+IhkmFNmKFyJul8tbH/muiPq5TyNoVTwsGhUjRsN3NlFnFQUvFXA3+GQmsXkCNXU6QKPl779aw==", "dev": true }, "tar": { @@ -6055,7 +6055,7 @@ "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha1-43qG/ajLuvI6BX9HPJ9Nxk5fwug=", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", "dev": true }, "tty-browserify": { @@ -6102,7 +6102,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } @@ -6646,7 +6646,7 @@ "zone.js": { "version": "0.8.20", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.20.tgz", - "integrity": "sha1-ohjEjbCUZLGf9vyPDUu1sQRuGF0=" + "integrity": "sha512-FXlA37ErSXCMy5RNBcGFgCI/Zivqzr0D19GuvDxhcYIJc7xkFp6c29DKyODJu0Zo+EMyur/WPPgcBh1EHjB9jA==" } } } diff --git a/rest/index.php b/rest/index.php index 9610937375061d85119a3e17626637248153c712..0cd7e436397fce48f8e1fcbb79d1cb171f5589c5 100755 --- a/rest/index.php +++ b/rest/index.php @@ -272,20 +272,18 @@ $app->post('/doctypes/firstLevel', \Doctype\controllers\FirstLevelController::cl $app->get('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':getById'); $app->put('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':update'); $app->delete('/doctypes/firstLevel/{id}', \Doctype\controllers\FirstLevelController::class . ':delete'); -$app->get('/administration/doctypes/firstLevel/new', \Doctype\controllers\FirstLevelController::class . ':initFirstLevel'); +$app->get('/administration/doctypes/new', \Doctype\controllers\FirstLevelController::class . ':initDoctypes'); $app->post('/doctypes/secondLevel', \Doctype\controllers\SecondLevelController::class . ':create'); $app->get('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':getById'); $app->put('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':update'); $app->delete('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':delete'); -$app->get('/administration/doctypes/secondLevel/new', \Doctype\controllers\SecondLevelController::class . ':initSecondLevel'); $app->post('/doctypes/types', \Doctype\controllers\DoctypeController::class . ':create'); $app->get('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':getById'); $app->put('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':update'); $app->delete('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':delete'); $app->delete('/doctypes/types/{id}/redirect', \Doctype\controllers\DoctypeController::class . ':deleteRedirect'); -$app->get('/administration/doctypes/types/new', \Doctype\controllers\DoctypeController::class . ':initDoctype'); //Reports $app->get('/reports/groups', \Report\controllers\ReportController::class . ':getGroups'); diff --git a/src/app/doctype/controllers/DoctypeController.php b/src/app/doctype/controllers/DoctypeController.php index e1d9db75add755ca35b5d834be579efb7a457111..f85bd0abf3eec2e177fe8b4913c327c29029a204 100644 --- a/src/app/doctype/controllers/DoctypeController.php +++ b/src/app/doctype/controllers/DoctypeController.php @@ -58,14 +58,6 @@ class DoctypeController return $response->withJson($obj); } - public function initDoctype(Request $request, Response $response) - { - $obj['secondLevel'] = SecondLevelModel::get(['select' => ['doctypes_second_level_id', 'doctypes_second_level_label']]); - $obj['processModes'] = DoctypeModel::getProcessMode(); - $obj['models'] = TemplateModel::getByTarget(['select' => ['template_id', 'template_label', 'template_comment'], 'template_target' => 'doctypes']); - return $response->withJson($obj); - } - public function create(Request $request, Response $response) { if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { diff --git a/src/app/doctype/controllers/FirstLevelController.php b/src/app/doctype/controllers/FirstLevelController.php index 67a82a5a681268bfb2e0461de61da5c4ddf737f7..c0d7de75b9b8d7ee66d977300beea7fdf0da2467 100644 --- a/src/app/doctype/controllers/FirstLevelController.php +++ b/src/app/doctype/controllers/FirstLevelController.php @@ -20,10 +20,19 @@ use Folder\models\FolderTypeModel; use Core\Models\ServiceModel; use Slim\Http\Request; use Slim\Http\Response; +use Template\models\TemplateModel; +use Doctype\models\DoctypeIndexesModel; class FirstLevelController { public function getTree(Request $request, Response $response) + { + return $response->withJson([ + 'structure' => FirstLevelController::getTreeFunction(), + ]); + } + + public function getTreeFunction() { $firstLevels = FirstLevelModel::get(); $secondLevels = SecondLevelModel::get(); @@ -50,9 +59,7 @@ class FirstLevelController array_push($structure, $doctypeValue); } - return $response->withJson([ - 'structure' => $structure, - ]); + return $structure; } public function getById(Request $request, Response $response, $aArgs) @@ -73,20 +80,25 @@ class FirstLevelController } $folderTypesSelected = FolderTypeModel::getFolderTypeDocTypeFirstLevel(['doctypes_first_level_id' => $aArgs['id']]); - $arrFolderTypesSelected = []; + $aFolderTypesSelected = []; foreach ($folderTypesSelected as $folderType) { - $arrFolderTypesSelected[] = $folderType['foldertype_id']; + $aFolderTypesSelected[] = $folderType['foldertype_id']; } - $obj['firstLevel']['folderTypeSelected'] = $arrFolderTypesSelected; + $obj['firstLevel']['foldertype_id'] = $aFolderTypesSelected; } $obj['folderTypes'] = FolderTypeModel::get(['select' => ['foldertype_id', 'foldertype_label']]); return $response->withJson($obj); } - public function initFirstLevel(Request $request, Response $response) + public function initDoctypes(Request $request, Response $response) { - $obj['folderType'] = FolderTypeModel::get(['select' => ['foldertype_id', 'foldertype_label']]); + $obj['folderTypes'] = FolderTypeModel::get(['select' => ['foldertype_id', 'foldertype_label']]); + $obj['firstLevel'] = FirstLevelModel::get(['select' => ['doctypes_first_level_id', 'doctypes_first_level_label']]); + $obj['secondLevel'] = SecondLevelModel::get(['select' => ['doctypes_second_level_id', 'doctypes_second_level_label']]); + $obj['processModes'] = DoctypeModel::getProcessMode(); + $obj['models'] = TemplateModel::getByTarget(['select' => ['template_id', 'template_label', 'template_comment'], 'template_target' => 'doctypes']); + $obj['indexes'] = DoctypeIndexesModel::getAllIndexes(); return $response->withJson($obj); } @@ -125,7 +137,8 @@ class FirstLevelController return $response->withJson( [ - 'firstLevel' => $firstLevelId + 'firstLevelId' => $firstLevelId, + 'doctypeTree' => FirstLevelController::getTreeFunction(), ] ); } @@ -170,7 +183,8 @@ class FirstLevelController return $response->withJson( [ - 'firstLevel' => $obj + 'firstLevelId' => $obj, + 'doctypeTree' => FirstLevelController::getTreeFunction(), ] ); } @@ -201,7 +215,10 @@ class FirstLevelController 'info' => _DOCTYPE_FIRSTLEVEL_DELETED. ' : ' . $firstLevel['doctypes_first_level_label'] ]); - return $response->withJson(['firstLevel' => $firstLevel]); + return $response->withJson([ + 'firstLevelDeleted' => $firstLevel, + 'doctypeTree' => FirstLevelController::getTreeFunction() + ]); } protected function control($aArgs, $mode) @@ -229,7 +246,11 @@ class FirstLevelController $errors[] = 'Invalid foldertype_id'; } - if (!Validator::notEmpty()->validate($aArgs['enabled']) || ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N')) { + if (empty($aArgs['enabled'])) { + $aArgs['enabled'] = 'Y'; + } + + if ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N') { $errors[]= 'Invalid enabled value'; } @@ -238,7 +259,7 @@ class FirstLevelController protected function manageValue($request) { - foreach ($request as $key => $value) { + foreach ($request as $key => $value) { if (in_array($key, ['enabled'])) { if (empty($value)) { $request[$key] = 'N'; diff --git a/src/app/doctype/controllers/SecondLevelController.php b/src/app/doctype/controllers/SecondLevelController.php index 66a12599042f7fd75a1fbbbfd9545dd1d47397e2..8c495e8f3c881e45abd17ad2f386543bded1762f 100644 --- a/src/app/doctype/controllers/SecondLevelController.php +++ b/src/app/doctype/controllers/SecondLevelController.php @@ -11,6 +11,7 @@ namespace Doctype\controllers; +use Doctype\controllers\FirstLevelController; use History\controllers\HistoryController; use Respect\Validation\Validator; use Doctype\models\FirstLevelModel; @@ -44,12 +45,6 @@ class SecondLevelController return $response->withJson($obj); } - public function initSecondLevel(Request $request, Response $response) - { - $obj['firstLevel'] = FirstLevelModel::get(['select' => ['doctypes_first_level_id', 'doctypes_first_level_label']]); - return $response->withJson($obj); - } - public function create(Request $request, Response $response) { if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { @@ -76,7 +71,8 @@ class SecondLevelController return $response->withJson( [ - 'secondLevel' => $secondLevelId + 'secondLevelId' => $secondLevelId, + 'doctypeTree' => FirstLevelController::getTreeFunction(), ] ); } @@ -111,7 +107,8 @@ class SecondLevelController return $response->withJson( [ - 'secondLevel' => $data + 'secondLevelId' => $data, + 'doctypeTree' => FirstLevelController::getTreeFunction(), ] ); } @@ -140,7 +137,10 @@ class SecondLevelController 'info' => _DOCTYPE_SECONDLEVEL_DELETED. ' : ' . $secondLevel['doctypes_second_level_label'] ]); - return $response->withJson(['secondLevel' => $secondLevel]); + return $response->withJson([ + 'secondLevelDeleted' => $secondLevel, + 'doctypeTree' => FirstLevelController::getTreeFunction() + ]); } protected function control($aArgs, $mode) @@ -169,7 +169,11 @@ class SecondLevelController $errors[] = 'Invalid doctypes_first_level_id'; } - if (!Validator::notEmpty()->validate($aArgs['enabled']) || ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N')) { + if (empty($aArgs['enabled'])) { + $aArgs['enabled'] = 'Y'; + } + + if ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N') { $errors[]= 'Invalid enabled value'; } @@ -178,7 +182,7 @@ class SecondLevelController protected function manageValue($request) { - foreach ($request as $key => $value) { + foreach ($request as $key => $value) { if (in_array($key, ['enabled'])) { if (empty($value)) { $request[$key] = 'N'; diff --git a/src/app/doctype/models/FirstLevelModelAbstract.php b/src/app/doctype/models/FirstLevelModelAbstract.php index 21abdad83faa55a1d293cf6044ffee0f4f7b0c07..25fb1fb15c0093888f3f4049d75555cc2d9114c1 100644 --- a/src/app/doctype/models/FirstLevelModelAbstract.php +++ b/src/app/doctype/models/FirstLevelModelAbstract.php @@ -24,6 +24,8 @@ class FirstLevelModelAbstract $firstLevel = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['doctypes_first_level'], + 'where' => ['enabled = ?'], + 'data' => ['Y'], 'order_by' => ['doctypes_first_level_id asc'] ]); diff --git a/src/app/doctype/models/SecondLevelModelAbstract.php b/src/app/doctype/models/SecondLevelModelAbstract.php index 270eaa96a7c644c86cd2b9d7c47f72c7ed7fdb0a..2a7e7d2290c49221800a293fff5f29fa7c1e604d 100644 --- a/src/app/doctype/models/SecondLevelModelAbstract.php +++ b/src/app/doctype/models/SecondLevelModelAbstract.php @@ -24,6 +24,8 @@ class SecondLevelModelAbstract $firstLevel = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['doctypes_second_level'], + 'where' => ['enabled = ?'], + 'data' => ['Y'], 'order_by' => ['doctypes_second_level_label asc'] ]);