2018-05-22 10:11:50 +02:00
var statusMarketTrends = [ ] ;
var statusGlobalSettings = [ ] ;
var statusSingleMarketSettings = [ ] ;
var checkedMTButtons = false ;
var checkedGSButtons = false ;
var checkedSMSButtons = false ;
const GSStandardTriggerTemplate = ( { settingType , settingName , trendName , marketTrends , minChange , maxChange } ) => `
< div class = "form-group row" >
< div class = "col-md-4" >
< select name = "MarketAnalyzer_${settingType}_${settingName}|Trigger_${trendName}|MarketTrendName" class = "form-control" >
$ { marketTrends }
< / s e l e c t >
< span class = "help-block" > < small > Market Trend name < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-3" >
< input type = "text" class = "form-control" placeholder = "MinChange in %" name = "MarketAnalyzer_${settingType}_${settingName}|Trigger_${trendName}|MinChange" value = "${minChange}" >
2018-12-19 15:40:44 +01:00
< span class = "help-block" > < small > Min . trend change % - < a href = "https://github.com/PTMagicians/PTMagic/wiki/MinChange-&-MaxChange" target = "_blank" > Read the Wiki ! < / a > < / s m a l l > < / s p a n >
2018-05-22 10:11:50 +02:00
< / d i v >
< div class = "col-md-3" >
< input type = "text" class = "form-control" placeholder = "MaxChange in %" name = "MarketAnalyzer_${settingType}_${settingName}|Trigger_${trendName}|MaxChange" value = "${maxChange}" >
2018-12-19 15:40:44 +01:00
< span class = "help-block" > < small > Max . trend change % - < a href = "https://github.com/PTMagicians/PTMagic/wiki/MinChange-&-MaxChange" target = "_blank" > Read the Wiki ! < / a > < / s m a l l > < / s p a n >
2018-05-22 10:11:50 +02:00
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
const SMSStandardTriggerTemplate = ( { settingType , settingName , trendName , triggerPrefix , marketTrends , marketTrendRelations , minChange , maxChange } ) => `
< div class = "form-group row" >
< div class = "col-md-4" >
< select name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_${trendName}|MarketTrendName" class = "form-control" >
$ { marketTrends }
< / s e l e c t >
< span class = "help-block" > < small > Market Trend name < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-2" >
< select name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_${trendName}|MarketTrendRelation" class = "form-control" >
$ { marketTrendRelations }
< / s e l e c t >
< span class = "help-block" > < small > Market Trend relation < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-2" >
< input type = "text" class = "form-control" placeholder = "MinChange in %" name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_${trendName}|MinChange" value = "${minChange}" >
2018-12-19 15:40:44 +01:00
< span class = "help-block" > < small > Min . trend change % - < a href = "https://github.com/PTMagicians/PTMagic/wiki/MinChange-&-MaxChange" target = "_blank" > Read the Wiki ! < / a > < / s m a l l > < / s p a n >
2018-05-22 10:11:50 +02:00
< / d i v >
< div class = "col-md-2" >
< input type = "text" class = "form-control" placeholder = "MaxChange in %" name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_${trendName}|MaxChange" value = "${maxChange}" >
2018-12-19 15:40:44 +01:00
< span class = "help-block" > < small > Max . trend change % - < a href = "https://github.com/PTMagicians/PTMagic/wiki/MinChange-&-MaxChange" target = "_blank" > Read the Wiki ! < / a > < / s m a l l > < / s p a n >
2018-05-22 10:11:50 +02:00
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
const CoinAgeTriggerTemplate = ( { settingType , settingName , triggerIndex , coinAgeDays } ) => `
< div class = "form-group row" >
< label class = "col-md-4 col-form-label" > Age Days Lower Than < i class = "fa fa-info-circle text-muted" data - toggle = "tooltip" data - placement = "top" title = "The max. age of a coin in days to match this trigger." > < / i > < / l a b e l >
< div class = "col-md-6" >
< input type = "text" class = "form-control" placeholder = "Days" name = "MarketAnalyzer_${settingType}_${settingName}|Trigger_AgeDaysLowerThan${triggerIndex}" value = "${coinAgeDays}" >
< span class = "help-block" > < small > Days since a coin was added to an exchange . < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
const SMS24hVolumeTriggerTemplate = ( { settingType , settingName , triggerIndex , triggerPrefix , mainMarket , min24hVolume , max24hVolume } ) => `
< div class = "form-group row" >
< label class = "col-md-4 col-form-label" > 24 h Volume in $ { mainMarket } < i class = "fa fa-info-circle text-muted" data - toggle = "tooltip" data - placement = "top" title = "The 24h volume of a single coin in ${mainMarket}." > < / i > < / l a b e l >
< div class = "col-md-3" >
< input type = "text" class = "form-control" placeholder = "Min 24h Volume" name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_24hVolume${triggerIndex}|Min24hVolume" value = "${min24hVolume}" >
< span class = "help-block" > < small > Min . 24 h Volume < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-3" >
< input type = "text" class = "form-control" placeholder = "Max 24h Volume" name = "MarketAnalyzer_${settingType}_${settingName}|${triggerPrefix}Trigger_24hVolume${triggerIndex}|Max24hVolume" value = "${max24hVolume}" >
< span class = "help-block" > < small > Max . 24 h Volume < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
const SMSHoursActiveTriggerTemplate = ( { settingType , settingName , triggerIndex , hoursSinceTriggered } ) => `
< div class = "form-group row" >
< label class = "col-md-4 col-form-label" > Hours Since Triggered < i class = "fa fa-info-circle text-muted" data - toggle = "tooltip" data - placement = "top" title = "The number of hours after this setting gets off triggered." > < / i > < / l a b e l >
< div class = "col-md-6" >
< input type = "text" class = "form-control" placeholder = "Hours" name = "MarketAnalyzer_${settingType}_${settingName}|OffTrigger_HoursSinceTriggered${triggerIndex}" value = "${hoursSinceTriggered}" >
< span class = "help-block" > < small > Number of hours the setting will be max . active . < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
const PropertyTemplate = ( { settingType , settingName , propertyType , propertyKey , propertyKeySimple , value , valueModes } ) => `
< div class = "form-group row" >
< div class = "col-md-4" >
< input type = "text" class = "form-control" placeholder = "Profit Trailer setting" name = "MarketAnalyzer_${settingType}_${settingName}|${propertyType}Property_${propertyKeySimple}" value = "${propertyKeySimple}" >
< span class = "help-block" > < small > Any < a href = "https://wiki.profittrailer.com/doku.php?id=${propertyType}.properties" target = "_blank" > variable from PT ' s settings < / a > m a y b e u s e d ! < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-3" >
< input type = "text" class = "form-control" placeholder = "Value" name = "MarketAnalyzer_${settingType}_${settingName}|${propertyType}Property_${propertyKeySimple}|Value" value = "${value}" >
< span class = "help-block" > < small > The value for this setting . < / s m a l l > < / s p a n >
< / d i v >
< div class = "col-md-3" >
< select name = "MarketAnalyzer_${settingType}_${settingName}|${propertyType}Property_${propertyKeySimple}|ValueMode" class = "form-control" >
$ { valueModes }
< / s e l e c t >
2018-12-19 15:40:44 +01:00
< span class = "help-block" > < small > Value mode - < a href = "https://github.com/PTMagicians/PTMagic/wiki/Writing-Properties" target = "_blank" > Read the Wiki ! < / a > < / s m a l l > < / s p a n >
2018-05-22 10:11:50 +02:00
< / d i v >
< div class = "col-md-2" > < button class = "btn btn-danger btn-custom btn-block text-uppercase waves-effect waves-light btn-remove-parentrow-${settingType}-${settingName}" > Remove < / b u t t o n > < / d i v >
< / d i v >
` ;
function checkMTMoveButtons ( ) {
if ( ! checkedMTButtons ) {
$ ( '.btn-move-MT' ) . each ( function ( index ) {
var dataTarget = $ ( this ) . data ( 'datatarget' ) ;
var dataDirection = $ ( this ) . data ( 'datadirection' ) ;
var currentElement = $ ( '#' + dataTarget ) . closest ( '.settings-markettrend' ) ;
if ( dataDirection === 'up' ) {
if ( $ ( currentElement ) . is ( '.settings-markettrend:first-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
}
} else if ( dataDirection === 'down' ) {
if ( $ ( currentElement ) . is ( '.settings-markettrend:last-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
}
}
} ) ;
}
checkedMTButtons = true ;
}
function checkGSMoveButtons ( ) {
if ( ! checkedGSButtons ) {
$ ( '.btn-move-GS' ) . each ( function ( index ) {
var dataTarget = $ ( this ) . data ( 'datatarget' ) ;
var dataDirection = $ ( this ) . data ( 'datadirection' ) ;
var currentElement = $ ( '#' + dataTarget ) . closest ( '.settings-globalsetting' ) ;
if ( dataDirection === 'up' ) {
if ( $ ( currentElement ) . is ( '.settings-globalsetting:first-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
}
} else if ( dataDirection === 'down' ) {
if ( $ ( currentElement ) . is ( '.settings-globalsetting:last-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
// Get next element
var nextElement = $ ( currentElement ) . next ( '.settings-globalsetting' ) . find ( 'div' ) ;
var nextElementId = $ ( nextElement ) . attr ( 'id' ) . toLowerCase ( ) . replace ( 'globalsetting_' , '' ) ;
if ( nextElementId . startsWith ( 'default' ) ) {
// Hide "Move Down" button when the next setting is the default setting
$ ( this ) . addClass ( 'hidden' ) ;
}
}
}
} ) ;
}
checkedGSButtons = true ;
}
function checkSMSMoveButtons ( ) {
if ( ! checkedSMSButtons ) {
$ ( '.btn-move-SMS' ) . each ( function ( index ) {
var dataTarget = $ ( this ) . data ( 'datatarget' ) ;
var dataDirection = $ ( this ) . data ( 'datadirection' ) ;
var currentElement = $ ( '#' + dataTarget ) . closest ( '.settings-singlemarketsetting' ) ;
if ( dataDirection === 'up' ) {
if ( $ ( currentElement ) . is ( '.settings-singlemarketsetting:first-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
}
} else if ( dataDirection === 'down' ) {
if ( $ ( currentElement ) . is ( '.settings-singlemarketsetting:last-child' ) ) {
$ ( this ) . addClass ( 'hidden' ) ;
} else {
$ ( this ) . removeClass ( 'hidden' ) ;
}
}
} ) ;
}
checkedSMSButtons = true ;
}
function checkBuildStatus ( ) {
var buildCompleted = true ;
for ( key in statusMarketTrends ) {
if ( ! statusMarketTrends [ key ] ) {
buildCompleted = false ;
}
}
if ( buildCompleted ) {
for ( key in statusGlobalSettings ) {
if ( ! statusGlobalSettings [ key ] ) {
buildCompleted = false ;
}
}
}
if ( buildCompleted ) {
for ( key in statusSingleMarketSettings ) {
if ( ! statusSingleMarketSettings [ key ] ) {
buildCompleted = false ;
}
}
}
if ( buildCompleted ) {
$ ( '#div-loading-settings' ) . addClass ( 'hidden' ) ;
$ ( '#div-save-settings' ) . removeClass ( 'hidden' ) ;
checkMTMoveButtons ( ) ;
checkGSMoveButtons ( ) ;
checkSMSMoveButtons ( ) ;
}
}
$ . fn . buildMarketTrendSettings = function ( ) {
return this . each ( function ( index ) {
var element = $ ( this ) ;
var marketTrendName = $ ( this ) . data ( 'trendname' ) ;
var rootUrl = $ ( this ) . data ( 'rooturl' ) ;
if ( marketTrendName !== '' ) {
statusMarketTrends [ marketTrendName ] = false ;
}
$ ( this ) . load ( rootUrl + '_get/SettingsMarketTrends?mt=' + encodeURIComponent ( marketTrendName ) , '' , function ( responseText , textStatus , XMLHttpRequest ) {
if ( textStatus === 'error' ) {
$ . Notification . notify ( 'error' , 'top left' , 'Build MarketTrendSettings failed!' , 'PTMagic Monitor failed to build MarketTrendSettings.' )
} else {
statusMarketTrends [ marketTrendName ] = true ;
checkBuildStatus ( ) ;
$ ( this ) . removeClass ( 'new' ) ;
$ ( '[data-toggle="tooltip"]' ) . tooltip ( ) ;
var elems = Array . prototype . slice . call ( document . querySelectorAll ( '[data-plugin="switchery"][data-switchery="false"]' ) ) ;
elems . forEach ( function ( html ) {
var switchery = new Switchery ( html , { size : 'small' } ) ;
} ) ;
}
} ) ;
} ) ;
} ;
$ . fn . buildGlobalSettings = function ( ) {
return this . each ( function ( index ) {
var element = $ ( this ) ;
var settingName = $ ( this ) . data ( 'settingname' ) ;
var rootUrl = $ ( this ) . data ( 'rooturl' ) ;
if ( settingName !== '' ) {
statusGlobalSettings [ settingName ] = false ;
}
$ ( this ) . load ( rootUrl + '_get/SettingsGlobalSettings?gs=' + encodeURIComponent ( settingName ) , '' , function ( responseText , textStatus , XMLHttpRequest ) {
if ( textStatus === 'error' ) {
$ . Notification . notify ( 'error' , 'top left' , 'Build GlobalSettings failed!' , 'PTMagic Monitor failed to build GlobalSettings.' )
} else {
statusGlobalSettings [ settingName ] = true ;
checkBuildStatus ( ) ;
$ ( this ) . removeClass ( 'new' ) ;
$ ( '[data-toggle="tooltip"]' ) . tooltip ( ) ;
var elems = Array . prototype . slice . call ( document . querySelectorAll ( '[data-plugin="switchery"][data-switchery="false"]' ) ) ;
elems . forEach ( function ( html ) {
var switchery = new Switchery ( html , { size : 'small' } ) ;
} ) ;
}
} ) ;
} ) ;
} ;
$ . fn . buildSingleMarketSettings = function ( ) {
return this . each ( function ( index ) {
var element = $ ( this ) ;
var settingName = $ ( this ) . data ( 'settingname' ) ;
var rootUrl = $ ( this ) . data ( 'rooturl' ) ;
if ( settingName !== '' ) {
statusSingleMarketSettings [ settingName ] = false ;
}
$ ( this ) . load ( rootUrl + '_get/SettingsSingleMarketSettings?gs=' + encodeURIComponent ( settingName ) , '' , function ( responseText , textStatus , XMLHttpRequest ) {
if ( textStatus === 'error' ) {
$ . Notification . notify ( 'error' , 'top left' , 'Build SingleMarketSettings failed!' , 'PTMagic Monitor failed to build SingleMarketSettings.' )
} else {
statusSingleMarketSettings [ settingName ] = true ;
checkBuildStatus ( ) ;
$ ( this ) . removeClass ( 'new' ) ;
$ ( '[data-toggle="tooltip"]' ) . tooltip ( ) ;
var elems = Array . prototype . slice . call ( document . querySelectorAll ( '[data-plugin="switchery"][data-switchery="false"]' ) ) ;
elems . forEach ( function ( html ) {
var switchery = new Switchery ( html , { size : 'small' } ) ;
} ) ;
}
} ) ;
} ) ;
} ;