blessing-skin-server/resources/assets/src/scripts/admin.js
2017-01-20 18:22:10 +08:00

451 lines
13 KiB
JavaScript

/*
* @Author: printempw
* @Date: 2016-07-22 14:02:44
* @Last Modified by: printempw
* @Last Modified time: 2017-01-08 16:07:24
*/
'use strict';
$(document).ready(function() {
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue'
});
});
$('#layout-skins-list [data-skin]').click(function(e) {
e.preventDefault();
var skin_name = $(this).data('skin');
$('body').removeClass(current_skin).addClass(skin_name);
current_skin = skin_name;
});
$('#color-submit').click(function() {
$.ajax({
type: "POST",
url: "./customize?action=color",
dataType: "json",
data: { "color_scheme": current_skin },
success: function(json) {
if (json.errno == 0)
toastr.success(json.msg);
else
toastr.warning(json.msg);
},
error: showAjaxError
});
});
function changeUserEmail(uid) {
var email = prompt(trans('admin.newUserEmail'));
if (!email) return;
$.ajax({
type: "POST",
url: "./users?action=email",
dataType: "json",
data: { 'uid': uid, 'email': email },
success: function(json) {
if (json.errno == 0) {
$($('tr#'+uid+' > td')[1]).html(email);
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function changeUserNickName(uid) {
var nickname = prompt(trans('admin.newUserNickname'));
if (!nickname) return;
$.ajax({
type: "POST",
url: "./users?action=nickname",
dataType: "json",
data: { 'uid': uid, 'nickname': nickname },
success: function(json) {
if (json.errno == 0) {
$($('tr#'+uid+' > td')[2]).html(nickname);
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function changeUserPwd(uid) {
var password = prompt(trans('admin.newUserPassword'));
if (!password) return;
$.ajax({
type: "POST",
url: "./users?action=password",
dataType: "json",
data: { 'uid': uid, 'password': password },
success: function(json) {
if (json.errno == 0)
toastr.success(json.msg);
else
toastr.warning(json.msg);
},
error: showAjaxError
});
}
function changeUserScore(uid, score) {
$.ajax({
type: "POST",
url: "./users?action=score",
dataType: "json",
data: { 'uid': uid, 'score': score },
success: function(json) {
if (json.errno == 0) {
$('tr#'+uid+' > td > .score').val(score);
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function changeBanStatus(uid) {
$.ajax({
type: "POST",
url: "./users?action=ban",
dataType: "json",
data: { 'uid': uid },
success: function(json) {
if (json.errno == 0) {
var object = $('#'+uid).find('a#ban');
var dom = '<a id="ban" href="javascript:changeBanStatus('+uid+');">' +
(object.text() == trans('admin.ban') ? trans('admin.unban') : trans('admin.ban')) + '</a>';
object.html(dom);
$('#'+uid).find('#permission').text(json.permission == '-1' ? trans('admin.banned') : trans('admin.normal'));
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function changeAdminStatus(uid) {
$.ajax({
type: "POST",
url: "./users?action=admin",
dataType: "json",
data: { 'uid': uid },
success: function(json) {
if (json.errno == 0) {
var object = $('#'+uid).find('a#admin');
var dom = '<a href="javascript:changeAdminStatus('+uid+');">' +
(object.text() == trans('admin.setAdmin') ? trans('admin.unsetAdmin') : trans('admin.setAdmin')) + '</a>';
object.html(dom);
$('#'+uid).find('#permission').text(json.permission == '1' ? trans('admin.admin') : trans('admin.normal'));
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function deleteUserAccount(uid) {
if (!window.confirm(trans('admin.deleteUserNotice'))) return;
$.ajax({
type: "POST",
url: "./users?action=delete",
dataType: "json",
data: { 'uid': uid },
success: function(json) {
if (json.errno == 0) {
$('tr#'+uid).remove();
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
$('body').on('keypress', '.score', function(event){
if (event.which == 13) {
changeUserScore($(this).parent().parent().attr('id'), $(this).val());
}
});
$('body').on('change', '#preference', function() {
$.ajax({
type: "POST",
url: "./players?action=preference",
dataType: "json",
data: { 'pid': $(this).parent().parent().attr('id'), 'preference': $(this).val() },
success: function(json) {
if (json.errno == 0) {
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
});
function changeTexture(pid) {
var dom = '<div class="form-group">'+
'<label for="model">'+trans('admin.textureType')+'</label>'+
'<select class="form-control" id="model">'+
'<option value="steve">'+trans('admin.skin', {'model': 'Steve'})+'</option>'+
'<option value="alex">'+trans('admin.skin', {'model': 'Alex'})+'</option>'+
'<option value="cape">'+trans('admin.cape')+'</option>'+
'</select>'+
'</div>'+
'<div class="form-group">'+
'<label for="tid">'+trans('admin.pid')+'</label>'+
'<input id="tid" class="form-control" type="text" placeholder="'+trans('admin.pidNotice')+'">'+
'</div>';
var player_name = $('#'+pid).find('#player-name').text();
showModal(dom, trans('admin.changePlayerTexture', {'player': player_name}), 'default', 'ajaxChangeTexture('+pid+')');
return;
}
function ajaxChangeTexture(pid) {
// remove interference of modal which is hide
$('.modal').each(function() {
if ($(this).css('display') == "none")
$(this).remove();
});
var model = $('#model').val();
var tid = $('#tid').val();
$.ajax({
type: "POST",
url: "./players?action=texture",
dataType: "json",
data: { 'pid': pid, 'model': model, 'tid': tid },
success: function(json) {
if (json.errno == 0) {
$('#'+pid+'-'+model).attr('src', '../preview/64/'+tid+'.png');
$('.modal').modal('hide');
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function changeOwner(pid) {
var uid = prompt(trans('admin.changePlayerOwner'));
if (!uid) return;
$.ajax({
type: "POST",
url: "./players?action=owner",
dataType: "json",
data: { 'pid': pid, 'uid': uid },
success: function(json) {
if (json.errno == 0) {
$($('#'+pid).children()[1]).text(uid);
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function deletePlayer(pid) {
if (!window.confirm(trans('admin.deletePlayerNotice'))) return;
$.ajax({
type: "POST",
url: "./players?action=delete",
dataType: "json",
data: { 'pid': pid },
success: function(json) {
if (json.errno == 0) {
$('tr#'+pid).remove();
toastr.success(json.msg);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function enablePlugin(name) {
$.ajax({
type: "POST",
url: "?action=enable&name=" + name,
dataType: "json",
success: function(json) {
if (json.errno == 0) {
toastr.success(json.msg);
table.ajax.reload(null, false);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function disablePlugin(name) {
$.ajax({
type: "POST",
url: "?action=disable&name=" + name,
dataType: "json",
success: function(json) {
if (json.errno == 0) {
toastr.warning(json.msg);
table.ajax.reload(null, false);
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
}
function deletePlugin(name) {
swal({
text: trans('admin.confirmDeletion'),
type: 'warning',
showCancelButton: true
}).then(function() {
$.ajax({
type: "POST",
url: "?action=delete&name=" + name,
dataType: "json",
success: function(json) {
if (json.errno == 0) {
toastr.success(json.msg);
$('tr[id=plugin-'+name+']').remove();
} else {
toastr.warning(json.msg);
}
},
error: showAjaxError
});
});
}
function downloadUpdates() {
var file_size = 0;
var progress = 0;
console.log("Prepared to download");
$.ajax({
url: './update/download?action=prepare-download',
type: 'GET',
dataType: 'json',
beforeSend: function() {
$('#update-button').html('<i class="fa fa-spinner fa-spin"></i> '+trans('admin.preparing')).prop('disabled', 'disabled');
},
})
.done(function(json) {
console.log(json);
file_size = json.file_size;
$('#file-size').html(file_size);
$('#modal-start-download').modal({
'backdrop': 'static',
'keyboard': false
});
console.log("started downloading");
$.ajax({
url: './update/download?action=start-download',
type: 'POST',
dataType: 'json'
})
.done(function(json) {
// set progress to 100 when got the response
progress = 100;
console.log("Downloading finished");
console.log(json);
})
.fail(showAjaxError);
var interval_id = window.setInterval(function() {
$('#imported-progress').html(progress);
$('.progress-bar').css('width', progress+'%').attr('aria-valuenow', progress);
if (progress == 100) {
clearInterval(interval_id);
$('.modal-title').html('<i class="fa fa-spinner fa-spin"></i> ' + trans('admin.extracting'));
$('.modal-body').append('<p>'+trans('admin.downloadCompleted')+'</p>')
console.log("Start extracting");
$.ajax({
url: './update/download?action=extract',
type: 'POST',
dataType: 'json'
})
.done(function(json) {
console.log("Package extracted and files are covered");
$('#modal-start-download').modal('toggle');
swal({
type: 'success',
html: json.msg
}).then(function() {
window.location = "../";
}, function(dismiss) {
window.location = "../";
});
})
.fail(showAjaxError);
} else {
$.ajax({
url: './update/download?action=get-file-size',
type: 'GET'
})
.done(function(json) {
progress = (json.size / file_size * 100).toFixed(2);
console.log("Progress: "+progress);
})
.fail(showAjaxError);
}
}, 300);
})
.fail(showAjaxError);
}