@silexlabs/silex-dashboard 1.0.57 → 1.0.59

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 (45) hide show
  1. package/{templates/css/connectors-187142925083dd32992cd4c78462f9a7e20f6fc462524b566ed616fd6d3d2b46.css → _site/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css} +1 -1
  2. package/{templates/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css → _site/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css} +1 -1
  3. package/_site/en/connectors/index.html +130 -218
  4. package/_site/en/index.html +111 -2
  5. package/_site/fr/connectors/index.html +130 -218
  6. package/_site/fr/index.html +111 -2
  7. package/_site/js/main.js +91 -91
  8. package/_site/js/main.js.LICENSE.txt +1 -1
  9. package/_site/js/vue.cjs.js +1 -1
  10. package/_site/js/vue.cjs.prod.js +1 -1
  11. package/_site/js/vue.esm-browser.js +6035 -6011
  12. package/_site/js/vue.esm-browser.prod.js +6 -9
  13. package/_site/js/vue.esm-bundler.js +1 -1
  14. package/_site/js/vue.global.js +4940 -4916
  15. package/_site/js/vue.global.prod.js +6 -9
  16. package/_site/js/vue.runtime.esm-browser.js +5930 -5886
  17. package/_site/js/vue.runtime.esm-browser.prod.js +2 -9
  18. package/_site/js/vue.runtime.esm-bundler.js +1 -1
  19. package/_site/js/vue.runtime.global.js +5435 -5391
  20. package/_site/js/vue.runtime.global.prod.js +2 -9
  21. package/package.json +8 -8
  22. package/templates/connectors-en.11tydata.mjs +25 -10
  23. package/templates/connectors-en.html +145 -260
  24. package/templates/connectors-fr.11tydata.mjs +25 -10
  25. package/templates/connectors-fr.html +145 -260
  26. package/{_site/css/connectors-187142925083dd32992cd4c78462f9a7e20f6fc462524b566ed616fd6d3d2b46.css → templates/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css} +1 -1
  27. package/{_site/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css → templates/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css} +1 -1
  28. package/templates/websites-en.11tydata.mjs +1 -0
  29. package/templates/websites-en.html +220 -81
  30. package/templates/websites-fr.11tydata.mjs +1 -0
  31. package/templates/websites-fr.html +220 -81
  32. package/tina/tina-lock.json +1 -1
  33. package/_site/connectors/index.html +0 -354
  34. package/_site/css/connectors-61bd21c2345101e48cc530cacf3afc0156ce7e089fcef3a34f853a537f0c55f2.css +0 -1
  35. package/_site/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css +0 -1
  36. package/_site/css/connectors-d7d00ca2aa235acdf7535c1e8faba94fe05e8a8863db5fc4421cd9369c811928.css +0 -1
  37. package/_site/css/websites-5cf941724b3798508df646193a48dcf4ec08e709d92aa33e06f09632a8b1b0a5.css +0 -1
  38. package/_site/websites/index.html +0 -350
  39. package/js/index.js +0 -0
  40. package/templates/connectors.html +0 -354
  41. package/templates/css/connectors-61bd21c2345101e48cc530cacf3afc0156ce7e089fcef3a34f853a537f0c55f2.css +0 -1
  42. package/templates/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css +0 -1
  43. package/templates/css/connectors-d7d00ca2aa235acdf7535c1e8faba94fe05e8a8863db5fc4421cd9369c811928.css +0 -1
  44. package/templates/css/websites-5cf941724b3798508df646193a48dcf4ec08e709d92aa33e06f09632a8b1b0a5.css +0 -1
  45. package/templates/websites.html +0 -350
@@ -2,7 +2,7 @@
2
2
  <html lang="">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <link rel="stylesheet" href="/css/connectors-bb5104e4124d29465b3866b632c9a173d84b60bc78e4cd1607bc92a1ca85fb5b.css" />
5
+ <link rel="stylesheet" href="/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css" />
6
6
  <!-- font google -->
7
7
  <link rel="preconnect" href="https://fonts.gstatic.com" />
8
8
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
@@ -34,6 +34,16 @@
34
34
  .button{
35
35
  min-width:110px;
36
36
  }
37
+ details {
38
+ max-height: 2em;
39
+ display: block;
40
+ overflow: hidden;
41
+ transition: max-height .75s ease;
42
+ }
43
+ details[open] {
44
+ max-height: 40em;
45
+ }
46
+
37
47
  /*BTNS*/
38
48
  a {
39
49
  text-decoration: none;
@@ -145,246 +155,148 @@
145
155
  <script src="/js/vue.global.prod.js"></script>
146
156
  <script src="/js/main.js"></script>
147
157
  <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
- }
158
+ const CONNECTORS_PATH = ''
159
+ const { createApp } = Vue;
160
+ const { api, constants, types } = silex;
161
+ const {
162
+ ConnectorType,
163
+ } = types
164
+ const {
165
+ setServerUrl,
166
+ getUser,
167
+ logout,
168
+ websiteDelete,
169
+ websiteDuplicate,
170
+ websiteList,
171
+ websiteCreate,
172
+ websiteMetaWrite,
173
+ connectorList,
174
+ } = api
175
+ function toSafeId(name) {
176
+ return name.replace(/[/\\?%*:|"<>]/g, '_')
177
+ }
168
178
 
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,
179
+ const App = {
180
+ data() {
181
+ return {
182
+ websites: [],
183
+ connectors: [],
184
+ newWebsiteName: '',
185
+ showCreationForm: false,
186
+ error: null,
187
+ message: null,
188
+ loggedIn: false,
189
+ loading: true,
190
+ storage: null,
191
+ user: null,
192
+ showMenu: false,
193
+ empty: false,
194
+ }
195
+ },
196
+ mounted() {
197
+ this.init()
198
+ },
199
+
200
+ methods: {
201
+ async init() {
202
+ try {
203
+ // Init Silex server path
204
+ // Go up one level because of the language prefix
205
+ setServerUrl(window.location.origin)
206
+ await this.getConnectors()
207
+ } catch (error) {
208
+ console.error(error)
209
+ this.loading = false
210
+ this.error = `Erreur, impossible de démarrer le tableau de bord - ${error.message}`
211
+ this.message = ''
183
212
  }
184
213
  },
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 = `Erreur, impossible de démarrer le tableau de bord - ${error.message}`
216
- this.message = ''
217
- }
218
- }
219
- },
220
-
221
- openLogin(id, lang) {
222
- //throw new Error('debug')
223
- const path = `/fr${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
214
 
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('Vous n\'avez pas donné de nom à votre site')
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 = 'Le site a bien été créé'
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 = `Erreur, le site n\'a pas été créé - ${error.message}`
266
- this.message = ''
267
- }
268
- },
215
+ getIcon(connector) {
216
+ return decodeURIComponent(connector.icon.split(',').slice(1).join(','))
217
+ },
269
218
 
270
- async deleteWebsite(websiteId) {
271
- const ok = confirm('Etes vous sûr.e de vouloir supprimer définitivement ce site ?')
272
- if (!ok) return
273
- this.loading = true
274
- try {
275
- const result = await websiteDelete({websiteId, connectorId: this.user.storage.connectorId})
276
- this.message = 'Le site a bien été effacé'
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 = `Erreur, le site n\'a pas été effacé - ${error.message}`
285
- this.message = ''
286
- }
287
- },
219
+ getHref(connector) {
220
+ console.log(connector, connector.oauthUrl)
221
+ return connector.oauthUrl
222
+ },
288
223
 
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 = 'Le site a bien été dupliqué'
296
- this.empty = this.websites.length === 0
297
- this.loading = false
298
- } catch (error) {
299
- this.loading = false
300
- this.error = `Erreur, le site n'a pas été dupliqué - ${error.message}`
301
- this.message = ''
302
- }
303
- },
224
+ getConnectorStyle(connector) {
225
+ return {
226
+ backgroundImage: `url(${connector.icon})`,
227
+ //color: connector.color,
228
+ //backgroundColor: connector.background
229
+ }
230
+ },
304
231
 
305
- async renameWebsite(websiteId) {
306
- const website = this.websites.find(w => w.websiteId === websiteId)
307
- const name = prompt('Nouveau nom', website.name)
308
- if (!name) return
232
+ async getConnectors() {
233
+ try {
309
234
  this.loading = true
310
- try {
311
- const result = await websiteMetaWrite({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
312
- this.message = 'Changement de nom effectué'
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 = `Erreur, le nom n\'a pas été changé - ${error.message}`
321
- this.message = ''
322
- }
323
- },
235
+ const connectors = await connectorList({ type: ConnectorType.STORAGE })
236
+ this.connectors = connectors
237
+ this.loading = false
238
+ } catch (error) {
239
+ this.loading = false
240
+ console.error(error)
241
+ this.error = ` - ${error.message}`
242
+ this.message = ''
243
+ }
324
244
  },
325
- };
326
- // Prepare elements for vue
327
- document.querySelectorAll('[v-text], [v-html]')
245
+ openLogin() {}
246
+ },
247
+ };
248
+ // Prepare elements for vue
249
+ document.querySelectorAll('[v-text], [v-html]')
328
250
  .forEach(el => el.innerText = '')
329
251
 
330
- // Create the app
331
- const app = createApp(App);
252
+ document.querySelectorAll('[data-remove-href]')
253
+ .forEach(el => {
254
+ el.removeAttribute('href')
255
+ el.removeAttribute('data-remove-href')
256
+ })
332
257
 
333
- // Suppress "v-text will override element children" warning
334
- app.config.compilerOptions.directiveTransforms = {
335
- text: false,
336
- }
337
258
 
338
- // Mount the app
339
- app.mount('.app');
259
+ // Create the app
260
+ const app = createApp(App);
261
+
262
+ // Mount the app
263
+ app.mount('.app');
264
+
340
265
 
266
+ // Remove loading
267
+ setTimeout(() => {
268
+ document.querySelector('.before-js').classList.add('after-js')
269
+ }, 100)
341
270
 
342
- // Remove loading
343
- setTimeout(() => {
344
- document.querySelector('.before-js').classList.add('after-js')
345
- }, 100)
346
- })
347
271
  </script>
348
272
 
349
273
  <title>Silex Dashboard</title>
350
274
  <link rel="icon" href="/assets/favicon-32x32.png" />
351
275
  <meta name="og:title" property="og:title" content="Silex Dashboard"/>
352
276
  <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">< Retour</A><div id="imawg3" class="bg-silex-purpel"><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">Connectez-vous pour continuer</p></div><h3 id="iqc1xf" class="margin-top">Recommandé et gratuit</h3><div id="in62y2">
354
-
355
-
356
-
357
- <div id="isqe61" class="">
358
- <a id="i0vhjr" href="/api/connector/login?connectorId=gitlab&type=STORAGE" class="connector__card" data-style="background: rgba(252, 109, 38, 0.2); color: #2B1B63;" title="Gitlab.com est le service que nous recommandons pour héberger votre site web Silex. Nous faisons confiance à l'entreprise derrière ce service, allez les voir."><div id="io3lid" class="button-bar__item__icon"><svg xmlns:svg="http://www.w3.org/2000/svg"
359
- xmlns="http://www.w3.org/2000/svg"
360
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
361
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
362
- width="100%" height="100%" viewBox="0 0 1000 963.197" version="1.1" id="svg85">
363
- <sodipodi:namedview id="namedview87" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" showgrid="false" inkscape:zoom="1" inkscape:cx="991.5" inkscape:cy="964.5" inkscape:window-width="1126" inkscape:window-height="895" inkscape:window-x="774" inkscape:window-y="12" inkscape:window-maximized="0" inkscape:current-layer="svg85" />
364
- <defs id="defs74">
365
- <!-- Styles will be applied inline -->
366
- </defs>
367
- <g id="LOGO" transform="matrix(5.2068817,0,0,5.2068817,-489.30756,-507.76085)">
368
- <path class="cls-1" style="fill:#e24329;" d="m 282.83,170.73 -0.27,-0.69 -26.14,-68.22 a 6.81,6.81 0 0 0 -2.69,-3.24 7,7 0 0 0 -8,0.43 7,7 0 0 0 -2.32,3.52 l -17.65,54 h -71.47 l -17.65,-54 a 6.86,6.86 0 0 0 -2.32,-3.53 7,7 0 0 0 -8,-0.43 6.87,6.87 0 0 0 -2.69,3.24 L 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.08,-56.04 z" id="path76" />
369
- <path class="cls-2" style="fill:#fc6d26;" d="m 282.83,170.73 -0.27,-0.69 a 88.3,88.3 0 0 0 -35.15,15.8 L 190,229.25 c 19.55,14.79 36.57,27.64 36.57,27.64 l 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.1,-56.08 z" id="path78" />
370
- <path class="cls-3" style="fill:#fca326;" d="m 153.43,256.89 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 c 0,0 -17.04,-12.89 -36.59,-27.64 -19.55,14.75 -36.57,27.64 -36.57,27.64 z" id="path80" />
371
- <path class="cls-2" style="fill:#fc6d26;" d="M 132.58,185.84 A 88.19,88.19 0 0 0 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 c 0,0 17,-12.85 36.57,-27.64 z" id="path82" />
372
- </g>
373
- </svg></div><div id="i87asw" class="connector__description">Se connecter avec GitLab.com</div></a></div>
374
-
375
-
376
-
377
- </div><DETAILS id="igp4xl"><summary id="i8w75b" class="margin-30">Utilisateurs avancés</summary>
277
+ <body id="i2hcfw" class="body app before-js"><A id="ixzhcr" href="/" class="button button-bar__item--secondary">< Retour</A><div id="imawg3" class="bg-silex-purpel"><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">Connectez-vous pour continuer</p></div><h3 id="iqc1xf" class="margin-top">Recommandé et gratuit</h3><div id="in62y2"><div id="isqe61" class="" v-for="(connector, index) in connectors.slice(0, 1)"><a id="i44y9w" href="https://" class="connector__card" :href="getHref(connector)" data-remove-href="true"><div id="io3lid" class="button-bar__item__icon" :style="getConnectorStyle(connector)"></div><div id="i87asw" class="connector__description" v-text="connector.displayName">Login with <span href="" id="i0tt68">Name</span><br/></div></a></div></div><DETAILS id="ihn6fj"><summary id="i8w75b" class="margin-30">Utilisateurs avancés</summary><div class="" v-for="(connector, index) in connectors.slice(1)"><a href="/" class="connector__card" v-bind:href="connector.oauthUrl" :key="index"><div class="button-bar__item__icon" :style="getConnectorStyle(connector)"></div><div class="connector__description" v-text="connector.displayName">Login with <span href="">Name</span><br/></div></a></div></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">Avez-vous besoin d'aide ? Consultez <a href="https://docs.silex.me/fr/user/login" target="_blank">la documentation</a>. <br><br> En vous connectant, vous acceptez les <a href="https://docs.silex.me/fr/terms" target="_blank">conditions d'utilisation</a> et la <a href="https://docs.silex.me/fr/security" target="_blank">politique de confidentialité</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()">Déconnexion</div></div></div><FOOTER class="footer">
378
278
 
379
-
279
+ <div id="iprzeh" class="footer__column"><h3 href="" class="footer__item">Social & communauté</h3>
380
280
 
381
-
281
+ <a href="https://www.silex.me/" class="footer__item" target="_blank">A propos de Silex, site officiel</a>
282
+ <a href="mailto:contact+silex-dashboard-footer@silex.me" class="footer__item" target="_blank">Email l'équipe</a>
283
+ <a href="https://short.silex.me/sponsors" class="footer__item" target="_blank">Sponsors</a>
284
+ <a href="https://short.silex.me/donate" class="footer__item" target="_blank">Faire un don</a>
285
+ <a href="https://short.silex.me/community" class="footer__item" target="_blank">Forum de la communauté</a>
286
+ <a href="https://news.silex.me/forms/nfrm_weLJnLY5" class="footer__item" target="_blank">Newsletter</a>
287
+ <a href="https://events.silex.me/" class="footer__item" target="_blank">Meetups/ Evénements</a>
288
+ <a href="https://short.silex.me/mastodon" class="footer__item" target="_blank">Mastodon</a>
289
+ <a href="https://short.silex.me/chat" class="footer__item" target="_blank">Chat</a></div>
290
+ <div id="iprzeh" class="footer__column"><h3 href="" class="footer__item">Ressources</h3>
382
291
 
383
- <div id="id9k25" href="" class="">
384
- <a href="/api/connector/login?connectorId=framagit&type=STORAGE" id="irgt6z" class="connector__card" data-style="background: rgba(252, 109, 38, 0.2); color: #2B1B63;" title="Framagit est la forge logicielle de Framasoft reposant sur le logiciel Gitlab. Elle est ouverte à tous, dans la limite de 42 projets par personne. Les projets peuvent être publics ou privés. Avec Gitlab, nous proposons aussi de l'intégration continue avec GitlabCI et l'hébergement de pages statiques avec Gitlab Pages (voir notre documentation)"><div class="button-bar__item__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.29 14.29"><g fill="#725794" transform="matrix(.02569 0 0 .02569 -.25 -.08)"><circle cx="74.91" cy="180.35" r="55"/><circle cx="137.6" cy="317.44" r="42.5"/><circle cx="189.82" cy="434.27" r="31"/></g><g fill="#dd6418" transform="matrix(.02569 0 0 .02569 -.25 -.08)"><circle cx="515.92" cy="412.86" r="26"/><circle cx="499.71" cy="484.31" r="21"/></g><path fill="#dd6418" d="M12.24 3.93c-.15.05-.64-.02-.64-.02.14.09.23.33.22.5-.48-.06-.67-.22-1.11-.45 0 0 .3.36.6.57.54.41 1.03.9 1.33 1.37.15.23.19.26.2.16a3.3 3.3 0 00-.52-1.87c-.06-.09-.07-.19-.08-.26z"/><path d="M.68.2C.53.2.45.33.56.43 5.51 2.78 4.78 5 5.42 7.55c.17.69 1.32 6.06 7.37 6.58.23.02.3-.25.06-.31-4.94-1.32-6.13-9.95-2.68-10.27.48-.04.63.16 1 .28.36.12.93.16 1.1.13.32-.6-.25-1.28-.73-1.78.52-.34 2.2-.71 2.4-.8.13-.05.07-.25-.04-.27-.77.05-2.6.2-3.43.52-1.45-.88-3.34-.2-4.3 1.3C5.19 1.5 3.81 1.08.67.2zM8.8 1.54c.74 0 .72.31-.24.64a3.76 3.76 0 00-2.38 2.2c-.11-.17.43-2.56 2.62-2.84z"/></svg></div><div class="connector__description">Se connecter avec framagit.org</div></a></div>
385
-
292
+ <a href="https://short.silex.me/code" class="footer__item" target="_blank">Code source</a>
293
+ <a href="http://docs.silex.me/" class="footer__item" target="_blank">Documentation</a>
294
+ <a href="https://video.silex.me/my-library/video-playlists" class="footer__item" target="_blank">Vidéos</a>
295
+ <a href="https://short.silex.me/roadmap" class="footer__item" target="_blank">Feuille de route</a>
296
+ <a href="https://short.silex.me/contribute" class="footer__item" target="_blank">Contribuer</a></div>
297
+ <div id="iprzeh" class="footer__column"><h3 href="" class="footer__item">Articles et revues</h3>
386
298
 
387
- <div id="id9k25" href="" class="">
388
- <a href="/api/connector/login?connectorId=ftp&type=STORAGE" id="irgt6z" class="connector__card" data-style="background: #0066CC; color: #ffffff;" title="FTP est destiné aux utilisateurs professionnels qui souhaitent héberger leurs sites web avec une société d'hébergement de leur choix.
389
- "><div class="button-bar__item__icon"><svg xmlns='http://www.w3.org/2000/svg' height='100%' viewBox='0 0 512 512'> <path d='M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z' /> </svg></div><div class="connector__description">Se connecter avec un FTP</div></a></div></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">Avez-vous besoin d'aide ? Consultez <a href="https://docs.silex.me/fr/user/login" target="_blank">la documentation</a>. <br><br> En vous connectant, vous acceptez les <a href="https://docs.silex.me/fr/terms" target="_blank">conditions d'utilisation</a> et la <a href="https://docs.silex.me/fr/security" target="_blank">politique de confidentialité</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()">Déconnexion</div></div></div></body>
299
+ <a href="https://short.silex.me/alternatives_fr" class="footer__item" target="_blank">Alternatives à Silex</a>
300
+ <a href="https://short.silex.me/reviews_fr" class="footer__item" target="_blank">Revues de Silex</a>
301
+ <a href="https://short.silex.me/press_fr" class="footer__item" target="_blank">Silex dans la presse</a></div></FOOTER></body>
390
302
  </html>
@@ -2,7 +2,7 @@
2
2
  <html lang="">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <link rel="stylesheet" href="/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css" />
5
+ <link rel="stylesheet" href="/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css" />
6
6
  <!-- font google -->
7
7
  <link rel="preconnect" href="https://fonts.gstatic.com" />
8
8
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
@@ -34,6 +34,16 @@
34
34
  .button{
35
35
  min-width:110px;
36
36
  }
37
+ details {
38
+ max-height: 2em;
39
+ display: block;
40
+ overflow: hidden;
41
+ transition: max-height .75s ease;
42
+ }
43
+ details[open] {
44
+ max-height: 40em;
45
+ }
46
+
37
47
  /*BTNS*/
38
48
  a {
39
49
  text-decoration: none;
@@ -195,8 +205,8 @@ window.addEventListener('load', function() {
195
205
  // Start
196
206
  const user = await getUser({type: ConnectorType.STORAGE})
197
207
  // Escape single quotes in the picture URL and decode the picture URL
198
- user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
199
208
  if(user) {
209
+ user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
200
210
  this.user = user
201
211
  this.loggedIn = true
202
212
  this.websites = await websiteList({connectorId: this.user.storage.connectorId})
@@ -378,6 +388,105 @@ window.addEventListener('load', function() {
378
388
  <a href="https://short.silex.me/contribute" class="footer__item" target="_blank">Contribuer</a></div>
379
389
  <div id="isucae" class="footer__column"><h3 id="ipa5zg" href="" class="footer__item">Articles et revues</h3>
380
390
 
391
+ <a href="https://short.silex.me/alternatives_fr" class="footer__item" target="_blank">Alternatives à Silex</a>
392
+ <a href="https://short.silex.me/reviews_fr" class="footer__item" target="_blank">Revues de Silex</a>
393
+ <a href="https://short.silex.me/press_fr" class="footer__item" target="_blank">Silex dans la presse</a></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2" class="nav">
394
+
395
+ <a href="/" class="nav__item uppercase fx-flash nav_item--active" target="">Sites</a>
396
+ <a href="http://docs.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Docs</a>
397
+ <a href="https://www.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">A propos</a>
398
+ <a href="https://community.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Communauté</a>
399
+ <a href="https://mail-list.silexlabs.org/subscription/cemnfkaVrK?locale=fr-FR&source=silex-dashboard" class="nav__item uppercase fx-flash nav_item--active" target="_blank">News</a></NAV>
400
+
401
+ <div class="lang"><a href="/en" class="lang__item nav__item uppercase">EN</a></div>
402
+ <div class="lang"><a href="/fr" class="lang__item nav__item uppercase">FR</a></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer">
403
+
404
+ <div id="ilgsqu" class="footer__column"><h3 href="" class="footer__item">Social & communauté</h3>
405
+
406
+ <a href="https://www.silex.me/" class="footer__item" target="_blank">A propos de Silex, site officiel</a>
407
+ <a href="mailto:contact+silex-dashboard-footer@silex.me" class="footer__item" target="_blank">Email l'équipe</a>
408
+ <a href="https://short.silex.me/sponsors" class="footer__item" target="_blank">Sponsors</a>
409
+ <a href="https://short.silex.me/donate" class="footer__item" target="_blank">Faire un don</a>
410
+ <a href="https://short.silex.me/community" class="footer__item" target="_blank">Forum de la communauté</a>
411
+ <a href="https://news.silex.me/forms/nfrm_weLJnLY5" class="footer__item" target="_blank">Newsletter</a>
412
+ <a href="https://events.silex.me/" class="footer__item" target="_blank">Meetups/ Evénements</a>
413
+ <a href="https://short.silex.me/mastodon" class="footer__item" target="_blank">Mastodon</a>
414
+ <a href="https://short.silex.me/chat" class="footer__item" target="_blank">Chat</a></div>
415
+ <div id="ilgsqu" class="footer__column"><h3 href="" class="footer__item">Ressources</h3>
416
+
417
+ <a href="https://short.silex.me/code" class="footer__item" target="_blank">Code source</a>
418
+ <a href="http://docs.silex.me/" class="footer__item" target="_blank">Documentation</a>
419
+ <a href="https://video.silex.me/my-library/video-playlists" class="footer__item" target="_blank">Vidéos</a>
420
+ <a href="https://short.silex.me/roadmap" class="footer__item" target="_blank">Feuille de route</a>
421
+ <a href="https://short.silex.me/contribute" class="footer__item" target="_blank">Contribuer</a></div>
422
+ <div id="ilgsqu" class="footer__column"><h3 href="" class="footer__item">Articles et revues</h3>
423
+
424
+ <a href="https://short.silex.me/alternatives_fr" class="footer__item" target="_blank">Alternatives à Silex</a>
425
+ <a href="https://short.silex.me/reviews_fr" class="footer__item" target="_blank">Revues de Silex</a>
426
+ <a href="https://short.silex.me/press_fr" class="footer__item" target="_blank">Silex dans la presse</a></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2-2" class="nav">
427
+
428
+ <a href="/" class="nav__item uppercase fx-flash nav_item--active" target="">Sites</a>
429
+ <a href="http://docs.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Docs</a>
430
+ <a href="https://www.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">A propos</a>
431
+ <a href="https://community.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Communauté</a>
432
+ <a href="https://mail-list.silexlabs.org/subscription/cemnfkaVrK?locale=fr-FR&source=silex-dashboard" class="nav__item uppercase fx-flash nav_item--active" target="_blank">News</a></NAV>
433
+
434
+ <div class="lang"><a href="/en" class="lang__item nav__item uppercase">EN</a></div>
435
+ <div class="lang"><a href="/fr" class="lang__item nav__item uppercase">FR</a></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer">
436
+
437
+ <div id="ilgsqu-2" class="footer__column"><h3 href="" class="footer__item">Social & communauté</h3>
438
+
439
+ <a href="https://www.silex.me/" class="footer__item" target="_blank">A propos de Silex, site officiel</a>
440
+ <a href="mailto:contact+silex-dashboard-footer@silex.me" class="footer__item" target="_blank">Email l'équipe</a>
441
+ <a href="https://short.silex.me/sponsors" class="footer__item" target="_blank">Sponsors</a>
442
+ <a href="https://short.silex.me/donate" class="footer__item" target="_blank">Faire un don</a>
443
+ <a href="https://short.silex.me/community" class="footer__item" target="_blank">Forum de la communauté</a>
444
+ <a href="https://news.silex.me/forms/nfrm_weLJnLY5" class="footer__item" target="_blank">Newsletter</a>
445
+ <a href="https://events.silex.me/" class="footer__item" target="_blank">Meetups/ Evénements</a>
446
+ <a href="https://short.silex.me/mastodon" class="footer__item" target="_blank">Mastodon</a>
447
+ <a href="https://short.silex.me/chat" class="footer__item" target="_blank">Chat</a></div>
448
+ <div id="ilgsqu-2" class="footer__column"><h3 href="" class="footer__item">Ressources</h3>
449
+
450
+ <a href="https://short.silex.me/code" class="footer__item" target="_blank">Code source</a>
451
+ <a href="http://docs.silex.me/" class="footer__item" target="_blank">Documentation</a>
452
+ <a href="https://video.silex.me/my-library/video-playlists" class="footer__item" target="_blank">Vidéos</a>
453
+ <a href="https://short.silex.me/roadmap" class="footer__item" target="_blank">Feuille de route</a>
454
+ <a href="https://short.silex.me/contribute" class="footer__item" target="_blank">Contribuer</a></div>
455
+ <div id="ilgsqu-2" class="footer__column"><h3 href="" class="footer__item">Articles et revues</h3>
456
+
457
+ <a href="https://short.silex.me/alternatives_fr" class="footer__item" target="_blank">Alternatives à Silex</a>
458
+ <a href="https://short.silex.me/reviews_fr" class="footer__item" target="_blank">Revues de Silex</a>
459
+ <a href="https://short.silex.me/press_fr" class="footer__item" target="_blank">Silex dans la presse</a></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2-2-2" class="nav">
460
+
461
+ <a href="/" class="nav__item uppercase fx-flash nav_item--active" target="">Sites</a>
462
+ <a href="http://docs.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Docs</a>
463
+ <a href="https://www.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">A propos</a>
464
+ <a href="https://community.silex.me/" class="nav__item uppercase fx-flash nav_item--active" target="_blank">Communauté</a>
465
+ <a href="https://mail-list.silexlabs.org/subscription/cemnfkaVrK?locale=fr-FR&source=silex-dashboard" class="nav__item uppercase fx-flash nav_item--active" target="_blank">News</a></NAV>
466
+
467
+ <div class="lang"><a href="/en" class="lang__item nav__item uppercase">EN</a></div>
468
+ <div class="lang"><a href="/fr" class="lang__item nav__item uppercase">FR</a></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer">
469
+
470
+ <div id="ilgsqu-2-2" class="footer__column"><h3 href="" class="footer__item">Social & communauté</h3>
471
+
472
+ <a href="https://www.silex.me/" class="footer__item" target="_blank">A propos de Silex, site officiel</a>
473
+ <a href="mailto:contact+silex-dashboard-footer@silex.me" class="footer__item" target="_blank">Email l'équipe</a>
474
+ <a href="https://short.silex.me/sponsors" class="footer__item" target="_blank">Sponsors</a>
475
+ <a href="https://short.silex.me/donate" class="footer__item" target="_blank">Faire un don</a>
476
+ <a href="https://short.silex.me/community" class="footer__item" target="_blank">Forum de la communauté</a>
477
+ <a href="https://news.silex.me/forms/nfrm_weLJnLY5" class="footer__item" target="_blank">Newsletter</a>
478
+ <a href="https://events.silex.me/" class="footer__item" target="_blank">Meetups/ Evénements</a>
479
+ <a href="https://short.silex.me/mastodon" class="footer__item" target="_blank">Mastodon</a>
480
+ <a href="https://short.silex.me/chat" class="footer__item" target="_blank">Chat</a></div>
481
+ <div id="ilgsqu-2-2" class="footer__column"><h3 href="" class="footer__item">Ressources</h3>
482
+
483
+ <a href="https://short.silex.me/code" class="footer__item" target="_blank">Code source</a>
484
+ <a href="http://docs.silex.me/" class="footer__item" target="_blank">Documentation</a>
485
+ <a href="https://video.silex.me/my-library/video-playlists" class="footer__item" target="_blank">Vidéos</a>
486
+ <a href="https://short.silex.me/roadmap" class="footer__item" target="_blank">Feuille de route</a>
487
+ <a href="https://short.silex.me/contribute" class="footer__item" target="_blank">Contribuer</a></div>
488
+ <div id="ilgsqu-2-2" class="footer__column"><h3 href="" class="footer__item">Articles et revues</h3>
489
+
381
490
  <a href="https://short.silex.me/alternatives_fr" class="footer__item" target="_blank">Alternatives à Silex</a>
382
491
  <a href="https://short.silex.me/reviews_fr" class="footer__item" target="_blank">Revues de Silex</a>
383
492
  <a href="https://short.silex.me/press_fr" class="footer__item" target="_blank">Silex dans la presse</a></div></FOOTER></body>