init
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
/**
|
||||
* Movim Javascript Template functions
|
||||
|
||||
* Look at the comments for help.
|
||||
*/
|
||||
|
||||
var MovimTpl = {
|
||||
startX: 0,
|
||||
startY: 0,
|
||||
translateX: 0,
|
||||
menuDragged: false,
|
||||
currentPage: '',
|
||||
currentAnchor: '',
|
||||
popAnchorKey: null,
|
||||
popAnchorAction: null,
|
||||
|
||||
loadingPage: function () {
|
||||
document.body.classList.add('loading');
|
||||
document.body.classList.remove('finished');
|
||||
},
|
||||
finishedPage: function () {
|
||||
document.body.classList.add('finished');
|
||||
|
||||
setTimeout(e => {
|
||||
document.body.classList.remove('loading', 'finished');
|
||||
}, 1000);
|
||||
},
|
||||
|
||||
append: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.insertAdjacentHTML('beforeend', html);
|
||||
}
|
||||
},
|
||||
appendAfter: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.insertAdjacentHTML('afterend', html);
|
||||
}
|
||||
},
|
||||
pushAnchorState: function (key, action) {
|
||||
if (MovimTpl.popAnchorAction && key != MovimTpl.popAnchorKey) {
|
||||
MovimTpl.popAnchorAction();
|
||||
}
|
||||
|
||||
window.history.pushState(null, null, '#' + key);
|
||||
MovimTpl.popAnchorKey = key;
|
||||
MovimTpl.popAnchorAction = action;
|
||||
},
|
||||
clearAnchorState: function () {
|
||||
if (MovimTpl.popAnchorAction) {
|
||||
MovimTpl.popAnchorAction();
|
||||
}
|
||||
|
||||
MovimTpl.popAnchorKey = null;
|
||||
MovimTpl.popAnchorAction = null;
|
||||
window.history.replaceState(null, null, ' ');
|
||||
},
|
||||
fill: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.innerHTML = html;
|
||||
}
|
||||
},
|
||||
showPanel: function () {
|
||||
MovimUtils.addClass('main', 'enabled');
|
||||
MovimUtils.addClass('ul#bottomnavigation', 'hidden');
|
||||
},
|
||||
hidePanel: function () {
|
||||
MovimUtils.removeClass('main', 'enabled');
|
||||
MovimUtils.removeClass('ul#bottomnavigation', 'hidden');
|
||||
},
|
||||
prepend: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.insertAdjacentHTML('afterbegin', html);
|
||||
}
|
||||
},
|
||||
prependBefore: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.insertAdjacentHTML('beforebegin', html);
|
||||
}
|
||||
},
|
||||
remove: function (selector) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
target.remove();
|
||||
}
|
||||
},
|
||||
replace: function (selector, html) {
|
||||
target = document.querySelector(selector);
|
||||
if (target) {
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
var element = div.firstChild;
|
||||
replacedNode = target.parentNode.replaceChild(element, target);
|
||||
}
|
||||
},
|
||||
showContextMenu: function () {
|
||||
var contextMenu = document.querySelector('ul.context_menu');
|
||||
contextMenu.classList.add('shown');
|
||||
},
|
||||
hideContextMenu: function (e) {
|
||||
var contextMenu = document.querySelector('ul.context_menu');
|
||||
if (contextMenu == null) return;
|
||||
|
||||
if (!document.querySelector('.show_context_menu')?.contains(e.target)) {
|
||||
contextMenu.classList.remove('shown');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
MovimEvents.registerBody('click', 'movimtpl', (e) => MovimTpl.hideContextMenu(e));
|
||||
|
||||
MovimEvents.registerWindow('loaded', 'movimtpl', () => {
|
||||
MovimTpl.currentPage = window.location.pathname;
|
||||
});
|
||||
|
||||
MovimEvents.registerWindow('popstate', 'movimtpl', (e) => {
|
||||
if (Dialog.filled()) {
|
||||
Dialog.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
if (MovimTpl.popAnchorKey || e.target.location.hash != '') {
|
||||
MovimTpl.clearAnchorState();
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.target.location.pathname == MovimTpl.currentPage) return;
|
||||
|
||||
MovimUtils.reload(e.target.location.href, true);
|
||||
|
||||
MovimTpl.currentPage = e.target.location.pathname;
|
||||
MovimTpl.currentAnchor = window.location.hash.substring(1);
|
||||
});
|
||||
Reference in New Issue
Block a user