Project

General

Profile

1
<aside id="sidebar_main">
2
  <div *ngIf="stakeholder" class="sidebar_main_header">
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.current_section]="analysisOpen"
12
          [class.act_section]="analysisOpen"
13
          class="submenu_trigger">
14
        <a href="#" (click)="analysisOpen = !analysisOpen; $event.preventDefault()">
15
          <span class="menu_icon"><i class="material-icons">donut_large</i></span>
16
          <span class="menu_title">Analysis Indicators</span>
17
        </a>
18
        <ul [style.display]="(analysisOpen?'block':'none')">
19
          <ng-template ngFor [ngForOf]="stakeholder.topics" let-topic let-i="index">
20
            <li>
21
              <a [routerLink]="topic.alias">
22
                <span *ngIf="topic.icon" class="menu_icon uk-margin-small-right"><i
23
                  class="material-icons">{{topic.icon}}</i></span>
24
                <div class="menu_title uk-inline">
25
                  {{topic.name}}
26
                  <button class="uk-position-center-right-out uk-margin-right uk-button uk-button-link onHover"
27
                          (click)="$event.stopPropagation();saveTopicOpen(editTopic, i); $event.preventDefault()">
28
                    <i class="material-icons">more_horiz</i>
29
                  </button>
30
                </div>
31
              </a>
32
              <div uk-drop="mode: none; offset: -2; delay-hide: 0; flip: false" #editTopic
33
                   class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
34
                <div *ngIf="topicFb">
35
                  <div class="md-card">
36
                    <div class="md-card-content uk-position-relative">
37
                      <a class="uk-position-top-right">
38
                        <i (click)="hide(editTopic)" class="material-icons">close</i>
39
                      </a>
40
                      <div class="uk-grid-small" uk-grid [formGroup]="topicFb">
41
                        <div class="uk-width-1-1">
42
                          <label class="uk-text-bold">Topic Settings</label>
43
                          <input class="uk-input uk-form-small" formControlName="name"
44
                                 [class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid"
45
                                 type="text">
46
                        </div>
47
                        <div class="uk-width-1-1">
48
                          <label>Description</label>
49
                          <textarea class="uk-textarea" formControlName="description"
50
                                    rows="3" type="text"></textarea>
51
                        </div>
52
                        <div dashboard-input [type]="'select'"
53
                             [formInput]="topicFb.get('isPublic')" [options]="indicatorUtils.isPublic"
54
                             label="Privacy" class="uk-width-1-2">
55
                        </div>
56
                        <div dashboard-input [type]="'select'"
57
                             [formInput]="topicFb.get('isActive')" [options]="indicatorUtils.isActive"
58
                             label="Status" class="uk-width-1-2">
59
                        </div>
60
                      </div>
61
                      <hr>
62
                      <div class="uk-grid-small uk-child-width-1-2" uk-grid>
63
                        <div>
64
                          <button class="md-btn md-btn-small"
65
                                  (click)="deleteTopicOpen(this.topicFb.value.name, editTopic, i)">Delete</button>
66
                        </div>
67
                        <div>
68
                          <button class="md-btn md-btn-small md-btn-primary uk-float-right"
69
                                  [class.md-btn-primary]="topicFb.valid && topicFb.dirty"
70
                                  [class.disabled]="topicFb.invalid || !topicFb.dirty"
71
                                  (click)="saveTopic(editTopic, i)">Save
72
                          </button>
73
                        </div>
74
                      </div>
75
                    </div>
76
                  </div>
77
                </div>
78
              </div>
79
            </li>
80
          </ng-template>
81
          <li>
82
            <a href="#" (click)="saveTopicOpen(newTopic); $event.preventDefault()">
83
              <span class="menu_icon"><i class="material-icons">add</i></span>
84
              <span class="menu_title">Create new Topic</span>
85
            </a>
86
            <div uk-drop="mode: none; offset: -2; delay-hide: 0" #newTopic
87
                 class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop">
88
              <div *ngIf="topicFb">
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(newTopic)" class="material-icons">close</i>
93
                    </a>
94
                    <div class="uk-grid-small" uk-grid [formGroup]="topicFb">
95
                      <div class="uk-width-1-1">
96
                        <label class="uk-text-bold">New Topic</label>
97
                        <input class="uk-input uk-form-small" formControlName="name"
98
                               [class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid"
99
                               type="text">
100
                      </div>
101
                      <div class="uk-width-1-1">
102
                        <label>Description</label>
103
                        <textarea class="uk-textarea" formControlName="description"
104
                                  rows="3" type="text"></textarea>
105
                      </div>
106
                      <div dashboard-input [type]="'select'"
107
                           [formInput]="topicFb.get('isPublic')" [options]="indicatorUtils.isPublic"
108
                           label="Privacy" class="uk-width-1-2">
109
                      </div>
110
                      <div dashboard-input [type]="'select'"
111
                           [formInput]="topicFb.get('isActive')" [options]="indicatorUtils.isActive"
112
                           label="Status" class="uk-width-1-2">
113
                      </div>
114
                    </div>
115
                    <hr>
116
                    <div class="uk-grid-small uk-child-width-1-2" uk-grid>
117
                      <div>
118
                        <button class="md-btn md-btn-small" (click)="hide(newTopic)">Cancel</button>
119
                      </div>
120
                      <div>
121
                        <button class="md-btn md-btn-small uk-float-right"
122
                                [class.md-btn-primary]="topicFb.valid && topicFb.dirty"
123
                                [class.disabled]="topicFb.invalid || !topicFb.dirty"
124
                                (click)="saveTopic(newTopic)">
125
                          Create
126
                        </button>
127
                      </div>
128
                    </div>
129
                  </div>
130
                </div>
131
              </div>
132
            </div>
133
          </li>
134
        </ul>
135
      </li>
136
    </ul>
137
  </div>
138
</aside>
139
<div id="page_content" click-outside-or-esc targetId="page_content" [escClose]="false" (clickOutside)="toggleOpen($event)">
140
  <div id="page_content_inner">
141
    <h4 class="uk-text-bold">
142
      Customise your Monitor Dashboard!
143
    </h4>
144
    <div class="uk-text-large uk-margin-bottom">
145
      <div>
146
        Modify or add new topics, categories and content.<br><br>
147
        Start your navigation through the <span class="md-color-blue-900">left side menu!</span>
148
      </div>
149
      <div class="uk-margin-small-top uk-margin-small-bottom uk-margin-large-left">
150
        <svg xmlns="http://www.w3.org/2000/svg" width="30" height="88" viewBox="0 0 30 88">
151
          <g id="Group_749" data-name="Group 749" transform="translate(-872.168 -490.5)">
152
            <text class="fill_text" id="OR" transform="translate(872.168 540.271)" font-size="18"
153
                  font-family="OpenSans-Bold, Open Sans" font-weight="900" opacity="0.8">
154
              <tspan x="0" y="0">OR</tspan>
155
            </text>
156
            <line class="stroke_line" id="Line_225" data-name="Line 225" y2="30" transform="translate(885.5 490.5)"
157
                  fill="none" stroke="#000" stroke-width="1" opacity="0.2"/>
158
            <line class="stroke_line" id="Line_226" data-name="Line 226" y2="30" transform="translate(885.5 548.5)"
159
                  fill="none" stroke="#000" stroke-width="1" opacity="0.2"/>
160
          </g>
161
        </svg>
162
      </div>
163
      <div class="uk-width-1-1">
164
        Select one of the <span class="md-color-blue-900">topics below</span>!
165
      </div>
166
    </div>
167
    <div *ngIf="stakeholder" class="uk-child-width-1-3@m uk-child-width-1-1@s uk-grid-match uk-grid-medium" uk-grid>
168
      <ng-template ngFor [ngForOf]="stakeholder.topics" let-topic>
169
        <div>
170
          <a [routerLink]="topic.alias" class="md-card">
171
            <div class="md-card-content">
172
              <h6 class="uk-text-bold">{{topic.name}}</h6>
173
              <div class="uk-text-secondary">
174
                {{topic.description}}
175
              </div>
176
            </div>
177
          </a>
178
        </div>
179
      </ng-template>
180
    </div>
181
  </div>
182
</div>
183
<modal-alert #deleteTopicModal (alertOutput)="deleteTopic()"></modal-alert>
(2-2/4)