From ecf5791c8ca1051742f076ba2a845f49280d7fb7 Mon Sep 17 00:00:00 2001 From: Exodus4D Date: Mon, 20 Jun 2016 17:48:22 +0200 Subject: [PATCH] - added *.js files for develop branch --- public/js/v1.1.1/app.js | 162 + public/js/v1.1.1/app/ccp.js | 60 + public/js/v1.1.1/app/config/signature_type.js | 413 + public/js/v1.1.1/app/config/system_effect.js | 733 + public/js/v1.1.1/app/counter.js | 101 + public/js/v1.1.1/app/init.js | 409 + public/js/v1.1.1/app/logging.js | 499 + public/js/v1.1.1/app/login.js | 686 + public/js/v1.1.1/app/map/contextmenu.js | 111 + public/js/v1.1.1/app/map/magnetizing.js | 156 + public/js/v1.1.1/app/map/map.js | 3544 +++++ public/js/v1.1.1/app/map/overlay.js | 273 + public/js/v1.1.1/app/mappage.js | 323 + public/js/v1.1.1/app/module_map.js | 769 + public/js/v1.1.1/app/notification.js | 207 + public/js/v1.1.1/app/page.js | 1034 ++ public/js/v1.1.1/app/render.js | 69 + public/js/v1.1.1/app/setup.js | 53 + public/js/v1.1.1/app/ui/demo_map.js | 314 + .../v1.1.1/app/ui/dialog/account_settings.js | 209 + public/js/v1.1.1/app/ui/dialog/credit.js | 51 + .../js/v1.1.1/app/ui/dialog/delete_account.js | 116 + public/js/v1.1.1/app/ui/dialog/jump_info.js | 39 + public/js/v1.1.1/app/ui/dialog/manual.js | 172 + public/js/v1.1.1/app/ui/dialog/map_info.js | 869 ++ .../js/v1.1.1/app/ui/dialog/map_settings.js | 608 + .../js/v1.1.1/app/ui/dialog/notification.js | 96 + public/js/v1.1.1/app/ui/dialog/releases.js | 98 + .../js/v1.1.1/app/ui/dialog/system_effects.js | 106 + public/js/v1.1.1/app/ui/dialog/trust.js | 138 + public/js/v1.1.1/app/ui/form_element.js | 275 + public/js/v1.1.1/app/ui/header.js | 239 + public/js/v1.1.1/app/ui/logo.js | 149 + public/js/v1.1.1/app/ui/system_graph.js | 241 + public/js/v1.1.1/app/ui/system_info.js | 485 + public/js/v1.1.1/app/ui/system_killboard.js | 495 + public/js/v1.1.1/app/ui/system_route.js | 855 ++ public/js/v1.1.1/app/ui/system_signature.js | 1976 +++ public/js/v1.1.1/app/util.js | 1923 +++ public/js/v1.1.1/lib/EasePack.min.js | 12 + public/js/v1.1.1/lib/TweenLite.min.js | 12 + public/js/v1.1.1/lib/blueimp-gallery.js | 1341 ++ public/js/v1.1.1/lib/blueimp-helper.js | 192 + public/js/v1.1.1/lib/bootbox.min.js | 6 + .../js/v1.1.1/lib/bootstrap-confirmation.js | 249 + .../js/v1.1.1/lib/bootstrap-editable.min.js | 7 + .../js/v1.1.1/lib/bootstrap-image-gallery.js | 89 + public/js/v1.1.1/lib/bootstrap.min.js | 7 + public/js/v1.1.1/lib/bootstrap2-toggle.min.js | 8 + .../lib/datatables/dataTables.bootstrap.js | 184 + .../responsive/dataTables.responsive.js | 873 ++ .../extensions/tabletools/Readme.txt | 41 + .../tabletools/js/dataTables.tableTools.js | 3215 ++++ .../js/dataTables.tableTools.min.js | 69 + .../tabletools/swf/copy_csv_xls.swf | Bin 0 -> 2232 bytes .../tabletools/swf/copy_csv_xls_pdf.swf | Bin 0 -> 58845 bytes .../lib/datatables/jquery.dataTables.min.js | 160 + public/js/v1.1.1/lib/dom.jsPlumb-1.7.6.js | 12729 +++++++++++++++ public/js/v1.1.1/lib/farahey-0.5.js | 350 + public/js/v1.1.1/lib/jquery-1.11.3.min.js | 5 + public/js/v1.1.1/lib/jquery.dragToSelect.js | 381 + .../js/v1.1.1/lib/jquery.easypiechart.min.js | 9 + public/js/v1.1.1/lib/jquery.fullscreen.min.js | 23 + .../v1.1.1/lib/jquery.hoverIntent.minified.js | 9 + .../lib/jquery.lazylinepainter-1.5.1.min.js | 17 + public/js/v1.1.1/lib/jquery.lazyload.min.js | 2 + .../v1.1.1/lib/jquery.mCustomScrollbar.min.js | 13 + public/js/v1.1.1/lib/jsPlumb-2.0.5.js | 12733 ++++++++++++++++ public/js/v1.1.1/lib/morris.min.js | 7 + public/js/v1.1.1/lib/mustache.min.js | 1 + .../v1.1.1/lib/pnotify/pnotify.callbacks.js | 48 + public/js/v1.1.1/lib/pnotify/pnotify.core.js | 778 + .../js/v1.1.1/lib/pnotify/pnotify.desktop.js | 143 + .../js/v1.1.1/lib/pnotify/pnotify.nonblock.js | 151 + public/js/v1.1.1/lib/raphael-min.js | 11 + public/js/v1.1.1/lib/require.js | 36 + public/js/v1.1.1/lib/requirejs/text.js | 390 + public/js/v1.1.1/lib/select2.min.js | 3 + public/js/v1.1.1/lib/slidebars.js | 349 + public/js/v1.1.1/lib/validator.min.js | 9 + public/js/v1.1.1/lib/velocity.min.js | 4 + public/js/v1.1.1/lib/velocity.ui.min.js | 2 + 82 files changed, 53724 insertions(+) create mode 100644 public/js/v1.1.1/app.js create mode 100644 public/js/v1.1.1/app/ccp.js create mode 100644 public/js/v1.1.1/app/config/signature_type.js create mode 100644 public/js/v1.1.1/app/config/system_effect.js create mode 100644 public/js/v1.1.1/app/counter.js create mode 100644 public/js/v1.1.1/app/init.js create mode 100644 public/js/v1.1.1/app/logging.js create mode 100644 public/js/v1.1.1/app/login.js create mode 100644 public/js/v1.1.1/app/map/contextmenu.js create mode 100644 public/js/v1.1.1/app/map/magnetizing.js create mode 100644 public/js/v1.1.1/app/map/map.js create mode 100644 public/js/v1.1.1/app/map/overlay.js create mode 100644 public/js/v1.1.1/app/mappage.js create mode 100644 public/js/v1.1.1/app/module_map.js create mode 100644 public/js/v1.1.1/app/notification.js create mode 100644 public/js/v1.1.1/app/page.js create mode 100644 public/js/v1.1.1/app/render.js create mode 100644 public/js/v1.1.1/app/setup.js create mode 100644 public/js/v1.1.1/app/ui/demo_map.js create mode 100644 public/js/v1.1.1/app/ui/dialog/account_settings.js create mode 100644 public/js/v1.1.1/app/ui/dialog/credit.js create mode 100644 public/js/v1.1.1/app/ui/dialog/delete_account.js create mode 100644 public/js/v1.1.1/app/ui/dialog/jump_info.js create mode 100644 public/js/v1.1.1/app/ui/dialog/manual.js create mode 100644 public/js/v1.1.1/app/ui/dialog/map_info.js create mode 100644 public/js/v1.1.1/app/ui/dialog/map_settings.js create mode 100644 public/js/v1.1.1/app/ui/dialog/notification.js create mode 100644 public/js/v1.1.1/app/ui/dialog/releases.js create mode 100644 public/js/v1.1.1/app/ui/dialog/system_effects.js create mode 100644 public/js/v1.1.1/app/ui/dialog/trust.js create mode 100644 public/js/v1.1.1/app/ui/form_element.js create mode 100644 public/js/v1.1.1/app/ui/header.js create mode 100644 public/js/v1.1.1/app/ui/logo.js create mode 100644 public/js/v1.1.1/app/ui/system_graph.js create mode 100644 public/js/v1.1.1/app/ui/system_info.js create mode 100644 public/js/v1.1.1/app/ui/system_killboard.js create mode 100644 public/js/v1.1.1/app/ui/system_route.js create mode 100644 public/js/v1.1.1/app/ui/system_signature.js create mode 100644 public/js/v1.1.1/app/util.js create mode 100644 public/js/v1.1.1/lib/EasePack.min.js create mode 100644 public/js/v1.1.1/lib/TweenLite.min.js create mode 100644 public/js/v1.1.1/lib/blueimp-gallery.js create mode 100644 public/js/v1.1.1/lib/blueimp-helper.js create mode 100644 public/js/v1.1.1/lib/bootbox.min.js create mode 100644 public/js/v1.1.1/lib/bootstrap-confirmation.js create mode 100644 public/js/v1.1.1/lib/bootstrap-editable.min.js create mode 100644 public/js/v1.1.1/lib/bootstrap-image-gallery.js create mode 100644 public/js/v1.1.1/lib/bootstrap.min.js create mode 100644 public/js/v1.1.1/lib/bootstrap2-toggle.min.js create mode 100644 public/js/v1.1.1/lib/datatables/dataTables.bootstrap.js create mode 100644 public/js/v1.1.1/lib/datatables/extensions/responsive/dataTables.responsive.js create mode 100644 public/js/v1.1.1/lib/datatables/extensions/tabletools/Readme.txt create mode 100644 public/js/v1.1.1/lib/datatables/extensions/tabletools/js/dataTables.tableTools.js create mode 100644 public/js/v1.1.1/lib/datatables/extensions/tabletools/js/dataTables.tableTools.min.js create mode 100644 public/js/v1.1.1/lib/datatables/extensions/tabletools/swf/copy_csv_xls.swf create mode 100644 public/js/v1.1.1/lib/datatables/extensions/tabletools/swf/copy_csv_xls_pdf.swf create mode 100644 public/js/v1.1.1/lib/datatables/jquery.dataTables.min.js create mode 100644 public/js/v1.1.1/lib/dom.jsPlumb-1.7.6.js create mode 100644 public/js/v1.1.1/lib/farahey-0.5.js create mode 100644 public/js/v1.1.1/lib/jquery-1.11.3.min.js create mode 100644 public/js/v1.1.1/lib/jquery.dragToSelect.js create mode 100644 public/js/v1.1.1/lib/jquery.easypiechart.min.js create mode 100644 public/js/v1.1.1/lib/jquery.fullscreen.min.js create mode 100644 public/js/v1.1.1/lib/jquery.hoverIntent.minified.js create mode 100644 public/js/v1.1.1/lib/jquery.lazylinepainter-1.5.1.min.js create mode 100644 public/js/v1.1.1/lib/jquery.lazyload.min.js create mode 100644 public/js/v1.1.1/lib/jquery.mCustomScrollbar.min.js create mode 100644 public/js/v1.1.1/lib/jsPlumb-2.0.5.js create mode 100644 public/js/v1.1.1/lib/morris.min.js create mode 100644 public/js/v1.1.1/lib/mustache.min.js create mode 100644 public/js/v1.1.1/lib/pnotify/pnotify.callbacks.js create mode 100644 public/js/v1.1.1/lib/pnotify/pnotify.core.js create mode 100644 public/js/v1.1.1/lib/pnotify/pnotify.desktop.js create mode 100644 public/js/v1.1.1/lib/pnotify/pnotify.nonblock.js create mode 100644 public/js/v1.1.1/lib/raphael-min.js create mode 100644 public/js/v1.1.1/lib/require.js create mode 100644 public/js/v1.1.1/lib/requirejs/text.js create mode 100644 public/js/v1.1.1/lib/select2.min.js create mode 100644 public/js/v1.1.1/lib/slidebars.js create mode 100644 public/js/v1.1.1/lib/validator.min.js create mode 100644 public/js/v1.1.1/lib/velocity.min.js create mode 100644 public/js/v1.1.1/lib/velocity.ui.min.js diff --git a/public/js/v1.1.1/app.js b/public/js/v1.1.1/app.js new file mode 100644 index 00000000..070abb46 --- /dev/null +++ b/public/js/v1.1.1/app.js @@ -0,0 +1,162 @@ +// main script path +var mainScriptPath = document.body.getAttribute('data-script'); + +// js baseURL. Depends on the environment. +// e.g. use raw files (develop) or build files (production) +var jsBaseUrl = document.body.getAttribute('data-js-path'); + +// requireJs configuration +requirejs.config({ + baseUrl: 'js', // path for baseUrl - dynamically set !below! ("build_js" | "js") + + paths: { + layout: 'layout', + config: 'app/config', // path for "configuration" files dir + dialog: 'app/ui/dialog', // path for "dialog" files dir + templates: '../../templates', // template dir + img: '../../img', // images dir + + // main views + login: './app/login', // initial start "login page" view + mappage: './app/mappage', // initial start "map page" view + setup: './app/setup', // initial start "setup page" view + + jquery: 'lib/jquery-1.11.3.min', // v1.11.3 jQuery + bootstrap: 'lib/bootstrap.min', // v3.3.0 Bootstrap js code - http://getbootstrap.com/javascript + text: 'lib/requirejs/text', // v2.0.12 A RequireJS/AMD loader plugin for loading text resources. + mustache: 'lib/mustache.min', // v1.0.0 Javascript template engine - http://mustache.github.io + velocity: 'lib/velocity.min', // v1.2.2 animation engine - http://julian.com/research/velocity + velocityUI: 'lib/velocity.ui.min', // v5.0.4 plugin for velocity - http://julian.com/research/velocity/#uiPack + slidebars: 'lib/slidebars', // v0.10 Slidebars - side menu plugin http://plugins.adchsm.me/slidebars + jsPlumb: 'lib/dom.jsPlumb-1.7.6', // v1.7.6 jsPlumb (Vanilla)- main map draw plugin https://jsplumbtoolkit.com + farahey: 'lib/farahey-0.5', // v0.5 jsPlumb "magnetizing" extension - https://github.com/jsplumb/farahey + customScrollbar: 'lib/jquery.mCustomScrollbar.min', // v3.1.3 Custom scroll bars - http://manos.malihu.gr + datatables: 'lib/datatables/jquery.dataTables.min', // v1.10.7 DataTables - https://datatables.net + //datatablesBootstrap: 'lib/datatables/dataTables.bootstrap', // DataTables - not used (bootstrap style) + datatablesResponsive: 'lib/datatables/extensions/responsive/dataTables.responsive', // v1.0.6 TableTools (PlugIn) - https://datatables.net/extensions/responsive + + datatablesTableTools: 'lib/datatables/extensions/tabletools/js/dataTables.tableTools', // v2.2.3 TableTools (PlugIn) - https://datatables.net/extensions/tabletools + xEditable: 'lib/bootstrap-editable.min', // v1.5.1 X-editable - in placed editing + morris: 'lib/morris.min', // v0.5.1 Morris.js - graphs and charts + raphael: 'lib/raphael-min', // v2.1.2 RaphaĆ«l - required for morris (dependency) + bootbox: 'lib/bootbox.min', // v4.4.0 Bootbox.js - custom dialogs - http://bootboxjs.com + easyPieChart: 'lib/jquery.easypiechart.min', // v2.1.6 Easy Pie Chart - HTML 5 pie charts - http://rendro.github.io/easy-pie-chart + dragToSelect: 'lib/jquery.dragToSelect', // v1.1 Drag to Select - http://andreaslagerkvist.com/jquery/drag-to-select + hoverIntent: 'lib/jquery.hoverIntent.minified', // v1.8.0 Hover intention - http://cherne.net/brian/resources/jquery.hoverIntent.html + fullScreen: 'lib/jquery.fullscreen.min', // v0.5.0 Full screen mode - https://github.com/private-face/jquery.fullscreen + select2: 'lib/select2.min', // v4.0.3 Drop Down customization - https://select2.github.io + validator: 'lib/validator.min', // v0.10.1 Validator for Bootstrap 3 - https://github.com/1000hz/bootstrap-validator + lazylinepainter: 'lib/jquery.lazylinepainter-1.5.1.min', // v1.5.1 SVG line animation plugin - http://lazylinepainter.info + blueImpGallery: 'lib/blueimp-gallery', // v2.15.2 Image Gallery - https://github.com/blueimp/Gallery + blueImpGalleryHelper: 'lib/blueimp-helper', // helper function for Blue Imp Gallery + blueImpGalleryBootstrap: 'lib/bootstrap-image-gallery', // v3.1.1 Bootstrap extension for Blue Imp Gallery - https://blueimp.github.io/Bootstrap-Image-Gallery + bootstrapConfirmation: 'lib/bootstrap-confirmation', // v1.0.1 Bootstrap extension for inline confirm dialog - https://github.com/tavicu/bs-confirmation + bootstrapToggle: 'lib/bootstrap2-toggle.min', // v2.2.0 Bootstrap Toggle (Checkbox) - http://www.bootstraptoggle.com + lazyload: 'lib/jquery.lazyload.min', // v1.9.5 LazyLoader images - http://www.appelsiini.net/projects/lazyload + + // header animation + easePack: 'lib/EasePack.min', + tweenLite: 'lib/TweenLite.min', + + // notification plugin + pnotify: 'lib/pnotify/pnotify.core', // v2.0.1 PNotify - notification core file + 'pnotify.buttons': 'lib/pnotify/pnotify.buttons', // PNotify - buttons notification extension + 'pnotify.confirm': 'lib/pnotify/pnotify.confirm', // PNotify - confirmation notification extension + 'pnotify.nonblock': 'lib/pnotify/pnotify.nonblock', // PNotify - notification non-block extension (hover effect) + 'pnotify.desktop': 'lib/pnotify/pnotify.desktop', // PNotify - desktop push notification extension + 'pnotify.history': 'lib/pnotify/pnotify.history', // PNotify - history push notification history extension + 'pnotify.callbacks': 'lib/pnotify/pnotify.callbacks', // PNotify - callbacks push notification extension + 'pnotify.reference': 'lib/pnotify/pnotify.reference' // PNotify - reference push notification extension + + }, + shim: { + bootstrap: { + deps: ['jquery'] + }, + farahey: { + deps: ['jsPlumb'] + }, + velocity: { + deps: ['jquery'] + }, + velocityUI: { + deps: ['velocity'] + }, + slidebars: { + deps: ['jquery'] + }, + customScrollbar: { + deps: ['jquery'] + }, + datatables: { + deps: ['jquery'] + }, + datatablesBootstrap: { + deps: ['datatables'] + }, + datatablesResponsive: { + deps: ['datatables'] + }, + datatablesTableTools: { + deps: ['datatables'] + }, + xEditable: { + deps: ['bootstrap'] + }, + bootbox: { + deps: ['jquery', 'bootstrap'], + exports: 'bootbox' + }, + morris: { + deps: ['jquery', 'raphael'], + exports: 'Morris' + }, + pnotify: { + deps : ['jquery'] + }, + easyPieChart: { + deps : ['jquery'] + }, + dragToSelect: { + deps : ['jquery'] + }, + hoverIntent: { + deps : ['jquery'] + }, + fullScreen: { + deps : ['jquery'] + }, + select2: { + deps : ['jquery'], + exports: 'Select2' + }, + validator: { + deps : ['jquery', 'bootstrap'] + }, + lazylinepainter: { + deps : ['jquery', 'bootstrap'] + }, + blueImpGallery: { + deps : ['jquery'] + }, + bootstrapConfirmation: { + deps : ['bootstrap'] + }, + bootstrapToggle: { + deps : ['jquery'] + }, + lazyload: { + deps : ['jquery'] + } + } +}); + +// switch baseUrl to js "build_js" in production environment +// this has no effect for js build process! +// check build.js for build configuration +require.config({ + baseUrl: jsBaseUrl +}); + +// load the main app module -> initial app start +requirejs( [mainScriptPath] ); diff --git a/public/js/v1.1.1/app/ccp.js b/public/js/v1.1.1/app/ccp.js new file mode 100644 index 00000000..6dd2186e --- /dev/null +++ b/public/js/v1.1.1/app/ccp.js @@ -0,0 +1,60 @@ +/** + * Global CCPEvE function wrapper + */ + +define(['jquery'], function($) { + + 'use strict'; + + /** + * checks whether the program URL is IGB trusted or not + * @returns {boolean} + */ + var isTrusted = function(){ + var isPageTrusted = false; + + if(isInGameBrowser()){ + var trustedAttribute = $('body').attr('data-trusted'); + if(trustedAttribute === '1'){ + isPageTrusted = true; + } + }else{ + // out of game browser is always trusted + isPageTrusted = true; + } + + return isPageTrusted; + }; + + /** + * show IGB trust message + */ + var requestTrust = function(){ + + if( + isInGameBrowser() && + !isTrusted() + ){ + CCPEVE.requestTrust( location.protocol + '//' + location.host ); + } + }; + + /** + * in-game or out-of-game browser + * @returns {boolean} + */ + var isInGameBrowser = function(){ + var inGame = false; + if(typeof CCPEVE === 'object'){ + inGame = true; + } + + return inGame; + }; + + return { + isInGameBrowser: isInGameBrowser, + isTrusted: isTrusted, + requestTrust: requestTrust + }; +}); \ No newline at end of file diff --git a/public/js/v1.1.1/app/config/signature_type.js b/public/js/v1.1.1/app/config/signature_type.js new file mode 100644 index 00000000..b2cc4cb3 --- /dev/null +++ b/public/js/v1.1.1/app/config/signature_type.js @@ -0,0 +1,413 @@ +/** + * Created by exodus4d on 06.07.2015. + * static signature types + * + * (*) marked fields are in-game verified and + * proofed, signature names (copy & paste from scanning window) + */ + +define(['jquery'], function($) { + + 'use strict'; + + // signature sources + // http://de.sistersprobe.wikia.com/wiki/EVE_Sister_Core_Scanner_Probe_Wiki + + + // NullSec Relic sites, which can also spawn in C1, C2, C3 wormholes + var nullSecRelicSites = { + 10: 'Ruined Angel Crystal Quarry', + 11: 'Ruined Angel Monument Site', + 12: 'Ruined Angel Science Outpost', + 13: 'Ruined Angel Temple Site', + 14: 'Ruined Blood Raider Crystal Quarry', + 15: 'Ruined Blood Raider Monument Site', + 16: 'Ruined Blood Raider Science Outpost', + 17: 'Ruined Blood Raider Temple Site', + 18: 'Ruined Guristas Crystal Quarry', + 19: 'Ruined Guristas Monument Site', + 20: 'Ruined Guristas Science Outpost', + 21: 'Ruined Guristas Temple Site', + 22: 'Ruined Sansha Crystal Quarry', + 23: 'Ruined Sansha Monument Site', + 24: 'Ruined Sansha Science Outpost', + 25: 'Ruined Sansha Temple Site', + 26: 'Ruined Serpentis Crystal Quarry', + 27: 'Ruined Serpentis Monument Site', + 28: 'Ruined Serpentis Science Outpost', + 29: 'Ruined Serpentis Temple Site' + }; + + // NulSec Data sites, which can also spawn in C1, C2, C3 wormholes + var nullSecDataSites = { + 10: 'Abandoned Research Complex DA005', + 11: 'Abandoned Research Complex DA015', + 12: 'Abandoned Research Complex DC007', + 13: 'Abandoned Research Complex DC021', + 14: 'Abandoned Research Complex DC035', + 15: 'Abandoned Research Complex DG003', + 16: 'Central Angel Command Center', + 17: 'Central Angel Data Mining Site', + 18: 'Central Angel Sparking Transmitter', + 19: 'Central Angel Survey Site', + 20: 'Central Blood Raider Command Center', + 21: 'Central Blood Raider Data Mining Site', + 22: 'Central Blood Raider Sparking Transmitter', + 23: 'Central Blood Raider Survey Site', + 24: 'Central Guristas Command Center', + 25: 'Central Guristas Data Mining Center', + 26: 'Central Guristas Sparking Transmitter', + 27: 'Central Guristas Survey Site', + 28: 'Central Sansha Command Center', + 29: 'Central Sansha Data Mining Site', + 30: 'Central Sansha Sparking Transmitter', + 31: 'Central Sansha Survey Site', + 32: 'Central Serpentis Command Center', + 33: 'Central Serpentis Data Mining Site', + 34: 'Central Serpentis Sparking Transmitter', + 35: 'Central Serpentis Survey Site' + }; + + + // signature types + var signatureTypes = { + 1: { // system type (wh) + 1: { // C1 (area id) + 1: { // Combat + 1: 'Perimeter Ambush Point', + 2: 'Perimeter Camp', + 3: 'Phase Catalyst Node', + 4: 'The Line' + }, + 2: $.extend({}, nullSecRelicSites, { // Relic + 1: 'Forgotten Perimeter Coronation Platform', //* + 2: 'Forgotten Perimeter Power Array' //* + }), + 3: $.extend({}, nullSecDataSites, { // Data + 1: 'Unsecured Perimeter Amplifier', //* + 2: 'Unsecured Perimeter Information Center' //* + }), + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Token Perimeter Reservoir', //* + 3: 'Minor Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Ordinary Perimeter Reservoir' //* + }, + 5: { // Wormhole + 1: 'H121 - C1', + 2: 'C125 - C2', + 3: 'O883 - C3', + 4: 'M609 - C4', + 5: 'L614 - C5', + 6: 'S804 - C6', + 7: 'F135 - Thera' + }, + 6: { // ORE + 1: 'Ordinary Perimeter Deposit', //* + 2: 'Common Perimeter Deposit', //* + 3: 'Unexceptional Frontier Deposit', //* + 4: 'Average Frontier Deposit', //* + 5: 'Isolated Core Deposit', //* + 6: 'Uncommon Core Deposit' //* + }, + 7: { // Ghost + + } + }, + 2: { // C2 + 1: { // Combat + 1: 'Perimeter Checkpoint', + 2: 'Perimeter Hangar', + 3: 'The Ruins of Enclave Cohort 27', + 4: 'Sleeper Data Sanctuary' + }, + 2: $.extend({}, nullSecRelicSites, { // Relic + 1: 'Forgotten Perimeter Gateway', //* + 2: 'Forgotten Perimeter Habitation Coils' //* + }), + 3: $.extend({}, nullSecDataSites, { // Data + 1: 'Unsecured Perimeter Comms Relay', //* + 2: 'Unsecured Perimeter Transponder Farm' //* + }), + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Token Perimeter Reservoir', //* + 3: 'Minor Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Ordinary Perimeter Reservoir' //* + }, + 5: { // Wormhole + 1: 'F135 - Thera' + }, + 6: { // ORE + 1: 'Ordinary Perimeter Deposit', //* + 2: 'Common Perimeter Deposit', //* + 3: 'Unexceptional Frontier Deposit', //* + 4: 'Average Frontier Deposit', //* + 5: 'Isolated Core Deposit', //* + 6: 'Uncommon Core Deposit' //* + }, + 7: { // Ghost + + } + }, + 3: { // C3 + 1: { // Combat + 1: 'Fortification Frontier Stronghold', + 2: 'Outpost Frontier Stronghold', + 3: 'Solar Cell', + 4: 'The Oruze Construct' + }, + 2: $.extend({}, nullSecRelicSites, { // Relic + 1: 'Forgotten Frontier Quarantine Outpost', //* + 2: 'Forgotten Frontier Recursive Depot' //* + }), + 3: $.extend({}, nullSecDataSites, { // Data + 1: 'Unsecured Frontier Database', //* + 2: 'Unsecured Frontier Receiver' //* + }), + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Token Perimeter Reservoir', //* + 3: 'Minor Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Ordinary Perimeter Reservoir', //* + 6: 'Bountiful Frontier Reservoir', //* + 7: 'Vast Frontier Reservoir' //* + }, + 5: { // Wormhole + 1: 'V301 - C1', + 2: 'I182 - C2', + 3: 'N968 - C3', + 4: 'T405 - C4', + 5: 'N770 - C5', + 6: 'A982 - C6', + 7: 'F135 - Thera' + }, + 6: { // ORE + 1: 'Ordinary Perimeter Deposit', //* + 2: 'Common Perimeter Deposit', //* + 3: 'Unexceptional Frontier Deposit', //* + 4: 'Average Frontier Deposit', //* + 5: 'Infrequent Core Deposit', //* + 6: 'Unusual Core Deposit' //* + }, + 7: { // Ghost + + } + }, + 4: { // C4 + 1: { // Combat + 1: 'Frontier Barracks', + 2: 'Frontier Command Post', + 3: 'Integrated Terminus', + 4: 'Sleeper Information Sanctum' + }, + 2: { // Relic + 1: 'Forgotten Frontier Conversion Module', + 2: 'Forgotten Frontier Evacuation Center' + }, + 3: { // Data + 1: 'Unsecured Frontier Digital Nexus', + 2: 'Unsecured Frontier Trinary Hub' + }, + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Token Perimeter Reservoir', //* + 3: 'Minor Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Ordinary Perimeter Reservoir', //* + 6: 'Vast Frontier Reservoir' //* + }, + 5: { // Wormhole + // no *wandering* w-space -> k-space wormholes + // all holes are statics or K162 + }, + 6: { // ORE + 1: 'Ordinary Perimeter Deposit', //* + 2: 'Common Perimeter Deposit', //* + 3: 'Unexceptional Frontier Deposit', //* + 4: 'Average Frontier Deposit', //* + 5: 'Unusual Core Deposit' //* + }, + 7: { // Ghost + + } + }, + 5: { // C5 + 1: { // Combat + 1: 'Core Garrison', //* + 2: 'Core Stronghold', //* + 3: 'Oruze Osobnyk', //* + 4: 'Quarantine Area' + }, + 2: { // Relic + 1: 'Forgotten Core Data Field', + 2: 'Forgotten Core Information Pen' + }, + 3: { // Data + 1: 'Unsecured Frontier Enclave Relay', + 2: 'Unsecured Frontier Server Bank' + }, + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Minor Perimeter Reservoir', //* + 3: 'Ordinary Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Token Perimeter Reservoir', //* + 6: 'Bountiful Frontier Reservoir', //* + 7: 'Vast Frontier Reservoir', //* + 8: 'Instrumental Core Reservoir', //* + 9: 'Vital Core Reservoir' //* + }, + 5: { // Wormhole + 1: 'D792 - HS', + 2: 'C140 - LS', + 3: 'Z142 - 0.0', + 4: 'F135 - Thera' + }, + 6: { // ORE + 1: 'Average Frontier Deposit', //* + 2: 'Unexceptional Frontier Deposit', //* + 3: 'Uncommon Core Deposit', //* + 4: 'Ordinary Perimeter Deposit', //* + 5: 'Common Perimeter Deposit', //* + 6: 'Exceptional Core Deposit', //* + 7: 'Infrequent Core Deposit', //* + 8: 'Unusual Core Deposit', //* + 9: 'Rarified Core Deposit', //* + 10: 'Isolated Core Deposit' //* + }, + 7: { // Ghost + + } + }, + 6: { // C6 + 1: { // Combat + 1: 'Core Citadel', //* + 2: 'Core Bastion', //* + 3: 'Strange Energy Readings', //* + 4: 'The Mirror' //* + }, + 2: { // Relic + 1: 'Forgotten Core Assembly Hall', //* + 2: 'Forgotten Core Circuitry Disassembler' //* + }, + 3: { // Data + 1: 'Unsecured Core Backup Array', //* + 2: 'Unsecured Core Emergence' //* + }, + 4: { // Gas + 1: 'Barren Perimeter Reservoir', //* + 2: 'Minor Perimeter Reservoir', //* + 3: 'Ordinary Perimeter Reservoir', //* + 4: 'Sizeable Perimeter Reservoir', //* + 5: 'Token Perimeter Reservoir', //* + 6: 'Bountiful Frontier Reservoir', //* + 7: 'Vast Frontier Reservoir', //* + 8: 'Instrumental Core Reservoir', //* + 9: 'Vital Core Reservoir' //* + }, + 5: { // Wormhole + 1: 'D792 - HS', + 2: 'C391 - LS', + 3: 'Z142 - 0.0', + 4: 'F135 - Thera' + }, + 6: { // ORE + 1: 'Ordinary Perimeter Deposit', //* + 2: 'Common Perimeter Deposit', //* + 3: 'Unexceptional Frontier Deposit', //* + 4: 'Average Frontier Deposit', //* + 5: 'Rarified Core Deposit' //* + }, + 7: { // Ghost + 1: 'Superior Blood Raider Covert Research Facility' //* + } + }, + 13: { // Shattered Wormholes + 5: { // Wormhole (some of them are static) + 1: 'P060 - C1', + 2: 'Z647 - C1', + 3: 'D382 - C2', + 4: 'L005 - C2', + 5: 'N766 - C2', + 6: 'C247 - C3', + 7: 'K346 - C3', + 8: 'M267 - C3', + 9: 'O477 - C3', + 10: 'X877 - C4', + 11: 'Y683 - C4', + 12: 'H296 - C5', + 13: 'H900 - C5', + 14: 'H296 - C5', + 15: 'N062 - C5', + 16: 'V911 - C5', + 17: 'U574 - C6', + 18: 'V753 - C6', + 19: 'W237 - C6', + 20: 'B274 - HS', + 21: 'D792 - HS', + 22: 'D845 - HS', + 23: 'N110 - HS', + 24: 'A239 - LS', + 25: 'C391 - LS', + 26: 'J244 - LS', + 27: 'U201 - LS', + 28: 'U210 - LS', + 29: 'C248 - 0.0', + 30: 'E545 - 0.0', + 31: 'K346 - 0.0', + 32: 'Z060 - 0.0' + } + } + }, // system type (k-space) + 2: { + 10: { // High Sec + 5: { // Wormhole + 1: 'Z971 - C1', + 2: 'R943 - C2', + 3: 'X702 - C3', + // no C4 + 4: 'M555 - C5', + 5: 'B041 - C6', + 6: 'A641 - HS', + 7: 'R051 - LS', + 8: 'V283 - 0.0', + 9: 'T458 - Thera' + } + }, + 11: { // Low Sec + 5: { // Wormhole + 1: 'Z971 - C1', + 2: 'R943 - C2', + 3: 'X702 - C3', + // no C4 + 4: 'N432 - C5', + 5: 'U319 - C6', + 6: 'B449 - HS', + 7: 'N944 - LS', + 8: 'S199 - 0.0', + 9: 'M164 - Thera' + } + }, + 12: { // 0.0 + 5: { // Wormhole + 1: 'Z971 - C1', + 2: 'R943 - C2', + 3: 'X702 - C3', + // no C4 + 4: 'N432 - C5', + 5: 'U319 - C6', + 6: 'B449 - HS', + 7: 'N944 - LS', + 8: 'S199 - 0.0', + 9: 'L031 - Thera' + } + } + } + }; + + return signatureTypes; +}); \ No newline at end of file diff --git a/public/js/v1.1.1/app/config/system_effect.js b/public/js/v1.1.1/app/config/system_effect.js new file mode 100644 index 00000000..b433d937 --- /dev/null +++ b/public/js/v1.1.1/app/config/system_effect.js @@ -0,0 +1,733 @@ +/** + * Created by exodus4d on 06.07.2015. + * static system effects + */ + + +define([], function() { + + 'use strict'; + + // system effects + var systemEffects = { + wh: { + magnetar: { + 1: [ + { + effect: 'Damage', + value: '+30%' + },{ + effect: 'Missile explosion radius', + value: '+15%' + },{ + effect: 'Drone Tracking', + value: '-15%' + },{ + effect: 'Targeting Range', + value: '-15%' + },{ + effect: 'Tracking Speed', + value: '-15%' + },{ + effect: 'Target Painter Strength', + value: '-15%' + } + ], + 2: [ + { + effect: 'Damage', + value: '+44%' + },{ + effect: 'Missile explosion radius', + value: '+22%' + },{ + effect: 'Drone Tracking', + value: '-22%' + },{ + effect: 'Targeting Range', + value: '-22%' + },{ + effect: 'Tracking Speed', + value: '-22%' + },{ + effect: 'Target Painter Strength', + value: '-22%' + } + ], + 3: [ + { + effect: 'Damage', + value: '+58%' + },{ + effect: 'Missile explosion radius', + value: '+29%' + },{ + effect: 'Drone Tracking', + value: '-29%' + },{ + effect: 'Targeting Range', + value: '-29%' + },{ + effect: 'Tracking Speed', + value: '-29%' + },{ + effect: 'Target Painter Strength', + value: '-29%' + } + ], + 4: [ + { + effect: 'Damage', + value: '+72%' + },{ + effect: 'Missile explosion radius', + value: '+36%' + },{ + effect: 'Drone Tracking', + value: '-36%' + },{ + effect: 'Targeting Range', + value: '-36%' + },{ + effect: 'Tracking Speed', + value: '-36%' + },{ + effect: 'Target Painter Strength', + value: '-36%' + } + ], + 5: [ + { + effect: 'Damage', + value: '+86%' + },{ + effect: 'Missile explosion radius', + value: '+43%' + },{ + effect: 'Drone Tracking', + value: '-43%' + },{ + effect: 'Targeting Range', + value: '-43%' + },{ + effect: 'Tracking Speed', + value: '-43%' + },{ + effect: 'Target Painter Strength', + value: '-43%' + } + ], + 6: [ + { + effect: 'Damage', + value: '+100%' + },{ + effect: 'Missile explosion radius', + value: '+50%' + },{ + effect: 'Drone Tracking', + value: '-50%' + },{ + effect: 'Targeting Range', + value: '-50%' + },{ + effect: 'Tracking Speed', + value: '-50%' + },{ + effect: 'Target Painter Strength', + value: '-50%' + } + ] + }, + redGiant: { + 1: [ + { + effect: 'Heat Damage', + value: '+15%' + },{ + effect: 'Overload Bonus', + value: '+30%' + },{ + effect: 'Smart Bomb Range', + value: '+30%' + },{ + effect: 'Smart Bomb Damage', + value: '+30%' + },{ + effect: 'Bomb Damage', + value: '+30%' + } + ], + 2: [ + { + effect: 'Heat Damage', + value: '+22%' + },{ + effect: 'Overload Bonus', + value: '+44%' + },{ + effect: 'Smart Bomb Range', + value: '+44%' + },{ + effect: 'Smart Bomb Damage', + value: '+44%' + },{ + effect: 'Bomb Damage', + value: '+44%' + } + ], + 3: [ + { + effect: 'Heat Damage', + value: '+29%' + },{ + effect: 'Overload Bonus', + value: '+58%' + },{ + effect: 'Smart Bomb Range', + value: '+58%' + },{ + effect: 'Smart Bomb Damage', + value: '+58%' + },{ + effect: 'Bomb Damage', + value: '+58%' + } + ], + 4: [ + { + effect: 'Heat Damage', + value: '+36%' + },{ + effect: 'Overload Bonus', + value: '+72%' + },{ + effect: 'Smart Bomb Range', + value: '+72%' + },{ + effect: 'Smart Bomb Damage', + value: '+72%' + },{ + effect: 'Bomb Damage', + value: '+72%' + } + ], + 5: [ + { + effect: 'Heat Damage', + value: '+43%' + },{ + effect: 'Overload Bonus', + value: '+86%' + },{ + effect: 'Smart Bomb Range', + value: '+86%' + },{ + effect: 'Smart Bomb Damage', + value: '+86%' + },{ + effect: 'Bomb Damage', + value: '+86%' + } + ], + 6: [ + { + effect: 'Heat Damage', + value: '+50%' + },{ + effect: 'Overload Bonus', + value: '+100%' + },{ + effect: 'Smart Bomb Range', + value: '+100%' + },{ + effect: 'Smart Bomb Damage', + value: '+100%' + },{ + effect: 'Bomb Damage', + value: '+100%' + } + ] + }, + pulsar: { + 1: [ + { + effect: 'Shield HP', + value: '+30%' + },{ + effect: 'Armor Resists', + value: '-15%' + },{ + effect: 'Capacitor recharge', + value: '-15%' + },{ + effect: 'Signature', + value: '+30%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+30%' + } + ], + 2: [ + { + effect: 'Shield HP', + value: '+44%' + },{ + effect: 'Armor Resists', + value: '-22%' + },{ + effect: 'Capacitor recharge', + value: '-22%' + },{ + effect: 'Signature', + value: '+44%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+44%' + } + ], + 3: [ + { + effect: 'Shield HP', + value: '+58%' + },{ + effect: 'Armor Resists', + value: '-29%' + },{ + effect: 'Capacitor recharge', + value: '-29%' + },{ + effect: 'Signature', + value: '+58%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+58%' + } + ], + 4: [ + { + effect: 'Shield HP', + value: '+72%' + },{ + effect: 'Armor Resists', + value: '-36%' + },{ + effect: 'Capacitor recharge', + value: '-36%' + },{ + effect: 'Signature', + value: '+72%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+72%' + } + ], + 5: [ + { + effect: 'Shield HP', + value: '+86%' + },{ + effect: 'Armor Resists', + value: '-43%' + },{ + effect: 'Capacitor recharge', + value: '-43%' + },{ + effect: 'Signature', + value: '+86%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+86%' + } + ], + 6: [ + { + effect: 'Shield HP', + value: '+100%' + },{ + effect: 'Armor Resists', + value: '-50%' + },{ + effect: 'Capacitor recharge', + value: '-50%' + },{ + effect: 'Signature', + value: '+100%' + },{ + effect: 'NOS / Neut Drain Amount', + value: '+100%' + } + ] + }, + wolfRayet: { + 1: [ + { + effect: 'Armor HP', + value: '+30%' + },{ + effect: 'Shield Resist', + value: '-15%' + },{ + effect: 'Small Weapon Damage', + value: '+60%' + },{ + effect: 'Signature Size', + value: '-15%' + } + ], + 2: [ + { + effect: 'Armor HP', + value: '+44%' + },{ + effect: 'Shield Resist', + value: '-22%' + },{ + effect: 'Small Weapon Damage', + value: '+88%' + },{ + effect: 'Signature Size', + value: '-22%' + } + ], + 3: [ + { + effect: 'Armor HP', + value: '+58%' + },{ + effect: 'Shield Resist', + value: '-29%' + },{ + effect: 'Small Weapon Damage', + value: '+116%' + },{ + effect: 'Signature Size', + value: '-29%' + } + ], + 4: [ + { + effect: 'Armor HP', + value: '+72%' + },{ + effect: 'Shield Resist', + value: '-36%' + },{ + effect: 'Small Weapon Damage', + value: '+144%' + },{ + effect: 'Signature Size', + value: '-36%' + } + ], + 5: [ + { + effect: 'Armor HP', + value: '+86%' + },{ + effect: 'Shield Resist', + value: '-43%' + },{ + effect: 'Small Weapon Damage', + value: '+172%' + },{ + effect: 'Signature Size', + value: '-43%' + } + ], + 6: [ + { + effect: 'Armor HP', + value: '+100%' + },{ + effect: 'Shield Resist', + value: '-50%' + },{ + effect: 'Small Weapon Damage', + value: '+200%' + },{ + effect: 'Signature Size', + value: '-50%' + } + ] + }, + cataclysmic: { + 1: [ + { + effect: 'Local armor repair amount', + value: '-15%' + },{ + effect: 'Local shield boost amount', + value: '-15%' + },{ + effect: 'Shield transfer amount', + value: '+30%' + },{ + effect: 'Remote repair amount', + value: '+30%' + },{ + effect: 'Capacitor capacity', + value: '+30%' + },{ + effect: 'Capacitor recharge time', + value: '+15%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-15%' + } + ], + 2: [ + { + effect: 'Local armor repair amount', + value: '-22%' + },{ + effect: 'Local shield boost amount', + value: '-22%' + },{ + effect: 'Shield transfer amount', + value: '+44%' + },{ + effect: 'Remote repair amount', + value: '+44%' + },{ + effect: 'Capacitor capacity', + value: '+44%' + },{ + effect: 'Capacitor recharge time', + value: '+22%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-22%' + } + ], + 3: [ + { + effect: 'Local armor repair amount', + value: '-29%' + },{ + effect: 'Local shield boost amount', + value: '-29%' + },{ + effect: 'Shield transfer amount', + value: '+58%' + },{ + effect: 'Remote repair amount', + value: '+58%' + },{ + effect: 'Capacitor capacity', + value: '+58%' + },{ + effect: 'Capacitor recharge time', + value: '+29%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-29%' + } + ], + 4: [ + { + effect: 'Local armor repair amount', + value: '-36%' + },{ + effect: 'Local shield boost amount', + value: '-36%' + },{ + effect: 'Shield transfer amount', + value: '+72%' + },{ + effect: 'Remote repair amount', + value: '+72%' + },{ + effect: 'Capacitor capacity', + value: '+72%' + },{ + effect: 'Capacitor recharge time', + value: '+36%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-36%' + } + ], + 5: [ + { + effect: 'Local armor repair amount', + value: '-43%' + },{ + effect: 'Local shield boost amount', + value: '-43%' + },{ + effect: 'Shield transfer amount', + value: '+86%' + },{ + effect: 'Remote repair amount', + value: '+86%' + },{ + effect: 'Capacitor capacity', + value: '+86%' + },{ + effect: 'Capacitor recharge time', + value: '+43%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-43%' + } + ], + 6: [ + { + effect: 'Local armor repair amount', + value: '-50%' + },{ + effect: 'Local shield boost amount', + value: '-50%' + },{ + effect: 'Shield transfer amount', + value: '+100%' + },{ + effect: 'Remote repair amount', + value: '+100%' + },{ + effect: 'Capacitor capacity', + value: '+100%' + },{ + effect: 'Capacitor recharge time', + value: '+50%' + },{ + effect: 'Remote Capacitor Transmitter amount', + value: '-50%' + } + ] + }, + blackHole: { + 1: [ + { + effect: 'Missile velocity', + value: '+15%' + },{ + effect: 'Missile Explosion Velocity', + value: '+30%' + },{ + effect: 'Ship velocity', + value: '+30%' + },{ + effect: 'Stasis Webifier Strength', + value: '-15%' + },{ + effect: 'Inertia', + value: '+15%' + },{ + effect: 'Targeting range', + value: '+30%' + } + ], + 2: [ + { + effect: 'Missile velocity', + value: '+22%' + },{ + effect: 'Missile Explosion Velocity', + value: '+44%' + },{ + effect: 'Ship velocity', + value: '+44%' + },{ + effect: 'Stasis Webifier Strength', + value: '-22%' + },{ + effect: 'Inertia', + value: '+22%' + },{ + effect: 'Targeting range', + value: '+44%' + } + ], + 3: [ + { + effect: 'Missile velocity', + value: '+29%' + },{ + effect: 'Missile Explosion Velocity', + value: '+58%' + },{ + effect: 'Ship velocity', + value: '+58%' + },{ + effect: 'Stasis Webifier Strength', + value: '-29%' + },{ + effect: 'Inertia', + value: '+29%' + },{ + effect: 'Targeting range', + value: '+58%' + } + ], + 4: [ + { + effect: 'Missile velocity', + value: '+36%' + },{ + effect: 'Missile Explosion Velocity', + value: '+72%' + },{ + effect: 'Ship velocity', + value: '+72%' + },{ + effect: 'Stasis Webifier Strength', + value: '-36%' + },{ + effect: 'Inertia', + value: '+36%' + },{ + effect: 'Targeting range', + value: '+72%' + } + ], + 5: [ + { + effect: 'Missile velocity', + value: '+43%' + },{ + effect: 'Missile Explosion Velocity', + value: '+86%' + },{ + effect: 'Ship velocity', + value: '+86%' + },{ + effect: 'Stasis Webifier Strength', + value: '-43%' + },{ + effect: 'Inertia', + value: '+43%' + },{ + effect: 'Targeting range', + value: '+86%' + } + ], + 6: [ + { + effect: 'Missile velocity', + value: '+50%' + },{ + effect: 'Missile Explosion Velocity', + value: '+100%' + },{ + effect: 'Ship velocity', + value: '+100%' + },{ + effect: 'Stasis Webifier Strength', + value: '-50%' + },{ + effect: 'Inertia', + value: '+50%' + },{ + effect: 'Targeting range', + value: '+100%' + } + ] + } + } + }; + + + return systemEffects; +}); \ No newline at end of file diff --git a/public/js/v1.1.1/app/counter.js b/public/js/v1.1.1/app/counter.js new file mode 100644 index 00000000..409b37b6 --- /dev/null +++ b/public/js/v1.1.1/app/counter.js @@ -0,0 +1,101 @@ +define(["jquery"], function($) { + + "use strict"; + + var config = { + counterDigitSmallClass: 'pf-digit-counter-small', + counterDigitLargeClass: 'pf-digit-counter-large' + }; + + var updateDateDiff = function(element, tempDate){ + + var date1 = new Date(); + var date2 = tempDate; + //Customise date2 for your required future time + + var diff = (date1 - date2)/1000; + diff = Math.abs(Math.floor(diff)); + + var days = Math.floor(diff/(24*60*60)); + var leftSec = diff - days * 24*60*60; + + var hrs = Math.floor(leftSec/(60*60)); + leftSec = leftSec - hrs * 60*60; + + var min = Math.floor(leftSec/(60)); + leftSec = leftSec - min * 60; + + + var value = []; + + if( + days > 0 || + value.length > 0 + ){ + value.push('' + days + 'd' + ''); + } + if( + hrs > 0 || + value.length > 0 + ){ + value.push('' + hrs + 'h' + ''); + } + if( + min > 0 || + value.length > 0 + ){ + value.push('' + min + 'm' + ''); + } + + if( + leftSec >= 0 || + value.length > 0 + ){ + value.push('' + leftSec + 's' + ''); + } + + + element.html(value.join(' ')); + + }; + + /** + * init a live counter based on a unix timestamp + * @returns {*} + */ + $.fn.initTimestampCounter = function(){ + return this.each(function(){ + + var element = $(this); + + var timestamp = parseInt( element.text() ); + + // do not init twice + if(timestamp > 0){ + // mark as init + element.attr('data-counter', 'init'); + + var date = new Date( timestamp * 1000); + + updateDateDiff(element, date); + + var refreshIntervalId = window.setInterval(function(){ + + // update element with current time + if( !element.hasClass('stopCounter')){ + updateDateDiff(element, date); + }else{ + clearInterval( element.data('interval') ); + } + }, 100); + + element.data('interval', refreshIntervalId); + + } + + + }); + + + }; +}); diff --git a/public/js/v1.1.1/app/init.js b/public/js/v1.1.1/app/init.js new file mode 100644 index 00000000..46004891 --- /dev/null +++ b/public/js/v1.1.1/app/init.js @@ -0,0 +1,409 @@ +/** + * Init + */ + +define(['jquery'], function($) { + + 'use strict'; + + var Config = { + path: { + img: 'public/img/', // path for images + // user API + getCaptcha: 'api/user/getCaptcha', // ajax URL - get captcha image + getServerStatus: 'api/user/getEveServerStatus', // ajax URL - get EVE-Online server status + getCookieCharacterData: 'api/user/getCookieCharacter', // ajax URL - get character data from cookie + logIn: 'api/user/logIn', // ajax URL - login + logout: 'api/user/logout', // ajax URL - logout + deleteLog: 'api/user/deleteLog', // ajax URL - delete character log + saveUserConfig: 'api/user/saveAccount', // ajax URL - saves/update user account + deleteAccount: 'api/user/deleteAccount', // ajax URL - delete Account data + // access API + searchAccess: 'api/access/search', // ajax URL - search user/corporation/ally by name + // main config/map ping API + initMap: 'api/map/init', // ajax URL - get static data + updateMapData: 'api/map/updateData', // ajax URL - main map update trigger + updateUserData: 'api/map/updateUserData', // ajax URL - main map user data trigger + // map API + saveMap: 'api/map/save', // ajax URL - save/update map + deleteMap: 'api/map/delete', // ajax URL - delete map + importMap: 'api/map/import', // ajax URL - import map + // system API + searchSystem: 'api/system/search', // ajax URL - search system by name + saveSystem: 'api/system/save', // ajax URL - saves system to map + deleteSystem: 'api/system/delete', // ajax URL - delete system from map + getSystemGraphData: 'api/system/graphData', // ajax URL - get all system graph data + getConstellationData: 'api/system/constellationData', // ajax URL - get system constellation data + setDestination: 'api/system/setDestination', // ajax URL - set destination + + // connection API + saveConnection: 'api/connection/save', // ajax URL - save new connection to map + deleteConnection: 'api/connection/delete', // ajax URL - delete connection from map + // signature API + getSignatures: 'api/signature/getAll', // ajax URL - get all signature data for system + saveSignatureData: 'api/signature/save', // ajax URL - save signature data for system + deleteSignatureData: 'api/signature/delete', // ajax URL - delete signature data for system + // route API + searchRoute: 'api/route/search', // ajax URL - search system routes + // GitHub API + gitHubReleases: 'api/github/releases' // ajax URL - get release info from GitHub + }, + url: { + ccpImageServer: 'https://image.eveonline.com/', // CCP image Server + zKillboard: 'https://zkillboard.com/api/' // killboard api + }, + animationSpeed: { + splashOverlay: 300, // "splash" loading overlay + headerLink: 100, // links in head bar + mapOverlay: 200, // show/hide duration for map overlays + mapMoveSystem: 300, // system position has changed animation + mapDeleteSystem: 200, // remove system from map + mapModule: 200, // show/hide of an map module + dialogEvents: 180 // dialog events /slide/show/... + }, + mapIcons: [ // map tab-icons + { + class: 'fa-desktop', + label: 'desktop', + unicode: '' + },{ + class: 'fa-bookmark', + label: 'bookmark', + unicode: '' + },{ + class: 'fa-cube', + label: 'cube', + unicode: '' + },{ + class: 'fa-plane', + label: 'plane', + unicode: '' + },{ + class: 'fa-globe', + label: 'globe', + unicode: '' + },{ + class: 'fa-rocket', + label: 'rocket', + unicode: '' + },{ + class: 'fa-life-ring', + label: 'life ring', + unicode: '' + },{ + class: 'fa-heart', + label: 'heart', + unicode: '' + } + ], + + classes: { + // log types + logTypes: { + info: { + class: 'pf-log-info', + label: 'info' + }, + warning: { + class: 'pf-log-warning', + label: 'warning' + }, + error: { + class: 'pf-log-error', + label: 'error' + } + }, + // system effects + systemEffects: { + + effect: { + class: 'pf-system-effect', + name: 'no effect' + }, + magnetar: { + class: 'pf-system-effect-magnetar', + name: 'magnetar' + }, + redGiant: { + class: 'pf-system-effect-redgiant', + name: 'red giant' + }, + pulsar: { + class: 'pf-system-effect-pulsar', + name: 'pulsar' + }, + wolfRayet: { + class: 'pf-system-effect-wolfrayet', + name: 'wolf rayet' + }, + cataclysmic: { + class: 'pf-system-effect-cataclysmic', + name: 'cytaclysmic' + }, + blackHole: { + class: 'pf-system-effect-blackhole', + name: 'black hole' + } + }, + // system security + systemSecurity: { + security: { + class: 'pf-system-sec' + }, + 'SH': { + class: 'pf-system-sec-unknown' + }, + 'H': { + class: 'pf-system-sec-highSec' + }, + 'L': { + class: 'pf-system-sec-lowSec' + }, + '0.0': { + class: 'pf-system-sec-nullSec' + }, + 'C6': { + class: 'pf-system-sec-high' + }, + 'C5': { + class: 'pf-system-sec-high' + }, + 'C4': { + class: 'pf-system-sec-mid' + }, + 'C3': { + class: 'pf-system-sec-mid' + }, + 'C2': { + class: 'pf-system-sec-low' + }, + 'C1': { + class: 'pf-system-sec-low' + } + }, + // true sec + trueSec: { + '0.0': { + class: 'pf-system-security-0-0' + }, + '0.1': { + class: 'pf-system-security-0-1' + }, + '0.2': { + class: 'pf-system-security-0-2' + }, + '0.3': { + class: 'pf-system-security-0-3' + }, + '0.4': { + class: 'pf-system-security-0-4' + }, + '0.5': { + class: 'pf-system-security-0-5' + }, + '0.6': { + class: 'pf-system-security-0-6' + }, + '0.7': { + class: 'pf-system-security-0-7' + }, + '0.8': { + class: 'pf-system-security-0-8' + }, + '0.9': { + class: 'pf-system-security-0-9' + }, + '1.0': { + class: 'pf-system-security-1-0' + } + }, + // system info + systemInfo: { + rally: { + class: 'pf-system-info-rally', + label: 'rally point' + } + }, + // easy-pie-charts + pieChart: { + class: 'pf-pie-chart', // class for all pie charts + pieChartMapCounterClass: 'pf-pie-chart-map-timer' // class for timer chart + } + }, + // map scopes + defaultMapScope: 'wh', // default scope for connection + // map connection types + connectionTypes: { + jumpbridge: { + cssClass: 'pf-map-connection-jumpbridge', + paintStyle: { + dashstyle: '4 2 1 2' + } + }, + stargate: { + cssClass: 'pf-map-connection-stargate', + paintStyle: { + dashstyle: '0' // solid line + } + }, + wh_eol: { + cssClass: 'pf-map-connection-wh-eol', + paintStyle: { + dashstyle: '0' // solid line + } + }, + wh_fresh: { + cssClass: 'pf-map-connection-wh-fresh', + paintStyle: { + dashstyle: '0' // solid line + } + }, + wh_reduced: { + cssClass: 'pf-map-connection-wh-reduced', + paintStyle: { + dashstyle: '0' // solid line + } + }, + wh_critical: { + cssClass: 'pf-map-connection-wh-critical', + paintStyle: { + dashstyle: '0' // solid line + } + }, + frigate: { + cssClass: 'pf-map-connection-frig', + paintStyle: { + dashstyle: '0.99' + }, + overlays:[ + [ 'Label', + { + label: 'frig', + cssClass: ['pf-map-connection-overlay', 'frig'].join(' ') + } ] + ] + }, + preserve_mass: { + cssClass: 'pf-map-connection-preserve-mass', + overlays:[ + [ 'Label', + { + label: ' save mass', + cssClass: ['pf-map-connection-overlay', 'mass'].join(' '), + width:50, length:30, + location: 0.5 + } ] + ] + } + }, + // signature groups + signatureGroups: { + 1: { + name: 'combat site', //* + label: 'Combat' + }, + 2: { + name: 'relic site', //* + label: 'Relic' + }, + 3: { + name: 'data site', + label: 'Data' + }, + 4: { + name: 'gas site', + label: 'Gas' + }, + 5: { + name: 'wormhole', + label: 'Wormhole' + }, + 6: { + name: 'ore site', + label: 'Ore' + }, + 7: { + name: 'ghost', + label: 'Ghost' + } + }, + // frigate wormholes + frigateWormholes: { + 1: { // C1 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 2: { // C2 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 3: { // C3 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 4: { // C4 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 5: { // C5 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 6: { // C6 + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + }, + 13: { // Shattered Wormholes (some of them are static) + 1: 'E004 - C1', + 2: 'L005 - C2', + 3: 'Z006 - C3', + 4: 'M001 - C4', + 5: 'C008 - C5', + 6: 'G008 - C6', + 7: 'Q003 - 0.0' + } + }, + // incoming wormholes + incomingWormholes: { + 1: 'K162 - C1/2/3 (unknown)', + 2: 'K162 - C4/5 (dangerous)', + 3: 'K162 - C6 (deadly)', + 4: 'K162 - HS', + 5: 'K162 - LS', + 6: 'K162 - 0.0' + } + + }; + + return Config; +}); diff --git a/public/js/v1.1.1/app/logging.js b/public/js/v1.1.1/app/logging.js new file mode 100644 index 00000000..ad74c1b9 --- /dev/null +++ b/public/js/v1.1.1/app/logging.js @@ -0,0 +1,499 @@ +/** + * logging + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'bootbox' +], function($, Init, Util, bootbox) { + + 'use strict'; + + var logData = []; // cache object for all log entries + var logDataTable = null; // "Datatables" Object + + // Morris charts data + var maxGraphDataCount = 30; // max date entries for a graph + var chartData = {}; // chart Data object for all Morris Log graphs + + var config = { + dialogDynamicAreaClass: 'pf-dynamic-area', // class for dynamic areas + logGraphClass: 'pf-log-graph' // class for all log Morris graphs + }; + + /** + * get log time string + * @returns {string} + */ + var getLogTime = function(){ + + var serverTime = Util.getServerTime(); + + var logTime = serverTime.toLocaleTimeString('en-US', { hour12: false }); + + return logTime; + }; + + /** + * shows the logging dialog + */ + var showDialog = function(){ + + // dialog content + + var content = $('
'); + + // content row for log graphs + var rowElementGraphs = $('
', { + class: 'row' + }); + + content.append(rowElementGraphs); + + + + var tableHeadline = $('

', { + text: ' Processes' + }).prepend( $('', { + class: ['fa', 'fa-fw', 'fa-lg', 'fa-list-alt'].join(' ') + })); + + // add content Structure to dome before table initialization + content.append(tableHeadline); + + // log table area -------------------------------------------------- + var logTableArea = $('
', { + class: config.dialogDynamicAreaClass + }); + + var logTable = $('', { + class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ') + }); + + logTableArea.append(logTable); + content.append(logTableArea); + + // init log table + logDataTable = logTable.DataTable( { + paging: true, + ordering: true, + order: [ 1, 'desc' ], + autoWidth: false, + hover: false, + pageLength: 15, + lengthMenu: [[10, 15, 25, 50, 50], [10, 15, 25, 50, 50]], + data: logData, // load cached logs (if available) + language: { + emptyTable: 'No entries', + zeroRecords: 'No entries found', + lengthMenu: 'Show _MENU_ entries', + info: 'Showing _START_ to _END_ of _TOTAL_ entries' + }, + columnDefs: [ + { + targets: 0, + title: '', + width: '18px', + searchable: false, + class: ['text-center'].join(' '), + data: 'status' + },{ + targets: 1, + title: '  ', + width: '50px', + searchable: true, + class: 'text-right', + data: 'time' + },{ + targets: 2, + title: '  ', + width: '35px', + searchable: false, + class: 'text-right', + sType: 'html', + data: 'duration' + },{ + targets: 3, + title: 'description', + searchable: true, + data: 'description' + },{ + targets: 4, + title: 'type', + width: '40px', + searchable: true, + class: ['text-center'].join(' '), + data: 'type' + },{ + targets: 5, + title: 'Prozess-ID   ', + width: '80px', + searchable: false, + class: 'text-right', + data: 'key' + } + ] + + }); + + // open dialog + var logDialog = bootbox.dialog({ + title: 'Task-Manager', + message: content, + size: 'large', + buttons: { + close: { + label: 'close', + className: 'btn-default' + } + } + }); + + // modal dialog is shown + logDialog.on('shown.bs.modal', function(e) { + + // show Morris graphs ---------------------------------------------------------- + + // function for chart label formation + var labelYFormat = function(y){ + return Math.round(y) + 'ms'; + }; + + for(var key in chartData) { + if(chartData.hasOwnProperty(key)) { + // create a chart for each key + + var colElementGraph = $('
', { + class: ['col-md-6'].join(' ') + }); + + + // graph element + var graphElement = $('
', { + class: config.logGraphClass + }); + + var graphArea = $('
', { + class: config.dialogDynamicAreaClass + }).append( graphElement ); + + // headline + var headline = $('

', { + text: key + }).prepend( + $('', { + class: ['txt-color', 'txt-color-grayLight'].join(' '), + text: 'Prozess-ID: ' + }) + ); + + // show update ping between function calls + var updateElement = $('', { + class: ['txt-color', 'txt-color-blue', 'pull-right'].join(' ') + }); + headline.append(updateElement).append('
'); + + // show average execution time + var averageElement = $('', { + class: 'pull-right' + }); + headline.append(averageElement); + + colElementGraph.append( headline ); + colElementGraph.append( graphArea ); + + graphArea.showLoadingAnimation(); + + rowElementGraphs.append( colElementGraph ); + + // cache DOM Elements that will be updated frequently + chartData[key].averageElement = averageElement; + chartData[key].updateElement = updateElement; + + chartData[key].graph = Morris.Area({ + element: graphElement, + data: [], + xkey: 'x', + ykeys: ['y'], + labels: [key], + units: 'ms', + parseTime: false, + ymin: 0, + yLabelFormat: labelYFormat, + padding: 10, + hideHover: true, + pointSize: 3, + lineColors: ['#375959'], + pointFillColors: ['#477372'], + pointStrokeColors: ['#313335'], + lineWidth: 2, + grid: false, + gridStrokeWidth: 0.3, + gridTextSize: 9, + gridTextFamily: 'Oxygen Bold', + gridTextColor: '#63676a', + behaveLikeLine: true, + goals: [], + goalLineColors: ['#66c84f'], + smooth: false, + fillOpacity: 0.3, + resize: true + }); + + graphArea.hideLoadingAnimation(); + + } + } + + // ------------------------------------------------------------------------------ + // add TableTool Buttons + var tt = new $.fn.DataTable.TableTools( logDataTable, { + sSwfPath: require.toUrl('') + 'lib/datatables/extensions/tabletools/swf/copy_csv_xls.swf', + aButtons: [ 'copy', 'csv', 'print' ] + }); + + $(tt.fnContainer()).insertBefore('.bootbox-body div.dataTables_wrapper'); + + // add button icons + $('.DTTT_button_csv').prepend( $('', { + class: ['fa', 'fa-fw', 'fa-download'].join(' ') + })); + $('.DTTT_button_copy').prepend( $('', { + class: ['fa', 'fa-fw', 'fa-clipboard'].join(' ') + })); + $('.DTTT_button_print').prepend( $('', { + class: ['fa', 'fa-fw', 'fa-print'].join(' ') + })); + }); + + + // modal dialog is closed + logDialog.on('hidden.bs.modal', function(e) { + // clear memory -> destroy all charts + for (var key in chartData) { + if (chartData.hasOwnProperty(key)) { + chartData[key].graph = null; + } + } + }); + + // modal dialog before hide + logDialog.on('hide.bs.modal', function(e) { + + // destroy logTable + logDataTable.destroy(true); + logDataTable= null; + + // remove event -> prevent calling this multiple times + $(this).off('hide.bs.modal'); + }); + + }; + + /** + * updates the log graph for a log key + * @param key + * @param duration + */ + var updateLogGraph = function(key, duration){ + + // check if graph data already exist + if( !(chartData.hasOwnProperty(key))){ + chartData[key] = {}; + chartData[key].data = []; + chartData[key].graph = null; + chartData[key].averageElement = null; + chartData[key].updateElement = null; + } + + // add new value + chartData[key].data.unshift(duration); + + if(chartData[key].data.length > maxGraphDataCount){ + chartData[key].data = chartData[key].data.slice(0, maxGraphDataCount); + } + + function getGraphData(data) { + var tempChartData = { + data: [], + dataSum: 0, + average: 0 + }; + + for(var x = 0; x < maxGraphDataCount; x++){ + var value = 0; + if(data[x]){ + value = data[x]; + tempChartData.dataSum = Number( (tempChartData.dataSum + value).toFixed(2) ); + } + + tempChartData.data.push({ + x: x, + y: value + }); + } + + // calculate average + tempChartData.average = Number( ( tempChartData.dataSum / data.length ).toFixed(2) ); + + return tempChartData; + } + + var tempChartData = getGraphData(chartData[key].data); + + // add new data to graph (Morris chart) - if is already initialized + if(chartData[key].graph !== null){ + var avgElement = chartData[key].averageElement; + var updateElement = chartData[key].updateElement; + + var delay = Util.getCurrentTriggerDelay( key, 0 ); + + if(delay){ + updateElement[0].textContent = ' delay: ' + delay + 'ms '; + } + + // set/change average line + chartData[key].graph.options.goals = [tempChartData.average]; + + // change avg. display + avgElement[0].textContent = 'Avg. ' + tempChartData.average + 'ms'; + + var avgStatus = getLogStatusByDuration(key, tempChartData.average); + var avgStatusClass = Util.getLogInfo( avgStatus, 'class' ); + + //change avg. display class + if( !avgElement.hasClass(avgStatusClass) ){ + // avg status changed! + avgElement.removeClass().addClass('pull-right txt-color ' + avgStatusClass); + + // change goals line color + if(avgStatus === 'warning'){ + chartData[key].graph.options.goalLineColors = ['#e28a0d']; + $(document).setProgramStatus('problem'); + }else{ + chartData[key].graph.options.goalLineColors = ['#5cb85c']; + } + } + + // set new data and redraw + chartData[key].graph.setData( tempChartData.data ); + } + + return tempChartData.data; + }; + + /** + * get the log "status" by log duration (ms). + * If duration > warning limit -> show as warning + * @param logKey + * @param logDuration + * @returns {string} + */ + var getLogStatusByDuration = function(logKey, logDuration){ + + var logStatus = 'info'; + if( logDuration > Init.timer[logKey].EXECUTION_LIMIT ){ + logStatus = 'warning'; + } + return logStatus; + }; + + /** + * get the css class for a specific log type + * @param logType + * @returns {string} + */ + var getLogTypeIconClass = function(logType){ + + var logIconClass = ''; + + switch(logType){ + case 'client': + logIconClass = 'fa-user'; + break; + case 'server': + logIconClass = 'fa-download'; + break; + } + + return logIconClass; + }; + + /** + * init logging -> set global log event + */ + var init = function(){ + + var maxEntries = 150; + + // set global logging listener + $(window).on('pf:log', function(e, logKey, options){ + + // check required logging information + if( + options && + options.duration && + options.description + ){ + var logDescription = options.description; + var logDuration = options.duration; + var logType = options.type; + + // check log status by duration + var logStatus = getLogStatusByDuration(logKey, logDuration); + + var statusClass = Util.getLogInfo( logStatus, 'class' ); + + var typeIconClass = getLogTypeIconClass(logType); + + // update graph data + updateLogGraph(logKey, logDuration); + + var logRowData = { + status: '', + time: getLogTime(), + duration: '' + logDuration + 'ms', + description: logDescription, + type: '', + key: logKey + }; + + + if(logDataTable){ + // add row if dataTable is initialized before new log + logDataTable.row.add( logRowData ).draw(false); + }else{ + // add row data to cache + logData.push(logRowData); + } + } + + // delete old log entries from table --------------------------------- + var rowCount = logData.length; + + if( rowCount >= maxEntries ){ + + if(logDataTable){ + logDataTable.rows(0, {order:'index'}).remove().draw(false); + }else{ + logData.shift(); + } + } + + // cache logs in order to keep previous logs in table after reopening the dialog + if(logDataTable){ + logData = logDataTable.rows({order:'index'}).data(); + } + + }); + }; + + + return { + init: init, + getLogTime: getLogTime, + showDialog: showDialog + }; +}); \ No newline at end of file diff --git a/public/js/v1.1.1/app/login.js b/public/js/v1.1.1/app/login.js new file mode 100644 index 00000000..779f41c0 --- /dev/null +++ b/public/js/v1.1.1/app/login.js @@ -0,0 +1,686 @@ +/** + * Main loginPage application + */ + +define([ + 'jquery', + 'app/init', + 'app/util', + 'app/render', + 'app/ccp', + 'blueImpGallery', + 'bootbox', + 'lazyload', + 'app/ui/header', + 'app/ui/logo', + 'app/ui/demo_map', + 'dialog/account_settings', + 'dialog/notification', + 'dialog/manual', + 'dialog/releases', + 'dialog/credit' +], function($, Init, Util, Render, CCP, Gallery, bootbox) { + + 'use strict'; + + var config = { + splashOverlayClass: 'pf-splash', // class for "splash" overlay + + // header + headerId: 'pf-landing-top', // id for header + headerContainerId: 'pf-header-container', // id for header container + logoContainerId: 'pf-logo-container', // id for main header logo container + headHeaderMapId: 'pf-header-map', // id for header image (svg animation) + + // map bg + headMapBgId: 'pf-header-map-bg', // id for header background container + mapNeocomId: 'pf-map-neocom', // id for map "neocom" image + mapBrowserId: 'pf-map-browser', // id for "browser" image + mapBgImageId: 'pf-map-bg-image', // id for "background" map image + + // navigation + navigationElementId: 'pf-navbar', // id for navbar element + navigationLinkManualClass: 'pf-navbar-manual', // class for "manual" trigger link + navigationLinkLicenseClass: 'pf-navbar-license', // class for "license" trigger link + navigationVersionLinkClass: 'pf-navbar-version-info', // class for "version information" + + // cookie hint + cookieHintId: 'pf-cookie-hint', // id for "cookie hint" element + + // character select + characterSelectionClass: 'pf-character-selection', // class for character panel wrapper + characterRowAnimateClass: 'pf-character-row-animate', // class for character panel row during animation + characterImageWrapperClass: 'pf-character-image-wrapper', // class for image wrapper (animated) + characterImageInfoClass: 'pf-character-info', // class for character info layer (visible on hover) + dynamicMessageContainerClass: 'pf-dynamic-message-container', // class for "dynamic" (JS) message container + + // gallery + galleryId: 'pf-gallery', // id for gallery container + galleryThumbImageClass: 'pf-landing-image-preview', // class for gallery thumb images + galleryThumbContainerId: 'pf-landing-gallery-thumb-container', // id for gallery thumb images + galleryCarouselId: 'pf-landing-gallery-carousel', // id for "carousel" element + + // server panel + serverPanelId: 'pf-server-panel', // id for EVE Online server status panel + + // animation + animateElementClass: 'pf-animate-on-visible' // class for elements that will be animated to show + }; + + /** + * set a cookie + * @param cname + * @param cvalue + * @param exdays + */ + var setCookie = function(cname, cvalue, exdays) { + var d = new Date(); + d.setTime(d.getTime() + (exdays*24*60*60*1000)); + var expires = 'expires=' + d.toUTCString(); + document.cookie = cname + '=' + cvalue + '; ' + expires; + }; + + /** + * get cookie value by name + * @param cname + * @returns {*} + */ + var getCookie = function(cname) { + var name = cname + '='; + var ca = document.cookie.split(';'); + + for(var i = 0; i ') + .addClass('text-content') + .attr('title', obj.title); + + var moduleConfig = { + name: obj.href, // template name + position: newSlideContent, + functions: { + after: function(){ + // element inserted -> load complete + callback({ + type: 'complete', + target: newSlideContent[0] + }); + } + } + }; + + // render HTML file (template) + var moduleData = { + id: config.headHeaderMapId, + bgId: config.headMapBgId, + neocomId: config.mapNeocomId, + browserId: config.mapBrowserId, + mapBgImageId: config.mapBgImageId + }; + + Render.showModule(moduleConfig, moduleData); + + return newSlideContent[0]; + }; + + // initialize carousel ------------------------------------------------ + var carousel = new Gallery([ + { + title: 'IGB', + href: 'ui/map', + type: 'text/html' + }, + { + href: 'public/img/landing/responsive.jpg', + title: 'Responsive layout', + type: 'image/jpg', + thumbnail: '' + }, + { + href: 'public/img/landing/pathfinder_1.jpg', + title: 'Map view', + type: 'image/jpg', + thumbnail: '' + }, + { + href: 'public/img/landing/pathfinder_3.jpg', + title: 'Map information', + type: 'image/jpg', + thumbnail: '' + }, + { + href: 'public/img/landing/pathfinder_2.jpg', + title: 'System information', + type: 'image/jpg', + thumbnail: '' + } + ], { + container: '#' + config.galleryCarouselId, + carousel: true, + startSlideshow: false, + titleProperty: 'title', + transitionSpeed: 600, + slideshowInterval: 5000, + onopened: function () { + // Callback function executed when the Gallery has been initialized + // and the initialization transition has been completed. + // -> show "demo" map + + $('#' + config.headHeaderMapId).drawDemoMap(function(){ + + // zoom map SVGs + $('#' + config.headHeaderMapId + ' svg').velocity({ + scaleX: 0.66, + scaleY: 0.66 + }, { + duration: 360 + }); + + // position map container + $('#' + config.headHeaderMapId).velocity({ + marginTop: '130px', + marginLeft: '-50px' + }, { + duration: 360, + complete: function(){ + // show browser + $('#' + config.mapBrowserId).velocity('transition.slideUpBigIn', { + duration: 360, + complete: function(){ + // show neocom + $('#' + config.mapNeocomId).velocity('transition.slideLeftIn', { + duration: 180 + }); + + // show background + $('#' + config.mapBgImageId).velocity('transition.shrinkIn', { + duration: 360 + }); + + // when map is shown -> start carousel looping + carousel.play(); + } + }); + } + }); + }); + + } + }); + }; + + /** + * init image gallery + */ + var initGallery = function(){ + + requirejs(['blueImpGalleryBootstrap'], function() { + // thumb links + var thumbLinks = $('a[data-gallery="#pf-gallery"]'); + + var borderless = false; + + var galleryElement = $('#' + config.galleryId); + galleryElement.data('useBootstrapModal', !borderless); + galleryElement.toggleClass('blueimp-gallery-controls', borderless); + + // init gallery on click + thumbLinks.on('click', function(e){ + e.preventDefault(); + + e = e || window.event; + var target = e.target || e.srcElement; + var link = target.src ? target.parentNode : target; + + var options = { + index: link, + event: e, + container: '#' + config.galleryId, + titleProperty: 'description' + }; + + new Gallery(thumbLinks, options); + }); + }); + }; + + var initYoutube = function(){ + + $('.youtube').each(function() { + // Based on the YouTube ID, we can easily find the thumbnail image + $(this).css('background-image', 'url(https://i.ytimg.com/vi/' + this.id + '/sddefault.jpg)'); + + // Overlay the Play icon to make it look like a video player + $(this).append($('
', {'class': 'play'})); + + $(document).delegate('#' + this.id, 'click', function() { + // Create an iFrame with autoplay set to true + var iFrameUrl = 'https://www.youtube.com/embed/' + this.id + '?autoplay=1&autohide=1'; + if ( $(this).data('params') ){ + iFrameUrl += '&'+$(this).data('params'); + } + + // The height and width of the iFrame should be the same as parent + var iFrame = $('