Blame view

src/pages/Administrator/role.vue 9.21 KB
68d742034   Neeraj Sharma   implement new des...
1
2
3
  <template>
    <v-container fluid class="body-color">
      <!-- ****** EDITS  Role Distribution  ****** -->
db965de89   Amber Dev   added dialog pers...
4
      <v-dialog v-model="editRoleDialog" max-width="400px" persistent>
68d742034   Neeraj Sharma   implement new des...
5
6
7
8
9
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">Edit Role</label>
              <v-icon size="24" class="right" @click="editRoleDialog = false">cancel</v-icon>
006544386   Neeraj Sharma   implement task
10
            </v-flex>
68d742034   Neeraj Sharma   implement new des...
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
          </v-layout>
          <v-form ref="form">
            <v-container fluid>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs3 class="pt-4 subheading">
                    <label class="right">Role:</label>
                  </v-flex>
                  <v-flex xs8 sm7 class="ml-3">
                    <v-text-field v-model="editedItem.name" placeholder="fill your Role"></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout>
                <v-flex xs12>
                  <v-layout>
                    <v-spacer></v-spacer>
                    <v-btn round dark @click="save" class="add-button">Save</v-btn>
                    <v-spacer></v-spacer>
                  </v-layout>
                </v-flex>
              </v-layout>
            </v-container>
          </v-form>
        </v-card>
      </v-dialog>
      <!-- ****** ROLE TABLE ****** -->
006544386   Neeraj Sharma   implement task
38

68d742034   Neeraj Sharma   implement new des...
39
      <v-toolbar color="transparent" flat>
5d5603622   Amber Dev   hid add and actio...
40
        <!-- <v-btn
68d742034   Neeraj Sharma   implement new des...
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
          fab
          dark
          class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only"
          small
          @click="addRoleDialog = true"
        >
          <v-icon dark>add</v-icon>
        </v-btn>
        <v-btn
          round
          class="open-dialog-button hidden-sm-only hidden-xs-only"
          dark
          @click="addRoleDialog = true"
        >
          <v-icon class="white--text pr-1" size="20">add</v-icon>Add Role
860da881d   Shikha Mishra   comment all consoles
56
        </v-btn>-->
68d742034   Neeraj Sharma   implement new des...
57
58
59
60
        <v-spacer></v-spacer>
        <v-card-title class="body-1" v-show="show">
          <v-btn icon large flat @click="displaySearch">
            <v-avatar size="27">
aa310d61a   Shikha Mishra   added functionali...
61
              <img src="/static/icon/search.png" alt="icon" />
68d742034   Neeraj Sharma   implement new des...
62
63
64
            </v-avatar>
          </v-btn>
        </v-card-title>
612b79bb4   Amber Dev   made serch auto f...
65
        <v-flex xs8 sm8 md3 lg2 v-if="showSearch">
68d742034   Neeraj Sharma   implement new des...
66
          <v-layout>
860da881d   Shikha Mishra   comment all consoles
67
68
69
70
71
72
73
            <v-text-field
              autofocus
              v-model="search"
              label="Search"
              prepend-inner-icon="search"
              color="primary"
            ></v-text-field>
68d742034   Neeraj Sharma   implement new des...
74
75
76
77
78
79
80
81
82
83
84
85
86
87
            <v-icon @click="closeSearch" color="error">close</v-icon>
          </v-layout>
        </v-flex>
      </v-toolbar>
      <v-data-table
        :headers="headers"
        :items="getRoles"
        :pagination.sync="pagination"
        :search="search"
      >
        <template slot="items" slot-scope="props">
          <tr class="tr">
            <td class="td td-row">{{ props.index + 1}}</td>
            <td class="td td-row text-xs-center">{{ props.item.name}}</td>
5d5603622   Amber Dev   hid add and actio...
88
            <!-- <td class="td td-row text-xs-center">
68d742034   Neeraj Sharma   implement new des...
89
90
91
92
93
94
95
              <span>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:18px; "
                    class="mr-3"
                    @click="editItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
96
                    src="/static/icon/edit.png"
68d742034   Neeraj Sharma   implement new des...
97
98
99
100
101
102
103
104
                  />
                  <span>Edit</span>
                </v-tooltip>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:20px; "
                    @click="deleteItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
105
                    src="/static/icon/delete.png"
68d742034   Neeraj Sharma   implement new des...
106
107
108
109
                  />
                  <span>Delete</span>
                </v-tooltip>
              </span>
860da881d   Shikha Mishra   comment all consoles
110
            </td>-->
68d742034   Neeraj Sharma   implement new des...
111
112
113
114
115
116
117
118
119
          </tr>
        </template>
        <v-alert
          slot="no-results"
          :value="true"
          color="error"
          icon="warning"
        >Your search for "{{ search }}" found no results.</v-alert>
      </v-data-table>
006544386   Neeraj Sharma   implement task
120

68d742034   Neeraj Sharma   implement new des...
121
      <!-- ****** ADD ROLE ****** -->
006544386   Neeraj Sharma   implement task
122

db965de89   Amber Dev   added dialog pers...
123
      <v-dialog v-model="addRoleDialog" max-width="400px" persistent>
68d742034   Neeraj Sharma   implement new des...
124
125
126
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
8c3acf4a9   Shikha Mishra   improve details
127
              <label class="title text-xs-center">Add Role</label>
68d742034   Neeraj Sharma   implement new des...
128
              <v-icon size="24" class="right" @click="addRoleDialog = false">cancel</v-icon>
006544386   Neeraj Sharma   implement task
129
            </v-flex>
68d742034   Neeraj Sharma   implement new des...
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
          </v-layout>
          <v-form ref="form" v-model="valid" lazy-validation>
            <v-container fluid>
              <v-flex xs12>
                <v-layout>
                  <v-flex xs3 class="pt-4 subheading">
                    <label class="right">Role:</label>
                  </v-flex>
                  <v-flex xs8 sm7 class="ml-3">
                    <v-text-field
                      v-model="addrole.name"
                      placeholder="fill your  Role"
                      :rules="roleRules"
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout>
                <v-flex xs12 sm12>
                  <v-layout>
                    <v-spacer></v-spacer>
                    <v-btn @click="clear" round class="add-button" dark>clear</v-btn>
                    <v-btn @click="submit" round dark :loading="loading" class="add-button">Add</v-btn>
                    <v-spacer></v-spacer>
                  </v-layout>
                </v-flex>
              </v-layout>
            </v-container>
          </v-form>
        </v-card>
      </v-dialog>
006544386   Neeraj Sharma   implement task
161
162
163
      <div class="loader" v-if="showLoader">
        <v-progress-circular indeterminate color="white"></v-progress-circular>
      </div>
68d742034   Neeraj Sharma   implement new des...
164
    </v-container>
006544386   Neeraj Sharma   implement task
165
166
167
168
  </template>
  
  <script>
  import http from "@/Services/http.js";
006544386   Neeraj Sharma   implement task
169
170
171
172
173
174
175
  
  export default {
    data: () => ({
      snackbar: false,
      y: "top",
      x: "right",
      mode: "",
68d742034   Neeraj Sharma   implement new des...
176
      timeout: 5000,
006544386   Neeraj Sharma   implement task
177
178
179
      text: "",
      loading: false,
      search: "",
68d742034   Neeraj Sharma   implement new des...
180
181
      show: true,
      showSearch: false,
006544386   Neeraj Sharma   implement task
182
      showLoader: false,
68d742034   Neeraj Sharma   implement new des...
183
      editRoleDialog: false,
006544386   Neeraj Sharma   implement task
184
      valid: true,
68d742034   Neeraj Sharma   implement new des...
185
      addRoleDialog: false,
006544386   Neeraj Sharma   implement task
186
      pagination: {
860da881d   Shikha Mishra   comment all consoles
187
        rowsPerPage: 10,
006544386   Neeraj Sharma   implement task
188
      },
860da881d   Shikha Mishra   comment all consoles
189
      roleRules: [(v) => !!v || "Role is required"],
006544386   Neeraj Sharma   implement task
190
191
192
      headers: [
        {
          text: "No",
68d742034   Neeraj Sharma   implement new des...
193
          align: "",
006544386   Neeraj Sharma   implement task
194
          sortable: false,
860da881d   Shikha Mishra   comment all consoles
195
          value: "No",
006544386   Neeraj Sharma   implement task
196
197
        },
        { text: "Role", value: "role", sortable: false, align: "center" },
5d5603622   Amber Dev   hid add and actio...
198
        // { text: "Action", value: "", sortable: false, align: "center" }
006544386   Neeraj Sharma   implement task
199
      ],
79583580d   Neeraj Sharma   implement task ma...
200
      getRoles: [],
006544386   Neeraj Sharma   implement task
201
202
203
      editedIndex: -1,
      token: "",
      addrole: {},
860da881d   Shikha Mishra   comment all consoles
204
      editedItem: {},
006544386   Neeraj Sharma   implement task
205
206
207
208
209
210
    }),
    methods: {
      getRole() {
        this.showLoader = true;
        http()
          .get("/getRolesList", {
860da881d   Shikha Mishra   comment all consoles
211
            headers: { Authorization: "Bearer " + this.token },
006544386   Neeraj Sharma   implement task
212
          })
860da881d   Shikha Mishra   comment all consoles
213
          .then((response) => {
79583580d   Neeraj Sharma   implement task ma...
214
            this.getRoles = response.data.data;
006544386   Neeraj Sharma   implement task
215
216
            this.showLoader = false;
          })
860da881d   Shikha Mishra   comment all consoles
217
          .catch((error) => {
006544386   Neeraj Sharma   implement task
218
219
220
221
222
            this.showLoader = false;
            if (error.response.status === 401) {
              this.$router.replace({ path: "/" });
              this.$store.dispatch("setToken", null);
              this.$store.dispatch("Id", null);
00e4bc4e1   Neeraj Sharma   fixed auntentication
223
              this.$store.dispatch("Role", null);
006544386   Neeraj Sharma   implement task
224
225
226
227
            }
          });
      },
      editItem(item) {
79583580d   Neeraj Sharma   implement task ma...
228
        this.editedIndex = this.getRoles.indexOf(item);
006544386   Neeraj Sharma   implement task
229
        this.editedItem = Object.assign({}, item);
68d742034   Neeraj Sharma   implement new des...
230
        this.editRoleDialog = true;
006544386   Neeraj Sharma   implement task
231
232
233
      },
      deleteItem(item) {
        let deleteRoleId = {
860da881d   Shikha Mishra   comment all consoles
234
          roleId: item._id,
006544386   Neeraj Sharma   implement task
235
236
237
238
239
        };
        http()
          .delete(
            "/deleteRole",
            confirm("Are you sure you want to delete this?") && {
860da881d   Shikha Mishra   comment all consoles
240
              params: deleteRoleId,
006544386   Neeraj Sharma   implement task
241
242
243
            },
            {
              headers: {
860da881d   Shikha Mishra   comment all consoles
244
245
                Authorization: "Bearer " + this.token,
              },
006544386   Neeraj Sharma   implement task
246
247
            }
          )
860da881d   Shikha Mishra   comment all consoles
248
          .then((response) => {
006544386   Neeraj Sharma   implement task
249
250
251
            this.text = response.data.message;
            this.getRole();
          })
860da881d   Shikha Mishra   comment all consoles
252
253
254
255
256
          .catch((error) => {
            //   console.log(error);
            this.snackbar = true;
            this.color = "error";
            this.text = error.response.data.message;
006544386   Neeraj Sharma   implement task
257
258
          });
      },
006544386   Neeraj Sharma   implement task
259
      close() {
68d742034   Neeraj Sharma   implement new des...
260
        this.editRoleDialog = false;
006544386   Neeraj Sharma   implement task
261
      },
006544386   Neeraj Sharma   implement task
262
263
264
265
266
      submit() {
        if (this.$refs.form.validate()) {
          this.loading = true;
          http()
            .post("/createRole", this.addrole)
860da881d   Shikha Mishra   comment all consoles
267
            .then((response) => {
006544386   Neeraj Sharma   implement task
268
              this.snackbar = true;
67a276510   Shikha Mishra   fixed all bugs
269
              this.addRoleDialog = false;
006544386   Neeraj Sharma   implement task
270
              this.text = response.data.message;
79583580d   Neeraj Sharma   implement task ma...
271
              this.getRole();
006544386   Neeraj Sharma   implement task
272
273
274
              this.clear();
              this.loading = false;
            })
860da881d   Shikha Mishra   comment all consoles
275
            .catch((error) => {
006544386   Neeraj Sharma   implement task
276
277
278
279
280
281
282
283
284
285
286
287
288
289
              this.snackbar = true;
              this.text = error.response.data.message;
              this.loading = false;
            });
        }
      },
      clear() {
        this.$refs.form.reset();
      },
      save() {
        (this.editedItem.roleId = this.editedItem._id),
          http()
            .put("/updateRole", this.editedItem, {
              headers: {
860da881d   Shikha Mishra   comment all consoles
290
291
                Authorization: "Bearer " + this.token,
              },
006544386   Neeraj Sharma   implement task
292
            })
860da881d   Shikha Mishra   comment all consoles
293
            .then((response) => {
006544386   Neeraj Sharma   implement task
294
295
296
297
              this.text = "Successfully Edit Notification";
              this.getRole();
              this.close();
            })
860da881d   Shikha Mishra   comment all consoles
298
299
300
301
302
            .catch((error) => {
              // console.log(error);
              this.snackbar = true;
              this.color = "error";
              this.text = error.response.data.message;
006544386   Neeraj Sharma   implement task
303
            });
68d742034   Neeraj Sharma   implement new des...
304
305
306
307
308
309
310
311
      },
      displaySearch() {
        (this.show = false), (this.showSearch = true);
      },
      closeSearch() {
        this.showSearch = false;
        this.show = true;
        this.search = "";
860da881d   Shikha Mishra   comment all consoles
312
      },
006544386   Neeraj Sharma   implement task
313
314
315
316
    },
    mounted() {
      this.token = this.$store.state.token;
      this.getRole();
860da881d   Shikha Mishra   comment all consoles
317
    },
006544386   Neeraj Sharma   implement task
318
  };
68d742034   Neeraj Sharma   implement new des...
319
  </script>