Project

General

Profile

1
<div id="page_content">
2
  <div id="page_content_inner">
3
    <div class="uk-padding-small md-bg-white" uk-grid>
4
      <div *ngIf="filters" class="uk-width-2-3@m uk-width-1-1 uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
5
        <div>
6
          <div dashboard-input [formInput]="filters.get('status')"
7
               type="select" [options]="[all].concat(stakeholderUtils.visibility)"
8
               label="Visibility"></div>
9
        </div>
10
      </div>
11
      <div class="uk-width-expand@m uk-width-1-1 uk-flex uk-flex-middle uk-flex-right">
12
        <div class="uk-inline uk-width-medium">
13
          <span class="uk-position-center-right"><i class="material-icons">search</i></span>
14
          <div dashboard-input [formInput]="filters.get('keyword')" label="Locate profile"></div>
15
        </div>
16
      </div>
17
    </div>
18
    <h6 class="main">Default Profiles</h6>
19
    <div class = "uk-child-width-1-4@m uk-child-width-1-3@s uk-grid-match uk-grid-small"
20
         uk-grid>
21
      <loading *ngIf="loading"></loading>
22
      <ng-template ngFor [ngForOf]="displayDefaultStakeholders" let-stakeholder let-i="index">
23
        <ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
24
      </ng-template>
25
      <div *ngIf="!loading">
26
        <ng-container *ngTemplateOutlet="newBox; context:
27
        {text:'Create a new default profile.', isDefault:true}"></ng-container>
28
      </div>
29
    </div>
30
    <h4 class="uk-text-bold">Profiles</h4>
31
    <div class="uk-grid-match uk-grid-small uk-child-width-1-4@m uk-child-width-1-3@s"
32
         uk-grid>
33
      <loading *ngIf="loading"></loading>
34
      <ng-template ngFor [ngForOf]="displayStakeholders" let-stakeholder let-i="index">
35
        <ng-container *ngTemplateOutlet="stakeholderBox; context: {stakeholder:stakeholder}"></ng-container>
36
      </ng-template>
37
      <div *ngIf="!loading">
38
        <ng-container *ngTemplateOutlet="newBox; context:
39
        {text:'Create a new profile by selecting the type (Funder, Organization, Research Initiative or Project) and '+
40
'                select indicators based on a default or a blank profile.', isDefault:false}"></ng-container>
41
      </div>
42
    </div>
43
  </div>
44
</div>
45

    
46
<ng-template #stakeholderBox let-stakeholder="stakeholder" >
47
  <div>
48
    <div *ngIf="stakeholder" class="uk-card uk-card-default">
49
      <div class="uk-padding-small uk-padding-remove-bottom">
50
        <div class="md-card-toolbar-actions uk-float-right"  >
51
          <div class="md-card-dropdown uk-inline clickable">
52
            <i uk-icon="more-vertical"
53
               (click)="$event.stopPropagation();$event.preventDefault()"></i>
54
            <div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
55
              <ul class="uk-nav uk-dropdown-nav">
56
                <li><a (click)="$event.stopPropagation();editStakeholder(stakeholder, true);hide(element);$event.preventDefault()">Edit</a>
57
                </li>
58
                <ng-template ngFor [ngForOf]="stakeholderUtils.visibility" let-v>
59
                  <li *ngIf="stakeholder.visibility != v.value"><a (click)="changeStakeholderStatus(stakeholder, v.value);
60
                hide(element)">
61
                    {{'Make ' +  v.label.toLowerCase()}}</a>
62
                  </li>
63
                </ng-template>
64
                <hr *ngIf="isAdministrator()" class="uk-nav-divider">
65
                <li *ngIf="isAdministrator()"><a
66
                  (click)="$event.stopPropagation();deleteStakeholderOpen(stakeholder);hide(element);$event.preventDefault()">Delete</a>
67
                </li>
68
              </ul>
69
            </div>
70
          </div>
71
        </div>
72
        <div class="md-card-dropdown uk-inline clickable">
73
          <i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get(stakeholder.visibility)"
74
             (click)="$event.stopPropagation();$event.preventDefault()"></i>
75
          <div #element uk-dropdown="mode: click; pos: bottom-right; delay-hide: 0; flip: false">
76
            <ul class="uk-nav uk-dropdown-nav">
77
              <li *ngFor="let v of stakeholderUtils.visibility" [class.selectedVisibility]="v.value ==
78
              stakeholder.visibility">
79
              <a
80
                *ngIf="stakeholder.visibility != v.value"
81
                (click)="$event.stopPropagation();changeStakeholderStatus(stakeholder,v.value);hide(element);$event.preventDefault()">
82
                <i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}}</a>
83
              <a *ngIf="stakeholder.visibility == v.value">
84
                <i [attr.uk-icon]="stakeholderUtils.isPublicIcon.get( v.value)"></i> {{v.label}} <icon
85
                customClass="uk-text-secondary uk-float-right" [ratio]="0.5"
86
                name="bullet"></icon></a>
87
              </li>
88

    
89
            </ul>
90
          </div>
91
        </div>
92
      </div>
93
      <div class="uk-padding-small uk-padding-remove-top">
94
        <a class="" [routerLink]="stakeholder.alias">
95
          <div class="uk-flex uk-flex-center" uk-grid>
96
            {{stakeholder.name}}
97
          </div>
98
        </a>
99
      </div>
100
    </div>
101
  </div>
102
</ng-template>
103

    
104
<ng-template #newBox let-text="text"  let-isDefault="isDefault" >
105
  <div *ngIf="!loading">
106
    <div class="uk-card uk-card-default clickable" (click)="editStakeholder(null, isDefault)">
107
      <div class="uk-card-body">
108
        <div uk-grid>
109
          <div class="uk-width-1-1">
110
            {{text}}
111
          </div>
112
          <div class="uk-width-1-1 uk-flex uk-flex-center">
113
            <i class="material-icons md-48" uk-icon="plus"></i>
114
          </div>
115
        </div>
116
      </div>
117
    </div>
118
  </div>
119
</ng-template>
120
<modal-alert #editStakeholderModal
121
             id="edit_modal" [large]="true"
122
             (alertOutput)="editStakeholderComponent.save(callback)"
123
             [okDisabled]="editStakeholderComponent.disabled">
124
  <edit-stakeholder #editStakeholderComponent [maxHeight]="'70vh'"></edit-stakeholder>
125
</modal-alert>
126
<modal-alert #deleteStakeholderModal (alertOutput)="deleteStakeholder()"></modal-alert>
(2-2/4)