@silexlabs/silex-dashboard 1.0.48 → 1.0.50

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 (27) hide show
  1. package/_site/connectors/index.html +354 -0
  2. package/_site/css/connectors-187142925083dd32992cd4c78462f9a7e20f6fc462524b566ed616fd6d3d2b46.css +1 -0
  3. package/_site/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css +1 -0
  4. package/_site/css/connectors-d7d00ca2aa235acdf7535c1e8faba94fe05e8a8863db5fc4421cd9369c811928.css +1 -0
  5. package/_site/css/websites-5cf941724b3798508df646193a48dcf4ec08e709d92aa33e06f09632a8b1b0a5.css +1 -0
  6. package/_site/en/connectors/index.html +5 -5
  7. package/_site/en/index.html +1 -1
  8. package/_site/fr/connectors/index.html +5 -5
  9. package/_site/fr/index.html +1 -1
  10. package/_site/js/main.js +105 -104
  11. package/_site/websites/index.html +350 -0
  12. package/collections/connectors/en.md +4 -1
  13. package/collections/connectors/fr.md +4 -1
  14. package/package.json +1 -1
  15. package/templates/connectors-en.11tydata.mjs +1 -1
  16. package/templates/connectors-en.html +56 -56
  17. package/templates/connectors-fr.11tydata.mjs +1 -1
  18. package/templates/connectors-fr.html +56 -56
  19. package/templates/connectors.html +354 -0
  20. package/templates/css/connectors-187142925083dd32992cd4c78462f9a7e20f6fc462524b566ed616fd6d3d2b46.css +1 -0
  21. package/templates/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css +1 -0
  22. package/templates/css/connectors-d7d00ca2aa235acdf7535c1e8faba94fe05e8a8863db5fc4421cd9369c811928.css +1 -0
  23. package/templates/css/websites-5cf941724b3798508df646193a48dcf4ec08e709d92aa33e06f09632a8b1b0a5.css +1 -0
  24. package/templates/websites-en.html +80 -80
  25. package/templates/websites-fr.html +80 -80
  26. package/templates/websites.html +350 -0
  27. package/tina/tina-lock.json +1 -1
@@ -8,7 +8,7 @@ collection: "Connectors"
8
8
  <html lang="">
9
9
  <head>
10
10
  <meta charset="UTF-8">
11
- <link rel="stylesheet" href="/css/connectors-61bd21c2345101e48cc530cacf3afc0156ce7e089fcef3a34f853a537f0c55f2.css" />
11
+ <link rel="stylesheet" href="/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css" />
12
12
  <!-- font google -->
13
13
  <link rel="preconnect" href="https://fonts.gstatic.com" />
14
14
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
@@ -355,84 +355,84 @@ window.addEventListener('load', function() {
355
355
  <title>Silex Dashboard</title>
356
356
  <link rel="icon" href="/assets/favicon-32x32.png" />
357
357
  <meta name="og:title" property="og:title" content="Silex Dashboard"/>
358
- <link href="https://www.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://www.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
358
+ <link href="https://fonts.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
359
359
  <body id="i2hcfw" class="body app before-js"><A id="ixzhcr" href="/" class="button button-bar__item--secondary">{{ api-translations[lang]["Back to home"] }}</A><div id="imawg3" class="bg-silex-purpel">{% liquid
360
- assign var_imgx81_486 = tina.connectorsConnection.edges | where: "node.lang", page.lang | first
361
- assign var_imgx81_487 = var_imgx81_486.node
362
- assign state_imgx81-1985_imgx81-7uhkrqd2giq = var_imgx81_487
360
+ assign var_imgx81_1983 = tina.connectorsConnection.edges | where: "node.lang", page.lang | first
361
+ assign var_imgx81_1984 = var_imgx81_1983.node
362
+ assign state_imgx81-1985_imgx81-7uhkrqd2giq = var_imgx81_1984
363
363
  %}<div id="imgx81" class=""><div id="iikf0s" class="box box_login"><div id="ie0dxn" class="text-centered"><img id="ior0hl" src="/assets/logo-silex.svg"/><p id="it2175" class="subtitle-16">{% liquid
364
- assign var_it2175_440 = state_imgx81-1985_imgx81-7uhkrqd2giq.subtitle
365
- echo var_it2175_440
366
- %}</p><div id="ilq8ui" class="text-centered">{% liquid
367
- assign var_ilq8ui_441 = state_imgx81-1985_imgx81-7uhkrqd2giq.help
368
- echo var_ilq8ui_441
369
- %}</div></div><h3 id="iqc1xf" class="margin-top">{% liquid
370
- assign var_iqc1xf_442 = state_imgx81-1985_imgx81-7uhkrqd2giq.recommended
371
- echo var_iqc1xf_442
364
+ assign var_it2175_1937 = state_imgx81-1985_imgx81-7uhkrqd2giq.subtitle
365
+ echo var_it2175_1937
366
+ %}</p></div><h3 id="iqc1xf" class="margin-top">{% liquid
367
+ assign var_iqc1xf_1938 = state_imgx81-1985_imgx81-7uhkrqd2giq.recommended
368
+ echo var_iqc1xf_1938
372
369
  %}</h3><div id="in62y2">{% liquid
373
- assign var_isqe61_463 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
370
+ assign var_isqe61_1959 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
374
371
  %}
375
- {% for state_isqe61-589___data in var_isqe61_463 %}
372
+ {% for state_isqe61-589___data in var_isqe61_1959 %}
376
373
  {% liquid
377
- assign var_isqe61_461 = forloop.index0
378
- assign var_isqe61_462 = "0"
374
+ assign var_isqe61_1957 = forloop.index0
375
+ assign var_isqe61_1958 = "0"
379
376
  %}
380
- {% if var_isqe61_461 <= var_isqe61_462 %}
377
+ {% if var_isqe61_1957 <= var_isqe61_1958 %}
381
378
  <div id="isqe61" class="">{% liquid
382
- assign var_i0vhjr_456 = state_isqe61-589___data.background_color
383
- assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_i0vhjr_456
379
+ assign var_i0vhjr_1952 = state_isqe61-589___data.background_color
380
+ assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_i0vhjr_1952
384
381
  %}
385
382
  {% liquid
386
- assign var_i0vhjr_457 = state_isqe61-589___data.color
387
- assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_i0vhjr_457
383
+ assign var_i0vhjr_1953 = state_isqe61-589___data.color
384
+ assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_i0vhjr_1953
388
385
  %}<a id="i0vhjr" href="{% liquid
389
- assign var_i0vhjr_458 = state_isqe61-589___data.auth_url
390
- echo var_i0vhjr_458
386
+ assign var_i0vhjr_1954 = state_isqe61-589___data.auth_url
387
+ echo var_i0vhjr_1954
391
388
  %}" class="connector__card" data-style="{% liquid
392
- assign var_i0vhjr_459 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
393
- echo var_i0vhjr_459
389
+ assign var_i0vhjr_1955 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
390
+ echo var_i0vhjr_1955
394
391
  %}" title="{% liquid
395
- assign var_i0vhjr_460 = state_isqe61-589___data.description | strip_html
396
- echo var_i0vhjr_460
392
+ assign var_i0vhjr_1956 = state_isqe61-589___data.description | strip_html
393
+ echo var_i0vhjr_1956
397
394
  %}"><div id="io3lid" class="button-bar__item__icon">{% liquid
398
- assign var_io3lid_454 = state_isqe61-589___data.icon
399
- echo var_io3lid_454
395
+ assign var_io3lid_1950 = state_isqe61-589___data.icon
396
+ echo var_io3lid_1950
400
397
  %}</div><div id="i87asw" class="connector__description">{% liquid
401
- assign var_i87asw_455 = state_isqe61-589___data.text
402
- echo var_i87asw_455
403
- %}</div></a></div>{% endif %}{% endfor %}</div><h3 id="i8w75b" class="margin-30">{% liquid
404
- assign var_i8w75b_464 = state_imgx81-1985_imgx81-7uhkrqd2giq.advanced_users
405
- echo var_i8w75b_464
406
- %}</h3><div id="igp4xl">{% liquid
407
- assign var_id9k25_485 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
398
+ assign var_i87asw_1951 = state_isqe61-589___data.text
399
+ echo var_i87asw_1951
400
+ %}</div></a></div>{% endif %}{% endfor %}</div><DETAILS id="igp4xl"><summary id="i8w75b" class="margin-30">{% liquid
401
+ assign var_i8w75b_1960 = state_imgx81-1985_imgx81-7uhkrqd2giq.advanced_users
402
+ echo var_i8w75b_1960
403
+ %}</summary>{% liquid
404
+ assign var_id9k25_1981 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
408
405
  %}
409
- {% for state_isqe61-589___data in var_id9k25_485 %}
406
+ {% for state_isqe61-589___data in var_id9k25_1981 %}
410
407
  {% liquid
411
- assign var_id9k25_483 = forloop.index0
412
- assign var_id9k25_484 = "0"
408
+ assign var_id9k25_1979 = forloop.index0
409
+ assign var_id9k25_1980 = "0"
413
410
  %}
414
- {% if var_id9k25_483 > var_id9k25_484 %}
411
+ {% if var_id9k25_1979 > var_id9k25_1980 %}
415
412
  <div id="id9k25" href="" class="">{% liquid
416
- assign var_irgt6z_478 = state_isqe61-589___data.background_color
417
- assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_irgt6z_478
413
+ assign var_irgt6z_1974 = state_isqe61-589___data.background_color
414
+ assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_irgt6z_1974
418
415
  %}
419
416
  {% liquid
420
- assign var_irgt6z_479 = state_isqe61-589___data.color
421
- assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_irgt6z_479
417
+ assign var_irgt6z_1975 = state_isqe61-589___data.color
418
+ assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_irgt6z_1975
422
419
  %}<a href="{% liquid
423
- assign var_irgt6z_480 = state_isqe61-589___data.auth_url
424
- echo var_irgt6z_480
420
+ assign var_irgt6z_1976 = state_isqe61-589___data.auth_url
421
+ echo var_irgt6z_1976
425
422
  %}" id="irgt6z" class="connector__card" data-style="{% liquid
426
- assign var_irgt6z_481 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
427
- echo var_irgt6z_481
423
+ assign var_irgt6z_1977 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
424
+ echo var_irgt6z_1977
428
425
  %}" title="{% liquid
429
- assign var_irgt6z_482 = state_isqe61-589___data.description | strip_html
430
- echo var_irgt6z_482
426
+ assign var_irgt6z_1978 = state_isqe61-589___data.description | strip_html
427
+ echo var_irgt6z_1978
431
428
  %}"><div class="button-bar__item__icon">{% liquid
432
- assign var_idf1xo_476 = state_isqe61-589___data.icon
433
- echo var_idf1xo_476
429
+ assign var_iublx3_1972 = state_isqe61-589___data.icon
430
+ echo var_iublx3_1972
434
431
  %}</div><div class="connector__description">{% liquid
435
- assign var_il50gj_477 = state_isqe61-589___data.text
436
- echo var_il50gj_477
437
- %}</div></a></div>{% endif %}{% endfor %}</div><div id="i3cney" class="button-bar"><a id="iacshy" class="button big-button connector__card" v-if="!loading" :key="index" :style="{ backgroundColor: connector.background, color: connector.color }" v-for="(connector, index) in connectors" v-on-click="openLogin(connector)"><div id="iiwn36"><div class="button-bar__item__icon" :style="`background: url('${connector.icon}'); background-repeat: no-repeat; background-size: contain;`"></div><div id="if4gvb" class="" v-text="connector.displayName">Name<br/></div></div><div id="isndui">This connector is about blablabla<br/></div></a></div></div><div id="i9msnk" class="text-white top-space-20" v-if="error" v-text="message" :test="message">Insert your text here</div><div id="i6akll" class="button button--tertiary text-centered" v-if="error" v-on:click="logout()">{{ api-translations[lang]["Logout"] }}</div></div></div></body>
432
+ assign var_idatmu_1973 = state_isqe61-589___data.text
433
+ echo var_idatmu_1973
434
+ %}</div></a></div>{% endif %}{% endfor %}</DETAILS><div id="i3cney" class="button-bar"><a id="iacshy" class="button big-button connector__card" v-if="!loading" :key="index" :style="{ backgroundColor: connector.background, color: connector.color }" v-for="(connector, index) in connectors" v-on-click="openLogin(connector)"><div id="iiwn36"><div class="button-bar__item__icon" :style="`background: url('${connector.icon}'); background-repeat: no-repeat; background-size: contain;`"></div><div id="if4gvb" class="" v-text="connector.displayName">Name<br/></div></div><div id="isndui">This connector is about blablabla<br/></div></a></div><div id="ijflxq" class="text-centered">{% liquid
435
+ assign var_ijflxq_1982 = state_imgx81-1985_imgx81-7uhkrqd2giq.help
436
+ echo var_ijflxq_1982
437
+ %}</div></div><div id="i9msnk" class="text-white top-space-20" v-if="error" v-text="message" :test="message">Insert your text here</div><div id="i6akll" class="button button--tertiary text-centered" v-if="error" v-on:click="logout()">{{ api-translations[lang]["Logout"] }}</div></div></div></body>
438
438
  </html>
@@ -0,0 +1,354 @@
1
+ <!DOCTYPE html>
2
+ <html lang="">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="stylesheet" href="/css/connectors-d7d00ca2aa235acdf7535c1e8faba94fe05e8a8863db5fc4421cd9369c811928.css" />
6
+ <!-- font google -->
7
+ <link rel="preconnect" href="https://fonts.gstatic.com" />
8
+ <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
9
+ {% render "alternate.liquid" languages: languages lang: lang page: page %}
10
+ <style>
11
+ .before-js > * {
12
+ visibility: hidden;
13
+ opacity: 0;
14
+ transition: opacity .5s ease;
15
+ }
16
+ .before-js[data-gjs-type] > *, /* This is only inside the editor, .before-js needs to be on the body */
17
+ .after-js > * {
18
+ visibility: visible;
19
+ opacity: 1;
20
+ }
21
+ .before-js:before {
22
+ content: 'Loading';
23
+ position: absolute;
24
+ top: 49%;
25
+ left: 49%;
26
+ }
27
+ .before-js[data-gjs-type]:before, /* This is only inside the editor, .before-js needs to be on the body */
28
+ .after-js:before {
29
+ content: none;
30
+ }
31
+ /*BTNS*/
32
+ .button, .pointer {
33
+ cursor: pointer!important}
34
+ .button{
35
+ min-width:110px;
36
+ }
37
+ /*BTNS*/
38
+ a {
39
+ text-decoration: none;
40
+ color:#8873FE;
41
+ }
42
+ a:hover {
43
+ text-decoration: underline;
44
+ }
45
+ .uppercase {
46
+ text-transform: uppercase;
47
+ }
48
+ .underline:hover{
49
+ text-decoration: underline;
50
+ text-decoration-thickness: from-font;
51
+ text-underline-position: under;
52
+ }
53
+ /*footer position*/
54
+ .main-min-height {
55
+ min-height: calc(100vh - 560px);
56
+ }
57
+ /*footer position*/
58
+ /*label*/
59
+ ::placeholder {
60
+ color: #8873FE;
61
+ }
62
+ input:focus {
63
+ border: 2px solid #9977FE;
64
+ background-color:#ffffff;
65
+ }
66
+ :focus {
67
+ outline: none;
68
+ }
69
+ /*label*/
70
+ .skeleton-anim:after {
71
+ width: 100%;
72
+ height: 100%;
73
+ position: absolute;
74
+ top: 0;
75
+ left: 0;
76
+ content: "";
77
+ background:
78
+ linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
79
+ linear-gradient(transparent, transparent),
80
+ radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
81
+ linear-gradient(transparent, transparent);
82
+ background-repeat: no-repeat;
83
+ background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
84
+ background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
85
+ animation: loading 1.5s infinite;
86
+ }
87
+ @keyframes loading {
88
+ to {
89
+ background-position: 200% 0, 0 0, 0 190px, 50px 195px;
90
+ }
91
+ }
92
+ /*FX ANIMATIONS*/
93
+ /*scale-round-inside_pour-BTN*/
94
+ .fx-scale-round {
95
+ position:relative;
96
+ z-index: 10;
97
+ overflow: hidden;
98
+ }
99
+ .fx-scale-round::after {
100
+ content: "";
101
+ background: #ffffff;
102
+ position: absolute;
103
+ z-index: -1;
104
+ border-radius: 50%;
105
+ left: -50%;
106
+ right: -50%;
107
+ top: -100%;
108
+ bottom: -100%;
109
+ transform: scale(0, 0);
110
+ transform-origin: center bottom;
111
+ transition: all 0.3s ease-out;
112
+ }
113
+ .fx-scale-round:hover {
114
+ transform-origin: center bottom;
115
+ transform: scale(1.1);
116
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
117
+ }
118
+ .fx-scale-round:hover::after {
119
+ transform: scale(1, 1);
120
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
121
+ }
122
+ /*scale-round-inside_pour-BTN*/
123
+ /*scale*/
124
+ .fx-scale:hover {
125
+ transform-origin: center bottom;
126
+ transform: scale(1.1);
127
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
128
+ }
129
+ /*flash*/
130
+ .fx-flash:hover {
131
+ animation: flash-in .25s ;
132
+ }
133
+ /*flash-in animation*/
134
+ @keyframes flash-in{
135
+ 0% {
136
+ opacity:.25;
137
+ }
138
+ 100% {
139
+ opacity:1;
140
+ }
141
+ }
142
+ /*flash-in animation*/
143
+ /*FX ANIMATIONS*/
144
+ </style>
145
+ <script src="/js/vue.global.prod.js"></script>
146
+ <script src="/js/main.js"></script>
147
+ <script type="module">
148
+ const CONNECTORS_PATH = '/connectors/'
149
+ window.addEventListener('load', function() {
150
+ const { createApp } = Vue;
151
+ const { api, constants, types } = silex;
152
+ const {
153
+ ConnectorType,
154
+ } = types
155
+ const {
156
+ setServerUrl,
157
+ getUser,
158
+ logout,
159
+ websiteDelete,
160
+ websiteDuplicate,
161
+ websiteList,
162
+ websiteCreate,
163
+ websiteMetaWrite,
164
+ } = api
165
+ function toSafeId(name) {
166
+ return name.replace(/[/\\?%*:|"<>]/g, '_')
167
+ }
168
+
169
+ const App = {
170
+ data() {
171
+ return {
172
+ websites: [],
173
+ newWebsiteName: '',
174
+ showCreationForm: false,
175
+ error: null,
176
+ message: null,
177
+ loggedIn: false,
178
+ loading: true,
179
+ storage: null,
180
+ user: null,
181
+ showMenu: false,
182
+ empty: false,
183
+ }
184
+ },
185
+ mounted() {
186
+ this.init()
187
+ },
188
+
189
+ methods: {
190
+ async init() {
191
+ try {
192
+ // Init Silex server path
193
+ // Go up one level because of the language prefix
194
+ setServerUrl(window.location.origin)
195
+ // Start
196
+ const user = await getUser({type: ConnectorType.STORAGE})
197
+ // Escape single quotes in the picture URL and decode the picture URL
198
+ user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
199
+ if(user) {
200
+ this.user = user
201
+ this.loggedIn = true
202
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
203
+ this.empty = this.websites.length === 0
204
+ this.loading = false
205
+ } else {
206
+ this.openLogin()
207
+ }
208
+ } catch (error) {
209
+ console.error(error)
210
+ this.loading = false
211
+ if(error.code === 401 || error.httpStatusCode === 401) {
212
+ this.loggedIn = false
213
+ this.openLogin()
214
+ } else {
215
+ this.error = `{{ api-translations[lang]["Failed to start dashboard"] }} - ${error.message}`
216
+ this.message = ''
217
+ }
218
+ }
219
+ },
220
+
221
+ openLogin(id, lang) {
222
+ //throw new Error('debug')
223
+ const path = `/{{lang}}${CONNECTORS_PATH}`
224
+ console.log(window.location.pathname, window.location.path, path)
225
+ if(window.location.pathname === path) return
226
+ window.open(path, '_self')
227
+ },
228
+
229
+ openEditor(id, lang) {
230
+ window.open(`/?id=${id}&lang=${lang}&connectorId=${this.user.storage.connectorId}`, '_self')
231
+ },
232
+
233
+ async logout() {
234
+ await logout({
235
+ type: ConnectorType.STORAGE,
236
+ connectorId: this.user.storage.connectorId,
237
+ })
238
+ window.location.reload()
239
+ },
240
+
241
+ async createWebsite() {
242
+ try {
243
+ if (!this.newWebsiteName) throw new Error('{{ api-translations[lang]["You need to provide a website name"] }}')
244
+ this.loading = true
245
+ const websiteId = toSafeId(this.newWebsiteName)
246
+ const result = await websiteCreate({
247
+ websiteId,
248
+ data: {
249
+ name: this.newWebsiteName,
250
+ imageUrl: null,
251
+ },
252
+ connectorId: this.user.storage.connectorId
253
+ })
254
+ this.message = '{{ api-translations[lang]["Website created successfully"] }}'
255
+ this.error = ''
256
+ this.newWebsiteName = ''
257
+ this.showCreationForm = false;
258
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
259
+ this.empty = this.websites.length === 0
260
+ this.loading = false
261
+ return result
262
+ } catch (error) {
263
+ this.loading = false
264
+ console.error(error)
265
+ this.error = `{{ api-translations[lang]["Failed to create website"] }} - ${error.message}`
266
+ this.message = ''
267
+ }
268
+ },
269
+
270
+ async deleteWebsite(websiteId) {
271
+ const ok = confirm('{{ api-translations[lang]["Deleting a website? Are your sure? Really?"] }}')
272
+ if (!ok) return
273
+ this.loading = true
274
+ try {
275
+ const result = await websiteDelete({websiteId, connectorId: this.user.storage.connectorId})
276
+ this.message = '{{ api-translations[lang]["Website deleted successfully"] }}'
277
+ this.error = ''
278
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
279
+ this.empty = this.websites.length === 0
280
+ this.loading = false
281
+ return result
282
+ } catch (error) {
283
+ this.loading = false
284
+ this.error = `{{ api-translations[lang]["Failed to delete website"] }} - ${error.message}`
285
+ this.message = ''
286
+ }
287
+ },
288
+
289
+ async duplicateWebsite(websiteId) {
290
+ this.loading = true
291
+ try {
292
+ await websiteDuplicate({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
293
+ this.error = ''
294
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
295
+ this.message = '{{ api-translations[lang]["Website duplicated successfully"] }}'
296
+ this.empty = this.websites.length === 0
297
+ this.loading = false
298
+ } catch (error) {
299
+ this.loading = false
300
+ this.error = `{{ api-translations[lang]["Failed to duplicate website"] }} - ${error.message}`
301
+ this.message = ''
302
+ }
303
+ },
304
+
305
+ async renameWebsite(websiteId) {
306
+ const website = this.websites.find(w => w.websiteId === websiteId)
307
+ const name = prompt('{{ api-translations[lang]["New name for this website"] }}', website.name)
308
+ if (!name) return
309
+ this.loading = true
310
+ try {
311
+ const result = await websiteMetaWrite({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
312
+ this.message = '{{ api-translations[lang]["Website renamed successfully"] }}'
313
+ this.error = ''
314
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
315
+ this.empty = this.websites.length === 0
316
+ this.loading = false
317
+ return result
318
+ } catch (error) {
319
+ this.loading = false
320
+ this.error = `{{ api-translations[lang]["Failed to rename website"] }} - ${error.message}`
321
+ this.message = ''
322
+ }
323
+ },
324
+ },
325
+ };
326
+ // Prepare elements for vue
327
+ document.querySelectorAll('[v-text], [v-html]')
328
+ .forEach(el => el.innerText = '')
329
+
330
+ // Create the app
331
+ const app = createApp(App);
332
+
333
+ // Suppress "v-text will override element children" warning
334
+ app.config.compilerOptions.directiveTransforms = {
335
+ text: false,
336
+ }
337
+
338
+ // Mount the app
339
+ app.mount('.app');
340
+
341
+
342
+ // Remove loading
343
+ setTimeout(() => {
344
+ document.querySelector('.before-js').classList.add('after-js')
345
+ }, 100)
346
+ })
347
+ </script>
348
+
349
+ <title>Silex Dashboard</title>
350
+ <link rel="icon" href="/assets/favicon-32x32.png" />
351
+ <meta name="og:title" property="og:title" content="Silex Dashboard"/>
352
+ <link href="https://fonts.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
353
+ <body id="i2hcfw" class="body app before-js"><A id="ixzhcr" href="/" class="button button-bar__item--secondary">{{ api-translations[lang]["Back to home"] }}</A><div id="imawg3" class="bg-silex-purpel"><div id="imgx81"><div id="iikf0s" class="box box_login"><div id="ie0dxn" class="text-centered"><img id="ior0hl" src="/assets/logo-silex.svg"/><P id="it2175" class="subtitle-16">Please login to continue<br/></P></div><H3 id="iqc1xf" class="margin-top">Recommended</H3><div id="in62y2"><DIV id="isqe61"><A id="i0vhjr" href="https://" class="connector__card"><div id="io3lid" class="button-bar__item__icon"></div><div id="i87asw" class="connector__description">Lgin with <SPAN href="" id="i0tt68">Name</SPAN><br/></div></A></DIV></div><H3 id="i8w75b" class="margin-30">Advanced</H3><div id="igp4xl"><DIV id="id9k25" href=""><A href="https://" id="irgt6z" class="connector__card"><div class="button-bar__item__icon"></div><div class="connector__description">Lgin with <SPAN href="" id="i7ld7f">Name</SPAN><br/></div></A></DIV></div><div id="i3cney" class="button-bar"><A id="iacshy" class="button big-button connector__card"><div id="iiwn36"><div class="button-bar__item__icon"></div><div id="if4gvb">Name<br/></div></div><div id="isndui">This connector is about blablabla<br/></div></A></div><div id="ijflxq" class="text-centered">Do you need help? Check <a href="http://localhost:6805/?id=dashboard">the documentation</a>, the video tutorials or just ask for help in the forums or poke us in the chat.<br/></div></div><div id="i9msnk" class="text-white top-space-20">Insert your text here</div><div id="i6akll" class="button button--tertiary text-centered">{{ api-translations[lang]["Logout"] }}</div></div></div><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357" class="nav"><A href="{{ item.url }}" class="nav__item uppercase fx-flash nav_item--active">Sites</A></NAV><div class="lang"><A href="/{{ link.code }}" class="lang__item nav__item uppercase">en</A></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge" class="button button--tertiary text-centered">Logout</div></div></div></HEADER></body>
354
+ </html>
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;}.button-bar__item--secondary{font-size:0.8rem;}.connector__card{align-items:center;margin:0px auto 0px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;width:100%;padding:30px 0px 30px 0px;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;}.button-bar__item--secondary{font-size:0.8rem;}.connector__card{align-items:center;margin:10px auto 10px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;width:100%;padding:30px 0px 30px 0px;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.nav__item{margin:0px 10px 0px 10px;font-size:0.8rem;padding:24px 0px 24px 0px;color:#4a4a4a;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.menu-bar{display:flex;align-items:center;justify-content:space-between;background-color:#ffffff;height:94px;padding:0px 100px 0px 100px;width:100%;}.nav{width:100%;margin:0px 20px 0px 20px;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.nav__item.active{color:black;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.lang__item{margin:0px 5px 0px 5px;}.nav__logo{height:50px;}.user-icon__image{width:100%;height:100%;}.user__wrapper{border:1px solid white;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 0 0 20px;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.user-icon__wrapper{border:1px solid #f0f0f0;background-color:#f0f0f0;border-radius:50% 50% 50% 50%;width:40px;height:40px;overflow:hidden hidden;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;}.button-bar__item--secondary{font-size:0.8rem;}#in0357{display:flex;}#ir10ge{padding:10px;}.connector__card{align-items:center;margin:0px auto 0px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;width:100%;padding:30px 0px 30px 0px;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}.nav__item:hover{text-decoration:none;color:#8873fe;}.nav_item--active:first-child{color:#8873fe;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.nav__item{margin:0px 10px 0px 10px;font-size:0.8rem;padding:24px 0px 24px 0px;color:#4a4a4a;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.menu-bar{display:flex;align-items:center;justify-content:space-between;background-color:#ffffff;height:94px;padding:0px 100px 0px 100px;width:100%;}.padding-normal{padding:0px 24px 0px 24px;}#i9jq{display:flex;}.nav{width:100%;margin:0px 20px 0px 20px;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}#ibsgw{position:relative;top:3px;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.rounded{border-radius:4px 4px 4px 4px;}.footer{display:flex;margin:50px 0px 0px 0px;background-color:#ffffff;justify-content:space-evenly;padding:30px 30px 60px 30px;}.skeleton-text.skeleton{background-color:#dddddd;color:transparent;opacity:0.31;border-radius:5px 5px 5px 5px;}.skeleton.skeleton-button{color:transparent;opacity:0.31;background-color:#dddddd;border-radius:5px 5px 5px 5px;width:140px;}.skeleton-anim{position:relative;}.nav__item.active{color:black;}.margin-20{margin:20px 0px 20px 0px;}#i0ro3{display:none;}.loading__item.loaded-true{display:none;}.flex-no-shrink{flex-shrink:0;}.form{padding:10px 0px 10px 0px;border-radius:5px 5px 5px 5px;}#i1nmbc{flex-shrink:0;}.input{padding:10px 10px 10px 10px;background-color:transparent;border:2px solid #8873fe;margin:10px 0px 10px 0px;border-radius:4px 4px 4px 4px;}.full-width{width:100%;}.v-space{margin:10px 0px 10px 0px;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box__header{margin:0px 0px 0px 0px;padding:10px 0px 10px 0px;font-weight:700;font-size:1.625rem;color:rgba(43,27,99,0.5);}.box.flex-between{align-items:center;}.flex-between{display:flex;align-items:center;justify-content:space-between;}.button--tertiary{background-color:transparent;font-weight:400;}.icon-font{font-size:1.5rem;line-height:1px;margin:0px 2px 0px 2px;}.lang__item{margin:0px 5px 0px 5px;}.top-space-40{margin:40px 0 0 0;}.nav__logo{height:50px;}.user-icon__image{width:100%;height:100%;}.user__wrapper{border:1px solid white;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 0 0 20px;}.right-space-20{margin:0px 20px 0px 0px;}#iksw4d{padding:10px;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}.user-icon__wrapper{border:1px solid #f0f0f0;background-color:#f0f0f0;border-radius:50% 50% 50% 50%;width:40px;height:40px;overflow:hidden hidden;}.title-40{margin:0 0 10px 0;font-size:2.5rem;font-weight:700;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(../assets/bg-purpel-silex.webp);}.section-top{max-width:1200px;padding:40px 30px 40px 30px;height:226px;display:flex;flex-direction:column;justify-content:center;margin:0px auto 0px auto;}.text-centered{text-align:center;}.box-message{background-color:rgba(43,27,99,0.3);border-radius:4px 4px 4px 4px;padding:20px 30px 20px 30px;margin:10px 0px 10px 0px;}.text-white{color:#ffffff;}.bold{font-weight:800;}.button-bar__item--link{background-color:transparent;border:0px solid black;font-size:0.8rem;color:#8873fe;}.padding-30{padding:30px 30px 30px 30px;}.right-space-40{margin:0 40px 0 0;}.title-26{font-size:1.625rem;margin:10px 0px 10px 0px;}.empty-image{min-height:500px;background-image:url(../assets/empty-projects-sos.gif);background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:contain;}.padding-50-30{padding:50px 30px 50px 30px;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.color-2B1B63-80{color:rgba(43,27,99,0.8);}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.box-message-text{margin:0px 0 0 0;font-weight:300;}.website-max-width{max-width:1200px;}.margin-80{margin:80px auto 80px auto;}.button-bar__item--secondary{font-size:0.8rem;}.skeleton{line-height:1.1rem;}#isucae{min-height:100px;}.footer__column{display:flex;flex-direction:column;flex-grow:1;text-align:center;}.footer__item{padding:10px 10px 10px 10px;}#igsxoc{position:relative;top:3px;}.box--centered{display:flex;flex-direction:column;align-items:center;}.button-bar__title:hover{color:#8873fe;}.button-bar__item--icon{margin:0px 0 0 0;padding:5px 5px 5px 5px;}.nav__item:hover{text-decoration:none;color:#8873fe;}.nav_item--active:first-child{color:#8873fe;}