Skip to content

Commit

Permalink
Integrates event roles API in admin permissions tab
Browse files Browse the repository at this point in the history
  • Loading branch information
agbilotia1998 committed Aug 5, 2018
1 parent 4d50c55 commit b71c70c
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 24 deletions.
6 changes: 6 additions & 0 deletions app/components/modals/add-system-role-modal.js
Expand Up @@ -10,6 +10,12 @@ export default ModalBase.extend(FormMixin, {
this.onValid(() => {
this.sendAction('addSystemRole');
});
},
close() {
if (!this.get('role').get('id')) {
this.get('role').unloadRecord();
}
this.set('isOpen', false);
}
},
getValidationRules() {
Expand Down
25 changes: 25 additions & 0 deletions app/controllers/admin/permissions/event-roles.js
@@ -0,0 +1,25 @@
import Controller from '@ember/controller';
import { computed } from '@ember/object';

export default Controller.extend({
services: computed('model', function() {
return this.get('model.services').sortBy('name');
}),
sortDefinition : ['serviceName'],
permissions : computed.sort('model.permissions', 'sortDefinition'),
actions : {
updatePermissions() {
this.set('isLoading', true);
this.get('model.permissions').save()
.then(() => {
this.notify.success(this.get('l10n').t('Admin Event role permissions have been saved successfully.'));
})
.catch(() => {
this.notify.error(this.get('l10n').t('An unexpected error has occurred. User permissions not saved.'));
})
.finally(() => {
this.set('isLoading', false);
});
}
}
});
15 changes: 15 additions & 0 deletions app/models/event-role-permission.js
@@ -0,0 +1,15 @@
import attr from 'ember-data/attr';
import ModelBase from 'open-event-frontend/models/base';
import { belongsTo } from 'ember-data/relationships';
import { computed } from '@ember/object';

export default ModelBase.extend({
canDelete : attr('boolean'),
canUpdate : attr('boolean'),
canCreate : attr('boolean'),
canRead : attr('boolean'),

role : belongsTo('role'),
service : belongsTo('service'),
serviceName : computed.alias('service.name')
});
6 changes: 6 additions & 0 deletions app/models/service.js
@@ -0,0 +1,6 @@
import attr from 'ember-data/attr';
import ModelBase from 'open-event-frontend/models/base';

export default ModelBase.extend({
name: attr('string')
});
10 changes: 7 additions & 3 deletions app/routes/admin/permissions/event-roles.js
@@ -1,10 +1,14 @@
import Route from '@ember/routing/route';

export default Route.extend({
model() {
return { roles: ['Attendee', 'Co-Organizer', 'Moderator', 'Organizer', 'Track Organizer'] };
},
titleToken() {
return this.get('l10n').t('Event Roles');
},
async model() {
return {
roles : ['Attendee', 'Co-organizer', 'Moderator', 'Organizer', 'Track Organizer', 'Registrar'],
services : await this.get('store').query('service', {}),
permissions : await this.get('store').query('event-role-permission', { 'page[size]': 30 })
};
}
});
34 changes: 17 additions & 17 deletions app/templates/admin/permissions/event-roles.hbs
Expand Up @@ -9,32 +9,32 @@
<thead>
<tr>
<th>{{t 'Event Role/Service'}}</th>
<th>{{t 'Track'}}</th>
<th>{{t 'Session'}}</th>
<th>{{t 'Speaker'}}</th>
<th>{{t 'Sponsor'}}</th>
<th>{{t 'Microlocation'}}</th>
{{#each services as |service|}}
<th>{{t service.name}}</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each model.roles as |role|}}
<tr>
<td>{{role}}</td>
{{#n-times times=5}}
<td>
{{ui-checkbox label=(t 'Create')}}
<br>
{{ui-checkbox label=(t 'Read')}}
<br>
{{ui-checkbox label=(t 'Update')}}
<br>
{{ui-checkbox label=(t 'Delete')}}
</td>
{{/n-times}}
{{#each permissions as |permission|}}
{{#if (eq permission.role.titleName role)}}
<td>
{{ui-checkbox label=(t 'Create') checked=permission.canCreate onChange=(action (mut permission.canCreate))}}
<br>
{{ui-checkbox label=(t 'Read') checked=permission.canRead onChange=(action (mut permission.canRead))}}
<br>
{{ui-checkbox label=(t 'Update') checked=permission.canUpdate onChange=(action (mut permission.canUpdate))}}
<br>
{{ui-checkbox label=(t 'Delete') checked=permission.canDelete onChange=(action (mut permission.canDelete))}}
</td>
{{/if}}
{{/each}}
</tr>
{{/each}}
</tbody>
</table>
<div>
<button class="ui teal button">{{t 'Save'}}</button>
<button type="submit" class="ui teal button" {{action 'updatePermissions'}}>{{t 'Save'}}</button>
</div>
2 changes: 1 addition & 1 deletion app/templates/admin/permissions/system-roles.hbs
Expand Up @@ -106,4 +106,4 @@
</div>
</form>
</div>
{{modals/add-system-role-modal isOpen=isAddSystemRoleModalOpen roles=roles isLoading=isLoading name=role.name titleName=role.titleName addSystemRole=(action 'addSystemRole')}}
{{modals/add-system-role-modal isOpen=isAddSystemRoleModalOpen role=role model=model isLoading=isLoading addSystemRole=(action 'addSystemRole')}}
6 changes: 3 additions & 3 deletions app/templates/components/modals/add-system-role-modal.hbs
Expand Up @@ -7,14 +7,14 @@
<label class="required">
{{t 'Name'}}
</label>
{{input type='text' name='role_name' value=titleName placeholder=(t 'Enter Role name')}}
{{input type='text' name='role_name' value=role.titleName placeholder=(t 'Enter Role name')}}
</div>
<div class="field">
<label class="required">
{{t 'Panels'}}
</label>
{{#ui-dropdown class='fluid multiple selection'}}
{{input type='hidden' name='selected_panels' value=name}}
{{#ui-dropdown class='fluid multiple selection' selected=role.name}}
{{input type='hidden' name='selected_panels' value=role.name}}
<i class="dropdown icon"></i>
<div class="default text">
{{t 'Please select Panel(s)'}}
Expand Down

0 comments on commit b71c70c

Please sign in to comment.