Loading composer.lock +1255 −550 File changed.Preview size limit exceeded, changes collapsed. Show changes doc/dev-front.md +6 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,12 @@ Ce document regroupe des informations informelles lièes au développement des fonctionnalités dans Oscar. ## UI (via vue-cli) ```bash npm install ``` ## UI Loading front/package-lock.json +76 −0 Original line number Diff line number Diff line Loading @@ -5200,6 +5200,15 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "axios": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz", "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==", "dev": true, "requires": { "follow-redirects": "^1.10.0" } }, "babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", Loading Loading @@ -18898,6 +18907,73 @@ } } }, "vue-resource": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/vue-resource/-/vue-resource-1.5.1.tgz", "integrity": "sha512-o6V4wNgeqP+9v9b2bPXrr20CGNQPEXjpbUWdZWq9GJhqVeAGcYoeTtn/D4q059ZiyN0DIrDv/ADrQUmlUQcsmg==", "dev": true, "requires": { "got": "^8.0.3" }, "dependencies": { "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "got": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { "@sindresorhus/is": "^0.7.0", "cacheable-request": "^2.1.1", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", "into-stream": "^3.1.0", "is-retry-allowed": "^1.1.0", "isurl": "^1.0.0-alpha5", "lowercase-keys": "^1.0.0", "mimic-response": "^1.0.0", "p-cancelable": "^0.4.0", "p-timeout": "^2.0.1", "pify": "^3.0.0", "safe-buffer": "^5.1.1", "timed-out": "^4.0.1", "url-parse-lax": "^3.0.0", "url-to-options": "^1.0.1" } }, "into-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { "from2": "^2.1.1", "p-is-promise": "^1.1.0" } }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { "prepend-http": "^2.0.0" } } } }, "vue-style-loader": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", front/package.json +2 −0 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ "@vue/cli": "^4.5.9", "@vue/cli-service-global": "^4.5.9", "@vue/composition-api": "^1.0.0-beta.21", "axios": "^0.21.0", "gulp": "^4.0.2", "vue-loader": "^15.9.5", "vue-resource": "^1.5.1", "vue-template-compiler": "^2.6.12" } } front/src/ActivityDocument.vue +76 −24 Original line number Diff line number Diff line <template> <section> <section style="position: relative; background: rgba(255,0,0,.1)"> <ajax-oscar :oscar-remote-data="remoterState" /> <pre>{{ remoteState }}</pre> <button @click="remoterState.loading = !remoterState.loading">TEST REMOTE</button> <div class="overlay" v-if="deleteData"> <div class="overlay-content"> <h2> Loading @@ -10,9 +15,11 @@ <i class="icon-attention-1"></i> Souhaitez-vous supprimer le fichier <strong>{{ deleteData.fileName }}</strong> ? </p> <button class="btn btn-danger" @click="deleteData = null"> <i class="icon-cancel-alt"></i> Annuler </button> <a class="btn btn-success" :href="deleteData.urlDelete"> <i class="icon-valid"></i> Confirmer </a> Loading Loading @@ -40,13 +47,18 @@ </div> </div> <article class="card xs" v-for="document in documentsPacked"> <article class="card xs" v-for="document in documentsPacked" :key="document.id"> <div class="card-title"> <i class="picto icon-doc" :class="'doc' + document.extension"></i> <template v-if="document.editmode"> <select @change="changeTypeDocument(document, $event)" @blur="document.editmode = false"> <option :value="key" v-for="(documentType, key) in documentTypes" :selected="document.categoryText == documentType">{{ documentType }}</option> <option v-for="(documentType, key) in documentTypes" :value="key" :key="documentType.id" :selected="document.categoryText == documentType"> {{ documentType }} </option> </select> </template> <template v-else> Loading Loading @@ -74,7 +86,7 @@ <i class="icon-angle-up" v-show="document.explode"></i> </div> <div v-if="document.previous.length" v-show="document.explode"> <article v-for="sub in document.previous" class="subdoc text-highlight"> <article v-for="sub in document.previous" class="subdoc text-highlight" :key="sub.id"> <i class="picto icon-doc" :class="'doc' + sub.extension"></i> <strong>{{ sub.fileName }}</strong> Loading Loading @@ -112,10 +124,20 @@ </template> <script> import AjaxOscar from "./remote/AjaxOscar"; import OscarRemoteData from "./remote/OscarRemoteData"; // test let oscarRemoteData = new OscarRemoteData(); function flashMessage(){ // TODO } export default { setup(){ console.log("Setup") components: { "ajax-oscar": AjaxOscar }, props: { Loading @@ -133,7 +155,8 @@ loading: true, sortField: 'dateUpload', sortDirection: -1, editable: true editable: true, remoterState: oscarRemoteData.state } }, Loading @@ -143,13 +166,17 @@ * @returns {Array} */ documentsPacked(){ var out = this.documents.sort( function(a,b) { let out = []; if( this.documents ){ let documents = this.documents; out = documents.sort(function(a, b) { if (a[this.sortField] < b[this.sortField]) return -1 * this.sortDirection; if( a[this.sortField] > b[this.sortField] ) return 1 * this.sortDirection; return 0; }.bind(this)); }; return out; } }, Loading @@ -172,27 +199,51 @@ }, changeTypeDocument: function( document, event ){ var newType = $(event.target.selectedOptions[0]).text(); $.post(this.urlDocumentType, { /*** oscarRemoteData .setPendingMessage("Chargement des documents") .setErrorMessage("Impossible de charger les documents") .performGet(this.url, this.handlerSuccess); */ var newType = event.target.selectedOptions[0].text; oscarRemoteData .setPendingMessage("Modification du type de document") .setErrorMessage("Impossible de modifier le type de document") .performPost(this.urlDocumentType, { documentId: document.id, type: newType }).then(ok => { flashMessage('success', 'Le document a bien été modifié'); }, (response) => { // Modification du type document.categoryText = newType; document.editMode = false; document.editMode = false; this.$forceUpdate(); //this.$forceUpdate(); }, error => { flashMessage('error', 'Erreur' + error.responseText); }, () => { document.editMode = false; }); this.$forceUpdate(); }) // this.$http.post(this.urlDocumentType, { // documentId: document.id, // type: newType // }).then(ok => { // flashMessage('success', 'Le document a bien été modifié', ok); // document.categoryText = newType; // document.editMode = false; // this.$forceUpdate(); // }, error => { // flashMessage('error', 'Erreur' + error.responseText); // document.editMode = false; // }); }, fetch(){ this.$http.get(this.url).then( ok => { let data = ok.data.datas; handlerSuccess(success){ let data = success.data.datas; let documentsOrdered = []; let documents = {}; Loading @@ -211,11 +262,12 @@ }); this.documents = documentsOrdered; }, ko => { console.log("ERROR", ko); } ) fetch(){ oscarRemoteData .setPendingMessage("Chargement des documents") .setErrorMessage("Impossible de charger les documents") .performGet(this.url, this.handlerSuccess); } }, Loading Loading
doc/dev-front.md +6 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,12 @@ Ce document regroupe des informations informelles lièes au développement des fonctionnalités dans Oscar. ## UI (via vue-cli) ```bash npm install ``` ## UI Loading
front/package-lock.json +76 −0 Original line number Diff line number Diff line Loading @@ -5200,6 +5200,15 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "axios": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz", "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==", "dev": true, "requires": { "follow-redirects": "^1.10.0" } }, "babel-core": { "version": "7.0.0-bridge.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", Loading Loading @@ -18898,6 +18907,73 @@ } } }, "vue-resource": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/vue-resource/-/vue-resource-1.5.1.tgz", "integrity": "sha512-o6V4wNgeqP+9v9b2bPXrr20CGNQPEXjpbUWdZWq9GJhqVeAGcYoeTtn/D4q059ZiyN0DIrDv/ADrQUmlUQcsmg==", "dev": true, "requires": { "got": "^8.0.3" }, "dependencies": { "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "got": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "requires": { "@sindresorhus/is": "^0.7.0", "cacheable-request": "^2.1.1", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", "into-stream": "^3.1.0", "is-retry-allowed": "^1.1.0", "isurl": "^1.0.0-alpha5", "lowercase-keys": "^1.0.0", "mimic-response": "^1.0.0", "p-cancelable": "^0.4.0", "p-timeout": "^2.0.1", "pify": "^3.0.0", "safe-buffer": "^5.1.1", "timed-out": "^4.0.1", "url-parse-lax": "^3.0.0", "url-to-options": "^1.0.1" } }, "into-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { "from2": "^2.1.1", "p-is-promise": "^1.1.0" } }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { "prepend-http": "^2.0.0" } } } }, "vue-style-loader": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
front/package.json +2 −0 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ "@vue/cli": "^4.5.9", "@vue/cli-service-global": "^4.5.9", "@vue/composition-api": "^1.0.0-beta.21", "axios": "^0.21.0", "gulp": "^4.0.2", "vue-loader": "^15.9.5", "vue-resource": "^1.5.1", "vue-template-compiler": "^2.6.12" } }
front/src/ActivityDocument.vue +76 −24 Original line number Diff line number Diff line <template> <section> <section style="position: relative; background: rgba(255,0,0,.1)"> <ajax-oscar :oscar-remote-data="remoterState" /> <pre>{{ remoteState }}</pre> <button @click="remoterState.loading = !remoterState.loading">TEST REMOTE</button> <div class="overlay" v-if="deleteData"> <div class="overlay-content"> <h2> Loading @@ -10,9 +15,11 @@ <i class="icon-attention-1"></i> Souhaitez-vous supprimer le fichier <strong>{{ deleteData.fileName }}</strong> ? </p> <button class="btn btn-danger" @click="deleteData = null"> <i class="icon-cancel-alt"></i> Annuler </button> <a class="btn btn-success" :href="deleteData.urlDelete"> <i class="icon-valid"></i> Confirmer </a> Loading Loading @@ -40,13 +47,18 @@ </div> </div> <article class="card xs" v-for="document in documentsPacked"> <article class="card xs" v-for="document in documentsPacked" :key="document.id"> <div class="card-title"> <i class="picto icon-doc" :class="'doc' + document.extension"></i> <template v-if="document.editmode"> <select @change="changeTypeDocument(document, $event)" @blur="document.editmode = false"> <option :value="key" v-for="(documentType, key) in documentTypes" :selected="document.categoryText == documentType">{{ documentType }}</option> <option v-for="(documentType, key) in documentTypes" :value="key" :key="documentType.id" :selected="document.categoryText == documentType"> {{ documentType }} </option> </select> </template> <template v-else> Loading Loading @@ -74,7 +86,7 @@ <i class="icon-angle-up" v-show="document.explode"></i> </div> <div v-if="document.previous.length" v-show="document.explode"> <article v-for="sub in document.previous" class="subdoc text-highlight"> <article v-for="sub in document.previous" class="subdoc text-highlight" :key="sub.id"> <i class="picto icon-doc" :class="'doc' + sub.extension"></i> <strong>{{ sub.fileName }}</strong> Loading Loading @@ -112,10 +124,20 @@ </template> <script> import AjaxOscar from "./remote/AjaxOscar"; import OscarRemoteData from "./remote/OscarRemoteData"; // test let oscarRemoteData = new OscarRemoteData(); function flashMessage(){ // TODO } export default { setup(){ console.log("Setup") components: { "ajax-oscar": AjaxOscar }, props: { Loading @@ -133,7 +155,8 @@ loading: true, sortField: 'dateUpload', sortDirection: -1, editable: true editable: true, remoterState: oscarRemoteData.state } }, Loading @@ -143,13 +166,17 @@ * @returns {Array} */ documentsPacked(){ var out = this.documents.sort( function(a,b) { let out = []; if( this.documents ){ let documents = this.documents; out = documents.sort(function(a, b) { if (a[this.sortField] < b[this.sortField]) return -1 * this.sortDirection; if( a[this.sortField] > b[this.sortField] ) return 1 * this.sortDirection; return 0; }.bind(this)); }; return out; } }, Loading @@ -172,27 +199,51 @@ }, changeTypeDocument: function( document, event ){ var newType = $(event.target.selectedOptions[0]).text(); $.post(this.urlDocumentType, { /*** oscarRemoteData .setPendingMessage("Chargement des documents") .setErrorMessage("Impossible de charger les documents") .performGet(this.url, this.handlerSuccess); */ var newType = event.target.selectedOptions[0].text; oscarRemoteData .setPendingMessage("Modification du type de document") .setErrorMessage("Impossible de modifier le type de document") .performPost(this.urlDocumentType, { documentId: document.id, type: newType }).then(ok => { flashMessage('success', 'Le document a bien été modifié'); }, (response) => { // Modification du type document.categoryText = newType; document.editMode = false; document.editMode = false; this.$forceUpdate(); //this.$forceUpdate(); }, error => { flashMessage('error', 'Erreur' + error.responseText); }, () => { document.editMode = false; }); this.$forceUpdate(); }) // this.$http.post(this.urlDocumentType, { // documentId: document.id, // type: newType // }).then(ok => { // flashMessage('success', 'Le document a bien été modifié', ok); // document.categoryText = newType; // document.editMode = false; // this.$forceUpdate(); // }, error => { // flashMessage('error', 'Erreur' + error.responseText); // document.editMode = false; // }); }, fetch(){ this.$http.get(this.url).then( ok => { let data = ok.data.datas; handlerSuccess(success){ let data = success.data.datas; let documentsOrdered = []; let documents = {}; Loading @@ -211,11 +262,12 @@ }); this.documents = documentsOrdered; }, ko => { console.log("ERROR", ko); } ) fetch(){ oscarRemoteData .setPendingMessage("Chargement des documents") .setErrorMessage("Impossible de charger les documents") .performGet(this.url, this.handlerSuccess); } }, Loading