Project

General

Profile

1
<div *ngIf="stakeholder && canEdit">
2
  <div *ngIf="numberSections">
3
    <h6 class="uk-text-bold">Number Indicators</h6>
4
    <ng-template ngFor [ngForOf]="displayNumbers" let-number let-i="index">
5
      <div [id]="'number-' + number._id" [class.section]="isAdministrator"
6
           class="uk-grid-match  uk-grid-small uk-grid uk-margin-top"
7
           uk-sortable="group: number" uk-grid>
8
        <div class="tools disable-sortable uk-sortable-nodrag">
9
          <div *ngIf="isAdministrator" class="actions">
10
            <a [class.uk-disabled]="editing" class="" (click)="createSection(i, 'number')"
11
               title="Create a new section">
12
              <icon name="add"></icon>
13
            </a>
14
            <!--<button class="md-btn md-btn-mini"><i class="material-icons rotate-90">drag_indicator</i></button>-->
15
            <a [title]="(number.defaultId?'Default sections cannot be deleted':'Delete section')"
16
               (click)="deleteSectionOpen(number, i, 'number', 'delete')">
17
              <icon name="close"></icon>
18
            </a>
19
            <!--              <ng-container *ngIf="!stakeholder.defaultId">-->
20
            <!--                <button   [disabled]="editing || number.defaultId  " class="md-btn md-btn-mini"-->
21
            <!--                          [title]="(number.defaultId?'Default sections cannot be deleted':'Delete all related sections')"-->
22
            <!--                          (click)="deleteSectionOpen(number, i, 'number', 'delete')"><i class="material-icons">highlight_off</i>-->
23
            <!--                </button>-->
24
            <!--                <button   [disabled]="editing || number.defaultId  " class="md-btn md-btn-mini"-->
25
            <!--                          [title]="(number.defaultId?'Default sections cannot be deleted':'Delete section and disconnect related')"-->
26
            <!--                          (click)="deleteSectionOpen(number, i, 'number', 'disconnect')"><i class="material-icons">link_off</i>-->
27
            <!--                </button>-->
28
            <!--              </ng-container>-->
29
          </div>
30
        </div>
31
        <div *ngIf="numberSections.at(i)"
32
             class="uk-width-1-1 uk-margin-medium-bottom disable-sortable uk-sortable-nodrag">
33
          <div dashboard-input [formInput]="numberSections.at(i).get('title')"
34
               [extraLeft]="false" class="uk-width-1-3"
35
               placeholder="Write a title for this section">
36
            <div [class.uk-invisible]="numberSections.at(i).get('title').pristine">
37
              <button class="uk-button uk-button-secondary" [disabled]="editing"
38
                      (click)="saveSection(numberSections.at(i).value, i, 'number')">
39
                Save
40
              </button>
41
            </div>
42
          </div>
43
        </div>
44
        <ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index">
45
          <div *ngIf="indicator" [id]="indicator._id"
46
               [class.uk-width-1-5@m]="indicator.width === 'small'"
47
               [class.uk-width-1-3@m]=" indicator.width === 'medium'"
48
               [class.uk-width-1-2@m]=" indicator.width === 'large'"
49
               [class.disable-sortable]="!canReorder"
50
               [class.uk-sortable-nodrag]="!canReorder">
51
            <div class="uk-card uk-card-default uk-card-body uk-position-relative" [class.uk-card-hover]="canReorder">
52
              <ng-container
53
                  *ngTemplateOutlet="visibilityOptions; context:{indicator: indicator, sectionId: number._id}"></ng-container>
54
              <div class="uk-position-top-right uk-margin-small-right uk-margin-small-top clickable">
55
                <i uk-icon="more-vertical" (click)="$event.stopPropagation();$event.preventDefault()"></i>
56
                <div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
57
                  <ul class="uk-nav uk-dropdown-nav">
58
                    <li *ngIf="isAdministrator && !indicator.defaultId && !editing"><a
59
                        (click)="editNumberIndicatorOpen(number, indicator._id)">Edit</a></li>
60
                    <ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
61
                      <li *ngIf="indicator.visibility != v.value"><a (click)="changeIndicatorStatus(number._id,
62
                           indicator, v.value); hide(element)">
63
                        {{'Make ' + v.label.toLowerCase()}}</a>
64
                      </li>
65
                    </ng-template>
66
                    <hr *ngIf="isAdministrator && !indicator.defaultId" class="uk-nav-divider">
67
                    <li *ngIf="isAdministrator && !indicator.defaultId && !editing"><a
68
                        (click)="deleteIndicatorOpen(number, indicator._id, 'number', 'delete');hide(element)">Delete</a>
69
                      <!--                            <ng-container *ngIf="!stakeholder.defaultId">-->
70
                      <!--                              <a (click)="deleteIndicatorOpen(number, indicator._id, 'number', 'delete');hide(element)">Delete from all profiles</a>-->
71
                      <!--                              <a (click)="deleteIndicatorOpen(number, indicator._id, 'number', 'disconnect');hide(element)">Delete and disconnect from all profiles</a>-->
72
                      <!--                            </ng-container>-->
73
                    </li>
74
                  </ul>
75
                </div>
76
              </div>
77
              <div>
78
                <div class="uk-text-center uk-text-bold">
79
                  {{indicator.name ? indicator.name : 'No title available'}}
80
                </div>
81
                <h3 *ngIf="numberResults.get(i + '-' + j)" class="uk-margin-medium-top uk-text-center uk-text-bold">
82
                  <span>{{numberResults.get(i + '-' + j) | number}}</span>
83
                </h3>
84
                <div *ngIf="indicator.description" class="uk-width-1-1 uk-text-muted uk-text-small uk-margin-small-top">
85
                  {{indicator.description}}
86
                </div>
87
                <div *ngIf="indicator.additionalDescription"
88
                     class="uk-width-1-1 uk-text-muted uk-text-small uk-margin-small-top">
89
                  {{indicator.additionalDescription}}
90
                </div>
91
              </div>
92
            </div>
93
          </div>
94
        </ng-template>
95
        <div *ngIf="isAdministrator" class="disable-sortable uk-sortable-nodrag uk-width-1-1">
96
          <div class="uk-width-1-3@l uk-width-1-2@m uk-width-1-1 uk-card uk-card-default uk-card-body clickable"
97
               (click)="editNumberIndicatorOpen(number)">
98
            <div>
99
              <h5 class="uk-text-bold">
100
                Create a new number Indicator
101
              </h5>
102
              <div class="uk-flex uk-flex-center uk-text-secondary uk-margin-large">
103
                <icon name="add" ratio="5"></icon>
104
              </div>
105
            </div>
106
          </div>
107
        </div>
108
      </div>
109
    </ng-template>
110
    <div *ngIf="isAdministrator">
111
      <ng-container *ngTemplateOutlet="new_section; context:{type: 'number'}"></ng-container>
112
    </div>
113
  </div>
114
  <div *ngIf="chartSections" class="uk-margin-large-top">
115
    <h6 class="uk-text-bold">Chart Indicators</h6>
116
    <ng-template ngFor [ngForOf]="displayCharts" let-chart let-i="index">
117
      <div [id]="'chart-' + chart._id"
118
           class="uk-grid-match section uk-grid-small uk-grid uk-margin-top"
119
           uk-sortable="group: chart" uk-grid>
120
        <div class="tools disable-sortable uk-sortable-nodrag">
121
          <div class="actions">
122
            <a [class.uk-disabled]="editing" class="" (click)="createSection(i)"
123
               title="Create a new section">
124
              <icon name="add"></icon>
125
            </a>
126
            <!--<button class="md-btn md-btn-mini"><i class="material-icons rotate-90">drag_indicator</i></button>-->
127
            <a [title]="(chart.defaultId?'Default sections cannot be deleted':'Delete section')"
128
               (click)="deleteSectionOpen(chart, i, 'chart', 'delete')">
129
              <icon name="close"></icon>
130
            </a>
131
            <!--              <ng-container *ngIf="!stakeholder.defaultId">-->
132
            <!--                <button   [disabled]="editing || chart.defaultId  " class="md-btn md-btn-mini"-->
133
            <!--                          [title]="(chart.defaultId?'Default sections cannot be deleted':'Delete all related sections')"-->
134
            <!--                          (click)="deleteSectionOpen(chart, i, 'chart', 'delete')"><i class="material-icons">highlight_off</i>-->
135
            <!--                </button>-->
136
            <!--                <button   [disabled]="editing || chart.defaultId  " class="md-btn md-btn-mini"-->
137
            <!--                          [title]="(chart.defaultId?'Default sections cannot be deleted':'Delete section and disconnect related')"-->
138
            <!--                          (click)="deleteSectionOpen(chart, i, 'chart', 'disconnect')"><i class="material-icons">link_off</i>-->
139
            <!--                </button>-->
140
            <!--              </ng-container>-->
141
          </div>
142
        </div>
143
        <div *ngIf="chartSections.at(i)"
144
             class="uk-width-1-1 uk-margin-medium-bottom disable-sortable uk-sortable-nodrag">
145
          <div dashboard-input [formInput]="chartSections.at(i).get('title')"
146
               [extraLeft]="false" class="uk-width-1-3"
147
               placeholder="Write a title for this section">
148
            <div [class.uk-invisible]="chartSections.at(i).get('title').pristine">
149
              <button class="uk-button uk-button-secondary" [disabled]="editing"
150
                      (click)="saveSection(chartSections.at(i).value, i)">
151
                Save
152
              </button>
153
            </div>
154
          </div>
155
        </div>
156
        <ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index">
157
          <div *ngIf="indicator" [id]="indicator._id"
158
               [class.uk-width-1-3@m]="indicator.width === 'small'"
159
               [class.uk-width-1-2@m]=" indicator.width === 'medium'"
160
               [class.uk-width-1-1@m]="indicator.width === 'large'"
161
               [class.disable-sortable]="!canReorder"
162
               [class.uk-sortable-nodrag]="!canReorder">
163
            <div class="uk-card uk-card-default uk-card-body uk-position-relative" [class.uk-card-hover]="canReorder">
164
              <ng-container
165
                  *ngTemplateOutlet="visibilityOptions; context:{indicator: indicator, sectionId: chart._id}"></ng-container>
166
              <div class="uk-position-top-right uk-margin-small-right uk-margin-small-top clickable">
167
                <i uk-icon="more-vertical" (click)="$event.stopPropagation();$event.preventDefault()"></i>
168
                <div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
169
                  <ul class="uk-nav uk-dropdown-nav">
170
                    <li *ngIf="!editing"><a
171
                        (click)="editChartIndicatorOpen(chart, indicator._id);hide(element)">Edit</a>
172
                    </li>
173
                    <ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
174
                      <li *ngIf="indicator.visibility != v.value"><a (click)="changeIndicatorStatus(chart._id,
175
                             indicator, v.value); hide(element)">
176
                        {{'Make ' + v.label.toLowerCase()}}</a>
177
                      </li>
178
                    </ng-template>
179
                    <hr *ngIf="!indicator.defaultId " class="uk-nav-divider">
180
                    <li *ngIf="!editing && !indicator.defaultId "><a
181
                        (click)="deleteIndicatorOpen(chart, indicator._id, 'chart', 'delete');hide(element)">
182
                      Delete</a>
183
                      <!--                            <a (click)="deleteIndicatorOpen(chart, indicator._id, 'chart', 'delete');hide(element)">Delete from all profiles</a>-->
184
                      <!--                            <a (click)="deleteIndicatorOpen(chart, indicator._id, 'chart', 'disconnect');hide(element)">Delete and disconnect from all profiles</a>-->
185
                    </li>
186
                  </ul>
187
                </div>
188
              </div>
189
              <div>
190
                <div *ngIf="indicator.name" class="uk-text-center uk-text-bold uk-margin-small-bottom">
191
                  {{indicator.name}}
192
                </div>
193
                <iframe *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source !== 'image' &&
194
                                  safeUrls.get(indicatorUtils.getFullUrl(stakeholder, indicator.indicatorPaths[0]))"
195
                        [src]="safeUrls.get(indicatorUtils.getFullUrl(stakeholder, indicator.indicatorPaths[0]))"
196
                        class="uk-width-1-1 uk-height-medium"></iframe>
197
                <!--                    <div>Uncomment for iframes preview</div>-->
198
                <div *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source === 'image'">
199
                  <img class="uk-width-1-1 uk-height-medium" [src]="indicator.indicatorPaths[0].url">
200
                </div>
201
                <div *ngIf="indicator.description" class="uk-width-1-1 uk-text-muted uk-text-small uk-margin-small-top">
202
                  {{indicator.description}}
203
                </div>
204
                <div *ngIf="indicator.additionalDescription"
205
                     class="uk-width-1-1 uk-text-muted uk-text-small uk-margin-small-top">
206
                  {{indicator.additionalDescription}}
207
                </div>
208
              </div>
209
            </div>
210
          </div>
211
        </ng-template>
212
        <div class="disable-sortable uk-sortable-nodrag uk-width-1-1">
213
          <div class="uk-width-1-3@l uk-width-1-2@m uk-width-1-1 uk-card uk-card-default uk-card-body clickable"
214
               (click)="editChartIndicatorOpen(chart)">
215
            <div>
216
              <h5 class="uk-text-bold">
217
                Create a custom indicator
218
              </h5>
219
              <div class="uk-text-muted uk-text-small">
220
                Use our advance tool to create a custom Indicator that suit the needs of your funding
221
                KPI's.
222
              </div>
223
              <div class="uk-flex uk-flex-center uk-text-secondary uk-margin-large">
224
                <icon name="add" ratio="5"></icon>
225
              </div>
226
            </div>
227
          </div>
228
        </div>
229
      </div>
230
    </ng-template>
231
    <ng-container *ngTemplateOutlet="new_section; context:{type: 'chart'}"></ng-container>
232
  </div>
233
</div>
234

    
235
<modal-alert #editNumberModal
236
             [large]="true"
237
             (alertOutput)="saveIndicator()"
238
             [okDisabled]="numberIndicatorFb && (numberIndicatorFb.invalid || numberIndicatorFb.pristine)">
239
  <div *ngIf="numberIndicatorFb" class="uk-padding-small" [formGroup]="numberIndicatorFb">
240
    <div class="uk-grid" uk-grid>
241
      <div dashboard-input class="uk-width-1-1" [formInput]="numberIndicatorFb.get('name')" label="Title"></div>
242
      <div dashboard-input class="uk-width-1-1"
243
           [formInput]="numberIndicatorFb.get('description')"
244
           label="Description" type="textarea">
245
      </div>
246
      <div dashboard-input *ngIf="isAdministrator || indicator.defaultId" class="uk-width-1-1" [formInput]="numberIndicatorFb.get('additionalDescription')"
247
           label="Additional information" type="textarea">
248
      </div>
249

    
250
      <div dashboard-input class="uk-width-1-2@m" [formInput]="numberIndicatorFb.get('visibility')"
251
           label="Visibility" [options]="stakeholderUtils.visibility" type="select">
252
      </div>
253
      <div dashboard-input class="uk-width-1-2@m" [formInput]="numberIndicatorFb.get('width')"
254
           type="select" [options]="indicatorUtils.indicatorSizes"
255
           label="Number Size">
256
      </div>
257
      <div *ngIf="numberIndicatorPaths" formArrayName="indicatorPaths">
258
        <div *ngFor="let indicatorPath of numberIndicatorPaths.controls; let i=index"
259
             [formGroup]="indicatorPath">
260
          <div class="uk-grid" uk-grid>
261
            <div class="uk-width-1-1">
262
              <div class="uk-grid" uk-grid>
263
                <div class="uk-width-1-1">
264
                  <div dashboard-input [formInput]="indicatorPath.get('url')" label="Number URL"></div>
265
                </div>
266
                <div *ngIf="urlParameterizedMessage.length > 0" class="uk-alert-warning uk-alert uk-width-1-1">
267
                  {{urlParameterizedMessage}}
268
                </div>
269
                <div class="uk-width-1-1">
270
                  <div dashboard-input [formInput]="indicatorPath.get('source')" label="Source"
271
                       type="select" [options]="indicatorUtils.sourceTypes">
272
                  </div>
273
                </div>
274
              </div>
275
            </div>
276
            <div formArrayName="jsonPath" class="uk-width-1-1">
277
              <h6 class="uk-text-bold">
278
                JSON Path
279
              </h6>
280
              <div class="uk-grid uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
281
                <div *ngFor="let jsonPath of getJsonPath(i).controls; let j=index" class="uk-flex uk-flex-middle">
282
                  <div dashboard-input class="uk-width-1-1"
283
                       [extraLeft]="false"
284
                       [formInput]="jsonPath"
285
                       [label]="'Level ' + +(j + 1)">
286
                    <div class="uk-flex uk-flex-middle">
287
                    <span *ngIf="getJsonPath(i).length !== 1"
288
                          class=" uk-margin-small-left uk-text-danger clickable"
289
                          (click)="removeJsonPath(i, j)">
290
                      <icon name="close"></icon>
291
                    </span>
292
                      <span class="uk-text-center uk-margin-left">
293
                      <icon name="arrow_right"></icon>
294
                    </span>
295
                    </div>
296
                  </div>
297
                </div>
298
                <div class="uk-flex uk-flex-middle">
299
                  <button class="uk-icon-button uk-button-secondary  uk-margin-medium-top"
300
                      (click)="addJsonPath(i)">
301
                    <icon name="add"></icon>
302
                  </button>
303
                  <!--<span *ngIf="getJsonPath(i).invalid" class="uk-margin-small-left uk-margin-medium-top">
304
                    <button *ngIf="getJsonPath(i).errors.invalid" class="uk-icon-button uk-button-primary"
305
                            (click)="validateJsonPath(i)">
306
                      <icon name="done"></icon>
307
                    </button>
308
                  </span>
309
                  <span *ngIf="getJsonPath(i).disabled" class="uk-text-primary uk-margin-small-left uk-margin-medium-top">Validating...</span>
310
                  <span *ngIf="getJsonPath(i).valid" class="uk-text-success uk-margin-small-left uk-margin-medium-top">
311
                      <icon name="done"></icon>
312
                  </span>-->
313
                </div>
314
              </div>
315
            </div>
316
          </div>
317
        </div>
318
      </div>
319
    </div>
320
  </div>
321
</modal-alert>
322
<modal-alert #editChartModal
323
             [large]="true"
324
             (alertOutput)="saveIndicator()"
325
             [okDisabled]="chartIndicatorFb && (chartIndicatorFb.invalid || chartIndicatorFb.pristine)">
326
  <div *ngIf="chartIndicatorFb" class="uk-padding-small" [formGroup]="chartIndicatorFb">
327
    <div class="uk-grid" uk-grid>
328
      <div dashboard-input class="uk-width-1-1" [formInput]="chartIndicatorFb.get('name')" label="Title"></div>
329
      <div dashboard-input class="uk-width-1-1"
330
           [formInput]="chartIndicatorFb.get('description')"
331
           label="Description" type="textarea">
332
      </div>
333
      <div dashboard-input *ngIf="isAdministrator || indicator.defaultId" class="uk-width-1-1" [formInput]="chartIndicatorFb.get('additionalDescription')"
334
           label="Additional information" type="textarea">
335
      </div>
336
      <div dashboard-input class="uk-width-1-2@m" [formInput]="chartIndicatorFb.get('visibility')"
337
           label="Status" [options]="stakeholderUtils.visibility" type="select">
338
      </div>
339
      <div dashboard-input class="uk-width-1-2@m" [formInput]="chartIndicatorFb.get('width')"
340
           type="select" [options]="indicatorUtils.indicatorSizes"
341
           label="Chart Size">
342
      </div>
343
      <div *ngIf="chartIndicatorPaths" formArrayName="indicatorPaths" class="uk-width-1-1">
344
        <div *ngFor="let indicatorPath of chartIndicatorPaths.controls; let  i=index;"
345
             [formGroup]="indicatorPath" class="uk-grid" uk-grid>
346
          <div dashboard-input class="uk-width-1-1"
347
               [title]="indicatorPath.get('url').disabled?'Default chart URLs cannot change':''"
348
               [formInput]="indicatorPath.get('url')"
349
               label="Chart URL"></div>
350
          <div *ngIf="urlParameterizedMessage.length > 0" class="uk-alert-warning uk-alert uk-width-1-1">
351
            {{urlParameterizedMessage}}
352
          </div>
353
          <div class="uk-width-1-1" formArrayName="parameters">
354
            <div class="uk-grid" uk-grid>
355
              <div *ngIf="getParameter(i, 'title')" class="uk-width-1-1">
356
                <div dashboard-input
357
                     [formInput]="getParameter(i, 'title').get('value')"
358
                     label="Chart Title"></div>
359
              </div>
360
              <div *ngIf="getParameter(i, 'subtitle')" class="uk-width-1-1">
361
                <div dashboard-input
362
                     [formInput]="getParameter(i, 'subtitle').get('value')"
363
                     label="Chart Subtitle"></div>
364
              </div>
365
              <div *ngIf="!getParameter(i, 'type')" class="uk-width-1-3@s">
366
                <div dashboard-input [formInput]="indicatorPath.get('type')"
367
                     type="select"
368
                     [options]="(indicatorPath.get('type').value == 'table' && getParameter(i, 'data_title_0'))?indicatorUtils.getChartTypes(indicatorPath.get('type').value):indicatorUtils.allChartTypes"
369
                     label="Chart Type"></div>
370
              </div>
371
              <div *ngIf="getParameter(i, 'type')" class="uk-width-1-3@s">
372
                <div dashboard-input [formInput]="getParameter(i, 'type').get('value')"
373
                     type="select" [options]="indicatorUtils.getChartTypes(getParameter(i, 'type').get('value').value)"
374
                     label="Chart Type"></div>
375
              </div>
376
              <div *ngIf="getParameter(i, 'xAxisTitle')" class="uk-width-1-3@s">
377
                <div dashboard-input [formInput]="getParameter(i, 'xAxisTitle').get('value')"
378
                     label="X-Axis Title"></div>
379
              </div>
380
              <div *ngIf="getParameter(i, 'yAxisTitle')" class="uk-width-1-3@s">
381
                <div dashboard-input [formInput]="getParameter(i, 'yAxisTitle').get('value')"
382
                     label="Y-Axis Title"></div>
383
              </div>
384
              <div *ngIf="getParameter(i, 'data_title_0')" class="uk-width-1-3@s">
385
                <div dashboard-input [formInput]="getParameter(i, 'data_title_0').get('value')"
386
                     label="Data title"></div>
387
              </div>
388
              <div *ngIf="getParameter(i, 'data_title_1')" class="uk-width-1-3@s">
389
                <div dashboard-input [formInput]="getParameter(i, 'data_title_1').get('value')"
390
                     label="Data title"></div>
391
              </div>
392
              <div *ngIf="getParameter(i, 'start_year')" class="uk-width-1-3@s">
393
                <div dashboard-input [formInput]="getParameter(i, 'start_year').get('value')"
394
                     label="Year (From)"></div>
395
              </div>
396
              <div *ngIf="getParameter(i, 'end_year')" class="uk-width-1-3@s">
397
                <div dashboard-input [formInput]="getParameter(i, 'end_year').get('value')"
398
                     label="Year (To)"></div>
399
              </div>
400
            </div>
401
          </div>
402
          <div *ngIf="indicator && indicator.indicatorPaths[i] && indicator.indicatorPaths[i].safeResourceUrl"
403
               class="uk-margin-medium-top uk-position-relative uk-width-1-1 uk-flex uk-flex-center">
404
            <div *ngIf="(hasDifference(i)) && !indicatorPath.invalid"
405
                 class="uk-width-1-1 uk-height-large refresh-iframe">
406
              <div class="uk-position-relative uk-height-1-1">
407
                <div class="uk-position-center uk-text-center clickable"
408
                     (click)="refreshIndicator()">
409
                  <div>
410
                    <icon name="refresh"></icon>
411
                  </div>
412
                  <span>Click to refresh the graph view</span>
413
                </div>
414
              </div>
415
            </div>
416
            <iframe *ngIf="indicator.indicatorPaths[i].source !== 'image'"
417
                    [src]="indicator.indicatorPaths[i].safeResourceUrl"
418
                    class="uk-width-1-1 uk-height-large"></iframe>
419
            <div *ngIf="indicator.indicatorPaths[i].source === 'image'">
420
              <img class="uk-width-1-1 uk-height-large" [src]="indicator.indicatorPaths[i].url">
421
            </div>
422
          </div>
423
        </div>
424
      </div>
425
    </div>
426
  </div>
427
</modal-alert>
428
<modal-alert #deleteModal (alertOutput)="deleteIndicator()">
429
  You are about to delete <span class="uk-text-bold" *ngIf="indicator && index !== -1">
430
  "{{indicator.name ? indicator.name : indicator.indicatorPaths[0].parameters.title}}"</span> indicator permanently.
431
  <div *ngIf="indicatorChildrenActionOnDelete == 'delete'" class="uk-text-bold">
432
    Indicators of all profiles based on this default indicator, will be deleted as well.
433
  </div>
434
  <!--  <span *ngIf="indicatorChildrenActionOnDelete == 'disconnect'" class="uk-text-bold">-->
435
  <!--    Indicators of all profiles based on this default indicator, will not be marked as copied from default anymore.-->
436
  <!--  </span>-->
437
  Are you sure you want to proceed?
438
</modal-alert>
439
<!--<modal-alert #deleteAllModal (alertOutput)="deleteIndicator('delete')">
440
  You are about to delete <span class="uk-text-bold" *ngIf="indicator && index !== -1">
441
  "{{indicator.name ? indicator.name : indicator.indicatorPaths[0].parameters.title}}"</span> indicator permanently.
442
  <span class="uk-text-bold">Indicators of all profiles based on this default indicator, will be deleted as well.</span>
443
  Are you sure you want to proceed?
444
</modal-alert>
445
<modal-alert #deleteAndDisconnectModal (alertOutput)="deleteIndicator('disconnect')">
446
  You are about to delete <span class="uk-text-bold" *ngIf="indicator && index !== -1">
447
  "{{indicator.name ? indicator.name : indicator.indicatorPaths[0].parameters.title}}"</span> indicator permanently.
448
  <span class="uk-text-bold">Indicators of all profiles based on this default indicator, will not be marked as copied from default anymore.</span>
449
  Are you sure you want to proceed?
450
</modal-alert>-->
451
<modal-alert #deleteSectionModal (alertOutput)="deleteSection()">
452
  You are about to delete this section and its indicators permanently.
453
  <div *ngIf="sectionChildrenActionOnDelete == 'delete' && !stakeholder.defaultId" class="uk-text-bold">
454
    Sections of all profiles based on this default section and their contents, will be deleted as well.
455
  </div>
456
  <!--  <span *ngIf="sectionChildrenActionOnDelete == 'disconnect'" class="uk-text-bold">-->
457
  <!--    Sections of all profiles based on this default section and their contents, will not be marked as copied from default anymore.-->
458
  <!--  </span>-->
459
  Are you sure you want to proceed?
460
</modal-alert>
461
<!--<modal-alert #deleteNumberSectionModal (alertOutput)="deleteSection('number')">
462
  You are about to delete this section and its indicators permanently.
463
  Are you sure you want to proceed?
464
</modal-alert>
465
<modal-alert #deleteChartSectionModal (alertOutput)="deleteSection()">
466
  You are about to delete this section and its indicators permanently.
467
  Are you sure you want to proceed?
468
</modal-alert>-->
469
<ng-template #visibilityOptions let-indicator="indicator" let-sectionId="sectionId">
470
   <span class="uk-position-top-left uk-margin-small-left uk-margin-small-top clickable visibility">
471
      <span class="clickable color">
472
          <icon [name]="stakeholderUtils.visibilityIcon.get(indicator.visibility)"></icon>
473
        </span>
474
      <div #element uk-dropdown="mode: click; pos: bottom-left; delay-hide: 0; flip: false">
475
        <ul class="uk-nav uk-dropdown-nav">
476
          <li *ngFor="let v of stakeholderUtils.visibility" class="uk-position-relative">
477
            <a *ngIf="indicator.visibility != v.value"
478
               (click)="$event.stopPropagation();changeIndicatorStatus(sectionId, indicator,v.value);hide(element);$event.preventDefault()">
479
                <icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" ratio="0.8"></icon>
480
                <span> {{v.label}}</span>
481
            </a>
482
            <a *ngIf="indicator.visibility == v.value">
483
              <icon [name]="stakeholderUtils.visibilityIcon.get(v.value)" [ratio]="0.8"></icon>
484
              <span> {{v.label}}</span>
485
              <span class="uk-position-center-right">
486
                <icon customClass="uk-text-secondary" [ratio]="0.5" name="bullet"></icon>
487
              </span>
488
            </a>
489
          </li>
490
        </ul>
491
      </div>
492
   </span>
493
</ng-template>
494
<ng-template #new_section let-type="type">
495
  <div class="new-section uk-margin-large-top">
496
    <div class="tools uk-flex uk-flex-middle clickable" (click)="createSection(-1, type)">
497
      <button class="uk-margin-small-right uk-icon-button uk-button-secondary">
498
        <icon name="add" [ratio]="1.5"></icon>
499
      </button>
500
      <span>Create a new section</span>
501
    </div>
502
  </div>
503
</ng-template>
(2-2/7)