Loading public/js/oscar/src/ActivitySearchItem.vue→front/src/ActivitySearchItem.vue +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ <span class="currency">{{ activity.amount.currency }}</span> </span> </span> </h3>amount </h3> <div class="card-content"> <div class="row metas"> Loading public/js/oscar/src/ActivitySearchUi.vue→front/src/ActivitySearchUi.vue +8 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,14 @@ import OscarGrowl from './OscarGrowl.vue'; import OscarBus from './OscarBus.js'; /******************************************************************************************************************/ /* ! DEVELOPPEUR Depuis la racine OSCAR : cd front Pour compiler en temps réél : node node_modules/.bin/vue-cli-service build --name ActivitySearchUi --dest ../public/js/oscar/dist/ --no-clean --formats umd,umd-min --target lib src/ActivitySearchUi.vue --watch */ //node node_modules/.bin/poi watch --format umd --moduleName ActivitySearchUi --filename.css ActivitySearchUi.css --filename.js ActivitySearchUi.js --dist public/js/oscar/dist public/js/oscar/src/ActivitySearchUi.vue Loading front/src/OscarBus.js 0 → 100644 +31 −0 Original line number Diff line number Diff line const messages = []; const OscarBus = { id: "BUS" + Math.random(), name: "!OscarBus!", messages: messages, message(msg, type="notice"){ messages.push({ key: (new Date()).getTime(), msg: msg, date: new Date(), type: type, read: false }) }, errors(){ let err = []; }, unreadErrors(){ let err = []; for( let i =0; i<messages.length; i++ ){ if( !messages[i].read ){ err.push(messages[i]); } } return err; } }; export default OscarBus; front/src/OscarGrowl.vue 0 → 100644 +65 −0 Original line number Diff line number Diff line <template> <div class="oscar-growl"> <section v-show="show"> <transition-group name="list" tag="article"> <article v-for="err in unreadErrors" class="alert alert-danger" :key="err.key"> <i class="icon-attention-1"></i> {{ err.msg }} <i class="icon-cancel-outline" @click="err.read = true"></i> <pre>{{ err }}</pre> </article> </transition-group> </section> </div> </template> <script> import OscarBus from './OscarBus.js'; export default { props: { }, data(){ return { view: ["error"], show: true, bus: OscarBus } }, computed: { errors(){ console.log("ERRORS"); let errors = []; for( let i=0; i<this.bus.messages.length; i++ ){ if( this.bus.messages[i].type == 'error') errors.push(this.bus.messages[i]); } return errors; }, unreadErrors(){ console.log("ERRORS UNREAD", this.bus.messages); let errors = []; for( let i=0; i<this.errors.length; i++ ){ if( this.errors[i].read != true) errors.push(this.errors[i]); } return errors; } }, mounted(){ console.log(this.bus.id); } } </script> <style> .oscar-growl { position: fixed; top: 50px; right: 0; z-index: 10; } </style> module/Oscar/view/oscar/project/current-user-projects.phtml +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ new Vue({ render: function (h) { return h(ActivitySearchUi.default, { return h(ActivitySearchUi, { props: { url: '<?= $this->url('contract/api') ?>', first: true, Loading Loading
public/js/oscar/src/ActivitySearchItem.vue→front/src/ActivitySearchItem.vue +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ <span class="currency">{{ activity.amount.currency }}</span> </span> </span> </h3>amount </h3> <div class="card-content"> <div class="row metas"> Loading
public/js/oscar/src/ActivitySearchUi.vue→front/src/ActivitySearchUi.vue +8 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,14 @@ import OscarGrowl from './OscarGrowl.vue'; import OscarBus from './OscarBus.js'; /******************************************************************************************************************/ /* ! DEVELOPPEUR Depuis la racine OSCAR : cd front Pour compiler en temps réél : node node_modules/.bin/vue-cli-service build --name ActivitySearchUi --dest ../public/js/oscar/dist/ --no-clean --formats umd,umd-min --target lib src/ActivitySearchUi.vue --watch */ //node node_modules/.bin/poi watch --format umd --moduleName ActivitySearchUi --filename.css ActivitySearchUi.css --filename.js ActivitySearchUi.js --dist public/js/oscar/dist public/js/oscar/src/ActivitySearchUi.vue Loading
front/src/OscarBus.js 0 → 100644 +31 −0 Original line number Diff line number Diff line const messages = []; const OscarBus = { id: "BUS" + Math.random(), name: "!OscarBus!", messages: messages, message(msg, type="notice"){ messages.push({ key: (new Date()).getTime(), msg: msg, date: new Date(), type: type, read: false }) }, errors(){ let err = []; }, unreadErrors(){ let err = []; for( let i =0; i<messages.length; i++ ){ if( !messages[i].read ){ err.push(messages[i]); } } return err; } }; export default OscarBus;
front/src/OscarGrowl.vue 0 → 100644 +65 −0 Original line number Diff line number Diff line <template> <div class="oscar-growl"> <section v-show="show"> <transition-group name="list" tag="article"> <article v-for="err in unreadErrors" class="alert alert-danger" :key="err.key"> <i class="icon-attention-1"></i> {{ err.msg }} <i class="icon-cancel-outline" @click="err.read = true"></i> <pre>{{ err }}</pre> </article> </transition-group> </section> </div> </template> <script> import OscarBus from './OscarBus.js'; export default { props: { }, data(){ return { view: ["error"], show: true, bus: OscarBus } }, computed: { errors(){ console.log("ERRORS"); let errors = []; for( let i=0; i<this.bus.messages.length; i++ ){ if( this.bus.messages[i].type == 'error') errors.push(this.bus.messages[i]); } return errors; }, unreadErrors(){ console.log("ERRORS UNREAD", this.bus.messages); let errors = []; for( let i=0; i<this.errors.length; i++ ){ if( this.errors[i].read != true) errors.push(this.errors[i]); } return errors; } }, mounted(){ console.log(this.bus.id); } } </script> <style> .oscar-growl { position: fixed; top: 50px; right: 0; z-index: 10; } </style>
module/Oscar/view/oscar/project/current-user-projects.phtml +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ new Vue({ render: function (h) { return h(ActivitySearchUi.default, { return h(ActivitySearchUi, { props: { url: '<?= $this->url('contract/api') ?>', first: true, Loading