Commit 547b2d5e authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Refonte des affectations dans les activités en cours

parent a8e826b3
Loading
Loading
Loading
Loading
+1 −0
Changes for module/Oscar/src/Oscar/Controller/EnrollController.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -608,6 +608,7 @@ class EnrollController extends AbstractOscarController
    ////////////////////////////////////////////////////////////////////////////
    public function organizationActivityNewAction()
    {
        $this->getLogger()->debug("AJOUT D'une ORGANISATIOn dans une ACTIVITÉ");
        return $this->saveEnroll(ActivityOrganization::class);
    }

+14 −3
Changes for module/Oscar/src/Oscar/Controller/ProjectGrantController.php: 14 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -1263,6 +1263,11 @@ class ProjectGrantController extends AbstractOscarController
        // Check access
        $this->getOscarUserContext()->check(Privileges::ACTIVITY_SHOW, $entity);

        $rolesOrganizations = [];
        if( $this->getOscarUserContext()->hasPrivileges(Privileges::ACTIVITY_ORGANIZATION_MANAGE) ){
            $rolesOrganizations = $this->getOscarUserContext()->getRolesOrganizationInActivity();
        }


        //////////////////////////////////////////////////////////// Passage WTF
        // Si l'on supprime le bloc suivant, l'affichage des partenaires
@@ -1337,6 +1342,8 @@ class ProjectGrantController extends AbstractOscarController
            // Personnes pouvant voir cette activité
            'involvedPerson' => $involvedPersonsJSON,

            'rolesOrganizations' => $rolesOrganizations,

            // Notifications précalculées
            'notifications' => $this->getEntityManager()->getRepository(Notification::class)
                ->findBy(['object' => Notification::OBJECT_ACTIVITY, 'objectId' => $activity->getId()]),
@@ -1468,6 +1475,8 @@ class ProjectGrantController extends AbstractOscarController
        $editableP = $deletableP = $this->getOscarUserContext()->hasPrivileges(Privileges::PROJECT_ORGANIZATION_MANAGE,
            $activity->getProject());

        $showable = $this->getOscarUserContext()->hasPrivileges(Privileges::ORGANIZATION_SHOW);

        $classRoutes = [
            ActivityOrganization::class => 'organizationactivity',
            ActivityPerson::class => 'personactivity',
@@ -1497,14 +1506,18 @@ class ProjectGrantController extends AbstractOscarController
            $urlEdit = $editableA ? $this->url()->fromRoute($classRoutes[$class] . '/edit',
                ['idenroll' => $activityOrganization->getId()]) : false;

            $urlShow = $showable ? $this->url()->fromRoute('organization/show', ['id' => $activityOrganization->getOrganization()->getId()]) : false;

            $out[] = [
                'id' => $activityOrganization->getId(),
                'roleId' => $activityOrganization->getRoleObj()->getId(),
                'role' => $activityOrganization->getRole(),
                'roleLabel' => $activityOrganization->getRole(),
                'rolePrincipal' => $activityOrganization->isPrincipal(),
                'urlDelete' => $urlDelete,
                'context' => $context,
                'urlEdit' => $urlEdit,
                'urlShow' => $urlShow,
                'enroller' => $activity->getId(),
                'enrollerLabel' => (string)$activity,
                'editable' => $editable,
@@ -1516,9 +1529,7 @@ class ProjectGrantController extends AbstractOscarController
                'end' => $activityOrganization->getDateEnd()
            ];
        }

        echo json_encode($out);
        die();
        return $this->jsonOutput($out);
    }

    /**
+25 −0
Changes for module/Oscar/view/oscar/project-grant/show.phtml: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -243,6 +243,31 @@
            <hr />
            <?php endif; ?>

            <?php if ($this->grant()->privilege(\Oscar\Provider\Privileges::ACTIVITY_ORGANIZATION_SHOW, $entity)): ?>
            <section id="organizations" class="has-btn">ORGANIZATIONS
            </section>
            <script>
                require(['vue', 'vue-resource', 'EntityWithRole'], function(Vue, VueResource, EntityWithRole){
                    Vue.use(VueResource);
                    Vue.http.options.emulateJSON = true;
                    Vue.http.options.emulateHTTP = true;
                    new Vue({
                        el: "#organizations",
                        render(h){
                            return h(EntityWithRole.default, { props: {
                                    url: "<?= $this->url('contract/organizations', ['id' => $entity->getId()]) ?>",
                                    urlNew: "<?= $this->url('organizationactivity/new', ['idenroller' => $entity->getId()]) ?>",
                                    manage: <?= $this->grant()->privilege(\Oscar\Provider\Privileges::ACTIVITY_ORGANIZATION_MANAGE) ? "true" : false ?>,
                                    roles: <?= json_encode($rolesOrganizations) ?>
                                }});
                        }

                    })
                });
            </script>
            <?php endif; ?>


            <?php if ($this->grant()->privilege(\Oscar\Provider\Privileges::ACTIVITY_ORGANIZATION_SHOW, $entity)): ?>
            <section id="partners" class="has-btn">
                <h2><i class="icon-group"></i> Partenaires</h2>
+2 −1
Changes for public/js/oscar-config.js: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -86,7 +86,8 @@ requirejs.config({
        'ActivityPersons': 'oscar/dist/ActivityPersons',
        'ActivityGant': 'oscar/dist/ActivityGant',
        'Keyvalue': 'oscar/dist/Keyvalue',
        'DocumentSectionAdmin': 'oscar/dist/DocumentSectionAdmin'
        'DocumentSectionAdmin': 'oscar/dist/DocumentSectionAdmin',
        'EntityWithRole': 'oscar/dist/EntityWithRole'
    },
    shim: {
        "bootstrap": {
+2 −0
Changes for public/js/oscar/dist/EntityWithRole.js: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
(function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.EntityWithRole=e():t.EntityWithRole=e()})("undefined"!=typeof self?self:this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=3)}([function(t,e){t.exports=function(t,e,n,i,o,r){var a,s=t=t||{},l=typeof t.default;"object"!==l&&"function"!==l||(a=t,s=t.default);var c="function"==typeof s?s.options:s;e&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),o&&(c._scopeId=o);var d;if(r?(d=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=d):i&&(d=i),d){var u=c.functional,p=u?c.render:c.beforeCreate;u?(c._injectStyles=d,c.render=function(t,e){return d.call(e),p(t,e)}):c.beforeCreate=p?[].concat(p,d):[d]}return{esModule:a,exports:s,options:c}}},function(t,e,n){"use strict";var i=n(5);e.a={components:{organizationselector:i.a},props:{url:{required:!0},urlNew:{required:!0},roles:{required:!0},manage:{required:!1}},data:function(){return{entities:[],entityEdited:null,entityDelete:null,entityNew:null}},methods:{handlerEdit:function(t){this.entityEdited=t},handlerDelete:function(t){this.entityDelete=t},handlerNew:function(){console.log(this.urlNew),this.entityNew={end:"",start:"",role:null,enroled:null}},handlerEnrolledSelected:function(t){this.entityNew.enroled=t.id,this.entityNew.enroledLabel=t.label},performDelete:function(){var t=this;this.$http.post(this.entityDelete.urlDelete,{}).then(function(t){console.log("OK",t)},function(t){console.log("ERROR",t)}).then(function(e){t.entityDelete=null,t.fetch()})},performEdit:function(){var t=this,e=new FormData;e.append("dateStart",""),e.append("dateEnd",""),e.append("role",this.entityEdited.roleId),e.append("enrolled",this.entityEdited.enrolled),this.$http.post(this.entityEdited.urlEdit,e).then(function(t){console.log("OK",t)},function(t){console.log("ERROR",t)}).then(function(e){t.entityEdited=null,t.fetch()}),console.log(arguments)},performNew:function(){var t=this,e=new FormData;e.append("dateStart",this.entityNew.start),e.append("dateEnd",this.entityNew.end),e.append("role",this.entityNew.role),e.append("enroled",this.entityNew.enroled),this.$http.post(this.urlNew+"/"+this.entityNew.enroled,e).then(function(t){console.log("OK",t)},function(t){console.log("ERROR",t)}).then(function(e){t.entityNew=null,t.fetch()}),console.log(arguments)},fetch:function(){var t=this;this.$http.get(this.url).then(function(e){console.log(e),t.entities=e.body},function(t){console.error(t)})}},mounted:function(){this.fetch()}}},function(t,e,n){"use strict";n(6);e.a={data:function(){return{url:"/organization?q=",organizations:[],expression:"",loading:!1,selectedPerson:null,showSelector:!0}},watch:{expression:function(t,e){t.length>=2&&this.search()}},methods:{search:function(){var t=this;this.loading=!0,this.$http.get(this.url+this.expression+"*").then(function(e){t.organizations=e.body.datas,t.showSelector=!0},function(t){console.log(t)}).then(function(e){return t.loading=!1})},handlerSelectPerson:function(t){this.selectedPerson=t,this.showSelector=!1,this.expression="",this.$emit("change",t)}}}},function(t,e,n){t.exports=n(4)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=n(8),r=n(0),a=r(i.a,o.a,!1,null,null,null);e.default=a.exports},function(t,e,n){"use strict";var i=n(2),o=n(7),r=n(0),a=r(i.a,o.a,!1,null,null,null);e.a=a.exports},function(t,e,n){"use strict";var i=[];Math.random()},function(t,e,n){"use strict";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.expression,expression:"expression"}],attrs:{type:"text"},domProps:{value:t.expression},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.search(e))},input:function(e){e.target.composing||(t.expression=e.target.value)}}}),t._v(" "),n("span",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}]},[n("i",{staticClass:"icon-spinner animate-spin"})]),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.organizations.length>0&&t.showSelector,expression:"organizations.length > 0 && showSelector"}],staticClass:"choose",staticStyle:{position:"absolute","z-index":"3000"}},t._l(t.organizations,function(e){return n("div",{key:e.id,staticClass:"choice",on:{click:function(n){return n.preventDefault(),n.stopPropagation(),t.handlerSelectPerson(e)}}},[n("div",{staticClass:"infos"},[n("strong",[t._v(t._s(e.label))])])])}),0)])},o=[],r={render:i,staticRenderFns:o};e.a=r},function(t,e,n){"use strict";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t.entityDelete?n("div",{staticClass:"overlay"},[n("div",{staticClass:"overlay-content"},[n("i",{staticClass:"icon-cancel-outline overlay-closer",on:{click:function(e){t.entityDelete=null}}}),t._v(" "),n("h2",[t._v("Supprimer le rôle "),n("strong",[t._v(t._s(t.entityDelete.role))]),t._v(" de "),n("strong",[t._v(t._s(t.entityDelete.enrolledLabel))]),t._v(" ?")]),t._v(" "),n("nav",{staticClass:"admin-bar"},[n("button",{staticClass:"btn btn-default button-back",on:{click:function(e){t.entityDelete=null}}},[n("i",{staticClass:"icon-angle-left"}),t._v("\n                    Annuler\n                ")]),t._v(" "),n("button",{staticClass:"btn btn-primary",on:{click:t.performDelete}},[n("i",{staticClass:"icon-trash"}),t._v("\n                    Confirmer la suppression\n                ")])])])]):t._e(),t._v(" "),t.entityEdited?n("div",{staticClass:"overlay"},[n("div",{staticClass:"overlay-content"},[n("i",{staticClass:"icon-cancel-outline overlay-closer",on:{click:function(e){t.entityEdited=null}}}),t._v(" "),n("form",{attrs:{action:t.entityEdited.urlEdit,method:"post"},on:{submit:function(e){return e.preventDefault(),t.performEdit(e)}}},[n("h2",[t._v("Rôle de "),n("strong",[t._v(t._s(t.entityEdited.enrolledLabel))]),t._v(" : ")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityEdited.enrolled,expression:"entityEdited.enrolled"}],staticClass:"form-control select2",attrs:{type:"hidden",name:"enroled"},domProps:{value:t.entityEdited.enrolled},on:{input:function(e){e.target.composing||t.$set(t.entityEdited,"enrolled",e.target.value)}}}),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:" control-label",attrs:{for:"role"}},[t._v("Rôle")]),t._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:t.entityEdited.roleId,expression:"entityEdited.roleId"}],staticClass:" form-control",attrs:{name:"role"},on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});t.$set(t.entityEdited,"roleId",e.target.multiple?n:n[0])}}},t._l(t.roles,function(e,i){return n("option",{domProps:{value:i}},[t._v("\n                            "+t._s(e)+"\n                        ")])}),0)]),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:"form-label control-label",attrs:{for:"dateStart"}},[t._v("Date de début")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityEdited.start,expression:"entityEdited.start"}],staticClass:"form-control datepicker form-control",attrs:{type:"text",name:"dateStart",placeholder:"Date de début"},domProps:{value:t.entityEdited.start},on:{input:function(e){e.target.composing||t.$set(t.entityEdited,"start",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:"form-label control-label",attrs:{for:"dateEnd"}},[t._v("Date de fin")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityEdited.end,expression:"entityEdited.end"}],staticClass:"form-control datepicker form-control",attrs:{type:"text",name:"dateEnd",placeholder:"Date de fin"},domProps:{value:t.entityEdited.end},on:{input:function(e){e.target.composing||t.$set(t.entityEdited,"end",e.target.value)}}})]),t._v(" "),n("nav",{staticClass:"admin-bar"},[n("button",{staticClass:"btn btn-default button-back",on:{click:function(e){t.entityEdited=null}}},[n("i",{staticClass:"icon-angle-left"}),t._v("\n                        Annuler\n                    ")]),t._v(" "),t._m(0)])]),t._v(" "),n("pre",[t._v(t._s(t.entityEdited))])])]):t._e(),t._v(" "),t.entityNew?n("div",{staticClass:"overlay"},[n("div",{staticClass:"overlay-content"},[n("i",{staticClass:"icon-cancel-outline overlay-closer",on:{click:function(e){t.entityNew=null}}}),t._v(" "),n("h2",[t._v("Rôle de "),n("strong",[t._v(t._s(t.entityNew.enroledLabel))]),t._v(" : ")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityNew.enrolled,expression:"entityNew.enrolled"}],staticClass:"form-control select2",attrs:{type:"hidden",name:"enroled"},domProps:{value:t.entityNew.enrolled},on:{input:function(e){e.target.composing||t.$set(t.entityNew,"enrolled",e.target.value)}}}),t._v(" "),n("organizationselector",{on:{change:function(e){return t.handlerEnrolledSelected(e)}}}),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:" control-label",attrs:{for:"role"}},[t._v("Rôle")]),t._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:t.entityNew.role,expression:"entityNew.role"}],staticClass:" form-control",attrs:{name:"role"},on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});t.$set(t.entityNew,"role",e.target.multiple?n:n[0])}}},t._l(t.roles,function(e,i){return n("option",{domProps:{value:i}},[t._v("\n                        "+t._s(e)+"\n                    ")])}),0)]),t._v(" "),n("pre",[t._v(t._s(t.entityNew))]),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:"form-label control-label",attrs:{for:"dateStart"}},[t._v("Date de début")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityNew.start,expression:"entityNew.start"}],staticClass:"form-control datepicker form-control",attrs:{type:"text",name:"dateStart",placeholder:"Date de début"},domProps:{value:t.entityNew.start},on:{input:function(e){e.target.composing||t.$set(t.entityNew,"start",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"form-group"},[n("label",{staticClass:"form-label control-label",attrs:{for:"dateEnd"}},[t._v("Date de fin")]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.entityNew.end,expression:"entityNew.end"}],staticClass:"form-control datepicker form-control",attrs:{type:"text",name:"dateEnd",placeholder:"Date de fin"},domProps:{value:t.entityNew.end},on:{input:function(e){e.target.composing||t.$set(t.entityNew,"end",e.target.value)}}})]),t._v(" "),n("nav",{staticClass:"admin-bar"},[n("button",{staticClass:"btn btn-default button-back",on:{click:function(e){t.entityNew=null}}},[n("i",{staticClass:"icon-angle-left"}),t._v("\n                    Annuler\n                ")]),t._v(" "),n("button",{staticClass:"btn btn-primary",attrs:{type:"submit"},on:{click:t.performNew}},[n("i",{staticClass:"icon-floppy"}),t._v("\n                    Enregistrer\n                ")])]),t._v(" "),n("pre",[t._v(t._s(t.entityNew))])],1)]):t._e(),t._v(" "),n("nav",{staticClass:"admin-bar"},[n("a",{staticClass:"link",on:{click:function(e){return t.handlerNew()}}},[n("i",{staticClass:"icon-doc-add"}),t._v("\n            Nouveau\n        ")])]),t._v(" "),t._l(t.entities,function(e){return n("span",{staticClass:"cartouche",class:{primary:e.rolePrincipal}},["activity"==e.context?n("i",{staticClass:"icon-cube"}):n("i",{staticClass:"icon-cubes"}),t._v("\n        "+t._s(e.enrolledLabel)+"\n        "),n("span",{staticClass:"addon"},[t._v("\n            "+t._s(e.roleLabel)+"\n            "),e.urlEdit?n("i",{staticClass:"icon-pencil-1 icon-clickable",on:{click:function(n){return t.handlerEdit(e)}}}):t._e(),t._v(" "),e.urlDelete?n("i",{staticClass:"icon-trash icon-clickable",on:{click:function(n){return t.handlerDelete(e)}}}):t._e()])])})],2)},o=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("button",{staticClass:"btn btn-primary",attrs:{type:"submit"}},[n("i",{staticClass:"icon-floppy"}),t._v("\n                        Enregistrer\n                    ")])}],r={render:i,staticRenderFns:o};e.a=r}])});
//# sourceMappingURL=EntityWithRole.js.map
 No newline at end of file
Loading