| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | 
							- <template lang='pug'>
 
-   v-container(fluid, grid-list-lg)
 
-     v-layout(row wrap)
 
-       v-flex(xs12)
 
-         .admin-header
 
-           img(src='/svg/icon-social-group.svg', alt='Edit Group', style='width: 80px;')
 
-           .admin-header-title
 
-             .headline.blue--text.text--darken-2 Edit Group
 
-             .subheading.grey--text {{group.name}}
 
-           v-spacer
 
-           .caption.grey--text ID #[strong {{group.id}}]
 
-           v-divider.mx-3(vertical)
 
-           v-btn(color='grey', large, outline, to='/groups')
 
-             v-icon arrow_back
 
-           v-dialog(v-model='deleteGroupDialog', max-width='500', v-if='!group.isSystem')
 
-             v-btn(color='red', large, outline, slot='activator')
 
-               v-icon(color='red') delete
 
-             v-card
 
-               .dialog-header.is-red Delete Group?
 
-               v-card-text Are you sure you want to delete group #[strong {{ group.name }}]? All users will be unassigned from this group.
 
-               v-card-actions
 
-                 v-spacer
 
-                 v-btn(flat, @click='deleteGroupDialog = false') Cancel
 
-                 v-btn(color='red', dark, @click='deleteGroup') Delete
 
-           v-btn(color='success', large, depressed, @click='updateGroup')
 
-             v-icon(left) check
 
-             span Update Group
 
-         v-card.mt-3
 
-           v-tabs(v-model='tab', :color='$vuetify.dark ? "primary" : "grey darken-2"', fixed-tabs, slider-color='white', show-arrows, dark)
 
-             v-tab(key='permissions') Permissions
 
-             v-tab(key='rules') Page Rules
 
-             v-tab(key='users') Users
 
-             v-tab-item(key='permissions', :transition='false', :reverse-transition='false')
 
-               group-permissions(v-model='group', @refresh='refresh')
 
-             v-tab-item(key='rules', :transition='false', :reverse-transition='false')
 
-               group-rules(v-model='group', @refresh='refresh')
 
-             v-tab-item(key='users', :transition='false', :reverse-transition='false')
 
-               group-users(v-model='group', @refresh='refresh')
 
- </template>
 
- <script>
 
- import _ from 'lodash'
 
- import GroupPermissions from './admin-groups-edit-permissions.vue'
 
- import GroupRules from './admin-groups-edit-rules.vue'
 
- import GroupUsers from './admin-groups-edit-users.vue'
 
- import groupQuery from 'gql/admin/groups/groups-query-single.gql'
 
- import deleteGroupMutation from 'gql/admin/groups/groups-mutation-delete.gql'
 
- import updateGroupMutation from 'gql/admin/groups/groups-mutation-update.gql'
 
- export default {
 
-   components: {
 
-     GroupPermissions,
 
-     GroupRules,
 
-     GroupUsers
 
-   },
 
-   data() {
 
-     return {
 
-       group: {
 
-         id: 0,
 
-         name: '',
 
-         isSystem: false,
 
-         permissions: [],
 
-         pageRules: [],
 
-         users: []
 
-       },
 
-       deleteGroupDialog: false,
 
-       tab: '1'
 
-     }
 
-   },
 
-   methods: {
 
-     async updateGroup() {
 
-       try {
 
-         await this.$apollo.mutate({
 
-           mutation: updateGroupMutation,
 
-           variables: {
 
-             id: this.group.id,
 
-             name: this.group.name,
 
-             permissions: this.group.permissions,
 
-             pageRules: this.group.pageRules
 
-           },
 
-           watchLoading (isLoading) {
 
-             this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-groups-update')
 
-           }
 
-         })
 
-         this.$store.commit('showNotification', {
 
-           style: 'success',
 
-           message: `Group changes have been saved.`,
 
-           icon: 'check'
 
-         })
 
-       } catch (err) {
 
-         this.$store.commit('pushGraphError', err)
 
-       }
 
-     },
 
-     async deleteGroup() {
 
-       this.deleteGroupDialog = false
 
-       try {
 
-         await this.$apollo.mutate({
 
-           mutation: deleteGroupMutation,
 
-           variables: {
 
-             id: this.group.id
 
-           },
 
-           watchLoading (isLoading) {
 
-             this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-groups-delete')
 
-           }
 
-         })
 
-         this.$store.commit('showNotification', {
 
-           style: 'success',
 
-           message: `Group ${this.group.name} has been deleted.`,
 
-           icon: 'delete'
 
-         })
 
-         this.$router.replace('/groups')
 
-       } catch (err) {
 
-         this.$store.commit('pushGraphError', err)
 
-       }
 
-     },
 
-     async refresh() {
 
-       return this.$apollo.queries.group.refetch()
 
-     }
 
-   },
 
-   apollo: {
 
-     group: {
 
-       query: groupQuery,
 
-       variables() {
 
-         return {
 
-           id: _.toSafeInteger(this.$route.params.id)
 
-         }
 
-       },
 
-       fetchPolicy: 'network-only',
 
-       update: (data) => _.cloneDeep(data.groups.single),
 
-       watchLoading (isLoading) {
 
-         this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-groups-refresh')
 
-       }
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style lang='scss'>
 
- </style>
 
 
  |