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

174 lines
6.2 KiB
JavaScript
Raw Normal View History

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");
this.loadArea = "";
2012-07-19 07:44:44 +00:00
this.initialize = function(){
$(document).ready(function(){
2012-07-25 08:20:07 +00:00
bindHandlers();
if(typeof g.urlVars['cat']!= "undefined"){
g.loadAlbums(g.urlVars['cat']);
g.loadArea = "albums";
}else if(typeof g.urlVars['album']!= "undefined"){
g.loadImages(g.urlVars['album']);
g.loadArea = "images";
}else if(typeof g.urlVars['theater']!= "undefined"){
g.loadTheater(g.urlVars['theater']);
g.loadArea = "theater";
}else{
g.loadAlbums("all");
g.loadArea = "albums";
}
2012-07-19 07:44:44 +00:00
})
var bindHandlers = function(){
$("#gallery_panel a.btn").click(function(){
2012-07-25 08:20:07 +00:00
switch ($(this).attr("href")){
case "categories":
g.initializeCategories();
break;
}
});
$("select#category_filter").change(function(){
var val = $(this).val();
window.location = "orbit_gallery?cat="+val;
})
}
}
2012-07-19 07:44:44 +00:00
2012-07-25 08:20:07 +00:00
this.initializeCategories = function(){
var deleteCategory = function(a){
var cid = a.attr("href");
$.post("gallery_category_delete",{id:cid},function(response){
if(response.success)
a.parent().hide("slide",function(){a.parent().remove();})
})
}
$.get("categorylist",function(html){
rcom.modalWindow({loadHtml:html,width:"400","closeBtn":false},function(dom){
dom.find("ul#category_list a.delete").click(function(){
var a = $(this);
deleteCategory(a);
})
dom.find("#category_save_btn").click(function(){
var lang = {
"en" : dom.find("#category_name_en").val(),
"zh_tw" : dom.find("#category_name_zh_tw").val()
};
$.post("gallery_category_save",{"category":lang},function(response){
if(response.success){
var $li = $("<li class='hide'>"+lang.en+" <a href='"+response.id+"' class='btn delete' onclick='return false;'>Delete</a></li>");
dom.find("ul#category_list").append($li);
$li.show('slide');
$li.find("a.delete").click(function(){
deleteCategory($(this));
})
dom.find("input[type=text]").val("");
}
2012-07-19 07:44:44 +00:00
})
2012-07-25 08:20:07 +00:00
})
dom.find("#category_close_btn").click(function(){
rcom.modalWindowClose();
})
});
})
}
this.makeNewAlbum = function(){
$.get("add_album",function(html){
rcom.modalWindow({loadHtml:html,width:400,"closeBtn":false},function(dom){
dom.find("#album_name_save_btn").click(function(){
var options ={
cid : dom.find("select#category_list").val(),
albumname : dom.find("#name_en").val(),
albumdesc : dom.find("#desc_en").val()
}
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
})
}
this.loadAlbums = function(id){
var headbtn = $('<a class="rgui bt-add rgbt" title="Add Album" href="albums" onclick="return false;"><span>Add Album</span></a>');
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();})
$.getJSON("get_albums",{cid:id},function(albums){
$.each(albums,function(i,album){
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>");
g.albumArea.find("#imgholder").append($img);
})
g.albumArea.find("#imgholder").append($addsign);
})
}
this.loadImages = function(id){
//<iframe id="upload_panel" width="100%" scrolling="no" height="300" frameborder="0" src="upload_panel.html?id=16">
var headarea = $('<a class="rgui bt-back rgbt" title="Back to Albums" href="orbit_gallery"><span>Back to Album</span></a>');
headarea.append($('<a class="rgui bt-add rgbt" title="Add Images" href="images" onclick="return false;"><span>Add Images</span></a>'));
var uploadpanel = $('<div id="upload_panel_holder" style="display:none; margin: 16px 0 50px 0;"><div class="rgfn"><a class="rgui bt-cls rgbt" title="Close" href="" onclick="return false;"><span id="album_name_span">Close Panel</span></a></div></div>');
var frame = $('<iframe id="upload_panel" width="100%" scrolling="no" height="300" frameborder="0" src="upload_panel"></iframe>');
headarea.find("a.bt-add").click(function(){
showUploadPanel();
})
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);
uploadpanel.show("slide");
panelopen = true;
}
2012-07-19 07:44:44 +00:00
}
2012-07-25 08:20:07 +00:00
g.albumArea.find(".rghead .rgfn").html(headarea);
g.albumArea.find(".rghead .rgfn").append(uploadpanel);
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(){showUploadPanel();})
$.getJSON("get_images",{aid:id},function(images){
$.each(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.albumArea.find("#imgholder").append($addsign);
}
this.loadTheater = function(id){
var head = $('<a href="" class="rgui bt-back rgbt" title="Back"><span id="album_name_span">Back to photos</span></a></div><div class="rgtitle">Gallery</div>');
g.albumArea.find("#imgholder").load("theater?pic="+id,function(theater){
var albumid = $(theater).find("#main_pic").attr("data-content");
head.attr("href","orbit_gallery?album="+albumid);
g.albumArea.find(".rghead .rgfn").html(head);
})
2012-07-19 07:44:44 +00:00
}
2012-07-25 08:20:07 +00:00
}