ode-ngjs-front 1.1.8 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/2ebddef9552e6e74febdcc049e7b6cea.html +411 -0
  2. package/dist/31451cacc32b12533b35bc2756a66c68.html +52 -0
  3. package/dist/5a177ed9e4e64baa8287a6f6e5625ab4.html +127 -0
  4. package/dist/7f0136c03fe438995347a346ee478b3a.html +91 -0
  5. package/dist/d6dec5bea5ec25a97b20e8259e193c57.html +162 -0
  6. package/dist/e42fe8833e44d61abdaa936837b6b949.html +10 -0
  7. package/dist/f3f8289907cc5f53b11e2bc5f451be96.html +31 -0
  8. package/dist/ode-ngjs-front.js +29 -0
  9. package/dist/ode-ngjs-front.js.map +1 -0
  10. package/dist/test/Karma.spec.d.ts +1 -0
  11. package/dist/test/Karma.spec.d.ts.map +1 -0
  12. package/dist/test/Sample.spec.d.ts +2 -0
  13. package/dist/test/Sample.spec.d.ts.map +1 -0
  14. package/dist/ts/modules/base.module.d.ts.map +1 -1
  15. package/dist/ts/modules/widgets.module.d.ts +2 -0
  16. package/dist/ts/modules/widgets.module.d.ts.map +1 -1
  17. package/dist/ts/services/theme-helper.service.d.ts.map +1 -1
  18. package/dist/ts/widgets/universalis-widget/universalis-widget.widget.d.ts +2 -0
  19. package/dist/ts/widgets/universalis-widget/universalis-widget.widget.d.ts.map +1 -0
  20. package/dist/version.txt +1 -0
  21. package/dist/widgets/agenda-widget/agenda-widget.widget.js +2 -0
  22. package/dist/widgets/agenda-widget/agenda-widget.widget.js.map +1 -0
  23. package/dist/widgets/bookmark-widget/bookmark-widget.widget.js +2 -0
  24. package/dist/widgets/bookmark-widget/bookmark-widget.widget.js.map +1 -0
  25. package/dist/widgets/calendar-widget/calendar-widget.widget.js +2 -0
  26. package/dist/widgets/calendar-widget/calendar-widget.widget.js.map +1 -0
  27. package/dist/widgets/carnet-de-bord/carnet-de-bord.widget.js +2 -0
  28. package/dist/widgets/carnet-de-bord/carnet-de-bord.widget.js.map +1 -0
  29. package/dist/widgets/cursus-widget/cursus-widget.widget.js +2 -0
  30. package/dist/widgets/cursus-widget/cursus-widget.widget.js.map +1 -0
  31. package/dist/widgets/dicodelazone-widget/dicodelazone-widget.widget.js +2 -0
  32. package/dist/widgets/dicodelazone-widget/dicodelazone-widget.widget.js.map +1 -0
  33. package/dist/widgets/last-infos-widget/last-infos-widget.widget.js +2 -0
  34. package/dist/widgets/last-infos-widget/last-infos-widget.widget.js.map +1 -0
  35. package/dist/widgets/maxicours-widget/maxicours-widget.widget.js +2 -0
  36. package/dist/widgets/maxicours-widget/maxicours-widget.widget.js.map +1 -0
  37. package/dist/widgets/my-apps/my-apps.widget.js +2 -0
  38. package/dist/widgets/my-apps/my-apps.widget.js.map +1 -0
  39. package/dist/widgets/qwant-widget/qwant-widget.widget.js +2 -0
  40. package/dist/widgets/qwant-widget/qwant-widget.widget.js.map +1 -0
  41. package/dist/widgets/record-me/record-me.widget.js +2 -0
  42. package/dist/widgets/record-me/record-me.widget.js.map +1 -0
  43. package/dist/widgets/rss-widget/rss-widget.widget.js +2 -0
  44. package/dist/widgets/rss-widget/rss-widget.widget.js.map +1 -0
  45. package/dist/widgets/school-widget/school-widget.widget.js +2 -0
  46. package/dist/widgets/school-widget/school-widget.widget.js.map +1 -0
  47. package/dist/widgets/universalis-widget/universalis-widget.widget.js +2 -0
  48. package/dist/widgets/universalis-widget/universalis-widget.widget.js.map +1 -0
  49. package/package.json +3 -4
@@ -0,0 +1,411 @@
1
+ <style>
2
+ @keyframes bounce-pop-out{
3
+ 0%{transform:scale(0)}
4
+ 50%{transform:scale(1.1)}
5
+ 90%{transform:scale(0.9)}
6
+ 100%{transform:scale(1)}
7
+ }
8
+
9
+ assistant {
10
+ z-index: 100001 !important;
11
+ position: relative;
12
+ }
13
+
14
+ assistant i[class$="-large"] {
15
+ font-family: "generic-icons";
16
+ font-style: normal;
17
+ font-weight: normal;
18
+ }
19
+ /* Icones.
20
+ HTML fragment from springboard may contain these classes. */
21
+ assistant i[class$="-large"]::before { color: #e13a3a; }
22
+ assistant i.absences-large::before { content: "\e80b"; }
23
+ assistant i.actualites-large::before { content: "\e85b"; color: #4bafd5}
24
+ assistant i.admin-large::before { content: '\e81a'; color: #ecbe30}
25
+ assistant i.agenda-large::before { content: "\e83c"; color: #ecbe30}
26
+ assistant i.archive-large::before { content: "\e81d"; color: #ecbe30}
27
+ assistant i.blog-large::before { content: '\e809'; color:#1a22a2;}
28
+ assistant i.bookmark-empty-large::before { content: '\e888' }
29
+ assistant i.cahier-textes-large::before,
30
+ assistant i.cahier-de-texte-large::before { content: "\e86f"; color: #46bfaf}
31
+ assistant i.calendar-large::before { content: '\e834'; color: #ecbe30}
32
+ assistant i.conversation-large::before { content: "\e804"; color: #ecbe30}
33
+ assistant i.chat-large::before { content: "\e817";}
34
+ assistant i.cns-large::before { content: '\e88a'; color: #46bfaf}
35
+ assistant i.collaborativeeditor-large::before { content: "\e829"; color: #4bafd5}
36
+ assistant i.collaborative-wall-large::before { content: "\e800"; color: #46bfaf}
37
+ assistant i.community-large::before { content: '\e814'; color: #763294}
38
+ assistant i.competences-large::before { content: "\e927";}
39
+ assistant i.conversation-large::before { content:'\e804'; color:#ecbe30;}
40
+ assistant i.userbook-large::before,
41
+ assistant i.directory-large::before { content: '\e811'; color: #46bfaf}
42
+ assistant i.edumedia-large::before { content: "\e887"; color: #4bafd5}
43
+ assistant i.esidoc-large::before { content: "\e826"; color: #763294}
44
+ assistant i.exercizer-large::before { content:'\e833'; color:#763294;}
45
+ assistant i.forum-large::before { content: '\e81e'; color: #4bafd5}
46
+ assistant i.lesitetv-large::before { content: "\e87a"; color: #ecbe30}
47
+ assistant i.library-large::before { color: #ecbe30}
48
+ assistant i.maxicours-large::before { content: '\e818'; color: #b930a2}
49
+ assistant i.mindmap-large::before { content: "\e859"; color: #4bafd5}
50
+ assistant i.my-network-large::before { content: '\e82e'; color: #1a22a2}
51
+ assistant i.note-large::before { content: '\e806'; color: #ecbe30}
52
+ assistant i.notes-large::before { content: '\e806';}
53
+ assistant i.pad-large::before { content: "\e829"; color: #4bafd5}
54
+ assistant i.pages-large::before { content: "\e876";}
55
+ assistant i.parametrage-large::before { content: "\e92f";}
56
+ assistant i.paths-large::before { content: "\e94d"; color: #FF8500}
57
+ assistant i.pearltrees-large::before { content: "\e933"; color: #4bafd5}
58
+ assistant i.poll-large::before { content: '\e832'; color: #4bafd5}
59
+ assistant i.rack-large::before { content: "\e80d";}
60
+ assistant i.rbs-large::before { content: '\e80e'; color: #b930a2}
61
+ assistant i.scolarite-large::before { content: "\e802"; color: #4bafd5}
62
+ assistant i.scrap-book-large::before,
63
+ assistant i.scrapbook-large::before { content: "\e8d4"; color: #46bfaf}
64
+ assistant i.schoolbook-large::before { content: "\e91e"; color: #46bfaf}
65
+ assistant i.settings-class-large::before { content: "\e942"; color: #ecbe30}
66
+ assistant i.sharebigfiles-large::before { content: "\e8cb"; color: #763294}
67
+ assistant i.statistics-large::before,
68
+ assistant i.stats-large::before { content: '\e810'; color: #763294}
69
+ assistant i.suitcase-large::before { content: '\e88b';}
70
+ assistant i.support-large::before { content: "\e835"; color: #46bfaf}
71
+ assistant i.timelinegenerator-large::before { content: '\e819'; color: #ecbe30}
72
+ assistant i.timeline-large::before { content: '\e82b'}
73
+ assistant i.visioconf-large::before { content: "\e957"; color: #763294}
74
+ assistant i.wiki-large::before { content: '\e813'; color: #763294}
75
+ assistant i.workspace-large::before { content: "\e81b";}
76
+
77
+ assistant .ignore {
78
+ position: absolute;
79
+ top: 20px;
80
+ right: 20px;
81
+ font-size: 13px;
82
+ cursor: pointer;
83
+ }
84
+
85
+ assistant .top-spacing-four {
86
+ margin-top: 20px !important;
87
+ }
88
+
89
+ assistant ode-modal .modal-content {
90
+ border: 20px solid #4bafd5 !important;
91
+ }
92
+
93
+ assistant ode-modal .centered-text {
94
+ text-align: center !important;
95
+ justify-content: center;
96
+ }
97
+
98
+ assistant ode-modal .flex-row {
99
+ display: flex;
100
+ position: relative;
101
+ }
102
+
103
+ assistant nav.dots ul {
104
+ width: 100%;
105
+ display: flex;
106
+ justify-content: center;
107
+ margin: 20px 0 10px;
108
+ padding: 0;
109
+ }
110
+ assistant nav.dots li.dot {
111
+ list-style-type: none;
112
+ margin: 0 10px;
113
+ }
114
+ assistant nav.dots li.dot:not([disabled]) {
115
+ cursor: pointer;
116
+ }
117
+ assistant nav.dots li.dot::before {
118
+ content: " ";
119
+ display: block;
120
+ width: 17px;
121
+ height: 17px;
122
+ background: transparent;
123
+ border: 2px solid #c9ced5;
124
+ border-radius: 50%;
125
+ box-sizing: border-box;
126
+ transition: all 250ms ease;
127
+ }
128
+ assistant nav.dots li.dot.active::before {
129
+ background: #FF8500
130
+ }
131
+ assistant nav.dots li.dot:hover::before {
132
+ border-color: #4bafd5
133
+ }
134
+ assistant nav.dots li.dot.active:hover::before {
135
+ border-color: #FF8500;
136
+ background: transparent
137
+ }
138
+
139
+ @media screen and (max-width: 800px) {
140
+ body assistant div.modal>div.modal-content {
141
+ top:30px;
142
+ width: calc(100% - 40px);
143
+ height: auto;
144
+ min-height: auto;
145
+ overflow: hidden;
146
+ padding: 50px 0 10px !important
147
+ }
148
+
149
+ body assistant div.modal>div.modal-content button.cancel.zero {
150
+ display: block
151
+ }
152
+ }
153
+ @media (min-width: 1200px) {
154
+ assistant .modal-xl {
155
+ max-width: 800px !important;
156
+ }
157
+ }
158
+ assistant ode-modal .container img {
159
+ max-width: 100%;
160
+ }
161
+ assistant ode-modal-footer {
162
+ width: 100%;
163
+ display: flex;
164
+ justify-content: space-between;
165
+ align-content: center;
166
+ }
167
+
168
+ assistant ode-modal .modal-content {
169
+ padding: 50px !important;
170
+ padding-bottom: 30px !important;
171
+ box-sizing: border-box;
172
+ border: 10px solid #4bafd5 !important;
173
+ }
174
+
175
+ assistant ode-modal h1 {
176
+ color: #4bafd5 !important;
177
+ }
178
+
179
+ assistant ode-modal .modal-content .logo-quickstart {
180
+ background-image: url(../../img/logo.png);
181
+ background-size: contain;
182
+ background-repeat: no-repeat;
183
+ background-position: center
184
+ }
185
+
186
+ assistant ode-modal .modal-content iframe {
187
+ width: calc(100% - 20px)
188
+ }
189
+
190
+ assistant ode-modal .modal-content h1+p {
191
+ margin-top: 45px
192
+ }
193
+
194
+ assistant ode-modal .modal-content h4 {
195
+ margin: 50px 0 20px;
196
+ text-align: center
197
+ }
198
+
199
+ assistant ode-modal .modal-content p {
200
+ line-height: 25px
201
+ }
202
+
203
+ assistant ode-modal .modal-content .apps .container:nth-child(2) {
204
+ animation-delay: .25s
205
+ }
206
+
207
+ assistant ode-modal .modal-content .apps .container:nth-child(3) {
208
+ animation-delay: .375s
209
+ }
210
+
211
+ assistant ode-modal .modal-content .apps .container:nth-child(4) {
212
+ animation-delay: .5s
213
+ }
214
+
215
+ assistant ode-modal .modal-content .apps .container:nth-child(5) {
216
+ animation-delay: .625s
217
+ }
218
+
219
+ assistant ode-modal .modal-content .apps .container:nth-child(6) {
220
+ animation-delay: .75s
221
+ }
222
+
223
+ assistant ode-modal .modal-content .apps .container:nth-child(7) {
224
+ animation-delay: .875s
225
+ }
226
+
227
+ assistant ode-modal .modal-content .apps .container:nth-child(8) {
228
+ animation-delay: 1s
229
+ }
230
+
231
+ assistant ode-modal .modal-content .apps .container:nth-child(9) {
232
+ animation-delay: 1.125s
233
+ }
234
+
235
+ assistant ode-modal .modal-content .apps .container {
236
+ width: 150px;
237
+ margin: 0 10px;
238
+ transform: scale(0);
239
+ animation-duration: 0.4s;
240
+ animation-name: bounce-pop-out;
241
+ animation-fill-mode: forwards
242
+ }
243
+
244
+ assistant ode-modal .modal-content .apps i {
245
+ font-size: 65px
246
+ }
247
+
248
+ assistant ode-modal .modal-content .apps i.small {
249
+ font-size: 40px;
250
+ padding: 5px
251
+ }
252
+
253
+ assistant ode-modal .modal-content .apps legend {
254
+ color: #000;
255
+ margin: 20px auto 0;
256
+ font-size: 13px
257
+ }
258
+
259
+ assistant ode-modal .modal-content iframe {
260
+ position: absolute;
261
+ height: 100%
262
+ }
263
+
264
+ assistant ode-modal .modal-content .ratio-block {
265
+ width: 100%;
266
+ padding-bottom: 56%;
267
+ background: transparent
268
+ }
269
+
270
+ assistant ode-modal .modal-content .multi-apps {
271
+ position: relative;
272
+ height: 100px;
273
+ width: 125px
274
+ }
275
+
276
+ assistant ode-modal .modal-content .multi-apps i {
277
+ position: absolute;
278
+ font-size: 30px;
279
+ width: 50px;
280
+ height: 50px;
281
+ border-radius: 3px;
282
+ line-height: 50px;
283
+ box-shadow: 0px 0px 15px 1px rgba(0,0,0,0.26)
284
+ }
285
+
286
+ assistant ode-modal .modal-content .multi-apps i:before {
287
+ color: #fff
288
+ }
289
+
290
+ assistant ode-modal .modal-content .multi-apps i.collaborative-wall-large {
291
+ background: #46bfaf;
292
+ bottom: 0;
293
+ right: 0;
294
+ transform: scale(0.8)
295
+ }
296
+
297
+ assistant ode-modal .modal-content .multi-apps i.rack-large {
298
+ background: #e13a3a;
299
+ top: -10px;
300
+ left: 3px;
301
+ transform: scale(0.5)
302
+ }
303
+
304
+ assistant ode-modal .modal-content .multi-apps i.timelinegenerator-large {
305
+ background: #ecbe30;
306
+ top: -14px;
307
+ right: 3px;
308
+ transform: scale(0.6)
309
+ }
310
+
311
+ assistant ode-modal .modal-content .multi-apps i.rbs-large {
312
+ background: #b930a2;
313
+ left: -15px;
314
+ bottom: 13px;
315
+ transform: scale(0.4)
316
+ }
317
+
318
+ assistant ode-modal .modal-content .multi-apps i.exercizer-large {
319
+ background: #763294;
320
+ left: 8px;
321
+ bottom: -6px;
322
+ transform: scale(0.7)
323
+ }
324
+
325
+ assistant ode-modal .modal-content .multi-apps i.dotsx3-h {
326
+ background: #4bafd5;
327
+ left: 37px;
328
+ bottom: 33px
329
+ }
330
+
331
+ @media screen and (max-width: 800px) {
332
+ body assistant div.modal>div.modal-content .logo-quickstart {
333
+ height:45px;
334
+ width: 110px;
335
+ margin-top: -45px;
336
+ margin-left: 10px
337
+ }
338
+
339
+ body assistant div.modal>div.modal-content h1 {
340
+ font-weight: bold;
341
+ margin-top: 8px
342
+ }
343
+
344
+ body assistant div.modal>div.modal-content h4 {
345
+ font-weight: normal;
346
+ margin: 20px 0 30px;
347
+ font-size: 15px;
348
+ padding: 0 15px;
349
+ line-height: 18px
350
+ }
351
+
352
+ body assistant div.modal>div.modal-content h4+hr {
353
+ display: none
354
+ }
355
+ }
356
+
357
+ @media screen and (max-width: 550px) {
358
+ body assistant div.modal>div.modal-content .multi-apps {
359
+ transform:scale(0.8);
360
+ transform-origin: top left
361
+ }
362
+ }
363
+
364
+ @media screen and (max-width: 420px) {
365
+ body assistant div.modal>div.modal-content .apps .container {
366
+ width:80px
367
+ }
368
+
369
+ body assistant div.modal>div.modal-content .apps i {
370
+ font-size: 45px
371
+ }
372
+
373
+ body assistant div.modal>div.modal-content .apps legend {
374
+ font-size: 12px
375
+ }
376
+ }
377
+ </style>
378
+
379
+ <ode-modal visible="ctrl.show.assistant" size="xl">
380
+ <ode-modal-title>
381
+ <div class="logo-quickstart"></div>
382
+ <a class="ignore" ng-click="ctrl.closeAssistant()"><i18n>ignore</i18n></a>
383
+ </ode-modal-title>
384
+
385
+ <ode-modal-body>
386
+ <div class="">
387
+ <div ng-include="ctrl.currentStep.path" class=""></div>
388
+
389
+ <div class="">
390
+ <nav class="dots">
391
+ <ul>
392
+ <li ng-repeat="step in ctrl.steps" class="dot" ng-click="ctrl.goTo(step)" ng-class="{ active: step.index === ctrl.currentStep.index }"></li>
393
+ </ul>
394
+ </nav>
395
+ </div>
396
+ </div>
397
+ </ode-modal-body>
398
+
399
+ <ode-modal-footer>
400
+ <button ng-click="ctrl.seeLater()" class="btn btn-light text-primary"><i18n>quickstart.see.later</i18n></button>
401
+ <div class="">
402
+ <button class="btn btn-outline-primary" ng-click="ctrl.previous()" ng-if="ctrl.currentStep.index !== 0"><i18n>previous</i18n></button>
403
+ <button class="btn btn-primary" ng-click="ctrl.next()">
404
+ <i18n ng-if="ctrl.currentStep.index===0">quickstart.discover</i18n>
405
+ <i18n ng-if="ctrl.currentStep.index>0 && ctrl.currentStep.index<ctrl.steps.length-1">next</i18n>
406
+ <i18n ng-if="ctrl.currentStep.index===ctrl.steps.length-1">quickstart.done</i18n>
407
+ </button>
408
+ </div>
409
+ </ode-modal-footer>
410
+
411
+ </ode-modal>
@@ -0,0 +1,52 @@
1
+ <!--
2
+ ~ Copyright © WebServices pour l'Éducation, 2014
3
+ ~
4
+ ~ This file is part of ENT Core. ENT Core is a versatile ENT engine based on the JVM.
5
+ ~
6
+ ~ This program is free software; you can redistribute it and/or modify
7
+ ~ it under the terms of the GNU Affero General Public License as
8
+ ~ published by the Free Software Foundation (version 3 of the License).
9
+ ~
10
+ ~ For the sake of explanation, any module that communicate over native
11
+ ~ Web protocols, such as HTTP, with ENT Core is outside the scope of this
12
+ ~ license and could be license under its own terms. This is merely considered
13
+ ~ normal use of ENT Core, and does not fall under the heading of "covered work".
14
+ ~
15
+ ~ This program is distributed in the hope that it will be useful,
16
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
+ ~
19
+ -->
20
+ <ode-navbar title="{{name}}"></ode-navbar>
21
+
22
+ <main role="main">
23
+ <div ng-transclude></div>
24
+ </main>
25
+
26
+ <div id="infotips-container" class="toast-container">
27
+ <ode-infotip
28
+ header=""
29
+ userprefs-key="rgpdCookies"
30
+ userprefs-field="showInfoTip"
31
+ save-on-change="false"
32
+ show="showRgpd">
33
+
34
+ <i18n>rgpd.cookies.banner.text1</i18n>
35
+
36
+ <div class="mt-4 pt-4 d-flex justify-content-end">
37
+ <button type="button" class="btn btn-light btn-md me-4"
38
+ ng-click="goToMyAccount()">
39
+ <i18n>rgpd.cookies.banner.button.consult</i18n>
40
+ </button>
41
+ <button type="button" class="btn btn-primary btn-md" data-bs-dismiss="toast"
42
+ ng-click="closeBanner()">
43
+ <i18n>rgpd.cookies.banner.button.close</i18n>
44
+ </button>
45
+ </div>
46
+ </ode-infotip>
47
+ <div ng-transclude="infotips"></div>
48
+ </div>
49
+
50
+ <xiti></xiti>
51
+
52
+ <connector-lightbox></connector-lightbox>
@@ -0,0 +1,127 @@
1
+ <div class="share temp">
2
+ <div class="line">
3
+ <form name="sharePanelForm">
4
+ <div>
5
+ <button class="panel-button right-magnet" ng-click="ctrl.share()" ng-disabled="ctrl.isSubmitDisabled()">
6
+ <i18n>share</i18n>
7
+ </button>
8
+ <div class="block" ng-if="ctrl.varyingRights">
9
+ <div class="warning">
10
+ <span class="no-style" translate content="[[ctrl.varyingRightsI18nKey]]"></span>
11
+ </div>
12
+ </div>
13
+ </div>
14
+
15
+ <div class="groups-list">
16
+ <div>
17
+ <ng-include src="ctrl.shareTable"></ng-include>
18
+ </div>
19
+
20
+ <div class="flex-row justify-between align-center">
21
+ <div class="saveSharebookmark">
22
+ <div class="flex-row align-center"
23
+ ng-if="ctrl.display.showSaveSharebookmarkInput === false && ctrl.display.sharebookmarkSaved === false && ctrl.sharingModel.edited.length > 0"
24
+ workflow="directory.allowSharebookmarks">
25
+ <a class="hover-icon" ng-click="ctrl.display.showSaveSharebookmarkInput = true">
26
+ <i class="add-favorite cell"></i> <i18n>share.save.sharebookmark</i18n>
27
+ </a>
28
+ </div>
29
+ <div class="flex-row" ng-if="ctrl.display.showSaveSharebookmarkInput === true && ctrl.display.sharebookmarkSaved === false"
30
+ workflow="directory.allowSharebookmarks">
31
+ <input class="cell"
32
+ type="text"
33
+ ng-model="ctrl.newSharebookmarkName"
34
+ i18n-placeholder="share.mysharebookmark"
35
+ required
36
+ ng-minlength="1">
37
+ <a class="button is-light uppercase"
38
+ ng-click="ctrl.createSharebookmark(newSharebookmarkName)"
39
+ ng-disabled="!ctrl.newSharebookmarkName || ctrl.sharingModel.edited.length < 1">
40
+ <i18n>ok</i18n>
41
+ </a>
42
+ </div>
43
+ <div ng-if="ctrl.display.sharebookmarkSaved === true" workflow="directory.allowSharebookmarks">
44
+ <span class="italic-text saved-in"><i18n>share.save.sharebookmark.in</i18n></span>
45
+ <a href="/userbook/annuaire#/search" target="_blank" rel="noopener"><i18n>share.mysharebookmarks</i18n></a>
46
+ </div>
47
+ </div>
48
+
49
+ <a ng-click="ctrl.displayMore()"
50
+ ng-if="ctrl.canShowMore()"
51
+ class="display-more">
52
+ <i18n>share.more</i18n>
53
+ </a>
54
+ </div>
55
+ </div>
56
+ </form>
57
+ </div>
58
+
59
+ <div class="bottom-spacing-twice">
60
+ <div class="flex-row align-center">
61
+ <h2 class= "size-auto">
62
+ <span ng-if="!ctrl.display.workflowAllowSharebookmarks || ctrl.display.workflowAllowSharebookmarks == false">[[ctrl.translate('share.search.title')]]</span>
63
+ <span workflow="directory.allowSharebookmarks">[[ctrl.translate('share.search.sharebookmark.title')]]</span>
64
+ </h2>
65
+ <span class="tipbox up" workflow="directory.allowSharebookmarks">
66
+ <div>
67
+ <i class="help sticker square-medium"></i>
68
+ </div>
69
+ <div class="tipbox-content top">
70
+ <span class="small-text">
71
+ <i18n>share.tip.addFavorite</i18n>
72
+ </span>
73
+ </div>
74
+ </span>
75
+ </div>
76
+
77
+ <search-user class="twelve cell"
78
+ ng-model="ctrl.search"
79
+ clear-list="ctrl.clearSearch()"
80
+ on-send="ctrl.findUserOrGroup()"
81
+ search-track="ctrl.display.search">
82
+ </search-user>
83
+ <div class="found-users-list">
84
+ <div ng-repeat="item in ctrl.found | orderBy:[typeSort, 'name', 'username'] | limitTo:ctrl.maxResults" class="autocomplete temp">
85
+ <div ng-click="ctrl.addEdit(item)" class="">
86
+ <a class="cell right-spacing" ng-class="{sharebookmark: item.type === 'sharebookmark'}">
87
+ <i class="add-favorite cell" ng-if="item.type === 'sharebookmark'"></i>
88
+ <!-- group or sharebookmark name -->
89
+ <span ng-if="item.name">[[item.name]]</span>
90
+ <!-- user displayName -->
91
+ <span ng-if="item.username">[[item.username]]</span>
92
+ </a>
93
+ <!-- structureName for groups -->
94
+ <em ng-if="item.structureName" class="low-importance">[[item.structureName]]</em>
95
+ <!-- profile for users -->
96
+ <em ng-if="item.profile" class="low-importance">[[ctrl.translate(item.profile)]]</em>
97
+ </div>
98
+ </div>
99
+ <div class="" ng-if="ctrl.found.length === 0 && !ctrl.display.search.processing">
100
+ <div class="spacer-small"></div>
101
+ <label class="low-importance medium-importance italic-text" ng-if="ctrl.search.length >= 3" user-role="ADMIN_LOCAL">
102
+ <i18n>portal.no.result</i18n>
103
+ </label>
104
+ <label class="low-importance medium-importance italic-text" ng-if="ctrl.search.length" user-missing-role="ADMIN_LOCAL">
105
+ <i18n>portal.no.result</i18n>
106
+ </label>
107
+ </div>
108
+ <div class="">
109
+ <a ng-click="ctrl.addResults()" ng-if="ctrl.found.length > ctrl.maxResults" class="right-magnet reduce-block-four">
110
+ <i18n>seemore</i18n>
111
+ </a>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+
117
+ <div ng-show="ctrl.display.showCloseConfirmation === true">
118
+ <h1><i18n>sharepanel.close.title</i18n></h1>
119
+ <div>
120
+ <p><i18n>sharepanel.close.explanation</i18n></p>
121
+ <p><i18n>sharepanel.close.confirmation</i18n></p>
122
+ </div>
123
+ <div class="">
124
+ <button ng-click="closePanel()" class="right-magnet"><i18n>sharepanel.close.confirm</i18n></button>
125
+ <button ng-click="revertClose()" class="right-magnet cancel"><i18n>cancel</i18n></button>
126
+ </div>
127
+ </div>
@@ -0,0 +1,91 @@
1
+ <div ng-if="showBanner" class="smartbanner">
2
+ <style>
3
+ .smartbanner {
4
+ /* position: sticky;
5
+ position: -webkit-sticky; */
6
+ position: fixed;
7
+ bottom:0;
8
+ left:0;
9
+ width:100%;
10
+ height:78px;
11
+ background:#fff;
12
+ z-index: 999;
13
+ overflow: hidden;
14
+ border: 1px solid #ccc;
15
+ margin-bottom: 5px;
16
+ }
17
+ .smartbanner-close {
18
+ position:absolute;
19
+ left:7px;top:7px;
20
+ display:block;
21
+ font-family:'ArialRoundedMTBold',Arial;
22
+ font-size:15px;
23
+ text-align:center;
24
+ text-decoration:none;
25
+ border-radius:14px;
26
+ border:0;
27
+ width:17px;
28
+ height:17px;
29
+ line-height:17px;
30
+ color:#b1b1b3;
31
+ background:#efefef;
32
+ }
33
+ .smartbanner-close:active,.smartbanner-close:hover {
34
+ color:#333;
35
+ }
36
+ .smartbanner-icon{
37
+ position:absolute;
38
+ left:30px;
39
+ top:10px;
40
+ display:block;
41
+ width:60px;
42
+ height:60px;
43
+ background-color: #fff;
44
+ background-size:cover;
45
+ }
46
+ .smartbanner-info{
47
+ position:absolute;
48
+ left:98px;
49
+ top:15px;
50
+ width:44%;
51
+ font-size:12px;
52
+ line-height:1.2em;
53
+ font-weight:bold;
54
+ color:#999;
55
+ }
56
+ .smartbanner-title {
57
+ font-size:15px;
58
+ line-height:17px;
59
+ color:#000;
60
+ font-weight:bold;
61
+ }
62
+ .smartbanner-button{
63
+ position:absolute;
64
+ right:20px;
65
+ top:24px;
66
+ padding:0 10px;
67
+ min-width:12%;
68
+ height:24px;
69
+ font-size:14px;
70
+ line-height:24px;
71
+ text-align:center;
72
+ font-weight:bold;
73
+ color:#fff;
74
+ background-color:#b3c833;
75
+ text-decoration:none;
76
+ border-radius:5px;
77
+ }
78
+
79
+ </style>
80
+ <div class="smartbanner-container">
81
+ <a ng-click="closeBanner()" class="smartbanner-close">&times;</a>
82
+ <img class="smartbanner-icon" ng-src="[[icon]]">
83
+ <div class="smartbanner-info">
84
+ <div class="smartbanner-title"><i18n>smartbanner.name</i18n></div>
85
+ <div><i18n>smartbanner.description</i18n></div>
86
+ </div>
87
+ <a href="[[appRef]]" target="_blank" rel="noopener" class="smartbanner-button">
88
+ <span class="smartbanner-button-text"><i18n>smartbanner.action</i18n></span>
89
+ </a>
90
+ </div>
91
+ </div>