From c3f0bb2eccfd39cb5cd2eee37db3f005e1718630 Mon Sep 17 00:00:00 2001 From: soneill Date: Sun, 30 Aug 2020 19:58:00 +1200 Subject: [PATCH] adds dotlan plugin, fixes zkill system clickout, allows signatures in any column --- js/app/ui/module/empty.js | 57 ++++++++++++++----- js/app/ui/module/system_killboard.js | 2 +- js/app/ui/module/system_signature.js | 2 +- public/js/v2.0.1/app/ui/module/empty.js | 57 ++++++++++++++----- .../v2.0.1/app/ui/module/system_killboard.js | 2 +- .../v2.0.1/app/ui/module/system_signature.js | 2 +- 6 files changed, 88 insertions(+), 34 deletions(-) diff --git a/js/app/ui/module/empty.js b/js/app/ui/module/empty.js index c567f0eb..472d62b3 100644 --- a/js/app/ui/module/empty.js +++ b/js/app/ui/module/empty.js @@ -5,11 +5,11 @@ define([ // dependencies for this module 'use strict'; /** - * EmptyModule class + * DotlanModule class * -> skeleton for custom module plugins - * @type {EmptyModule} + * @type {DotlanModule} */ - let EmptyModule = class EmptyModule extends BaseModule { + let DotlanModule = class DotlanModule extends BaseModule { constructor(config = {}) { super(Object.assign({}, new.target.defaultConfig, config)); } @@ -29,7 +29,17 @@ define([ // dependencies for this module let bodyEl = Object.assign(document.createElement('div'), { className: this._config.bodyClassName }); - + + if (this.isWormhole(systemData.name)) { + var moduleContent = 'Not available for Jspace' + } else { + var moduleContent = Object.assign(document.createElement('iframe'), { + src: this.dotlanPath(this._systemData), + className: 'dotlan-iframe', + style: "width: 100%; height: 650px;" + }) + } + bodyEl.append(moduleContent) this.moduleElement.append(bodyEl); return this.moduleElement; @@ -53,19 +63,36 @@ define([ // dependencies for this module onSortableEvent(name, e){ super.onSortableEvent(name, e); } + + dotlanPath(sysData){ + let regionName = this.snakeCase(sysData.region.name); + let systemName = this.snakeCase(sysData.name); + return ["https://evemaps.dotlan.net/map/", regionName, "/", systemName, "#npc_delta"].join(''); + } + + snakeCase(str){ + const regex = /\ /g; + return str.replace(regex, "_"); + } + + isWormhole(systemName){ + const jspace = /^[jJ][0-9]{4,6}/; + return systemName.match(jspace) ? true : false; + } + }; - EmptyModule.isPlugin = true; // module is defined as 'plugin' - EmptyModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected - EmptyModule.sortArea = 'a'; // default sortable area - EmptyModule.position = 15; // default sort/order position within sortable area - EmptyModule.label = 'Empty'; // static module label (e.g. description) + DotlanModule.isPlugin = true; // module is defined as 'plugin' + DotlanModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected + DotlanModule.sortArea = 'a'; // default sortable area + DotlanModule.position = 15; // default sort/order position within sortable area + DotlanModule.label = 'Dotlan'; // static module label (e.g. description) - EmptyModule.defaultConfig = { - className: 'pf-system-empty-module', // class for module - sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into - headline: 'Empty Module', + DotlanModule.defaultConfig = { + className: 'pf-system-dotlan-module', // class for module + sortTargetAreas: ['a'], // sortable areas where module can be dragged into + headline: 'Dotlan Module', }; - return EmptyModule; -}); \ No newline at end of file + return DotlanModule; +}); diff --git a/js/app/ui/module/system_killboard.js b/js/app/ui/module/system_killboard.js index 47ff2308..58be56b2 100644 --- a/js/app/ui/module/system_killboard.js +++ b/js/app/ui/module/system_killboard.js @@ -554,7 +554,7 @@ define([ */ openKillboardUrl(e){ e.stopPropagation(); - window.open(`//zkillboard.com/system/${this._systemData.systemId}`, '_blank'); + window.open(`//zkillboard.com/system/${this._systemData.systemId}/`, '_blank'); } /** diff --git a/js/app/ui/module/system_signature.js b/js/app/ui/module/system_signature.js index 4be5db80..9e92fe67 100644 --- a/js/app/ui/module/system_signature.js +++ b/js/app/ui/module/system_signature.js @@ -3181,7 +3181,7 @@ define([ SystemSignatureModule.defaultConfig = { className: 'pf-system-signature-module', // class for module - sortTargetAreas: ['a'], // sortable areas where module can be dragged into + sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into headline: 'Signatures', // headline toolbar diff --git a/public/js/v2.0.1/app/ui/module/empty.js b/public/js/v2.0.1/app/ui/module/empty.js index c567f0eb..472d62b3 100644 --- a/public/js/v2.0.1/app/ui/module/empty.js +++ b/public/js/v2.0.1/app/ui/module/empty.js @@ -5,11 +5,11 @@ define([ // dependencies for this module 'use strict'; /** - * EmptyModule class + * DotlanModule class * -> skeleton for custom module plugins - * @type {EmptyModule} + * @type {DotlanModule} */ - let EmptyModule = class EmptyModule extends BaseModule { + let DotlanModule = class DotlanModule extends BaseModule { constructor(config = {}) { super(Object.assign({}, new.target.defaultConfig, config)); } @@ -29,7 +29,17 @@ define([ // dependencies for this module let bodyEl = Object.assign(document.createElement('div'), { className: this._config.bodyClassName }); - + + if (this.isWormhole(systemData.name)) { + var moduleContent = 'Not available for Jspace' + } else { + var moduleContent = Object.assign(document.createElement('iframe'), { + src: this.dotlanPath(this._systemData), + className: 'dotlan-iframe', + style: "width: 100%; height: 650px;" + }) + } + bodyEl.append(moduleContent) this.moduleElement.append(bodyEl); return this.moduleElement; @@ -53,19 +63,36 @@ define([ // dependencies for this module onSortableEvent(name, e){ super.onSortableEvent(name, e); } + + dotlanPath(sysData){ + let regionName = this.snakeCase(sysData.region.name); + let systemName = this.snakeCase(sysData.name); + return ["https://evemaps.dotlan.net/map/", regionName, "/", systemName, "#npc_delta"].join(''); + } + + snakeCase(str){ + const regex = /\ /g; + return str.replace(regex, "_"); + } + + isWormhole(systemName){ + const jspace = /^[jJ][0-9]{4,6}/; + return systemName.match(jspace) ? true : false; + } + }; - EmptyModule.isPlugin = true; // module is defined as 'plugin' - EmptyModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected - EmptyModule.sortArea = 'a'; // default sortable area - EmptyModule.position = 15; // default sort/order position within sortable area - EmptyModule.label = 'Empty'; // static module label (e.g. description) + DotlanModule.isPlugin = true; // module is defined as 'plugin' + DotlanModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected + DotlanModule.sortArea = 'a'; // default sortable area + DotlanModule.position = 15; // default sort/order position within sortable area + DotlanModule.label = 'Dotlan'; // static module label (e.g. description) - EmptyModule.defaultConfig = { - className: 'pf-system-empty-module', // class for module - sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into - headline: 'Empty Module', + DotlanModule.defaultConfig = { + className: 'pf-system-dotlan-module', // class for module + sortTargetAreas: ['a'], // sortable areas where module can be dragged into + headline: 'Dotlan Module', }; - return EmptyModule; -}); \ No newline at end of file + return DotlanModule; +}); diff --git a/public/js/v2.0.1/app/ui/module/system_killboard.js b/public/js/v2.0.1/app/ui/module/system_killboard.js index 47ff2308..58be56b2 100644 --- a/public/js/v2.0.1/app/ui/module/system_killboard.js +++ b/public/js/v2.0.1/app/ui/module/system_killboard.js @@ -554,7 +554,7 @@ define([ */ openKillboardUrl(e){ e.stopPropagation(); - window.open(`//zkillboard.com/system/${this._systemData.systemId}`, '_blank'); + window.open(`//zkillboard.com/system/${this._systemData.systemId}/`, '_blank'); } /** diff --git a/public/js/v2.0.1/app/ui/module/system_signature.js b/public/js/v2.0.1/app/ui/module/system_signature.js index 4be5db80..9e92fe67 100644 --- a/public/js/v2.0.1/app/ui/module/system_signature.js +++ b/public/js/v2.0.1/app/ui/module/system_signature.js @@ -3181,7 +3181,7 @@ define([ SystemSignatureModule.defaultConfig = { className: 'pf-system-signature-module', // class for module - sortTargetAreas: ['a'], // sortable areas where module can be dragged into + sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into headline: 'Signatures', // headline toolbar