few updates with fb integration and some other changes in user and supports data to android

This commit is contained in:
Harry Bomrah 2013-06-14 16:08:30 +08:00 committed by Matt K. Fu
parent c4db6e5830
commit 0354bf5b15
14 changed files with 267 additions and 285 deletions

View File

@ -41,12 +41,11 @@ var sortDescending = function(a, b) {
Array.prototype.indexOfObject = function(object){
for(i = 0;i < this.length; i++){
if(this[i] === object){
if(this[i] === object)
break;
}
}
return i;
};
}
jQuery.ajax = (function(_ajax){
@ -137,7 +136,7 @@ var orbitDesktop = function(dom){
o.getlocation();
$.getJSON("/desktop/get_desktop_settings",{"get":"desktop","desktopid":o.desktopId},function(desktopSettings){
if(desktopSettings){
if(desktopSettings.theme!=="custom"){
if(desktopSettings.theme!="custom"){
theme = desktopSettings.theme;
}else{
theme = "4f8d3f493b67fcd05f086359";
@ -164,17 +163,17 @@ var orbitDesktop = function(dom){
$(o.contentHolder).empty().load("/desktop/desktop",function(){
o.desktopData["d_desktop"] = "";
o.initializeDesktop("d_desktop","",false);
});
})
}else{
o.customPage(custom_load);
}
});
});
})
};
};
this.customPage = function(customload){
customload = customload.replace("#","");
if(customload.search("-") !== -1){
if(customload.search("-") != -1){
customload = customload.split("-");
o.menu_item($(".docklist a[custom-load="+customload[0]+"]"),true,customload[1]);
}else{
@ -189,7 +188,7 @@ var orbitDesktop = function(dom){
$('head').append( $('<link rel="stylesheet" id="dyn_css" type="text/css" />').attr('href', "/"+o.themefolder+"/"+theme+"/css/"+ts.css));
o.loadWallpaper();
o.loadIconCache();
});
})
};
this.getlocation = function(){
@ -202,11 +201,11 @@ var orbitDesktop = function(dom){
});
o.locationdata.formatted_address = data.results[0].formatted_address;
});
};
}
var locationError = function(){
o.notify("Unable to find your location!","alert");
};
}
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(locationSuccess,locationError);
@ -215,7 +214,7 @@ var orbitDesktop = function(dom){
o.notify("Your browser does not support Geolocation!","alert");
}
};
}
this.bindDesktopEvents = function(){ //this function will bind the global handlers to thd desktop, for example doc
$(".docklist a").click(function(){
@ -261,7 +260,7 @@ var orbitDesktop = function(dom){
error:function(){
o.notify("Please try again later!","imp");
}
};
}
$(this).ajaxSubmit(options);
return false;
});
@ -288,16 +287,15 @@ var orbitDesktop = function(dom){
url : $e.attr("href"),
success : function(data){
if(typeof data == "string"){
if(ca){
if(ca)
$(ca).html(data);
} else {
else{
o.layout_data(data);
// $("div[container=true]").html(data);
}
}
if(exe){
if(exe)
window.o[o.data_method][exe](data,$e);
}
if(t == "delete"){
if($e.attr("delete-item")=="true"){
var li_to_delete = $e.parentsUntil("li[item=true]").find("li[item=true]");
@ -306,7 +304,7 @@ var orbitDesktop = function(dom){
}
}
});
};
}
if($e.attr("confirm-message")){
o.confirm({
buttons : ["Yes","No"],
@ -316,7 +314,7 @@ var orbitDesktop = function(dom){
if(value){
a();
}
});
})
}else{
a();
}
@ -324,8 +322,11 @@ var orbitDesktop = function(dom){
});
$(window).resize(function(){
$('.tinycanvas').tinyscrollbar_update('relative');
// var ww = $(window).width();
// $("img#thmbackground").attr({"width":ww});
// if( $('.tinycanvas').length > 0 ){
$('.tinycanvas').tinyscrollbar_update('relative');
// }
if($(o.contentHolder).find("div.app_frame").length > 0){
$(o.contentHolder).find("div.app_frame").each(function(){
var app_holder_height = $(this).height() - 72;
@ -348,10 +349,11 @@ var orbitDesktop = function(dom){
var split = function( val ) {
return val.split( /,\s*/ );
};
}
var extractLast = function( term ) {
return split( term ).pop();
};
}
// $("body").on("keydown","*[autocomplete]", function( event ) {
// var autocompleteList = $(this).attr("autocomplete-list");
@ -400,7 +402,7 @@ var orbitDesktop = function(dom){
x = 0;
temp_div.append(column);
}
});
})
if(x != 0){
temp_div.append(column);
}
@ -416,7 +418,7 @@ var orbitDesktop = function(dom){
column.append(ul);
x++;
temp_div.append(column);
});
})
total_width = (!isNaN(base_width)) ? (base_width + gutter*2 +1) * total_columns : null;
}
break;
@ -425,11 +427,11 @@ var orbitDesktop = function(dom){
}
// total_width = (!isNaN(base_width) ? ( base_width + 12 ) * total_columns : null);
return {
"markup":temp_div[0].innerHTML,
"markup":temp_div.html(),
"width":total_width,
"total":entries.length
};
};
}
var check_container = $("<div></div>").html(h).find("div[container=true]");
if(check_container.length > 0){
$("div[container=true]")
@ -445,7 +447,7 @@ var orbitDesktop = function(dom){
$("div[container=true]")
.find("div.tinycanvas")
.prepend('<div class="scrollbar sb_h"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>');
var f = o.layout_data.generate_layout_html(h);
var f = o.layout_data.generate_layout_html(h)
$("div[container=true] div.overview").html(f.markup);
var settings = {main : ".tinycanvas"};
var tsettings = {};
@ -464,7 +466,7 @@ var orbitDesktop = function(dom){
o.pagination(pagination_link,pagination_variable,page_no);
}
}
};
}
}
// call other functions here
o.tinyscrollbar_ext(settings,tsettings);
@ -472,8 +474,7 @@ var orbitDesktop = function(dom){
o.autocomplete();
o.use_select2();
o.check_simple_layout();
};
}
this.paging = true;
this.pagination = function(link,variable,page_no){
var retvalue = null;
@ -496,7 +497,7 @@ var orbitDesktop = function(dom){
}
}
});
};
}
this.insert_new_column = function(index){
var column_container = $("div[container=true] .overview"),layout = column_container.attr("content-layout"),base_width = parseInt(column_container.attr("base-width")),column;
@ -506,15 +507,16 @@ var orbitDesktop = function(dom){
switch(layout){
case "datalist":
column = $("<div class='column type_column' style='width:"+base_width+"px'></div");
break;
break;
case "column":
column = $("<div class='column type_column' style='width:"+base_width+"px'></div");
break;
break;
default:
return false;
break;
}
if(index == 0){
column.insertBefore(previous_column);
column.insertBefore(previous_column)
}else{
column.insertAfter(previous_column);
}
@ -522,29 +524,29 @@ var orbitDesktop = function(dom){
o.tinyscrollbar_ext({
main : ".tinycanvas",
fill : base_width * total_columns
});
})
return column;
};
}
this.remove_column = function(index){
var column_container = $("div[container=true] .overview"),layout = column_container.attr("content-layout"),column = column_container.find(".column").eq(index),base_width = parseInt(column_container.attr("base-width"));
if(column.length == 0){ return false; }
if(column.length == 0)return false;
switch(layout){
case "datalist":
break;
case "column":
break;
break;
default:
return false;
break;
}
column.remove();
var total_columns = column_container.find(".column").length;
o.tinyscrollbar_ext({
main : ".tinycanvas",
fill : base_width * total_columns
});
})
return column;
};
}
this.menu_item = function(dom,customload,submenuitem){
if(!customload)customload=false;
@ -645,12 +647,17 @@ var orbitDesktop = function(dom){
}
if(dom.length == 0)
o.layout_data(data);
// $('*[content-type=menu] a').removeClass('thmc1 thmtxt active');
// dom.addClass('thmc1 thmtxt active');
}
this.initializeDesktop = function(target,url,cache){ //this is for initializing main desktops that are sections and tiles
target = (!target) ? 'desktop' : target;
var bindHandlers = function(){ // this function will bind all the handlers in the desktop
var dragged = null,draggable,lastpos = [];
/* Hotfix - Part 1 */
// var items = $(".gridster ul li");
// items.detach();
o.gridvar = $(".grid ul").find("> li ")
.mousedown(function(e){
@ -673,6 +680,15 @@ var orbitDesktop = function(dom){
dragged.addClass("noClick");
},
stop: function(event, ui){
// for (var i = 1; i <= 30; i++) {
// // var celement = $(".grid ul .widget[data-col="+i+"]:last");
// $(".grid ul .widget[data-col="+i+"]").each(function(){
// var pos = $(this).position();
// if(pos && (pos.top + $(this).height() + 6) > 550){
// revertbacktiles();
// }
// });
// }
$('.tinycanvas').tinyscrollbar_update('relative');
var newpos = o.gridvar.serialize();
$.post("/desktop/newpositions",{"newpositions":newpos});
@ -681,6 +697,16 @@ var orbitDesktop = function(dom){
})
.data('gridster');
/* Hotfix - Part 2 */
// $.each(items , function (i, e) {
// var item = $(this);
// var columns = parseInt(item.attr("data-sizex"));
// var rows = parseInt(item.attr("data-sizey"));
// var col = parseInt(item.attr("data-col"));
// var row = parseInt(item.attr("data-row"));
// o.gridvar.add_widget(item, columns, rows, col, row);
// });
var revertbacktiles = function(){
lastpos.push({"col":"","row":""});
$(".grid ul li").each(function(i){
@ -689,6 +715,7 @@ var orbitDesktop = function(dom){
}
var remove_empty_columns = function(){
for (var i = 1; i <= 30; i++) {
// var celement = $(".grid ul .widget[data-col="+i+"]:last");
$(".grid ul .widget[data-col="+i+"]").each(function(){
});
@ -708,6 +735,7 @@ var orbitDesktop = function(dom){
dragged.removeClass("noClick");
});
o.appname_substr('.gridster li');
o.simple_drop_down();
o.tinyscrollbar_ext({
main: '.tinycanvas'
@ -726,7 +754,12 @@ var orbitDesktop = function(dom){
$.each(tiles,function(i,tile){
var shape = tile.shape.split(" ");
// if(tile.title == "Weather")console.log("Big - row : " + tile.row + ", col : "+ tile.column);
// if(tile.title == "Google Scholar")console.log("Scholar - row : " + tile.row + ", col : "+ tile.column);
// if(total_x % 2 != 0)
// row = row - y;
// if(i == 7)tile.row = null;
if(tile.row){
row = tile.row;
col = tile.column;
@ -753,9 +786,9 @@ var orbitDesktop = function(dom){
var f = (tile.fullsize?"fullsize":null);
if(tile.data_category == "app"){
$li = $('<li data-id="'+tile.id+'" class="app" data-row="'+row+'" data-col="'+col+'" data-sizex="'+x+'" data-sizey="'+y+'" data-category="'+tile.data_category+'" data-content="'+tile.data_content+'"><span class="tile '+tilecolor+' '+op+'"></span><a href="'+tile.data_content+'" class="appicon" onclick="return false;" data-url="'+tile.link+'"><img src="'+tile.icon+'" alt="" ></a><h1 class="appname thmtxt text_ofl"><span>'+tile.title+'</span></h1></li>');
$li = $('<li data-id="'+tile.id+'" class="app" data-row="'+row+'" data-col="'+col+'" data-sizex="'+x+'" data-sizey="'+y+'" data-title="'+tile.title+'" data-category="'+tile.data_category+'" data-content="'+tile.data_content+'"><span class="tile '+tilecolor+' '+op+'"></span><a href="'+tile.data_content+'" class="appicon" onclick="return false;" data-url="'+tile.link+'"><img src="'+tile.icon+'" alt="" ></a><h1 class="appname thmtxt">'+tile.title+'</h1></li>');
} else {
$li = $('<li data-id="'+tile.id+'" class="widget '+f+'" data-row="'+row+'" data-col="'+col+'" data-sizex="'+x+'" data-sizey="'+y+'" data-category="'+tile.data_category+'" data-content="'+tile.data_content+'" js-link="'+tile.js[0].url+'" css-link="'+tile.css.url+'"><span class="tile '+tilecolor+' '+op+'"></span><div class="appholder"></div><h1 class="appname thmtxt text_ofl"><span>'+tile.title+'</span></h1></li>');
$li = $('<li data-id="'+tile.id+'" class="widget '+f+'" data-row="'+row+'" data-col="'+col+'" data-sizex="'+x+'" data-sizey="'+y+'" data-category="'+tile.data_category+'" data-content="'+tile.data_content+'" js-link="'+tile.js[0].url+'" css-link="'+tile.css.url+'"><span class="tile '+tilecolor+' '+op+'"></span><div class="appholder"></div><h1 class="appname thmtxt">'+tile.title+'</h1></li>');
}
@ -794,6 +827,8 @@ var orbitDesktop = function(dom){
});
}
if(cache){
bindHandlers();
o.initializeWidgets();
$("#desktop #section_list").empty();
$.each(o.sectionList,function(i,section){
var tempstyle="";
@ -803,7 +838,8 @@ var orbitDesktop = function(dom){
}
$("#desktop #section_list").append($('<li class="section_name" '+tempstyle+'><a class="admtxt hp hh1" onclick="return false;" href="'+section._id+'" >'+section.name+'</a></li>'));
});
loadTiles(o.sectionId);
bindSecondaryHandlers();
o.simple_drop_down();
}else{
loadSectionList();
loadTiles(o.sectionId);
@ -844,12 +880,18 @@ var orbitDesktop = function(dom){
$result.empty().show();
$applist.hide();
// searchArray = $elements.filter(":containsi("+$(this).val()+")").clone(1,1);
// searchArray = $('#app_list').find('[data-title*="'+query+'"]').clone(1,1);
searchArray = $elements.filter(function(){
var matcher = new RegExp(query, "i");
return matcher.test( $(this).find('.appname span')[0].innerHTML );
return matcher.test( $(this).attr('data-title') );
}).clone(1,1);
if(searchArray.length > 0){
// searchArray.each(function(){
// $(this).hide("fold","fast");
// })
// $("#app_manager #seperator").show();
var i = 0, c = 1; // c for numbers of columns
var $column;
searchArray.each(function(){
@ -1049,6 +1091,7 @@ var orbitDesktop = function(dom){
}
});
elementSetting();
o.appname_substr('#group_wrapper .element');
o.check_simple_layout();
}
var elementSettingsData = {};
@ -1072,7 +1115,7 @@ var orbitDesktop = function(dom){
var $app;
count++;
elementSettingsData[app.id] = {"sections" : app.sections};
$app = $('<div class="element w1 h1 thmc2" data-type="'+app.data_category+'" data-title="'+app.title+'" data-author="'+app.author+'" data-version="'+app.version+'" data-update="'+app.last_update+'" data-id="'+app.id+'" data-text-color="'+app.text_color+'" data-background="'+app.background+'" ><span class="tile thmc2"></span><a href="'+app.id+'" class="appicon"><img src="'+app.icon+'" alt="" onclick="return false;"></a><h1 class="appname thmtxt text_ofl"><span>'+app.title+'</span></h1></div>');
$app = $('<div class="element w1 h1 thmc2" data-type="'+app.data_category+'" data-title="'+app.title+'" data-author="'+app.author+'" data-version="'+app.version+'" data-update="'+app.last_update+'" data-id="'+app.id+'" data-text-color="'+app.text_color+'" data-background="'+app.background+'" ><span class="tile thmc2"></span><a href="'+app.id+'" class="appicon"><img src="'+app.icon+'" alt="" onclick="return false;"></a><h1 class="appname thmtxt">'+app.title+'</h1></div>');
if( count > 4 ){
count = 1, colindex+=1;
$('#app_list').append('<div class="g_col g_col_w1 col'+ colindex +'"/>');
@ -1090,146 +1133,8 @@ var orbitDesktop = function(dom){
loadApps();
// }
};
this.t = {}
this.initializeSectionsManager = function(target,url,cache){ // this is init function for section manager
var elementParent,element,slabel;
var bindHandlers = function(){ // this is bind handler for section manager page
var groupWrapperWidth = 0;
$("#sections .group").each(function(){groupWrapperWidth+=$(this).width();})
groupWrapperWidth+=200;
groupWrapperHeight = $(".group").height() + 20;
$("#group_wrapper").width(groupWrapperWidth);
var sortingoptions = {
start:function(){
slabel = $(this).parent().siblings('.section_label');
slabel.find('li:hidden').stop(1,1).fadeIn(500);
},
stop:function(){
slabel.find('li:not(:nth-child(1))').stop(1,1).fadeOut(500);
}
}
$("#sections #group_wrapper .appgroup").sortable(sortingoptions);
$("#sections .section_label li:not(:nth-child(1))").droppable({
drop:function(event, ui){
elementParent = ui.draggable.parents('.group');
elementParentUl = ui.draggable.parents(".appgroup");
var $item = $( this ),
$list = $( '#'+$item.data("category") );
if($list.children('.element').length>=24){
o.notify("Section is full.","alert");
}else{
ui.draggable.hide('fast',function(){
var newul = false;
if($list.find("ul").length == 0){
$list.append(('<ul class="appgroup w1" ></ul>'));
newul = true;
}else if($list.find("ul:eq(0) li").length == 7){
$list.append(('<ul class="appgroup w1" ></ul>'));
newul = true;
}
$(this).appendTo($list.find("ul:last")).fadeIn();
var next_group = elementParent.find(".grp ul").eq(elementParentUl.index() + 1);
if(elementParentUl.index() == 0){
if(elementParentUl.find("li").length < 7){
var element_to_shift = next_group.find("li").eq(0);
if(element_to_shift.length != 0){
elementParentUl.append(element_to_shift);
}
}
}
if(next_group.find("li").length == 0){
next_group.remove();
}
if(elementParentUl.find("li").length == 0){
elementParentUl.remove();
}
if(elementParent.find(".grp ul").length == 0){
elementParent.find(".grp").addClass("no_app");
}else{
elementParent.find(".grp").removeClass("no_app");
}
if(newul){
$("#sections #group_wrapper .appgroup").sortable(sortingoptions);
$list.removeClass("no_app");
}
});
$.post("/desktop/save_desktop_settings",{"save":"appnewsection","appid":ui.draggable.attr("id"),"newsectionid":$(this).data("content"),"desktopid":o.desktopId});
// if(o.sectionId == $(this).data("content") || o.sectionId == elementParent.attr("id")){
o.desktopData["home"]="";
// }
}
$(this).find('span.tile').addClass('op06',400);
},
over:function(){
$(this).find('span.tile').removeClass('op06');
},
out:function(){
$(this).find('span.tile').addClass('op06');
},
accept: '.to_drop'
});
o.tinyscrollbar_ext({
main: '.tinycanvas',
});
};
var loadApps = function(){ // this loads apps from db to in each sections
$.getJSON("/desktop/getapplist",{desktopid:o.desktopId},function(appss){
var $group,$lii,$li;
var z=0;
for(section in o.sectionList){
$group = $('<div class="group" id="'+o.sectionList[section]._id+'"><div class="section_label"><ul class="section_grp"></ul></div><div id="section'+(z+1)+'" class="grp no_app" style="min-width:120px;"></div></div>');
for(x=0;x<4;x++){
if(x==0){
$li = $('<li class="element w1 h1 hp vp thmtxt" data-content="'+o.sectionList[z]._id+'"><span class="tile thmc1"></span><span class="thmtxt">'+o.sectionList[z].name+'</span></li>');
$group.find("ul.section_grp").append($li);
}
if(z!=x){
$lii = $('<li class="element w1 h1 hp vp thmtxt" style="display: none;" data-category="section'+(x+1)+'" data-content="'+o.sectionList[x]._id+'"><span class="tile thmc2 op06"></span><span class="thmtxt">'+o.sectionList[x].name+'</span></li>');
$group.find(".section_grp").append($lii);
}
}
z++;
$("#group_wrapper").append($group);
}
var x = 0;
$.each(appss,function(i,apps){
x = 0;
$.each(apps,function(y,app){
x++;
if(x == 1){
$ul = $('<ul class="appgroup w1" ></ul>');
}
$li = $('<li class="element to_drop w1 hh2 hp vp" data-category="'+app.data_category+'" data-content="'+app.data_content+'" id="'+app._id+'"><div class="appicon"><img src="'+o.iconPath+app.data_content+'.png" class="" width="30" /></div><h1 class="appname thmtxth text_ofl"><span>'+app.title+'</span></h1></li>');
$ul.append($li);
if(x == 7){
$("#group_wrapper #section"+(i+1)).append($ul);
$("#group_wrapper #section"+(i+1)).removeClass("no_app")
x = 0;
}
})
if(x != 0){
$("#group_wrapper #section"+(i+1)).append($ul);
$("#group_wrapper #section"+(i+1)).removeClass("no_app")
}
})
bindHandlers();
})
}
if(cache)
bindHandlers();
else
loadApps();
};
this.initializeSettings = function(target,url,cache){ //this is to initialize setting page
this.initializeSettings.account = function(data){}
@ -1286,6 +1191,8 @@ var orbitDesktop = function(dom){
}
});
});
o.single_select();
o.simple_tab();
$('.color-picker').miniColors({
change:function(hex){
@ -1336,10 +1243,7 @@ var orbitDesktop = function(dom){
$(".stock_wallpaper .ssl_item").click(function(){
var wallpapername = $(this).find("img").attr("alt");
o.changeWallpaper(wallpapername);
});
o.single_select();
o.simple_tab();
})
}
var loadthmc = function(){ // a general function to load the themecolor in color selector
$('.color-picker').each(function(){
@ -1362,19 +1266,19 @@ var orbitDesktop = function(dom){
color = $('#theme_preview_area .'+cc).css(hex);
$(this).miniColors("value", o.rgb2hex(color));
});
};
}
$.getJSON("/desktop/get_desktop_settings",{"get":"theme","desktopid":o.desktopId},function(theme){
$('#st1 .theme_list [id='+theme+']')
.addClass("thmc1 active", 300)
.find("span")
.addClass("thmtxt");
.addClass("thmc1 active", 300)
.find("span")
.addClass("thmtxt");
bindHandlers();
loadthmc();
})
bindHandlers();
loadthmc();
});
}
this.initializeSettings.connection = function(){
@ -1449,17 +1353,17 @@ var orbitDesktop = function(dom){
})
}
$.getJSON("/otheraccounts/getaccounts",function(accounts){
$.each(accounts,function(i,account){
$ul = $("#"+account.type+"_connection");
$ul.find("input[type=text]").replaceWith("<div class='c_info usrnm'>"+account.email+"</div>")
$ul.find("input[type=password]").replaceWith("<div class='c_info pwd'>&#8226;&#8226;&#8226;&#8226;&#8226;&#8226;</div>");
$ul.find("a[for=new]").text("Edit").attr("for","edit");
$ul.find("a[for=delete]").show();
$ul.find(".c_status").text("Connected").addClass("c_status_on");
})
bindHandlers();
})
// $.getJSON("/otheraccounts/getaccounts",function(accounts){
// $.each(accounts,function(i,account){
// $ul = $("#"+account.type+"_connection");
// $ul.find("input[type=text]").replaceWith("<div class='c_info usrnm'>"+account.email+"</div>")
// $ul.find("input[type=password]").replaceWith("<div class='c_info pwd'>&#8226;&#8226;&#8226;&#8226;&#8226;&#8226;</div>");
// $ul.find("a[for=new]").text("Edit").attr("for","edit");
// $ul.find("a[for=delete]").show();
// $ul.find(".c_status").text("Connected").addClass("c_status_on");
// })
// bindHandlers();
// })
}
@ -1582,6 +1486,7 @@ var orbitDesktop = function(dom){
}else{
li.find(".not_status").html("Install on <a href='addthis' for='"+o.sectionList[0]._id+"' style='text-decoration:underline;'>"+o.sectionList[0].name+"</a> <a href='addthis' for='"+o.sectionList[1]._id+"' style='text-decoration:underline;'>"+o.sectionList[1].name+"</a> <a href='addthis' for='"+o.sectionList[2]._id+"' style='text-decoration:underline;'>"+o.sectionList[2].name+"</a> <a href='addthis' for='"+o.sectionList[3]._id+"' style='text-decoration:underline;'>"+o.sectionList[3].name)+"</a>";
}
//console.log(section_names);
column.find("ul").append(li);
if(counter%4==0){
$("#apps_store #widget_list").append(column);
@ -1609,9 +1514,9 @@ var orbitDesktop = function(dom){
this.loadWallpaper = function(wallpaper){ // this is to load new wallpaper
wallpapernm = (!wallpaper) ? o.themesettings.background : wallpaper;
if(!wallpaper){
$("#thmbackground").css("background-image","url(/"+o.themefolder+"/"+o.theme+"/images/"+wallpapernm+")");
$("#thmbackground").attr("src","/"+o.themefolder+"/"+o.theme+"/images/"+wallpapernm);
} else {
$("#thmbackground").css("background-image","url("+o.wallpaperPath+wallpaper+")");
$("#thmbackground").attr("src",o.wallpaperPath+wallpaper);
}
};
@ -1627,11 +1532,11 @@ var orbitDesktop = function(dom){
loading = '<div class="thmtxt o-loading"><i class="icon-spin icon-spinner"></i> Loading</div>';
$.each(elements,function(){
var widget = $(this),
widget_holder = $(this).find('.appholder'),
widget_style = (widget.find('.widget_style').length > 0) ? '' : '<link class="widget_style" rel="stylesheet" href="'+widget.attr("css-link")+'" type="text/css" />';
widget_holder = $(this).find('.appholder')
// widget_style = (widget.find('.widget_style').length > 0) ? '' : '<link class="widget_style" rel="stylesheet" href="'+widget.attr("css-link")+'" type="text/css" />';
if(widget.attr("data-category")=="widget"){
var widgetname = widget.attr("data-content");
widget_holder.before(widget_style).empty();
// widget_holder.before(widget_style).empty();
$.getScript(widget.attr("js-link")).done(function(){
// widget.find(".appholder").load(widget.attr("data-content"));
$.ajax({
@ -1707,7 +1612,6 @@ var orbitDesktop = function(dom){
// ** not sure to update canvas here ( $.tinyscrollbar_update() )
var sw = 0,
$simple_layout = $('#content .overview[content-layout=simple]');
if($simple_layout.find(".s_column").length > 0){
$simple_layout.each(function(){
$(this).find(".s_column").filter(":visible").each(function(){
@ -1716,6 +1620,9 @@ var orbitDesktop = function(dom){
$simple_layout.css('width',sw);
});
}
// if($simple_layout.find(".s_column").length > 0){
// $simple_layout.css('width',sw);
// }
};
this.simple_drop_down = function(){
// simple dropdown menu
@ -1734,64 +1641,46 @@ var orbitDesktop = function(dom){
};
this.simple_tab = function(){
// tab
var active = 'thmc2 thmtxt',
normal = 'admtxt admbg';
var $anchor = $('.s_tab a[href*=#]'),
$tabcontent = $('.st_c');
$('.s_tab').each(function(){
var $anchor = $(this).find('a[href*=#]'),
$current_tab = $anchor.filter('[data-active="true"]');
// initialize
$current_tab.switchClass(normal,active,300);
$($current_tab.attr('href')).show();
$anchor.each(function(){
$(this).click(function(){
var target = $(this).attr('href');
$anchor.switchClass(active,normal,200);
$(this)
.switchClass(normal,active,200)
.parents('.s_tab')
.find('a[href*=#]').not('a[href*='+target+']')
.switchClass(active,normal,200);
$(target)
.siblings('.st_c')
.hide()
.end()
.show();
if( $(target).parents('.tinycanvas').length > 0 ){
$(target).parents('.tinycanvas').tinyscrollbar_update();
}
return false;
});
$anchor.each(function(){
$(this).click(function(){
var target = $(this).attr('href');
$anchor.removeClass('thmc2 thmtxt admtxt admbg').addClass('admtxt admbg');
$(this).toggleClass('thmc2 thmtxt admtxt admbg');
$tabcontent.hide();
$(target).show();
if( $('.tinycanvas').length > 0 ){
$('.tinycanvas').tinyscrollbar_update();
}
return false;
});
});
};
this.simple_switch = function(func){
$('.s_switch').each(function(){
var switcher = $(this).find('.s_switch_switcher'),
checkbox = $(this).find('input[type=checkbox]'),
status = $(this).find('.s_switch_status'),
var $switcher = $(this).find('.s_switch_switcher'),
$checkbox = $(this).find('input[type=checkbox]'),
$status = $(this).find('.s_switch_status'),
toggle = '<span class="s_switch_toggle"></span>',
text_on = status.attr('status-on'),
text_off = status.attr('status-off'),
status_on = 'thmc2',
status_off = 'admbg2',
status_on = $status.attr('status-on'),
status_off = $status.attr('status-off'),
ini, set;
ini = switcher.hasClass(status_off) ? null : switcher.addClass(status_off);
ini = switcher.find('.s_switch_toggle').length < 1 ? checkbox.after(toggle) : null;
set = checkbox.is(':checked') ? status.text(text_on) : status.text(text_off);
checkbox.unbind().change(function(){
ini = ($switcher.hasClass('admbg2')) ? null : $switcher.addClass('admbg2');
ini = ($switcher.find('.s_switch_toggle').length < 1) ? $checkbox.after(toggle) : null;
set = ($checkbox.is(':checked')) ? $status.text(status_on) : $status.text(status_off);
$checkbox.unbind().change(function(){
var v = $(this).attr('checked');
switch (v) {
case 'checked':
switcher.switchClass(status_off,status_on);
status.text(text_on);
$switcher.switchClass('admbg2','thmc2');
$status.text(status_on);
break;
case undefined:
switcher.switchClass(status_on,status_off);
status.text(text_off);
$switcher.switchClass('thmc2','admbg2');
$status.text(status_off);
break;
}
if(typeof func == "function"){
@ -1886,17 +1775,19 @@ var orbitDesktop = function(dom){
fields = fields.replace("]","");
fields = fields.replace("[","");
fields = fields.split(",");
options.formatResult = function(data){
var markup = "";
var x = 0;
for(i in fields){
if(x > 0)markup += " " + seperator + " ";
x++;
for(i = 0;i < fields.length; i++){
if(i > 0)markup += " " + seperator + " ";
if(data[fields[i]])
markup += data[fields[i]];
else
markup += fields[i] + " not available";
}
return markup;
}
}

View File

@ -42,6 +42,7 @@ class DesktopController< ApplicationController
end
def connections
@url = "http://fb.tp.rulingcom.com/login?callback=http://harry.tp.rulingcom.com/facebook/register_fb?user="+current_user.id.to_s
render "desktop/settings/connections", :layout => false
end
@ -149,9 +150,11 @@ class DesktopController< ApplicationController
def widget_layout
widget = DesktopWidget.find(params[:id])
# link = '<link href="'+widget.css_default.file.to_s+'" media="screen" rel="stylesheet" type="text/css" />'
# link = '<link href="'+widget.css_default.file.to_s+'" media="screen" rel="stylesheet" type="text/css" />'
css = widget.css_default.content;
css = "<style>" + css + "</style>"
content = widget.widget_layout.body
dhtml = content
dhtml = css + content
render :text => dhtml.html_safe
end
@ -314,5 +317,7 @@ class DesktopController< ApplicationController
b = {"success"=>"true"}
render :json=>b.to_json
end
end

View File

@ -0,0 +1,31 @@
require "net/http"
require "uri"
require 'json'
class FacebookController< ApplicationController
def register_fb
user = User.find(params[:user])
if !user.facebook
user.build_facebook(fb_identifier: params[:identifier],connected: true)
user.save!
end
render :json=>{"success"=>true,"user"=>user.facebook.fb_identifier}.to_json
end
def get_friends
@url = "http://fb.tp.rulingcom.com/get_friends?identifier=" + current_user.facebook.fb_identifier
uri = URI.parse(@url)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
friends = response.body
friends = JSON.parse(friends)
output = Array.new
friends.each do |friend|
output << friend['name']
end
render :json=>{"count"=>friends.count,"friends"=>output}.to_json
end
end

View File

@ -4,5 +4,8 @@ class CssDefault < Stylesheet
# belongs_to :desktop_widget
belongs_to :css, polymorphic: true
def content
self.file.read.force_encoding("UTF-8") rescue ''
end
end

View File

@ -0,0 +1,9 @@
class Facebook
include Mongoid::Document
include Mongoid::Timestamps
field :fb_identifier
field :connected, type: Boolean
belongs_to :user
end

View File

@ -26,6 +26,7 @@ class User
has_many :managing_apps,:class_name => "AppManager", :dependent => :destroy
has_one :desktop, :autosave => true, :dependent => :destroy
has_one :facebook, :autosave => true, :dependent => :destroy
has_many :other_accounts, :autosave => true, :dependent => :destroy
# has_many :journals, :autosave => true, :dependent => :destroy
# has_many :papers, :autosave => true, :dependent => :destroy

View File

@ -4,7 +4,6 @@
<li class="d_cate"><a callback-method='initializeDesktop' href="desktop/desktop" class="widget_fn wh2 hh2" id='home' onclick="return false;"><span class="widget_icon"><img src="" alt="Home" id="home_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 180px;">
<li class="dock_item"><a callback-method='initializeAppManager' href="<%= desktop_app_manager_path %>" class="widget_fn wh2 hh2" id="d_app_manager" onclick="return false;"><span class="widget_icon"><img src="" alt="App Manager" id="app_manager_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializeSectionsManager' href="<%= desktop_allsections_path %>" class="widget_fn wh2 hh2" id="d_sections" custom-load="sections" onclick="return false;"><span class="widget_icon"><img src="" alt="All Sections" id="sections_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializeSettings' href="<%= desktop_settings_path %>" custom-load="settings" class="widget_fn wh2 hh2" id="d_settings" onclick="return false;"><span class="widget_icon"><img src="" alt="Settings" id="settings_icon" width="30" height="30"/></span></a></li>
</ul>
</li>

View File

@ -1,6 +1,9 @@
<div id="connection_setting" class="overview vp">
<ul class="s_form w2 hp" id="facebook_connection">
<div id="connection_setting" class="overview vp" content-layout="simple">
<a href="" onclick="window.open('<%= @url %>','login_window','height=250,width=400,titlebar=0,statusbar=0,location=0');return false;">Connect FaceBook</a>
<a href="/facebook/get_friends" ajax-remote="get" >Get Friends</a>
<!-- <ul class="s_form w2 hp" id="facebook_connection">
<li><span class="c_status">No Connection</span></li>
<li><img src="/assets/connection/facebook.png" alt="" class="c_icon"><h1 class="c_name">Facebook</h1></li>
<li><label for="">Account</label><input type="text"></li>
@ -35,7 +38,7 @@
<a href="gmail" class="setting_btn thmc1 thmtxt hp" onclick="return false;" for="delete" style="display:none;">Remove</a>
</div>
</li>
</ul>
</ul> -->
</div>
<!-- <div style="z-index:999;position:relative;"><button onclick="o.tempFunc()">Twitter</button> -->

View File

@ -256,6 +256,9 @@ Orbit::Application.routes.draw do
match '/desktop_orbit/eventajaxload'=> 'desktop_orbit#eventajaxload'
match '/desktop_orbit/gettimelinespan' => 'desktop_orbit#gettimelinespan'
match "/facebook/register_fb" => "facebook#register_fb"
match "/facebook/get_friends" => "facebook#get_friends"
#match '/desktop_orbit/eventajaxload' => 'desktop_publications#create_journal'
#match '/desktop_orbit/eventajaxload' => 'desktop_publications#delete_journal'

View File

@ -16,7 +16,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
end
@categorylist = GalleryCategory.all
@cid = params['cat']
@tags = get_tags
@tags = GalleryTag.all
end
def show
@ -26,7 +26,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@authenticated = false
end
@album = GalleryAlbum.find(params[:id])
@tags = get_tags
@tags = GalleryTag.all
end
def new
@ -55,10 +55,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << GalleryAlbum.where(tagged_ids: tag)
@albums << GalleryAlbum.where(tag_ids: tag)
end
else
@albums << GalleryAlbum.where(tagged_ids: @tags)
@albums << GalleryAlbum.where(tag_ids: @tags)
end
else
@albums << GalleryAlbum.all
@ -69,10 +69,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @tags
if @tags.kind_of?(Array)
@tags.each do |tag|
@albums << category.gallery_albums.where(tagged_ids: tag)
@albums << category.gallery_albums.where(tag_ids: tag)
end
else
@albums << category.gallery_albums.where(tagged_ids: @tags)
@albums << category.gallery_albums.where(tag_ids: @tags)
end
else
@albums << category.gallery_albums.all
@ -83,7 +83,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@albums.each do |album|
@albs = Array.new
album.each do |values|
tags = Tag.find(values.tagged_ids).map{|t| t.name}
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
category = GalleryCategory.find(values.gallery_category_id).name
@albs << {"_id"=>values.id,"show_path"=>panel_gallery_back_end_album_path(values),"cover"=>values.cover,"cover_path"=>values.cover_path,"description"=>values.description,"category_name"=>category,"gallery_category_id" => values.gallery_category_id,"name"=>values.name,"tag_ids"=>values.tag_ids,"tag_names"=>tags}
end
@ -92,6 +95,8 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
render :json=>@output.to_json
end
def destroy
album = GalleryAlbum.find(params[:id])
album.delete
@ -104,7 +109,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@images = @album.gallery_images.all
@album_name = @album.name_translations
@cover = @album.cover
@tags = get_tags
@tags = GalleryTag.all
end
end
@ -120,13 +125,21 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
output = Array.new
albums.each do |album|
tag_names = Tag.find(album.tagged_ids).map{|t| t.name}
tag_names = Array.new
album.tag_ids.each do |tag|
tag_names << GalleryTag.find(tag)[I18n.locale]
end
if album.cover_path
cover_path = album.cover_path
else
cover_path = "/assets/gallery/default.jpg"
end
output << {
album_cover_file: "http://#{request.host_with_port}#{album.cover_path}",
album_cover_file: "http://#{request.host_with_port}"+cover_path,
album_name: album.name,
album_tag_names: tag_names,
album_link:"http://#{request.host_with_port}#{panel_gallery_back_end_album_get_imgs_json_path(album)}"
album_link:"http://#{request.host_with_port}#{panel_gallery_back_end_album_get_imgs_json_path(album)}",
}
end
@ -139,7 +152,11 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
output = Array.new
images.each do |image|
tags = Tag.find(image.tagged_ids).map{|t| t.name}
tags = Array.new
image.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
output << {
image_title: image.title,
@ -158,7 +175,10 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
@images = @album.gallery_images.all
@output = Array.new
@images.each do |values|
tags = Tag.find(values.tagged_ids).map{|t| t.name}
tags = Array.new
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
@output << { _id: values.id,
theater_link: panel_gallery_back_end_album_image_path(values),
description: values.description,
@ -176,8 +196,8 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if @authenticated
render :json=>{"images" => @output, "tags" => @album.tag_ids}.to_json
else
@album.tagged_ids.each do |tag|
@tag_names << Tag.find(tag).name
@album.tag_ids.each do |tag|
@tag_names << GalleryTag.find(tag)[I18n.locale]
end
render :json=>{"images" => @output, "tags" => @album.tag_ids, "tag_names" => @tag_names}.to_json
end
@ -221,7 +241,7 @@ class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
if params['delete_cover'] == "true"
@album.update_attributes(:cover=>"default")
end
@tags = get_tags
@tags = GalleryTag.all
render :action => :show
end
end

View File

@ -4,6 +4,7 @@ Rails.application.routes.draw do
namespace :gallery do
namespace :back_end do
match "get_albums" => "albums#get_albums"
match "upload_image" => "albums#upload_image"
match "save_tags" => "tags#save_tags"
match "albums/save_tags" => "tags#save_tags"

View File

@ -2,7 +2,7 @@ class Panel::Location::BackEnd::LocationsController < OrbitBackendController
include AdminHelper
before_filter :force_order_for_visitor,:only => [:index, :new, :edit, :create, :update, :delete]
before_filter :force_order_for_user,:except => [:get_locations,:index]
before_filter :force_order_for_user,:except => [:get_locations,:index,:get_categories]
def index
@location_infos = LocationInfo.all
@ -72,6 +72,14 @@ class Panel::Location::BackEnd::LocationsController < OrbitBackendController
description: location.description }
end
render :json => JSON.pretty_generate({location: @data})
render :json => JSON.pretty_generate(@data)
end
def get_categories
@data = Array.new
@data << { name: "Department",
link: "http://#{request.host_with_port}"+"/panel/location/back_end/locations/get_locations?locale=en" }
render :json => JSON.pretty_generate(@data)
end
end

View File

@ -74,4 +74,11 @@ class Panel::Locations::BackEnd::LocationsController < OrbitBackendController
#render :json => {location: @data}.to_json
end
def get_categories
@data = Array.new
@data << { name: "Department",
link: "http://#{request.host_with_port}"+"/panel/location/back_end/location/get_locations" }
render :json => JSON.pretty_generate(@data)
end
end

View File

@ -4,6 +4,7 @@ Rails.application.routes.draw do
namespace :back_end do
match "locations/get_locations" => "locations#get_locations"
match "locations/get_categories" => "locations#get_categories"
resources :locations
end