orbit-basic/vendor/built_in_modules/gallery/app/assets/javascripts/galleryAPI.js.erb

631 lines
21 KiB
Plaintext
Raw Normal View History

<%# encoding: utf-8 %>
2012-08-22 17:36:39 +00:00
// refresh the imagesArray
// viewonly tags
2012-08-20 14:00:57 +00:00
$.extend($.expr[':'], {
'containsi': function (elem, i, match, array) {
return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
2012-07-19 07:44:44 +00:00
var galleryAPI = function(){
g = this;
2012-07-25 08:20:07 +00:00
this.urlVars = rcom.getUrlVars();
this.albumArea = $("#orbit_gallery");
2012-08-20 14:00:57 +00:00
this.loadArea = null;
this.tagList = $("ul#gallery_tag_list");
2012-08-11 09:28:49 +00:00
// this.authenticated = false;
2012-08-20 14:00:57 +00:00
this.initialize = function(callbackFn){
2012-07-19 07:44:44 +00:00
$(document).ready(function(){
2012-07-25 08:20:07 +00:00
bindHandlers();
2012-08-20 14:00:57 +00:00
var passid = null;
2012-07-25 08:20:07 +00:00
if(typeof g.urlVars['cat']!= "undefined"){
g.loadArea = "albums";
2012-08-20 14:00:57 +00:00
passid = g.urlVars['cat'];
g.loadAlbums(g.urlVars['cat']);
2012-07-25 08:20:07 +00:00
}else if(typeof g.urlVars['album']!= "undefined"){
g.loadArea = "images";
2012-08-20 14:00:57 +00:00
passid = g.urlVars['album'];
g.loadImages(g.urlVars['album']);
2012-07-25 08:20:07 +00:00
}else if(typeof g.urlVars['theater']!= "undefined"){
g.loadArea = "theater";
2012-08-20 14:00:57 +00:00
passid = g.urlVars['theater'];
g.loadTheater(g.urlVars['theater']);
2012-07-29 10:52:30 +00:00
}else if(typeof g.urlVars['edit']!= "undefined"){
g.loadArea = "edit";
2012-08-20 14:00:57 +00:00
passid = g.urlVars['edit'];
g.editAlbum(g.urlVars['edit']);
2012-08-11 09:28:49 +00:00
}else if(typeof g.urlVars['tag']!= "undefined"){
2012-08-20 14:00:57 +00:00
g.loadArea = "albums";
passid = g.urlVars['tag'];
2012-08-11 09:28:49 +00:00
g.loadAlbums(g.urlVars['tag']);
2012-08-21 12:15:17 +00:00
}else if(g.urlVars["locale"]){
g.loadArea = "albums";
g.loadAlbums("all");
}else if(g.urlVars.length == 0) {
2012-08-11 09:28:49 +00:00
g.loadArea = "albums";
2012-07-25 08:20:07 +00:00
g.loadAlbums("all");
2012-08-20 14:00:57 +00:00
}
if(typeof callbackFn == "function"){
callbackFn.call(this,g.loadArea,passid);
2012-07-25 08:20:07 +00:00
}
2012-07-19 07:44:44 +00:00
})
var bindHandlers = function(){
2012-08-06 09:01:53 +00:00
$("#filter .filter_btns a").click(function(){
if(!$(this).hasClass("active")){
$(this).addClass("active");
2012-08-11 09:28:49 +00:00
if(g.urlVars.length == 0)
2012-08-06 09:01:53 +00:00
window.location = "orbit_gallery?" + $(this).attr("href");
else
window.location = window.location.href +"&"+ $(this).attr("href");
}else{
$(this).removeClass("active");
var loc = window.location.href;
var url = loc.replace($(this).attr("href")+"&","");
if(url == loc)
url = loc.replace($(this).attr("href"),"");
2012-07-19 07:44:44 +00:00
2012-08-06 09:01:53 +00:00
if(url.charAt(url.length-1)=="&" || url.charAt(url.length-1)=="?")
url = url.substr(0,url.length-1);
window.location = url;
}
2012-07-25 08:20:07 +00:00
})
2012-08-20 14:00:57 +00:00
2012-07-25 08:20:07 +00:00
}
2012-08-11 09:28:49 +00:00
$("#filter .filter-clear a").click(function(){
var loc = window.location.href;
var url = null;
var forwhat = $(this).attr("for");
$("#filter ."+forwhat+" a.active").each(function(){
$(this).removeClass("active");
url = loc.replace($(this).attr("href")+"&","");
if(url == loc)
url = loc.replace($(this).attr("href"),"");
if(url.charAt(url.length-1)=="&" || url.charAt(url.length-1)=="?")
url = url.substr(0,url.length-1);
loc = url;
})
window.location = url;
})
2012-07-25 08:20:07 +00:00
}
this.makeNewAlbum = function(){
$.get("add_album",function(html){
2012-08-22 08:46:37 +00:00
rcom.modalWindow({loadHtml:html,width:400,height:320,"closeBtn":false},function(dom){
2012-07-25 08:20:07 +00:00
dom.find("#album_name_save_btn").click(function(){
var options ={
cid : dom.find("select#category_list").val(),
2012-07-31 13:15:42 +00:00
albumname : {
"en" : dom.find("#name_en").val(),
"zh_tw" : dom.find("#name_zh_tw").val()
},
albumdesc : {
"en" : dom.find("#desc_en").val(),
"zh_tw" : dom.find("#desc_zh_tw").val()
}
2012-07-25 08:20:07 +00:00
}
if(options.cid){
$.post("create_album",options,function(response){
if(g.loadArea == "albums")
g.loadAlbums("all");
rcom.modalWindowClose();
})
}
})
dom.find("#album_name_close_btn").click(function(){
rcom.modalWindowClose();
})
2012-07-19 07:44:44 +00:00
})
2012-07-25 08:20:07 +00:00
})
}
2012-07-29 10:52:30 +00:00
this.deleteAlbum = function(id){
2012-07-31 13:15:42 +00:00
if(confirm("<%= I18n.t('gallery.del_album?') %>")){
2012-07-29 10:52:30 +00:00
$.post("delete_album",{aid:id},function(){
window.location = "orbit_gallery";
})
}
}
2012-07-25 08:20:07 +00:00
this.loadAlbums = function(id){
2012-08-20 14:00:57 +00:00
g.loadFooterPanel(g.loadArea,id,function(headbtn){
headbtn = $(headbtn);
headbtn.click(function(){g.makeNewAlbum();})
g.albumArea.find(".rghead .rgfn").html(headbtn);
})
2012-08-21 05:56:50 +00:00
g.albumArea.addClass('o_gallery');
2012-07-25 08:20:07 +00:00
g.albumArea.find("#imgholder").empty();
2012-08-20 14:00:57 +00:00
// var $addsign = $('<div class="rgalbum"><a id="global_add" class="rgui bt-addnew" href="add" onclick="return false;">Add Album</a></div>');
// $addsign.find("a").click(function(){g.makeNewAlbum();})
2012-08-11 09:28:49 +00:00
2012-08-06 09:01:53 +00:00
if(id!="all"){
2012-08-11 09:28:49 +00:00
var cids = [];
var tids = [];
var href = null;
2012-08-06 09:01:53 +00:00
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
2012-08-11 09:28:49 +00:00
if(hash[0]=="cat"){
cids.push(hash[1]);
href = "cat="+hash[1];
}else if(hash[0]=="tag"){
tids.push(hash[1]);
href = "tag="+hash[1];
}
2012-08-06 09:01:53 +00:00
$("#filter .filter_btns a[href='"+href+"']").addClass("active");
}
2012-08-11 09:28:49 +00:00
if(cids.length == 0)
cids = "all";
2012-08-06 09:01:53 +00:00
}else{
2012-08-11 09:28:49 +00:00
var cids = "all";
2012-08-06 09:01:53 +00:00
}
2012-08-11 09:28:49 +00:00
$.getJSON("get_albums",{cid:cids,tid:tids},function(categories){
2012-08-06 09:01:53 +00:00
$.each(categories,function(x,category){
$.each(category,function(i,album){
if(album.cover == "default")
2012-08-22 17:36:39 +00:00
var $img = $("<div class='rgalbum'><a title='"+album.description+"' href='?album="+album._id+"'><img src='../../../assets/gallery/default.jpg' width='120px' height='90px'/></a><span class='albumname'>"+album.name+"</span><span class='categoryname'>"+album.category_name+"</span><span class='tagnames'></span></div>");
2012-08-06 09:01:53 +00:00
else
2012-08-22 17:36:39 +00:00
var $img = $("<div class='rgalbum'><a title='"+album.description+"' href='?album="+album._id+"'><img src='"+album.cover_path+"' width='120px' height='90px'/></a><span class='albumname'>"+album.name+"</span><span class='categoryname'>"+album.category_name+"</span><span class='tagnames'></span></div>");
2012-08-20 14:00:57 +00:00
var tag_string = "";
for(tag in album.tag_names){
2012-08-21 06:31:25 +00:00
tag_string+= '<span class="label label-tags">' + album.tag_names[tag] + '</span>';
2012-08-20 14:00:57 +00:00
}
2012-08-21 05:56:50 +00:00
$img.find(".tagnames").html(tag_string);
2012-08-06 09:01:53 +00:00
g.albumArea.find("#imgholder").append($img);
})
2012-07-25 08:20:07 +00:00
})
2012-08-20 14:00:57 +00:00
// g.albumArea.find("#imgholder").append($addsign);
2012-07-25 08:20:07 +00:00
})
}
this.loadImages = function(id){
2012-08-20 14:00:57 +00:00
var panelopen = false;
g.loadFooterPanel(g.loadArea,id,function(headerPanel){
headarea = $(headerPanel);
g.albumArea.find(".rghead .rgfn").html(headarea);
$('.bt-tag').click(function(){
$(this).toggleClass("active");
var $tag_panel = $('#tag_panel'),
tag_panel_position = 0;
2012-07-25 08:20:07 +00:00
2012-08-20 14:00:57 +00:00
if( $tag_panel.css('right') == '0px' ){
tag_panel_position = -200;
}
$tag_panel.animate({'right':tag_panel_position}, 300);
2012-08-13 08:17:23 +00:00
2012-08-20 14:00:57 +00:00
g.albumArea
.delay(200)
.animate({'margin-right':tag_panel_position+200},300);
return false;
});
g.albumArea.find("#tag_search_box").keyup(function(e){
sval = $(this).val();
if(sval == "<%= I18n.t('gallery.search_tags') %>")
sval = "";
sval = sval.replace(/(^\s*)|(\s*$)/g,'');
if(sval){
var re1 = new RegExp("^[\u4E00-\uFA29]*$"); //Chinese character range
var re2 = new RegExp("^[\uE7C7-\uE7F3]*$");
if ((re1.test(sval) && (re2.test(sval)))){
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:contains("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:containsi("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li").slideDown();
2012-08-20 14:00:57 +00:00
}
})
2012-08-21 05:56:50 +00:00
g.albumArea.find("#tag_panel .bt-save").click(function(){
2012-08-20 14:00:57 +00:00
g.saveTags(id,g.loadArea);
})
2012-08-22 07:59:06 +00:00
g.albumArea.find(".rghead .rgfn .bt-add").click(function(){
2012-08-20 14:00:57 +00:00
showUploadPanel();
})
2012-08-22 07:59:06 +00:00
g.albumArea.find(".rghead .rgfn .bt-del").click(function(){
2012-08-20 14:00:57 +00:00
g.deleteAlbum(id);
})
})
2012-08-07 06:33:30 +00:00
var uploadpanel = $('<div id="upload_panel_holder"><div class="rgfn"><a class="bt-cls btn btn-primary pull-right" title="Close" href="" onclick="return false;"><i class="icon-remove icon-white"></i>Close Panel</a></div></div>');
2012-08-21 17:15:50 +00:00
var frame = $('<iframe id="upload_panel" width="100%" scrolling="no" height="294" frameborder="0" src="upload_panel"></iframe>');
2012-08-22 07:59:06 +00:00
uploadpanel.find(".bt-cls").click(function(){
2012-07-25 08:20:07 +00:00
uploadpanel.hide("slide");
frame.remove();
g.loadImages(id);
panelopen = false;
})
var showUploadPanel = function(){
if(!panelopen){
uploadpanel.prepend(frame);
uploadpanel.show("slide");
panelopen = true;
}
2012-07-19 07:44:44 +00:00
}
2012-07-29 10:52:30 +00:00
2012-08-21 05:56:50 +00:00
g.albumArea.addClass('o_album');
2012-07-25 08:20:07 +00:00
g.albumArea.find(".rghead .rgfn").append(uploadpanel);
g.albumArea.find("#imgholder").empty();
2012-08-06 09:01:53 +00:00
$("#filter").remove();
g.albumArea.css("margin-top","");
2012-08-20 14:00:57 +00:00
$.getJSON("get_images",{aid:id},function(album){
$.each(album.images,function(i,image){
2012-07-25 08:20:07 +00:00
var thumb = image.file.thumb.url;
2012-08-21 05:56:50 +00:00
var $img = $("<div class='rgphoto'><a title='"+image.description+"' href='?theater="+image._id+"'><img src='"+thumb+"'/></a></div>");
2012-07-25 08:20:07 +00:00
g.albumArea.find("#imgholder").append($img);
})
2012-08-20 14:00:57 +00:00
g.tagList.find("input").attr("checked",false);
2012-08-23 11:25:56 +00:00
if(typeof album.tag_names == "undefined"){
$.each(album.tags,function(i,tag){
g.tagList.find("li[data-content="+tag+"] input").attr("checked",true);
})
}else{
$.each(album.tag_names,function(i,tagname){
$li = $("<li><label>"+tagname+"</label><span style='display:none;'>"+tagname+"</span></li>");
g.tagList.append($li);
})
}
2012-08-20 14:00:57 +00:00
// g.albumArea.find("#imgholder").append($addsign);
})
// g.albumArea.find("#imgholder").append($addsign);
// tag
2012-08-20 14:00:57 +00:00
2012-07-25 08:20:07 +00:00
}
this.loadTheater = function(id){
2012-07-29 10:52:30 +00:00
var imageArray;
var imagecount = 0;
var picHeight = 0;
var bindHandlers = function(){
var $slidelist = $('.slidelist'),
$rslide = $('.rslide'),
$rslidenav = $('.rslidenav'),
2012-07-30 17:15:48 +00:00
$img = $("#main_pic img"),
wHeight = $(window).height();
$("#main_pic").height(picHeight);
$img.height("100%");
2012-08-20 14:00:57 +00:00
$('.bt-tag').click(function(){
if(!$(this).hasClass("active"))
updatePhotoTag();
$(this).toggleClass("active");
var $tag_panel = $('#tag_panel'),
tag_panel_position = 0;
2012-07-30 17:15:48 +00:00
2012-08-20 14:00:57 +00:00
if( $tag_panel.css('right') == '0px' ){
tag_panel_position = -200;
}
$tag_panel.animate({'right':tag_panel_position}, 300);
g.albumArea
.delay(200)
.animate({'margin-right':tag_panel_position+200},300);
return false;
});
var updatePhotoTag = function(){
var tags = imageArray[imagecount].tag_ids;
g.tagList.find("input").attr("checked",false);
for(tag in tags){
g.tagList.find("li[data-content="+tags[tag]+"] input").attr("checked",true);
}
}
g.albumArea.find("#tag_search_box").keyup(function(e){
sval = $(this).val();
if(sval == "<%= I18n.t('gallery.search_tags') %>")
sval = "";
sval = sval.replace(/(^\s*)|(\s*$)/g,'');
if(sval){
var re1 = new RegExp("^[\u4E00-\uFA29]*$"); //Chinese character range
var re2 = new RegExp("^[\uE7C7-\uE7F3]*$");
if ((re1.test(sval) && (re2.test(sval)))){
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:contains("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:containsi("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li").slideDown();
2012-08-20 14:00:57 +00:00
}
})
2012-08-21 05:56:50 +00:00
g.albumArea.find("#tag_panel .bt-save").click(function(){
2012-08-20 14:00:57 +00:00
g.saveTags(imageArray[imagecount]._id,g.loadArea);
})
2012-07-29 10:52:30 +00:00
$(".slidectrl a.togglelist").click(function(){
var rslide_h = $rslide.outerHeight();
if ( $slidelist.height() < 1 ){
$slidelist.stop().animate({'height':rslide_h - 30}, 300);
$slidelist.find("ul").show();
} else {
$slidelist.stop().animate({'height':'0px'}, 300);
$slidelist.find("ul").hide();
}
})
2012-08-22 07:59:06 +00:00
$(".slidectrl .togglescreen").click(function(){
2012-07-29 10:52:30 +00:00
toggleFullscreen();
})
2012-08-22 07:59:06 +00:00
$(".slidectrl .browserfullscreen").click(function(){
2012-07-30 17:15:48 +00:00
browserFullScreen();
})
2012-08-22 07:59:06 +00:00
$slidelist.find(".list_element").click(function(){
2012-07-29 10:52:30 +00:00
imagecount = parseInt($(this).parent().attr("for"));
changeImage($(this));
})
2012-08-22 07:59:06 +00:00
$rslidenav.find(".navN").click(function(){
2012-07-29 10:52:30 +00:00
nextpic($(this));
})
$rslidenav.find("a.navP").click(function(){
prevpic($(this));
})
2012-08-22 07:59:06 +00:00
$("#nextpic").click(function(){
2012-07-29 10:52:30 +00:00
nextpic($(this));
})
$(document).keydown(function(e){
if (e.keyCode == 37){
2012-08-22 07:59:06 +00:00
prevpic($rslidenav.find(".navP"));
2012-07-29 10:52:30 +00:00
return false;
}
if(e.keyCode == 39){
2012-08-22 07:59:06 +00:00
nextpic($rslidenav.find(".navN"));
2012-07-29 10:52:30 +00:00
return false;
}
if(e.keyCode == 27){
toggleFullscreen();
2012-08-22 07:59:06 +00:00
$rslide.removeClass('browserFullScreen');
2012-07-29 10:52:30 +00:00
return false;
}
2012-07-30 17:15:48 +00:00
if(e.keyCode == 70 || e.keyCode == 102){
if($rslide.hasClass("fullscreen"))
browserFullScreen();
}
2012-07-29 10:52:30 +00:00
});
2012-07-30 17:15:48 +00:00
var browserFullScreen = function(){
var el = document.documentElement,
rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen;
rfs.call(el);
2012-08-22 07:59:06 +00:00
$rslide.addClass('browserFullScreen');
2012-07-30 17:15:48 +00:00
}
2012-07-29 10:52:30 +00:00
var nextpic = function(dom){
if(imagecount == imageArray.length - 1)
imagecount = 0;
else
imagecount++;
changeImage(dom);
}
var prevpic = function(dom){
if(imagecount == 0)
imagecount = imageArray.length - 1
else
imagecount--;
changeImage(dom);
}
var toggleFullscreen = function(){
if($rslide.hasClass("fullscreen")){
$rslide.css("position","relative");
$rslide.removeClass("fullscreen");
2012-08-22 07:59:06 +00:00
$(".slidectrl .browserfullscreen").hide();
2012-07-29 10:52:30 +00:00
$img.css({"padding":""})
2012-07-31 13:15:42 +00:00
$("#main_pic").height(picHeight );
2012-07-29 10:52:30 +00:00
}else{
2012-07-30 17:15:48 +00:00
$("#main_pic").height(wHeight);
// $img.height("100%");
2012-07-29 10:52:30 +00:00
$rslide.css("position","");
$rslide.addClass("fullscreen");
$img.css({"padding":($rslide.height()-$img.height())/2})
2012-08-22 07:59:06 +00:00
$(".slidectrl .browserfullscreen").show();
2012-07-29 10:52:30 +00:00
}
}
var changeImage = function(dom){
var pageurl = dom.attr('href');
2012-07-30 17:15:48 +00:00
$img.fadeOut(200,function(){
$img.attr({"src":dom.attr("data-content"),"height":picHeight+"px"});
$img.fadeIn(200);
if($rslide.hasClass("fullscreen")){
$img.css({"padding":($rslide.height()-$img.height())/2})
}
$slidelist.stop().animate({'height':'0px'}, 300);
$slidelist.find("ul").hide();
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
// $(".slideinfo b.info").text(imageArray[imagecount].title);
2012-08-20 14:00:57 +00:00
if($('.bt-tag').hasClass("active"))
updatePhotoTag();
2012-08-22 07:59:06 +00:00
$(".slideinfo .info").text(imageArray[imagecount].description);
2012-07-31 13:15:42 +00:00
if(imageArray.length > 1)
updateNavigation();
2012-07-30 17:15:48 +00:00
})
2012-08-20 14:00:57 +00:00
2012-07-29 10:52:30 +00:00
}
var updateNavigation = function(){
var next, prev;
if(imagecount == 0){
next = 1;
prev = imageArray.length - 1;
}else if(imagecount == imageArray.length - 1){
next = 0
prev = imageArray.length - 2;
}else{
next = imagecount + 1;
prev = imagecount - 1;
}
2012-08-22 07:59:06 +00:00
$(".navN").attr({"href":"orbit_gallery?theater="+imageArray[next]._id,"data-content":imageArray[next].file.url});
$(".navP").attr({"href":"orbit_gallery?theater="+imageArray[prev]._id,"data-content":imageArray[prev].file.url});
2012-07-29 10:52:30 +00:00
};
2012-07-31 13:15:42 +00:00
if(imageArray.length > 1)
updateNavigation();
2012-07-29 10:52:30 +00:00
}
var preparestage = function(albumid){
2012-08-20 14:00:57 +00:00
$.getJSON("get_images",{aid:albumid},function(album){
imageArray = eval(album.images);
$.each(album.images,function(i,image){
2012-07-29 10:52:30 +00:00
if(image._id == id)
imagecount = i;
})
bindHandlers();
})
}
g.albumArea.find("#imgholder").load("theater?pic="+id,function(theater,response,xhr){
if(xhr.status == 404){
2012-07-31 13:15:42 +00:00
$(this).text("<%= I18n.t('gallery.pic_not_found') %>.");
2012-07-29 10:52:30 +00:00
return false;
}
2012-08-06 09:01:53 +00:00
$("#filter").remove();
g.albumArea.css("margin-top","");
2012-07-25 08:20:07 +00:00
var albumid = $(theater).find("#main_pic").attr("data-content");
2012-08-20 14:00:57 +00:00
g.loadFooterPanel(g.loadArea,id,function(head){
head = $(head);
g.albumArea.find(".rghead .rgfn").html(head);
2012-08-22 07:59:06 +00:00
g.albumArea.find(".bt-back").attr("href","orbit_gallery?album="+albumid);
g.albumArea.find(".bt-edit").attr("href","orbit_gallery?edit="+albumid);
2012-08-20 14:00:57 +00:00
})
g.albumArea.css("margin-bottom","0");
picHeight = $(window).height() - ($("#orbit-bar").outerHeight() + $("#orbit_gallery .form-actions").outerHeight());
2012-07-29 10:52:30 +00:00
preparestage(albumid);
2012-08-20 14:00:57 +00:00
});
}
this.editAlbum = function(id){
var bindHandlers = function(){
$(".nav .nav-tabs a").click(function(){
$(".tab_content .tab-pane").hide();
2012-08-10 17:32:53 +00:00
2012-08-20 14:00:57 +00:00
})
$(".description_loader .edit_fn .bt-cover").click(function(){
$(".bt-cover").removeClass("setcover");
$(this).addClass("setcover");
$.post("set_cover",{"imageid":$(this).attr("href"),"aid":id},function(){})
})
$(".description_loader .edit_fn .bt-dels").click(function(){
2012-08-21 17:15:50 +00:00
$(this)
.toggleClass("setdelete btn-danger active")
.find('span').toggleClass('icon-white');
2012-08-20 14:00:57 +00:00
if($(".description_loader .edit_fn .setdelete").length > 0){
g.albumArea.find(".rghead .rgfn .bt-delete").show();
}else{
g.albumArea.find(".rghead .rgfn .bt-delete").hide();
}
})
g.albumArea.find(".rghead .rgfn .bt-save").click(function(){
// var dataArray = Array();
2012-08-21 12:15:17 +00:00
// $(".description_loader .en .txtchange").each(function(){
// var thisid = $(this).attr("for");
// dataArray.push({"id":thisid,"text":{"en":$(this).val(),"zh_tw":$(".description_loader .zh_tw .txtchange[for="+thisid+"]").val()}});
2012-08-20 14:00:57 +00:00
// })
// var albumnm = Array();
// $(".albumname_edit .txtchange").each(function(){
// albumnm.push($(this).val())
// })
2012-08-21 12:15:17 +00:00
// var dataArray = $("form#edit_album").serialize();
// $.post("update_album",{"data":dataArray},function(){
// })
2012-08-10 17:32:53 +00:00
2012-08-20 14:00:57 +00:00
})
2012-08-22 17:36:39 +00:00
var tag_panel_hidden = true;
var last_clicked = null;
2012-08-10 17:32:53 +00:00
$('.bt-tag').click(function(){
2012-08-20 14:00:57 +00:00
$(this).toggleClass("active");
2012-08-22 17:36:39 +00:00
2012-08-10 17:32:53 +00:00
var $tag_panel = $('#tag_panel'),
tag_panel_position = 0;
2012-08-22 17:36:39 +00:00
if( $tag_panel.css('right') == '0px' ){
tag_panel_position = -200;
}
if(last_clicked == $(this))
alert("same")
else
alert("no")
2012-08-10 17:32:53 +00:00
$tag_panel.animate({'right':tag_panel_position}, 300);
g.albumArea
.delay(200)
.animate({'margin-right':tag_panel_position+200},300);
2012-08-22 17:36:39 +00:00
2012-08-10 17:32:53 +00:00
return false;
});
2012-08-20 14:00:57 +00:00
g.albumArea.find("#tag_search_box").keyup(function(e){
sval = $(this).val();
if(sval == "<%= I18n.t('gallery.search_tags') %>")
sval = "";
sval = sval.replace(/(^\s*)|(\s*$)/g,'');
if(sval){
var re1 = new RegExp("^[\u4E00-\uFA29]*$"); //Chinese character range
var re2 = new RegExp("^[\uE7C7-\uE7F3]*$");
if ((re1.test(sval) && (re2.test(sval)))){
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:contains("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li span:not(:containsi("+sval+"))").parent().slideUp();
2012-08-20 14:00:57 +00:00
}
2012-07-29 10:52:30 +00:00
}else{
2012-08-22 07:59:06 +00:00
$("#gallery_tag_list li").slideDown();
2012-07-29 10:52:30 +00:00
}
})
2012-08-21 05:56:50 +00:00
g.albumArea.find("#tag_panel .bt-save").click(function(){
2012-08-20 14:00:57 +00:00
g.saveTags(imageArray[imagecount]._id,g.loadArea);
2012-07-29 10:52:30 +00:00
})
var tempval;
$(".txtchange").focus(function(){
tempval = $(this).val();
}).keyup(function(){
if($(this).val() != tempval)
g.albumArea.find(".rghead .rgfn .bt-save").show();
})
g.albumArea.find(".rghead .rgfn .bt-delete").click(function(){
var images_to_delete = new Array();
var delete_cover = false;
var doms_to_delete = new Array();
2012-08-20 14:00:57 +00:00
var thiscover = $(".description_loader .edit_fn .setcover").attr("href");
$(".description_loader .edit_fn .bt-dels").each(function(){
2012-07-29 10:52:30 +00:00
if($(this).hasClass("setdelete")){
images_to_delete.push($(this).attr("href"));
doms_to_delete.push($(this).parent().parent());
if(thiscover == $(this).attr("href"))
delete_cover = true;
}
})
if(confirm("Deleting "+images_to_delete.length+" image(s)?")){
$.post("delete_images",{"images":images_to_delete,"delete_cover":delete_cover,"aid":id},function(response){
if(response.success){
for(dom in doms_to_delete){
doms_to_delete[dom].hide("slide",function(){$(this).remove();})
}
}
2012-07-30 17:15:48 +00:00
g.albumArea.find(".rghead .rgfn .bt-delete").hide();
2012-07-29 10:52:30 +00:00
})
}
})
}
2012-08-06 09:01:53 +00:00
$("#filter").remove();
2012-08-21 05:56:50 +00:00
g.albumArea.addClass('o_album_edit');
2012-08-06 09:01:53 +00:00
g.albumArea.css("margin-top","");
var head ='<a href="orbit_gallery?album='+id+'" class="bt-back btn pull-left" title="<%= I18n.t("gallery.back_to_photos") %>"><i class="icon-arrow-left icon-black"></i><%= I18n.t("gallery.back_to_photos") %></a></div>';
2012-08-07 06:33:30 +00:00
head+='<a class="bt-del bt-delete btn btn-primary pull-right" onclick="return false;" style="display:none;" title="<%= I18n.t("gallery.delete_selected") %>" href=""><i class="icon-trash icon-white"></i><%= I18n.t("gallery.delete_selected") %></a>';
head+='<a class="bt-save btn btn-primary pull-right" onclick="return false;" style="display:none;" title="Save" href=""><i class="icon-ok icon-white"></i>Save</a>';
2012-07-29 10:52:30 +00:00
g.albumArea.find(".rghead .rgfn").html(head);
g.albumArea.find("#imgholder").load("edit_album?aid="+id,function(data,response,xhr){
if(xhr.status == 404){
2012-07-31 13:15:42 +00:00
$(this).text("<%= I18n.t('gallery.album_not_found') %>");
2012-07-29 10:52:30 +00:00
return false;
}
bindHandlers();
})
}
2012-08-20 14:00:57 +00:00
this.saveTags = function(id,tagsfor){
var tagids = new Array();
g.tagList.find("li input:checked").each(function(){
tagids.push($(this).parent().attr("data-content"));
})
var tag = null;
if(g.loadArea == "images")
tag = "album";
else if(g.loadArea == "theater")
tag = "pic";
2012-07-29 10:52:30 +00:00
2012-08-20 14:00:57 +00:00
$.post("save_tags",{"id":id,"tag":tag,"tids":tagids},function(){
})
}
}
galleryAPI.prototype.locale = "en";