cryptpad/customize.dist/template.js

85 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team <contact@cryptpad.org> and contributors
//
// SPDX-License-Identifier: AGPL-3.0-or-later
define([
'jquery',
'/common/hyperscript.js',
'/customize/pages.js',
'/components/nthen/index.js',
'css!/components/components-font-awesome/css/font-awesome.min.css',
], function ($, h, Pages, nThen) {
// we consider that there is no valid reason to load any of the info pages
// in an iframe. abort everything if you detect that you are embedded.
if (window.top !== window) { return; }
$(function () {
var $body = $('body');
var pathname = location.pathname;
// add class on info-pages
var pageName = pathname.replace(/(index)?\.html$/gi, "") // .html
.replace(/[^a-zA-Z]+/gi, '-') // any non-alpha character
.replace(/^-|-$/g, ''); // starting/trailing dashes
if (pageName === '') { pageName = 'index'; }
$('body').addClass('cp-page-' + pageName);
var infoPage = function () {
return h('div#mainBlock.hidden', typeof(Pages[pathname]) === 'function'?
Pages[pathname](): [h('div#container')]);
};
window.Tether = function () {};
nThen(function (waitFor) {
var w = waitFor();
require([
'/customize/pages/' + pageName + '.js',
], function (Page) {
infoPage = Page;
w();
}, function () {
w();
});
}).nThen(function () {
require([
'/api/config',
'/common/common-util.js',
'optional!/api/instance',
'less!/customize/src/less2/pages/page-' + pageName + '.less',
'css!/components/bootstrap/dist/css/bootstrap.min.css',
'css!/customize/fonts/cptools/style.css'
], function (ApiConfig, Util, Instance) {
var $main = $(infoPage());
var titleSuffix = (Util.find(Instance, ['name','default']) || '').trim();
if (!titleSuffix || titleSuffix === ApiConfig.httpUnsafeOrigin) {
titleSuffix = window.location.hostname;
}
document.title = document.title + ' - ' + titleSuffix;
$('#placeholder').remove();
$body.append($main);
if (/^\/register\//.test(pathname)) {
require([ '/register/main.js' ], function () {});
} else if (/^\/install\//.test(pathname)) {
require([ '/install/main.js' ], function () {});
} else if (/^\/recovery\//.test(pathname)) {
require([ '/recovery/main.js' ], function () {});
} else if (/^\/ssoauth/.test(pathname)) {
require([ '/ssoauth/main.js' ], function () {});
} else if (/^\/login\//.test(pathname)) {
require([ '/login/main.js' ], function () {});
} else if (/^\/($|^\/index\.html$)/.test(pathname)) {
require([ '/customize/main.js', ], function () {});
} else {
require([ '/customize/main.js', ], function () {});
}
});
});
});
});