Project

General

Profile

1
<aside id="sidebar_main">
2
  <div *ngIf="stakeholder" class="sidebar_main_header uk-margin-remove-bottom">
3
    <div class="uk-padding-small">
4
      <img class="uk-margin-bottom" *ngIf="stakeholder.logoUrl" [src]="stakeholder.logoUrl">
5
      <h4 class="uk-text-bold uk-margin-remove">{{stakeholder.index_name}}</h4>
6
      <span class="uk-text-large">Admin Dashboard</span>
7
    </div>
8
  </div>
9
  <div *ngIf="stakeholder" class="menu_section">
10
    <ul>
11
      <li class="uk-margin-bottom md-bg-blue-900 uk-padding-small">
12
        <a [routerLink]="'../'" class="md-color-white uk-flex uk-flex-middle">
13
          <span class="menu_icon"><i class="material-icons md-color-white">arrow_back</i></span>
14
          <div class="menu_title uk-inline">
15
            {{stakeholder.topics[topicIndex].name.toUpperCase()}}
16
            <button class="uk-position-center-right-out uk-margin-right uk-button uk-button-link onHover"
17
                    (click)="$event.stopPropagation();editTopicOpen(editTopic);$event.preventDefault()">
18
              <i class="material-icons md-color-white">more_horiz</i>
19
            </button>
20
          </div>
21
        </a>
22
        <div uk-drop="mode: none; offset: -2; delay-hide: 0;" #editTopic
23
             class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
24
          <div *ngIf="topicFb">
25
            <div class="md-card">
26
              <div class="md-card-content uk-position-relative">
27
                <a class="uk-position-top-right">
28
                  <i (click)="hide(editTopic)" class="material-icons">close</i>
29
                </a>
30
                <div class="uk-grid-small" uk-grid [formGroup]="topicFb">
31
                  <div class="uk-width-1-1">
32
                    <label class="uk-text-bold">Topic Settings</label>
33
                    <input class="uk-input uk-form-small" formControlName="name"
34
                           [class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid"
35
                           type="text">
36
                  </div>
37
                  <div class="uk-width-1-1">
38
                    <label>Description</label>
39
                    <textarea class="uk-textarea" formControlName="description"
40
                              rows="3" type="text"></textarea>
41
                  </div>
42
                  <div dashboard-input [type]="'select'"
43
                       [formInput]="topicFb.get('isPublic')" [options]="indicatorUtils.isPublic"
44
                       label="Privacy" class="uk-width-1-2">
45
                  </div>
46
                  <div dashboard-input [type]="'select'"
47
                       [formInput]="topicFb.get('isActive')" [options]="indicatorUtils.isActive"
48
                       label="Status" class="uk-width-1-2">
49
                  </div>
50
                </div>
51
                <hr>
52
                <div class="uk-grid-small uk-child-width-1-2" uk-grid>
53
                  <div>
54
                    <button class="md-btn md-btn-small"
55
                            (click)="deleteTopicOpen(topicFb.value.name, editTopic)">Delete</button>
56
                  </div>
57
                  <div>
58
                    <button class="md-btn md-btn-small md-btn-primary uk-float-right"
59
                            [class.md-btn-primary]="topicFb.valid && topicFb.dirty"
60
                            [class.disabled]="topicFb.invalid || !topicFb.dirty"
61
                            (click)="saveTopic(editTopic)">Save
62
                    </button>
63
                  </div>
64
                </div>
65
              </div>
66
            </div>
67
          </div>
68
        </div>
69
      </li>
70
      <ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories" let-category let-i="index">
71
        <li [class.current_section]="categoryIndex === i"
72
            [class.act_section]="selectedCategoryIndex === i && toggle"
73
            [title]="category.name"
74
            class="submenu_trigger">
75
          <a href="#" (click)="toggleCategory(i);hide(editCategory);$event.preventDefault()">
76
            <span *ngIf="category.icon" class="menu_icon"><i
77
              class="material-icons">{{category.icon}}</i></span>
78
            <div class="menu_title uk-inline">
79
              {{category.name}}
80
              <button class="uk-position-center-right-out uk-margin-right uk-button uk-button-link onHover"
81
                      (click)="$event.stopPropagation();editCategoryOpen(editCategory, i);$event.preventDefault()">
82
                <i class="material-icons">more_horiz</i>
83
              </button>
84
            </div>
85
          </a>
86
          <div uk-drop="mode: none; offset: -2; delay-hide: 0;" #editCategory
87
               class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
88
            <div *ngIf="categoryFb">
89
              <div class="md-card">
90
                <div class="md-card-content uk-position-relative">
91
                  <a class="uk-position-top-right">
92
                    <i (click)="hide(editCategory)" class="material-icons">close</i>
93
                  </a>
94
                  <div class="uk-grid-small" uk-grid [formGroup]="categoryFb">
95
                    <div class="uk-width-1-1">
96
                      <label class="uk-text-bold">Category Settings</label>
97
                      <input class="uk-input uk-form-small" formControlName="name"
98
                             [class.uk-form-danger]="categoryFb.get('name').dirty && categoryFb.get('name').invalid"
99
                             type="text">
100
                    </div>
101
                    <div dashboard-input [type]="'select'"
102
                         [formInput]="categoryFb.get('isPublic')" [options]="indicatorUtils.isPublic"
103
                         label="Privacy" class="uk-width-1-2">
104
                    </div>
105
                    <div dashboard-input [type]="'select'"
106
                         [formInput]="categoryFb.get('isActive')" [options]="indicatorUtils.isActive"
107
                         label="Status" class="uk-width-1-2">
108
                    </div>
109
                  </div>
110
                  <hr>
111
                  <div class="uk-grid-small uk-child-width-1-2" uk-grid>
112
                    <div>
113
                      <button class="md-btn md-btn-small"
114
                              (click)="deleteCategoryOpen(categoryFb.value.name, editCategory, i)">Delete
115
                      </button>
116
                    </div>
117
                    <div>
118
                      <button class="md-btn md-btn-small md-btn-primary uk-float-right"
119
                              [class.md-btn-primary]="categoryFb.valid && categoryFb.dirty"
120
                              [class.disabled]="categoryFb.invalid || !categoryFb.dirty"
121
                              (click)="saveCategory(editCategory, i)">Save
122
                      </button>
123
                    </div>
124
                  </div>
125
                </div>
126
              </div>
127
            </div>
128
          </div>
129
          <ul [style.display]="((selectedCategoryIndex === i && toggle)?'block':'none')">
130
            <ng-template ngFor [ngForOf]="stakeholder.topics[topicIndex].categories[i].subCategories"
131
                         let-subcategory let-j="index">
132
              <li [class.act_item]="categoryIndex === i && subCategoryIndex === j">
133
                <a href="#" (click)="chooseSubcategory(i, j);$event.preventDefault()">
134
                <span *ngIf="subcategory.icon" class="menu_icon uk-margin-small-right"><i
135
                  class="material-icons">{{subcategory.icon}}</i></span>
136
                  <div class="menu_title uk-inline">
137
                    {{subcategory.name}}
138
                    <button class="uk-position-center-right-out uk-margin-right uk-button uk-button-link onHover"
139
                            (click)="$event.stopPropagation();editSubCategoryOpen(editSubCategory, j);$event.preventDefault()">
140
                      <i class="material-icons">more_horiz</i>
141
                    </button>
142
                  </div>
143
                </a>
144
                <div uk-drop="mode: none; offset: -2; delay-hide: 0" #editSubCategory
145
                     class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
146
                  <div *ngIf="subcategoryFb">
147
                    <div class="md-card">
148
                      <div class="md-card-content uk-position-relative">
149
                        <a class="uk-position-top-right">
150
                          <i (click)="hide(editSubCategory)" class="material-icons">close</i>
151
                        </a>
152
                        <div class="uk-grid-small" uk-grid [formGroup]="subcategoryFb">
153
                          <div class="uk-width-1-1">
154
                            <label class="uk-text-bold">Subcategory Settings</label>
155
                            <input class="uk-input uk-form-small" formControlName="name"
156
                                   [class.uk-form-danger]="subcategoryFb.get('name').dirty && subcategoryFb.get('name').invalid"
157
                                   type="text">
158
                          </div>
159
                          <div dashboard-input [type]="'select'"
160
                               [formInput]="subcategoryFb.get('isPublic')" [options]="indicatorUtils.isPublic"
161
                               label="Privacy" class="uk-width-1-2">
162
                          </div>
163
                          <div dashboard-input [type]="'select'"
164
                               [formInput]="subcategoryFb.get('isActive')" [options]="indicatorUtils.isActive"
165
                               label="Status" class="uk-width-1-2">
166
                          </div>
167
                        </div>
168
                        <hr>
169
                        <div class="uk-grid-small uk-child-width-1-2" uk-grid>
170
                          <div>
171
                            <button class="md-btn md-btn-small"
172
                                    (click)="deleteSubcategoryOpen(subcategoryFb.value.name, editSubCategory, j)">Delete
173
                            </button>
174
                          </div>
175
                          <div>
176
                            <button class="md-btn md-btn-small md-btn-primary uk-float-right"
177
                                    [class.md-btn-primary]="subcategoryFb.valid && subcategoryFb.dirty"
178
                                    [class.disabled]="subcategoryFb.invalid || !subcategoryFb.dirty"
179
                                    (click)="saveSubCategory(editSubCategory, j)">Save
180
                            </button>
181
                          </div>
182
                        </div>
183
                      </div>
184
                    </div>
185
                  </div>
186
                </div>
187
              </li>
188
            </ng-template>
189
            <li>
190
              <a href="#" (click)="editSubCategoryOpen(newSubCategory);$event.preventDefault()">
191
                <span class="menu_icon"><i class="material-icons">add</i></span>
192
                <span class="menu_title">Create new Subcategory</span>
193
              </a>
194
              <div uk-drop="mode: none; offset: -2; delay-hide: 0" #newSubCategory
195
                   class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
196
                <div *ngIf="subcategoryFb">
197
                  <div class="md-card">
198
                    <div class="md-card-content uk-position-relative">
199
                      <a class="uk-position-top-right">
200
                        <i (click)="hide(newSubCategory)" class="material-icons">close</i>
201
                      </a>
202
                      <div class="uk-grid-small" uk-grid [formGroup]="subcategoryFb">
203
                        <div class="uk-width-1-1">
204
                          <label class="uk-text-bold">New Subcategory</label>
205
                          <input class="uk-input uk-form-small" formControlName="name"
206
                                 [class.uk-form-danger]="subcategoryFb.get('name').dirty && subcategoryFb.get('name').invalid"
207
                                 type="text">
208
                        </div>
209
                        <div dashboard-input [type]="'select'"
210
                             [formInput]="subcategoryFb.get('isPublic')" [options]="indicatorUtils.isPublic"
211
                             label="Privacy" class="uk-width-1-2">
212
                        </div>
213
                        <div dashboard-input [type]="'select'"
214
                             [formInput]="subcategoryFb.get('isActive')" [options]="indicatorUtils.isActive"
215
                             label="Status" class="uk-width-1-2">
216
                        </div>
217
                      </div>
218
                      <hr>
219
                      <div class="uk-grid-small uk-child-width-1-2" uk-grid>
220
                        <div>
221
                          <button class="md-btn md-btn-small" (click)="hide(newSubCategory)">Cancel</button>
222
                        </div>
223
                        <div>
224
                          <button class="md-btn md-btn-small md-btn-primary uk-float-right"
225
                                  [class.md-btn-primary]="subcategoryFb.valid && subcategoryFb.dirty"
226
                                  [class.disabled]="subcategoryFb.invalid || !subcategoryFb.dirty"
227
                                  (click)="saveSubCategory(newSubCategory)">Create
228
                          </button>
229
                        </div>
230
                      </div>
231
                    </div>
232
                  </div>
233
                </div>
234
              </div>
235
            </li>
236
          </ul>
237
        </li>
238
      </ng-template>
239
      <li>
240
        <a href="#" (click)="editCategoryOpen(newCategory);$event.preventDefault()">
241
          <span class="menu_icon"><i class="material-icons">add</i></span>
242
          <span class="menu_title">Create new Category</span>
243
        </a>
244
        <div uk-drop="mode: none; offset: -2; delay-hide: 0" #newCategory
245
             class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
246
          <div *ngIf="categoryFb">
247
            <div class="md-card">
248
              <div class="md-card-content uk-position-relative">
249
                <a class="uk-position-top-right">
250
                  <i (click)="hide(newCategory)" class="material-icons">close</i>
251
                </a>
252
                <div class="uk-grid-small" uk-grid [formGroup]="categoryFb">
253
                  <div class="uk-width-1-1">
254
                    <label class="uk-text-bold">New Category</label>
255
                    <input class="uk-input uk-form-small" formControlName="name"
256
                           [class.uk-form-danger]="categoryFb.get('name').dirty && categoryFb.get('name').invalid"
257
                           type="text">
258
                  </div>
259
                  <div dashboard-input [type]="'select'"
260
                       [formInput]="categoryFb.get('isPublic')" [options]="indicatorUtils.isPublic"
261
                       label="Privacy" class="uk-width-1-2">
262
                  </div>
263
                  <div dashboard-input [type]="'select'"
264
                       [formInput]="categoryFb.get('isActive')" [options]="indicatorUtils.isActive"
265
                       label="Status" class="uk-width-1-2">
266
                  </div>
267
                </div>
268
                <hr>
269
                <div class="uk-grid-small uk-child-width-1-2" uk-grid>
270
                  <div>
271
                    <button class="md-btn md-btn-small" (click)="hide(newCategory)">Cancel</button>
272
                  </div>
273
                  <div>
274
                    <button class="md-btn md-btn-small md-btn-primary uk-float-right"
275
                            [class.md-btn-primary]="categoryFb.valid && categoryFb.dirty"
276
                            [class.disabled]="categoryFb.invalid || !categoryFb.dirty"
277
                            (click)="saveCategory(newCategory)">Create
278
                    </button>
279
                  </div>
280
                </div>
281
              </div>
282
            </div>
283
          </div>
284
        </div>
285
      </li>
286
    </ul>
287
  </div>
288
</aside>
289
<indicators [properties]="properties"
290
            [stakeholder]="stakeholder"
291
            [topicIndex]="topicIndex"
292
            [categoryIndex]="categoryIndex"
293
            [subcategoryIndex]="subCategoryIndex"></indicators>
294
<modal-alert #deleteTopicModal (alertOutput)="deleteTopic()"></modal-alert>
295
<modal-alert #deleteCategoryModal (alertOutput)="deleteCategory()"></modal-alert>
296
<modal-alert #deleteSubcategoryModal (alertOutput)="deleteSubcategory()"></modal-alert>
297

    
(4-4/6)