Revision 60004
Added by Konstantinos Triantafyllou over 3 years ago
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/app.component.html | ||
---|---|---|
17 | 17 |
></dashboard-sidebar> |
18 | 18 |
<dashboard-sidebar *ngIf="hasAdminMenu" [items]="adminMenuItems" headerName="Admin" |
19 | 19 |
headerDashboard="Administration Panel" [headerUrl]="'https://' + (properties.environment == 'beta' ? 'beta.' : '') + |
20 |
'monitor.openaire.eu'" |
|
20 |
'monitor.openaire.eu'" headerPosition="right"
|
|
21 | 21 |
[specialMenuItem]="specialSideBarMenuItem" |
22 | 22 |
></dashboard-sidebar> |
23 | 23 |
<router-outlet></router-outlet> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/monitor/monitor.component.css | ||
---|---|---|
1 |
.uk-card { |
|
2 |
min-height: 270px; |
|
3 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/monitor/monitor.component.html | ||
---|---|---|
76 | 76 |
</div> |
77 | 77 |
<div inner> |
78 | 78 |
<div [class.uk-padding]="!isSmallScreen" class="uk-padding-remove-vertical"> |
79 |
<div *ngIf="privateStakeholder"> |
|
80 |
<div class="uk-text-center uk-height-medium">
|
|
79 |
<div *ngIf="privateStakeholder" class="message">
|
|
80 |
<div class="uk-text-center"> |
|
81 | 81 |
<h3><i> |
82 | 82 |
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"> |
83 | 83 |
<path d="M0 0h24v24H0z" fill="none"/> |
... | ... | |
91 | 91 |
</div> |
92 | 92 |
</div> |
93 | 93 |
<div *ngIf="!privateStakeholder"> |
94 |
<div |
|
95 |
*ngIf="(activeSubCategory && (activeSubCategory.charts.length == 0 || |
|
96 |
(activeSubCategory.charts.length == 1 && activeSubCategory.charts[0].indicators.length == 0))) |
|
94 |
<div *ngIf="(activeSubCategory && (activeSubCategory.charts.length == 0 || |
|
95 |
(activeSubCategory.charts.length == 1 && countIndicatorsToShow(activeSubCategory.charts[0].indicators) == 0))) |
|
97 | 96 |
&& ((activeSubCategory && |
98 | 97 |
activeSubCategory.description && |
99 | 98 |
activeSubCategory.description.length > 0) || |
100 | 99 |
(activeCategory && activeCategory.description && activeCategory.description.length > 0) || |
101 | 100 |
(activeTopic && activeTopic.description && activeTopic.description.length > 0))" |
102 |
class="uk-text-center"> |
|
101 |
class="uk-text-center">
|
|
103 | 102 |
<div class="uk-height-small uk-margin-large-top uk-margin-xlarge-right uk-margin-xlarge-left"> |
104 | 103 |
{{activeSubCategory && activeSubCategory.description && activeSubCategory.description.length > 0 ? activeSubCategory.description |
105 | 104 |
: (activeCategory && activeCategory.description && activeCategory.description.length > 0 ? activeCategory.description : |
... | ... | |
107 | 106 |
</div> |
108 | 107 |
|
109 | 108 |
</div> |
110 |
<div *ngIf="!loading && !privateStakeholder &&
|
|
109 |
<ng-template [ngIf]="!loading && !privateStakeholder &&
|
|
111 | 110 |
(!activeSubCategory || |
112 | 111 |
( |
113 |
(activeSubCategory.numbers.length == 0 || (activeSubCategory.numbers.length == 1 && activeSubCategory.numbers[0].indicators.length == 0))
|
|
112 |
(activeSubCategory.numbers.length == 0 || (activeSubCategory.numbers.length == 1 && countIndicatorsToShow(activeSubCategory.numbers[0].indicators) == 0))
|
|
114 | 113 |
&& |
115 |
(activeSubCategory.charts.length == 0 || (activeSubCategory.charts.length == 1 && activeSubCategory.charts[0].indicators.length == 0))
|
|
116 |
) || !activeTopic || !activeCategory || !activeSubCategory)"> |
|
117 |
<div class=" uk-text-center"> |
|
114 |
(activeSubCategory.charts.length == 0 || (activeSubCategory.charts.length == 1 && countIndicatorsToShow(activeSubCategory.charts[0].indicators) == 0))
|
|
115 |
) || !activeTopic || !activeCategory || !activeSubCategory)" [ngIfElse]="content">
|
|
116 |
<div class="message uk-text-center">
|
|
118 | 117 |
<h3> |
119 | 118 |
No indicators available yet. Stay tuned! |
120 | 119 |
</h3> |
121 | 120 |
</div> |
122 |
</div> |
|
123 |
<div *ngIf="activeSubCategory" class="uk-grid uk-grid-medium uk-margin-bottom uk-margin-top" |
|
124 |
uk-height-match="target: div.uk-card"> |
|
125 |
<ng-template ngFor [ngForOf]="activeSubCategory.numbers" let-number let-i="index"> |
|
126 |
<h4 *ngIf="countIndicatorsToShow(number.indicators)> 0 " class="uk-width-1-1">{{number.title}}</h4> |
|
127 |
<ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index"> |
|
128 |
<div *ngIf="isPublicOrIsMember(indicator.visibility)" |
|
129 |
[class.uk-width-1-3@m]="indicator.width === 'small'" |
|
130 |
[class.uk-width-1-2@m]="indicator.width === 'medium'" |
|
131 |
[class.uk-width-1-1]="indicator.width === 'large'" class=" uk-margin-bottom"> |
|
132 |
<div class="uk-card uk-card-default" |
|
133 |
[class.uk-disabled]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()" |
|
134 |
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()"> |
|
135 |
<div class="uk-card-body uk-text-center"> |
|
136 |
<div *ngIf="properties.environment == 'development'">Filtered: |
|
137 |
{{indicator.indicatorPaths[0].filtersApplied}} |
|
138 |
out of |
|
139 |
{{countSelectedFilters()}}</div> |
|
140 |
<div class="uk-text-bold ">{{indicator.name}}</div> |
|
141 |
<h3 *ngIf="numberResults.get(i + '-' + j)" class="uk-margin-medium-top uk-text-bold"> |
|
142 |
<span>{{numberResults.get(i + '-' + j) | number}}</span> |
|
143 |
</h3> |
|
144 |
<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container> |
|
121 |
</ng-template> |
|
122 |
<ng-template #content> |
|
123 |
<div class="uk-grid uk-grid-small uk-margin-bottom uk-margin-top" |
|
124 |
uk-height-match="target: .uk-card"> |
|
125 |
<ng-template ngFor [ngForOf]="activeSubCategory.numbers" let-number let-i="index"> |
|
126 |
<h5 *ngIf="countIndicatorsToShow(number.indicators)> 0 " |
|
127 |
class="uk-width-1-1 uk-margin-bottom">{{number.title}}</h5> |
|
128 |
<ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index"> |
|
129 |
<div *ngIf="isPublicOrIsMember(indicator.visibility)" |
|
130 |
[ngClass]="getNumberClassBySize(indicator.width)" class=" uk-margin-bottom"> |
|
131 |
<div class="uk-card uk-card-default" |
|
132 |
[class.uk-disabled]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()" |
|
133 |
[class.semiFiltered]="indicator.indicatorPaths[0].filtersApplied < countSelectedFilters()"> |
|
134 |
<div class="uk-card-body uk-text-center"> |
|
135 |
<div *ngIf="properties.environment == 'development'">Filtered: |
|
136 |
{{indicator.indicatorPaths[0].filtersApplied}} |
|
137 |
out of |
|
138 |
{{countSelectedFilters()}}</div> |
|
139 |
<div class="uk-text-bold ">{{indicator.name}}</div> |
|
140 |
<h3 *ngIf="numberResults.get(i + '-' + j)" class="uk-margin-medium-top uk-text-bold"> |
|
141 |
<span>{{numberResults.get(i + '-' + j) | number}}</span> |
|
142 |
</h3> |
|
143 |
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>--> |
|
144 |
</div> |
|
145 | 145 |
</div> |
146 | 146 |
</div> |
147 |
</div>
|
|
147 |
</ng-template>
|
|
148 | 148 |
</ng-template> |
149 |
</ng-template> |
|
150 |
</div> |
|
151 |
<div *ngIf="activeSubCategory"> |
|
152 |
<div *ngFor="let chart of activeSubCategory.charts; let i = index;" |
|
153 |
class="uk-grid uk-grid-medium uk-margin-bottom uk-flex uk-flex-middle " |
|
154 |
uk-height-match="target: div > div > div > div > .chartTitle"> |
|
155 |
|
|
156 |
<h3 *ngIf="chart.title && chart.title.length > 0 && countIndicatorsToShow(chart.indicators) > 0 " |
|
157 |
class="uk-width-1-1 uk-margin-top">{{chart.title}}</h3> |
|
158 |
<ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index"> |
|
159 |
<div |
|
160 |
*ngIf="isPublicOrIsMember(indicator.visibility) && chartsActiveType.get(i + '-' + j)" |
|
161 |
[class.uk-width-1-3@m]="indicator.width === 'small'" |
|
162 |
[class.uk-width-1-2@m]="indicator.width === 'medium'" |
|
163 |
[class.uk-width-1-1]="indicator.width === 'large'" class="uk-margin-bottom"> |
|
164 |
<div class="indicatorBox"> |
|
149 |
</div> |
|
150 |
<div> |
|
151 |
<div *ngFor="let chart of activeSubCategory.charts; let i = index;" |
|
152 |
class="uk-grid uk-grid-small uk-margin-bottom uk-flex uk-flex-middle " |
|
153 |
uk-height-match="target: .uk-card"> |
|
154 |
<h5 *ngIf="chart.title && chart.title.length > 0 && countIndicatorsToShow(chart.indicators) > 0 " |
|
155 |
class="uk-width-1-1 uk-margin-bottom">{{chart.title}}</h5> |
|
156 |
<ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index"> |
|
157 |
<div |
|
158 |
*ngIf="isPublicOrIsMember(indicator.visibility) && chartsActiveType.get(i + '-' + j)" |
|
159 |
[ngClass]="getChartClassBySize(indicator.width)" class="uk-margin-bottom"> |
|
165 | 160 |
<div class="uk-card uk-card-default" |
166 | 161 |
[class.uk-disabled]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()" |
167 |
[class.semiFiltered]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()" |
|
168 |
> |
|
162 |
[class.semiFiltered]="chartsActiveType.get(i + '-' + j).filtersApplied < countSelectedFilters()"> |
|
169 | 163 |
<div class="uk-card-body uk-text-center"> |
170 | 164 |
<h4 class="uk-margin-bottom chartTitle uk-flex uk-flex-bottom "> |
171 | 165 |
<div>{{indicator.name + " "}}</div> |
... | ... | |
191 | 185 |
[src]="chartsActiveType.get(i + '-' + j).safeResourceUrl" |
192 | 186 |
[class]="' uk-width-1-1 uk-height-' + |
193 | 187 |
(indicator.height?indicator.height.toLowerCase():'medium')"> |
194 |
<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>
|
|
188 |
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
|
195 | 189 |
</div> |
196 | 190 |
</div> |
197 | 191 |
</div> |
198 |
</div>
|
|
199 |
</ng-template>
|
|
192 |
</ng-template>
|
|
193 |
</div>
|
|
200 | 194 |
</div> |
201 |
</div> |
|
202 |
<div *ngIf="!loading && !privateStakeholder && (activeSubCategory || (activeTopic && |
|
203 |
(activeTopic.categories == null || activeTopic.categories.length == 0)))" class="uk-margin-small-top uk-flex"> |
|
204 |
<!-- Last Stats Date--> |
|
205 |
<div class="uk-width-2-3@m uk-width-1-2"> |
|
206 |
<img src="assets/common-assets/graph.svg" style="opacity: 0.4"> |
|
207 |
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> |
|
208 |
<span *ngIf="statsUpdateDate" class="uk-text-baseline uk-text-muted"> |
|
195 |
<div class="uk-margin-medium-top uk-flex"> |
|
196 |
<!-- Last Stats Date--> |
|
197 |
<div class="uk-width-2-3@m uk-width-1-2"> |
|
198 |
<img src="assets/common-assets/graph.svg" style="opacity: 0.4"> |
|
199 |
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a |
|
200 |
href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span> |
|
201 |
<span *ngIf="statsUpdateDate" class="uk-text-baseline uk-text-muted"> |
|
209 | 202 |
. Last update of statistics in OpenAIRE: {{statsUpdateDate | date: 'MMM dd, yyyy'}} |
210 | 203 |
</span> |
204 |
</div> |
|
205 |
<!--Feedback--> |
|
206 |
<div class="uk-width-expand uk-text-right"> |
|
207 |
<span class="uk-text-muted">Send us your <a [href]="mailText" target="_self" |
|
208 |
(click)="mailMe()">feedback</a>.</span> |
|
209 |
</div> |
|
211 | 210 |
</div> |
212 |
<!--Feedback--> |
|
213 |
<div class="uk-width-expand uk-text-right"> |
|
214 |
<span class="uk-text-muted">Send us your <a [href]="mailText" target="_self" (click)="mailMe()">feedback</a>.</span> |
|
215 |
</div> |
|
216 |
</div> |
|
211 |
</ng-template> |
|
217 | 212 |
</div> |
218 | 213 |
</div> |
219 | 214 |
</div> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/monitor/monitor.component.ts | ||
---|---|---|
12 | 12 |
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service"; |
13 | 13 |
import { |
14 | 14 |
Category, Indicator, |
15 |
IndicatorPath, |
|
15 |
IndicatorPath, IndicatorSize,
|
|
16 | 16 |
Stakeholder, |
17 | 17 |
SubCategory, |
18 | 18 |
Topic, |
... | ... | |
525 | 525 |
mailMe() { |
526 | 526 |
window.location.href = this.mailText; |
527 | 527 |
} |
528 |
|
|
529 |
public getNumberClassBySize(size: IndicatorSize) { |
|
530 |
if(size === 'small') { |
|
531 |
return 'uk-width-1-4@xl uk-width-1-3@l uk-width-1-2@m uk-width-1-1'; |
|
532 |
} else if(size === 'medium') { |
|
533 |
return 'uk-width-1-3@l uk-width-1-2@m uk-width-1-1'; |
|
534 |
} else { |
|
535 |
return 'uk-width-1-2@l uk-width-1-1@m uk-width-1-1'; |
|
536 |
} |
|
537 |
} |
|
538 |
|
|
539 |
public getChartClassBySize(size: IndicatorSize) { |
|
540 |
if(size === 'small') { |
|
541 |
return 'uk-width-1-3@xl uk-width-1-2@m uk-width-1-1'; |
|
542 |
} else if(size === 'medium') { |
|
543 |
return 'uk-width-1-2@l uk-width-1-1'; |
|
544 |
} else { |
|
545 |
return 'uk-width-1-1'; |
|
546 |
} |
|
547 |
} |
|
528 | 548 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/utils/indicator-utils.ts | ||
---|---|---|
171 | 171 |
basicChartTypes:IndicatorPathType[] =["pie", "line", "column", "bar"]; |
172 | 172 |
defaultChartType:IndicatorPathType = "other"; |
173 | 173 |
indicatorSizes: Option[] = [ |
174 |
{value: 'small', label: 'Small'}, |
|
174 |
{value: 'small', label: 'Small(Enabled only for large screens)'},
|
|
175 | 175 |
{value: 'medium', label: 'Medium'}, |
176 | 176 |
{value: 'large', label: 'Large'} |
177 | 177 |
]; |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/manageStakeholders/manageStakeholders.component.ts | ||
---|---|---|
203 | 203 |
this.index = (this.stakeholder) ? this.stakeholders.findIndex(value => value._id === this.stakeholder._id) : -1; |
204 | 204 |
} |
205 | 205 |
this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, [this.stakeholder._id]).subscribe(() => { |
206 |
UIkit.notification(this.stakeholder.name+ ' has been successfully deleted', {
|
|
206 |
UIkit.notification(this.stakeholder.name+ ' has been <b>successfully deleted</b>', {
|
|
207 | 207 |
status: 'success', |
208 |
timeout: 3000,
|
|
209 |
pos: 'top-left'
|
|
208 |
timeout: 6000,
|
|
209 |
pos: 'bottom-right'
|
|
210 | 210 |
}); |
211 | 211 |
if (!this.stakeholder.defaultId) { |
212 | 212 |
this.defaultStakeholders.splice(this.index, 1); |
... | ... | |
216 | 216 |
}, error => { |
217 | 217 |
UIkit.notification('An error has occurred. Please try again later', { |
218 | 218 |
status: 'danger', |
219 |
timeout: 3000,
|
|
220 |
pos: 'top-left'
|
|
219 |
timeout: 6000,
|
|
220 |
pos: 'bottom-right'
|
|
221 | 221 |
}); |
222 | 222 |
})); |
223 | 223 |
} |
... | ... | |
228 | 228 |
]; |
229 | 229 |
this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => { |
230 | 230 |
stakeholder.visibility = visibility; |
231 |
UIkit.notification(stakeholder.name+ '\'s status has been successfully changed to ' + stakeholder.visibility.toLowerCase(), {
|
|
231 |
UIkit.notification(stakeholder.name+ '\'s status has been <b>successfully changed</b> to ' + stakeholder.visibility.toLowerCase(), {
|
|
232 | 232 |
status: 'success', |
233 |
timeout: 3000,
|
|
234 |
pos: 'top-left'
|
|
233 |
timeout: 6000,
|
|
234 |
pos: 'bottom-right'
|
|
235 | 235 |
}); |
236 | 236 |
}, error => { |
237 | 237 |
UIkit.notification('An error has occurred. Please try again later', { |
238 | 238 |
status: 'danger', |
239 |
timeout: 3000,
|
|
240 |
pos: 'top-left'
|
|
239 |
timeout: 6000,
|
|
240 |
pos: 'bottom-right'
|
|
241 | 241 |
}); |
242 | 242 |
})); |
243 | 243 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/general/edit-stakeholder/edit-stakeholder.component.ts | ||
---|---|---|
269 | 269 |
this.removePhoto(); |
270 | 270 |
this.subscriptions.push(this.stakeholderService.buildStakeholder(this.properties.monitorServiceAPIURL, |
271 | 271 |
this.stakeholderFb.value).subscribe(stakeholder => { |
272 |
UIkit.notification(stakeholder.name + '\'s has been successfully created', {
|
|
272 |
UIkit.notification(stakeholder.name + '\'s has been <b>successfully created</b>', {
|
|
273 | 273 |
status: 'success', |
274 |
timeout: 3000,
|
|
275 |
pos: 'top-left'
|
|
274 |
timeout: 6000,
|
|
275 |
pos: 'bottom-right'
|
|
276 | 276 |
}); |
277 | 277 |
callback(stakeholder); |
278 | 278 |
}, error => { |
279 | 279 |
UIkit.notification('An error has occurred. Please try again later', { |
280 | 280 |
status: 'danger', |
281 |
timeout: 3000,
|
|
282 |
pos: 'top-left'
|
|
281 |
timeout: 6000,
|
|
282 |
pos: 'bottom-right'
|
|
283 | 283 |
}); |
284 | 284 |
if (errorCallback) { |
285 | 285 |
errorCallback(error) |
... | ... | |
292 | 292 |
this.stakeholderFb.get('index_name').enable(); |
293 | 293 |
this.stakeholderFb.get('index_shortName').enable(); |
294 | 294 |
this.subscriptions.push(this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => { |
295 |
UIkit.notification(stakeholder.name + '\'s has been successfully saved', {
|
|
295 |
UIkit.notification(stakeholder.name + '\'s has been <b>successfully saved</b>', {
|
|
296 | 296 |
status: 'success', |
297 |
timeout: 3000,
|
|
298 |
pos: 'top-left'
|
|
297 |
timeout: 6000,
|
|
298 |
pos: 'bottom-right'
|
|
299 | 299 |
}); |
300 | 300 |
callback(stakeholder); |
301 | 301 |
}, error => { |
302 | 302 |
UIkit.notification('An error has occurred. Please try again later', { |
303 | 303 |
status: 'danger', |
304 |
timeout: 3000,
|
|
305 |
pos: 'top-left'
|
|
304 |
timeout: 6000,
|
|
305 |
pos: 'bottom-right'
|
|
306 | 306 |
}); |
307 | 307 |
})); |
308 | 308 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/topic.component.html | ||
---|---|---|
54 | 54 |
<li class="uk-margin-top" [class.uk-visible-toggle]="open"> |
55 | 55 |
<span (click)="editTopicOpen(-1); $event.preventDefault()" |
56 | 56 |
class="clickable uk-flex uk-flex-middle uk-flex-center"> |
57 |
<span class="uk-icon-button small portal-icon-button" [class.uk-margin-left]="open">
|
|
57 |
<span class="uk-icon-button small portal-icon-button"> |
|
58 | 58 |
<icon name="add"></icon> |
59 | 59 |
</span> |
60 | 60 |
<span class="uk-hidden-hover space" [class.uk-hidden]="!open"> Create new topic</span> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/indicators.component.html | ||
---|---|---|
43 | 43 |
</div> |
44 | 44 |
<ng-template ngFor [ngForOf]="number.indicators" let-indicator let-j="index"> |
45 | 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'" |
|
46 |
[ngClass]="getNumberClassBySize(indicator.width)" |
|
49 | 47 |
[class.disable-sortable]="!canReorder" |
50 | 48 |
[class.uk-sortable-nodrag]="!canReorder"> |
51 | 49 |
<div class="uk-card uk-card-default uk-card-body uk-position-relative" [class.uk-card-hover]="canReorder"> |
... | ... | |
81 | 79 |
<h3 *ngIf="numberResults.get(i + '-' + j)" class="uk-margin-medium-top uk-text-center uk-text-bold"> |
82 | 80 |
<span>{{numberResults.get(i + '-' + j) | number}}</span> |
83 | 81 |
</h3> |
84 |
<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>
|
|
82 |
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
|
85 | 83 |
</div> |
86 | 84 |
</div> |
87 | 85 |
</div> |
88 | 86 |
</ng-template> |
89 | 87 |
<div class="disable-sortable uk-sortable-nodrag uk-width-1-1"> |
90 |
<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" |
|
91 |
(click)="editNumberIndicatorOpen(number)"> |
|
92 |
<div> |
|
93 |
<h5 class="uk-text-bold"> |
|
94 |
Create a new number Indicator |
|
95 |
</h5> |
|
96 |
<div class="uk-flex uk-flex-center uk-text-secondary uk-margin-large"> |
|
97 |
<icon name="add" ratio="5"></icon> |
|
88 |
<div class="uk-grid uk-grid-small" uk-grid> |
|
89 |
<div class="uk-width-1-4@xl uk-width-1-3@l uk-width-1-2@m uk-width-1-1"> |
|
90 |
<div class="uk-card uk-card-default uk-card-body clickable" (click)="editNumberIndicatorOpen(number)"> |
|
91 |
<h5 class="uk-text-bold"> |
|
92 |
Create a new number Indicator |
|
93 |
</h5> |
|
94 |
<div class="uk-flex uk-flex-center uk-text-secondary uk-margin-medium-top"> |
|
95 |
<icon name="add" ratio="5"></icon> |
|
96 |
</div> |
|
98 | 97 |
</div> |
99 | 98 |
</div> |
100 | 99 |
</div> |
... | ... | |
147 | 146 |
</div> |
148 | 147 |
<ng-template ngFor [ngForOf]="chart.indicators" let-indicator let-j="index"> |
149 | 148 |
<div *ngIf="indicator" [id]="indicator._id" |
150 |
[class.uk-width-1-3@m]="indicator.width === 'small'" |
|
151 |
[class.uk-width-1-2@m]=" indicator.width === 'medium'" |
|
152 |
[class.uk-width-1-1@m]="indicator.width === 'large'" |
|
149 |
[ngClass]="getChartClassBySize(indicator.width)" |
|
153 | 150 |
[class.disable-sortable]="!canReorder" |
154 | 151 |
[class.uk-sortable-nodrag]="!canReorder"> |
155 | 152 |
<div class="uk-card uk-card-default uk-card-body uk-position-relative" [class.uk-card-hover]="canReorder"> |
... | ... | |
185 | 182 |
<iframe *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source !== 'image' && |
186 | 183 |
safeUrls.get(indicatorUtils.getFullUrl(stakeholder, indicator.indicatorPaths[0]))" |
187 | 184 |
[src]="safeUrls.get(indicatorUtils.getFullUrl(stakeholder, indicator.indicatorPaths[0]))" |
188 |
[class]="' uk-width-1-1 uk-height-' +
|
|
185 |
[class]="' uk-width-1-1 uk-height-' + |
|
189 | 186 |
(indicator.height?indicator.height.toLowerCase():'medium')"></iframe> |
190 | 187 |
<!-- <div>Uncomment for iframes preview</div>--> |
191 | 188 |
<div *ngIf="indicator.indicatorPaths[0] && indicator.indicatorPaths[0].source === 'image'"> |
192 | 189 |
<img [class]="' uk-width-1-1 uk-height-' + |
193 |
(indicator.height?indicator.height.toLowerCase():'medium')" [src]="indicator.indicatorPaths[0].url"> |
|
190 |
(indicator.height?indicator.height.toLowerCase():'medium')" |
|
191 |
[src]="indicator.indicatorPaths[0].url"> |
|
194 | 192 |
</div> |
195 |
<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>
|
|
193 |
<!--<ng-container *ngTemplateOutlet="description; context: {indicator:indicator}"></ng-container>-->
|
|
196 | 194 |
</div> |
197 | 195 |
</div> |
198 | 196 |
</div> |
199 | 197 |
</ng-template> |
200 | 198 |
<div class="disable-sortable uk-sortable-nodrag uk-width-1-1"> |
201 |
<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" |
|
202 |
(click)="editChartIndicatorOpen(chart)"> |
|
203 |
<div> |
|
204 |
<h5 class="uk-text-bold"> |
|
205 |
Create a custom indicator |
|
206 |
</h5> |
|
207 |
<div class="uk-text-muted uk-text-small"> |
|
208 |
Use our advance tool to create a custom Indicator that suit the needs of your funding |
|
209 |
KPI's. |
|
199 |
<div class="uk-grid uk-grid-small" uk-grid> |
|
200 |
<div class="uk-width-1-3@xl uk-width-1-2@m uk-width-1-1"> |
|
201 |
<div class=" uk-card uk-card-default uk-card-body clickable" (click)="editChartIndicatorOpen(chart)"> |
|
202 |
<h5 class="uk-text-bold"> |
|
203 |
Create a custom indicator |
|
204 |
</h5> |
|
205 |
<div class="uk-text-muted uk-text-small"> |
|
206 |
Use our advance tool to create a custom Indicator that suit the needs of your funding |
|
207 |
KPI's. |
|
208 |
</div> |
|
209 |
<div class="uk-flex uk-flex-center uk-text-secondary uk-margin-medium-top"> |
|
210 |
<icon name="add" ratio="5"></icon> |
|
211 |
</div> |
|
210 | 212 |
</div> |
211 |
<div class="uk-flex uk-flex-center uk-text-secondary uk-margin-large"> |
|
212 |
<icon name="add" ratio="5"></icon> |
|
213 |
</div> |
|
214 | 213 |
</div> |
215 | 214 |
</div> |
216 | 215 |
</div> |
... | ... | |
267 | 266 |
[class.uk-text-danger]="numberIndicatorPaths.at(i).get('result').invalid && numberIndicatorPaths.at(i).get('result').errors.required"> |
268 | 267 |
<span>JSON Path</span> |
269 | 268 |
</h6> |
270 |
<div *ngIf="numberIndicatorPaths.at(i).get('result').invalid && numberIndicatorPaths.at(i).get('result').errors.required"> |
|
269 |
<div |
|
270 |
*ngIf="numberIndicatorPaths.at(i).get('result').invalid && numberIndicatorPaths.at(i).get('result').errors.required"> |
|
271 | 271 |
<div class="uk-text-danger uk-text-small"> |
272 | 272 |
This JSON path is not valid or the result has not been calculated yet. |
273 | 273 |
Please press calculate on box below to see the result. |
... | ... | |
302 | 302 |
<div class="uk-width-1-1 uk-flex uk-flex-center"> |
303 | 303 |
<div class="uk-flex uk-position-relative"> |
304 | 304 |
<span class="uk-padding number number-preview"> |
305 |
<span *ngIf="numberIndicatorPaths.at(i).get('result').valid">{{numberIndicatorPaths.at(i).get('result').value | number}}</span> |
|
305 |
<span |
|
306 |
*ngIf="numberIndicatorPaths.at(i).get('result').valid">{{numberIndicatorPaths.at(i).get('result').value | number}}</span> |
|
306 | 307 |
</span> |
307 |
<div *ngIf="numberIndicatorPaths.at(i).get('result').invalid" class="uk-width-1-1 uk-height-1-1 refresh-indicator"> |
|
308 |
<div *ngIf="numberIndicatorPaths.at(i).get('result').invalid" |
|
309 |
class="uk-width-1-1 uk-height-1-1 refresh-indicator"> |
|
308 | 310 |
<div class="uk-position-relative uk-height-1-1"> |
309 | 311 |
<div class="uk-position-center uk-text-center clickable uk-text-small" |
310 | 312 |
(click)="validateJsonPath(i)"> |
... | ... | |
331 | 333 |
<div *ngIf="chartIndicatorFb" class="uk-padding-small" [formGroup]="chartIndicatorFb"> |
332 | 334 |
<div class="uk-grid" uk-grid> |
333 | 335 |
<div dashboard-input class="uk-width-1-1" [formInput]="chartIndicatorFb.get('name')" label="Title"></div> |
334 |
<div dashboard-input class="uk-width-1-1" *ngIf="stakeholder.defaultId !=-1 && ( (indicator.description &&
|
|
336 |
<div dashboard-input class="uk-width-1-1" *ngIf="stakeholder.defaultId !=-1 && ( (indicator.description && |
|
335 | 337 |
indicator.description.length > 0) || !stakeholder.defaultId)" |
336 | 338 |
[formInput]="chartIndicatorFb.get('description')" |
337 | 339 |
label="Default Description" type="textarea"> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/topic.component.ts | ||
---|---|---|
474 | 474 |
callback(saveElement); |
475 | 475 |
UIkit.notification(message, { |
476 | 476 |
status: 'success', |
477 |
timeout: 3000,
|
|
478 |
pos: 'top-left'
|
|
477 |
timeout: 6000,
|
|
478 |
pos: 'bottom-right'
|
|
479 | 479 |
}); |
480 | 480 |
if (redirect) { |
481 | 481 |
this.router.navigate(['../' + saveElement.alias], { |
... | ... | |
485 | 485 |
}, error => { |
486 | 486 |
UIkit.notification(error.error.message, { |
487 | 487 |
status: 'danger', |
488 |
timeout: 3000,
|
|
489 |
pos: 'top-left'
|
|
488 |
timeout: 6000,
|
|
489 |
pos: 'bottom-right'
|
|
490 | 490 |
}); |
491 | 491 |
})); |
492 | 492 |
} |
... | ... | |
497 | 497 |
this.stakeholderService.setStakeholder(this.stakeholder); |
498 | 498 |
UIkit.notification(message, { |
499 | 499 |
status: 'success', |
500 |
timeout: 3000,
|
|
501 |
pos: 'top-left'
|
|
500 |
timeout: 6000,
|
|
501 |
pos: 'bottom-right'
|
|
502 | 502 |
}); |
503 | 503 |
if (redirect) { |
504 | 504 |
this.back(); |
... | ... | |
506 | 506 |
}, error => { |
507 | 507 |
UIkit.notification(error.error.message, { |
508 | 508 |
status: 'danger', |
509 |
timeout: 3000,
|
|
510 |
pos: 'top-left'
|
|
509 |
timeout: 6000,
|
|
510 |
pos: 'bottom-right'
|
|
511 | 511 |
}); |
512 | 512 |
})); |
513 | 513 |
} |
... | ... | |
526 | 526 |
this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => { |
527 | 527 |
element.visibility = visibility; |
528 | 528 |
this.stakeholderService.setStakeholder(this.stakeholder); |
529 |
UIkit.notification(StringUtils.capitalize(this.type) + ' has been successfully changed to ' + element.visibility.toLowerCase(), {
|
|
529 |
UIkit.notification(StringUtils.capitalize(this.type) + ' has been <b>successfully changed</b> to ' + element.visibility.toLowerCase(), {
|
|
530 | 530 |
status: 'success', |
531 |
timeout: 3000,
|
|
532 |
pos: 'top-left'
|
|
531 |
timeout: 6000,
|
|
532 |
pos: 'bottom-right'
|
|
533 | 533 |
}); |
534 | 534 |
}, error => { |
535 | 535 |
UIkit.notification(error.error.message, { |
536 | 536 |
status: 'danger', |
537 |
timeout: 3000,
|
|
538 |
pos: 'top-left'
|
|
537 |
timeout: 6000,
|
|
538 |
pos: 'bottom-right'
|
|
539 | 539 |
}); |
540 | 540 |
})); |
541 | 541 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/indicators.component.ts | ||
---|---|---|
11 | 11 |
} from "@angular/core"; |
12 | 12 |
import { |
13 | 13 |
Indicator, |
14 |
IndicatorPath, |
|
14 |
IndicatorPath, IndicatorSize,
|
|
15 | 15 |
IndicatorType, |
16 | 16 |
Section, |
17 | 17 |
Stakeholder, |
... | ... | |
408 | 408 |
return this.chartIndicatorFb.get('indicatorPaths') as FormArray; |
409 | 409 |
} |
410 | 410 |
|
411 |
public getNumberClassBySize(size: IndicatorSize) { |
|
412 |
if(size === 'small') { |
|
413 |
return 'uk-width-1-4@xl uk-width-1-3@l uk-width-1-2@m uk-width-1-1'; |
|
414 |
} else if(size === 'medium') { |
|
415 |
return 'uk-width-1-3@l uk-width-1-2@m uk-width-1-1'; |
|
416 |
} else { |
|
417 |
return 'uk-width-1-2@l uk-width-1-1@m uk-width-1-1'; |
|
418 |
} |
|
419 |
} |
|
420 |
|
|
421 |
public getChartClassBySize(size: IndicatorSize) { |
|
422 |
if(size === 'small') { |
|
423 |
return 'uk-width-1-3@xl uk-width-1-2@m uk-width-1-1'; |
|
424 |
} else if(size === 'medium') { |
|
425 |
return 'uk-width-1-2@l uk-width-1-1'; |
|
426 |
} else { |
|
427 |
return 'uk-width-1-1'; |
|
428 |
} |
|
429 |
} |
|
430 |
|
|
411 | 431 |
public addJsonPath(index: number) { |
412 | 432 |
if (index == 0 && this.getJsonPath(index).getRawValue()[index].indexOf(",") != -1) { |
413 | 433 |
//if in the first path there are more than one paaths comma separated, split them and autogenerate the forms |
... | ... | |
792 | 812 |
this.filterNumbers(); |
793 | 813 |
this.numberIndicatorFb = null; |
794 | 814 |
} |
795 |
UIkit.notification('Indicator has been successfully saved', {
|
|
815 |
UIkit.notification('Indicator has been <b>successfully saved</b>', {
|
|
796 | 816 |
status: 'success', |
797 |
timeout: 3000,
|
|
798 |
pos: 'top-left'
|
|
817 |
timeout: 6000,
|
|
818 |
pos: 'bottom-right'
|
|
799 | 819 |
}); |
800 | 820 |
this.editing = false; |
801 | 821 |
}, error => { |
802 | 822 |
this.chartIndicatorFb = null; |
803 | 823 |
UIkit.notification(error.error.message, { |
804 | 824 |
status: 'danger', |
805 |
timeout: 3000,
|
|
806 |
pos: 'top-left'
|
|
825 |
timeout: 6000,
|
|
826 |
pos: 'bottom-right'
|
|
807 | 827 |
}); |
808 | 828 |
this.editing = false; |
809 | 829 |
})); |
... | ... | |
894 | 914 |
this.numbers.find(section => section._id === this.section._id).indicators.splice(this.index, 1); |
895 | 915 |
this.filterNumbers(); |
896 | 916 |
} |
897 |
UIkit.notification('Indicator has been successfully deleted', {
|
|
917 |
UIkit.notification('Indicator has been <b>successfully deleted</b>', {
|
|
898 | 918 |
status: 'success', |
899 |
timeout: 3000,
|
|
900 |
pos: 'top-left'
|
|
919 |
timeout: 6000,
|
|
920 |
pos: 'bottom-right'
|
|
901 | 921 |
}); |
902 | 922 |
this.editing = false; |
903 | 923 |
}, error => { |
904 | 924 |
UIkit.notification(error.error.message, { |
905 | 925 |
status: 'danger', |
906 |
timeout: 3000,
|
|
907 |
pos: 'top-left'
|
|
926 |
timeout: 6000,
|
|
927 |
pos: 'bottom-right'
|
|
908 | 928 |
}); |
909 | 929 |
this.editing = false; |
910 | 930 |
})); |
... | ... | |
922 | 942 |
]; |
923 | 943 |
this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => { |
924 | 944 |
indicator.visibility = visibility; |
925 |
UIkit.notification('Indicator has been successfully changed to ' + indicator.visibility.toLowerCase(), {
|
|
945 |
UIkit.notification('Indicator has been <b>successfully changed</b> to ' + indicator.visibility.toLowerCase(), {
|
|
926 | 946 |
status: 'success', |
927 |
timeout: 3000,
|
|
928 |
pos: 'top-left'
|
|
947 |
timeout: 6000,
|
|
948 |
pos: 'bottom-right'
|
|
929 | 949 |
}); |
930 | 950 |
this.editing = false; |
931 | 951 |
}, error => { |
932 | 952 |
UIkit.notification('An error has been occurred. Try again later', { |
933 | 953 |
status: 'danger', |
934 |
timeout: 3000,
|
|
935 |
pos: 'top-left'
|
|
954 |
timeout: 6000,
|
|
955 |
pos: 'bottom-right'
|
|
936 | 956 |
}); |
937 | 957 |
this.editing = false; |
938 | 958 |
})); |
... | ... | |
950 | 970 |
]; |
951 | 971 |
this.stakeholderService.toggleAccess(this.properties.monitorServiceAPIURL, path).subscribe(visibility => { |
952 | 972 |
indicator.visibility = visibility; |
953 |
UIkit.notification('Indicator has been successfully changed to ' + (visibility?'public':'private'), {
|
|
973 |
UIkit.notification('Indicator has been <b>successfully changed</b> to ' + (visibility?'public':'private'), {
|
|
954 | 974 |
status: 'success', |
955 |
timeout: 3000,
|
|
956 |
pos: 'top-left'
|
|
975 |
timeout: 6000,
|
|
976 |
pos: 'bottom-right'
|
|
957 | 977 |
}); |
958 | 978 |
this.editing = false; |
959 | 979 |
}, error => { |
960 | 980 |
UIkit.notification(error.error.message, { |
961 | 981 |
status: 'danger', |
962 |
timeout: 3000,
|
|
963 |
pos: 'top-left'
|
|
982 |
timeout: 6000,
|
|
983 |
pos: 'bottom-right'
|
|
964 | 984 |
}); |
965 | 985 |
this.editing = false; |
966 | 986 |
}); |
... | ... | |
983 | 1003 |
this.filterNumbers(); |
984 | 1004 |
} |
985 | 1005 |
this.initReorder(); |
986 |
UIkit.notification('Section has been successfully saved', {
|
|
1006 |
UIkit.notification('Section has been <b>successfully saved</b>', {
|
|
987 | 1007 |
status: 'success', |
988 |
timeout: 3000,
|
|
989 |
pos: 'top-left'
|
|
1008 |
timeout: 6000,
|
|
1009 |
pos: 'bottom-right'
|
|
990 | 1010 |
}); |
991 | 1011 |
this.editing = false; |
992 | 1012 |
}, error => { |
993 | 1013 |
UIkit.notification(error.error.message, { |
994 | 1014 |
status: 'danger', |
995 |
timeout: 3000,
|
|
996 |
pos: 'top-left'
|
|
1015 |
timeout: 6000,
|
|
1016 |
pos: 'bottom-right'
|
|
997 | 1017 |
}); |
998 | 1018 |
this.editing = false; |
999 | 1019 |
})); |
... | ... | |
1025 | 1045 |
this.filterNumbers(); |
1026 | 1046 |
} |
1027 | 1047 |
this.initReorder(); |
1028 |
UIkit.notification('Section has been successfully created', {
|
|
1048 |
UIkit.notification('Section has been <b>successfully created</b>', {
|
|
1029 | 1049 |
status: 'success', |
1030 |
timeout: 3000,
|
|
1031 |
pos: 'top-left'
|
|
1050 |
timeout: 6000,
|
|
1051 |
pos: 'bottom-right'
|
|
1032 | 1052 |
}); |
1033 | 1053 |
this.editing = false; |
1034 | 1054 |
}, error => { |
1035 | 1055 |
UIkit.notification(error.error.message, { |
1036 | 1056 |
status: 'danger', |
1037 |
timeout: 3000,
|
|
1038 |
pos: 'top-left'
|
|
1057 |
timeout: 6000,
|
|
1058 |
pos: 'bottom-right'
|
|
1039 | 1059 |
}); |
1040 | 1060 |
this.editing = false; |
1041 | 1061 |
})); |
... | ... | |
1096 | 1116 |
this.filterNumbers(); |
1097 | 1117 |
} |
1098 | 1118 |
this.initReorder(); |
1099 |
UIkit.notification('Section has been successfully deleted', {
|
|
1119 |
UIkit.notification('Section has been <b>successfully deleted</b>', {
|
|
1100 | 1120 |
status: 'success', |
1101 |
timeout: 3000,
|
|
1102 |
pos: 'top-left'
|
|
1121 |
timeout: 6000,
|
|
1122 |
pos: 'bottom-right'
|
|
1103 | 1123 |
}); |
1104 | 1124 |
this.editing = false; |
1105 | 1125 |
}, error => { |
1106 | 1126 |
UIkit.notification(error.error.message, { |
1107 | 1127 |
status: 'danger', |
1108 |
timeout: 3000,
|
|
1109 |
pos: 'top-left'
|
|
1128 |
timeout: 6000,
|
|
1129 |
pos: 'bottom-right'
|
|
1110 | 1130 |
}); |
1111 | 1131 |
this.editing = false; |
1112 | 1132 |
})); |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/assets/dashboard-theme/tabs-pills.css | ||
---|---|---|
14 | 14 |
|
15 | 15 |
.uk-subnav-pill > * > :first-child { |
16 | 16 |
text-transform: none; |
17 |
font-size: 13px;
|
|
17 |
font-size: var(--sidebar-font-size);
|
|
18 | 18 |
color: var(--text-color); |
19 | 19 |
} |
20 | 20 |
|
... | ... | |
35 | 35 |
|
36 | 36 |
.uk-tab > li > a { |
37 | 37 |
color: rgb(var(--text-color-rgb), 0.5) !important; |
38 |
font-size: var(--small-font-size); |
|
39 | 38 |
font-family: "Open Sans", sans-serif !important; |
40 | 39 |
text-transform: capitalize; |
41 | 40 |
} |
42 | 41 |
|
42 |
.uk-tab > li > * { |
|
43 |
font-size: var(--small-font-size); |
|
44 |
} |
|
45 |
|
|
43 | 46 |
.uk-tab > li:hover > a { |
44 | 47 |
color: var(--secondary-color) !important; |
45 | 48 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/assets/dashboard-theme/structure.css | ||
---|---|---|
50 | 50 |
padding: 5px 0; |
51 | 51 |
} |
52 | 52 |
|
53 |
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li > a, #sidebar_main .special_section ul:not(.uk-dropdown-nav) > li > a { |
|
53 |
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li > *, |
|
54 |
#sidebar_main .special_section ul:not(.uk-dropdown-nav) > li > a { |
|
55 |
font-size: var(--sidebar-font-size); |
|
56 |
} |
|
57 |
|
|
58 |
#sidebar_main .menu_section ul:not(.uk-dropdown-nav) > li > a, |
|
59 |
#sidebar_main .special_section ul:not(.uk-dropdown-nav) > li > a { |
|
54 | 60 |
display: block; |
55 |
font-size: var(--sidebar-font-size); |
|
56 | 61 |
color: rgba(var(--text-color-rgb), 0.5); |
57 | 62 |
} |
58 | 63 |
|
... | ... | |
85 | 90 |
transition-property: left; |
86 | 91 |
} |
87 | 92 |
|
88 |
.sidebar_main_swipe #page_content, .sidebar_main_swipe openaire-user > user > *, |
|
93 |
.sidebar_main_swipe #page_content, |
|
94 |
.sidebar_main_swipe openaire-user > user > *, |
|
89 | 95 |
.sidebar_main_swipe openaire-error > * { |
90 | 96 |
padding-left: var(--sidebar-width); |
91 | 97 |
padding-top: var(--header-height); |
... | ... | |
96 | 102 |
-o-transition: 0.5s; |
97 | 103 |
} |
98 | 104 |
|
105 |
.sidebar_main_swipe #page_content .message { |
|
106 |
padding-left: var(--sidebar-width); |
|
107 |
} |
|
108 |
|
|
99 | 109 |
.sidebar_main_swipe bottom > * { |
100 | 110 |
padding-left: var(--sidebar-width); |
101 | 111 |
transition: 0.5s; |
... | ... | |
124 | 134 |
|
125 | 135 |
/*Sidebar mini*/ |
126 | 136 |
.sidebar_main_swipe.sidebar_mini #page_content, |
137 |
.sidebar_main_swipe.sidebar_mini #page_content .message, |
|
127 | 138 |
.sidebar_main_swipe.sidebar_mini openaire-user > user > *, |
128 | 139 |
.sidebar_main_swipe.sidebar_mini openaire-error > *, |
129 | 140 |
.sidebar_main_swipe.sidebar_mini bottom > * { |
... | ... | |
144 | 155 |
} |
145 | 156 |
|
146 | 157 |
#page_content { |
147 |
min-height: calc(100vh - var(--header-height));
|
|
158 |
min-height: calc(70vh - var(--header-height));
|
|
148 | 159 |
background-color: var(--background-color); |
160 |
position: relative; |
|
149 | 161 |
} |
150 | 162 |
|
163 |
#page_content .message { |
|
164 |
top: 50%; |
|
165 |
left: 50%; |
|
166 |
transform: translate(-50%, -50%); |
|
167 |
position: absolute; |
|
168 |
} |
|
169 |
|
|
151 | 170 |
#page_content_header { |
152 | 171 |
position: fixed; |
153 | 172 |
background: var(--background-color); |
Also available in: Unified diff
[Monitor Dashboard | Trunk]: Some UI changes