implement copying of Stations for Seminary copy feature
This commit is contained in:
commit
40a233fa7d
4342 changed files with 1215466 additions and 0 deletions
211
www/analytics/plugins/UserCountry/javascripts/userCountry.js
Executable file
211
www/analytics/plugins/UserCountry/javascripts/userCountry.js
Executable file
|
|
@ -0,0 +1,211 @@
|
|||
/*!
|
||||
* Piwik - Web Analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#geoip-download-progress,#geoip-updater-progressbar').progressbar({value: 1});
|
||||
|
||||
// handle switch current location provider
|
||||
$('.location-provider').change(function () {
|
||||
if (!$(this).is(':checked')) return; // only handle radio buttons that get checked
|
||||
|
||||
var parent = $(this).closest('p'),
|
||||
loading = $('.loadingPiwik', parent),
|
||||
ajaxSuccess = $('.success', parent);
|
||||
|
||||
var ajaxRequest = new ajaxHelper();
|
||||
ajaxRequest.setLoadingElement(loading);
|
||||
ajaxRequest.addParams({
|
||||
module: 'UserCountry',
|
||||
action: 'setCurrentLocationProvider',
|
||||
id: $(this).val()
|
||||
}, 'get');
|
||||
ajaxRequest.setCallback(
|
||||
function () {
|
||||
var UI = require('piwik/UI');
|
||||
var notification = new UI.Notification();
|
||||
notification.show(_pk_translate('General_Done'), {
|
||||
placeat: ajaxSuccess,
|
||||
context: 'success',
|
||||
noclear: true,
|
||||
type: 'toast',
|
||||
style: {display:'inline-block', marginTop: '10px'},
|
||||
id: 'userCountryLocationProvider'
|
||||
});
|
||||
}
|
||||
);
|
||||
ajaxRequest.send(false);
|
||||
});
|
||||
|
||||
// handle 'refresh location' link click
|
||||
$('.refresh-loc').click(function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var cell = $(this).parent().parent(),
|
||||
loading = $('.loadingPiwik', cell),
|
||||
location = $('.location', cell);
|
||||
|
||||
location.css('visibility', 'hidden');
|
||||
|
||||
var ajaxRequest = new ajaxHelper();
|
||||
ajaxRequest.setLoadingElement(loading);
|
||||
ajaxRequest.addParams({
|
||||
module: 'UserCountry',
|
||||
action: 'getLocationUsingProvider',
|
||||
id: $(this).attr('data-impl-id')
|
||||
}, 'get');
|
||||
ajaxRequest.setCallback(
|
||||
function (response) {
|
||||
location.html('<strong><em>' + response + '</em></strong>').css('visibility', 'visible');
|
||||
}
|
||||
);
|
||||
ajaxRequest.setFormat('html');
|
||||
ajaxRequest.send(false);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
// geoip database wizard
|
||||
var downloadNextChunk = function (action, thisId, progressBarId, cont, extraData, callback) {
|
||||
var data = {
|
||||
module: 'UserCountry',
|
||||
action: action,
|
||||
'continue': cont ? 1 : 0
|
||||
};
|
||||
for (var k in extraData) {
|
||||
data[k] = extraData[k];
|
||||
}
|
||||
|
||||
var ajaxRequest = new ajaxHelper();
|
||||
ajaxRequest.addParams(data, 'post');
|
||||
ajaxRequest.setCallback(function (response) {
|
||||
if (!response || response.error) {
|
||||
callback(response);
|
||||
}
|
||||
else {
|
||||
// update progress bar
|
||||
var newProgressVal = Math.ceil((response.current_size / response.expected_file_size) * 100);
|
||||
newProgressVal = Math.min(newProgressVal, 100);
|
||||
$('#' + progressBarId).progressbar('option', 'value', newProgressVal);
|
||||
|
||||
// if incomplete, download next chunk, otherwise, show updater manager
|
||||
if (newProgressVal < 100) {
|
||||
downloadNextChunk(action, thisId, progressBarId, true, extraData, callback);
|
||||
}
|
||||
else {
|
||||
callback(response);
|
||||
}
|
||||
}
|
||||
});
|
||||
ajaxRequest.setErrorCallback(function () {
|
||||
callback({error: _pk_translate('UserCountry_FatalErrorDuringDownload')});
|
||||
});
|
||||
ajaxRequest.send(false);
|
||||
};
|
||||
|
||||
$('#start-download-free-geoip').click(function () {
|
||||
$('#geoipdb-screen1').hide("slide", {direction: "left"}, 800, function () {
|
||||
$('#geoipdb-screen2-download').fadeIn(1000);
|
||||
|
||||
// start download of free dbs
|
||||
downloadNextChunk(
|
||||
'downloadFreeGeoIPDB',
|
||||
'geoipdb-screen2-download',
|
||||
'geoip-download-progress',
|
||||
false,
|
||||
{},
|
||||
function (response) {
|
||||
if (response.error) {
|
||||
// on error, show error & stop downloading
|
||||
$('#geoipdb-screen2-download').fadeOut(1000, function () {
|
||||
$('#manage-geoip-dbs').html(response.error);
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('#geoipdb-screen2-download').fadeOut(1000, function () {
|
||||
$('#manage-geoip-dbs').html(response.next_screen);
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
$('body')
|
||||
.on('click', '#start-automatic-update-geoip', function () {
|
||||
$('#geoipdb-screen1').hide("slide", {direction: "left"}, 800, function () {
|
||||
$('#geoip-db-mangement').text(_pk_translate('UserCountry_SetupAutomaticUpdatesOfGeoIP'));
|
||||
$('#geoipdb-update-info').fadeIn(1000);
|
||||
});
|
||||
})
|
||||
.on('click', '#update-geoip-links', function () {
|
||||
var currentDownloading = null;
|
||||
var updateGeoIPSuccess = function (response) {
|
||||
if (response && response.error) {
|
||||
$('#geoip-progressbar-container').hide();
|
||||
|
||||
var UI = require('piwik/UI');
|
||||
var notification = new UI.Notification();
|
||||
notification.show(response.error, {
|
||||
placeat: '#geoipdb-update-info-error',
|
||||
context: 'error',
|
||||
style: {display: 'inline-block'},
|
||||
id: 'userCountryGeoIpUpdate'
|
||||
});
|
||||
|
||||
}
|
||||
else if (response && response.to_download) {
|
||||
var continuing = currentDownloading == response.to_download;
|
||||
currentDownloading = response.to_download;
|
||||
|
||||
// show progress bar w/ message
|
||||
$('#geoip-updater-progressbar').progressbar('option', 'value', 1);
|
||||
$('#geoip-updater-progressbar-label').html(response.to_download_label);
|
||||
$('#geoip-progressbar-container').show();
|
||||
|
||||
// start/continue download
|
||||
downloadNextChunk(
|
||||
'downloadMissingGeoIpDb', 'geoipdb-update-info', 'geoip-updater-progressbar',
|
||||
continuing, {key: response.to_download}, updateGeoIPSuccess);
|
||||
}
|
||||
else {
|
||||
$('#geoip-updater-progressbar-label').html('');
|
||||
$('#geoip-progressbar-container').hide();
|
||||
|
||||
var UI = require('piwik/UI');
|
||||
var notification = new UI.Notification();
|
||||
notification.show(_pk_translate('General_Done'), {
|
||||
placeat: '#done-updating-updater',
|
||||
context: 'success',
|
||||
noclear: true,
|
||||
type: 'toast',
|
||||
style: {display: 'inline-block'},
|
||||
id: 'userCountryGeoIpUpdate'
|
||||
});
|
||||
|
||||
$('#geoip-updater-next-run-time').html(response.nextRunTime).parent().effect('highlight', {color: '#FFFFCB'}, 2000);
|
||||
}
|
||||
};
|
||||
|
||||
// setup the auto-updater
|
||||
var ajaxRequest = new ajaxHelper();
|
||||
var periodSelected = $('#geoip-update-period-cell').find('input:checked').val();
|
||||
ajaxRequest.addParams({
|
||||
period: periodSelected
|
||||
}, 'get');
|
||||
ajaxRequest.addParams({
|
||||
module: 'UserCountry',
|
||||
action: 'updateGeoIPLinks',
|
||||
token_auth: piwik.token_auth,
|
||||
loc_db: $('#geoip-location-db').val(),
|
||||
isp_db: $('#geoip-isp-db').val(),
|
||||
org_db: $('#geoip-org-db').val()
|
||||
}, 'post');
|
||||
ajaxRequest.setCallback(updateGeoIPSuccess);
|
||||
ajaxRequest.send(false);
|
||||
}
|
||||
);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue