updates for tagging and language fix
This commit is contained in:
		
							parent
							
								
									2c0058e8c9
								
							
						
					
					
						commit
						3d607cfca4
					
				|  | @ -1,31 +1,46 @@ | |||
| <%# encoding: utf-8 %> | ||||
| $.extend($.expr[':'], { | ||||
| 	'containsi': function (elem, i, match, array) { | ||||
| 		return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; | ||||
| 	} | ||||
| }); | ||||
| var galleryAPI = function(){ | ||||
| 	g = this; | ||||
| 	this.urlVars = rcom.getUrlVars(); | ||||
| 	this.albumArea = $("#orbit_gallery"); | ||||
| 	this.loadArea = ""; | ||||
| 	this.loadArea = null; | ||||
| 	this.tagList = $("ul#gallery_tag_list"); | ||||
| 	// this.authenticated = false; | ||||
| 	this.initialize = function(){ | ||||
| 	this.initialize = function(callbackFn){ | ||||
| 		$(document).ready(function(){ | ||||
| 			bindHandlers(); | ||||
| 			var passid = null; | ||||
| 			if(typeof g.urlVars['cat']!= "undefined"){ | ||||
| 				g.loadArea = "albums"; | ||||
| 				passid = g.urlVars['cat']; | ||||
| 				g.loadAlbums(g.urlVars['cat']); | ||||
| 				g.loadArea = "albums"; | ||||
| 			}else if(typeof g.urlVars['album']!= "undefined"){ | ||||
| 				g.loadImages(g.urlVars['album']); | ||||
| 				g.loadArea = "images"; | ||||
| 				passid = g.urlVars['album']; | ||||
| 				g.loadImages(g.urlVars['album']); | ||||
| 			}else if(typeof g.urlVars['theater']!= "undefined"){ | ||||
| 				g.loadTheater(g.urlVars['theater']); | ||||
| 				g.loadArea = "theater"; | ||||
| 				passid = g.urlVars['theater']; | ||||
| 				g.loadTheater(g.urlVars['theater']); | ||||
| 			}else if(typeof g.urlVars['edit']!= "undefined"){ | ||||
| 				g.editAlbum(g.urlVars['edit']); | ||||
| 				g.loadArea = "edit"; | ||||
| 				passid = g.urlVars['edit']; | ||||
| 				g.editAlbum(g.urlVars['edit']); | ||||
| 			}else if(typeof g.urlVars['tag']!= "undefined"){ | ||||
| 				g.loadArea = "albums"; | ||||
| 				passid = g.urlVars['tag']; | ||||
| 				g.loadAlbums(g.urlVars['tag']); | ||||
| 			}else if(g.urlVars.length == 0){ | ||||
| 				g.loadArea = "albums"; | ||||
| 			}else{ | ||||
| 				g.loadAlbums("all"); | ||||
| 				g.loadArea = "albums"; | ||||
| 			} | ||||
| 			if(typeof callbackFn == "function"){ | ||||
| 				callbackFn.call(this,g.loadArea,passid); | ||||
| 			} | ||||
| 		}) | ||||
| 		var bindHandlers = function(){ | ||||
|  | @ -48,6 +63,7 @@ var galleryAPI = function(){ | |||
| 				    window.location = url; | ||||
| 				} | ||||
| 			}) | ||||
| 			 | ||||
| 		} | ||||
| 		$("#filter .filter-clear a").click(function(){ | ||||
| 			var loc = window.location.href; | ||||
|  | @ -105,12 +121,15 @@ var galleryAPI = function(){ | |||
| 	} | ||||
| 
 | ||||
| 	this.loadAlbums = function(id){ | ||||
| 		var headbtn = $('<a class="btn btn-primary pull-right" title="<%= I18n.t("gallery.add_album") %>" href="albums" onclick="return false;"><i class="icon-plus icon-white"></i><%= I18n.t("gallery.add_album") %></a>'); | ||||
| 		headbtn.click(function(){g.makeNewAlbum();}) | ||||
| 		g.albumArea.find(".rghead .rgfn").html(headbtn); | ||||
| 		g.loadFooterPanel(g.loadArea,id,function(headbtn){ | ||||
| 			headbtn = $(headbtn); | ||||
| 			headbtn.click(function(){g.makeNewAlbum();}) | ||||
| 			g.albumArea.find(".rghead .rgfn").html(headbtn); | ||||
| 		}) | ||||
| 		 | ||||
| 		g.albumArea.find("#imgholder").empty(); | ||||
| 		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();}) | ||||
| 		// 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();}) | ||||
| 
 | ||||
| 		if(id!="all"){ | ||||
| 			var cids = []; | ||||
|  | @ -137,16 +156,29 @@ var galleryAPI = function(){ | |||
| 			$.each(categories,function(x,category){ | ||||
| 				$.each(category,function(i,album){ | ||||
| 					if(album.cover == "default") | ||||
| 						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></div>"); | ||||
| 						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><br /><span class='tagnames'></span></div>"); | ||||
| 					else | ||||
| 						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></div>"); | ||||
| 						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><br /><span class='tagnames'></span></div>"); | ||||
| 					var tag_string = ""; | ||||
| 					for(tag in album.tag_names){ | ||||
| 						tag_string+=album.tag_names[tag] + " "; | ||||
| 					} | ||||
| 					$img.find("span.tagnames").text(tag_string); | ||||
| 					g.albumArea.find("#imgholder").append($img); | ||||
| 				}) | ||||
| 			}) | ||||
| 			g.albumArea.find("#imgholder").append($addsign); | ||||
| 			// g.albumArea.find("#imgholder").append($addsign); | ||||
| 		}) | ||||
| 	} | ||||
| 	this.loadImages = function(id){ | ||||
| 		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; | ||||
| 
 | ||||
| 		var headarea = '<a class="bt-back btn pull-left" title="<%= I18n.t("gallery.back_to_albums") %>" href="orbit_gallery"><i class="icon-arrow-left icon-black"></i><%= I18n.t("gallery.back_to_albums") %></a> '; | ||||
| 		headarea+='<a class="bt-add btn btn-primary pull-right" title="<%= I18n.t("gallery.add_images") %>" href="images" onclick="return false;"><i class="icon-plus icon-white"></i><%= I18n.t("gallery.add_images") %></a> '; | ||||
|  | @ -156,20 +188,12 @@ var galleryAPI = function(){ | |||
| 		headarea = $(headarea); | ||||
| 		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>'); | ||||
| 		var frame = $('<iframe id="upload_panel" width="100%" scrolling="no" height="200" frameborder="0" src="upload_panel"></iframe>'); | ||||
| 		g.albumArea.find(".rghead .rgfn").html(headarea); | ||||
| 		g.albumArea.find(".rghead .rgfn a.bt-add").click(function(){ | ||||
| 			showUploadPanel(); | ||||
| 		}) | ||||
| 		g.albumArea.find(".rghead .rgfn a.bt-del").click(function(){ | ||||
| 			g.deleteAlbum(id); | ||||
| 		}) | ||||
| 		uploadpanel.find("a.bt-cls").click(function(){ | ||||
| 			uploadpanel.hide("slide"); | ||||
| 			frame.remove(); | ||||
| 			g.loadImages(id); | ||||
| 			panelopen = false; | ||||
| 		}) | ||||
| 		var panelopen = false; | ||||
| 		var showUploadPanel = function(){ | ||||
| 			if(!panelopen){ | ||||
| 				uploadpanel.prepend(frame); | ||||
|  | @ -182,36 +206,24 @@ var galleryAPI = function(){ | |||
| 		g.albumArea.find("#imgholder").empty(); | ||||
| 		$("#filter").remove(); | ||||
| 		g.albumArea.css("margin-top",""); | ||||
| 		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(){showUploadPanel();}) | ||||
| 		$.getJSON("get_images",{aid:id},function(images){ | ||||
| 			$.each(images,function(i,image){ | ||||
| 		// 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(){showUploadPanel();}) | ||||
| 		$.getJSON("get_images",{aid:id},function(album){ | ||||
| 			$.each(album.images,function(i,image){ | ||||
| 				var thumb = image.file.thumb.url; | ||||
| 				var $img = $("<div class='rgalbum'><a title='"+image.description+"' href='?theater="+image._id+"'><img src='"+thumb+"'/></a></div>"); | ||||
| 				g.albumArea.find("#imgholder").append($img); | ||||
| 			}) | ||||
| 			g.albumArea.find("#imgholder").append($addsign); | ||||
| 			g.tagList.find("input").attr("checked",false); | ||||
| 			$.each(album.tags,function(i,tag){ | ||||
| 
 | ||||
| 				g.tagList.find("li[data-content="+tag+"] input").attr("checked",true); | ||||
| 			}) | ||||
| 			// g.albumArea.find("#imgholder").append($addsign); | ||||
| 		}) | ||||
| 		g.albumArea.find("#imgholder").append($addsign); | ||||
| 
 | ||||
| 
 | ||||
| 		// g.albumArea.find("#imgholder").append($addsign); | ||||
| 		// tag | ||||
| 		$('.bt-tag').click(function(){ | ||||
| 			var $tag_panel = $('#tag_panel'), | ||||
| 				tag_panel_position = 0; | ||||
| 
 | ||||
| 			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; | ||||
| 		}); | ||||
| 
 | ||||
| 
 | ||||
| 		 | ||||
| 	} | ||||
| 	this.loadTheater = function(id){ | ||||
| 		var imageArray; | ||||
|  | @ -226,7 +238,52 @@ var galleryAPI = function(){ | |||
| 
 | ||||
| 				$("#main_pic").height(picHeight); | ||||
| 				$img.height("100%"); | ||||
| 			 | ||||
| 			$('.bt-tag').click(function(){ | ||||
| 				if(!$(this).hasClass("active")) | ||||
| 					updatePhotoTag(); | ||||
| 				$(this).toggleClass("active"); | ||||
| 				var $tag_panel = $('#tag_panel'), | ||||
| 					tag_panel_position = 0; | ||||
| 
 | ||||
| 				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)))){ | ||||
| 						$("ul#gallery_tag_list li span:not(:contains("+sval+"))").parent().slideUp(); | ||||
| 					}else{ | ||||
| 						$("ul#gallery_tag_list li span:not(:containsi("+sval+"))").parent().slideUp(); | ||||
| 					} | ||||
| 						 | ||||
| 				}else{ | ||||
| 					$("ul#gallery_tag_list li").slideDown(); | ||||
| 				} | ||||
| 			}) | ||||
| 			g.albumArea.find("#tag_panel button.bt-save").click(function(){ | ||||
| 				g.saveTags(imageArray[imagecount]._id,g.loadArea); | ||||
| 			}) | ||||
| 			$(".slidectrl a.togglelist").click(function(){ | ||||
| 				var rslide_h = $rslide.outerHeight(); | ||||
| 				if ( $slidelist.height() < 1 ){ | ||||
|  | @ -324,10 +381,13 @@ var galleryAPI = function(){ | |||
| 				      window.history.pushState({path:pageurl},'',pageurl); | ||||
| 				    } | ||||
| 				    // $(".slideinfo b.info").text(imageArray[imagecount].title); | ||||
| 				    if($('.bt-tag').hasClass("active")) | ||||
| 				    	updatePhotoTag(); | ||||
| 				    $(".slideinfo span.info").text(imageArray[imagecount].description); | ||||
| 				    if(imageArray.length > 1) | ||||
| 				    	updateNavigation(); | ||||
| 			    }) | ||||
| 
 | ||||
| 			} | ||||
| 			var updateNavigation = function(){ | ||||
| 				var next, prev; | ||||
|  | @ -349,19 +409,15 @@ var galleryAPI = function(){ | |||
| 		} | ||||
| 		 | ||||
| 		var preparestage = function(albumid){ | ||||
| 			$.getJSON("get_images",{aid:albumid},function(images){ | ||||
| 				imageArray = eval(images); | ||||
| 				$.each(images,function(i,image){ | ||||
| 			$.getJSON("get_images",{aid:albumid},function(album){ | ||||
| 				imageArray = eval(album.images); | ||||
| 				$.each(album.images,function(i,image){ | ||||
| 					if(image._id == id) | ||||
| 						imagecount = i; | ||||
| 				}) | ||||
| 				bindHandlers(); | ||||
| 			}) | ||||
| 		} | ||||
| 
 | ||||
| 		var head = $('<a href="" 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>'); | ||||
| 		var head1 = $('<a class="bt-edit btn btn-primary pull-right" title="<%= I18n.t("gallery.edit") %>" href="" ><i class="icon-pencil icon-white"></i><%= I18n.t("gallery.edit") %></a>'); | ||||
| 		var head2 = $('<a class="bt-tag btn btn-primary pull-right" title="<%= I18n.t("gallery.photo_tag") %>" href="" ><i class="icon-tag icon-white"></i><%= I18n.t("gallery.photo_tag") %></a>'); | ||||
| 		g.albumArea.find("#imgholder").load("theater?pic="+id,function(theater,response,xhr){ | ||||
| 			if(xhr.status == 404){ | ||||
| 				$(this).text("<%= I18n.t('gallery.pic_not_found') %>."); | ||||
|  | @ -370,16 +426,55 @@ var galleryAPI = function(){ | |||
| 			$("#filter").remove(); | ||||
| 			g.albumArea.css("margin-top",""); | ||||
| 			var albumid = $(theater).find("#main_pic").attr("data-content"); | ||||
| 			head.attr("href","orbit_gallery?album="+albumid); | ||||
| 			head1.attr("href","orbit_gallery?edit="+albumid); | ||||
| 			g.albumArea.find(".rghead .rgfn").html(head); | ||||
| 			g.albumArea.find(".rghead .rgfn").append(head1,head2); | ||||
| 			picHeight = $(window).height() - ($("#orbit-bar").outerHeight() + $("#orbit_gallery .rghead").outerHeight()); | ||||
| 			g.loadFooterPanel(g.loadArea,id,function(head){ | ||||
| 				head = $(head);		 | ||||
| 				g.albumArea.find(".rghead .rgfn").html(head); | ||||
| 				g.albumArea.find("a.bt-back").attr("href","orbit_gallery?album="+albumid); | ||||
| 				g.albumArea.find("a.bt-edit").attr("href","orbit_gallery?edit="+albumid);	 | ||||
| 			}) | ||||
| 			g.albumArea.css("margin-bottom","0"); | ||||
| 			picHeight = $(window).height() - ($("#orbit-bar").outerHeight() + $("#orbit_gallery .form-actions").outerHeight()); | ||||
| 			preparestage(albumid); | ||||
| 			 | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	this.editAlbum = function(id){ | ||||
| 		var bindHandlers = function(){ | ||||
| 			$(".nav .nav-tabs a").click(function(){ | ||||
| 				$(".tab_content .tab-pane").hide(); | ||||
| 
 | ||||
| 			// tag | ||||
| 			}) | ||||
| 			$(".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(){ | ||||
| 				$(this).toggleClass("setdelete"); | ||||
| 				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(); | ||||
| 				// $(".description_loader .txtchange").each(function(){ | ||||
| 				// 	dataArray.push({"id":$(this).attr("for"),"text": $(this).val()}); | ||||
| 				// }) | ||||
| 				// var albumnm = Array(); | ||||
| 				// $(".albumname_edit .txtchange").each(function(){ | ||||
| 				// 	albumnm.push($(this).val()) | ||||
| 				// }) | ||||
| 				var dataArray = $("form#edit_album").serialize(); | ||||
| 				$.post("update_album",{"aid":id,"data":dataArray},function(){ | ||||
| 
 | ||||
| 				}) | ||||
| 			}) | ||||
| 			$('.bt-tag').click(function(){ | ||||
| 				 | ||||
| 				$(this).toggleClass("active"); | ||||
| 				var $tag_panel = $('#tag_panel'), | ||||
| 					tag_panel_position = 0; | ||||
| 
 | ||||
|  | @ -393,33 +488,26 @@ var galleryAPI = function(){ | |||
| 					.animate({'margin-right':tag_panel_position+200},300); | ||||
| 				return false; | ||||
| 			}); | ||||
| 			}); | ||||
| 	} | ||||
| 
 | ||||
| 	this.editAlbum = function(id){ | ||||
| 		var bindHandlers = function(){ | ||||
| 			$("#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(){ | ||||
| 				$(this).toggleClass("setdelete"); | ||||
| 				if($("#description_loader .edit_fn .setdelete").length > 0){ | ||||
| 					g.albumArea.find(".rghead .rgfn .bt-delete").show(); | ||||
| 			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)))){ | ||||
| 						$("ul#gallery_tag_list li span:not(:contains("+sval+"))").parent().slideUp(); | ||||
| 					}else{ | ||||
| 						$("ul#gallery_tag_list li span:not(:containsi("+sval+"))").parent().slideUp(); | ||||
| 					} | ||||
| 						 | ||||
| 				}else{ | ||||
| 					g.albumArea.find(".rghead .rgfn .bt-delete").hide(); | ||||
| 					$("ul#gallery_tag_list li").slideDown(); | ||||
| 				} | ||||
| 			}) | ||||
| 			g.albumArea.find(".rghead .rgfn .bt-save").click(function(){ | ||||
| 				var dataArray =  Array(); | ||||
| 				$("#description_loader .txtchange").each(function(){ | ||||
| 					dataArray.push({"id":$(this).attr("for"),"text": $(this).val()}); | ||||
| 				}) | ||||
| 				albumnm = $(".albumname_edit #album_name_text").val(); | ||||
| 				$.post("update_album",{data:dataArray,"aid":id,"name":albumnm},function(){ | ||||
| 
 | ||||
| 				}) | ||||
| 			g.albumArea.find("#tag_panel button.bt-save").click(function(){ | ||||
| 				g.saveTags(imageArray[imagecount]._id,g.loadArea); | ||||
| 			}) | ||||
| 			var tempval; | ||||
| 			$(".txtchange").focus(function(){ | ||||
|  | @ -432,8 +520,8 @@ var galleryAPI = function(){ | |||
| 				var images_to_delete = new Array(); | ||||
| 				var delete_cover = false; | ||||
| 				var doms_to_delete = new Array(); | ||||
| 				var thiscover = $("#description_loader .edit_fn .setcover").attr("href"); | ||||
| 				$("#description_loader .edit_fn .bt-dels").each(function(){ | ||||
| 				var thiscover = $(".description_loader .edit_fn .setcover").attr("href"); | ||||
| 				$(".description_loader .edit_fn .bt-dels").each(function(){ | ||||
| 					if($(this).hasClass("setdelete")){ | ||||
| 						images_to_delete.push($(this).attr("href")); | ||||
| 						doms_to_delete.push($(this).parent().parent()); | ||||
|  | @ -467,5 +555,20 @@ var galleryAPI = function(){ | |||
| 			bindHandlers(); | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
| 	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"; | ||||
| 
 | ||||
| 		$.post("save_tags",{"id":id,"tag":tag,"tids":tagids},function(){ | ||||
| 
 | ||||
| 		})	 | ||||
| 	} | ||||
| } | ||||
| galleryAPI.prototype.locale = "en"; | ||||
|  |  | |||
|  | @ -549,6 +549,12 @@ body.fullscreen, .fullscreen #container, .fullscreen #container2, .fullscreen #m | |||
| 	margin-left: 8px; | ||||
| 	margin-right: 8px; | ||||
| } | ||||
| .tab_content .tab-pane{ | ||||
| 	display: none; | ||||
| } | ||||
| .tab_content .active{ | ||||
| 	display: block; | ||||
| } | ||||
| #orbit_gallery .btn { margin: 0; } | ||||
| #orbit_gallery .rgfn .btn { | ||||
| 	margin-left: 8px; | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ class Panel::Gallery::BackEnd::OrbitGalleriesController < OrbitBackendController | |||
| include AdminHelper | ||||
| 	def index | ||||
| 		if is_manager? || is_admin? || is_sub_manager? | ||||
| 			@authenticated = true | ||||
| 			@authenticated = true  #turn this value to false for view only | ||||
| 		else | ||||
| 			@authenticated = false | ||||
| 		end | ||||
|  | @ -90,8 +90,20 @@ include AdminHelper | |||
| 				end | ||||
| 			end | ||||
| 		end | ||||
| 		 | ||||
| 
 | ||||
| 		i = 0 | ||||
| 		@albums.each do |album| | ||||
| 			album.each do |values| | ||||
| 				# if values.tag_ids.kind_of?(Array)  | ||||
| 				tags = Array.new | ||||
| 					values.tag_ids.each do |tag| | ||||
| 						tags << GalleryTag.find(tag)[I18n.locale] | ||||
| 					end | ||||
| 				# end | ||||
| 				values.tag_names = tags | ||||
| 				values.save | ||||
| 			end | ||||
| 			i = i + 1 | ||||
| 		end | ||||
| 		# @albums = GalleryAlbum.find("5017a7babd98eb049900000a") | ||||
| 		# @albums.update_attributes({:tag_ids =>["501ba786bd98eb0232000126"]}) | ||||
| 
 | ||||
|  | @ -118,8 +130,7 @@ include AdminHelper | |||
| 
 | ||||
| 	def get_images | ||||
| 		@album = GalleryAlbum.find(params["aid"]) | ||||
| 		@images = @album.gallery_images.all | ||||
| 		render :json=>@images.to_json | ||||
| 		render :json=>{"images" => @album.gallery_images.all, "tags" => @album.tag_ids}.to_json | ||||
| 	end | ||||
| 
 | ||||
| 	def theater | ||||
|  | @ -143,7 +154,7 @@ include AdminHelper | |||
| 			aid = params['aid'] | ||||
| 			album = GalleryAlbum.find(aid) | ||||
| 			@images = album.gallery_images.all | ||||
| 			@album_name = album.name | ||||
| 			@album_name = album.name_translations | ||||
| 			@cover = album.cover | ||||
| 			render :layout => false | ||||
| 		end | ||||
|  | @ -171,16 +182,30 @@ include AdminHelper | |||
| 	end | ||||
| 
 | ||||
| 	def update_album | ||||
| 		# data = params['data'] | ||||
| 		# album_name = params['name'] | ||||
| 		# aid = params['aid'] | ||||
| 		# data.each do |d| | ||||
| 		# 	image = GalleryImage.find(d[1][:id]) | ||||
| 		# 	image.update_attributes(:description=>d[1][:text]) | ||||
| 		# end | ||||
| 		# album = GalleryAlbum.find(aid) | ||||
| 		# album.update_attributes(:name => album_name) | ||||
| 		data = params['data'] | ||||
| 		album_name = params['name'] | ||||
| 		aid = params['aid'] | ||||
| 		data.each do |d| | ||||
| 			image = GalleryImage.find(d[1][:id]) | ||||
| 			image.update_attributes(:description=>d[1][:text]) | ||||
| 		debugger | ||||
| 
 | ||||
| 		 render :json =>{"success"=>true}.to_json | ||||
| 	end | ||||
| 
 | ||||
| 	def save_tags | ||||
| 		case params[:tag] | ||||
| 		when "album" | ||||
| 			@object = GalleryAlbum.find(params[:id]) | ||||
| 		when "pic" | ||||
| 			@object = GalleryImage.find(params[:id]) | ||||
| 		end | ||||
| 		album = GalleryAlbum.find(aid) | ||||
| 		album.update_attributes(:name => album_name) | ||||
| 		render :json =>{"success"=>true}.to_json | ||||
| 		@object.update_attributes({:tag_ids => params[:tids]}) | ||||
| 		render :json => {"success"=> "true"}.to_json | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ class GalleryAlbum | |||
|   	field :description, localize: true | ||||
|   	field :cover, default: "default" | ||||
|   	field :cover_path | ||||
|   	field :tag_names | ||||
| 
 | ||||
|   	belongs_to :gallery_category | ||||
|   	has_and_belongs_to_many :tags, :class_name => "GalleryTag" | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ class GalleryImage | |||
|   	mount_uploader :file, GalleryUploader | ||||
| 
 | ||||
|   	field :title | ||||
|   	field :description | ||||
|   	field :description, localize: true | ||||
| 
 | ||||
|   	has_and_belongs_to_many :tags, :class_name => "GalleryTag" | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,9 +2,9 @@ | |||
| 	<% @categorylist.each do |category| %> | ||||
|     <div class="tag clear"> | ||||
|       <div class="tagitem"> | ||||
|         <i class="icons-star"></i> | ||||
|         <i class="icon-folder-close"></i> | ||||
|         <% @site_valid_locales.each do |locale| %> | ||||
|        		<span for="<%= locale %>"><%= category.name_translations[locale] %> </span> | ||||
|        		<span class="value" for="<%= locale %>"><%= category.name_translations[locale] %> </span> | ||||
|        	<% end %> | ||||
|       </div> | ||||
|       <div class="action"> | ||||
|  | @ -37,7 +37,7 @@ | |||
| 			var parent = a.parent().parent(); | ||||
| 			var parenthtml = parent.html(); | ||||
| 			var tempdom = $("<div class='tagitem'></div>"); | ||||
| 			parent.find("span").each(function(){ | ||||
| 			parent.find("span.value").each(function(){ | ||||
| 				var locale = $(this).attr("for"); | ||||
| 				var lang = { | ||||
| 					"en" : "English", | ||||
|  |  | |||
|  | @ -4,26 +4,42 @@ | |||
| # from line 129 | ||||
| %> | ||||
| <ul class="nav nav-tabs"> | ||||
|     <li class="active"><a data-toggle="tab" href=".zh_tw">中文</a></li> | ||||
|     <li><a data-toggle="tab" href=".en">英文</a></li> | ||||
| 	<% i = 0 %> | ||||
| 	<% @site_valid_locales.each do |locale| %> | ||||
| 		<% if i == 0 %> | ||||
| 	  	 	 <li class="active"><a data-toggle="tab" href=".<%= locale %>"><%= locale %></a></li> | ||||
| 	   	<% else %> | ||||
| 	   	 	 <li><a data-toggle="tab" href=".<%= locale %>"><%= locale %></a></li> | ||||
| 	   	<% end %> | ||||
| 	   <% i = 1 %> | ||||
| 	<% end %> | ||||
| </ul> | ||||
| <form id="edit_album"> | ||||
| <div class="tab_content"> | ||||
| 	<div class="zh_tw tab-pane in active"> | ||||
| 	<% i = 0 %> | ||||
| 	<% @site_valid_locales.each do |locale| %> | ||||
| 	<% if i == 0 %> | ||||
| 		<div class="<%= locale %> fade tab-pane in active"> | ||||
| 	<% else %> | ||||
| 		<div class="<%= locale %> fade tab-pane" > | ||||
| 	<% end %> | ||||
| 	<% i = 1 %> | ||||
| 		<div class="albumname_edit"> | ||||
| 			<label for="">Album Name:</label> | ||||
| 			<div class="inputui rginput rgih26 w380"><span><input type="text" id='album_name_text' value="<%= @album_name %>" class="txtchange" /></span></div> | ||||
| 			<div class="inputui rginput rgih26 w380"><span><input type="text" name="edit_album[name][<%= locale %>]" value="<%= @album_name[locale] %>" class="txtchange" /></span></div> | ||||
| 		</div> | ||||
| 		<div id='description_loader'> | ||||
| 		<div class='description_loader'> | ||||
| 			<% @images.each do |image| %> | ||||
| 			<div class="rgphoto_edit"> | ||||
| 				<a href="orbit_gallery?theater=<%= image.id %>"><img src="<%= image.file.thumb.url %>"></a> | ||||
| 				<div class="inputui rginput rgih98 w380"> | ||||
| 					<span> | ||||
| 						<textarea  name="description_box" class="txtchange" for="<%= image.id%>"><%= image.description %></textarea> | ||||
| 						<textarea  name="edit[description][<%= locale %>]" class="txtchange" for="<%= image.id%>"><%= image.description_translations[locale] %></textarea> | ||||
| 					</span> | ||||
| 				</div> | ||||
| 				<div class="edit_fn"> | ||||
| 					<a class="rgui rgbt rgbtsg bt-dels" onclick="return false;" title="Delete" href="<%= image.id %>">Delete</a> | ||||
| 						<a class="rgui rgbt rgbtsg bt-tag" onclick="return false;" title="Tag" href="<%= image.id %>">Tag</a> | ||||
| 					<% if image.id.to_s == @cover %> | ||||
| 						<a class="rgui rgbt rgbtsg bt-cover setcover" onclick="return false;" title="Set Cover" href="<%= image.id %>">Set Cover</a> | ||||
| 					<% else %> | ||||
|  | @ -34,7 +50,9 @@ | |||
| 			<% end %> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<!-- <div class="en tab-pane"> | ||||
| </form> | ||||
| 	<% end %> | ||||
| 	<!-- <div class="tab-pane in active"> | ||||
| 		<div class="albumname_edit"> | ||||
| 			<label for="">Album Name:</label> | ||||
| 			<div class="inputui rginput rgih26 w380"><span><input type="text" id='album_name_text' value="<%= @album_name %>" class="txtchange" /></span></div> | ||||
|  | @ -59,5 +77,5 @@ | |||
| 			</div> | ||||
| 			<% end %> | ||||
| 		</div> | ||||
| 	</div> --> | ||||
| 	</div>  --> | ||||
| </div> | ||||
|  | @ -68,6 +68,7 @@ | |||
|     </div> | ||||
|   </div> | ||||
|   <!-- tag part --> | ||||
|   <% if @authenticated %> | ||||
|   <div id="tag_panel" class="my_scroll"> | ||||
|     <div class="scrollbar"> | ||||
|       <div class="track"> | ||||
|  | @ -76,35 +77,25 @@ | |||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|      <%  | ||||
|         @locales = Array.new | ||||
|         @site_valid_locales.each do |locale| | ||||
|           @locales << locale | ||||
|         end | ||||
|       %> | ||||
|     <div class="viewport"> | ||||
|       <div class="overview"> | ||||
|         <ul class="tag_list"> | ||||
|           <li><input id="tag1" type="checkbox"><label for="tag1">animal</label></li> | ||||
|           <li><input id="tag2" type="checkbox"><label for="tag2">animal</label></li> | ||||
|           <li><input id="tag3" type="checkbox"><label for="tag3">animal</label></li> | ||||
|           <li><input id="tag4" type="checkbox"><label for="tag4">animal</label></li> | ||||
|           <li><input id="tag5" type="checkbox"><label for="tag5">animal</label></li> | ||||
|           <li><input id="tag6" type="checkbox"><label for="tag6">animal</label></li> | ||||
|           <li><input id="tag7" type="checkbox"><label for="tag7">animal</label></li> | ||||
|           <li><input id="tag8" type="checkbox"><label for="tag8">animal</label></li> | ||||
|           <li><input id="tag9" type="checkbox"><label for="tag9">animal</label></li> | ||||
|           <li><input id="tag10" type="checkbox"><label for="tag10">animal</label></li> | ||||
|           <li><input id="tag11" type="checkbox"><label for="tag11">animal</label></li> | ||||
|           <li><input id="tag12" type="checkbox"><label for="tag12">animal</label></li> | ||||
|           <li><input id="tag13" type="checkbox"><label for="tag13">animal</label></li> | ||||
|           <li><input id="tag14" type="checkbox"><label for="tag14">animal</label></li> | ||||
|           <li><input id="tag15" type="checkbox"><label for="tag15">animal</label></li> | ||||
|           <li><input id="tag16" type="checkbox"><label for="tag16">animal</label></li> | ||||
|           <li><input id="tag17" type="checkbox"><label for="tag17">animal</label></li> | ||||
|           <li><input id="tag18" type="checkbox"><label for="tag18">animal</label></li> | ||||
|           <li><input id="tag19" type="checkbox"><label for="tag19">animal</label></li> | ||||
|           <li><input id="tag20" type="checkbox"><label for="tag20">animal</label></li> | ||||
|           <li><input id="tag21" type="checkbox"><label for="tag21">animal</label></li> | ||||
|         <ul class="tag_list" id="gallery_tag_list"> | ||||
|           <% @tags.each do |tag| %> | ||||
|              <li data-content="<%= tag.id %>"><input id="tag_<%= tag.id %>" type="checkbox"><label for="tag_<%= tag.id %>"><%= tag[I18n.locale] %></label><span style="display:none;"><%= tag[@locales[1]] %> <%= tag[@locales[0]] %></span></li> | ||||
|           <% end %> | ||||
|         </ul> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="tag_search"><div class="icon-search"></div><input type="text" value="Search Tags"></div> | ||||
|     <button class='bt-save' style="position:absolute; bottom: 0;">Save</button> | ||||
|     <div class="tag_search"><div class="icon-search"></div><input type="text" value="<%= t('gallery.search_tags') %>" onblur="if(this.value=='')this.value='<%= t('gallery.search_tags') %>';" onfocus="if(this.value=='<%= t("gallery.search_tags") %>')this.value='';" id="tag_search_box"></div> | ||||
|   </div> | ||||
|   <% end %> | ||||
|   <script type="text/javascript"> | ||||
|       var $tag_panel = $('#tag_panel'); | ||||
|           orbit_bar_height = $('#orbit-bar').outerHeight(); | ||||
|  | @ -129,11 +120,37 @@ | |||
|   </div> | ||||
| </div> | ||||
| </div> | ||||
| <script type="text/javascript"> | ||||
| galleryAPI.prototype.loadFooterPanel = function(area,id,callbackFn){ | ||||
|     var headarea = null; | ||||
|     if(area == "images"){ | ||||
|       headarea = '<a class="bt-back btn btn-primary pull-left" title="<%= I18n.t("gallery.back_to_albums") %>" href="orbit_gallery"><i class="icon-arrow-left icon-white"></i><%= I18n.t("gallery.back_to_albums") %></a> '; | ||||
|       <% if @authenticated %> | ||||
|         headarea+='<a class="bt-add btn btn-primary pull-right" title="<%= I18n.t("gallery.add_images") %>" href="images" onclick="return false;"><i class="icon-plus icon-white"></i><%= I18n.t("gallery.add_images") %></a> '; | ||||
|         headarea+='<a class="bt-del btn btn-primary pull-right" title="<%= I18n.t("gallery.del_album") %>" href="delete" onclick="return false;"><i class="icon-trash icon-white"></i><%= I18n.t("gallery.del_album") %></a> '; | ||||
|         headarea+='<a class="bt-edit btn btn-primary pull-right" title="<%= I18n.t("gallery.edit") %>" href="orbit_gallery?edit='+id+'" ><i class="icon-pencil icon-white"></i><%= I18n.t("gallery.edit") %></a>'; | ||||
|         headarea+='<a class="bt-tag btn btn-primary pull-right" title="<%= I18n.t("gallery.album_tag") %>" href="" ><i class="icon-tag icon-white"></i><%= I18n.t("gallery.album_tag") %></a>'; | ||||
|       <% end %> | ||||
|     }else if(area == "albums"){ | ||||
|        <% if @authenticated %> | ||||
|          headarea = '<a class="btn btn-primary pull-right" title="<%= I18n.t("gallery.add_album") %>" href="albums" onclick="return false;"><i class="icon-plus icon-white"></i><%= I18n.t("gallery.add_album") %></a>'; | ||||
|       <% end %> | ||||
|     }else if (area == "theater"){ | ||||
|       headarea = '<a href="" 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>'; | ||||
|       headarea+= '<a class="bt-edit btn btn-primary pull-right" title="<%= I18n.t("gallery.edit") %>" href="" ><i class="icon-pencil icon-white"></i><%= I18n.t("gallery.edit") %></a>'; | ||||
|       headarea+= '<a class="bt-tag btn btn-primary pull-right" title="<%= I18n.t("gallery.photo_tag") %>" href="" ><i class="icon-tag icon-white"></i><%= I18n.t("gallery.photo_tag") %></a>'; | ||||
|     } | ||||
|     if(typeof callbackFn == "function"){ | ||||
|       callbackFn.call(this,headarea); | ||||
|     } | ||||
|   } | ||||
| </script> | ||||
| <% content_for :page_specific_javascript do %> | ||||
|   <%= javascript_include_tag "galleryAPI" %> | ||||
| <% end %> | ||||
| 
 | ||||
| <script type="text/javascript"> | ||||
|   galleryAPI.prototype.locale = "<%= I18n.locale %>"; | ||||
| 	var gallery = new galleryAPI(); | ||||
| 	gallery.initialize(); | ||||
| </script> | ||||
|  |  | |||
|  | @ -27,4 +27,5 @@ en: | |||
|     save: Save | ||||
|     cate_auth: Category Authorization | ||||
|     cancel: Cancel | ||||
|     search_tags: Search Tags | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,4 +24,5 @@ zh_tw: | |||
|     del_album?:  "刪除這本相簿嗎?" | ||||
|     album_not_found: "相簿不存在" | ||||
|     pic_not_found: "照片不存在" | ||||
|     search_tags: 搜索標籤 | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ Rails.application.routes.draw do | |||
| 	      	match "set_cover" => "orbit_galleries#set_cover" | ||||
| 	      	match "delete_images" => "orbit_galleries#delete_images" | ||||
| 	      	match "update_album" => "orbit_galleries#update_album" | ||||
| 	      	match "save_tags" => "orbit_galleries#save_tags" | ||||
| 	      	resources :tags | ||||
| 	      end | ||||
| 	  	end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue