Project

General

Profile

1
import {Component, ElementRef, HostListener, Input, ViewChild} from '@angular/core';
2
import {ActivatedRoute, Router} from '@angular/router';
3
import {Title, Meta}            from '@angular/platform-browser';
4

    
5
import {PiwikService}           from '../openaireLibrary/utils/piwik/piwik.service';
6
import {EnvProperties}          from '../openaireLibrary/utils/properties/env-properties';
7

    
8
declare var UIkit: any;
9

    
10
@Component({
11
    selector: 'community-creation-instructions',
12
    template: `
13
      <div class="image-front-topbar  uk-section-secondary uk-section-overlap uk-position-relative uk-preserve-color" uk-scrollspy="{&quot;target&quot;:&quot;[uk-scrollspy-class]&quot;,&quot;cls&quot;:&quot;uk-animation-fade&quot;,&quot;delay&quot;:false}" tm-header-transparent="light" tm-header-transparent-placeholder="">
14
        <div  style=" min-height: calc(7.89999px + 60vh);"
15
              class=" mainPageSearchForm uk-background-norepeat uk-background-cover uk-section uk-padding-remove-bottom" >
16
          <div class="uk-position-cover" style=""></div>
17
          <div class="uk-position-relative uk-panel">
18
            <div class="uk-container uk-section">
19
              <div>
20
                <h3 class="uk-margin-remove-bottom uk-margin-large-top">Discover the power of OpenAIRE Connect community page builder</h3>
21
                <h5 class="uk-margin-remove-top">Gather all your research in one place</h5>
22

    
23
<!--                <div class="uk-width-medium uk-text-center uk-margin-large-top uk-margin-large-left">-->
24
<!--                  <h5>Contact OpenAIRE team, in order to create your community page</h5>-->
25
<!--                  <div>-->
26
<!--                    <a class="uk-button portal-button" routerLinkActive="router-link-active" routerLink="/contact-us"> CONTACT US</a>-->
27
<!--                  </div>-->
28
<!--                </div>-->
29

    
30
                <div class="uk-width-1-2 uk-inline uk-margin-large-top uk-margin-large-bottom">
31
                    <div class="uk-position-center ">
32
                        <div class="uk-width-medium uk-text-center">
33
                            <h5>Contact OpenAIRE team, in order to create your community page</h5>
34
                            <div>
35
                                <a class="uk-button portal-button" routerLinkActive="router-link-active" routerLink="/contact-us"> CONTACT US</a>
36
                            </div>
37
                        </div>
38
                    </div>
39
                    <br>
40
                </div>
41
              </div>
42
            </div>
43
          </div>
44
        </div>
45
      </div>
46

    
47
      <div>
48
        <div>
49
          <div #adminPortalImage class="uk-margin-bottom uk-margin-top">
50
          <!--div uk-scrollspy="cls: uk-animation-fade uk-animation-reverse; target: > div > div > .uk-card; delay: 1000; repeat: false"-->
51
              <div class="uk-container uk-margin-large-top">
52
                <h3>OpenAIRE Connect community page builder at a glance</h3>
53
                <div class="uk-inline uk-dark" (scroll)="scrollHandler($event)">
54
                  <img  src="assets/admin-portal.png" alt="OpenAIRE" >
55

    
56
                  <div id="logo" class="my-tooltip uk-card uk-card-secondary uk-position-absolute uk-transform-center"
57
                        style="left: 27%; top: 2%" hidden>
58
                    <div class="uk-padding-small uk-text-small uk-text-bold">Your logo goes here</div>
59
                  </div>
60

    
61
                  <div id="configure-profile" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
62
                        style="left: 33%; top: 21%" hidden>
63
                    <div class="uk-padding-small uk-text-small uk-text-bold">Configure your community profile</div>
64
                  </div>
65
                  <div id="connect-with" class="my-tooltip uk-width-1-5 uk-card uk-text-center uk-card-secondary uk-position-absolute uk-transform-center"
66
                        style="left: 56%; top: 18%" hidden>
67
                    <div class="uk-padding-small uk-text-small uk-text-bold">Connect with subjects, projects, content providers & Zenodo communities</div>
68
                  </div>
69
                  <div id="choose-statistics" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
70
                        style="left: 80%; top: 19%" hidden>
71
                    <div class="uk-padding-small uk-text-small uk-text-bold">Choose statistics and charts to be publicly available</div>
72
                  </div>
73

    
74
                  <div id="curate" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
75
                        style="left: 32%; top: 60%" hidden>
76
                    <div class="uk-padding-small uk-text-small uk-text-bold">Curate links of research results</div>
77
                  </div>
78
                  <div id="help-texts" class="my-tooltip uk-width-1-5 uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
79
                        style="left: 56%; top: 59%" hidden>
80
                    <div class="uk-padding-small uk-text-small uk-text-bold">Add help texts in your pages for extra information</div>
81
                  </div>
82
                  <div id="invite" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
83
                        style="left: 80%; top: 60%" hidden>
84
                    <div class="uk-padding-small uk-text-small uk-text-bold">Invite collaborators and users</div>
85
                  </div>
86

    
87

    
88
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Your logo goes here')"-->
89
                  <!--uk-toggle="target: #logo; mode: click"-->
90
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
91
                      style="left: 20%; top: 5%" uk-marker>
92
                    <!--span uk-icon="plus"></span-->
93
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
94
                  </a>
95

    
96
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Configure your community profile') + '; cls: conf-profile'"-->
97
                  <!--class: configure-profile -->
98
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
99
                      style="left: 22%; top: 24%" uk-marker>
100
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
101
                  </a>
102
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Connect with subjects, projects, content providers & Zenodo communities')"-->
103
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
104
                      style="left: 46%; top: 24%" uk-marker>
105
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
106
                  </a>
107
                  <!-- [attr.uk-tooltip]="'title: ' + createTooltip('Choose statistics and charts to be publicly available')"-->
108
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
109
                      style="left: 70%; top: 24%" uk-marker>
110
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
111
                  </a>
112

    
113
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Curate links of research results')"-->
114
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
115
                      style="left: 22%; top: 64%" uk-marker>
116
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
117
                  </a>
118
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Add help texts in your pages for extra information')"-->
119
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
120
                      style="left: 46%; top: 64%" uk-marker>
121
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
122
                  </a>
123
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Invite collaborators and users')"-->
124
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
125
                      style="left: 70%; top: 64%" uk-marker>
126
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
127
                  </a>
128

    
129
                </div>
130
              </div>
131
          </div>
132

    
133
          <div #communityImage class="uk-container uk-margin-large-top">
134
            <h3>Community page</h3>
135
            <div uk-grid uk-grid-match>
136
              <div class="uk-width-1-3 uk-card">
137
                <div class="uk-text-center uk-position-center ">
138
                <p>Contact OpenAIRE team, in order to create your community page</p>
139
                <div>
140
                  <a class="uk-button portal-button" routerLinkActive="router-link-active" routerLink="/contact-us"> CONTACT US</a>
141
                </div>
142
                </div>
143
              </div>
144
              <div class="uk-width-2-3 uk-text-center">
145
                <div class="uk-inline uk-dark">
146
                  <img  src="assets/community-first-page.jpg" alt="OpenAIRE">
147

    
148
                  <div id="community-content" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
149
                        style="left: 80%; top: 31%" hidden>
150
                    <div class="uk-padding-small uk-text-small uk-text-bold">Community content at a glance</div>
151
                  </div>
152
                  <div id="locate-research-results" class="my-tooltip uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
153
                        style="left: 57%; top: 38%" hidden>
154
                    <div class="uk-padding-small uk-text-small uk-text-bold">Locate Research Results</div>
155
                  </div>
156
                  <div id="recent-research-results" class="my-tooltip uk-width-1-4 uk-text-center uk-card uk-card-secondary uk-position-absolute uk-transform-center"
157
                        style="left: 48%; top: 58%" hidden>
158
                    <div class="uk-padding-small uk-text-small uk-text-bold">Recent research results and related graphs</div>
159
                  </div>
160

    
161
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Community content at a glance')"-->
162
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
163
                      style="right: 6%; top: 28%" uk-marker>
164
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
165
                  </a>
166
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Locate Research Results')"-->
167
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
168
                      style="left: 45%; top: 40%" uk-marker>
169
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
170
                  </a>
171
                  <!--[attr.uk-tooltip]="'title: ' + createTooltip('Recent research results and related graphs')"-->
172
                  <a  class="uk-position-absolute uk-transform-center uk-icon uk-marker"
173
                      style="left: 35%; top: 55%" uk-marker>
174
                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>
175
                  </a>
176
                </div>
177
              </div>
178
            </div>
179
          </div>
180
        </div>
181
        <!--/div-->
182
      </div>
183

    
184
<!--<div class="uk-container">-->
185
<!--      <a  class="configure-profile uk-icon uk-marker"-->
186
<!--          uk-marker-->
187
<!--          uk-tooltip="title: AAAAAAA 1">-->
188
<!--        <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>-->
189
<!--      </a>-->
190
<!--      <a  class="connect-with uk-icon uk-marker"-->
191
<!--          uk-marker-->
192
<!--          uk-tooltip="title: AAAAAAA 2">-->
193
<!--        <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>-->
194
<!--      </a>-->
195
<!--      <a  class="choose-statistics uk-icon uk-marker"-->
196
<!--          uk-marker-->
197
<!--          uk-tooltip="title: AAAAAAA 3">-->
198
<!--        <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="marker"><rect x="9" y="4" width="1" height="11"></rect><rect x="4" y="9" width="11" height="1"></rect></svg>-->
199
<!--      </a>-->
200

    
201
<!--      <button (click)="openTooltips()">OPEN TOOLTIPS</button>-->
202

    
203

    
204
<!--      <button type="button" uk-toggle="target: #my-id1; mode: hover; animation: uk-animation-fade">test tooltip</button>-->
205
<!--      <p id="my-id1" class="test-tooltip">TEST tooltip1</p>-->
206

    
207
<!--      <button (scroll)="scrollHandler($event)" type="button" uk-toggle="target: #my-id2; mode: hover; animation: uk-animation-fade">test tooltip</button>-->
208
<!--      <p id="my-id2" class="test-tooltip" [attr.hidden]="hidden ? 'hidden' : null">TEST tooltip2</p>-->
209

    
210
<!--      <button type="button" uk-toggle="target: #my-id3; mode: hover; animation: uk-animation-fade">test tooltip</button>-->
211
<!--      <p id="my-id3"class="test-tooltip">TEST tooltip3</p>-->
212
<!--</div>-->
213

    
214
      <div class="uk-section-muted uk-margin-large-top">
215
        <div class="uk-container uk-container-large">
216
          <div class="uk-margin-large-top uk-margin-large-bottom">
217
            <div class="uk-margin uk-panel">
218
              <h4 class="uk-margin uk-h4 uk-text-bold">
219
                Why trust OpenAIRE?
220
              </h4>
221

    
222
              <div  class="uk-child-width-1-3@m uk-grid-small uk-grid-match" uk-grid
223
                    uk-scrollspy="target: > div; cls:uk-animation-fade; delay: 500">
224
                <div>
225
                    <div class="uk-card uk-card-default uk-card-body">
226
                        <p class="">It is the Open Access Infrastructure for Europe.</p>
227
                    </div>
228
                </div>
229
                <div>
230
                    <div class="uk-card uk-card-default uk-card-body">
231
                        <p>It is community based and independent.</p>
232
                    </div>
233
                </div>
234
                <div>
235
                    <div class="uk-card uk-card-default uk-card-body">
236
                        <p>Provides organizational and technical framework to support OpenScience.</p>
237
                    </div>
238
                </div>
239
                <div>
240
                    <div class="uk-card uk-card-default uk-card-body">
241
                        <p>Provides access to over 25 million research outputs and services that enable their access, link and reuse.</p>
242
                    </div>
243
                </div>
244
                <div>
245
                    <div class="uk-card uk-card-default uk-card-body">
246
                        <p>Provides organizational and technical framework to support OpenScience.</p>
247
                    </div>
248
                </div>
249
                <div>
250
                    <div class="uk-card uk-card-default uk-card-body">
251
                        <p>Ensures that all data come from trusted sources.</p>
252
                    </div>
253
                </div>
254
              </div>
255
            </div>
256
          </div>
257
        </div>
258
      </div>
259
    `
260
  })
261

    
262
export class CommunityCreationInstructionsComponent {
263
  public piwiksub: any;
264

    
265
  public pageTitle = "OpenAIRE"
266

    
267
  public admin_portal_image_hidden: boolean = true;
268
  @ViewChild('adminPortalImage') admin_portal_image: ElementRef;
269

    
270
  public community_image_hidden: boolean = true;
271
  @ViewChild('communityImage') community_image: ElementRef;
272

    
273
  properties:EnvProperties;
274

    
275
  constructor (
276
      private route: ActivatedRoute,
277
      private _router: Router,
278
      private _title: Title,
279
      private _piwikService:PiwikService) {
280

    
281
          var description = "OpenAIRE - Connect, Community Dashboard, research community";
282
          var title = "OpenAIRE - Connect | Create and manage your community page";
283
          this._title.setTitle(title);
284
  }
285

    
286
  public ngOnInit() {
287
    this.route.data
288
          .subscribe((data: { envSpecific: EnvProperties }) => {
289
            this.properties = data.envSpecific;
290
            var url = data.envSpecific.baseLink+this._router.url;
291

    
292
            if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){
293
              this.piwiksub = this._piwikService.trackView(this.properties, "OpenAIRE Connect | Create and manage your community page", this.properties.piwikSiteId).subscribe();
294
            }
295

    
296
            //UIkit.tooltip('.configure-profile').show();
297
          });
298
  }
299

    
300
/*
301
  public openTooltips() {
302
    console.debug("open these tooltips!");
303
    UIkit.tooltip('.configure-profile').show();
304
    UIkit.tooltip('.connect-with').show();
305
    UIkit.tooltip('.choose-statistics').show();
306
  }
307
*/
308

    
309

    
310
  public ngAfterViewInit() {
311
    /* if (typeof document !== 'undefined') {
312

    
313
      if (document.getElementById('enableFadeOutScrollScript')) {
314
        document.getElementById('enableFadeOutScrollScript').remove();
315
      }
316

    
317
      const enableFadeOutScrollScript = document.createElement('script');
318
      enableFadeOutScrollScript.setAttribute('id', 'enableFadeOutScrollScript');
319
      enableFadeOutScrollScript.innerHTML = '\n' +
320
      '$(document).ready(function() {\n' +
321
      '\n' +
322
      '             $(window).scroll( function(){\n' +
323
      '\n' +
324
      '                 $(\'.my-tooltip\').each( function(i){\n' +
325
      '\n' +
326
      '                     var bottom_of_object = $(this).position().top + $(this).outerHeight();\n' +
327
      '                     var bottom_of_window = $(window).scrollTop() + $(window).height();\n' +
328
      '\n' +
329
      '                     if( bottom_of_window > bottom_of_object ){\n' +
330
      '\n' +
331
      '                         $(this).animate({\'opacity\':\'1\'},1500);\n' +
332
      //'\n' + 'this.hidden = true;' +
333
      '\n' +
334
      '                     }\n' +
335
      '\n' +
336
      '                 });\n' +
337
      '\n' +
338
      '             });\n' +
339
      '\n' +
340
      '         });';
341

    
342
      document.body.appendChild(enableFadeOutScrollScript);
343
*/
344
      /*UIkit.util.on('#logo', 'beforehide', function () {
345
        // do something
346
        if(this.hide =http://www.equp4.wf/= false) {
347
          return false;
348
        }
349
      });
350
    }*/
351
  }
352

    
353

    
354

    
355
  @HostListener('window:scroll', ['$event'])
356
  scrollHandler(event) {
357
    let offsetHeight = document.getElementById('stickyNavbar').offsetHeight;
358
    let scrollPosition = window.pageYOffset;
359

    
360
    let admin_portal_image_idsToToggle: string[] = ['#logo', '#configure-profile', '#choose-statistics', '#connect-with', '#curate', '#help-texts', '#invite'];
361
    let adminPortalImageHeight = this.admin_portal_image.nativeElement.offsetHeight;
362
    let adminPortalImagePosition = this.admin_portal_image.nativeElement.offsetTop - offsetHeight;
363

    
364
    if(!this.admin_portal_image_hidden
365
        && ((scrollPosition >= 0.7*adminPortalImagePosition+adminPortalImageHeight) || scrollPosition < 0.7*adminPortalImagePosition)) {
366
      this.admin_portal_image_hidden = true;
367
      admin_portal_image_idsToToggle.forEach((id: string) => {
368
        UIkit.toggle(id, {
369
          animation: 'uk-animation-fade uk-animation-reverse',
370
          duration: 1500
371
        }).toggle();
372
      });
373
    } else if (this.admin_portal_image_hidden && (scrollPosition >= 0.7*adminPortalImagePosition)) {
374
      this.admin_portal_image_hidden = false;
375
      admin_portal_image_idsToToggle.forEach((id: string) => {
376
        UIkit.toggle(id, {
377
          animation: 'uk-animation-fade',
378
          duration: 1500
379
        }).toggle();
380
      });
381
    }
382

    
383
    let community_image_idsToToggle: string[] = ['#community-content', '#locate-research-results', '#recent-research-results'];
384
    let communityImageHeight = this.community_image.nativeElement.offsetHeight;
385
    let communityImagePosition = this.community_image.nativeElement.offsetTop - offsetHeight;
386

    
387
    if(!this.community_image_hidden
388
      && ((scrollPosition >= 0.9*communityImagePosition+communityImageHeight) || scrollPosition < 0.9*communityImagePosition)) {
389
      this.community_image_hidden = true;
390
      community_image_idsToToggle.forEach((id: string) => {
391
        UIkit.toggle(id, {
392
          animation: 'uk-animation-fade uk-animation-reverse',
393
          duration: 1500
394
        }).toggle();
395
      });
396
    } else if (this.community_image_hidden && (scrollPosition >= 0.9*communityImagePosition)) {
397
      this.community_image_hidden = false;
398
      community_image_idsToToggle.forEach((id: string) => {
399
        UIkit.toggle(id, {
400
          animation: 'uk-animation-fade',
401
          duration: 1500
402
        }).toggle();
403
      });
404
    }
405
  }
406

    
407
  public ngOnDestroy() {
408
    if(this.piwiksub){
409
      this.piwiksub.unsubscribe();
410
    }
411
  }
412

    
413
  public createTooltip(content: string) : string {
414
    return "<div class=\"uk-text-center uk-text-bold uk-padding-small\">"+content+"</div>";
415
  }
416
}
(2-2/3)