{"version":3,"sources":["Home/Static/js/Benchmark.js"],"names":["define","require","$","_","Promise","i18n","moment","ColorManager","FinancialItem","ajax","errorHandler","api","fn","dataTable","ext","errMode","config","warnings","orderBy","YTD","M1","M3","M6","Y1","Y3","Y5","Y8","Y10","typeInit","localAjax","serverAjax","TypeRequest","CATEGORIE_ACTION","obligCat","flexiblesCat","ConsultationTop10Cat","fondsFlexible","fondsMeilleursPerf","fondsConsultationTop10","ConsultationTop10SocieteGestion","fondsTop10","fondsFlop10","CATEGORIE_OBLIGATION","CATEGORIE_FLEXIBLE","ItemCourbe","id","name","type","color","financialItem","this","ID","Nom","Type","Color","defaultCat","val","split","colorManager","Array","initDataTable","cTypeInit","catOptions","$table","$tableResult","actionCat","destroy","columnDefs","url","searchUrl","columns","orderbyColumnNum","defaultDisplayCount","params","nOrderBy","typeRequest","colorArray","backColor","evolutionIconUrl","bDefaultCheckable","initCompliteFunc","benchmarkactionCatDataTableApi","getTable","initactionCatTable","catTableOptions","benchmarkobligCatDataTableApi","initobligCatTable","flexiblesCatOptions","benchmarkflexiblesCatDataTableApi","initflexiblesCatTable","option","DataTable","autoWidth","lengthMenu","pageLength","bLengthChange","searching","ordering","processing","serverSide","bInfo","order","pagingType","dom","language","data","callback","settings","extend","dataLoad","dataResult","JSON","parse","internalAjax","post","ajaxCalls","push","then","stringify","catch","ex","message","displayError","remove","item","preDrawCallback","hide","$tabContainer","LoadingOverlay","length","find","css","backgroundColor","borderColor","$blockContainer","benchmark","addClass","removeClass","drawCallback","show","AddElementsToChart","initComplete","fnRowCallback","nRow","aData","iDisplayIndex","idx","inArray","parseInt","ID_Cat","selectedProduits","idCat","attr","resetChecks","key","html","categorie1mois","categorie1annnnnnn","categorie3ans","categorie5ans","categorie8ans","categorieYTD","updatetabYearHeader","listIdCat","listCatUsed","ajaxSource","courbeData","ID_Produit","idListCat","idListIndice","nbCourbes","Data","AddCourbe","updateBackgroundColor","GetMainGraphs","GetNewCourbes","chartHisto","DisplayLoader","jsonListeCourbes","liste_courbes","sDtStart","dtStart","format","amChartConfig","graph","graphs","AmCharts","makeChart","DoneLoading","list_elt","i","IDFound","courbe","courbeNew","ids","map","colorRecovery","elt","index","clrs","excludeforProduits","merge","CheckColorAllowedForProduits","each","parents","background-color","border-color","$td","get","setPeriodFromKey","Date","add","renderNom","row","meta","sNom","result","sUrl","renderAmount","isNaN","parseFloat","toFixed","checkbox","width","targets","visible","className","title","render","actions","perfcum","obligations","flexibles","urlLangage","perfTab","sDtEnd","on","indx","listCourbes","uniq","CleanupListCourbes","splice","indx2","removeAttr","slectedPeriode","reloadData","e","abort","cancelAjax"],"mappings":"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","file":"Benchmark.js","sourcesContent":["define(function (require) {\r\n\r\n //==================================================================================\r\n //=======================================[ Imports ]================================\r\n //==================================================================================\r\n\r\n var $ = require(\"jquery\");\r\n var _ = require(\"lodash\");\r\n var Promise = require(\"bluebird\");\r\n var i18n = require(\"i18n\");\r\n require(\"bootstrap\");\r\n //gestion des dates\r\n var moment = require(\"moment\");\r\n require(\"moment.fr\");\r\n //Plugin pour la table\r\n var DataTable = require(\"datatables.net\");\r\n require(\"datatables.bootstrap\");\r\n var renders = require(\"datatables.render.methods\");\r\n //Utilitaire charts\r\n var amchartsHelpers = require(\"amcharts.shared\");\r\n //utilitaire couleurs\r\n var ColorManager = require(\"color-manager\");\r\n //Sélection d'une période (date début + date fin)\r\n var FinancialItem = require(\"FinancialItem\");\r\n //calls ajax\r\n var ajax = require(\"ajax-promise\");\r\n var errorHandler = require(\"error-handler\");\r\n //loader animation\r\n require(\"loadingoverlay\");\r\n //charts\r\n require(\"amcharts.serial\");\r\n require(\"amcharts.xy\");\r\n require(\"amcharts.fr\");\r\n\r\n\r\n //=================================================================================\r\n //=======================================[ Global ]================================\r\n //=================================================================================\r\n\r\n var api = {};\r\n\r\n // Pour que DataTables.net throw les erreurs dans la console au lieu d'un alert()\r\n $.fn.dataTable.ext.errMode = 'throw';\r\n\r\n Promise.config({\r\n warnings: false\r\n });\r\n\r\n var orderBy = {\r\n YTD: 0,\r\n M1: 1,\r\n M3: 2,\r\n M6: 3,\r\n Y1: 4,\r\n Y3: 5,\r\n Y5: 6,\r\n Y8: 7,\r\n Y10: 8\r\n };\r\n\r\n var typeInit = {\r\n localAjax: 0,\r\n serverAjax: 1\r\n };\r\n\r\n var TypeRequest = {\r\n CATEGORIE_ACTION: 0,\r\n obligCat: 1,\r\n flexiblesCat: 2,\r\n ConsultationTop10Cat: 3,\r\n fondsFlexible: 4,\r\n fondsMeilleursPerf: 5,\r\n fondsConsultationTop10: 6,\r\n ConsultationTop10SocieteGestion: 7,\r\n fondsTop10: 8,\r\n fondsFlop10: 9,\r\n CATEGORIE_OBLIGATION: 10,\r\n CATEGORIE_FLEXIBLE: 11\r\n };\r\n\r\n function ItemCourbe(id, name, type, color, financialItem) {\r\n this.ID = id;\r\n this.Nom = name;\r\n this.Type = type;\r\n this.Color = color;\r\n this.FinancialItem = financialItem;\r\n }\r\n\r\n var defaultCat = [];//[106, 98, 31, 126, 9, 116];\r\n if ($(\"#benchmark-list-default\").val()) {\r\n defaultCat = $(\"#benchmark-list-default\").val().split(\",\");\r\n }\r\n\r\n var colorManager = new ColorManager();\r\n\r\n var hexDigits = new Array\r\n (\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\");\r\n\r\n\r\n //====================================================================================\r\n //=======================================[ Initialize ]===============================\r\n //====================================================================================\r\n\r\n $(function () {\r\n\r\n api = {\r\n columnDefs: {\r\n actionCat: [{ width: \"65%\", targets: 3 }, { width: \"35%\", targets: 4 }],//{ width: \"35%\", targets: 4 }\r\n obligCat: [{ width: \"65%\", targets: 3 }, { width: \"35%\", targets: 4 }],\r\n flexiblesCat: [{ width: \"65%\", targets: 3 }, { width: \"35%\", targets: 4 }]\r\n },\r\n columns: {\r\n actionCat: [\r\n { name: \"sUrl\", visible: false },\r\n { name: \"ID_Cat\", visible: false },\r\n { name: \"chbx\", className: \"text-center chbx\", title: \"\", render: checkbox },\r\n { name: \"sNom\", title: i18n.actions, render: renderNom },\r\n { name: \"nRet\", className: \"variable-action-text text-center\", title: i18n.perfcum, render: renderAmount }//i18n.perfcumulee\r\n ],\r\n obligCat: [\r\n { name: \"sUrl\", visible: false },\r\n { name: \"ID_Cat\", visible: false },\r\n { name: \"chbx\", className: \"text-center chbx\", title: \"\", render: checkbox },\r\n { name: \"sNom\", title: i18n.obligations, render: renderNom },\r\n { name: \"nRet\", className: \"variable-oblig-text text-center\", title: i18n.perfcum, render: renderAmount }\r\n ],\r\n flexiblesCat: [\r\n { name: \"sUrl\", visible: false },\r\n { name: \"ID_Cat\", visible: false },\r\n { name: \"chbx\", className: \"text-center chbx\", title: \"\", render: checkbox },\r\n { name: \"sNom\", title: i18n.flexibles, render: renderNom },\r\n { name: \"nRet\", className: \"variable-flexible-text text-center\", title: i18n.perfcum, render: renderAmount }\r\n ]\r\n },\r\n searchUrl: \"/Home/performance\",\r\n urlLangage: \"/Areas/Shared/Static/localization/datatables_french.json\",\r\n defaultDisplayCount: {\r\n actionCat: 6,\r\n obligCat: 3,\r\n flexiblesCat: 3\r\n },\r\n backColor: {\r\n actionCat: [],\r\n obligCat: [\"#009688\", \"#009688\", \"#4DB6AC\", \"#827717\"],\r\n flexiblesCat: [\"#B71C1C\", \"#B71C1C\", \"#D32F2F\", \"#E57373\"]\r\n },\r\n $tableResult: {\r\n actionCat: $(\"#benchmark-cat\"),\r\n obligCat: $(\"#benchmark-action-cat\"),\r\n flexiblesCat: $(\"#benchmark-oblig-cat\")\r\n },\r\n $blockContainer: {\r\n benchmark: $(\".benchmark-block\")\r\n },\r\n ajaxCalls: [],\r\n ajaxSource: {\r\n perfTab: \".load-\",\r\n courbeData: \"#benchmark-courbe-data\",\r\n chartHisto: \"#benchmark-chart-histo\"\r\n },\r\n selectedProduits: [],\r\n liste_courbes: [],\r\n graphs: [{ id: \"divChart-benchmark\", graph: {} }],\r\n dtStart: moment(new Date),\r\n sDtEnd: moment(new Date),\r\n orderBy: orderBy.Y1,\r\n $tabContainer: $(\".benchmark-container\"),\r\n colorRecovery: []\r\n };\r\n\r\n // Pour chaque colonne on ajoute une property \"data\" égale au nom (correspond au field de la datasource)\r\n for (var i = 0; i < api.columns.actionCat.length; i++) {\r\n api.columns.actionCat[i].data = api.columns.actionCat[i].name;\r\n }\r\n\r\n for (i = 0; i < api.columns.obligCat.length; i++) {\r\n api.columns.obligCat[i].data = api.columns.obligCat[i].name;\r\n }\r\n\r\n for (i = 0; i < api.columns.flexiblesCat.length; i++) {\r\n api.columns.flexiblesCat[i].data = api.columns.flexiblesCat[i].name;\r\n }\r\n\r\n // color to exclude\r\n colorManager.excludeforProduits = $.merge(api.backColor.obligCat, api.backColor.flexiblesCat);\r\n\r\n // get the default period\r\n var $aLink = $(\".tabs li.active a\", api.$blockContainer.benchmark);\r\n setPeriodFromKey($aLink.data(\"period\"));\r\n\r\n initDataTable(typeInit.localAjax);\r\n });\r\n\r\n //====================================================================================\r\n //=========================================[ Events ]=================================\r\n //====================================================================================\r\n\r\n $(function () {\r\n\r\n $('.table').on(\"click\", '.chbx input[type=\"checkbox\"]', function () {\r\n var id = $(this).data(\"cat\");\r\n var indx = $.inArray(id, api.selectedProduits);\r\n if (indx === -1) {\r\n api.selectedProduits.push($(this).data(\"cat\"));\r\n }\r\n else {\r\n api.liste_courbes = CleanupListCourbes([api.selectedProduits[indx]]);\r\n api.selectedProduits.splice(indx, 1);\r\n\r\n //Free color for next curve\r\n var ids = _.map(api.colorRecovery, function (elt, index) { return elt.ID; });\r\n\r\n indx = $.inArray(id, ids);\r\n if (indx !== -1) {\r\n var indx2 = $.inArray(api.colorRecovery[indx].Color, colorManager.excludeforProduits);\r\n if (indx2 !== -1)\r\n colorManager.excludeforProduits.splice(indx2, 1);\r\n\r\n api.colorRecovery.splice(indx, 1);\r\n }\r\n\r\n // remove checkbox background color\r\n $(\"input[data-cat='\" + $(this).data(\"cat\") + \"']\", api.$tableResult.actionCat).parents(\"td.chbx\").removeAttr(\"style\");\r\n $(\"input[data-cat='\" + $(this).data(\"cat\") + \"']\", api.$tableResult.obligCat).parents(\"td.chbx\").removeAttr(\"style\");\r\n $(\"input[data-cat='\" + $(this).data(\"cat\") + \"']\", api.$tableResult.flexiblesCat).parents(\"td.chbx\").removeAttr(\"style\");\r\n }\r\n\r\n //delete onload data\r\n $(api.ajaxSource.courbeData).val(\"\");\r\n $(api.ajaxSource.chartHisto).val(\"\");\r\n\r\n AddElementsToChart();\r\n });\r\n\r\n reloadData();\r\n\r\n api.$blockContainer.benchmark.find(\".tabs\").find(\"a\").on(\"click\", function (e) {\r\n setPeriodFromKey($(this).data(\"period\"));\r\n api.$blockContainer.benchmark.find(\".tabs\").find(\"li\").removeClass(\"active\");\r\n $(this).parents(\"li\").addClass(\"active\");\r\n\r\n //delete onload data\r\n $(api.ajaxSource.courbeData).val(\"\");\r\n $(api.ajaxSource.chartHisto).val(\"\");\r\n $(\"[class^='load-']\").val(\"\");\r\n\r\n //abort current ajax requests (unresolved)\r\n cancelAjax();\r\n\r\n // update tables\r\n initDataTable(typeInit.serverAjax);\r\n });\r\n\r\n });\r\n\r\n //====================================================================================\r\n //=======================================[ Functions ]================================\r\n //====================================================================================\r\n\r\n function initDataTable(cTypeInit) {\r\n\r\n // Actions catégories\r\n initactionCatTable(cTypeInit);\r\n\r\n // Oblig. catégorie\r\n initobligCatTable(cTypeInit);\r\n\r\n // Flexibles catégories\r\n initflexiblesCatTable(cTypeInit);\r\n }\r\n\r\n function initactionCatTable(cTypeInit) {\r\n api.catOptions = {\r\n $table: api.$tableResult.actionCat,\r\n destroy: true,\r\n columnDefs: api.columnDefs.actionCat,\r\n url: api.searchUrl,\r\n columns: api.columns.actionCat,\r\n orderbyColumnNum: [3, 'asc'], //-- order by sNom\r\n defaultDisplayCount: api.defaultDisplayCount.actionCat,\r\n params: { nOrderBy: api.orderBy, defaultCat: defaultCat, typeRequest: TypeRequest.CATEGORIE_ACTION },\r\n colorArray: api.backColor.actionCat,\r\n evolutionIconUrl: \"\",\r\n cTypeInit: cTypeInit,\r\n bDefaultCheckable: true,\r\n initCompliteFunc: function () { api.catOptions.cTypeInit = typeInit.serverAjax; }\r\n };\r\n\r\n api.benchmarkactionCatDataTableApi = getTable(api.catOptions);\r\n }\r\n\r\n function initobligCatTable(cTypeInit) {\r\n api.catTableOptions = {\r\n $table: api.$tableResult.obligCat,\r\n destroy: true,\r\n columnDefs: api.columnDefs.obligCat,\r\n url: api.searchUrl,\r\n columns: api.columns.obligCat,\r\n orderbyColumnNum: [4, 'desc'], //-- order by nRet\r\n defaultDisplayCount: api.defaultDisplayCount.obligCat,\r\n params: { nOrderBy: api.orderBy, typeRequest: TypeRequest.CATEGORIE_OBLIGATION },\r\n colorArray: api.backColor.obligCat,\r\n cTypeInit: cTypeInit,\r\n bDefaultCheckable: false,\r\n //evolutionIconUrl: \"/Areas/Shared/Static/img/fleche_up.png\",\r\n initCompliteFunc: function () { api.catTableOptions.cTypeInit = typeInit.serverAjax; }\r\n };\r\n\r\n api.benchmarkobligCatDataTableApi = getTable(api.catTableOptions);\r\n }\r\n\r\n function initflexiblesCatTable(cTypeInit) {\r\n api.flexiblesCatOptions = {\r\n $table: api.$tableResult.flexiblesCat,\r\n destroy: true,\r\n columnDefs: api.columnDefs.flexiblesCat,\r\n url: api.searchUrl,\r\n columns: api.columns.flexiblesCat,\r\n orderbyColumnNum: [4, 'desc'], //-- order by nRet\r\n defaultDisplayCount: api.defaultDisplayCount.flexiblesCat,\r\n params: { nOrderBy: api.orderBy, typeRequest: TypeRequest.CATEGORIE_FLEXIBLE },\r\n colorArray: api.backColor.flexiblesCat,\r\n cTypeInit: cTypeInit,\r\n bDefaultCheckable: false,\r\n //evolutionIconUrl: \"/Areas/Shared/Static/img/fleche_down.png\",\r\n initCompliteFunc: function () { api.flexiblesCatOptions.cTypeInit = typeInit.serverAjax; }\r\n };\r\n\r\n api.benchmarkflexiblesCatDataTableApi = getTable(api.flexiblesCatOptions);\r\n }\r\n\r\n function getTable(option) {\r\n return option.$table.DataTable({\r\n destroy: option.destroy,\r\n columnDefs: option.columnDefs,\r\n autoWidth: false,\r\n lengthMenu: [5, 10, 25, 50, 100],\r\n pageLength: option.defaultDisplayCount, //Nombre de lignes affichées par défaut\r\n bLengthChange: false,\r\n searching: false,\r\n ordering: false,\r\n processing: false,\r\n serverSide: true,\r\n bInfo: false,\r\n order: option.orderbyColumnNum,\r\n pagingType: \"numbers\",\r\n dom: \"<'dataTableFooter'pil><'clearfix'>\",\r\n columns: option.columns,\r\n language: {\r\n },\r\n ajax: function (data, callback, settings) {\r\n\r\n var params = $.extend(data, option.params);\r\n\r\n if ($(\".load-\" + option.params.typeRequest).val()) {\r\n var dataLoad = $(\".load-\" + option.params.typeRequest).val();\r\n var dataResult = JSON.parse(dataLoad);\r\n callback(dataResult);\r\n }\r\n else {\r\n var internalAjax = ajax.post(option.url, params);\r\n api.ajaxCalls.push(internalAjax);\r\n\r\n internalAjax.then(function (dataResult) {\r\n $(\".load-\" + option.params.typeRequest).val(JSON.stringify(dataResult));\r\n callback(dataResult);\r\n }).catch(function (ex) {\r\n if (ex.message !== \"abort\") {\r\n errorHandler.displayError(ex);\r\n }\r\n }).then(function () {\r\n _.remove(api.ajaxCalls, function (item) { return item === internalAjax; });\r\n });\r\n }\r\n },\r\n preDrawCallback: function () {\r\n preDrawCallback(option);\r\n },\r\n drawCallback: function () {\r\n drawCallback(option);\r\n },\r\n initComplete: option.initCompliteFunc,\r\n fnRowCallback: function (nRow, aData, iDisplayIndex) {\r\n fnRowCallback(option, nRow, aData, iDisplayIndex);\r\n }\r\n });\r\n }\r\n\r\n\r\n // Add/Remove curves\r\n function AddElementsToChart() {\r\n\r\n var listIdCat = api.selectedProduits;\r\n\r\n if (listIdCat.length !== 0)\r\n GetNewCourbes(listIdCat);\r\n }\r\n\r\n // Fetch the new curves (color, id, type) based on their id\r\n function GetNewCourbes(listIdCat) {\r\n\r\n var listCatUsed = listIdCat ? listIdCat : Array();\r\n\r\n if ($(api.ajaxSource.courbeData).val()) {\r\n\r\n AddCourbe(JSON.parse($(api.ajaxSource.courbeData).val()));\r\n\r\n updateBackgroundColor();\r\n\r\n GetMainGraphs();\r\n }\r\n else {\r\n return ajax.post(\"/Home/GetCourbesData\", {\r\n ID_Produit: 0,\r\n idListCat: JSON.stringify(listCatUsed),\r\n idListIndice: JSON.stringify([]),\r\n nbCourbes: listCatUsed.length\r\n })\r\n .then(function (data) {\r\n\r\n $(api.ajaxSource.courbeData).val(data.Data);\r\n\r\n AddCourbe(JSON.parse(data.Data));\r\n\r\n updateBackgroundColor();\r\n\r\n GetMainGraphs(); // We reload all the charts with the new curves\r\n });\r\n }\r\n\r\n }\r\n\r\n // Rebuilds all the dynamic graphs\r\n function GetMainGraphs() {\r\n\r\n if ($(api.ajaxSource.chartHisto).val()) {\r\n var amChartConfig = JSON.parse($(api.ajaxSource.chartHisto).val());\r\n api.graphs[0].graph = AmCharts.makeChart(api.graphs[0].id, amChartConfig);\r\n }\r\n else {\r\n DisplayLoader(\"graph\");\r\n return ajax.post(\"/Home/GetChartHisto_Historique\", {\r\n ID_Produit: 0,\r\n jsonListeCourbes: JSON.stringify(api.liste_courbes),\r\n\t\t\t\tsDtStart: moment(api.dtStart).format(\"DD-MM-YYYY\")\r\n })\r\n .then(function (data) {\r\n\r\n $(api.ajaxSource.chartHisto).val(data.Data);\r\n\r\n // Histo graph\r\n var amChartConfig = JSON.parse(data.graph);\r\n\r\n api.graphs[0].graph = AmCharts.makeChart(api.graphs[0].id, amChartConfig);\r\n\r\n DoneLoading(\"graph\");\r\n });\r\n }\r\n\r\n }\r\n\r\n function reloadData() {\r\n slectedPeriode = $(\"li.acive\", api.$blockContainer.benchmark.find(\".tabs\"));\r\n if (slectedPeriode.length > 0) {\r\n setPeriodFromKey($(\"a\", slectedPeriode).data(\"period\"));\r\n }\r\n } \r\n\r\n\r\n //==================================================================================\r\n //=================================[ table actions ]================================\r\n //==================================================================================\r\n\r\n function preDrawCallback(option) {\r\n option.$table.hide();\r\n api.$tabContainer.LoadingOverlay(\"show\");\r\n if (option.colorArray.length > 0) {\r\n option.$table.find('th').css({ backgroundColor: option.colorArray[0], borderColor: option.colorArray[0] });\r\n }\r\n\r\n $(\"th.to-dark\", api.$blockContainer.benchmark).addClass(\"dark\");\r\n $(\".to-dark\", api.$blockContainer.benchmark).removeClass(\"to-dark\");\r\n }\r\n\r\n function drawCallback(option) {\r\n option.$table.show();\r\n api.$tabContainer.LoadingOverlay(\"hide\", true);\r\n AddElementsToChart();\r\n }\r\n\r\n function fnRowCallback(option, nRow, aData, iDisplayIndex) {\r\n // save IDs for chart\r\n if (option.bDefaultCheckable) {\r\n var idx = $.inArray(parseInt(aData.ID_Cat), api.selectedProduits);\r\n if (idx === -1 && api.selectedProduits.length < 3) {\r\n api.selectedProduits.push(parseInt(aData.ID_Cat));\r\n }\r\n }\r\n\r\n resetChecks(aData.ID_Cat, nRow);\r\n\r\n updatetabYearHeader($(\"li.active a\", api.$blockContainer.benchmark.find(\".tabs\")).data(\"period\"));\r\n }\r\n\r\n //==================================================================================\r\n //=====================================[ Utilities ]================================\r\n //==================================================================================\r\n\r\n function cancelAjax() {\r\n\r\n for (var i = 0; i < api.ajaxCalls.length; i++) {\r\n api.ajaxCalls[i].abort();\r\n }\r\n }\r\n\r\n // Add a curve to the list of curves\r\n function AddCourbe(list_elt) {\r\n\r\n for (var i = 0; i < list_elt.length; i++) {\r\n\r\n var IDFound;\r\n var courbe;\r\n\r\n var idx = $.inArray(list_elt[i].ID, api.selectedProduits);\r\n if (idx !== -1)\r\n IDFound = api.selectedProduits[idx];\r\n\r\n idx = $.inArray(list_elt[i], api.liste_courbes);\r\n if (idx !== -1)\r\n courbe = api.liste_courbes[idx];\r\n\r\n if (IDFound && !courbe) {\r\n var financialItem = new FinancialItem(list_elt[i].ID, list_elt[i].Type, 0, null);\r\n var courbeNew = new ItemCourbe(list_elt[i].ID, list_elt[i].Nom, list_elt[i].Type, list_elt[i].Color, financialItem);\r\n\r\n var ids = _.map(api.colorRecovery, function (elt, index) { return elt.ID; });\r\n var clrs = _.map(api.colorRecovery, function (elt, index) { return elt.Color; });\r\n idx = $.inArray(list_elt[i].ID, ids);\r\n\r\n if (idx === -1) {\r\n if ($.inArray(list_elt[i].Color, clrs) === -1)\r\n api.colorRecovery.push(courbeNew);\r\n else {\r\n colorManager.excludeforProduits = $.merge(colorManager.excludeforProduits, clrs);\r\n courbeNew.Color = colorManager.CheckColorAllowedForProduits(courbeNew.Color);\r\n api.colorRecovery.push(courbeNew);\r\n }\r\n }\r\n else {\r\n courbeNew.Color = api.colorRecovery[idx].Color;\r\n }\r\n\r\n // We add all the curves to the list \r\n api.liste_courbes.push(courbeNew);\r\n }\r\n }\r\n }\r\n\r\n function CleanupListCourbes(listCourbes) {\r\n\r\n // We remove elements that already are in api.liste_courbes\r\n _.remove(api.liste_courbes, function (elt) {\r\n return _.find(listCourbes, function (id) { return parseInt(id) === parseInt(elt.ID); }) !== null;\r\n });\r\n\r\n return _.uniq(api.liste_courbes); // We remove duplicates\r\n }\r\n\r\n function updateBackgroundColor() {\r\n\r\n // update cat back color\r\n $.each(api.liste_courbes, function (index, elt) {\r\n var $td = api.$tableResult.actionCat.find(\"input[data-cat=\" + elt.ID + \"]\").parents(\"td.chbx\");\r\n $td.css({ \"background-color\": elt.Color, \"border-color\": elt.Color });\r\n });\r\n\r\n // update top cat chart color\r\n $.each(api.liste_courbes, function (index, elt) {\r\n var $td = api.$tableResult.obligCat.find(\"input[data-cat=\" + elt.ID + \"]\").parents(\"td.chbx\");\r\n if ($td.length > 0) {\r\n var idx = $.inArray($td.parents(\"tr\").get(0), api.$tableResult.obligCat.find(\"tr\"));\r\n if (idx !== -1) {\r\n $td.css({ backgroundColor: api.backColor.obligCat[idx] });\r\n api.liste_courbes[index].Color = api.backColor.obligCat[idx];\r\n }\r\n }\r\n });\r\n\r\n // update flop cat chart color\r\n $.each(api.liste_courbes, function (index, elt) {\r\n var $td = api.$tableResult.flexiblesCat.find(\"input[data-cat=\" + elt.ID + \"]\").parents(\"td.chbx\");\r\n if ($td.length > 0) {\r\n var idx = $.inArray($td.parents(\"tr\").get(0), api.$tableResult.flexiblesCat.find(\"tr\"));\r\n if (idx !== -1) {\r\n $td.css({ backgroundColor: api.backColor.flexiblesCat[idx] });\r\n api.liste_courbes[index].Color = api.backColor.flexiblesCat[idx];\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Function to convert rgb color to hex format\r\n function rgb2hex(rgb) {\r\n rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n return \"#\" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);\r\n }\r\n\r\n function hex(x) {\r\n return isNaN(x) ? \"00\" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];\r\n }\r\n\r\n function DisplayLoader(type) {\r\n $('.qtjs-panel-reloaded-' + type).LoadingOverlay(\"show\");\r\n }\r\n\r\n // This function is called when one main function has finished its task.\r\n function DoneLoading(type) {\r\n $('.qtjs-panel-reloaded-' + type).LoadingOverlay(\"hide\");\r\n }\r\n\r\n function uncheckElts(eltArray) {\r\n $(eltArray).prop(\"checked\", false);\r\n }\r\n\r\n function checkElts(eltArray) {\r\n $(eltArray).prop(\"checked\", true);\r\n }\r\n\r\n function resetChecks(idCat, nRow) {\r\n var idx = $.inArray(parseInt(idCat), api.selectedProduits);\r\n if (idx !== -1) {\r\n $('.chbx input[type=\"checkbox\"]', $(nRow)).attr(\"checked\", true);//.prop(\"checked\", true);\r\n }\r\n else {\r\n $('.chbx input[type=\"checkbox\"]', $(nRow)).attr(\"checked\", false);//.prop(\"checked\", false);\r\n }\r\n }\r\n\r\n function setPeriodFromKey(key) {\r\n api.dtStart = moment(new Date());\r\n switch (key) {\r\n case \"1m\":\r\n api.dtStart.add(-1, 'months');\r\n api.orderBy = orderBy.M1;\r\n break;\r\n case \"1a\":\r\n api.dtStart.add(-1, 'years');\r\n api.orderBy = orderBy.Y1;\r\n break;\r\n case \"3a\":\r\n api.dtStart.add(-3, 'years');\r\n api.orderBy = orderBy.Y3;\r\n break;\r\n case \"5a\":\r\n api.dtStart.add(-5, 'years');\r\n api.orderBy = orderBy.Y5;\r\n break;\r\n case \"8a\":\r\n api.dtStart.add(-8, 'years');\r\n api.orderBy = orderBy.Y8;\r\n break;\r\n case \"ytd\":\r\n api.dtStart = moment(\"01/01/\" + api.dtStart.format(\"Y\"), \"dd/MM/YYYY\");\r\n api.orderBy = orderBy.YTD;\r\n break;\r\n }\r\n }\r\n\r\n function updatetabYearHeader(key) {\r\n switch (key) {\r\n case \"1m\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorie1mois);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorie1mois);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorie1mois);\r\n break;\r\n case \"1a\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorie1annnnnnn);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorie1annnnnnn);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorie1annnnnnn);\r\n break;\r\n case \"3a\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorie3ans);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorie3ans);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorie3ans);\r\n break;\r\n case \"5a\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorie5ans);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorie5ans);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorie5ans);\r\n break;\r\n case \"8a\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorie8ans);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorie8ans);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorie8ans);\r\n break;\r\n case \"ytd\":\r\n $(\"th.variable-action-text\", api.$tableResult.actionCat).html(i18n.categorieYTD);\r\n $(\"th.variable-oblig-text\", api.$tableResult.obligCat).html(i18n.categorieYTD);\r\n $(\"th.variable-flexible-text\", api.$tableResult.flexiblesCat).html(i18n.categorieYTD);\r\n break;\r\n }\r\n }\r\n\r\n //==================================================================================\r\n //=======================================[ Renders ]================================\r\n //==================================================================================\r\n\r\n function renderNom(data, type, row, meta) {\r\n\r\n if (!row.sNom) row.sNom = \"\";\r\n\r\n var result = row.sNom;\r\n\r\n if (row.sUrl !== null && row.sUrl !== \"\") {\r\n result = \"\" + row.sNom + \"\";\r\n }\r\n return result;\r\n }\r\n\r\n function renderAmount(data, type, row, meta) {\r\n if (!data || isNaN(data) || parseFloat(data) === 0) return \"-\";\r\n\r\n if (parseFloat(data) > 0) {\r\n return \"\" + data.toFixed(2) + \" %\" + \"\";\r\n }\r\n else if (parseFloat(data) < 0) {\r\n return \"\" + data.toFixed(2) + \" %\" + \"\";\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function renderAmountVolat(data, type, row, meta) {\r\n if (!data || isNaN(data) || parseFloat(data) === 0) return \"-\";\r\n\r\n return \"\" + data.toFixed(2) + \" %\" + \"\";\r\n }\r\n\r\n function checkbox(data, type, row, meta) {\r\n return '';\r\n }\r\n\r\n});\r\n"]}