window.addEventListener( 'message', function( event ) {
if ( event.origin.indexOf( 'webdisclosure' ) > 0 ) {
var h = +event.data || 0;
console.log( 'SymexPostMessage: ' + h );
if ( h > 0 ) {
jQuery( '.symex-iframe' ).css( 'height', h );
}
}
} );
var globalLib = {
toNumber: function( price ) {
price = ( price || 0 ).toString().replace( ',', '.' );
price = price.toString().replace( eval( '/\\s+/g' ), '' );
price = parseFloat( price ) || 0;
if ( price < 0 ) {
price *= -1;
}
return price;
},
googleAnalytics: function( url ) {
if ( typeof ga !== 'undefined' ) {
ga( 'send', 'pageview', {
'page': url
} );
}
}
};
/*
* Config the app
*/
var globalApp = angular.module( 'globalApp', [] );
globalApp.config( function( $locationProvider ) {
$locationProvider.html5Mode( false );
} );
/*
* Components
*/
globalApp.component( 'page404', {
templateUrl: '/components/404.html',
controller: [ '$location', function( $location ) {
globalLib.googleAnalytics( $location.url() );
} ]
} );
globalApp.component( 'spSharePriceMarkets', {
templateUrl: '/components/sp2/share-price-markets.html',
controller: [ '$http', '$location', '$scope',
function( $http, $location, $scope ) {
var this_ = this;
this_.data = {};
this_.data.market = null;
this_.data.index = null;
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/share-price-markets.php', $location.search() ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.markets = response.data.markets;
this_.indexes = response.data.indexes;
this_.stocks = response.data.stocks;
this_.urls = response.data.urls;
this_.pg = response.data.pg;
this_.data.market = response.data.market_;
this_.data.index = response.data.index_;
}
} );
}
this_.setMarket = function( market ) {
this_.data.market = market;
var p = $location.search();
p.market = market;
p.index = null;
p.page = null;
$location.search( p );
};
this_.setIndex = function() {
var p = $location.search();
p.index = this_.data.index;
p.market = null;
p.page = null;
$location.search( p );
};
this_.setPage = function( page ) {
var p = $location.search();
p.page = page;
$location.search( p );
// $( window ).scrollTop( 0 );
};
$scope.$on( '$locationChangeSuccess', function() {
loadData();
globalLib.googleAnalytics( $location.url() );
} );
} ]
} );
globalApp.component( 'spWgAwards', {
templateUrl: '/components/sp2/wg-awards.html',
bindings: {
title: '<',
varType: '@'
},
controller: [ '$http',
function( $http ) {
var this_ = this;
this_.loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-awards.php', {
varType: this_.varType
} ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.stocks = response.data.stocks;
this_.urls = response.data.urls;
}
} );
};
// Go...
this_.$onInit = function() {
this_.loadData();
};
} ]
} );
globalApp.component( 'spWgMarketMap', {
templateUrl: '/components/sp2/wg-market-map.html',
bindings: {
market: '@',
title: '<'
},
controller: [ '$http',
function( $http ) {
var this_ = this;
this_.loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-market-map.php', {
market: this_.market
} ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.stocks = response.data.stocks;
this_.urls = response.data.urls;
}
} );
};
// Go...
this_.$onInit = function() {
this_.loadData();
};
} ]
} );
globalApp.component( 'spWgIndexes', {
templateUrl: '/components/sp2/wg-indexes.html',
bindings: {
title: '<'
},
controller: [ '$http', '$timeout',
function( $http, $timeout ) {
var this_ = this;
this_.isLoading = null;
this_.stock_ = null;
var tmpTicker = null;
var tmpPays = null;
var tmpWidth = null;
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-indexes.php' ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.stocks = response.data.stocks;
$timeout( function() {
this_.chartBeta( this_.stocks[ 0 ] );
}, 100 );
}
} );
};
this_.chartBeta = function( stock ) {
var ticker = null;
var pays = null;
var obj = $( '.wg-indexes-chart' );
if ( stock ) {
this_.stock_ = stock;
ticker = tmpTicker = stock.ticker;
pays = tmpPays = stock.pays;
tmpWidth = null;
}
else {
ticker = tmpTicker;
pays = tmpPays;
}
if ( obj.length !== 1 ) {
return false;
}
if ( tmpWidth && tmpWidth === obj.width() ) {
return;
}
var height = 160;
var width = obj.width();
tmpWidth = width;
if ( width < 180 ) {
return;
}
var url = '';
url += '//charts.symex.be/intraday/chart.php';
url += '?customer=lesoir';
url += '&period=intra';
url += '&qty=1';
url += '&lang=fr';
url += '&height=' + height;
url += '&width=' + width;
url += '&ticker=' + ticker + ',' + pays;
var chart = '';
chart += '';
obj.html( chart );
};
this_.$onInit = function() {
loadData();
};
this_.$postLink = function() {
$( window ).on( 'resize.spWgIndexesChart', function() {
this_.chartBeta();
} );
};
this_.$onDestroy = function() {
$( window ).off( 'resize.spWgIndexesChart' );
};
} ]
} );
globalApp.component( 'spWgCurrencies', {
templateUrl: '/components/sp2/wg-currencies.html',
bindings: {
title: '<'
},
controller: [ '$http', '$location',
function( $http, $location ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.mainCurrs = null;
this_.urls = null;
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-currencies.php', $location.search() ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.mainCurrs = response.data.mainCurrs;
this_.urls = response.data.urls;
}
} );
};
this_.$onInit = function() {
loadData();
};
} ]
} );
globalApp.component( 'spWgCurrsConvertor', {
templateUrl: '/components/sp2/wg-currs-convertor.html',
bindings: {
title: '<'
},
controller: [ '$http', '$location',
function( $http, $location ) {
var this_ = this;
this_.baseCurrency = null;
this_.calcCurrs = null;
this_.isLoading = null;
this_.isSending = null;
this_.lang = null;
this_.urls = null;
this_.calcData = {};
this_.calcData.currA = 'EUR';
this_.calcData.currB = 'USD';
this_.calcData.value = 1;
this_.calcRes = {};
this_.calcRes.coef = null;
this_.calcRes.total = null;
this_.chartDefs = {};
this_.chartDefs.tickPays = null;
this_.chartDefs.width = null;
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-currs-convertor.php' ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.baseCurrency = response.data.baseCurrency;
this_.calcCurrs = response.data.calcCurrs;
this_.lang = response.data.lang;
this_.urls = response.data.urls;
this_.calcCoef();
}
} );
};
this_.calcCoef = function() {
if ( this_.isSending ) {
return;
}
this_.isSending = true;
$http //
.post( '/rest/sp2/_calc-currencies.php', this_.calcData ) //
.then( function( response ) {
this_.isSending = false;
this_.calcRes.coef = response.data.coef;
this_.calcRes.total = response.data.total;
} );
this_.chartBeta( this_.calcCurrs[ this_.calcData.currB ].ticker );
};
this_.chartBeta = function( tickPays ) {
var obj = $( '.wg-currs-convertor-chart' );
if ( obj.length !== 1 ) {
return false;
}
if ( tickPays === null ) {
return false;
}
if ( tickPays ) {
this_.chartDefs.tickPays = tickPays;
this_.chartDefs.width = null;
}
if ( this_.chartDefs.width === obj.width() ) {
return;
}
this_.chartDefs.height = 160;
this_.chartDefs.width = obj.width();
if ( this_.chartDefs.width < 180 ) {
return;
}
var url = '';
url += '//charts.symex.be/historical/chart.php';
url += '?customer=lesoir';
url += '&period=years';
url += '&qty=3';
url += '&lang=fr';
url += '&height=' + this_.chartDefs.height;
url += '&width=' + this_.chartDefs.width;
url += '&ticker=' + this_.chartDefs.tickPays;
var chart = '';
chart += '';
obj.html( chart );
};
this_.$onInit = function() {
loadData();
};
this_.$postLink = function() {
$( window ).on( 'resize.spWgCuursConvertorChart', function() {
this_.chartBeta();
} );
};
this_.$onDestroy = function() {
$( window ).off( 'resize.spWgCuursConvertorChart' );
};
} ]
} );
globalApp.component( 'spWgCommodities', {
templateUrl: '/components/sp2/wg-commodities.html',
bindings: {
title: '<'
},
controller: [ '$http', '$location',
function( $http, $location ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.mainComms = null;
this_.urls = null;
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-commodities.php' ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.mainComms = response.data.mainComms;
this_.urls = response.data.urls;
}
} );
};
this_.$onInit = function() {
loadData();
};
} ]
} );
globalApp.component( 'spWgMarquee', {
templateUrl: '/components/sp2/wg-marquee.html?v20190306',
controller: [ '$http',
function( $http ) {
var this_ = this;
this_.lang = null;
this_.stocksA = null;
this_.stocksB = null;
this_.urls = null;
this_.loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-marquee.php', {
varType: this_.varType
} ) //
.then( function( response ) {
this_.isLoading = false;
if ( response.data.lang ) {
this_.lang = response.data.lang;
this_.stocksA = response.data.stocksA;
this_.stocksB = response.data.stocksB;
this_.urls = response.data.urls;
}
} );
};
// Go...
this_.$onInit = function() {
this_.loadData();
};
} ]
} );
globalApp.component( 'spCompanyData', {
templateUrl: '/components/sp2/company-data.html?v20190306',
bindings: {
ticker: '@'
},
controller: [ '$http', '$location', '$timeout',
function( $http, $location, $timeout ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.stock = null;
this_.stockHisto = null;
this_.urls = null;
var chart = function( ticker, pays ) {
var obj = $( '[data-role=stock-data-chart]' );
if ( obj.length !== 1 ) {
return false;
}
var height = 300;
var width = obj.width();
if ( obj.data( 'width' ) == width ) {
return true;
}
obj.html( ' ' );
var url = '';
url += '//charts.symex.be/historical/chart.php';
url += '?customer=lesoir';
url += '&period=months';
url += '&qty=1';
url += '&lang=fr';
url += '&height=' + height;
url += '&width=' + width;
url += '&ticker=' + ticker + ',' + pays;
var chart = '';
chart += '';
obj.data( 'width', width );
obj.html( chart );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/company-data.php', {
ticker: this_.ticker
} ) //
.then( function( response ) {
this_.isLoading = false;
this_.lang = response.data.lang;
this_.stock = response.data.stock;
this_.stockHisto = response.data.stockHisto;
this_.urls = response.data.urls;
// Run the chart
if ( this_.stock ) {
$timeout( function() {
chart( this_.stock.ticker, this_.stock.pays );
}, 0 );
}
} );
};
this_.$onInit = function() {
loadData();
globalLib.googleAnalytics( $location.url() );
};
this_.$postLink = function() {
$( window ).on( 'resize.stockDataChart', function() {
if ( this_.stock ) {
chart( this_.stock.ticker, this_.stock.pays );
}
} );
};
this_.$onDestroy = function() {
$( window ).off( 'resize.stockDataChart' );
};
} ]
} );
globalApp.component( 'spCompanyChart', {
templateUrl: '/components/sp2/company-chart.html?v20190306',
bindings: {
ticker: '@'
},
controller: [ '$http', '$location', '$timeout',
function( $http, $location, $timeout ) {
var this_ = this;
this_.chartSettings = null;
this_.isLoading = null;
this_.lang = null;
this_.stock = null;
this_.urls = null;
var chart = function( reload ) {
var obj = $( '[data-role=stock-data-chart]' );
if ( obj.length !== 1 ) {
return false;
}
var width = obj.width();
var height = this_.chartSettings.height;
var ticker = this_.chartSettings.ticker;
if ( width < 500 ) {
height = this_.chartSettings.heightSmart;
}
if ( !reload && this_.chartSettings.width == width ) {
return true;
}
for ( var i in this_.chartSettings.ticks ) {
if ( this_.chartSettings.ticks[ i ].isSet ) {
ticker += ( ';' + this_.chartSettings.ticks[ i ].code );
}
}
var baseUrl = this_.chartSettings.histoUrl;
if ( this_.chartSettings.period === 'intra' || //
this_.chartSettings.period === 'week' ) {
baseUrl = this_.chartSettings.intraUrl;
}
obj.html( ' ' );
var url = '';
url += baseUrl;
url += '?customer=' + this_.chartSettings.customer;
url += '&period=' + this_.chartSettings.period;
url += '&qty=' + this_.chartSettings.qty;
url += '&vol=' + this_.chartSettings.vol;
url += '&sum=' + ( width < 500 ? 0 : this_.chartSettings.sum );
url += '&lang=' + this_.chartSettings.lang;
url += '&height=' + height;
url += '&width=' + width;
url += '&ticker=' + ticker;
var chart = '';
chart += '';
this_.chartSettings.width = width;
obj.html( chart );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/company-chart.php', {
ticker: this_.ticker
} ) //
.then( function( response ) {
this_.chartSettings = response.data.chartSettings;
this_.isLoading = false;
this_.lang = response.data.lang;
this_.stock = response.data.stock;
this_.urls = response.data.urls;
// Run the chart
if ( this_.chartSettings ) {
$timeout( function() {
chart();
}, 0 );
}
} );
};
this_.setCompare = function( event ) {
var obj = $( event.target );
var ticker = obj.data( 'ticker' );
for ( var i in this_.chartSettings.ticks ) {
if ( this_.chartSettings.ticks[ i ].code === ticker ) {
if ( obj.hasClass( 'active' ) ) {
obj.removeClass( 'active' );
this_.chartSettings.ticks[ i ].isSet = false;
}
else {
obj.addClass( 'active' );
this_.chartSettings.ticks[ i ].isSet = true;
}
}
}
chart( true );
};
this_.setChartPeriod = function( event ) {
var obj = $( event.target );
var period = obj.data( 'period' );
var p = period.split( ',' )[ 0 ];
var q = period.split( ',' )[ 1 ];
this_.chartSettings.period = p;
this_.chartSettings.qty = q;
obj.parent().find( 'a' ).removeClass( 'active' );
obj.addClass( 'active' );
chart( true );
};
this_.$onInit = function() {
loadData();
globalLib.googleAnalytics( $location.url() );
};
this_.$postLink = function() {
$( window ).on( 'resize.stockDataChart', function() {
chart();
} );
};
this_.$onDestroy = function() {
$( window ).off( 'resize.stockDataChart' );
};
} ]
} );
globalApp.component( 'spWgSearch', {
templateUrl: '/components/sp2/wg-search.html',
bindings: {
type: '@'
},
controller: [ '$http', //
function( $http ) {
var this_ = this;
this_.data = {};
this_.data.searched = null;
this_.data.type = null;
this_.isLoading = null;
this_.stocks = null;
this_.urls = null;
this_.search = function() {
if ( !this_.data.searched || this_.data.searched.length < 2 ) {
return;
}
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-search.php', this_.data ) //
.then( function( response ) {
this_.isLoading = false;
this_.stocks = response.data.stocks;
this_.urls = response.data.urls;
} );
};
// ! Bindings are available only after init event
this_.$onInit = function() {
this_.data.type = this_.type;
};
} ]
} );
globalApp.component( 'spCommodityData', {
templateUrl: '/components/sp2/commodity-data.html?v20190306',
bindings: {
ticker: '@'
},
controller: [ '$http', '$location', '$timeout',
function( $http, $location, $timeout ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.stock = null;
this_.stockHisto = null;
this_.urls = null;
var chart = function( ticker, pays ) {
var obj = $( '[data-role=commodity-data-chart]' );
if ( obj.length !== 1 ) {
return false;
}
var height = 300;
var width = obj.width();
if ( obj.data( 'width' ) == width ) {
return true;
}
obj.html( ' ' );
var url = '';
url += '//charts.symex.be/historical/chart.php';
url += '?customer=lesoir';
url += '&period=years';
url += '&qty=1';
url += '&lang=fr';
url += '&height=' + height;
url += '&width=' + width;
url += '&ticker=' + ticker + ',' + pays;
var chart = '';
chart += '';
obj.data( 'width', width );
obj.html( chart );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/commodity-data.php', {
ticker: this_.ticker
} ) //
.then( function( response ) {
this_.isLoading = false;
this_.lang = response.data.lang;
this_.stock = response.data.stock;
this_.stockHisto = response.data.stockHisto;
this_.urls = response.data.urls;
// Run the chart
if ( this_.stock ) {
$timeout( function() {
chart( this_.stock.ticker, this_.stock.pays );
}, 0 );
}
} );
};
this_.$onInit = function() {
loadData();
globalLib.googleAnalytics( $location.url() );
};
this_.$postLink = function() {
$( window ).on( 'resize.commodityDataChart', function() {
if ( this_.stock ) {
chart( this_.stock.ticker, this_.stock.pays );
}
} );
};
this_.$onDestroy = function() {
$( window ).off( 'resize.commodityDataChart' );
};
} ]
} );
globalApp.component( 'spCommunications', {
templateUrl: '/components/sp2/communications.html',
controller: [ '$http', '$location', '$sce',
function( $http, $location, $sce ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.urls = null;
this_.toUrl = function( url ) {
return $sce.trustAsResourceUrl( url );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/communications.php' ) //
.then( function( response ) {
this_.isLoading = false;
this_.lang = response.data.lang;
this_.urls = response.data.urls;
} );
};
this_.$onInit = function() {
loadData();
};
} ]
} );
globalApp.component( 'spCommsContent', {
templateUrl: '/components/sp2/comms-content.html',
bindings: {
id: '@',
ticker: '@'
},
controller: [ '$http', '$location', '$sce',
function( $http, $location, $sce ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.newsData = null;
this_.stock = null;
this_.urls = [];
this_.toHtml = function( url ) {
return $sce.trustAsHtml( url );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/comms-content.php', {
id: this_.id,
ticker: this_.ticker
} ) //
.then( function( response ) {
this_.isLoading = false;
this_.lang = response.data.lang;
this_.newsData = response.data.newsData;
this_.stock = response.data.stock;
this_.urls = response.data.urls;
} );
};
this_.$onInit = function() {
loadData();
};
} ]
} );
globalApp.component( 'spCompanyComms', {
templateUrl: '/components/sp2/company-comms.html',
bindings: {
ticker: '@'
},
controller: [ '$http', '$location', '$sce',
function( $http, $location, $sce ) {
var this_ = this;
this_.isLoading = null;
this_.lang = null;
this_.stock = null;
this_.urls = null;
this_.toUrl = function( url ) {
return $sce.trustAsResourceUrl( url );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/company-comms.php', {
ticker: this_.ticker
} ) //
.then( function( response ) {
this_.isLoading = false;
this_.lang = response.data.lang;
this_.stock = response.data.stock;
this_.urls = response.data.urls;
} );
};
this_.$onInit = function() {
loadData();
};
} ]
} );
globalApp.component( 'wgNewsSymex', {
templateUrl: '/components/sp2/wg-news-symex.html',
bindings: {
cntNews: '@',
ticker: '<'
},
controller: [ '$http', '$location', '$scope',
function( $http, $location, $scope ) {
var this_ = this;
this_.curLang = '';
this_.isLoading = false;
this_.lang = null;
this_.news = [];
this_.pg = null;
this_.urls = [];
this_.filter = {
cntNews: 0,
language: '',
page: 0,
ticker: ''
};
this_.setLang = function( lang ) {
// If role = widget
if ( this_.filter.cntNews ) {
this_.filter.language = lang;
this_.filter.page = 0;
loadData();
return;
}
var params = $location.search();
params.language = lang;
params.page = null;
$location.search( params );
};
this_.setPage = function( page ) {
// If role = widget
if ( this_.filter.cntNews ) {
this_.filter.page = page;
var posTop = jQuery( '#partenaire' ).offset().top;
jQuery( window ).scrollTop( posTop );
loadData();
return;
}
var params = $location.search();
params.page = page;
$location.search( params );
var posTop = jQuery( '#partenaire' ).offset().top;
jQuery( window ).scrollTop( posTop );
};
var loadData = function() {
this_.isLoading = true;
$http //
.post( '/rest/sp2/wg-news-symex.php', this_.filter ) //
.then( function( response ) {
this_.curLang = response.data.curLang;
this_.isLoading = false;
this_.lang = response.data.lang;
this_.news = response.data.news;
this_.pg = response.data.pg;
this_.urls = response.data.urls;
} );
};
$scope.$on( '$locationChangeSuccess', function() {
// If role = page
if ( ! this_.filter.cntNews ) {
this_.filter.language = $location.search().language || '';
this_.filter.page = +$location.search().page || 0;
loadData();
}
} );
this_.$onInit = function() {
this_.filter.cntNews = +this_.cntNews || 0;
this_.filter.language = $location.search().language || '';
this_.filter.page = +$location.search().page || 0;
this_.filter.ticker = this_.ticker || '';
loadData();
};
} ]
} );