diff --git a/workflow/engine/controllers/strategicDashboard.php b/workflow/engine/controllers/strategicDashboard.php index 07848812f..d36f8e586 100644 --- a/workflow/engine/controllers/strategicDashboard.php +++ b/workflow/engine/controllers/strategicDashboard.php @@ -178,42 +178,8 @@ class StrategicDashboard extends Controller $this->setVar('usrId', $this->usrId); $this->setVar('credentials', $this->clientToken); $this->setVar('unitCost', $this->usrUnitCost); - - $translation = array(); - $translation['ID_MANAGERS_DASHBOARDS'] = G::LoadTranslation( 'ID_MANAGERS_DASHBOARDS'); - $translation['ID_PRO_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_PRO_EFFICIENCY_INDEX'); - $translation['ID_EFFICIENCY_USER'] = G::LoadTranslation( 'ID_EFFICIENCY_USER'); - $translation['ID_COMPLETED_CASES'] = G::LoadTranslation( 'ID_COMPLETED_CASES'); - $translation['ID_WELL_DONE'] = G::LoadTranslation( 'ID_WELL_DONE'); - $translation['ID_NUMBER_CASES'] = G::LoadTranslation( 'ID_NUMBER_CASES'); - $translation['ID_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_EFFICIENCY_INDEX'); - $translation['ID_INEFFICIENCY_COST'] = G::LoadTranslation( 'ID_INEFFICIENCY_COST'); - $translation['ID_EFFICIENCY_COST'] = G::LoadTranslation( 'ID_EFFICIENCY_COST'); - $translation['ID_RELATED_PROCESS'] = G::LoadTranslation( 'ID_RELATED_PROCESS'); - $translation['ID_RELATED_GROUPS'] = G::LoadTranslation( 'ID_RELATED_GROUPS'); - $translation['ID_RELATED_TASKS'] = G::LoadTranslation( 'ID_RELATED_TASKS'); - $translation['ID_RELATED_USERS'] = G::LoadTranslation( 'ID_RELATED_USERS'); - $translation['ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'] = G::LoadTranslation( 'ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'); - $translation['ID_PROCESS_TASKS'] = G::LoadTranslation( 'ID_PROCESS_TASKS'); - $translation['ID_TIME_HOURS'] = G::LoadTranslation( 'ID_TIME_HOURS'); - $translation['ID_GROUPS'] = G::LoadTranslation( 'ID_GROUPS'); - $translation['ID_COSTS'] = G::LoadTranslation( 'ID_COSTS'); - $translation['ID_TASK'] = G::LoadTranslation( 'ID_TASK'); - $translation['ID_USER'] = G::LoadTranslation( 'ID_USER'); - $translation['ID_YEAR'] = G::LoadTranslation( 'ID_YEAR'); - $translation['ID_USERS'] = G::LoadTranslation( 'ID_USERS'); - $translation['ID_USERS'] = G::LoadTranslation( 'ID_USERS'); - $translation['ID_OVERDUE'] = G::LoadTranslation( 'ID_OVERDUE'); - $translation['ID_AT_RISK'] = G::LoadTranslation( 'ID_AT_RISK'); - $translation['ID_ON_TIME'] = G::LoadTranslation( 'ID_ON_TIME'); - $translation['ID_NO_INEFFICIENT_PROCESSES'] = G::LoadTranslation('ID_NO_INEFFICIENT_PROCESSES'); - $translation['ID_NO_INEFFICIENT_TASKS'] = G::LoadTranslation('ID_NO_INEFFICIENT_TASKS'); - $translation['ID_NO_INEFFICIENT_USER_GROUPS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USER_GROUPS'); - $translation['ID_NO_INEFFICIENT_USERS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USERS'); - $translation['ID_DISPLAY_EMPTY'] = G::LoadTranslation('ID_DISPLAY_EMPTY'); - //text for inbox empty in status indicator - $translation['ID_INBOX_EMPTY'] = G::LoadTranslation('ID_INBOX_EMPTY'); - + + $translation = $this->getTranslations(); $this->setVar('translation', $translation); $this->render(); } catch (Exception $error) { @@ -231,39 +197,7 @@ class StrategicDashboard extends Controller $this->setVar('credentials', $this->clientToken); $this->setVar('unitCost', $this->usrUnitCost); - $translation = array(); - $translation['ID_MANAGERS_DASHBOARDS'] = G::LoadTranslation( 'ID_MANAGERS_DASHBOARDS'); - $translation['ID_PRO_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_PRO_EFFICIENCY_INDEX'); - $translation['ID_EFFICIENCY_USER'] = G::LoadTranslation( 'ID_EFFICIENCY_USER'); - $translation['ID_COMPLETED_CASES'] = G::LoadTranslation( 'ID_COMPLETED_CASES'); - $translation['ID_WELL_DONE'] = G::LoadTranslation( 'ID_WELL_DONE'); - $translation['ID_NUMBER_CASES'] = G::LoadTranslation( 'ID_NUMBER_CASES'); - $translation['ID_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_EFFICIENCY_INDEX'); - $translation['ID_INEFFICIENCY_COST'] = G::LoadTranslation( 'ID_INEFFICIENCY_COST'); - $translation['ID_EFFICIENCY_COST'] = G::LoadTranslation( 'ID_EFFICIENCY_COST'); - $translation['ID_RELATED_PROCESS'] = G::LoadTranslation( 'ID_RELATED_PROCESS'); - $translation['ID_RELATED_GROUPS'] = G::LoadTranslation( 'ID_RELATED_GROUPS'); - $translation['ID_RELATED_TASKS'] = G::LoadTranslation( 'ID_RELATED_TASKS'); - $translation['ID_RELATED_USERS'] = G::LoadTranslation( 'ID_RELATED_USERS'); - $translation['ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'] = G::LoadTranslation( 'ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'); - $translation['ID_PROCESS_TASKS'] = G::LoadTranslation( 'ID_PROCESS_TASKS'); - $translation['ID_TIME_HOURS'] = G::LoadTranslation( 'ID_TIME_HOURS'); - $translation['ID_GROUPS'] = G::LoadTranslation( 'ID_GROUPS'); - $translation['ID_COSTS'] = G::LoadTranslation( 'ID_COSTS'); - $translation['ID_TASK'] = G::LoadTranslation( 'ID_TASK'); - $translation['ID_USER'] = G::LoadTranslation( 'ID_USER'); - $translation['ID_YEAR'] = G::LoadTranslation( 'ID_YEAR'); - $translation['ID_USERS'] = G::LoadTranslation( 'ID_USERS'); - $translation['ID_OVERDUE'] = G::LoadTranslation( 'ID_OVERDUE'); - $translation['ID_AT_RISK'] = G::LoadTranslation( 'ID_AT_RISK'); - $translation['ID_ON_TIME'] = G::LoadTranslation( 'ID_ON_TIME'); - $translation['ID_NO_INEFFICIENT_PROCESSES'] = G::LoadTranslation('ID_NO_INEFFICIENT_PROCESSES'); - $translation['ID_NO_INEFFICIENT_TASKS'] = G::LoadTranslation('ID_NO_INEFFICIENT_TASKS'); - $translation['ID_NO_INEFFICIENT_USER_GROUPS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USER_GROUPS'); - $translation['ID_NO_INEFFICIENT_USERS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USERS'); - $translation['ID_DISPLAY_EMPTY'] = G::LoadTranslation('ID_DISPLAY_EMPTY'); - $translation['ID_INBOX_EMPTY'] = G::LoadTranslation('ID_INBOX_EMPTY'); - + $translation = $this->getTranslations(); $this->setVar('translation', $translation); $this->render(); } catch (Exception $error) { @@ -272,4 +206,60 @@ class StrategicDashboard extends Controller die(); } } + + private function getTranslations() { + $translation = array(); + $translation['ID_MANAGERS_DASHBOARDS'] = G::LoadTranslation( 'ID_MANAGERS_DASHBOARDS'); + $translation['ID_PRO_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_PRO_EFFICIENCY_INDEX'); + $translation['ID_EFFICIENCY_USER'] = G::LoadTranslation( 'ID_EFFICIENCY_USER'); + $translation['ID_COMPLETED_CASES'] = G::LoadTranslation( 'ID_COMPLETED_CASES'); + $translation['ID_WELL_DONE'] = G::LoadTranslation( 'ID_WELL_DONE'); + $translation['ID_NUMBER_CASES'] = G::LoadTranslation( 'ID_NUMBER_CASES'); + $translation['ID_EFFICIENCY_INDEX'] = G::LoadTranslation( 'ID_EFFICIENCY_INDEX'); + $translation['ID_INEFFICIENCY_COST'] = G::LoadTranslation( 'ID_INEFFICIENCY_COST'); + $translation['ID_EFFICIENCY_COST'] = G::LoadTranslation( 'ID_EFFICIENCY_COST'); + $translation['ID_RELATED_PROCESS'] = G::LoadTranslation( 'ID_RELATED_PROCESS'); + $translation['ID_RELATED_GROUPS'] = G::LoadTranslation( 'ID_RELATED_GROUPS'); + $translation['ID_RELATED_TASKS'] = G::LoadTranslation( 'ID_RELATED_TASKS'); + $translation['ID_RELATED_USERS'] = G::LoadTranslation( 'ID_RELATED_USERS'); + $translation['ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'] = G::LoadTranslation( 'ID_GRID_PAGE_NO_DASHBOARD_MESSAGE'); + $translation['ID_PROCESS_TASKS'] = G::LoadTranslation( 'ID_PROCESS_TASKS'); + $translation['ID_TIME_HOURS'] = G::LoadTranslation( 'ID_TIME_HOURS'); + $translation['ID_GROUPS'] = G::LoadTranslation( 'ID_GROUPS'); + $translation['ID_COSTS'] = G::LoadTranslation( 'ID_COSTS'); + $translation['ID_TASK'] = G::LoadTranslation( 'ID_TASK'); + $translation['ID_USER'] = G::LoadTranslation( 'ID_USER'); + $translation['ID_YEAR'] = G::LoadTranslation( 'ID_YEAR'); + $translation['ID_USERS'] = G::LoadTranslation( 'ID_USERS'); + $translation['ID_USERS'] = G::LoadTranslation( 'ID_USERS'); + $translation['ID_OVERDUE'] = G::LoadTranslation( 'ID_OVERDUE'); + $translation['ID_AT_RISK'] = G::LoadTranslation( 'ID_AT_RISK'); + $translation['ID_ON_TIME'] = G::LoadTranslation( 'ID_ON_TIME'); + $translation['ID_NO_INEFFICIENT_PROCESSES'] = G::LoadTranslation('ID_NO_INEFFICIENT_PROCESSES'); + $translation['ID_NO_INEFFICIENT_TASKS'] = G::LoadTranslation('ID_NO_INEFFICIENT_TASKS'); + $translation['ID_NO_INEFFICIENT_USER_GROUPS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USER_GROUPS'); + $translation['ID_NO_INEFFICIENT_USERS'] = G::LoadTranslation('ID_NO_INEFFICIENT_USERS'); + $translation['ID_DISPLAY_EMPTY'] = G::LoadTranslation('ID_DISPLAY_EMPTY'); + $translation['ID_INBOX_EMPTY'] = G::LoadTranslation('ID_INBOX_EMPTY'); + $translation['ID_INDICATOR'] = G::LoadTranslation('ID_INDICATOR'); + $translation['ID_PERIODICITY'] = G::LoadTranslation('ID_PERIODICITY'); + $translation['ID_MONTH'] = G::LoadTranslation('ID_MONTH'); + $translation['ID_QUARTER'] = G::LoadTranslation('ID_QUARTER'); + $translation['ID_SEMESTER'] = G::LoadTranslation('ID_SEMESTER'); + $translation['ID_TO'] = G::LoadTranslation('ID_TO'); + $translation['ID_FROM'] = G::LoadTranslation('ID_FROM'); + $translation['ID_MONTH_ABB_1'] = G::LoadTranslation('ID_MONTH_ABB_1'); + $translation['ID_MONTH_ABB_2'] = G::LoadTranslation('ID_MONTH_ABB_2'); + $translation['ID_MONTH_ABB_3'] = G::LoadTranslation('ID_MONTH_ABB_3'); + $translation['ID_MONTH_ABB_4'] = G::LoadTranslation('ID_MONTH_ABB_4'); + $translation['ID_MONTH_ABB_5'] = G::LoadTranslation('ID_MONTH_ABB_5'); + $translation['ID_MONTH_ABB_6'] = G::LoadTranslation('ID_MONTH_ABB_6'); + $translation['ID_MONTH_ABB_7'] = G::LoadTranslation('ID_MONTH_ABB_7'); + $translation['ID_MONTH_ABB_8'] = G::LoadTranslation('ID_MONTH_ABB_8'); + $translation['ID_MONTH_ABB_9'] = G::LoadTranslation('ID_MONTH_ABB_9'); + $translation['ID_MONTH_ABB_10'] = G::LoadTranslation('ID_MONTH_ABB_10'); + $translation['ID_MONTH_ABB_11'] = G::LoadTranslation('ID_MONTH_ABB_11'); + $translation['ID_MONTH_ABB_12'] = G::LoadTranslation('ID_MONTH_ABB_12'); + return $translation; + } } diff --git a/workflow/engine/js/strategicDashboard/timeSeriesModel.js b/workflow/engine/js/strategicDashboard/timeSeriesModel.js index bc25e616d..ec9378423 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesModel.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesModel.js @@ -1,4 +1,4 @@ -var TimeSeriesModel = function (oauthToken, server, workspace, userId, dashboardId) { +var TimeSeriesModel = function (oauthToken, server, workspace, userId, strings) { this.server = server; this.workspace = workspace; this.baseUrl = "/api/1.0/" + workspace + "/"; @@ -7,45 +7,44 @@ var TimeSeriesModel = function (oauthToken, server, workspace, userId, dashboard this.cache = {}; this.forceRemote=false; //if true, the next call will go to the remote server this.userId = userId; - this.dashboardId = dashboardId; + this.strings = strings; }; +TimeSeriesModel.prototype.label = function(id) { + return this.strings[id]; +}; TimeSeriesModel.prototype.indicatorList = function(dashboardId,initDate, endDate) { var dummyDate = '' - return this.getJson('dashboard/' + dashboardId + '/indicator?dateIni=' + initDate + '&dateFin=' + endDate); + return this.helper.getJson('dashboard/' + dashboardId + '/indicator?dateIni=' + initDate + '&dateFin=' + endDate, this.baseUrl, this.oauthToken); }; - -/*TimeSeriesModel.prototype.indicatorList = function() { - var requestFinished = $.Deferred(); - var json = [ {"label":"PEI", "value":"1111"}, - {"label":"EEI", "value":"2222"} - ]; - requestFinished.resolve(json); - return requestFinished.promise(); -};*/ - TimeSeriesModel.prototype.periodicityList = function() { var that = this; - var json = [{label:"Monthly", value:that.helper.ReportingPeriodicityEnum.MONTH}, - {label:"Quaterly", value:that.helper.ReportingPeriodicityEnum.QUARTER}, - {label:"Semester", value:that.helper.ReportingPeriodicityEnum.SEMESTER}, - {label:"Yearly", value:that.helper.ReportingPeriodicityEnum.YEAR} + var json = [{label:that.label('ID_MONTH'), value:that.helper.ReportingPeriodicityEnum.MONTH}, + {label:that.label('ID_QUARTER'), value:that.helper.ReportingPeriodicityEnum.QUARTER}, + {label:that.label('ID_SEMESTER'), value:that.helper.ReportingPeriodicityEnum.SEMESTER}, + {label:that.label('ID_YEAR'), value:that.helper.ReportingPeriodicityEnum.YEAR} ]; return json; }; TimeSeriesModel.prototype.monthList = function() { - var json = [{label:"Jan", value:"1"}, - {label:"Feb", value:"2"}, - {label:"Mar", value:"3"}, - {label:"Apr", value:"4"}, - {label:"May", value:"5"}, - {label:"Jun", value:"6"}, - {label:"Jul", value:"7"} - ]; + var that = this; + var json = [{label:that.label("ID_MONTH_ABB_1"), value:"1"}, + {label:that.label("ID_MONTH_ABB_2"), value:"2"}, + {label:that.label("ID_MONTH_ABB_3"), value:"3"}, + {label:that.label("ID_MONTH_ABB_4"), value:"4"}, + {label:that.label("ID_MONTH_ABB_5"), value:"5"}, + {label:that.label("ID_MONTH_ABB_6"), value:"6"}, + {label:that.label("ID_MONTH_ABB_7"), value:"7"}, + {label:that.label("ID_MONTH_ABB_8"), value:"8"}, + {label:that.label("ID_MONTH_ABB_9"), value:"9"}, + {label:that.label("ID_MONTH_ABB_10"), value:"10"}, + {label:that.label("ID_MONTH_ABB_11"), value:"11"}, + {label:that.label("ID_MONTH_ABB_12"), value:"12"} + ]; return json; }; @@ -63,7 +62,12 @@ TimeSeriesModel.prototype.semesterList = function() { }; TimeSeriesModel.prototype.yearList = function() { - var json = [{label:"2015", value:"2015"}, {label:"2014", value:"2014"}]; + var currentYear = this.defaultEndDate().getFullYear(); + var json = []; + + for (var i = currentYear; i > currentYear - 10; i--) { + json.push ({label:i, value : i}); + } return json; }; @@ -82,32 +86,8 @@ TimeSeriesModel.prototype.historicData = function(indicatorId, periodicity, init "&end_date=" + this.helper.date2MysqlString(endDate) + "&periodicity=" + periodicity + "&language=en"; - return this.getJson(endPoint); - + return this.helper.getJson(endPoint, this.baseUrl, this.oauthToken); }; -TimeSeriesModel.prototype.getJson = function (endPoint) { - var that = this; - var callUrl = this.baseUrl + endPoint - var requestFinished = $.Deferred(); - - return $.ajax({ - url: callUrl, - type: 'GET', - datatype: 'json', - success: function (data) { - that.forceRemote = false; - requestFinished.resolve(data); - }, - error: function(jqXHR, textStatus, errorThrown) { - throw new Error(callUrl + ' -- ' + errorThrown); - }, - beforeSend: function (xhr) { - xhr.setRequestHeader('Authorization', 'Bearer ' + that.oauthToken); - //xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); - } - }); -} - diff --git a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js index 156d8a6fb..e274443c0 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesPresenter.js @@ -4,26 +4,37 @@ var TimeSeriesPresenter = function (model) { this.model = model; }; -TimeSeriesPresenter.prototype.initializePresenter = function () { +TimeSeriesPresenter.prototype.initializePresenter = function (dashboardId) { var that = this; var requestFinished = $.Deferred(); - $.when (this.fillIndicatorList()) + $.when (this.fillIndicatorList(dashboardId)) .done(function () { - that.periodicityState = {selValue: that.model.periodicityList()[0], list: that.model.periodicityList()} + that.periodicityState = {selValue: that.model.periodicityList()[0], + list: that.model.periodicityList(), + label: that.model.label('ID_PERIODICITY') + ": " + }; that.initPeriodState = {selValue:that.model.monthList()[0].value, list:that.model.monthList(), - visible:true }; + visible:true, + label: that.model.label('ID_FROM') + ": " + }; that.initYearState = {selValue : that.model.yearList() [0].value, - list : that.model.yearList()}; + list : that.model.yearList(), + label: that.model.label('ID_YEAR') + ": " + }; that.endPeriodState = {selValue : that.model.defaultEndDate().getMonth() + 1, list : that.model.monthList(), - visible:true }; + visible:true, + label: that.model.label('ID_TO') + ": " + }; that.endYearState = { selValue : that.model.yearList() [0].value, - list : that.model.yearList()}; + list : that.model.yearList(), + label: that.model.label('ID_YEAR') + ": " + }; that.initDate = that.model.defaultInitDate(); that.endDate = that.model.defaultEndDate(); @@ -33,17 +44,23 @@ TimeSeriesPresenter.prototype.initializePresenter = function () { return requestFinished.promise(); }; -TimeSeriesPresenter.prototype.fillIndicatorList = function () { +TimeSeriesPresenter.prototype.fillIndicatorList = function (dashboardId) { var requestFinished = $.Deferred(); var that = this; var dummyDate = this.helper.date2MysqlString(new Date()); - that.indicatorList(that.model.dashboardId, dummyDate, dummyDate) + that.indicatorList(dashboardId, dummyDate, dummyDate) .done(function(modelData){ if (modelData== null || modelData.length == 0) { - that.indicatorState = {selValue: null, list: []} + that.indicatorState = {selValue: null, + list: [], + label: that.model.label('ID_INDICATOR') + ": " + }; } else { - that.indicatorState = {selValue: modelData[0].value, list: modelData} + that.indicatorState = {selValue: modelData[0].value, + list: modelData, + label: that.model.label('ID_INDICATOR') + ": " + }; } requestFinished.resolve(that.indicatorState); }); @@ -74,7 +91,7 @@ TimeSeriesPresenter.prototype.changePeriodicity = function (periodicity) { switch (periodicity * 1) { case this.helper.ReportingPeriodicityEnum.MONTH: - this.changePeriodicityToQuarter(this.model.monthList()); + this.changePeriodicityToMonth(this.model.monthList()); break; case this.helper.ReportingPeriodicityEnum.QUARTER: this.changePeriodicityToQuarter(this.model.quarterList()); @@ -166,19 +183,15 @@ TimeSeriesPresenter.prototype.periodInitDate = function (periodicity, period, ye var retval = null; switch (periodicity * 1) { case this.helper.ReportingPeriodicityEnum.MONTH: - //retval = '01-' + period + '-' + year; retval = new Date(year, period - 1, 1); break; case this.helper.ReportingPeriodicityEnum.QUARTER: - //retval = '01-' + (3*(period-1) + 1) + '-' + year; retval = new Date(year, 3 * (period-1), 1); break; case this.helper.ReportingPeriodicityEnum.SEMESTER: - //retval = '01-' + (6*(period-1) + 1) + '-' + year; retval = new Date(year, 6 * (period-1), 1); break; case this.helper.ReportingPeriodicityEnum.YEAR: - //retval = '01-01-' + year; retval = new Date(year, 0, 1); break; } @@ -189,7 +202,6 @@ TimeSeriesPresenter.prototype.periodInitDate = function (periodicity, period, ye } TimeSeriesPresenter.prototype.periodEndDate = function (periodicity, period, year) { - var retval = null; switch (periodicity * 1) { case this.helper.ReportingPeriodicityEnum.MONTH: diff --git a/workflow/engine/js/strategicDashboard/timeSeriesView.js b/workflow/engine/js/strategicDashboard/timeSeriesView.js index 4d585c92e..e1998c3e3 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesView.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesView.js @@ -1,12 +1,12 @@ helper = new ViewDashboardHelper(); var ws = urlProxy.split('/'); -var dashboardId = '3290922985542460a19e7c1021519011'; -tsModel = new TimeSeriesModel(token, urlProxy, ws[3], pageUserId, dashboardId); +tsModel = new TimeSeriesModel(token, urlProxy, ws[3], pageUserId, G_STRING); tsPresenter = new TimeSeriesPresenter(tsModel); $(document).ready(function() { - + $('#indicatorsView').show(); + $('#compareDiv').hide(); $('#periodicityList').change(function(){ var id = $(this).val(); @@ -15,6 +15,10 @@ $(document).ready(function() { }); $('#compareButton').click(function(){ + $('#comparisonBreadcrumb').find('li').remove() + $('#comparisonBreadcrumb') + .append ('