1
0
Fork 0
mirror of synced 2024-06-18 18:54:55 +12:00

Upgrading JS framework version

This commit is contained in:
eldadfux 2019-05-09 11:01:51 +03:00
parent f56991d6d2
commit 81661159db
47 changed files with 243 additions and 335 deletions

View file

@ -29,14 +29,10 @@ $env = $this->getParam('env', '');
<meta property="og:title" content="<?php echo $this->getParam('title', ''); ?>" />
<meta property="og:description" content="<?php echo $this->getParam('description', ''); ?>" />
<meta property="og:image" content="<?php echo APP_PROTOCOL;?>://<?php echo $domain; ?>/logo.png?v=1" />
<!--<meta name="referrer" content="never">
<meta name="referrer" content="no-referrer">-->
<link rel="preconnect" href="<?php echo $api; ?>" />
<?php foreach ($this->getParam('prefetch', []) as $prefetch): ?>
<link rel="prefetch" href="<?php echo $this->escape($prefetch); ?>" />
<?php endforeach; ?>
<script src="https://cdn.ravenjs.com/3.26.2/raven.min.js" crossorigin="anonymous"></script>
<!--<script src="/dist/scripts/app-dependencies.js"></script>-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
@ -66,22 +62,13 @@ $env = $this->getParam('env', '');
script.async = true;
script.src = '/dist/scripts/app-all.js?v=<?php echo $version; ?>';
script.onload = function() {
window.Litespeed.run(window);
window.ls.run(window);
};
head.appendChild(script);
});
<?php endif; ?>
window.recaptchaCallback = function () {
window.grecaptchaReady = true;
document.dispatchEvent(new CustomEvent('recaptcha-loaded', {
bubbles: false,
cancelable: true
}));
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit&hl=<?php echo Locale::getText('settings.recaptcha'); ?>" async defer></script>
<?php echo $this->exec($this->getParam('head', [])); ?>
</head>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,44 +1,4 @@
window.Litespeed.container.get('state')
.add('/', {
template: '/',
scope: 'home'
})
.add('/soon', {
template: '/soon',
scope: 'soon'
})
.add('/products/:product', {
template: function (window) {
return window.location.pathname;
},
scope: 'home'
})
.add('/pricing', {
template: '/pricing',
scope: 'home'
})
.add('/docs', {
template: '/docs',
scope: 'home'
})
.add('/docs/:page', {
template: function (window) {
return window.location.pathname;
},
scope: 'home'
})
.add('/support', {
template: '/support',
scope: 'home'
})
.add('/contact', {
template: '/contact',
scope: 'home'
})
.add('/contact/thank-you', {
template: '/contact/thank-you',
scope: 'home'
})
window.ls.router
.add('/auth/signin', {
template: '/auth/signin',
scope: 'home'
@ -63,30 +23,6 @@ window.Litespeed.container.get('state')
template: '/auth/join',
scope: 'home'
})
.add('/company/about', {
template: '/company/about',
scope: 'home'
})
.add('/policy/security', {
template: '/policy/security',
scope: 'home'
})
.add('/policy/terms', {
template: '/policy/terms',
scope: 'home'
})
.add('/policy/privacy', {
template: '/policy/privacy',
scope: 'home'
})
.add('/policy/sub-processors', {
template: '/policy/sub-processors',
scope: 'home'
})
.add('/policy/cookies', {
template: '/policy/cookies',
scope: 'home'
})
.add('/console', {
template: '/console',
scope: 'console'
@ -174,131 +110,119 @@ window.Litespeed.container.get('state')
// Filters
let filter = window.Litespeed.container.get('filter');
let date = window.Litespeed.container.get('date');
let timezone = window.Litespeed.container.get('timezone');
let markdown = window.Litespeed.container.get('markdown');
let filter = window.ls.filter;
let date = window.ls.container.get('date');
let timezone = window.ls.container.get('timezone');
let markdown = window.ls.container.get('markdown');
filter.add('lowerCase', function (value) {
return value.toLowerCase();
});
filter.add('date', function (value, options) {
return date.format('Y-m-d', value);
});
filter.add('date-time', function (value, options) {
return date.format('Y-m-d H:i', value);
});
filter.add('date-text', function (value, options) {
return date.format('d M Y', value);
});
filter.add('date-long', function (value, options) {
return date.format('l, j F, H:i', value);
});
filter.add('min2hum', function (value, options) {
if(value >= 60) {
if(value % 60 === 0) {
return Math.ceil(value / 60) + ' hours';
filter
.add('lowerCase', function (value) {
return value.toLowerCase();
})
.add('date', function (value, options) {
return date.format('Y-m-d', value);
})
.add('date-time', function (value, options) {
return date.format('Y-m-d H:i', value);
})
.add('date-text', function (value, options) {
return date.format('d M Y', value);
})
.add('date-long', function (value, options) {
return date.format('l, j F, H:i', value);
})
.add('min2hum', function (value, options) {
if(value >= 60) {
if(value % 60 === 0) {
return Math.ceil(value / 60) + ' hours';
}
else {
return Math.ceil(value / 60) + ' hours and ' + (value % 60) + ' minutes';
}
}
else {
return Math.ceil(value / 60) + ' hours and ' + (value % 60) + ' minutes';
return value + ' minutes';
})
.add('ms2hum', function (value, options) {
let temp = value;
const years = Math.floor( temp / 31536000 ),
days = Math.floor( ( temp %= 31536000 ) / 86400 ),
hours = Math.floor( ( temp %= 86400 ) / 3600 ),
minutes = Math.floor( ( temp %= 3600 ) / 60 ),
seconds = temp % 60;
if ( days || hours || seconds || minutes ) {
return ( years ? years + "y " : "" ) +
( days ? days + "d " : "" ) +
( hours ? hours + "h " : "" ) +
( minutes ? minutes + "m " : "" ) +
Number.parseFloat( seconds ).toFixed(0) + "s";
}
}
return value + ' minutes';
});
return "< 1s";
})
.add('nl2p', function (value, options) {
let result = "<p>" + value + "</p>";
result = result.replace(/\r\n\r\n/g, "</p><p>").replace(/\n\n/g, "</p><p>");
result = result.replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
filter.add('ms2hum', function (value, options) {
let temp = value;
const years = Math.floor( temp / 31536000 ),
days = Math.floor( ( temp %= 31536000 ) / 86400 ),
hours = Math.floor( ( temp %= 86400 ) / 3600 ),
minutes = Math.floor( ( temp %= 3600 ) / 60 ),
seconds = temp % 60;
return result;
})
.add('markdown', function (value, options) {
return markdown.render(value);
})
.add('id2name', function (value, options) {
let members = container.get('members');
if ( days || hours || seconds || minutes ) {
return ( years ? years + "y " : "" ) +
( days ? days + "d " : "" ) +
( hours ? hours + "h " : "" ) +
( minutes ? minutes + "m " : "" ) +
Number.parseFloat( seconds ).toFixed(0) + "s";
}
if(members === null) {
return '';
}
return "< 1s";
});
for (let y = 0; y < members.length; y++) {
if(members[y]['$uid'] === value) {
value = members[y].name;
}
}
filter.add('nl2p', function (value, options) {
let result = "<p>" + value + "</p>";
result = result.replace(/\r\n\r\n/g, "</p><p>").replace(/\n\n/g, "</p><p>");
result = result.replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
return value;
})
.add('id2role', function (value, options) {
if(APP_ENV.ROLES[value]) {
return APP_ENV.ROLES[value];
}
return result;
});
filter.add('markdown', function (value, options) {
return markdown.render(value);
});
filter.add('id2name', function (value, options) {
let members = container.get('members');
if(members === null) {
return '';
}
for (let y = 0; y < members.length; y++) {
if(members[y]['$uid'] === value) {
value = members[y].name;
})
.add('humanFileSize', function (bytes) {
if(!bytes) {
return 0;
}
}
return value;
});
let thresh = 1000;
filter.add('id2role', function (value, options) {
if(APP_ENV.ROLES[value]) {
return APP_ENV.ROLES[value];
}
if(Math.abs(bytes) < thresh) {
return bytes + ' B';
}
return '';
});
let units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];
let u = -1;
filter.add('humanFileSize', function (bytes) {
if(!bytes) {
return 0;
}
do {
bytes /= thresh;
++u;
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
let thresh = 1000;
return bytes.toFixed(1) + '<span class="text-size-small unit">' + units[u] + '</span>';
})
.add('statsTotal', function (value) {
if(!value) {
return 0;
}
if(Math.abs(bytes) < thresh) {
return bytes + ' B';
}
value = abbreviate(value, 1, false, false);
let units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];
let u = -1;
do {
bytes /= thresh;
++u;
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
return bytes.toFixed(1) + '<span class="text-size-small unit">' + units[u] + '</span>';
});
filter.add('statsTotal', function (value) {
if(!value) {
return 0;
}
value = abbreviate(value, 1, false, false);
return (value === '0') ? 'N/A' : value;
});
return (value === '0') ? 'N/A' : value;
});
function abbreviate(number, maxPlaces, forcePlaces, forceLetter) {
number = Number(number);
@ -359,15 +283,17 @@ function annotate(number, maxPlaces, forcePlaces, abbr) {
// Views
window.Litespeed.container.get('view')
window.ls.container.get('view')
.add({
selector: 'data-acl',
controller: function(element, document, state, alerts) {
controller: function(element, document, router, alerts) {
document.body.classList.remove('console');
document.body.classList.remove('home');
document.body.classList.add(state.getCurrent().view.scope);
console.log(router.getCurrent());
if(!state.getCurrent().view.project) {
document.body.classList.add(router.getCurrent().view.scope);
if(!router.getCurrent().view.project) {
document.body.classList.add('hide-nav');
document.body.classList.remove('show-nav');
}

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-appwrite',
repeat: true,

View file

@ -1,9 +1,6 @@
// Init
Raven.config('https://a9388b4e324f48f8afd4558cb8d3e8fc@sentry.io/1225344').install();
window.Litespeed = app(APP_ENV.VERSION);
window.Litespeed.error = function () {
window.ls.error = function () {
return function (error) {
alert(error);
console.error('ERROR-APP', error);
@ -11,14 +8,12 @@ window.Litespeed.error = function () {
};
window.addEventListener('error', function (event) {
alert(error.error.message);
alert(event.error.message);
console.error('ERROR-EVENT:', event.error.message, event.error.stack);
});
document.addEventListener('logout', function (event) {
var state = window.Litespeed.container.get('state');
if(state.getCurrent().view.scope === 'console') {
document.addEventListener('logout', function () {
if(window.ls.router.getCurrent().view.scope === 'console') {
state.change('/auth/signin');
}
});

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('alerts', function (window) {
window.ls.container.set('alerts', function (window) {
let service = {};
let counter = 0;

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('console', function (window) {
window.ls.container.set('console', function (window) {
var sdk = new window.AppwriteSDK();
sdk.config.domain = 'https://appwrite.io';

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('date', function () {
window.ls.container.set('date', function () {
function format (format, timestamp) {
// discuss at: http://locutus.io/php/date/
// original by: Carlos R. L. Rodrigues (http://www.jsfromhell.com)

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('di', function () {
window.ls.container.set('di', function () {
var list = {
'load': true
};

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('env', function () {
window.ls.container.set('env', function () {
return APP_ENV;
}, true);

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('markdown', function (window) {
window.ls.container.set('markdown', function (window) {
var md = window.markdownit();
function renderEm (tokens, idx, opts, _, slf) {

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('sdk', function (window, state) {
window.ls.container.set('sdk', function (window, state) {
var sdk = new window.AppwriteSDK();
sdk.config.domain = APP_ENV.API;

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.set('timezone', function () {
window.ls.container.set('timezone', function () {
return {
convert: function (unixTime) {
var timezoneMinutes = new Date().getTimezoneOffset();

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
'selector': 'data-analytics-event',
'controller': function (element) {

View file

@ -1,15 +1,15 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
'selector': 'data-analytics-pageview',
'controller': function (window, state) {
'controller': function (window, router) {
if(!ga) {
console.error('Google Analytics ga object is not available');
}
var company = state.params['company'] || null;
var company = router.params['company'] || null;
if(!company) {
//return;

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ls-count',
template: false,
repeat: true,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-clone',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-color',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-copy',
controller: function(element, alerts, document, window) {

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-draft',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
//"use strict";
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-forms-filter',
controller: function(document, container, expression, element, form, di) {
let name = element.dataset['formsFilter'] || '';

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-parent-down',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-parent-remove',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-parent-up',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-password-meter',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-forms-pell',
repeat: false,
controller: function(element, window, document, markdown) {

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-recaptcha',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-remove',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-switch',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-text-count',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-text-direction',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-text-resize',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-upload-multi',
repeat: false,

View file

@ -1,7 +1,7 @@
(function (window) {
"use strict";
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-forms-upload',
repeat: false,

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
'selector': 'data-page-title',
'repeat': true,

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-setup',
controller: function(element, console, form) {
element.addEventListener('submit', function (event) {
@ -23,7 +23,7 @@
.then(function (data) {
let project= JSON.parse(data);
//state.change();
//router.change();
window.location.href = '/console?project=' + project['$uid'];
}, function () {
throw new Error('Failed to setup project');

View file

@ -1,7 +1,7 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-switch',
controller: function(element, state, window, di) {
controller: function(element, router, window, di) {
let debug = (element.dataset['debug']);
let init = function () {
@ -15,12 +15,12 @@
let fallback = function () {
if (debug) { console.log('fallback init', element.value); }
if(state.getCurrent().view.scope !== 'console' || !state.getCurrent().view.project) {
if(router.getCurrent().view.scope !== 'console' || !router.getCurrent().view.project) {
if (debug) { console.log('Skip: not console state', element.value); }
return;
}
if(state.params['project']) {
if(router.params['project']) {
return;
}
@ -31,14 +31,14 @@
if (debug) { console.log('last used project', project); }
return state.change('/console/home?project=' + project, true);
return router.change('/console/home?project=' + project, true);
}
di.reset();
if (debug) { console.log('first project from list', element.options, element.$lsSkip); }
return state.change('/console/home?project=' + element.options[0].value, true);
return router.change('/console/home?project=' + element.options[0].value, true);
};
if (debug) { console.log('switch init', element.options); }
@ -48,12 +48,12 @@
fallback();
if(element.value && element.value !== state.params['project']) {
if(element.value && element.value !== router.params['project']) {
if (debug) { console.log('Changed: selected project from list');}
init ();
return state.change('/console/home?project=' + element.value);
return router.change('/console/home?project=' + element.value);
}
});

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
repeat: true,
selector: 'data-ui-gravatar',

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ui-highlight',
controller: function(element, state, expression, document) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-ui-modal',
controller: function(document, element, expression) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ls-ui-open',
repeat: false,
controller: function(element, window) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ls-ui-paging',
repeat: true,
controller: function(document, element, expression) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
selector: 'data-ui-phases',
controller: function(element, window, document, expression, view) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ls-ui-scroll-to',
repeat: false,
controller: function(element, document, expression) {

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add(
window.ls.container.get('view').add(
{
repeat: true,
selector: 'data-ui-slide',

View file

@ -1,5 +1,5 @@
(function (window) {
window.Litespeed.container.get('view').add({
window.ls.container.get('view').add({
selector: 'data-ls-wait',
template: false,
repeat: false,