/*
* Pretty S3 Files Manager
*
* @Main application object
* */
PrettyS3FilesManager = {
/*
* Common application functions
*
* @function displayElementMessageWithDelay display message with timeout
* @function displayElementMessage display message inside a specify element
* @function hideElementMessage hide message inside a specify element
* @function displayLoadingField find and display message under an area
* @function hideLoadingField find and remove message under an area
* @function errorPopup display error popup detail from server
* @function putLoadingState put area disabled for loading state
* @function removeLoadingState remove area loading state
* @function removeObjectItemByValue remove item from array
* @function removeObjectItemByKey remove item from array by index
* */
Application: {
webRoot: '/',
requestTimeout: 300000, // 5 Mints
htmlspecialchars: function(str) {
if (typeof(str) == "string") {
str = str.replace(".", "-");
str = str.replace("&", "-");
str = str.replace(" ", "-");
str = str.replace(" ", "-");
str = str.replace(" ", "-");
str = str.replace("$", "-");
str = str.replace("+", "-");
str = str.replace("! ", "-");
str = str.replace("@", "-");
str = str.replace("#", "-");
str = str.replace("$", "-");
str = str.replace("%", "-");
str = str.replace("^", "-");
str = str.replace("&", "-");
str = str.replace("*", "-");
str = str.replace("(", "-");
str = str.replace(")", "-");
str = str.replace("/", "-");
str = str.replace("+", "-");
}
return str;
},
displayElementMessageWithDelay: function (element, type, message, timeout) {
$(element).find('.message')
.addClass('nNote')
.addClass(type)
.find('p').html(message);
$(element).find('.message').fadeIn(1500);
setTimeout(function(){
Application.hideElementMessage(element, type);
}, timeout);
},
displayElementMessage: function (element, type, message) {
$(element).find('.message')
.addClass('nNote')
.addClass(type)
.find('p').html(message);
$(element).find('.message').fadeIn(1500);
},
hideElementMessage: function (element, type) {
$(element).find('.message')
.removeClass("nNote")
.removeClass(type).fadeOut(1500);
},
displayLoadingField: function (element) {
$(element).find('.loading-field').show();
},
hideLoadingField: function (element) {
$(element).find('.loading-field').hide();
},
errorPopup: function(message) {
var jPopupElement = $("#error-popup");
jPopupElement.find("#content-detail").find(".alert-error").html(message);
jPopupElement.modal('show');
},
putLoadingState: function (areaElement) {
$(areaElement).attr("style", "position: relative;");
$(areaElement).append('<span class="loading"></span>');
},
removeLoadingState: function (areaElement) {
$(areaElement).removeAttr("style");
$(areaElement).find(".loading").remove();
},
removeObjectItemByValue: function(array, item) {
for(var i in array){
if(array[i]==item){
array.splice(i,1);
break;
}
}
},
removeObjectItemByKey: function(array, index) {
array.splice(index,1);
},
ajaxErrorHandler: function (response, textStatus, errorThrown, loadingElement, targetContentElement) {
if(textStatus === 'timeout')
{
PrettyS3FilesManager.Application.errorPopup("Request timeout! Please check your network connection and try again later!");
if (targetContentElement != '') {
$(targetContentElement).html('Connect Timeout');
}
}
else {
PrettyS3FilesManager.Application.errorPopup("An error occurred: " + textStatus);
}
PrettyS3FilesManager.Application.removeLoadingState(loadingElement);
},
},
/*
* Perform S3 upload popup functionally
*
* @function generateFromS3Signature request to server to get S3 authenticate signature, policy, etc...
* @function loadAvailableFolderForUploads will load available folders preparing for uploading file(s)
* @function doomFolderClickHandleForUploads will handle click event for choosing folder for uploading
* */
S3Upload: {
generateFormS3Signature: function (element, bucket, region) {
$.post($('base').attr('href') + '/index.php?route=home/generate-s3-signature', {bucket:bucket}, function(response){
if (response['status']) {
$(element).each(function(){
$(this).attr('action', 'https://' + bucket + '.s3-' + region + '.amazonaws.com/')
$(this).find('input[name=AWSAccessKeyId]').val(response['accessKey']);
$(this).find('input[name=policy]').val(response['policy']);
$(this).find('input[name=signature]').val(response['signature']);
});
}
});
},
loadAvailableFolderForUploads: function(prefix) {
$('#upload-file-modal').modal('show');
$("input[name=folder_name]").val('');
PrettyS3FilesManager.Application.putLoadingState(".list-folder-upload-file");
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/list-bucket-folders';
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'bucket' : bucket, 'popup_type': 'upload_file', 'add_folder': 0},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$('.list-folder-upload-file').html(data);
PrettyS3FilesManager.S3Upload.doomFolderClickHandleForUploads();
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
$('.list-folder-upload-file .loading').remove();
PrettyS3FilesManager.Application.removeLoadingState(".list-folder-upload-file");
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(response, textStatus, errorThrown, ".list-folder-upload-file", ".list-folder-upload-file");
},
});
},
setPopupUploadFileSelectPath: function (path) {
var key = path + '${filename}';
$('#fileupload').find('input[name=key]').val(key);
if (path != "/")
$("span.file-upload-selected-folder").html('<b>/'+ path + '</b>');
else
$("span.file-upload-selected-folder").html('<b>/</b>');
},
loadPopupUploadFileSubFolder: function (element) {
var id = $(element).attr('data-id');
var sub = $('.sub-' + id + ' .sub');
var item = $('.sub-' + id + ' .item');
var frefix = $(element).attr('data-prefix');
item.find('.fa-caret-right')
.removeClass('fa-caret-right')
.addClass('fa-caret-down');
var URL = $('base').attr('href') + '/index.php?route=home/list-bucket-folders';
var bucket = $("select[name=bucket]").val();
PrettyS3FilesManager.Application.putLoadingState('.list-folder-upload-file');
$.ajax({
type: "post",
url: URL,
data: {'frefix': frefix , 'bucket' : bucket, 'popup_type': 'upload_file', 'add_folder': 0},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$(sub).html(data);
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
PrettyS3FilesManager.Application.removeLoadingState('.list-folder-upload-file');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(response, textStatus, errorThrown, '.list-folder-upload-file', '.list-folder-upload-file');
},
});
},
doomFolderClickHandleForUploads: function() {
$('li .arrow-item').click(function(){
var prefix = $(this).data('prefix');
var id = $(this).data('id');
var key = prefix + '${filename}';
$('#fileupload').find('input[name=key]').val(key);
});
$(".tree-file-row").click(function(){
$(".tree-file-row").removeClass("active_new");
$(this ).addClass("active_new");
});
},
},
/*
* Handle for bucket functionally
*
* @function loadBucketObjects load all objects under a bucket (folders and files)
* @function loadObjects load objects under a folder
* @function createFolder create new folder/sub-folder under bucket
* */
Bucket: {
currentDirectory: '/',
loadBucketObjects: function(prefix) {
PrettyS3FilesManager.Application.putLoadingState("#contentFolder");
PrettyS3FilesManager.Application.putLoadingState("#contentfrefix");
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/ajax-load-folder-prefix';
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
if (data.status) {
data = data.data;
$('.contentFolder .loading').remove();
$('#contentfrefix .loading').remove();
$('#contentFolder').html(data['folder']);
$('.breadcrumbs').html(data['folder_breadcrumb']);
$('#contentfrefix').html(data['frefix']);
PrettyS3FilesManager.Bucket.handleBucketFolderClick();
$(".tree-file-content li .li-custom").hover(function(){
$(this).find(".act").show();
}, function(){
$(this).find(".act").hide();
});
$('input.flat').iCheck({
checkboxClass: 'icheckbox_flat-green',
radioClass: 'iradio_flat-green'
});
}
else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
PrettyS3FilesManager.Application.removeLoadingState("#contentFolder");
PrettyS3FilesManager.Application.removeLoadingState("#contentfrefix");
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentFolder, #contentfrefix',
'#contentFolder, #contentfrefix'
);
},
});
},
loadObjects: function(prefix, page) {
if (page == 0)
$('#contentfrefix').prepend('<span class="loading"></span>');
$( ".item .arrow" ).each(function( index ) {
if ( $(this).data("prefix") == prefix ){
$(this).trigger("click");
}
});
var load = $('.load-more');
load.removeAttr( "onclick" );
load.html('Loading...');
var URL = $('base').attr('href') + '/index.php?route=home/ajax-load-prefix';
var bucket = $("select[name=bucket]").val();
PrettyS3FilesManager.Bucket.currentDirectory = prefix;
PrettyS3FilesManager.Application.putLoadingState("#contentfrefix");
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'page' : page , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
load.parent().parent().remove();
if (page == 0)
$('#contentfrefix').html(data['prefix']);
else
$('.content-file').append(data['prefix']);
$('.breadcrumbs').html(data['folder']);
$(".tree-file-content li .li-custom").hover(function(){
$(this).find(".act").show();
}, function(){
$(this).find(".act").hide();
});
$('input.flat').iCheck({
checkboxClass: 'icheckbox_flat-green',
radioClass: 'iradio_flat-green'
});
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
PrettyS3FilesManager.Application.removeLoadingState("#contentfrefix");
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentfrefix', '#contentfrefix'
);
},
});
},
handleBucketFolderClick: function() {
$('li .arrow').click(function(){
var prefix = $(this).data('prefix');
var id = $(this).data('id');
PrettyS3FilesManager.Bucket.handleBrowseSubFolder(prefix, id);
});
$('.name-prefix').click(function(){
$('li .name-prefix').removeClass('active');
$(this).addClass('active');
});
$(".tree-file li .item").hover(function(){
$(this).find(".create-sub-folder").show();
}, function(){
$(this).find(".create-sub-folder").hide();
});
},
handleBrowseSubFolder: function (prefix, id) {
var sub = $('.sub-' + id + ' .sub');
var item = $('.sub-' + id + ' .item');
item.find('.fa-caret-right')
.removeClass('fa-caret-right')
.addClass('fa-caret-down');
if (prefix == "/")
$('#contentFolder').prepend('<span class="loading"></span>');
else
$(sub).html('<span class="loading subloading"></span>');
var URL = $('base').attr('href') + '/index.php?route=home/ajax-load-folder';
var bucket = $("select[name=bucket]").val();
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$('.contentFolder .loading').remove();
$(sub).html(data['folder']);
PrettyS3FilesManager.Bucket.handleBucketFolderClick();
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentFolder', ''
);
},
});
},
reloadObjects: function(){
PrettyS3FilesManager.Bucket.loadObjects(PrettyS3FilesManager.Bucket.currentDirectory, 0);
},
reloadFolders: function(){
var prefix = "/";
PrettyS3FilesManager.Application.putLoadingState('#contentFolder');
var URL = $('base').attr('href') + '/index.php?route=home/ajax-load-folder';
var bucket = $("select[name=bucket]").val();
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$('#contentFolder').html(data['folder']);
PrettyS3FilesManager.Bucket.handleBucketFolderClick();
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
PrettyS3FilesManager.Application.removeLoadingState('#contentFolder');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentFolder', '#contentFolder'
);
},
});
},
loadAvailableFolderForCreatingFolder: function(prefix) {
$('#create-folder').modal('show');
$("input[name=folder_name]").val('');
PrettyS3FilesManager.Application.putLoadingState('.list-folder');
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/list-bucket-folders';
$.ajax({
type: "post",
url: URL,
data: {'frefix': prefix , 'bucket' : bucket, 'popup_type': 'create_folder'},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$('.list-folder').html(data);
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
$('.list-folder .loading').remove();
PrettyS3FilesManager.Application.removeLoadingState('.list-folder');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'.list-folder', '.list-folder'
);
},
});
},
setPopupCreateFolderSelectPath: function (path) {
$('input[name=select_folder_path]').val(path);
if (path != "/")
$("span.create-folder-selected-folder").html('<b>/'+ path + '</b>');
else
$("span.create-folder-selected-folder").html('<b>/</b>');
},
loadPopupCreateFolderSubFolder: function(element) {
var id = $(element).attr('data-id');
var sub = $('.sub-' + id + ' .sub');
var item = $('.sub-' + id + ' .item');
var frefix = $(element).attr('data-prefix');
item.find('.fa-caret-right')
.removeClass('fa-caret-right')
.addClass('fa-caret-down');
var URL = $('base').attr('href') + '/index.php?route=home/list-bucket-folders';
var bucket = $("select[name=bucket]").val();
PrettyS3FilesManager.Application.putLoadingState('.list-folder');
$.ajax({
type: "post",
url: URL,
data: {'frefix': frefix , 'bucket' : bucket, 'popup_type': 'create_folder'},
dataType: "json",
success: function (response) {
if (response.status) {
var data = response.data;
$(sub).html(data);
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
PrettyS3FilesManager.Application.removeLoadingState('.list-folder');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'.list-folder', ''
);
},
});
},
createBucket: function(btnElement, inputFieldElement){
inputFieldElement.css("border", "1px solid #DDE2E8");
var bucket = inputFieldElement.val().trim();
if (bucket == ""){
inputFieldElement.css("border", "1px solid red");
return false;
} else {
inputFieldElement.attr("disabled","disabled");
btnElement.attr("disabled","disabled");
PrettyS3FilesManager.Application.putLoadingState('.creating-bucket-content');
var URL = $('base').attr('href') + '/index.php?route=home/create-bucket';
$.ajax({
type: "post",
url: URL,
data: {'name': bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
if (data['status'] == 1) {
$('#create-new-bucket-popup').modal('hide');
new PNotify({
title: 'Success',
text: data['message'],
type: 'success'
});
var bucket_curent = $("select[name=bucket]").val();
var html = '<select name="bucket" class="select_butket form-control" tabindex="-1">';
$.each(data['buckets'], function( index, value ) {
if (bucket_curent == value['Name'])
html += "<option selected='selected' value='" + value['Name'] + "'>" + value['Name'] + "</option>";
else
html += "<option value='" + value['Name'] + "'>" + value['Name'] + "</option>";
});
html += "</select>";
$(".select_butket_div").html(html);
$(".select_butket").select2();
} else {
inputFieldElement.removeAttr("disabled");
btnElement.removeAttr("disabled");
PrettyS3FilesManager.Application.errorPopup(data.message);
}
PrettyS3FilesManager.Application.removeLoadingState('.creating-bucket-content');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'.create-bucket-content', ''
);
},
});
}
},
createFolder: function() {
var folder_name = $("input[name=folder_name]").val();
if (folder_name == '') {
new PNotify({
title: 'Oop!',
text: 'Did you forget to input folder name?',
type: 'error'
});
}
else {
if (folder_name.indexOf("/") > 0) {
new PNotify({
title: 'Oop!',
text: 'Folder name must not contain /',
type: 'error'
});
}
else{
PrettyS3FilesManager.Application.putLoadingState('.create-folder-content');
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/create-folder';
$.ajax({
type: "post",
url: URL,
data: {path:$('input[name=select_folder_path]').val(),name:folder_name , 'bucket': bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response['status'] == 1) {
new PNotify({
title: 'Success',
text: 'Create folder ' + folder_name +' successfully!',
type: 'success'
});
$('#create-folder').modal('hide');
$('#status_create_folder').val('1');
$('#status_upload').val('1');
$(".sub-" + response['key'] + " .arrow").trigger( "click" );
if (response['path'] == ''){
PrettyS3FilesManager.Bucket.reloadFolders();
}
}
else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
PrettyS3FilesManager.Application.removeLoadingState('.create-folder-content');
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'.create-folder-content', ''
);
},
});
}
}
},
deleteFolder: function(key, object_sub, id) {
$(".sub-" + id).append('<span class="loading subloading"></span>');
var URL = $('base').attr('href') + '/index.php?route=home/delete-folder';
var bucket = $("select[name=bucket]").val();
$.ajax({
type: "post",
url: URL,
data: {'key': key , 'bucket' : bucket , 'object_sub' : object_sub},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
$(".sub-" + id).find(".loading").remove();
data = JSON.parse(data);
if (data.status == 2){
$(".content-confirm").html("This folder has sub-folders/files under it. Are you sure want to remove all? <br/> ");
$("#confirm-delete").modal('show');
$(".btn-delete-all").attr("onclick", "PrettyS3FilesManager.Bucket.deleteFolder('" + key + "', '1' , '" + id + "');");
return false;
}
if (data.status){
$(".sub-" + data.curent_id).remove();
PrettyS3FilesManager.Bucket.handleBrowseSubFolder(data.parent_key, data.id);
var prefix_curent = $("#prefix_curent").val();
if (data.curent_id == prefix_curent){
PrettyS3FilesManager.Bucket.loadObjects(data.parent_key, 0);
$(".name-" + data.id).addClass("active");
}
new PNotify({
title: 'Success',
text: 'Object had been removed!',
type: 'success'
});
$("#confirm-delete").modal('hide');
} else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
}
});
},
},
/*
* Handle for file functionally
*
* @function deleteMultiple delete multiple file at one time
* */
File: {
delete: function (key, row) {
var confirmBox = confirm('Are you sure you want to delete this file?');
if (!confirmBox) return false;
var URL = $('base').attr('href') + '/index.php?route=home/delete-file';
var bucket = $("select[name=bucket]").val();
PrettyS3FilesManager.Application.putLoadingState("#contentfrefix");
$.ajax({
type: "post",
url: URL,
data: {'key': key , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
data = JSON.parse(data);
if (data.status){
$(".row-" + row).remove();
new PNotify({
title: 'Success',
text: 'File had been removed!',
type: 'success'
});
} else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
PrettyS3FilesManager.Application.removeLoadingState("#contentfrefix");
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentfrefix', ''
);
},
});
},
deleteMultiple: function () {
var is_check = false;
$( ".content-file .icheckbox_flat-green" ).each(function( index ) {
if ($(this).hasClass("checked")) {
is_check = true;
}
});
if (!is_check){
new PNotify({
title: 'Oop!',
text: 'Please choose file(s) to remove!',
type: 'error'
});
return false;
}
var confirmBox = confirm('Are you sure want to delete them?');
if (!confirmBox) return false;
var bucket = $("select[name=bucket]").val();
$( ".content-file .icheckbox_flat-green" ).each(function( index ) {
var row = $(this).find("input").data("id");
if ($(this).hasClass("checked")) {
PrettyS3FilesManager.Application.putLoadingState('contentfrefix');
var URL = $('base').attr('href') + '/index.php?route=home/delete-file';
$.ajax({
type: "POST",
url: URL,
data: {'key': $(this).find("input").val() , 'bucket': bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
data = JSON.parse(data);
PrettyS3FilesManager.Application.removeLoadingState('contentfrefix');
if (data.status) {
new PNotify({
title: 'Success',
text: 'Object(s) has been deleted!',
type: 'success'
});
$(".row-" + row).remove();
}
else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#contentfrefix', ''
);
},
});
}
});
},
fileProperties: function (key, url) {
PrettyS3FilesManager.Application.putLoadingState('#content-detail');
$('#detail-file').modal('show');
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/ajax-detail-file';
$.ajax({
type: "post",
url: URL,
data: {'key': key , 'url' : url , 'bucket' : bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
$("#content-detail").html(data);
$('input.flat').iCheck({
checkboxClass: 'icheckbox_flat-green',
radioClass: 'iradio_flat-green'
});
//Update Permissions
$(".btn-save-permissions").click(function(){
PrettyS3FilesManager.Application.putLoadingState("#permissions");
var data = $("form[name=permission_form]").serialize();
var URL = $('base').attr('href') + '/index.php?route=home/update-permissions';
data += '&data[bucket]=' + $("select[name=bucket]").val();
$.ajax({
type: "POST",
url: URL,
data: data,
dataType: "json",
success: function (data) {
if (data.status) {
new PNotify({
title: 'Success',
text: data.message,
type: 'success',
timer: 4,
});
}
else {
PrettyS3FilesManager.Application.errorPopup(data.message);
}
PrettyS3FilesManager.Application.removeLoadingState("#permissions");
}
});
});
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#permissions', '#permissions'
);
},
});
},
previewImage: function (src) {
$(".content-image").html("<img class='img-responsive' src='"+ src +"' />");
},
editHeader: function () {
$(".name-contenttype").hide();
$(".edit-type").hide();
$(".row-type").append("<span class='action-type'><input value='" + $(".name-contenttype").text() + "' id='txt-content-type' type='text' style='width: 40%' class='form-control pull-left' /><a style='margin-left: 10px;' class='btn btn-primary pull-left save-type' href='javascript:;'><i class='fa fa-save'></i> Save</a><a class='btn btn-danger pull-left cancel-type' href='javascript:;'><i class='fa fa-remove'></i> Cancel</a></span>");
$(".cancel-type").click(function(){
$(".name-contenttype").show();
$(".edit-type").show();
$(".action-type").remove();
});
$(".save-type").click(function(){
var bucket = $("select[name=bucket]").val();
var URL = $('base').attr('href') + '/index.php?route=home/update-header-content-type';
$.ajax({
type: "post",
url: URL,
data: {'key': $("#key").val(), 'contentType': $('#txt-content-type').val() , 'bucket' : bucket},
dataType: "html",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (data) {
$(".name-contenttype").html(data);
$(".name-contenttype").show();
$(".edit-type").show();
$(".action-type").remove();
new PNotify({
title: 'Success',
text: 'Update Content Type successfully!',
type: 'success'
});
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'#permissions', ''
);
},
});
});
},
search: function (page) {
if (page == 0)
$('#contentfrefix').prepend('<span class="loading"></span>');
var object = $('#txt-name');
if (object.val().trim() == ""){
object.css('border', '1px solid red');
return false;
} else {
object.css('border', '1px solid #DDE2E8');
}
var load = $('.load-more');
load.removeAttr( "onclick" );
load.html('Loading...');
var URL = $('base').attr('href') + '/index.php?route=home/ajax-load-search-objects';
var bucket = $("select[name=bucket]").val();
$.ajax({
type: "post",
url: URL,
data: {'name': object.val() , 'page' : page , 'bucket': bucket},
dataType: "json",
timeout: PrettyS3FilesManager.Application.requestTimeout,
success: function (response) {
if (response.status) {
var data = response.data;
load.parent().parent().remove();
if (page == 0)
$('#contentfrefix').html(data);
else
$('.content-file').append(data);
$('input.flat').iCheck({
checkboxClass: 'icheckbox_flat-green',
radioClass: 'iradio_flat-green'
});
}
else {
PrettyS3FilesManager.Application.errorPopup(response.message);
}
$('#contentfrefix .loading').remove();
},
error: function (response, textStatus, errorThrown) {
PrettyS3FilesManager.Application.ajaxErrorHandler(
response, textStatus, errorThrown,
'.contentfrefix', ''
);
},
});
},
breadCrumbNavigator: function (frefix, page, name) {
$(".name-prefix").removeClass("active");
$(".name-" + name).addClass("active");
PrettyS3FilesManager.Bucket.loadObjects(frefix, page);
},
} ,
};
|