Remove some spot.js dependencies

This commit is contained in:
2026-04-25 15:49:58 +02:00
parent 90349365f9
commit b2b06180e6
4 changed files with 29 additions and 20 deletions

View File

@@ -78,7 +78,7 @@ export default {
return {page: sPage, items: asHash};
},
setHash(sPage = '', asItems = []) {
if(typeof asItems == 'string') asItems = [asItems];
if(typeof asItems == 'string' && asItems != '') asItems = [asItems];
const sItems = (asItems.length > 0)?(this.spot.consts.hash_sep + asItems.join(this.spot.consts.hash_sep)):'';
window.location.hash = '#' + sPage + sItems;
}

View File

@@ -162,15 +162,15 @@ export default {
resizeDuration: 400,
hasVideo: true,
onMediaChange: (oMedia) => {
this.spot.updateHash('media', oMedia.id);
this.$parent.hash.items = [this.currProject.codename, 'media', oMedia.id];
if(oMedia.set == 'post-medias') this.goToPost({type: 'media', id: oMedia.id});
},
onClosing: () => {this.spot.flushHash();}
onClosing: () => {this.$parent.hash.items = [this.$parent.hash.items[0]];}
});
},
async initFeed() {
//Simplebar event
this.$refs.feedSimpleBar.scrollElement.addEventListener('scroll', this.onFeedScroll);
this.$refs.feedSimpleBar?.scrollElement.addEventListener('scroll', this.onFeedScroll);
//Mobile Touchscreen Events
//TODO
@@ -622,7 +622,7 @@ export default {
- parseFloat(getComputedStyle(this.$refs.feedSimpleBar.$el).paddingTop)
);
//this.spot.flushHash(['post', 'message']);
//this.$parent.hash.items = [this.$parent.hash.items[0]];
return oRef;
}

View File

@@ -50,9 +50,8 @@
displayedId() {
return this.options.displayed_id?(this.spot.lang('counter', this.options.displayed_id)):'';
},
hash() {
let asHash = this.spot.getHash();
return '#'+[asHash.page, asHash.items[0], this.options.type, this.options.id].join(this.spot.consts.hash_sep);
anchorLink() {
return '#'+[this.hash.page, this.hash.items[0], this.options.type, this.options.id].join(this.spot.consts.hash_sep);
},
modeHisto() {
return (this.project.currProject.mode == this.spot.consts.modes.histo);
@@ -69,10 +68,10 @@
}
},
inject: ['spot', 'project', 'user', 'map'],
inject: ['spot', 'project', 'user', 'map', 'hash'],
methods: {
copyAnchor() {
copyTextToClipboard(this.spot.consts.server+this.spot.hash());
copyTextToClipboard(this.spot.consts.server+this.anchorLink);
this.anchorTitle = this.spot.lang('link_copied');
this.anchorIcon = 'copied';
setTimeout(()=>{ //TODO animation
@@ -141,7 +140,7 @@
<div class="header">
<div class="index">
<spotIcon :icon="subType" :text="displayedId" />
<a v-if="anchorVisible" class="link desktop" @click="copyAnchor" ref="anchor" :href="hash" :title="anchorTitle">
<a v-if="anchorVisible" class="link desktop" @click="copyAnchor" ref="anchor" :href="anchorLink" :title="anchorTitle">
<spotIcon :icon="anchorIcon" />
</a>
</div>

View File

@@ -5,14 +5,14 @@ export default class Spot {
this.consts.hash_sep = '-';
this.consts.title = 'Spotty';
this.consts.default_page = 'project';
this.consts.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || this.consts.default_timezone;
//this.consts.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || this.consts.default_timezone;
this.pages = {};
//Variables & constants from php
this.vars('tmp', 'object');
this.vars('page', 'string');
$.each(asGlobals.vars, (sKey, oValue) => {this.vars(sKey, oValue)});
Object.entries(asGlobals.vars).forEach(([sKey, oValue]) => {this.vars(sKey, oValue);});
//page elem
this.elem = {};
@@ -20,6 +20,7 @@ export default class Spot {
/* Initialization */
/*
init() {
this.elem.container = $('#container');
this.elem.main = $('#main');
@@ -35,6 +36,7 @@ export default class Spot {
.on('hashchange', () => {this.onHashChange();})
.trigger('hashchange');
}
*/
/* Variable Management */
@@ -56,6 +58,7 @@ export default class Spot {
/* Interface with server */
/*
get(sAction, fOnSuccess, oVars, fOnError, fonProgress) {
oVars = oVars || {};
fOnError = fOnError || function(sError) {console.log(sError);};
@@ -82,6 +85,7 @@ export default class Spot {
fOnError(textStatus+' '+errorThrown);
});
}
*/
async get2(sAction, oVars, bLoading) {
oVars = oVars || {};
@@ -89,11 +93,8 @@ export default class Spot {
oVars['t'] = this.consts.timezone;
bLoading = true;
let oUrl = new URL(this.consts.server+this.consts.process_page);
oUrl.search = new URLSearchParams(oVars).toString();
try {
let oUrl = new URL(this.consts.server+this.consts.process_page);
let oUrl = new URL(this.consts.process_page, this.consts.server);
oUrl.search = new URLSearchParams(oVars).toString();
const oRequest = await fetch(oUrl, {method: 'GET', /*body: JSON.stringify(oVars),*/ headers: {"Content-Type": "application/json"}});
if(!oRequest.ok) {
@@ -103,10 +104,12 @@ export default class Spot {
else {
let oResponse = await oRequest.json();
bLoading = false;
if(oResponse.desc.substr(0, this.consts.lang_prefix.length)==this.consts.lang_prefix) oResponse.desc = this.lang(oData.desc.substr(this.consts.lang_prefix.length));
if(oResponse.desc.substr(0, this.consts.lang_prefix.length)==this.consts.lang_prefix) {
oResponse.desc = this.lang(oResponse.desc.substr(this.consts.lang_prefix.length));
}
if(oResponse.result == this.consts.error) return Promise.reject(oResponse.desc);
else return Promise.resolve(oResponse.data, oResponse.desc);
else return oResponse.data;
}
}
catch(oError) {
@@ -135,11 +138,13 @@ export default class Spot {
}
isMobile() {
return $('#mobile').is(':visible');
const mobileElem = document.getElementById('mobile');
return !!mobileElem && getComputedStyle(mobileElem).display !== 'none';
}
/* Page Switch - Trigger & Event catching */
/*
onHashChange() {
var asHash = this.getHash();
if(asHash.hash !='' && asHash.page != '') this.switchPage(asHash); //page switching
@@ -186,6 +191,7 @@ export default class Spot {
var asHash = this.getHash();
if(asHash.items.length > 1 && (asTypes.length == 0 || asTypes.indexOf(asHash.items[1]) != -1)) this.setHash(asHash.page, [asHash.items[0]]);
}
*/
/* Page Events */
@@ -224,6 +230,7 @@ export default class Spot {
/* Page Switch - DOM Replacement */
/*
getActionLink(sAction, oVars) {
if(!oVars) oVars = {};
let sVars = '';
@@ -232,11 +239,13 @@ export default class Spot {
return this.consts.process_page+'?a='+sAction+sVars;
}
*/
addPage(sPage, oPage) {
this.pages[sPage] = oPage;
}
/*
switchPage(asHash) {
var sPageName = asHash.page;
var bSamePage = (this.vars('page') == sPageName);
@@ -278,6 +287,7 @@ export default class Spot {
var $FadeInElem = bFirstPage?this.elem.container:this.elem.main;
$FadeInElem.hide().fadeTo('slow', 1);
}
*/
setPageTitle(sTitle) {
document.title = this.consts.title+' - '+sTitle;