Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
fea0b6e
New translations messages.pot (Spanish)
ashkanx May 23, 2019
22eeb63
New translations messages.pot (Chinese Simplified)
ashkanx May 23, 2019
44f1782
New translations messages.pot (Chinese Traditional)
ashkanx May 23, 2019
b27d656
New translations messages.pot (Indonesian)
ashkanx May 23, 2019
640e947
New translations messages.pot (Chinese Traditional)
ashkanx May 23, 2019
aa29f69
New translations messages.pot (French)
ashkanx May 23, 2019
b6f0d92
New translations messages.pot (German)
ashkanx May 23, 2019
6b2fce9
New translations messages.pot (Italian)
ashkanx May 23, 2019
06c35c8
New translations messages.pot (Portuguese)
ashkanx May 23, 2019
afc3c28
New translations messages.pot (Russian)
ashkanx May 23, 2019
4af0569
New translations messages.pot (Spanish)
ashkanx May 23, 2019
c5ab664
New translations messages.pot (Vietnamese)
ashkanx May 23, 2019
f5867d6
New translations messages.pot (Spanish)
ashkanx May 23, 2019
6902925
New translations messages.pot (Spanish)
ashkanx May 23, 2019
2a25b96
New translations messages.pot (Spanish)
ashkanx May 23, 2019
75ef333
New translations messages.pot (Spanish)
ashkanx May 23, 2019
73a1883
changed datatype of relevant variables
khalidibrahimio May 30, 2019
4d90c51
removed unnecessary condition
khalidibrahimio May 30, 2019
5ea24a0
changed conditions
khalidibrahimio May 31, 2019
e3f1656
Update viewTransaction.es6
khalidibrahimio May 31, 2019
d8ec3b3
better conditions
khalidibrahimio Jun 7, 2019
b58648d
New translations messages.pot (Russian)
ashkanx Jun 9, 2019
c7746f2
New translations messages.pot (Russian)
ashkanx Jun 9, 2019
25a9bd3
New translations messages.pot (Russian)
ashkanx Jun 9, 2019
a52d7b1
added value-checking function
khalidibrahimio Jun 10, 2019
776dece
Merge branch 'master' of github.com:binary-com/webtrader into transac…
khalidibrahimio Jun 10, 2019
3a6311e
better assignment
khalidibrahimio Jun 10, 2019
a9cd63b
Merge pull request #1469 from Khalidxx/transactions-bug
ashkanx Jun 10, 2019
9985829
fixed barrier issue
khalidibrahimio Jun 11, 2019
06ce7e6
fixed multiple error popup
khalidibrahimio Jun 11, 2019
0ef393d
Merge pull request #1467 from binary-com/CrowdIn
ashkanx Jun 11, 2019
ee14246
stop api call if nothing returned
khalidibrahimio Jun 12, 2019
22f3964
Merge branch 'development' of github.com:binary-com/webtrader into st…
khalidibrahimio Jun 12, 2019
ca29ac3
re-init variable
khalidibrahimio Jun 12, 2019
64519de
backward compatible conditions
khalidibrahimio Jun 12, 2019
1f42841
one more = sign
khalidibrahimio Jun 13, 2019
52f0f49
Merge pull request #1471 from Khalidxx/statement-issue
oskar-binary Jun 14, 2019
e69131b
fixed missing decimal places issue
khalidibrahimio Jun 14, 2019
a27c8a2
es5 only
khalidibrahimio Jun 14, 2019
f2f6922
more es5
khalidibrahimio Jun 14, 2019
4af8de1
nicer looking functions
khalidibrahimio Jun 14, 2019
ec18c15
Merge pull request #1472 from Khalidxx/decimal-places
ashkanx Jun 14, 2019
a80c0f2
Revert "khalid/Decimal places issue"
ashkanx Jun 14, 2019
cf1e9ca
Merge pull request #1473 from binary-com/revert-1472-decimal-places
ashkanx Jun 14, 2019
ddaa0f1
fix missing exit spot and quote
cakasuma Jun 14, 2019
b5fc3e3
add handler
cakasuma Jun 17, 2019
125a0cd
Merge pull request #1474 from cakasuma/amam/missing_zero
oskar-binary Jun 17, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 24 additions & 20 deletions src/common/rivetsExtra.es6
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import 'jquery-sparkline';
import 'chosen';
import 'color-picker';

const hasValue = value => value === 0 ? true : Boolean(value);

/* Rivets js does not allow manually observing properties from javascript,
Use "rv.bind().observe('path.to.object', callback)" to subscribe */
rivets._.View.prototype.observe = function (keypath, callback) {
Expand All @@ -24,7 +26,7 @@ rivets._.View.prototype.observe = function (keypath, callback) {

/* rivets formatter to translate strings to 18n */
rv.formatters['i18n'] = (value) => {
if(typeof value === 'string') return value.i18n();
if (typeof value === 'string') return value.i18n();
return value;
};
rv.formatters['sanitize'] = (value) => value.replace(/("|'|\&|\(|\)|\<|\>)/g, '');
Expand All @@ -36,7 +38,7 @@ rv.formatters['prop'] = (value, prop) => {
rv.formatters['one-of'] = (...args) => {
const value = args[0];
for (let i = 1; i < args.length ; ++i)
if(args[i] === value)
if (args[i] === value)
return true;
return false;
}
Expand All @@ -60,18 +62,20 @@ rv.formatters['and-not'] = (vlaue, other) => vlaue && !other;
rv.formatters['gt'] = (vlaue, other) => vlaue > other;
/* rivets formatter for < operator */
rv.formatters['lt'] = (vlaue, other) => vlaue < other;
/* rivets formatter to check if a variable has value */
rv.formatters['has-value'] = hasValue;
/* localise price format*/
rv.formatters['format-price'] = (value, currency) => (value) ? formatPrice(value, currency) : undefined;
rv.formatters['format-price'] = (value, currency) => hasValue(value) ? formatPrice(value, currency) : undefined;
/* comma added format*/
rv.formatters['add-comma'] = (value, decimal_points) => (value) ? addComma(value, decimal_points) : undefined;
rv.formatters['add-comma'] = (value, decimal_points) => value ? addComma(value, decimal_points) : undefined;
/* rivets formater to capitalize string */
rv.formatters.capitalize = {
read: (value) => _.capitalize(value),
publish: (value) => value.toLowerCase()
};
/* call toFixed on a fload number */
rv.formatters['to-fixed'] = (value, digits) => {
if(!$.isNumeric(value) || !$.isNumeric(digits)){
if (!$.isNumeric(value) || !$.isNumeric(digits)){
return;
}
return (value * 1).toFixed(digits || 2);
Expand Down Expand Up @@ -109,7 +113,7 @@ rv.formatters.currency = (value, currency) => {
'PYG': '₲', /* Paraguayan Guarani */ 'THB': '฿', /* Thai Baht */
'UAH': '₴', /* Ukrainian Hryvnia */ 'VND': '₫', /* Vietnamese Dong */
};
if(value)
if (value)
return (currency_symbols[currency] || currency) + value;
return value;
}
Expand All @@ -126,7 +130,7 @@ rv.formatters['moment'] = (epoch, format) => {
}
/* human readable difference of two epoch values */
rv.formatters['moment-humanize'] = (from_epoch, till_epoch) => {
if(!from_epoch || !till_epoch) {
if (!from_epoch || !till_epoch) {
return undefined;
}

Expand All @@ -151,7 +155,7 @@ rv.formatters['bold-last-character'] = (str) => {
}
/* formatter to calcualte the percent of a value of another value */
rv.formatters['percent-of'] = (changed, original) => {
if(!changed || !original) return undefined;
if (!(changed != null) || !original) return undefined;
const percentage_of_amount = (100*(changed - original)/original).toFixed(2);
if (percentage_of_amount > 0) {
return `+${percentage_of_amount}%`;
Expand Down Expand Up @@ -191,7 +195,7 @@ rv.binders.selectmenu = {
routine: (el, value) => {
el = $(el);
el.val(value);
if(el.find("option[value='" + value + "']").length > 0)
if (el.find("option[value='" + value + "']").length > 0)
el.selectmenu('refresh');
}
};
Expand Down Expand Up @@ -219,7 +223,7 @@ rv.binders['is-valid-number'] = {
/* bindar for jqueyr ui selectmenu options */
rv.binders['dom-*'] = function (el, value) {
const method = this.args[0];
if(value)
if (value)
setTimeout(() => el[method](), 0);
};

Expand All @@ -238,9 +242,9 @@ rv.binders.selectrefresh = {
priority: 99,
routine: (el,array_or_value) => {
el = $(el);
if(typeof array_or_value === 'string') {
if (typeof array_or_value === 'string') {
el.val(array_or_value);
if(el.find("option[value='" + array_or_value+ "']").length === 0)
if (el.find("option[value='" + array_or_value+ "']").length === 0)
return;
}
el.selectmenu('refresh');
Expand Down Expand Up @@ -275,7 +279,7 @@ rv.binders.chosendisable = (el, value) => {
const inputElement = chosenContainer.find('.chosen-choices input');
const chosenDrop = chosenContainer.find('.chosen-drop');
const chosenDisableElement = chosenContainer.find('.webtrader-chosen-disable');
if(value) {
if (value) {
inputElement.attr('disabled', value);
chosenDrop.hide();
chosenDisableElement.addClass('chosen-disable');
Expand Down Expand Up @@ -343,7 +347,7 @@ rv.binders['input-enter'] = {
publishes: false,
routine: (el, callback) => {
$(el).keyup(function(event){
if(event.keyCode == 13){
if (event.keyCode == 13){
callback(el);
}
});
Expand Down Expand Up @@ -460,7 +464,7 @@ rv.binders.datepicker = {
closeText: 'Done'.i18n(),
currentText: 'Today'.i18n()
};
if(model.yearRange)
if (model.yearRange)
options.yearRange = model.yearRange;
else {
options.maxDate = model.maxDate || null;
Expand Down Expand Up @@ -535,7 +539,7 @@ rv.binders['jq-class'] = {
/* rv binder to active click event on another button when Enter key is pressed */
rv.binders['input-default-btn'] = (el, jquery_selector) => {
$(el).keyup((event) => {
if(event.keyCode == 13) {
if (event.keyCode == 13) {
$(jquery_selector).click();
}
});
Expand Down Expand Up @@ -577,7 +581,7 @@ rv.binders['visible'] = (el, value) => {
};
/* binder to add or remove disabled attribute */
rv.binders.disabled = (el,value) => {
if(value) $(el).attr('disabled', 'disabled');
if (value) $(el).attr('disabled', 'disabled');
else $(el).removeAttr('disabled');
}

Expand Down Expand Up @@ -689,10 +693,10 @@ rv.binders['indicative-color'] = (el, value) => {
const red = '#d71818';
const green = '#02920e';
const black = 'black';
if(!$.isNumeric(value)) {
if (!$.isNumeric(value)) {
$(el).css({color: black});
}
else if(perv !== value*1) {
else if (perv !== value*1) {
$(el).css({color: perv < value*1 ? green : red});
}
el._perv_indicative_color = value;
Expand All @@ -706,7 +710,7 @@ const component_twoway_bind = (self, data, keypathes) => {
const keypath = keypathes[i];
const key = _.last(keypath.split('.'));
const observer = self.observers[key];
if(observer) {
if (observer) {
observer.options.adapters['.'].observe(observer.target, _.last(observer.keypath.split('.')), () => {
const updated = observer.target[_.last(observer.keypath.split('.'))];
data[key] = updated;
Expand Down
15 changes: 15 additions & 0 deletions src/common/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,21 @@ function addComma(num, decimal_points, is_crypto) {
});
};

function getSymbolPipValue(symbol) {
var active_symbols = local_storage.get('active_symbols');
var pip_value = 4;
var selected_symbol = active_symbols.find(function(item) {
return item.symbol === symbol;
});

if (selected_symbol) {
var symbol_pip = selected_symbol.pip.toString();
pip_value = symbol_pip.substring(symbol_pip.indexOf(".") + 1).length;
}

return pip_value;
};

function sortAlphaNum(property) {
"use strict";
var reA = /[^a-zA-Z]/g;
Expand Down
5 changes: 4 additions & 1 deletion src/statement/statement.es6
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export const init = ($menuLink) => {

let loading = false;
let is_specific_date_shown = false; /* is data for a specific date is shown */
let scroll_end_reached = false;

const refreshTable = (yyy_mm_dd) => {
const processing_msg = $('#' + table.attr('id') + '_processing').css('top','200px').show();
Expand Down Expand Up @@ -79,6 +80,7 @@ const refreshTable = (yyy_mm_dd) => {
table.api().rows.add(rows);
table.api().draw();
loading = false;
if (data.statement.count === 0) scroll_end_reached = true;
processing_msg.hide();
};

Expand All @@ -97,6 +99,7 @@ const refreshTable = (yyy_mm_dd) => {
}

const initStatement = () => {
scroll_end_reached = false;
statement = windows.createBlankWindow($('<div/>'), {
title: 'Statement'.i18n(),
dialogClass: 'statement',
Expand Down Expand Up @@ -173,7 +176,7 @@ const initStatement = () => {
innerHeight = statement.innerHeight(),
scrollHeight = statement[0].scrollHeight,
postion = (scrollTop + innerHeight) / scrollHeight;
if(postion > 0.75 && !loading && !is_specific_date_shown){
if(postion > 0.75 && !loading && !is_specific_date_shown && !scroll_end_reached){
refreshTable({clear:false});
}
});
Expand Down
2 changes: 1 addition & 1 deletion src/trade/tradeDialog.es6
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,7 @@ function init_state(available,root, dialog, symbol, contracts_for_spot) {
multiplier: "0",
error: '',
loading: true, /* the proposal request state */

pip: getSymbolPipValue(symbol.symbol),
/* computed properties */
netprofit_: function () {
const {contract_type} = state.category_displays.selected;
Expand Down
2 changes: 1 addition & 1 deletion src/trade/tradeDialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
rv-show='template.visible'><!-- tradeTemplateManger will render here --></div>
<li>
<li class="tick-quote">
<span rv-text="tick.quote | add-comma"
<span rv-text="tick.quote | add-comma proposal.pip"
rv-class-down="tick.down < quote"></span>
</li>
<li class='sparkline-chart'>
Expand Down
3 changes: 3 additions & 0 deletions src/viewtransaction/viewTransaction.es6
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,10 @@ const updateIndicative = (data, state) => {

function updateState(contract, state) {
const sell_time = contract.is_path_dependent && contract.status !== 'sold' ? contract.exit_tick_time : parseInt(contract.sell_time);
const pip_value = getSymbolPipValue(contract.underlying);

// note: cannot use spread operator - rivets.js 2-way data-binding breaks if new object
state.proposal_open_contract.pip = pip_value;
state.proposal_open_contract.is_sold_before_expiry = sell_time < contract.date_expiry;
state.proposal_open_contract.current_spot = contract.current_spot;
state.proposal_open_contract.current_spot_time = contract.current_spot_time;
Expand Down Expand Up @@ -493,6 +495,7 @@ const initState = (proposal, root) => {
is_sold_before_expiry: sell_time < proposal.date_expiry,
isLookback: Lookback.isLookback(proposal.contract_type),
lb_formula: Lookback.formula(proposal.contract_type, proposal.multiplier && formatPrice(proposal.multiplier, proposal.currency || 'USD')),
pip: 0,
},
sell: {
bid_prices: [],
Expand Down
16 changes: 8 additions & 8 deletions src/viewtransaction/viewTransaction.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,18 @@ <h3>Exit spot</h3>
<p>Entry Spot</p>
<span rv-data-balloon="proposal_open_contract.entry_tick_time | moment | or '-'"
rv-if="proposal_open_contract.entry_tick_time"
rv-text="proposal_open_contract.entry_tick | add-comma | or '-'"
rv-text="proposal_open_contract.entry_tick | add-comma proposal_open_contract.pip | or '-'"
class="dotted-underline entry-spot"></span>
</div>
<div rv-if="proposal_open_contract.user_sold | not-eq true | and proposal_open_contract.exit_tick | eq undefined"> <p>Current Spot</p>
<span rv-text="proposal_open_contract.current_spot | or '-'" rv-indicative-color="proposal_open_contract.current_spot"></span>
<span rv-text="proposal_open_contract.current_spot | add-comma proposal_open_contract.pip | or '-'" rv-indicative-color="proposal_open_contract.current_spot"></span>
</div>
<div rv-if="proposal_open_contract.user_sold | not-eq true | and proposal_open_contract.exit_tick | and proposal_open_contract.isLookback | eq false"> <p>Exit Spot</p>
<span rv-text="proposal_open_contract.exit_tick | add-comma | or '-'"></span>
<span rv-text="proposal_open_contract.exit_tick | add-comma proposal_open_contract.pip | or '-'"></span>
</div>
<div rv-if="proposal_open_contract.isLookback">
<p>Close</p>
<span rv-text="proposal_open_contract.exit_tick | add-comma | or '-'"></span>
<span rv-text="proposal_open_contract.exit_tick | add-comma proposal_open_contract.pip | or '-'"></span>
</div>
<div rv-if="proposal_open_contract.multiplier">
<p>Multiplier</p>
Expand Down Expand Up @@ -95,7 +95,7 @@ <h3>Exit spot</h3>
rv-data-balloon='"return"'
class="dotted-underline smaller"></span>
</div>
<div rv-if="proposal_open_contract.sell_price">
<div rv-if="proposal_open_contract.sell_price | has-value">
<div rv-class-center="proposal_open_contract.user_sold | or proposal_open_contract.barrier_count | eq 2"> <p>Final Price</p>
<span rv-html="proposal_open_contract.sell_price | format-price proposal_open_contract.currency | or '-'"></span>
<br/>
Expand All @@ -113,7 +113,7 @@ <h3>Exit spot</h3>
<div> <p>Entry Spot</p>
<span rv-data-balloon="proposal_open_contract.entry_tick_time | moment | or '-'"
rv-if="proposal_open_contract.entry_tick_time"
rv-text="proposal_open_contract.entry_tick | add-comma | or '-'"
rv-text="proposal_open_contract.entry_tick | add-comma proposal_open_contract.pip | or '-'"
class="dotted-underline">
</span>
<span rv-data-balloon="proposal_open_contract.purchase_time | moment | or '-'"
Expand All @@ -124,8 +124,8 @@ <h3>Exit spot</h3>
</div>
<div rv-if="proposal_open_contract.is_sold | eq 1"> <p>Exit Spot</p>
<span rv-data-balloon="proposal_open_contract.exit_tick_time | moment | or '-'"
rv-text="proposal_open_contract.exit_tick | add-comma | or '-'"
rv-class-dotted-underline="proposal_open_contract.exit_tick | add-comma"></span>
rv-text="proposal_open_contract.exit_tick | add-comma proposal_open_contract.pip | or '-'"
rv-class-dotted-underline="proposal_open_contract.exit_tick | add-comma proposal_open_contract.pip"></span>
</div>
<div rv-if="proposal_open_contract.is_sold | eq 0"> <p>Current Level</p>
<span rv-data-balloon="proposal_open_contract.current_spot_time | moment | or '-'"
Expand Down
Loading