@@ -69,7 +69,11 @@ php_flag log_errors on
|
||||
|
||||
## js/source maps
|
||||
<Filesmatch "\.(js|map)$">
|
||||
ExpiresActive off
|
||||
ExpiresActive on
|
||||
ExpiresDefault "access plus 1 year"
|
||||
Header append Cache-Control "public"
|
||||
FileETag None
|
||||
Header unset ETag
|
||||
</Filesmatch>
|
||||
|
||||
# html templates
|
||||
|
||||
203
README.md
203
README.md
@@ -1,36 +1,165 @@
|
||||
## *PATHFINDER* (DRAFT VERSION)
|
||||
Mapping tool for *EVE ONLINE*
|
||||
## *PATHFINDER*
|
||||
Mapping tool for [*EVE ONLINE*](https://www.eveonline.com)
|
||||
|
||||
url: https://www.pathfinder.exodus4d.de
|
||||
- Project[https://www.pathfinder.exodus4d.de](https://www.pathfinder.exodus4d.de)
|
||||
- Community[google +](https://plus.google.com/u/0/b/110257318165279088853/110257318165279088853)
|
||||
- Screenshots[imgur.com](http://imgur.com/a/k2aVa)
|
||||
- Media[youtube.com](https://www.youtube.com/channel/UC7HU7XEoMbqRwqxDTbMjSPg)
|
||||
- Licence[MIT](http://opensource.org/licenses/MIT)
|
||||
|
||||
IMPORTANT: This project is still in beta phase and is not officially released! Feel free to check the code for security issues. You can not get the project to work, on your own server, until some required SQL dumps have been included to this repository! I will provide all required dumps once the beta phase is over. Do not expect this before the end of 2015.
|
||||
##### Beta Information
|
||||
> This project is still in beta phase and is not officially released! Feel free to check the code for security issues.
|
||||
You can not get the project to work, on your own server, until some required SQL dumps have been included to this repository!
|
||||
I will provide all required dumps once the beta phase is over.
|
||||
|
||||
### Project requirements ---------------------------------------------
|
||||
## Requirements
|
||||
#### APACHE Webserver
|
||||
- PHP 5.3.4 or higher
|
||||
- PCRE 8.02 or higher (usually shipped with PHP package, but needs to be additionally updated on CentOS or Red Hat systems)
|
||||
- mod_rewrite and mod_headers enabled
|
||||
- GD libary (for Image plugin)
|
||||
- cURL, sockets or stream extension (for Web plugin)
|
||||
- Gzip compression
|
||||
|
||||
Nginx and Lighttpd configurations are also possible.
|
||||
http://fatfreeframework.com/system-requirements
|
||||
- PHP 5.3.4 or higher
|
||||
- PCRE 8.02 or higher (usually shipped with PHP package, but needs to be additionally updated on CentOS or Red Hat systems)
|
||||
- mod_rewrite and mod_headers enabled
|
||||
- GD libary (for Image plugin)
|
||||
- cURL, sockets or stream extension (for Web plugin)
|
||||
- Gzip compression
|
||||
|
||||
> Nginx and Lighttpd configurations are also possible.
|
||||
http://fatfreeframework.com/system-requirements
|
||||
|
||||
#### Database
|
||||
- mysql: MySQL 5.x
|
||||
- sqlite: SQLite 3 and SQLite 2
|
||||
- pgsql: PostgreSQL
|
||||
- sqlsrv: Microsoft SQL Server / SQL Azure
|
||||
- mssql, dblib, sybase: FreeTDS / Microsoft SQL Server / Sybase
|
||||
- odbc: ODBC v3
|
||||
- oci: Oracle
|
||||
- mysql: MySQL 5.x
|
||||
- sqlite: SQLite 3 and SQLite 2
|
||||
- pgsql: PostgreSQL
|
||||
- sqlsrv: Microsoft SQL Server / SQL Azure
|
||||
- mssql, dblib, sybase: FreeTDS / Microsoft SQL Server / Sybase
|
||||
- odbc: ODBC v3
|
||||
- oci: Oracle
|
||||
|
||||
Here is a list of links to DSN connection details for all currently supported engines in the SQL layer:
|
||||
http://fatfreeframework.com/sql
|
||||
#### Development Environment
|
||||
- t.b.a.
|
||||
>Here is a list of links to DSN connection details for all currently supported engines in the SQL layer:
|
||||
http://fatfreeframework.com/sql
|
||||
|
||||
### Folder structure (production) ------------------------------------
|
||||
## Setup
|
||||
#### Backend (PHP)
|
||||
|
||||
*PATHFINDER* is pretty easy to configure! If you are not planning "getting your hands dirty" with programming stuff,
|
||||
you don´t have to change a lot. All configuration files can be found here:
|
||||
- [config.ini](https://github.com/exodus4d/pathfinder/blob/master/app/config.ini) Main config **(DO NOT CHANGE)**
|
||||
- [pathfinder.ini](https://github.com/exodus4d/pathfinder/blob/master/app/pathfinder.ini) Pathfinder config
|
||||
- [cron.ini](https://github.com/exodus4d/pathfinder/blob/master/app/cron.ini) Cronjob config
|
||||
- [routes.ini](https://github.com/exodus4d/pathfinder/blob/master/app/routes.ini) Routes config **(DO NOT CHANGE)**
|
||||
|
||||
> The default configuration should be fine in most cases. Edit all values with caution!
|
||||
|
||||
#### Frontend (JS)
|
||||
There is **no** need to change any javascript configuration, except *Signature names* that can be changed/added
|
||||
- [init.js](https://github.com/exodus4d/pathfinder/blob/master/js/app/init.js) Main config **(DO NOT CHANGE)**
|
||||
- [signature_type.js](https://github.com/exodus4d/pathfinder/blob/master/js/app/config/signature_type.js) Signature mapping config **(DO NOT CHANGE)**
|
||||
- [system_effect](https://github.com/exodus4d/pathfinder/blob/master/js/app/config/system_effect.js) System effect config **(DO NOT CHANGE)**
|
||||
|
||||
> If you found any *Signature Names* or other information missing in these files, please create an [Issue](https://github.com/exodus4d/pathfinder/issues) for that!
|
||||
I´ll try to fix it with the next release.
|
||||
If you still want to change anything in here, make sure to run the `build` process afterwards (see below).
|
||||
|
||||
## Development Environment
|
||||
*PATHFINDER* comes along with a simple, [*Gulp*](http://gulpjs.com/) based, build process.
|
||||
There are two main *Gulp tasks* that should help you.
|
||||
- `default` task is designed for *"continuous development"* scenario
|
||||
- `production` task is designed for *"production deployment"* scenario
|
||||
|
||||
> If you are **not** planning to change the codebase, you don´t have to do the following steps!
|
||||
|
||||
**1. Install [Node.js](https://nodejs.org)(> v.4.0.1) with [npm](https://www.npmjs.com/)**
|
||||
|
||||
**2. [Copy/Fork](https://help.github.com/articles/fork-a-repo/) this Repo**
|
||||
```
|
||||
$ git clone https://github.com/exodus4d/pathfinder.git
|
||||
```
|
||||
**3. Install all required `node_modules` for *"continuous development"* from `package.json` (e.g.[Gulp](http://gulpjs.com/))**
|
||||
```
|
||||
$ npm install
|
||||
```
|
||||
**4. Run *Gulp* task `default` with your version `tag` as param. It will do:**
|
||||
- clean `dist` folder (./public/js/x.x.x)
|
||||
- init file watcher for \*.js changes
|
||||
- running [jsHint](http://jshint.com/docs/) on file change
|
||||
- copying **raw** *\*.js* files from *./js* to `dist` folder on file change
|
||||
|
||||
```
|
||||
$ gulp default --tag v0.0.10
|
||||
```
|
||||
|
||||
## Production Environment
|
||||
**1. Install all required dependencies (check "Development Environment" steps )**
|
||||
|
||||
**2. Run *Gulp* task `production` with your version `tag` as param. It will do:**
|
||||
- clean `dist` folder (./public/js/x.x.x)
|
||||
- running [jsHint](http://jshint.com/docs/)
|
||||
- running [requireJs Optimizer](http://requirejs.org/docs/optimization.html) (see [build.js](https://github.com/exodus4d/pathfinder/blob/master/build.js))
|
||||
- minify \*.js files
|
||||
- uglyfy \*.js files
|
||||
- combine \*.js dependencies
|
||||
- generate \.js `source maps`
|
||||
- copying **compressed** *\*.js* to `dist` folder for production deployment
|
||||
|
||||
```
|
||||
$ gulp production --tag v0.0.10
|
||||
```
|
||||
> The `production` task may take some seconds (30+ seconds)!
|
||||
As a result, you should have all generated \*.js files ready for deployment in the `dist` folder.
|
||||
The unique version `tag` in this path should ensure that `cache busting` is working correct.
|
||||
|
||||
## CSS generation
|
||||
If you are planning to change/edit any *CSS* styles, you need to install [Compass](http://compass-style.org/),
|
||||
in order to build the single \*.css file out of the **raw** \*.scss source files.
|
||||
|
||||
**1. [Ruby install](https://www.ruby-lang.org/en/)**
|
||||
|
||||
**2. [Compass install](http://compass-style.org/install/)**
|
||||
|
||||
**3. Start *Compass* file watcher for \*.scss changes in project `root` (see [config.rb](https://github.com/exodus4d/pathfinder/blob/master/config.rb))**
|
||||
```
|
||||
$ compass watch
|
||||
```
|
||||
> This will watch all \*.scss files for changes and generate a compressed \*.css file (./public/css/pathfinder.css).
|
||||
Don´t worry about `cache busting`. Your current version `tag` will be added to the final path (e.g. ./public/css/pathfinder.css?v.0.0.10)
|
||||
|
||||
## SQL Schema
|
||||
To get *PATHFINDER* to work, you will need (at least) **two** databases. The first one is the [SDE](https://developers.eveonline.com/resource/static-data-export)
|
||||
from *CCP*. The second database is *PATHFINDERS*´s own DB. Make sure, you have the correct DB export for your version!
|
||||
|
||||
**1. *CCP* Static Data Export ([SDE](https://developers.eveonline.com/resource/static-data-export))**
|
||||
|
||||
You need to import the Eve SDE into the database specified in the `DB_CCP_*` settings. You can do this like the following:
|
||||
```
|
||||
wget https://www.fuzzwork.co.uk/dump/mysql-latest.tar.bz2
|
||||
tar xf mysql-latest.tar.bz2
|
||||
cd mysql-{}/
|
||||
mysql -u -p __DATABASE_NAME__ < db_file.sql
|
||||
```
|
||||
> If you need an older versions of the SDE, check out[**Fuzzwork**](https://www.fuzzwork.co.uk/dump/)´s awesome dumps!
|
||||
|
||||
**2. *PATHFINDER* Clean Data Export ([CDE](https://www.google.de))**
|
||||
> Make sure, that all column `indexes` and foreign `key constraints` have been imported correct!
|
||||
Otherwise you will get DB errors and the cache engine can not track all tables (Models), which may result in bad performance!
|
||||
|
||||
## Cronjob configuration
|
||||
*PATHFINDER* requires some dynamic `system data` from *CCP*´s [XML APIv2](http://wiki.eve-id.net/APIv2_Page_Index).
|
||||
This data is automatically imported by a [*Cron-Job*](https://en.wikipedia.org/wiki/Cron) into the DB.
|
||||
|
||||
Moreover, there are some predefined *Cron-Jobs* that handle some `db maintenance` and clean up tasks.
|
||||
|
||||
You have to setup a **single** *Cron-Jobs* for this, that handles **all** other *Cron-Jobs* and works as a "*dispatcher*".
|
||||
- **Important**: Block access to `[YOUR INSTALLATION]/cron` (e.g. by `.htaccess` or edit `cron.ini`)
|
||||
- Trigger `[YOUR INSTALLATION]/cron` by [*CLI*](http://php.net/manual/en/features.commandline.php) **every minute**, e.g create `cron.phpx`:
|
||||
|
||||
``` php
|
||||
exec('wget -qO- /dev/null [YOUR INSTALLATION]/cron &> /dev/null', $out, $result);
|
||||
echo "start:";
|
||||
echo "Returncode: " .$result ."<br>";
|
||||
echo "Ausgabe des Scripts: " ."<br>";
|
||||
echo "<pre>"; print_r($out);
|
||||
```
|
||||
- ... or use [*CURL*](http://php.net/manual/en/book.curl.php) for this ;)
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
|-- (0755) app --> backend [*.php]
|
||||
@@ -51,12 +180,13 @@ IMPORTANT: This project is still in beta phase and is not officially released! F
|
||||
|-- app.js --> require.js config (!required for production!)
|
||||
|-- (0777) logs --> log files
|
||||
|-- ...
|
||||
| -- node_modules --> node.js modules (not used for production )
|
||||
| -- node_modules --> node.js modules (not used for production) [check "Development Environment"]
|
||||
|-- ...
|
||||
|-- (0755) public --> frontend source
|
||||
|-- css --> CSS build folder (minified)
|
||||
|-- fonts --> Web/Icon fonts
|
||||
|-- css --> CSS dist/build folder (minified)
|
||||
|-- fonts --> (icon)-Fonts
|
||||
|-- img --> images
|
||||
|-- js --> JS dist/build folder
|
||||
|-- templates --> templates
|
||||
|-- sass --> SCSS source (not used for production )
|
||||
|-- ...
|
||||
@@ -64,4 +194,19 @@ IMPORTANT: This project is still in beta phase and is not officially released! F
|
||||
|-- ...
|
||||
|-- (0755) .htaccess --> reroute/caching rules
|
||||
|-- (0755) index.php
|
||||
|
||||
--------------------------
|
||||
CI/CD config files:
|
||||
--------------------------
|
||||
|-- build.js --> "RequireJs Optimizer" config (not used for production )
|
||||
|-- config.rb --> "Compass" config (not used for production )
|
||||
|-- gulpfile.js --> "Gulp" task config (not used for production )
|
||||
|-- package.json --> "Node.js" dependency config (not used for production )
|
||||
|-- README.md --> This file :) (not used for production )
|
||||
```
|
||||
|
||||
## Thanks!
|
||||
I´m very proud that **you** are using *PATHFINDER*!
|
||||
|
||||
It took me month of time in development until this project got into the first *BETA*. If you like it, please help to improve it.
|
||||
(report bugs, find security issues,...)
|
||||
|
||||
@@ -49,7 +49,7 @@ class Controller {
|
||||
$f3->set('isIngame', self::isIGB() );
|
||||
|
||||
// js path (build/minified or raw uncompressed files)
|
||||
$f3->set('pathJs', self::getEnvironmentData('PATH_JS') );
|
||||
$f3->set('pathJs', 'public/js/' . $f3->get('PATHFINDER.VERSION') );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -105,7 +105,7 @@ class Controller {
|
||||
}
|
||||
|
||||
/**
|
||||
* extract all eve IGB specific header data
|
||||
* get all eve IGB specific header data
|
||||
* @return object
|
||||
*/
|
||||
static function getIGBHeaderData(){
|
||||
@@ -115,9 +115,12 @@ class Controller {
|
||||
$headerData = apache_request_headers();
|
||||
|
||||
foreach($headerData as $key => $value){
|
||||
if (strpos($key, 'EVE_') === 0) {
|
||||
$key = str_replace('EVE_', '', $key);
|
||||
$key = strtolower($key);
|
||||
$key = strtolower($key);
|
||||
$key = str_replace('eve_', 'eve-', $key);
|
||||
|
||||
|
||||
if (strpos($key, 'eve-') === 0) {
|
||||
$key = str_replace('eve-', '', $key);
|
||||
|
||||
if (
|
||||
$key === 'trusted' &&
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[PATHFINDER]
|
||||
NAME = "PATHFINDER"
|
||||
; installed version (used for CSS/JS cache busting)
|
||||
VERSION = "v0.0.9"
|
||||
VERSION = "v0.0.10"
|
||||
; contact information (DO NOT CHANGE)
|
||||
CONTACT = "https://github.com/exodus4d"
|
||||
; source code (DO NOT CHANGE)
|
||||
@@ -31,9 +31,6 @@ URL = http://localhost/exodus4d/pathfinder
|
||||
; Verbosity level of the stack trace
|
||||
DEBUG = 3
|
||||
|
||||
; js path -> use raw files
|
||||
PATH_JS = "js"
|
||||
|
||||
; main db
|
||||
DB_DNS = mysql:host=localhost;port=3306;dbname=
|
||||
DB_NAME = pathfinder
|
||||
@@ -65,30 +62,27 @@ URL = https://www.pathfinder.exodus4d.de
|
||||
; Verbosity level of the stack trace
|
||||
DEBUG = 0
|
||||
|
||||
; js path -> use build files
|
||||
PATH_JS = "build_js"
|
||||
|
||||
; main db
|
||||
DB_DNS = mysql:host=localhost;port=3306;dbname=
|
||||
DB_NAME = d01d8636
|
||||
DB_USER = d01d8636
|
||||
DB_PASS = bQ9VAd6fE86sVs4s
|
||||
DB_NAME =
|
||||
DB_USER =
|
||||
DB_PASS =
|
||||
|
||||
; EVE-Online CCP Database export
|
||||
DB_CCP_DNS = mysql:host=localhost;port=3306;dbname=
|
||||
DB_CCP_NAME = d01f20be
|
||||
DB_CCP_USER = d01f20be
|
||||
DB_CCP_PASS = 2gkBWs87zDcApH4A
|
||||
DB_CCP_NAME =
|
||||
DB_CCP_USER =
|
||||
DB_CCP_PASS =
|
||||
|
||||
; SMTP settings
|
||||
SMTP_HOST = localhost
|
||||
SMTP_PORT = 25
|
||||
SMTP_SCHEME = TLS
|
||||
SMTP_USER = pathfinder
|
||||
SMTP_PASS = root
|
||||
SMTP_USER =
|
||||
SMTP_PASS =
|
||||
|
||||
SMTP_FROM = pathfinder@localhost.com
|
||||
SMTP_ERROR = pathfinder@localhost.com
|
||||
SMTP_FROM = registration.pathfinder@exodus4d.de
|
||||
SMTP_ERROR = pathfinder@exodus4d.de
|
||||
|
||||
; ======================================================================================================
|
||||
[PATHFINDER.REGISTRATION]
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
//then all the files from the app directory will be copied to the dir:
|
||||
//output area, and baseUrl will assume to be a relative path under
|
||||
//this directory.
|
||||
appDir: "../../../js",
|
||||
appDir: "./js",
|
||||
|
||||
//By default, all modules are located relative to this path. If baseUrl
|
||||
//is not explicitly set, then all modules are loaded relative to
|
||||
@@ -24,7 +24,7 @@
|
||||
//or require.config({}) call found in that file will be used.
|
||||
//As of 2.1.10, mainConfigFile can be an array of values, with the last
|
||||
//value's config take precedence over previous values in the array.
|
||||
mainConfigFile: '../../../js/app.js',
|
||||
mainConfigFile: './js/app.js',
|
||||
|
||||
//Specify modules to stub out in the optimized file. The optimizer will
|
||||
//use the source version of these modules for dependency tracing and for
|
||||
@@ -197,7 +197,7 @@
|
||||
//The directory path to save the output. If not specified, then
|
||||
//the path will default to be a directory called "build" as a sibling
|
||||
//to the build file. All relative paths are relative to the build file.
|
||||
dir: "../../../build_js"
|
||||
dir: "./build_js"
|
||||
|
||||
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
var mainScriptPath=document.body.getAttribute("data-script"),jsBaseUrl=document.body.getAttribute("data-js-path");requirejs.config({baseUrl:"js",paths:{layout:"layout",config:"app/config",dialog:"app/ui/dialog",landingpage:"./app/landingpage",mappage:"./app/mappage",jquery:"lib/jquery-1.11.3.min",bootstrap:"lib/bootstrap.min",text:"lib/requirejs/text",mustache:"lib/mustache.min",velocity:"lib/velocity.min",velocityUI:"lib/velocity.ui.min",templates:"../public/templates",img:"../public/img",slidebars:"lib/slidebars",jsPlumb:"lib/dom.jsPlumb-1.7.6-min",customScrollbar:"lib/jquery.mCustomScrollbar.concat.min",datatables:"lib/datatables/jquery.dataTables.min",datatablesResponsive:"lib/datatables/extensions/responsive/dataTables.responsive",datatablesTableTools:"lib/datatables/extensions/tabletools/js/dataTables.tableTools",xEditable:"lib/bootstrap-editable.min",morris:"lib/morris.min",raphael:"lib/raphael-min",bootbox:"lib/bootbox.min",easyPieChart:"lib/jquery.easypiechart.min",dragToSelect:"lib/jquery.dragToSelect",hoverIntent:"lib/jquery.hoverIntent.minified",fullScreen:"lib/jquery.fullscreen.min",select2:"lib/select2.min",validator:"lib/validator.min",lazylinepainter:"lib/jquery.lazylinepainter-1.5.1.min",blueImpGallery:"lib/blueimp-gallery",blueImpGalleryHelper:"lib/blueimp-helper",blueImpGalleryBootstrap:"lib/bootstrap-image-gallery",bootstrapConfirmation:"lib/bootstrap-confirmation",bootstrapToggle:"lib/bootstrap2-toggle.min",easePack:"lib/EasePack.min",tweenLite:"lib/TweenLite.min",pnotify:"lib/pnotify/pnotify.core","pnotify.buttons":"lib/pnotify/pnotify.buttons","pnotify.confirm":"lib/pnotify/pnotify.confirm","pnotify.nonblock":"lib/pnotify/pnotify.nonblock","pnotify.desktop":"lib/pnotify/pnotify.desktop","pnotify.history":"lib/pnotify/pnotify.history","pnotify.callbacks":"lib/pnotify/pnotify.callbacks","pnotify.reference":"lib/pnotify/pnotify.reference"},shim:{bootstrap:{deps:["jquery"]},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"]}}});require.config({baseUrl:jsBaseUrl});requirejs([mainScriptPath]);
|
||||
//# sourceMappingURL=app.js.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"app.js.map","sources":["app.js.src.js"],"names":["mainScriptPath","document","body","getAttribute","jsBaseUrl","requirejs","config","baseUrl","paths","layout","dialog","landingpage","mappage","jquery","bootstrap","text","mustache","velocity","velocityUI","templates","img","slidebars","jsPlumb","customScrollbar","datatables","datatablesResponsive","datatablesTableTools","xEditable","morris","raphael","bootbox","easyPieChart","dragToSelect","hoverIntent","fullScreen","select2","validator","lazylinepainter","blueImpGallery","blueImpGalleryHelper","blueImpGalleryBootstrap","bootstrapConfirmation","bootstrapToggle","easePack","tweenLite","pnotify","pnotify.buttons","pnotify.confirm","pnotify.nonblock","pnotify.desktop","pnotify.history","pnotify.callbacks","pnotify.reference","shim","deps","datatablesBootstrap","exports","require"],"mappings":"AACA,GAAIA,gBAAiBC,SAASC,KAAKC,aAAa,eAI5CC,UAAYH,SAASC,KAAKC,aAAa,eAG3CE,WAAUC,QACNC,QAAS,KAETC,OACIC,OAAQ,SACRH,OAAQ,aACRI,OAAQ,gBAGRC,YAAa,oBACbC,QAAS,gBAETC,OAAQ,wBACRC,UAAW,oBACXC,KAAM,qBACNC,SAAU,mBACVC,SAAU,mBACVC,WAAY,sBACZC,UAAW,sBACXC,IAAK,gBACLC,UAAW,gBACXC,QAAS,4BACTC,gBAAiB,yCACjBC,WAAY,uCAEZC,qBAAsB,6DAEtBC,qBAAsB,gEACtBC,UAAW,6BACXC,OAAQ,iBACRC,QAAS,kBACTC,QAAS,kBACTC,aAAc,8BACdC,aAAc,0BACdC,YAAa,kCACbC,WAAY,4BACZC,QAAS,kBACTC,UAAW,oBACXC,gBAAiB,uCACjBC,eAAgB,sBAChBC,qBAAsB,qBACtBC,wBAAyB,8BACzBC,sBAAuB,6BACvBC,gBAAiB,4BAGjBC,SAAU,mBACVC,UAAW,oBAGXC,QAAS,2BACTC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,mBAAoB,+BACpBC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,oBAAqB,gCACrBC,oBAAqB,iCAGzBC,MACIvC,WACIwC,MAAO,WAEXrC,UACIqC,MAAO,WAEXpC,YACIoC,MAAO,aAEXjC,WACIiC,MAAO,WAEX/B,iBACI+B,MAAO,WAEX9B,YACI8B,MAAO,WAEXC,qBACID,MAAO,eAEX7B,sBACI6B,MAAO,eAEX5B,sBACI4B,MAAO,eAEX3B,WACI2B,MAAO,cAEXxB,SACIwB,MAAO,SAAU,aACjBE,QAAS,WAEb5B,QACI0B,MAAO,SAAU,WACjBE,QAAS,UAEbX,SACIS,MAAQ,WAEZvB,cACIuB,MAAQ,WAEZtB,cACIsB,MAAQ,WAEZrB,aACIqB,MAAQ,WAEZpB,YACIoB,MAAQ,WAEZnB,SACImB,MAAQ,UACRE,QAAS,WAEbpB,WACIkB,MAAQ,SAAU,cAEtBjB,iBACIiB,MAAQ,SAAU,cAEtBhB,gBACIgB,MAAQ,WAEZb,uBACIa,MAAQ,cAEZZ,iBACIY,MAAQ,aAQpBG,SAAQnD,QACJC,QAASH,WAIbC,YAAYL"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
198
gulpfile.js
Normal file
198
gulpfile.js
Normal file
@@ -0,0 +1,198 @@
|
||||
/* GULP itself */
|
||||
var gulp = require('gulp-param')(require('gulp'), process.argv);
|
||||
var jshint = require('gulp-jshint');
|
||||
var notify = require('gulp-notify');
|
||||
var plumber = require('gulp-plumber');
|
||||
var gulpif = require('gulp-if');
|
||||
var clean = require('gulp-clean');
|
||||
|
||||
var runSequence = require('run-sequence');
|
||||
var exec = require('child_process').exec;
|
||||
var path = require('path');
|
||||
var stylish = require('jshint-stylish');
|
||||
|
||||
/*******************************************/
|
||||
// Source and destination file paths
|
||||
|
||||
var _src = {
|
||||
GULP: './gulpfile.js',
|
||||
ICON: './public/img/notifications/logo.png',
|
||||
JS_SRC: './js/**/*',
|
||||
JS_LIBS: './js/lib/**/*',
|
||||
JS_BUILD: './build_js',
|
||||
JS_DIST: './public/js',
|
||||
PACKAGE: './package.json'
|
||||
};
|
||||
|
||||
// Gulp plumber error handler
|
||||
var onError = function(err) {
|
||||
console.log(err);
|
||||
};
|
||||
|
||||
/*******************************************/
|
||||
// Build Configuration
|
||||
|
||||
var isProductionBuild = false;
|
||||
/**
|
||||
* Version nr (e.g. v0.0.4)
|
||||
* required for "production" task
|
||||
* @type {null}
|
||||
*/
|
||||
var tagVersion = null;
|
||||
|
||||
/**
|
||||
* RequireJS build task using the r.js optimizer.
|
||||
*/
|
||||
gulp.task('requirejs', ['jshint'], function() {
|
||||
|
||||
var rjsPath = path.resolve(__dirname, './node_modules/requirejs/bin/r.js');
|
||||
var oPath = path.resolve(__dirname, './build.js');
|
||||
|
||||
exec('node ' + rjsPath + ' -o ' + oPath, function(error, stdout, stderr) {
|
||||
var success = true;
|
||||
console.log('[RequireJS]', stderr);
|
||||
|
||||
if (error !== null) {
|
||||
console.log('[RequireJS]', error);
|
||||
success = false;
|
||||
}
|
||||
|
||||
runSequence(
|
||||
'copyBuildFiles',
|
||||
'removeBuildFiles'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
/*******************************************/
|
||||
/**
|
||||
* JSHint JavaScript and JSON
|
||||
* see .jshintrc for configuration
|
||||
* http://jshint.com/docs/
|
||||
* http://jshint.com/docs/options/
|
||||
*/
|
||||
gulp.task('jshint', function(){
|
||||
return gulp.src([
|
||||
_src.JS_SRC,
|
||||
'!' + _src.JS_LIBS
|
||||
])
|
||||
.pipe(plumber({
|
||||
errorHandler: onError
|
||||
}))
|
||||
.pipe(jshint())
|
||||
.pipe(jshint.reporter(stylish))
|
||||
.pipe(notify({
|
||||
icon: path.resolve(__dirname, _src.ICON),
|
||||
title: 'JSHint',
|
||||
message: 'Task complete',
|
||||
onLast: true
|
||||
}));
|
||||
// .pipe(jshint.reporter('fail')); // uncomment this line to stop build on error
|
||||
});
|
||||
|
||||
/**
|
||||
* Copy optimized/uglyfied js files from "js_build" folder to "public/js/x.x.x/*" folder
|
||||
* for release deployment (cache busting)
|
||||
*/
|
||||
gulp.task('copyBuildFiles', ['removeDistFiles'], function () {
|
||||
|
||||
// raw files
|
||||
var source = _src.JS_SRC;
|
||||
|
||||
if(isProductionBuild){
|
||||
// build files
|
||||
source = _src.JS_BUILD + '/**/*';
|
||||
}
|
||||
|
||||
return gulp
|
||||
.src( source )
|
||||
.pipe(
|
||||
gulpif(
|
||||
tagVersion !== null,
|
||||
gulp.dest( _src.JS_DIST + '/' + tagVersion )
|
||||
)
|
||||
).pipe(notify({
|
||||
icon: path.resolve(__dirname, _src.ICON),
|
||||
title: 'Copy JS to dist',
|
||||
message: 'Task complete',
|
||||
onLast: true
|
||||
}));
|
||||
});
|
||||
|
||||
/**
|
||||
* task removes temp build js files
|
||||
*/
|
||||
gulp.task('removeBuildFiles', function () {
|
||||
'use strict';
|
||||
|
||||
return gulp.src( _src.JS_BUILD ).pipe( clean( _src.JS_BUILD ) );
|
||||
});
|
||||
|
||||
/**
|
||||
* task removes "dist" js files
|
||||
*/
|
||||
gulp.task('removeDistFiles', function () {
|
||||
'use strict';
|
||||
|
||||
var dist = _src.JS_DIST + '/' + tagVersion;
|
||||
|
||||
return gulp.src(dist).pipe( clean(dist) );
|
||||
});
|
||||
|
||||
/*******************************************/
|
||||
// Watch
|
||||
// execute only during continuous development!
|
||||
gulp.task('watch', function(tag) {
|
||||
|
||||
if(tag){
|
||||
tagVersion = tag;
|
||||
}
|
||||
|
||||
gulp.watch([
|
||||
_src.JS_SRC,
|
||||
'!' + _src.JS_LIBS,
|
||||
], ['jshint', 'copyBuildFiles']);
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
/*******************************************/
|
||||
// Default Tasks
|
||||
|
||||
/**
|
||||
* Production task for deployment.
|
||||
* Triggered by Maven Plugin.
|
||||
* $ gulp production --tag v0.0.9
|
||||
* WARNING: DO NOT REMOVE THIS TASK!!!
|
||||
*/
|
||||
gulp.task('production', function(tag) {
|
||||
|
||||
if(tag !== null){
|
||||
tagVersion = tag;
|
||||
isProductionBuild = true;
|
||||
|
||||
// use run-sequence until gulp v4.0 is released
|
||||
runSequence(
|
||||
'requirejs'
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Default task for continuous development.
|
||||
* $ gulp default --tag v0.0.9
|
||||
* WARNING: DO NOT REMOVE THIS TASK!!!
|
||||
*/
|
||||
gulp.task('default', function(tag) {
|
||||
|
||||
if(tag){
|
||||
tagVersion = tag;
|
||||
}
|
||||
|
||||
runSequence(
|
||||
'jshint',
|
||||
'copyBuildFiles',
|
||||
'watch'
|
||||
);
|
||||
});
|
||||
@@ -13,6 +13,8 @@ requirejs.config({
|
||||
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
|
||||
landingpage: './app/landingpage', // initial start "landing page" view
|
||||
@@ -24,8 +26,6 @@ requirejs.config({
|
||||
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
|
||||
templates: '../public/templates', // template dir
|
||||
img: '../public/img', // images dir
|
||||
slidebars: 'lib/slidebars', // v0.10 Slidebars - side menu plugin http://plugins.adchsm.me/slidebars/
|
||||
jsPlumb: 'lib/dom.jsPlumb-1.7.6-min', // v1.7.6 jsPlumb (Vanilla)- main map draw plugin https://jsplumbtoolkit.com/
|
||||
customScrollbar: 'lib/jquery.mCustomScrollbar.concat.min', // v3.0.9 Custom scroll bars - http://manos.malihu.gr/
|
||||
|
||||
@@ -274,7 +274,7 @@ define([
|
||||
};
|
||||
|
||||
// initialize carousel ------------------------------------------
|
||||
var carousel = Gallery([
|
||||
var carousel = new Gallery([
|
||||
{
|
||||
title: 'IGB',
|
||||
href: 'ui/map',
|
||||
@@ -389,7 +389,7 @@ define([
|
||||
titleProperty: 'description'
|
||||
};
|
||||
|
||||
Gallery(thumbLinks, options);
|
||||
new Gallery(thumbLinks, options);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@@ -77,7 +77,7 @@ define([
|
||||
// active connections per map (cache object)
|
||||
var activeConnections = {};
|
||||
|
||||
// characterID => systemId<EFBFBD>s are cached temporary where the active user character is in
|
||||
// characterID => systemIds are cached temporary where the active user character is in
|
||||
// if a character switches/add system, establish connection with "previous" system
|
||||
var activeSystemCache = '';
|
||||
|
||||
@@ -178,7 +178,7 @@ define([
|
||||
})
|
||||
).append(
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-fw', 'fa-circle', config.systemBodyItemStatusClass, statusClass].join(' ')
|
||||
class: ['fa', 'fa-circle', config.systemBodyItemStatusClass, statusClass].join(' ')
|
||||
})
|
||||
).append(
|
||||
$('<span>', {
|
||||
@@ -209,7 +209,7 @@ define([
|
||||
|
||||
tooltipOptions.id = systemId;
|
||||
tooltipOptions.highlight = highlight;
|
||||
tooltipOptions.title = '<i class="fa ' + tooltipIconClass + '"></i>';
|
||||
tooltipOptions.title = "<i class='fa " + tooltipIconClass + "'></i>";
|
||||
tooltipOptions.title += ' ' + userCounter;
|
||||
|
||||
// show system head
|
||||
@@ -224,13 +224,11 @@ define([
|
||||
},
|
||||
complete: function(){
|
||||
// show system body
|
||||
system.toggleBody(true, map, {complete: function(){
|
||||
system.toggleBody(true, map, {complete: function(system){
|
||||
// complete callback function
|
||||
// show active user tooltip
|
||||
system.toggleSystemTooltip('show', tooltipOptions);
|
||||
}});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -285,10 +283,8 @@ define([
|
||||
map.revalidate( systemDomId );
|
||||
|
||||
if(callback.complete){
|
||||
callback.complete();
|
||||
callback.complete(system);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}else if(type === false){
|
||||
@@ -363,6 +359,7 @@ define([
|
||||
tooltipActive === false &&
|
||||
options.id
|
||||
){
|
||||
|
||||
// init new tooltip
|
||||
tooltipId = config.systemTooltipInnerIdPrefix + options.id;
|
||||
|
||||
@@ -465,6 +462,16 @@ define([
|
||||
|
||||
if(!system){
|
||||
|
||||
// set system name or alias
|
||||
var systemName = data.name;
|
||||
|
||||
if(
|
||||
data.alias &&
|
||||
data.alias !== ''
|
||||
){
|
||||
systemName = data.alias;
|
||||
}
|
||||
|
||||
// get system info classes
|
||||
var effectBasicClass = Util.getEffectInfoForSystem('effect', 'class');
|
||||
var effectName = Util.getEffectInfoForSystem(data.effect, 'name');
|
||||
@@ -476,42 +483,42 @@ define([
|
||||
id: systemId,
|
||||
class: config.systemClass
|
||||
}).append(
|
||||
// system head
|
||||
$('<div>', {
|
||||
class: config.systemHeadClass
|
||||
}).append(
|
||||
// System name is editable
|
||||
$('<a>', {
|
||||
href: '#',
|
||||
class: config.systemHeadNameClass
|
||||
})
|
||||
).append(
|
||||
// System locked status
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-lock', 'fa-fw'].join(' ')
|
||||
}).attr('title', 'locked')
|
||||
).append(
|
||||
// System effect color
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-square ', 'fa-fw', effectBasicClass, effectClass].join(' ')
|
||||
}).attr('title', effectName)
|
||||
).append(
|
||||
// expand option
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-angle-down ', config.systemHeadExpandClass].join(' ')
|
||||
})
|
||||
).prepend(
|
||||
$('<span>', {
|
||||
class: [config.systemSec, secClass].join(' '),
|
||||
text: data.security
|
||||
})
|
||||
)
|
||||
).append(
|
||||
// system body
|
||||
$('<div>', {
|
||||
class: config.systemBodyClass
|
||||
})
|
||||
).data('name', data.name);
|
||||
// system head
|
||||
$('<div>', {
|
||||
class: config.systemHeadClass
|
||||
}).append(
|
||||
// System name is editable
|
||||
$('<a>', {
|
||||
href: '#',
|
||||
class: config.systemHeadNameClass
|
||||
}).attr('data-value', systemName)
|
||||
).append(
|
||||
// System locked status
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-lock', 'fa-fw'].join(' ')
|
||||
}).attr('title', 'locked')
|
||||
).append(
|
||||
// System effect color
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-square ', 'fa-fw', effectBasicClass, effectClass].join(' ')
|
||||
}).attr('title', effectName)
|
||||
).append(
|
||||
// expand option
|
||||
$('<i>', {
|
||||
class: ['fa', 'fa-angle-down ', config.systemHeadExpandClass].join(' ')
|
||||
})
|
||||
).prepend(
|
||||
$('<span>', {
|
||||
class: [config.systemSec, secClass].join(' '),
|
||||
text: data.security
|
||||
})
|
||||
)
|
||||
).append(
|
||||
// system body
|
||||
$('<div>', {
|
||||
class: config.systemBodyClass
|
||||
})
|
||||
);
|
||||
|
||||
// set initial system position
|
||||
system.css({
|
||||
@@ -530,7 +537,6 @@ define([
|
||||
newPosX !== currentPosX ||
|
||||
newPosY !== currentPosY
|
||||
){
|
||||
|
||||
// change position with animation
|
||||
system.velocity(
|
||||
{
|
||||
@@ -558,23 +564,18 @@ define([
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// set system alias
|
||||
var alias = system.getSystemInfo(['alias']);
|
||||
|
||||
if(alias !== data.alias){
|
||||
// alias changed
|
||||
system.find('.' + config.systemHeadNameClass).editable('setValue', data.alias);
|
||||
}
|
||||
}
|
||||
|
||||
// set system name or alias
|
||||
var systemName = data.name;
|
||||
|
||||
if(
|
||||
data.alias &&
|
||||
data.alias !== ''
|
||||
){
|
||||
systemName = data.alias;
|
||||
}
|
||||
|
||||
system.find('.' + config.systemHeadNameClass).attr('data-value', systemName);
|
||||
|
||||
// set system status
|
||||
system.setSystemStatus(data.status.name);
|
||||
|
||||
system.data('id', parseInt(data.id));
|
||||
system.data('systemId', parseInt(data.systemId));
|
||||
system.data('name', data.name);
|
||||
@@ -1103,6 +1104,7 @@ define([
|
||||
headElement.editable({
|
||||
mode: 'popup',
|
||||
type: 'text',
|
||||
name: 'alias',
|
||||
title: 'System alias',
|
||||
placement: 'top',
|
||||
onblur: 'submit',
|
||||
@@ -1833,6 +1835,8 @@ define([
|
||||
// system name
|
||||
var currentSystemName = currentSystem.getSystemInfo( ['alias'] );
|
||||
|
||||
var systemData = {};
|
||||
|
||||
switch(action){
|
||||
case 'add_system':
|
||||
// add a new system
|
||||
@@ -1919,17 +1923,17 @@ define([
|
||||
});
|
||||
break;
|
||||
case 'ingame_show_info':
|
||||
var systemData = system.getSystemData();
|
||||
systemData = system.getSystemData();
|
||||
|
||||
CCPEVE.showInfo(5, systemData.systemId );
|
||||
break;
|
||||
case 'ingame_set_destination':
|
||||
var systemData = system.getSystemData();
|
||||
systemData = system.getSystemData();
|
||||
|
||||
CCPEVE.setDestination( systemData.systemId );
|
||||
break;
|
||||
case 'ingame_add_waypoint':
|
||||
var systemData = system.getSystemData();
|
||||
systemData = system.getSystemData();
|
||||
|
||||
CCPEVE.addWaypoint( systemData.systemId );
|
||||
break;
|
||||
@@ -2656,7 +2660,14 @@ define([
|
||||
switch(info[i]){
|
||||
case 'alias':
|
||||
// get current system alias
|
||||
systemInfo.push( $(this).find('.' + config.systemHeadNameClass).text() );
|
||||
var systemHeadNameElement = $(this).find('.' + config.systemHeadNameClass);
|
||||
var alias = '';
|
||||
if( systemHeadNameElement.hasClass('editable') ){
|
||||
// xEditable is initiated
|
||||
alias = systemHeadNameElement.editable('getValue', true);
|
||||
}
|
||||
|
||||
systemInfo.push(alias );
|
||||
break;
|
||||
default:
|
||||
systemInfo.push('bad system query');
|
||||
@@ -2957,7 +2968,7 @@ define([
|
||||
// add "user count" to "total map user count"
|
||||
headerUpdateData.userCount += tempUserData.user.length;
|
||||
|
||||
// remove system from "search" array -> speed up
|
||||
// remove system from "search" array -> speed up loop
|
||||
userData.data.systems.splice(j, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ define([
|
||||
var contentElement = $('<div>', {
|
||||
id: config.mapTabIdPrefix + parseInt( options.id ),
|
||||
class: [config.mapTabContentClass].join(' ')
|
||||
})
|
||||
});
|
||||
|
||||
contentElement.addClass('tab-pane');
|
||||
|
||||
@@ -707,7 +707,7 @@ define([
|
||||
|
||||
/**
|
||||
* collect all data (systems/connections) for export/save from each active map in the map module
|
||||
* if no change detected -> don<EFBFBD>t attach map data to return array
|
||||
* if no change detected -> do not attach map data to return array
|
||||
* @returns {Array}
|
||||
*/
|
||||
$.fn.getMapModuleDataForUpdate = function(){
|
||||
|
||||
@@ -966,7 +966,7 @@ define([
|
||||
var timer = function(){
|
||||
|
||||
// change status on first timer iteration
|
||||
if(programStatusCounter === Init.timer['PROGRAM_STATUS_VISIBLE']){
|
||||
if(programStatusCounter === Init.timer.PROGRAM_STATUS_VISIBLE){
|
||||
|
||||
statusElement.velocity('stop').velocity('fadeOut', {
|
||||
duration: Init.animationSpeed.headerLink,
|
||||
@@ -992,7 +992,7 @@ define([
|
||||
};
|
||||
|
||||
if(! programStatusInterval){
|
||||
programStatusCounter = Init.timer['PROGRAM_STATUS_VISIBLE'];
|
||||
programStatusCounter = Init.timer.PROGRAM_STATUS_VISIBLE;
|
||||
programStatusInterval = setInterval(timer, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ define([
|
||||
if( !CCP.isInGameBrowser() ){
|
||||
headlineElement.delay(300).velocity('transition.shrinkIn', {
|
||||
duration: 500
|
||||
}).delay(800)
|
||||
}).delay(800);
|
||||
|
||||
headlineElement.velocity({
|
||||
scale: 1.05
|
||||
|
||||
@@ -30,7 +30,7 @@ define([
|
||||
|
||||
pageElement.find('h1').delay(300).velocity('transition.shrinkIn', {
|
||||
duration: 500
|
||||
}).delay(800)
|
||||
}).delay(800);
|
||||
|
||||
pageElement.find('h1').velocity({
|
||||
scale: 1.05
|
||||
|
||||
@@ -48,8 +48,8 @@ define([
|
||||
var closest = [];
|
||||
var p1 = points[i];
|
||||
for(var j = 0; j < points.length; j++) {
|
||||
var p2 = points[j]
|
||||
if(!(p1 === p2)) {
|
||||
var p2 = points[j];
|
||||
if(p1 !== p2) {
|
||||
var placed = false;
|
||||
for(var k = 0; k < connectionCount; k++) {
|
||||
if(!placed) {
|
||||
@@ -60,10 +60,10 @@ define([
|
||||
}
|
||||
}
|
||||
|
||||
for(var k = 0; k < connectionCount; k++) {
|
||||
for(var m = 0; m < connectionCount; m++) {
|
||||
if(!placed) {
|
||||
if(getDistance(p1, p2) < getDistance(p1, closest[k])) {
|
||||
closest[k] = p2;
|
||||
if(getDistance(p1, p2) < getDistance(p1, closest[m])) {
|
||||
closest[m] = p2;
|
||||
placed = true;
|
||||
}
|
||||
}
|
||||
@@ -74,9 +74,9 @@ define([
|
||||
}
|
||||
|
||||
// assign a circle to each point
|
||||
for(var i in points) {
|
||||
var c = new Circle(points[i], 2+Math.random()*2, 'rgba(255,255,255,0.3)');
|
||||
points[i].circle = c;
|
||||
for(var n in points) {
|
||||
var c = new Circle(points[n], 2+Math.random()*2, 'rgba(255,255,255,0.3)');
|
||||
points[n].circle = c;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ define([
|
||||
// hide/disable description field
|
||||
|
||||
// hide tool button
|
||||
descriptionButton.hide()
|
||||
descriptionButton.hide();
|
||||
|
||||
showToolsActionElement();
|
||||
}
|
||||
|
||||
@@ -631,21 +631,21 @@ define([
|
||||
// make sure the delay timer is valid!
|
||||
// if this is called for the first time -> set CURRENT_DELAY
|
||||
if(
|
||||
Init.timer[updateKey]['CURRENT_DELAY'] === undefined ||
|
||||
Init.timer[updateKey]['CURRENT_DELAY'] <= 0
|
||||
Init.timer[updateKey].CURRENT_DELAY === undefined ||
|
||||
Init.timer[updateKey].CURRENT_DELAY <= 0
|
||||
){
|
||||
Init.timer[updateKey]['CURRENT_DELAY'] = Init.timer[updateKey]['DELAY'];
|
||||
Init.timer[updateKey].CURRENT_DELAY = Init.timer[updateKey].DELAY;
|
||||
}
|
||||
|
||||
// in/decrease the trigger delay
|
||||
if(
|
||||
value === parseInt(value, 10) &&
|
||||
( Init.timer[updateKey]['CURRENT_DELAY'] ) + value > 0
|
||||
( Init.timer[updateKey].CURRENT_DELAY ) + value > 0
|
||||
){
|
||||
Init.timer[updateKey]['CURRENT_DELAY'] += value;
|
||||
Init.timer[updateKey].CURRENT_DELAY += value;
|
||||
}
|
||||
|
||||
return Init.timer[updateKey]['CURRENT_DELAY'];
|
||||
return Init.timer[updateKey].CURRENT_DELAY;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
4
node_modules/.gitignore
generated
vendored
Normal file
4
node_modules/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
#ignore all files in this dir...
|
||||
*
|
||||
#... except for this one.
|
||||
!.gitignore
|
||||
9
node_modules/requirejs/README.md
generated
vendored
9
node_modules/requirejs/README.md
generated
vendored
@@ -1,9 +0,0 @@
|
||||
# requirejs
|
||||
|
||||
RequireJS for use in Node. includes:
|
||||
|
||||
* r.js: the RequireJS optimizer, and AMD runtime for use in Node.
|
||||
* require.js: The browser-based AMD loader.
|
||||
|
||||
More information at http://requirejs.org
|
||||
|
||||
30611
node_modules/requirejs/bin/r.js
generated
vendored
30611
node_modules/requirejs/bin/r.js
generated
vendored
File diff suppressed because one or more lines are too long
3
node_modules/requirejs/bin/readme.txt
generated
vendored
3
node_modules/requirejs/bin/readme.txt
generated
vendored
@@ -1,3 +0,0 @@
|
||||
- requireJS optimizer start in this dir:
|
||||
|
||||
node r.js -o build.js
|
||||
58
node_modules/requirejs/package.json
generated
vendored
58
node_modules/requirejs/package.json
generated
vendored
@@ -1,58 +0,0 @@
|
||||
{
|
||||
"name": "requirejs",
|
||||
"description": "Node adapter for RequireJS, for loading AMD modules. Includes RequireJS optimizer",
|
||||
"version": "2.1.20",
|
||||
"homepage": "http://github.com/jrburke/r.js",
|
||||
"author": {
|
||||
"name": "James Burke",
|
||||
"email": "jrburke@gmail.com",
|
||||
"url": "http://github.com/jrburke"
|
||||
},
|
||||
"licenses": [
|
||||
{
|
||||
"type": "BSD",
|
||||
"url": "https://github.com/jrburke/r.js/blob/master/LICENSE"
|
||||
},
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "https://github.com/jrburke/r.js/blob/master/LICENSE"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jrburke/r.js.git"
|
||||
},
|
||||
"main": "./bin/r.js",
|
||||
"bin": {
|
||||
"r.js": "./bin/r.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/jrburke/r.js/issues"
|
||||
},
|
||||
"_id": "requirejs@2.1.20",
|
||||
"scripts": {},
|
||||
"_shasum": "114822c917ec8793450b2daaa1eb9bbf1101e931",
|
||||
"_from": "requirejs@*",
|
||||
"_npmVersion": "2.12.1",
|
||||
"_nodeVersion": "0.10.36",
|
||||
"_npmUser": {
|
||||
"name": "jrburke",
|
||||
"email": "jrburke@gmail.com"
|
||||
},
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "jrburke",
|
||||
"email": "jrburke@gmail.com"
|
||||
}
|
||||
],
|
||||
"dist": {
|
||||
"shasum": "114822c917ec8793450b2daaa1eb9bbf1101e931",
|
||||
"tarball": "http://registry.npmjs.org/requirejs/-/requirejs-2.1.20.tgz"
|
||||
},
|
||||
"directories": {},
|
||||
"_resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.20.tgz",
|
||||
"readme": "ERROR: No README data found!"
|
||||
}
|
||||
2103
node_modules/requirejs/require.js
generated
vendored
2103
node_modules/requirejs/require.js
generated
vendored
File diff suppressed because it is too large
Load Diff
46
package.json
Normal file
46
package.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "pathfinder-eve",
|
||||
"version": "0.0.10",
|
||||
"engines" : {
|
||||
"node" : "4.0.x"
|
||||
},
|
||||
"description": "Pathfinder is a system mapping tool for EVE ONLINE",
|
||||
"main": "index.php",
|
||||
"dependencies": {
|
||||
"requirejs": "^2.1.20"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.0",
|
||||
"gulp-clean": "^0.3.1",
|
||||
"gulp-if": "^1.2.5",
|
||||
"gulp-jshint": "^1.11.2",
|
||||
"gulp-notify": "^2.2.0",
|
||||
"gulp-param": "^0.6.3",
|
||||
"gulp-plumber": "^1.0.1",
|
||||
"jshint": "^2.8.0",
|
||||
"jshint-stylish": "^2.0.1",
|
||||
"run-sequence": "^1.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/exodus4d/pathfinder.git"
|
||||
},
|
||||
"keywords": [
|
||||
"pathfinder",
|
||||
"exodus 4d",
|
||||
"eve online",
|
||||
"wormhole",
|
||||
"mapping"
|
||||
],
|
||||
"author": "Exodus 4D <pathfinder@exodus4d.de> (https://github.com/exodus4d)",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/exodus4d/pathfinder/issues",
|
||||
"email" : "pathfinder@exodus4d.de"
|
||||
},
|
||||
"homepage": "https://github.com/exodus4d/pathfinder#readme",
|
||||
"private": true
|
||||
}
|
||||
2
public/js/v0.0.10/app.js
Normal file
2
public/js/v0.0.10/app.js
Normal file
@@ -0,0 +1,2 @@
|
||||
var mainScriptPath=document.body.getAttribute("data-script"),jsBaseUrl=document.body.getAttribute("data-js-path");requirejs.config({baseUrl:"js",paths:{layout:"layout",config:"app/config",dialog:"app/ui/dialog",templates:"../../templates",img:"../../img",landingpage:"./app/landingpage",mappage:"./app/mappage",jquery:"lib/jquery-1.11.3.min",bootstrap:"lib/bootstrap.min",text:"lib/requirejs/text",mustache:"lib/mustache.min",velocity:"lib/velocity.min",velocityUI:"lib/velocity.ui.min",slidebars:"lib/slidebars",jsPlumb:"lib/dom.jsPlumb-1.7.6-min",customScrollbar:"lib/jquery.mCustomScrollbar.concat.min",datatables:"lib/datatables/jquery.dataTables.min",datatablesResponsive:"lib/datatables/extensions/responsive/dataTables.responsive",datatablesTableTools:"lib/datatables/extensions/tabletools/js/dataTables.tableTools",xEditable:"lib/bootstrap-editable.min",morris:"lib/morris.min",raphael:"lib/raphael-min",bootbox:"lib/bootbox.min",easyPieChart:"lib/jquery.easypiechart.min",dragToSelect:"lib/jquery.dragToSelect",hoverIntent:"lib/jquery.hoverIntent.minified",fullScreen:"lib/jquery.fullscreen.min",select2:"lib/select2.min",validator:"lib/validator.min",lazylinepainter:"lib/jquery.lazylinepainter-1.5.1.min",blueImpGallery:"lib/blueimp-gallery",blueImpGalleryHelper:"lib/blueimp-helper",blueImpGalleryBootstrap:"lib/bootstrap-image-gallery",bootstrapConfirmation:"lib/bootstrap-confirmation",bootstrapToggle:"lib/bootstrap2-toggle.min",easePack:"lib/EasePack.min",tweenLite:"lib/TweenLite.min",pnotify:"lib/pnotify/pnotify.core","pnotify.buttons":"lib/pnotify/pnotify.buttons","pnotify.confirm":"lib/pnotify/pnotify.confirm","pnotify.nonblock":"lib/pnotify/pnotify.nonblock","pnotify.desktop":"lib/pnotify/pnotify.desktop","pnotify.history":"lib/pnotify/pnotify.history","pnotify.callbacks":"lib/pnotify/pnotify.callbacks","pnotify.reference":"lib/pnotify/pnotify.reference"},shim:{bootstrap:{deps:["jquery"]},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"]}}});require.config({baseUrl:jsBaseUrl});requirejs([mainScriptPath]);
|
||||
//# sourceMappingURL=app.js.map
|
||||
1
public/js/v0.0.10/app.js.map
Normal file
1
public/js/v0.0.10/app.js.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"app.js.map","sources":["app.js.src.js"],"names":["mainScriptPath","document","body","getAttribute","jsBaseUrl","requirejs","config","baseUrl","paths","layout","dialog","templates","img","landingpage","mappage","jquery","bootstrap","text","mustache","velocity","velocityUI","slidebars","jsPlumb","customScrollbar","datatables","datatablesResponsive","datatablesTableTools","xEditable","morris","raphael","bootbox","easyPieChart","dragToSelect","hoverIntent","fullScreen","select2","validator","lazylinepainter","blueImpGallery","blueImpGalleryHelper","blueImpGalleryBootstrap","bootstrapConfirmation","bootstrapToggle","easePack","tweenLite","pnotify","pnotify.buttons","pnotify.confirm","pnotify.nonblock","pnotify.desktop","pnotify.history","pnotify.callbacks","pnotify.reference","shim","deps","datatablesBootstrap","exports","require"],"mappings":"AACA,GAAIA,gBAAiBC,SAASC,KAAKC,aAAa,eAI5CC,UAAYH,SAASC,KAAKC,aAAa,eAG3CE,WAAUC,QACNC,QAAS,KAETC,OACIC,OAAQ,SACRH,OAAQ,aACRI,OAAQ,gBACRC,UAAW,kBACXC,IAAK,YAGLC,YAAa,oBACbC,QAAS,gBAETC,OAAQ,wBACRC,UAAW,oBACXC,KAAM,qBACNC,SAAU,mBACVC,SAAU,mBACVC,WAAY,sBACZC,UAAW,gBACXC,QAAS,4BACTC,gBAAiB,yCACjBC,WAAY,uCAEZC,qBAAsB,6DAEtBC,qBAAsB,gEACtBC,UAAW,6BACXC,OAAQ,iBACRC,QAAS,kBACTC,QAAS,kBACTC,aAAc,8BACdC,aAAc,0BACdC,YAAa,kCACbC,WAAY,4BACZC,QAAS,kBACTC,UAAW,oBACXC,gBAAiB,uCACjBC,eAAgB,sBAChBC,qBAAsB,qBACtBC,wBAAyB,8BACzBC,sBAAuB,6BACvBC,gBAAiB,4BAGjBC,SAAU,mBACVC,UAAW,oBAGXC,QAAS,2BACTC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,mBAAoB,+BACpBC,kBAAmB,8BACnBC,kBAAmB,8BACnBC,oBAAqB,gCACrBC,oBAAqB,iCAGzBC,MACIrC,WACIsC,MAAO,WAEXnC,UACImC,MAAO,WAEXlC,YACIkC,MAAO,aAEXjC,WACIiC,MAAO,WAEX/B,iBACI+B,MAAO,WAEX9B,YACI8B,MAAO,WAEXC,qBACID,MAAO,eAEX7B,sBACI6B,MAAO,eAEX5B,sBACI4B,MAAO,eAEX3B,WACI2B,MAAO,cAEXxB,SACIwB,MAAO,SAAU,aACjBE,QAAS,WAEb5B,QACI0B,MAAO,SAAU,WACjBE,QAAS,UAEbX,SACIS,MAAQ,WAEZvB,cACIuB,MAAQ,WAEZtB,cACIsB,MAAQ,WAEZrB,aACIqB,MAAQ,WAEZpB,YACIoB,MAAQ,WAEZnB,SACImB,MAAQ,UACRE,QAAS,WAEbpB,WACIkB,MAAQ,SAAU,cAEtBjB,iBACIiB,MAAQ,SAAU,cAEtBhB,gBACIgB,MAAQ,WAEZb,uBACIa,MAAQ,cAEZZ,iBACIY,MAAQ,aAQpBG,SAAQnD,QACJC,QAASH,WAIbC,YAAYL"}
|
||||
@@ -13,6 +13,8 @@ requirejs.config({
|
||||
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
|
||||
landingpage: './app/landingpage', // initial start "landing page" view
|
||||
@@ -24,8 +26,6 @@ requirejs.config({
|
||||
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
|
||||
templates: '../public/templates', // template dir
|
||||
img: '../public/img', // images dir
|
||||
slidebars: 'lib/slidebars', // v0.10 Slidebars - side menu plugin http://plugins.adchsm.me/slidebars/
|
||||
jsPlumb: 'lib/dom.jsPlumb-1.7.6-min', // v1.7.6 jsPlumb (Vanilla)- main map draw plugin https://jsplumbtoolkit.com/
|
||||
customScrollbar: 'lib/jquery.mCustomScrollbar.concat.min', // v3.0.9 Custom scroll bars - http://manos.malihu.gr/
|
||||
File diff suppressed because one or more lines are too long
1
public/js/v0.0.10/app/landingpage.js.map
Normal file
1
public/js/v0.0.10/app/landingpage.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/v0.0.10/app/mappage.js.map
Normal file
1
public/js/v0.0.10/app/mappage.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -61,7 +61,7 @@
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<span class="txt-color txt-color-warning">Delete account</span>
|
||||
<span class="txt-color txt-color-warning">Warning</span>
|
||||
<small>This will permanently remove your account!</small>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -703,7 +703,7 @@
|
||||
I wanted to make the easiest to use and most powerful 3rd party system mapper, build with the newest web technology available.
|
||||
</p>
|
||||
<p>
|
||||
I am currently working as a professional software developer for one of the larges German web pages.
|
||||
I am currently working as a professional software developer for one of the largest German web pages.
|
||||
The main focus of my daily work is based on large scale frontend applications.
|
||||
</p>
|
||||
<p>
|
||||
@@ -845,13 +845,13 @@
|
||||
Feel free to contact me with your problem, either by submitting a <a target="_blank" href="https://github.com/exodus4d/pathfinder/issues">bug report</a> or contact me in game.
|
||||
I´ll give my best to find a solution for your problem or path <em>Pathfinder</em>.
|
||||
</p>
|
||||
<h3>I don´t trust you, can i host <em>Pathfinder</em> on my own webserver?</h3>
|
||||
<h3>I don´t trust you, can I host <em>Pathfinder</em> on my own webserver?</h3>
|
||||
<p>
|
||||
Yes you can! I developed this application for the great community of <em>EVE Online</em>.
|
||||
The program code is open source and can be used by anyone who have the required software skills.
|
||||
Please make sure to keep all 3rd party plugin licence and respect them.
|
||||
At the moment there is no developer guide available. But one the beta phase is finished, i will probably write a short technical documentation.
|
||||
Do not expect any "out of the boy" install routine at this point.
|
||||
Do not expect any "out of the box" install routine at this point.
|
||||
<br>
|
||||
Server requirements:
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user