11
README.md
11
README.md
@@ -2,9 +2,10 @@
|
||||
Mapping tool for [*EVE ONLINE*](https://www.eveonline.com)
|
||||
|
||||
- Project [https://www.pathfinder.exodus4d.de](https://www.pathfinder.exodus4d.de)
|
||||
- Community [google +](https://plus.google.com/u/0/b/110257318165279088853/110257318165279088853)
|
||||
- Official Forum post [https://forums.eveonline.com](https://forums.eveonline.com/default.aspx?g=posts&m=6021776#post6021776)
|
||||
- Screenshots [imgur.com](http://imgur.com/a/k2aVa)
|
||||
- Media [youtube.com](https://www.youtube.com/channel/UC7HU7XEoMbqRwqxDTbMjSPg)
|
||||
- Video [youtube.com](https://www.youtube.com/channel/UC7HU7XEoMbqRwqxDTbMjSPg)
|
||||
- Community [google +](https://plus.google.com/u/0/b/110257318165279088853/110257318165279088853)
|
||||
- Licence [MIT](http://opensource.org/licenses/MIT)
|
||||
|
||||
##### IMPORTANT Information
|
||||
@@ -23,10 +24,6 @@ If you are looking for installation help, please check the [wiki](https://github
|
||||
|-- cron.ini --> config cronjobs
|
||||
|-- pathfinder.ini --> config pathfinder
|
||||
|-- routes.ini --> config routes
|
||||
|-- (0755) build_js --> JS build folder and source maps (minified, uglified)
|
||||
|-- app --> "PATHFINDER" core files
|
||||
|-- lib --> 3rd partie extension/library
|
||||
|-- build.txt --> generated build summary
|
||||
|-- (0755) js --> JS source files (raw)
|
||||
|-- app --> "PASTHFINDER" core files (not used for production )
|
||||
|-- lib --> 3rd partie extension/library (not used for production )
|
||||
@@ -39,7 +36,7 @@ If you are looking for installation help, please check the [wiki](https://github
|
||||
|-- css --> CSS dist/build folder (minified)
|
||||
|-- fonts --> (icon)-Fonts
|
||||
|-- img --> images
|
||||
|-- js --> JS dist/build folder
|
||||
|-- js --> JS dist/build folder and source maps (minified, uglified)
|
||||
|-- templates --> templates
|
||||
|-- sass --> SCSS source (not used for production )
|
||||
|-- ...
|
||||
|
||||
@@ -77,11 +77,15 @@ class Signature extends \Controller\AccessController{
|
||||
$user = $this->_getUser();
|
||||
|
||||
if($user){
|
||||
$activeCharacter = $user->getActiveUserCharacter();
|
||||
$activeUserCharacter = $user->getActiveUserCharacter();
|
||||
$activeCharacter = $activeUserCharacter->getCharacter();
|
||||
$system = Model\BasicModel::getNew('SystemModel');
|
||||
|
||||
// update/add all submitted signatures
|
||||
foreach($signatureData as $data){
|
||||
// this key should not be saved (it is an obj)
|
||||
unset($data['updated']);
|
||||
|
||||
$system->getById( (int)$data['systemId']);
|
||||
|
||||
if(!$system->dry()){
|
||||
@@ -99,12 +103,11 @@ class Signature extends \Controller\AccessController{
|
||||
$signature = Model\BasicModel::getNew('SystemSignatureModel');
|
||||
}
|
||||
|
||||
$signature->updatedCharacterId = $activeCharacter->getCharacter();
|
||||
|
||||
if($signature->dry()){
|
||||
// new signature
|
||||
$signature->systemId = $system;
|
||||
$signature->createdCharacterId = $activeCharacter->getCharacter();
|
||||
$signature->updatedCharacterId = $activeCharacter;
|
||||
$signature->createdCharacterId = $activeCharacter;
|
||||
$signature->setData($data);
|
||||
}else{
|
||||
// update signature
|
||||
@@ -126,10 +129,13 @@ class Signature extends \Controller\AccessController{
|
||||
}else{
|
||||
// update complete signature (signature reader dialog)
|
||||
|
||||
// systemId should not be updated
|
||||
unset( $data['systemId'] );
|
||||
|
||||
// description should not be updated
|
||||
unset( $data['description'] );
|
||||
|
||||
// wormhole typeID can<EFBFBD>t figured out/saved by the sig reader dialog
|
||||
// wormhole typeID can not figured out/saved by the sig reader dialog
|
||||
if($data['groupId'] == 5){
|
||||
unset( $data['typeId'] );
|
||||
}
|
||||
@@ -137,10 +143,13 @@ class Signature extends \Controller\AccessController{
|
||||
$newData = $data;
|
||||
}
|
||||
|
||||
$signature->setData($newData);
|
||||
if( $signature->hasChanged($newData) ){
|
||||
// Character should only be changed if something else has changed
|
||||
$signature->updatedCharacterId = $activeCharacter;
|
||||
$signature->setData($newData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$signature->save();
|
||||
|
||||
// get a fresh signature object with the new data. This is a bad work around!
|
||||
|
||||
@@ -68,17 +68,36 @@ class CcpSystemsMapper extends \RecursiveArrayIterator {
|
||||
$iterator['security'] == 8 ||
|
||||
$iterator['security'] == 9
|
||||
){
|
||||
// k-space system
|
||||
$trueSec = round($iterator['trueSec'], 3);
|
||||
|
||||
if($trueSec <= 0){
|
||||
$security = '0.0';
|
||||
}elseif($trueSec < 0.5){
|
||||
$security = 'L';
|
||||
}else{
|
||||
$security = 'H';
|
||||
// more precise rounding required for "low sec" and "high sec" distinction
|
||||
$trueSec = round($trueSec, 1);
|
||||
|
||||
if($trueSec < 0.5){
|
||||
$security = 'L';
|
||||
}else{
|
||||
$security = 'H';
|
||||
}
|
||||
}
|
||||
}else{
|
||||
}elseif(
|
||||
$iterator['security'] == 1 ||
|
||||
$iterator['security'] == 2 ||
|
||||
$iterator['security'] == 3 ||
|
||||
$iterator['security'] == 4 ||
|
||||
$iterator['security'] == 5 ||
|
||||
$iterator['security'] == 6
|
||||
){
|
||||
// standard wormhole system
|
||||
$security = 'C' . $iterator['security'];
|
||||
}elseif(
|
||||
$iterator['security'] == 13
|
||||
){
|
||||
// shattered wormhole system
|
||||
$security = 'SH';
|
||||
}
|
||||
|
||||
return $security;
|
||||
|
||||
@@ -307,8 +307,8 @@ class SystemModel extends BasicModel {
|
||||
|
||||
// check if this system is a wormhole
|
||||
if($this->isWormhole()){
|
||||
$systemStaticModel = self::getNew('SystemStaticModel');
|
||||
$systemStatics = $systemStaticModel->find([
|
||||
$systemWormholeModel = self::getNew('SystemWormholeModel');
|
||||
$systemStatics = $systemWormholeModel->find([
|
||||
'constellationId = :constellationId',
|
||||
':constellationId' => $this->constellationId
|
||||
]);
|
||||
|
||||
@@ -69,12 +69,33 @@ class SystemSignatureModel extends BasicModel {
|
||||
'character' => $this->updatedCharacterId->getData(),
|
||||
'updated' => strtotime($this->updated)
|
||||
]
|
||||
|
||||
];
|
||||
|
||||
return $signatureData;
|
||||
}
|
||||
|
||||
/**
|
||||
* compares a new data set (array) with the current values
|
||||
* and checks if something has changed
|
||||
* @param $signatureData
|
||||
* @return bool
|
||||
*/
|
||||
public function hasChanged($signatureData){
|
||||
$hasChanged = false;
|
||||
|
||||
foreach((array)$signatureData as $key => $value){
|
||||
if(
|
||||
$this->exists($key) &&
|
||||
$this->$key != $value
|
||||
){
|
||||
$hasChanged = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $hasChanged;
|
||||
}
|
||||
|
||||
/**
|
||||
* check object for model access
|
||||
* @param $accessObject
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: exodus4d
|
||||
* Date: 07.06.15
|
||||
* Time: 18:16
|
||||
*/
|
||||
|
||||
namespace Model;
|
||||
|
||||
|
||||
class SystemStaticModel extends BasicModel {
|
||||
|
||||
protected $table = 'system_static';
|
||||
|
||||
/**
|
||||
* get systemStatic data as object
|
||||
* @return object
|
||||
*/
|
||||
public function getData(){
|
||||
|
||||
$systemStaticData = (object) [];
|
||||
$systemStaticData->security = $this->security;
|
||||
$systemStaticData->name = $this->name;
|
||||
|
||||
return $systemStaticData;
|
||||
}
|
||||
}
|
||||
32
app/main/model/systemwormholemodel.php
Normal file
32
app/main/model/systemwormholemodel.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: exodus4d
|
||||
* Date: 07.06.15
|
||||
* Time: 18:16
|
||||
*/
|
||||
|
||||
namespace Model;
|
||||
|
||||
|
||||
class SystemWormholeModel extends BasicModel {
|
||||
|
||||
protected $table = 'system_wormhole';
|
||||
|
||||
protected $fieldConf = [
|
||||
'wormholeId' => [
|
||||
'belongs-to-one' => 'Model\WormholeModel'
|
||||
]
|
||||
];
|
||||
|
||||
/**
|
||||
* get wormhole data as object
|
||||
* @return object
|
||||
*/
|
||||
public function getData(){
|
||||
|
||||
$systemWormholeData = $this->wormholeId->getData();
|
||||
|
||||
return $systemWormholeData;
|
||||
}
|
||||
}
|
||||
@@ -17,9 +17,9 @@ class UserModel extends BasicModel {
|
||||
protected $table = 'user';
|
||||
|
||||
protected $fieldConf = [
|
||||
'lastLogin' => array(
|
||||
'lastLogin' => [
|
||||
'type' => Schema::DT_TIMESTAMP
|
||||
),
|
||||
],
|
||||
'apis' => [
|
||||
'has-many' => ['Model\UserApiModel', 'userId']
|
||||
],
|
||||
|
||||
60
app/main/model/wormholemodel.php
Normal file
60
app/main/model/wormholemodel.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Exodus
|
||||
* Date: 14.11.2015
|
||||
* Time: 22:21
|
||||
*/
|
||||
|
||||
namespace Model;
|
||||
|
||||
class WormholeModel extends BasicModel {
|
||||
|
||||
protected $table = 'wormhole';
|
||||
|
||||
/**
|
||||
* format mass values
|
||||
* - no decimal separator
|
||||
* - char '.' for thousands separator
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
static function formatMassValue($value){
|
||||
return number_format( $value, 0, '', '.' );
|
||||
}
|
||||
|
||||
/**
|
||||
* get wormhole data as object
|
||||
* @return object
|
||||
*/
|
||||
public function getData(){
|
||||
|
||||
$systemStaticData = (object) [];
|
||||
$systemStaticData->name = $this->name;
|
||||
$systemStaticData->security = $this->security;
|
||||
|
||||
// total (max) available wormhole mass
|
||||
$systemStaticData->massTotal = (object) [];
|
||||
$systemStaticData->massTotal->value = $this->massTotal;
|
||||
$systemStaticData->massTotal->format = self::formatMassValue($this->massTotal) . ' Kg';
|
||||
|
||||
// individual jump mass (max) per jump
|
||||
$systemStaticData->massIndividual = (object) [];
|
||||
$systemStaticData->massIndividual->value = $this->massIndividual;
|
||||
$systemStaticData->massIndividual->format = self::formatMassValue($this->massIndividual) . ' Kg';
|
||||
|
||||
// lifetime (max) for this wormhole
|
||||
$systemStaticData->maxStableTime = (object) [];
|
||||
$systemStaticData->maxStableTime->value = $this->maxStableTime;
|
||||
$systemStaticData->maxStableTime->format = $this->maxStableTime . ' h';
|
||||
|
||||
// mass regeneration value per day
|
||||
if($this->massRegeneration > 0){
|
||||
$systemStaticData->massRegeneration = (object) [];
|
||||
$systemStaticData->massRegeneration->value = $this->massRegeneration;
|
||||
$systemStaticData->massRegeneration->format = self::formatMassValue($this->massRegeneration) . ' Kg/day';
|
||||
}
|
||||
|
||||
return $systemStaticData;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
[PATHFINDER]
|
||||
NAME = "PATHFINDER"
|
||||
; installed version (used for CSS/JS cache busting)
|
||||
VERSION = "v0.0.15"
|
||||
VERSION = "v0.0.16"
|
||||
; contact information (DO NOT CHANGE)
|
||||
CONTACT = "https://github.com/exodus4d"
|
||||
; source code (DO NOT CHANGE)
|
||||
|
||||
@@ -254,6 +254,42 @@ define([], function() {
|
||||
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 - NS',
|
||||
30: 'E545 - NS',
|
||||
31: 'K346 - NS',
|
||||
32: 'Z060 - NS'
|
||||
}
|
||||
}
|
||||
}, // system type (k-space)
|
||||
2: {
|
||||
|
||||
@@ -147,6 +147,9 @@ define(['jquery'], function($) {
|
||||
security: {
|
||||
class: 'pf-system-sec'
|
||||
},
|
||||
'SH': {
|
||||
class: 'pf-system-sec-unknown'
|
||||
},
|
||||
'H': {
|
||||
class: 'pf-system-sec-highSec'
|
||||
},
|
||||
@@ -352,6 +355,16 @@ define(['jquery'], function($) {
|
||||
1: 'E004 - C1',
|
||||
2: 'Z006 - C3',
|
||||
5: '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 - C7'
|
||||
|
||||
}
|
||||
},
|
||||
// incoming wormholes
|
||||
|
||||
@@ -77,10 +77,11 @@ define([
|
||||
|
||||
|
||||
// login buttons ------------------------------------------------
|
||||
$('.' + config.loginButtonClass).on('click', function(e){
|
||||
var loginForm = $('#' + config.loginFormId);
|
||||
|
||||
loginForm.on('submit', function(e){
|
||||
e.preventDefault();
|
||||
|
||||
var loginForm = $('#' + config.loginFormId);
|
||||
var loginFormMessageContainer = $('#' + config.loginMessageContainerId);
|
||||
|
||||
// validate form
|
||||
@@ -144,7 +145,6 @@ define([
|
||||
};
|
||||
|
||||
$('[title]').not('.slide img').tooltip(mapTooltipOptions);
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -54,7 +54,7 @@ define([
|
||||
duration: animationInDuration,
|
||||
complete: function(){
|
||||
// set context menu "click" observer
|
||||
$(this).off('click').one('click', {component: component, position:{x: getLeftLocation(originalEvent), y: getTopLocation(originalEvent)}}, function (e) {
|
||||
$(this).off('click').one('click', {component: component, position:{x: originalEvent.offsetX, y: originalEvent.offsetY}}, function (e) {
|
||||
// hide contextmenu
|
||||
$(this).hide();
|
||||
|
||||
@@ -64,7 +64,6 @@ define([
|
||||
position: e.data.position
|
||||
};
|
||||
|
||||
|
||||
settings.menuSelected.call(this, params);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ define([
|
||||
systemInfoEffectInfoClass: 'pf-system-info-effect', // class for "effect" information element
|
||||
systemInfoStatusLabelClass: 'pf-system-info-status-label', // class for "status" information element
|
||||
systemInfoStatusAttributeName: 'data-status', // attribute name for status label
|
||||
systemInfoWormholeClass: 'pf-system-info-wormhole-', // class prefix for static wormhole element
|
||||
|
||||
// description field
|
||||
descriptionArea: 'pf-system-info-description-area', // class for "description" area
|
||||
@@ -56,6 +57,7 @@ define([
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* shows the tool action element by animation
|
||||
*/
|
||||
@@ -192,6 +194,22 @@ define([
|
||||
|
||||
parentElement.prepend(moduleElement);
|
||||
|
||||
// shattered wormhole info data
|
||||
var shatteredWormholeInfo = false;
|
||||
|
||||
// add security class for statics
|
||||
if(
|
||||
systemData.statics &&
|
||||
systemData.statics.length > 0
|
||||
){
|
||||
for(var i = 0; i < systemData.statics.length; i++){
|
||||
systemData.statics[i].class = Util.getSecurityClassForSystem( systemData.statics[i].security );
|
||||
}
|
||||
}else if(systemData.type.id === 1){
|
||||
// system type "wormhole" but no statics => "shattered wormhole"
|
||||
shatteredWormholeInfo = true;
|
||||
}
|
||||
|
||||
var effectName = Util.getEffectInfoForSystem(systemData.effect, 'name');
|
||||
var effectClass = Util.getEffectInfoForSystem(systemData.effect, 'class');
|
||||
|
||||
@@ -338,6 +356,15 @@ define([
|
||||
});
|
||||
}
|
||||
|
||||
// init static wormhole information ----------------------------------------------------------
|
||||
if(systemData.statics){
|
||||
for(var i = 0; i < systemData.statics.length; i++){
|
||||
var staticData = systemData.statics[i];
|
||||
var staticRowElement = tempModuleElement.find('.' + config.systemInfoWormholeClass + staticData.name);
|
||||
staticRowElement.addWormholeInfoTooltip(staticData);
|
||||
}
|
||||
}
|
||||
|
||||
// constellation popover ---------------------------------------------------------------------
|
||||
tempModuleElement.find('a.popup-ajax').popover({
|
||||
html: true,
|
||||
@@ -350,7 +377,6 @@ define([
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function details_in_popup(popoverElement){
|
||||
popoverElement = $(popoverElement);
|
||||
var popover = popoverElement.data('bs.popover');
|
||||
@@ -373,18 +399,12 @@ define([
|
||||
}
|
||||
};
|
||||
|
||||
// add security class for statics
|
||||
if(systemData.statics){
|
||||
for(var i = 0; i < systemData.statics.length; i++){
|
||||
systemData.statics[i].class = Util.getSecurityClassForSystem( systemData.statics[i].security );
|
||||
}
|
||||
}
|
||||
|
||||
var moduleData = {
|
||||
system: systemData,
|
||||
tableClass: config.systemInfoTableClass,
|
||||
nameInfoClass: config.systemInfoNameInfoClass,
|
||||
effectInfoClass: config.systemInfoEffectInfoClass,
|
||||
wormholePrefixClass: config.systemInfoWormholeClass,
|
||||
statusInfoClass: config.systemInfoStatusLabelClass,
|
||||
|
||||
systemTypeName: Util.getSystemTypeInfo(systemData.type.id, 'name'),
|
||||
@@ -402,6 +422,8 @@ define([
|
||||
descriptionTextareaClass: config.descriptionTextareaElementClass,
|
||||
descriptionTooltipClass: config.descriptionTextareaTooltipClass,
|
||||
|
||||
shatteredWormholeInfo: shatteredWormholeInfo,
|
||||
|
||||
ajaxConstellationInfoUrl: Init.path.getConstellationData,
|
||||
|
||||
systemConstellationLinkClass: config.constellationLinkClass,
|
||||
|
||||
@@ -7,9 +7,8 @@ define([
|
||||
'app/init',
|
||||
'app/util',
|
||||
'app/render',
|
||||
'config/signature_type',
|
||||
'bootbox'
|
||||
], function($, Init, Util, Render, SignatureType, bootbox) {
|
||||
], function($, Init, Util, Render, bootbox) {
|
||||
'use strict';
|
||||
|
||||
var config = {
|
||||
@@ -171,16 +170,19 @@ define([
|
||||
* Updates a signature table, changes all signatures where name matches
|
||||
* add all new signatures as a row
|
||||
*
|
||||
* @param signatureData
|
||||
* @param signatureDataOrig
|
||||
* @param deleteOutdatedSignatures -> set to "true" if signatures should be deleted that are not included in "signatureData"
|
||||
*/
|
||||
$.fn.updateSignatureTable = function(signatureData, deleteOutdatedSignatures){
|
||||
$.fn.updateSignatureTable = function(signatureDataOrig, deleteOutdatedSignatures){
|
||||
|
||||
// check if table update is allowed
|
||||
if(disableTableUpdate === true){
|
||||
return;
|
||||
}
|
||||
|
||||
// clone signature array because of further manipulation
|
||||
var signatureData = $.extend([], signatureDataOrig);
|
||||
|
||||
// disable update until function is ready;
|
||||
disableTableUpdate = true;
|
||||
|
||||
@@ -241,20 +243,19 @@ define([
|
||||
|
||||
// delete signatures ====================================================
|
||||
if(deleteOutdatedSignatures === true){
|
||||
|
||||
// callback function after row deleted
|
||||
var toggleTableRowCallback = function(tempRowElement){
|
||||
// hide open editable fields on the row before removing them
|
||||
tempRowElement.find('.editable').editable('destroy');
|
||||
|
||||
// delete signature row
|
||||
signatureTableApi.row(tempRowElement).remove().draw();
|
||||
};
|
||||
|
||||
for(var l = 0; l < tableData.length; l++){
|
||||
|
||||
var rowElement = signatureTableApi.row(tableData[l].index).nodes().to$();
|
||||
|
||||
rowElement.toggleTableRow(function(tempRowElement){
|
||||
|
||||
// hide open editable fields on the row before removing them
|
||||
tempRowElement.find('.editable').editable('destroy');
|
||||
|
||||
// delete signature row
|
||||
signatureTableApi.row(tempRowElement).remove().draw();
|
||||
});
|
||||
|
||||
|
||||
rowElement.toggleTableRow(toggleTableRowCallback);
|
||||
notificationCounter.deleted++;
|
||||
}
|
||||
}
|
||||
@@ -432,6 +433,14 @@ define([
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// dialog shown event
|
||||
signatureReaderDialog.on('shown.bs.modal', function(e) {
|
||||
// set focus on sig-input textarea
|
||||
signatureReaderDialog.find('textarea').focus();
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
@@ -453,6 +462,9 @@ define([
|
||||
if(signatureData.length > 0){
|
||||
// save signature data
|
||||
|
||||
// lock update function until request is finished
|
||||
disableTableUpdate = true;
|
||||
|
||||
// lock copy during request (prevent spamming (ctrl + c )
|
||||
disableCopyFromClipboard = true;
|
||||
|
||||
@@ -466,6 +478,8 @@ define([
|
||||
data: requestData,
|
||||
dataType: 'json'
|
||||
}).done(function(responseData){
|
||||
disableTableUpdate = false;
|
||||
|
||||
// updates table with new/updated signature information
|
||||
moduleElement.updateSignatureTable(responseData.signatures, false);
|
||||
}).fail(function( jqXHR, status, error) {
|
||||
@@ -473,6 +487,7 @@ define([
|
||||
Util.showNotify({title: jqXHR.status + ': Update signatures', text: reason, type: 'warning'});
|
||||
$(document).setProgramStatus('problem');
|
||||
}).always(function() {
|
||||
disableTableUpdate = false;
|
||||
disableCopyFromClipboard = false;
|
||||
});
|
||||
}
|
||||
@@ -681,7 +696,7 @@ define([
|
||||
|
||||
var selectedRows = getSelectedRows(signatureTable);
|
||||
|
||||
bootbox.confirm('Delete ' + selectedRows.length + ' signature?', function(result) {
|
||||
bootbox.confirm('Delete ' + selectedRows.data().length + ' signature?', function(result) {
|
||||
if(result){
|
||||
deleteSignatures(selectedRows);
|
||||
}
|
||||
@@ -1787,6 +1802,7 @@ define([
|
||||
*/
|
||||
var getSelectedRows = function(table){
|
||||
var tableApi = table.api();
|
||||
|
||||
var selectedRows = tableApi.rows('.selected');
|
||||
|
||||
return selectedRows;
|
||||
|
||||
@@ -522,7 +522,6 @@ define([
|
||||
};
|
||||
|
||||
requirejs(['text!templates/tooltip/character_info.html', 'mustache'], function(template, Mustache) {
|
||||
|
||||
var content = Mustache.render(template, data);
|
||||
|
||||
element.popover({
|
||||
@@ -541,13 +540,46 @@ define([
|
||||
// set new popover content
|
||||
var popover = element.data('bs.popover');
|
||||
popover.options.content = content;
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* add a wormhole tooltip with wh specific data to elements
|
||||
* @param tooltipData
|
||||
* @returns {*}
|
||||
*/
|
||||
$.fn.addWormholeInfoTooltip = function(tooltipData){
|
||||
return this.each(function() {
|
||||
var element = $(this);
|
||||
|
||||
requirejs(['text!templates/tooltip/wormhole_info.html', 'mustache'], function (template, Mustache) {
|
||||
var content = Mustache.render(template, tooltipData);
|
||||
|
||||
element.popover({
|
||||
placement: 'top',
|
||||
html: true,
|
||||
trigger: 'hover',
|
||||
content: '',
|
||||
container: 'body',
|
||||
title: tooltipData.name +
|
||||
'<span class="pull-right ' + tooltipData.class +'">' + tooltipData.security + '</span>',
|
||||
delay: {
|
||||
show: 250,
|
||||
hide: 0
|
||||
}
|
||||
});
|
||||
|
||||
// set new popover content
|
||||
var popover = element.data('bs.popover');
|
||||
popover.options.content = content;
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* display a custom message (info/warning/error) to a container element
|
||||
* check: $.fn.showFormMessage() for an other way of showing messages
|
||||
@@ -1334,6 +1366,9 @@ define([
|
||||
case '0.0':
|
||||
areaId = 12;
|
||||
break;
|
||||
case 'SH':
|
||||
areaId = 13;
|
||||
break;
|
||||
default:
|
||||
// w-space
|
||||
for(var i = 1; i <= 6; i++){
|
||||
|
||||
10
package.json
10
package.json
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "pathfinder-eve",
|
||||
"version": "0.0.10",
|
||||
"engines" : {
|
||||
"node" : "4.0.x"
|
||||
"engines": {
|
||||
"node": "4.0.x"
|
||||
},
|
||||
"description": "Pathfinder is a system mapping tool for EVE ONLINE",
|
||||
"main": "index.php",
|
||||
@@ -12,12 +12,12 @@
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.0",
|
||||
"gulp-clean": "^0.3.1",
|
||||
"gulp-if": "^1.2.5",
|
||||
"gulp-if": "^2.0.0",
|
||||
"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": "^2.9.1-rc1",
|
||||
"jshint-stylish": "^2.0.1",
|
||||
"run-sequence": "^1.1.2"
|
||||
},
|
||||
@@ -39,7 +39,7 @@
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/exodus4d/pathfinder/issues",
|
||||
"email" : "pathfinder@exodus4d.de"
|
||||
"email": "pathfinder@exodus4d.de"
|
||||
},
|
||||
"homepage": "https://github.com/exodus4d/pathfinder#readme",
|
||||
"private": true
|
||||
|
||||
123
pathfinder.sql
123
pathfinder.sql
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15
public/js/v0.0.16/app/landingpage.js
Normal file
15
public/js/v0.0.16/app/landingpage.js
Normal file
File diff suppressed because one or more lines are too long
1
public/js/v0.0.16/app/landingpage.js.map
Normal file
1
public/js/v0.0.16/app/landingpage.js.map
Normal file
File diff suppressed because one or more lines are too long
34
public/js/v0.0.16/app/mappage.js
Normal file
34
public/js/v0.0.16/app/mappage.js
Normal file
File diff suppressed because one or more lines are too long
1
public/js/v0.0.16/app/mappage.js.map
Normal file
1
public/js/v0.0.16/app/mappage.js.map
Normal file
File diff suppressed because one or more lines are too long
2
public/js/v0.0.16/app/notification.js
Normal file
2
public/js/v0.0.16/app/notification.js
Normal file
File diff suppressed because one or more lines are too long
1
public/js/v0.0.16/app/notification.js.map
Normal file
1
public/js/v0.0.16/app/notification.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -224,10 +224,10 @@
|
||||
<blockquote>
|
||||
<p>
|
||||
API Key(s) are required to use <em class="pf-brand">pathfinder</em>.
|
||||
Don't have one? - Create a new key with an empty 'Access Mask' (0).
|
||||
Don't have one? - Create a new key with an empty 'Access Mask' (8).
|
||||
</p>
|
||||
<small>Get your new/custom API Key from
|
||||
<a href="https://support.eveonline.com/api/Key/CreatePredefined/8/0/" target="_blank">here</a>
|
||||
<a href="https://community.eveonline.com/support/api-key/CreatePredefined?accessMask=8" target="_blank">here</a>
|
||||
and come back to this page.
|
||||
</small>
|
||||
</blockquote>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="form_result">Scan result</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea style="resize: vertical" rows="3" id="form_result" name="clipboard" class="form-control custom-scroll"></textarea>
|
||||
<textarea style="resize: vertical" rows="3" id="form_result" name="clipboard" class="form-control custom-scroll" autofocus></textarea>
|
||||
<span class="help-block">
|
||||
Copy and paste signatures from your probe scanning window.
|
||||
Hit <kbd>ctrl</kbd> + <kbd>c</kbd> (for copy)
|
||||
|
||||
@@ -87,12 +87,22 @@
|
||||
{{/effectName}}
|
||||
{{#system.statics}}
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="text-right pf-help {{wormholePrefixClass}}{{name}}">
|
||||
<i class="fa fa-fw fa-question-circle"></i>
|
||||
</td>
|
||||
<td>Static</td>
|
||||
<td class="text-right">{{name}}</td>
|
||||
<td class="text-right {{class}}">{{security}}</td>
|
||||
</tr>
|
||||
{{/system.statics}}
|
||||
{{#shatteredWormholeInfo}}
|
||||
<tr>
|
||||
<td class="text-right pf-help"></td>
|
||||
<td>Shattered System</td>
|
||||
<td class="text-right pf-font-capitalize {{securityClass}}">Unknown statics</td>
|
||||
<td class="text-right"></td>
|
||||
</tr>
|
||||
{{/shatteredWormholeInfo}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
27
public/templates/tooltip/wormhole_info.html
Normal file
27
public/templates/tooltip/wormhole_info.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<table>
|
||||
{{#massTotal}}
|
||||
<tr>
|
||||
<td>Max Stable Mass</td>
|
||||
<td class="text-right">{{format}}</td>
|
||||
</tr>
|
||||
{{/massTotal}}
|
||||
{{#massIndividual}}
|
||||
<tr>
|
||||
<td>Max Jump Mass</td>
|
||||
<td class="text-right">{{format}}</td>
|
||||
</tr>
|
||||
{{/massIndividual}}
|
||||
{{#massRegeneration}}
|
||||
<tr>
|
||||
<td>Max Mass Regeneration</td>
|
||||
<td class="text-right">{{format}}</td>
|
||||
</tr>
|
||||
{{/massRegeneration}}
|
||||
{{#maxStableTime}}
|
||||
<tr>
|
||||
<td>Max Lifetime</td>
|
||||
<td class="text-right">{{format}}</td>
|
||||
</tr>
|
||||
{{/maxStableTime}}
|
||||
</table>
|
||||
|
||||
@@ -530,26 +530,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-offset-3 col-xs-12 col-sm-6">
|
||||
<h4><i class="fa fa-fw fa-angle-double-right"></i>Rules for beta testing phase</h4>
|
||||
<ul class="fa-ul pf-landing-list">
|
||||
<li><i></i>Any abuse of following rules may result in server ban!</li>
|
||||
<li><i></i>You need a valid Registration Key (invite mode is active)</li>
|
||||
<li>
|
||||
<ul class="fa-ul">
|
||||
<li><i></i>The number of keys is limited and will be increased continuously</li>
|
||||
<li><i></i>Keys are bound to your unique Email address</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><i></i>Do not use it as your main corp/ally wide mapping tool (for now)</li>
|
||||
<li>
|
||||
<ul class="fa-ul">
|
||||
<li><i></i>There might be security bugs that will be found/fixed during beta testing</li>
|
||||
<li><i></i>At the beginning of the testing period it is simpler to find/reproduce bugs with a lower number of clients</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><i></i>You can create a fresh CCP API Key (limited access) for registration</li>
|
||||
<li><i></i>Please help testing and report any problem/bug you find</li>
|
||||
<li>
|
||||
|
||||
@@ -559,6 +559,10 @@ select:active, select:hover {
|
||||
color: $blue;
|
||||
}
|
||||
|
||||
.pf-system-sec-unknown{
|
||||
color: $indigo;
|
||||
}
|
||||
|
||||
// system status ======================================================
|
||||
|
||||
.pf-system-status-friendly{
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
// system info table
|
||||
.pf-system-info-table{
|
||||
font-size: 11px;
|
||||
white-space: nowrap
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user