Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2015-10-15 16:43:35 +0300
committerThomas Steur <thomas.steur@gmail.com>2015-10-15 16:43:35 +0300
commitbb80b8f831e10f037c8d2722c9967943defef95e (patch)
tree3ce0a28cb1d15148cd15d48b83a39e0c92bf38b8 /plugins/CoreHome/javascripts/calendar.js
parent713a124cc2c118697f3f2801679bc0e2bb5c5dc3 (diff)
parent1e139be2c8c3c6f974e740dd1c9f905e8f673f98 (diff)
Merge branch 'master' into 3.0
Conflicts: CHANGELOG.md core/Plugin/Controller.php core/Version.php plugins/API/ProcessedReport.php plugins/CoreHome/CoreHome.php plugins/CoreHome/javascripts/corehome.js plugins/CoreHome/javascripts/menu.js plugins/CoreHome/javascripts/menu_init.js plugins/CoreHome/lang/en.json plugins/CoreHome/stylesheets/zen-mode.less plugins/CoreHome/templates/ReportsByDimension/_reportsByDimension.twig plugins/CoreHome/templates/_indexContent.twig plugins/CoreHome/templates/getDefaultIndexView.twig plugins/Dashboard/Menu.php plugins/Dashboard/javascripts/dashboard.js plugins/Dashboard/javascripts/dashboardObject.js plugins/Goals/templates/_titleAndEvolutionGraph.twig plugins/Goals/templates/getOverviewView.twig plugins/Morpheus/javascripts/piwikHelper.js plugins/Referrers/templates/index.twig plugins/UserCountry/templates/index.twig plugins/VisitFrequency/templates/_sparklines.twig plugins/ZenMode/ZenMode.php plugins/ZenMode/javascripts/zen-mode.js tests/PHPUnit/Fixtures/UITestFixture.php tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml tests/UI/expected-ui-screenshots tests/UI/specs/Dashboard_spec.js tests/UI/specs/Menus_spec.js tests/UI/specs/UIIntegration_spec.js
Diffstat (limited to 'plugins/CoreHome/javascripts/calendar.js')
-rw-r--r--plugins/CoreHome/javascripts/calendar.js105
1 files changed, 60 insertions, 45 deletions
diff --git a/plugins/CoreHome/javascripts/calendar.js b/plugins/CoreHome/javascripts/calendar.js
index 1c308fb74c..004c15e0aa 100644
--- a/plugins/CoreHome/javascripts/calendar.js
+++ b/plugins/CoreHome/javascripts/calendar.js
@@ -294,7 +294,6 @@
var togglePeriodPickers = function (showSingle) {
$('#periodString').find('.period-date').toggle(showSingle);
$('#periodString').find('.period-range').toggle(!showSingle);
- $('#calendarRangeApply').toggle(!showSingle);
};
//
@@ -355,7 +354,24 @@
});
var reloading = false;
- var changePeriodOnClick = function (periodInput) {
+
+ var changePeriodWithPageReload = function (periodInput) {
+ var url = periodInput.val(),
+ period = broadcast.getValueFromUrl('period', url);
+
+ // if clicking on the selected period, change the period but not the date
+ if (period != 'range' && !reloading) {
+ // only reload if current period is different from selected
+ reloading = true;
+ selectedPeriod = period;
+ updateDate(piwik.currentDateString);
+ return true;
+ }
+
+ return false;
+ };
+
+ var changePeriodOnClickIfPeriodChanged = function (periodInput) {
if (reloading) // if a click event resulted in reloading, don't reload again
{
return;
@@ -367,11 +383,10 @@
// if clicking on the selected period, change the period but not the date
if (selectedPeriod == period && selectedPeriod != 'range') {
// only reload if current period is different from selected
- if (piwik.period != selectedPeriod && !reloading) {
- reloading = true;
- selectedPeriod = period;
- updateDate(piwik.currentDateString);
+ if (piwik.period != selectedPeriod) {
+ return changePeriodWithPageReload(periodInput);
}
+
return true;
}
@@ -380,16 +395,50 @@
$("#otherPeriods").find("label,input").on('dblclick', function (e) {
var id = $(e.target).attr('for');
- changePeriodOnClick($('#' + id));
+ changePeriodOnClickIfPeriodChanged($('#' + id));
+ });
+
+ $("#otherPeriods").find("label,input").on('dblclick', function (e) {
+ var id = $(e.target).attr('for');
+ changePeriodOnClickIfPeriodChanged($('#' + id));
});
+ // Apply date range button will reload the page with the selected range
+ $('#calendarApply')
+ .on('click', function () {
+ var $selectedPeriod = $('#periodMore [name=period]:checked');
+
+ if (!$selectedPeriod.is('#period_id_range')) {
+ changePeriodWithPageReload($selectedPeriod);
+ return true;
+ }
+
+ var dateFrom = $('#inputCalendarFrom').val(),
+ dateTo = $('#inputCalendarTo').val(),
+ oDateFrom = $.datepicker.parseDate('yy-mm-dd', dateFrom),
+ oDateTo = $.datepicker.parseDate('yy-mm-dd', dateTo);
+
+ if (!isValidDate(oDateFrom)
+ || !isValidDate(oDateTo)
+ || oDateFrom > oDateTo) {
+ $('#alert').find('h2').text(_pk_translate('General_InvalidDateRange'));
+ piwikHelper.modalConfirm('#alert', {});
+ return false;
+ }
+ piwikHelper.showAjaxLoading('ajaxLoadingCalendar');
+ broadcast.propagateNewPage('period=range&date=' + dateFrom + ',' + dateTo);
+ })
+ .show();
+
+
+
// when non-range period is clicked, change the period & refresh the date picker
$("#otherPeriods").find("input").on('click', function (e) {
var request_URL = $(e.target).val(),
period = broadcast.getValueFromUrl('period', request_URL),
lastPeriod = selectedPeriod;
- if (changePeriodOnClick($(e.target))) {
+ if (changePeriodOnClickIfPeriodChanged($(e.target))) {
return true;
}
@@ -440,21 +489,6 @@
toggleMonthDropdown(selectedPeriod == 'year');
});
- // reset date/period when opening calendar
- $("#periodString").on('click', "#date,.calendar-icon", function () {
- var periodMore = $("#periodMore").toggle();
- if (periodMore.is(":visible")) {
- periodMore.find(".ui-state-highlight").removeClass('ui-state-highlight');
- }
- });
-
- $('body').on('click', function(e) {
- var target = $(e.target);
- if (target.closest('html').length && !target.closest('#periodString').length && !target.is('option') && $("#periodMore").is(":visible")) {
- $("#periodMore").hide();
- }
- });
-
function onDateRangeSelect(dateText, inst) {
var toOrFrom = inst.id == 'calendarFrom' ? 'From' : 'To';
$('#inputCalendar' + toOrFrom).val(dateText);
@@ -487,27 +521,6 @@
// If not called, the first date appears light brown instead of dark brown
$('.ui-state-hover').removeClass('ui-state-hover');
- // Apply date range button will reload the page with the selected range
- $('#calendarRangeApply')
- .on('click', function () {
- var request_URL = $(e.target).val();
- var dateFrom = $('#inputCalendarFrom').val(),
- dateTo = $('#inputCalendarTo').val(),
- oDateFrom = $.datepicker.parseDate('yy-mm-dd', dateFrom),
- oDateTo = $.datepicker.parseDate('yy-mm-dd', dateTo);
-
- if (!isValidDate(oDateFrom)
- || !isValidDate(oDateTo)
- || oDateFrom > oDateTo) {
- $('#alert').find('h2').text(_pk_translate('General_InvalidDateRange'));
- piwikHelper.modalConfirm('#alert', {});
- return false;
- }
- piwikHelper.showAjaxLoading('ajaxLoadingCalendar');
- broadcast.propagateNewPage('period=range&date=' + dateFrom + ',' + dateTo);
- })
- .show();
-
// Bind the input fields to update the calendar's date when date is manually changed
$('#inputCalendarFrom, #inputCalendarTo')
.keyup(function (e) {
@@ -520,7 +533,7 @@
}
$("#calendar" + fromOrTo).datepicker("setDate", newDate);
if (e.keyCode == 13) {
- $('#calendarRangeApply').click();
+ $('#calendarApply').click();
}
});
return true;
@@ -534,6 +547,8 @@
if (piwik.period == 'range') {
$("#period_id_range").click();
}
+
+ initTopControls();
});
}(jQuery));