forked from spen/seminar
549 lines
18 KiB
JavaScript
549 lines
18 KiB
JavaScript
|
function rotate(){
|
||
|
$("#crop_div").dialog("open");
|
||
|
}
|
||
|
function change_degree(degree_change){
|
||
|
var degree_org = parseInt($('#show_degree').text())
|
||
|
degree_org+=degree_change
|
||
|
if (degree_org==360 || degree_org==-360){
|
||
|
degree_org = 0
|
||
|
}
|
||
|
$('#show_degree').text(degree_org)
|
||
|
}
|
||
|
function init_upload(temp_length){
|
||
|
var value = $("input[name='all_upload_length']")
|
||
|
if (value.val()==''){
|
||
|
value.val(temp_length)
|
||
|
$.ajax({
|
||
|
type : "post",
|
||
|
url : "/admin/custom_galleries/init_upload",
|
||
|
dataType : "json",
|
||
|
data:{all_length: value.val()},
|
||
|
async: false,
|
||
|
global:false,
|
||
|
success: function()
|
||
|
{
|
||
|
},
|
||
|
error : function(data){
|
||
|
alert('init upload process failed, please try again later.')
|
||
|
}
|
||
|
});
|
||
|
if (value.val()=='1'){
|
||
|
value.val('')
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
function form_submit() {
|
||
|
var temp_length = $('#file-list').find('li.template-upload').length
|
||
|
init_upload(temp_length)
|
||
|
var length_upload
|
||
|
var count_upload
|
||
|
var send_start
|
||
|
if (temp_length>1){
|
||
|
$( 'form#fileupload' ).ajaxSuccess(function() {
|
||
|
if (typeof length_upload == "undefined"){
|
||
|
count_upload = 1
|
||
|
length_upload = $('#file-list').find('li.template-upload').length
|
||
|
}
|
||
|
else{
|
||
|
count_upload ++
|
||
|
}
|
||
|
if (count_upload === length_upload){
|
||
|
send_start = undefined
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/start_upload_process",
|
||
|
dataType : "json",
|
||
|
type : "post",
|
||
|
error: function(){
|
||
|
alert('init upload process failed, please try again later.')
|
||
|
},
|
||
|
success: function(){
|
||
|
window.location.href = '/admin/custom_galleries/upload_process'
|
||
|
}
|
||
|
})
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/start_upload_process",
|
||
|
dataType : "json",
|
||
|
type : "post",
|
||
|
error: function(){
|
||
|
alert('init upload process failed, please try again later.')
|
||
|
},
|
||
|
success: function(){
|
||
|
window.location.href = '/admin/custom_galleries/upload_process'
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
function form_only_one_submit() {
|
||
|
var temp_length = 1
|
||
|
init_upload(temp_length)
|
||
|
}
|
||
|
!function ($) {
|
||
|
$.fn.checkListLength = function (param){
|
||
|
_defaultSettings = {
|
||
|
onlyOne: null,
|
||
|
};
|
||
|
_set = $.extend(_defaultSettings, param);
|
||
|
$this = this;
|
||
|
$li = this.children('li');
|
||
|
$dropzone = $('#dropzone');
|
||
|
if(($li.length - _set.onlyOne) === 0) {
|
||
|
$('#dropzone').fadeIn(300);
|
||
|
} else {
|
||
|
$('#dropzone').fadeOut(300);
|
||
|
}
|
||
|
$('#file-list').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
||
|
};
|
||
|
}(window.jQuery);
|
||
|
|
||
|
$(function () {
|
||
|
'use strict';
|
||
|
// Initialize the jQuery File Upload widget:
|
||
|
if($('#fileupload').length){
|
||
|
$('#fileupload').fileupload({
|
||
|
//maxFileSize: 5000000,=
|
||
|
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
||
|
dropZone: $('#dropzone'),
|
||
|
headers:{
|
||
|
'X-CSRF-Token': $('meta[name="csrf-token"]').attr("content")
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
Array.prototype.uniq = function(){
|
||
|
var attr = this
|
||
|
attr = $.grep(attr, function(v, k){
|
||
|
return $.inArray(v ,attr) === k;
|
||
|
});
|
||
|
return attr;
|
||
|
}
|
||
|
|
||
|
function batch_crop(){
|
||
|
var check_li = $('#imgholder').find("input[type='checkbox']:checked").parents('li');
|
||
|
var image_ids =[];
|
||
|
if (check_li.length>0){
|
||
|
check_li.each(function(){
|
||
|
image_ids.push($(this).data('image-id'));
|
||
|
});
|
||
|
if (navigator.onLine) {
|
||
|
window.location.href = '/admin/custom_galleries/batch_crop?image_ids=' + image_ids.join(',')
|
||
|
} else {
|
||
|
alert('Please connect the network and try again later!')
|
||
|
}
|
||
|
}else{
|
||
|
alert('Please select at least one')
|
||
|
}
|
||
|
}
|
||
|
function select_all() {
|
||
|
$('#imgholder').find("input[type='checkbox']:not(:checked)").trigger('click')
|
||
|
}
|
||
|
function translate(ele,pretext,text,return_flag){
|
||
|
var return_value
|
||
|
if (navigator.onLine) {
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/translate",
|
||
|
dataType : "json",
|
||
|
type : "post",
|
||
|
async: false,
|
||
|
data:{text:text},
|
||
|
success:function(data){
|
||
|
if (return_flag){
|
||
|
return_value = data.translate
|
||
|
}
|
||
|
else{
|
||
|
ele.html(pretext + data.translate)
|
||
|
}
|
||
|
},
|
||
|
error:function(){
|
||
|
var back = text.split('.')[1].split('_')
|
||
|
var result = []
|
||
|
for (i=0;i<back.length;i++){
|
||
|
result.push(back[i].charAt(0).toUpperCase() + back[i].slice(1))
|
||
|
}
|
||
|
if (return_flag){
|
||
|
return_value = result.join(' ')
|
||
|
}
|
||
|
else{
|
||
|
ele.html(pretext + result.join(' '))
|
||
|
}
|
||
|
alert('Your server has some problem, please try again later!')
|
||
|
}
|
||
|
})
|
||
|
} else {
|
||
|
var back = text.split('.')[1].split('_')
|
||
|
var result = []
|
||
|
for (i=0;i<back.length;i++){
|
||
|
result.push(back[i].charAt(0).toUpperCase() + back[i].slice(1))
|
||
|
}
|
||
|
if (return_flag){
|
||
|
return_value = result.join(' ')
|
||
|
}
|
||
|
else{
|
||
|
ele.html(pretext + result.join(' '))
|
||
|
}
|
||
|
alert('Please connect the network and try again later!')
|
||
|
}
|
||
|
if (return_flag){
|
||
|
return return_value
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$(function() {
|
||
|
var config = {}
|
||
|
config.autoGrow_minHeight = 50;
|
||
|
config.allowedContent = false;
|
||
|
config.disallowedContent = 'img';
|
||
|
config.toolbar = [
|
||
|
{ name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] },
|
||
|
{ name: 'editing', items: [ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ] },
|
||
|
|
||
|
{ name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'CopyFormatting', 'RemoveFormat' ] },
|
||
|
'/',
|
||
|
{ name: 'insert', items: [ 'SpecialChar'] },
|
||
|
{ name: 'styles', items: [ 'Font' ] },
|
||
|
{ name: 'colors', items: [ 'TextColor', 'BGColor' ] }
|
||
|
];
|
||
|
|
||
|
var $container = $('.custom_gallery'),
|
||
|
$containerData = $container.data();
|
||
|
$container.data("order-edit","0");
|
||
|
$container.sortable({
|
||
|
disabled: true
|
||
|
});
|
||
|
$container.imagesLoaded(function(){
|
||
|
var $custom_albumname = $('.custom_albumname'),
|
||
|
$img = $('.rgcustom_album img');
|
||
|
$('.rgcustom_album > a').rsImg();
|
||
|
if($containerData.custom_galleryId == 'custom_gallery') {
|
||
|
// $container.masonry({
|
||
|
// itemSelector : '.rgcustom_album',
|
||
|
// isAnimated: true,
|
||
|
// });
|
||
|
$custom_albumname.each(function(i) {
|
||
|
var $custom_albumblock = $(this).closest('a').height(),
|
||
|
$H = $(this).outerHeight(true);
|
||
|
if($H > $custom_albumblock) {
|
||
|
$(this).css({
|
||
|
'bottom': "auto",
|
||
|
'top': 0,
|
||
|
});
|
||
|
$(this).hover(function() {
|
||
|
$(this).stop(true, true).delay(500).animate({
|
||
|
'top': '-='+($H-$custom_albumblock),
|
||
|
},($H-$custom_albumblock)*10)
|
||
|
},function() {
|
||
|
$(this).stop(true, true);
|
||
|
$(this).css({
|
||
|
'bottom': "auto",
|
||
|
'top': 0,
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
});
|
||
|
$('#orbit_custom_gallery').delegate('.icons-tag', clickEvent, function(){
|
||
|
var tmp = $(this).parents('.rgcustom_album').eq(0)
|
||
|
var now_this = $(this)
|
||
|
if (tmp.find('.custom_albumtag').eq(0).find('li.label').length == 0){
|
||
|
var ele_id = tmp.attr('data-image-id')
|
||
|
$.ajax({
|
||
|
type : "post",
|
||
|
url : "/admin/custom_galleries/get_tag",
|
||
|
dataType : "text",
|
||
|
data:{ele_id: ele_id},
|
||
|
global:false,
|
||
|
success: function(data)
|
||
|
{
|
||
|
tmp.find('.custom_albumtag').eq(0).html(data)
|
||
|
now_this.parents('.custom_gallery_info').nextAll('.custom_albumtag').slideToggle(300);
|
||
|
},
|
||
|
error : function(data){
|
||
|
alert('init process failed, please try again later.')
|
||
|
}
|
||
|
});
|
||
|
}else{
|
||
|
$(this).parents('.custom_gallery_info').nextAll('.custom_albumtag').slideToggle(300);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
});
|
||
|
|
||
|
var bindEvent = function(instance,elem){
|
||
|
var $e = elem,
|
||
|
image_id = $e.closest(".rgcustom_album").data("image-id");
|
||
|
obj = photosData.custom_galleries.filter(function(a) {
|
||
|
return a.id == image_id;
|
||
|
})[0];
|
||
|
switch($e.attr("for")){
|
||
|
case "description":
|
||
|
instance.find(".description-editor").each(function(){
|
||
|
var locale = $(this).attr("for")
|
||
|
$(this).html(obj.description ? obj.description[locale] : '');
|
||
|
CKEDITOR.replace(this,config);
|
||
|
})
|
||
|
|
||
|
instance.find(".title-editor").each(function(){
|
||
|
var locale = $(this).attr("for")
|
||
|
$(this).html(obj.title ? obj.title[locale] : '');
|
||
|
CKEDITOR.replace(this,config);
|
||
|
})
|
||
|
instance.find("a[data-toggle=\"tab\"],div[role=\"tabpanel\"]").each(function(){
|
||
|
$(this).attr('id',$(this).attr('id').replace('-fake',''))
|
||
|
})
|
||
|
instance.find("input[type=hidden]").val(image_id);
|
||
|
instance.find("form").bind("ajax:success",function(evt, data, status){
|
||
|
$.pageslide.close();
|
||
|
photosData = data;
|
||
|
})
|
||
|
instance.find('.btn-group a[data-toggle="tab"]').click(function(){
|
||
|
$(this).tab('show');
|
||
|
$(this).parents('.btn-group').eq(0).children('a[data-toggle="tab"]').removeClass('active in');
|
||
|
$(this).addClass('active in')
|
||
|
var inst = $($(this).attr('href')).find('textarea')
|
||
|
window.setTimeout(function(){
|
||
|
CKEDITOR.instances[inst.attr('name')].execCommand('autogrow')
|
||
|
},300)
|
||
|
})
|
||
|
break;
|
||
|
case "tags":
|
||
|
instance.find('.tags-groups').cardCheck({
|
||
|
item: '.card'
|
||
|
});
|
||
|
for(i = 0; i < obj.tags.length; i++){
|
||
|
instance.find("input[value="+obj.tags[i]+"]").parent().addClass('active');
|
||
|
instance.find("input[value="+obj.tags[i]+"]").prop("checked","checked");
|
||
|
}
|
||
|
instance.find("form").submit(function(event) {
|
||
|
var checkboxes = $(this).find("input[type=checkbox]:checked"),
|
||
|
tag_ids = [],
|
||
|
image_ids =[image_id];
|
||
|
|
||
|
checkboxes.each(function(){
|
||
|
tag_ids.push($(this).val());
|
||
|
})
|
||
|
$.post("/admin/custom_galleries/image_tagging",{"image_ids":image_ids,"tag_ids":tag_ids},function(json){
|
||
|
$.pageslide.close();
|
||
|
photosData = json;
|
||
|
})
|
||
|
return false;
|
||
|
});
|
||
|
break;
|
||
|
case "batch":
|
||
|
instance.find('.tags-groups').cardCheck({
|
||
|
item: '.card'
|
||
|
});
|
||
|
instance.find("form").submit(function(event) {
|
||
|
var checkboxes = $(this).find("input[type=checkbox]:checked"),
|
||
|
tag_ids = [],
|
||
|
image_ids =[],
|
||
|
images = $("#imgholder .rgcustom_album.active");
|
||
|
checkboxes.each(function(){
|
||
|
tag_ids.push($(this).val());
|
||
|
})
|
||
|
images.each(function(){
|
||
|
image_ids.push($(this).data("image-id"));
|
||
|
})
|
||
|
$.post("/admin/custom_galleries/image_tagging",{"image_ids":image_ids,"tag_ids":tag_ids},function(json){
|
||
|
$.pageslide.close();
|
||
|
photosData = json;
|
||
|
})
|
||
|
return false;
|
||
|
});
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if($("#imgholder").length){
|
||
|
$('.open').pageslide({
|
||
|
W: '40vw',
|
||
|
loadComplete: function(instance,elem) {
|
||
|
bindEvent(instance,elem);
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
$("#imgholder").on(clickEvent, '.photo_cover', function(event) {
|
||
|
var image_id = $(this).closest(".rgcustom_album").data("image-id"),
|
||
|
custom_album_id = $("#imgholder").data("custom_gallery-id"),
|
||
|
set_cover = true;
|
||
|
if($(this).children().hasClass("icons-star-2")){
|
||
|
$(".icons-star").removeClass("icons-star").addClass('icons-star-2');
|
||
|
$(this).children().removeClass("icons-star-2").addClass("icons-star");
|
||
|
}else{
|
||
|
$(this).children().removeClass("icons-star").addClass("icons-star-2");
|
||
|
set_cover = false;
|
||
|
}
|
||
|
$.post("/admin/custom_galleries/set_cover",{"custom_album_id":custom_album_id,"image_id":image_id,"set_cover":set_cover});
|
||
|
|
||
|
});
|
||
|
|
||
|
$("#delete_selected_photos_btn").click(function(){
|
||
|
var photos_to_delete = [],
|
||
|
delete_cover = false,
|
||
|
$photos = $(".rgcustom_album.active"),
|
||
|
custom_album_id = $("#imgholder").data("custom_gallery-id");
|
||
|
$('.modal-body .spinning').fadeIn('fast');
|
||
|
$('.modal-body .text-warning').hide(0);
|
||
|
$photos.each(function(){
|
||
|
photos_to_delete.push($(this).data('image-id'));
|
||
|
if ($(this).find(".icons-star").length) {
|
||
|
delete_cover = true;
|
||
|
};
|
||
|
});
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/delete_photos",
|
||
|
type : "POST",
|
||
|
data : {"images":photos_to_delete,"delete_cover":delete_cover,"custom_album_id":custom_album_id},
|
||
|
success : function(){
|
||
|
$photos.slideUp(300,function() {
|
||
|
$(this).remove();
|
||
|
});
|
||
|
$('#dialog').modal('hide');
|
||
|
$('.modal-body .spinning').hide();
|
||
|
$('.modal-body .text-warning').show();
|
||
|
$('.deletephoto, .deselect, .addtags').addClass('hide')
|
||
|
}
|
||
|
});
|
||
|
})
|
||
|
|
||
|
$('#imgholder').on(clickEvent, '.checkbox', function() {
|
||
|
$(this).prop('checked') ? $(this).closest('.rgcustom_album').addClass('active') : $(this).closest('.rgcustom_album').removeClass('active');
|
||
|
var checkLength = $("#imgholder .rgcustom_album.active");
|
||
|
checkLength.length ? $('.deletephoto, .deselect, .addtags, .crop').removeClass('hide') : $('.deletephoto, .deselect, .addtags, .crop').addClass('hide');
|
||
|
});
|
||
|
$('.deselect').on(clickEvent, function(event) {
|
||
|
$('.rgcustom_album').removeClass('active');
|
||
|
$('.checkbox').prop('checked', false)
|
||
|
$('.deletephoto, .deselect, .addtags').addClass('hide')
|
||
|
event.preventDefault();
|
||
|
});
|
||
|
$('.phtot-action').delegate('li', clickEvent, function(event) {
|
||
|
$('.checkbox').prop('checked', false)
|
||
|
$('.rgcustom_album').removeClass('active');
|
||
|
$('.deletephoto, .deselect, .addtags').removeClass('hide')
|
||
|
});
|
||
|
var images_order = [];
|
||
|
$("#edit-order-btn").on("click",function(){
|
||
|
var el = $(this);
|
||
|
if($container.data("order-edit") == "0"){
|
||
|
$container.sortable("enable");
|
||
|
$(".order-edit-notification").slideDown();
|
||
|
images_order = $container.sortable( "toArray", { attribute: "data-image-id" });
|
||
|
images_order = images_order.uniq();
|
||
|
$container.data("order-edit","1");
|
||
|
translate(el,'','custom_gallery.save_order',false)
|
||
|
}else{
|
||
|
var temp = $container.sortable( "toArray", { attribute: "data-image-id" }),
|
||
|
type = $container.attr("id");
|
||
|
temp = temp.uniq()
|
||
|
if(images_order.toString() != temp.toString()){
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/order",
|
||
|
data : {"imageids" : temp, "type" : type},
|
||
|
type : "post",
|
||
|
dataType : "json"
|
||
|
})
|
||
|
}
|
||
|
$(".order-edit-notification").slideUp();
|
||
|
$container.sortable("disable");
|
||
|
$container.data("order-edit","0");
|
||
|
translate(el,'','custom_gallery.edit_order',false)
|
||
|
}
|
||
|
return false;
|
||
|
})
|
||
|
|
||
|
//
|
||
|
|
||
|
var last_image_id = null;
|
||
|
$('.add-imgs').on({
|
||
|
click: function() {
|
||
|
$('#fileupload').slideToggle(300, function() {
|
||
|
if(!$(this).is(':hidden')) {
|
||
|
translate($('.add-imgs'),'<i class="icons-cross-2"></i> ','custom_gallery.close_panel',false)
|
||
|
$('.rgbody').stop(true, false).animate({'padding-bottom': 280}, 300);
|
||
|
$("#edit-order-btn").hide();
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/last_image_id",
|
||
|
data : {"custom_albumid" : $("#fileupload_aid").val()},
|
||
|
dataType : "json",
|
||
|
type : "get"
|
||
|
}).done(function(d){
|
||
|
last_image_id = d.last_image_id;
|
||
|
})
|
||
|
} else {
|
||
|
translate($('.add-imgs'),'<i class="icons-plus"></i> ','custom_gallery.add_image',false)
|
||
|
$('.files').empty()
|
||
|
$('#file-list').checkListLength();
|
||
|
$('.rgbody').stop(true, false).animate({'padding-bottom': 0}, 300);
|
||
|
$("#edit-order-btn").show();
|
||
|
fetchNewImages();
|
||
|
};
|
||
|
});
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
var fetchNewImages = function(){
|
||
|
var custom_albumid = $("#fileupload_aid").val();
|
||
|
|
||
|
$.getJSON('/admin/custom_galleries/get_photoData_json?id='+custom_albumid, function(json, textStatus) {
|
||
|
photosData = json;
|
||
|
});
|
||
|
|
||
|
$.ajax({
|
||
|
url : "/admin/custom_galleries/new_images",
|
||
|
data : {"last_image_id" : last_image_id, "custom_album_id" : custom_albumid},
|
||
|
success : function(data){
|
||
|
var $e = $(data);
|
||
|
$imgs = $e.find("img");
|
||
|
$("#imgholder").prepend($e);
|
||
|
$os = $e.find("a.open");
|
||
|
$os.pageslide({
|
||
|
W: '40vw',
|
||
|
loadComplete: function(instance,elem) {
|
||
|
bindEvent(instance,elem);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
|
||
|
}
|
||
|
var buttons_option={}
|
||
|
var op_fn1 = function() {
|
||
|
var check_img = $('#imgholder').find("input[type='checkbox']:checked").parents('li').find('img');
|
||
|
check_img.each(function(){
|
||
|
check_img.css('transform','rotate('+$('#show_degree').text()+'deg)');
|
||
|
});
|
||
|
}
|
||
|
var op_fn2 = function() {
|
||
|
var confirm_msg = translate('','','custom_gallery.confirm_msg',true)
|
||
|
if ( confirm (confirm_msg) ){
|
||
|
var check_li = $('#imgholder').find("input[type='checkbox']:checked").parents('li');
|
||
|
var image_ids =[];
|
||
|
check_li.each(function(){
|
||
|
image_ids.push($(this).data('image-id'));
|
||
|
});
|
||
|
if (navigator.onLine) {
|
||
|
window.location.href = '/admin/custom_galleries/rotate_images?image_ids=' + image_ids.join(',') +'&rotate_angle=' + $('#show_degree').text()
|
||
|
} else {
|
||
|
alert('Please connect the network and try again later!')
|
||
|
}
|
||
|
console.log(image_ids)
|
||
|
$(this).dialog("close");
|
||
|
}
|
||
|
|
||
|
}
|
||
|
var op_fn3 = function() { $(this).dialog("close"); }
|
||
|
var op1 = translate('','','custom_gallery.review',true)
|
||
|
var op2 = translate('','','custom_gallery.rotate',true)
|
||
|
var op3 = translate('','','custom_gallery.close_panel',true)
|
||
|
buttons_option[op1] = op_fn1
|
||
|
buttons_option[op2] = op_fn2
|
||
|
buttons_option[op3] = op_fn3
|
||
|
$("#crop_div").dialog({
|
||
|
autoOpen: false,
|
||
|
show: "blind",
|
||
|
hide: "explode",
|
||
|
buttons: buttons_option
|
||
|
});
|
||
|
});
|
||
|
|