From 0354bf5b15ded41b4290fa9bfea26a80ecacd4eb Mon Sep 17 00:00:00 2001 From: Harry Bomrah Date: Fri, 14 Jun 2013 16:08:30 +0800 Subject: [PATCH] few updates with fb integration and some other changes in user and supports data to android --- app/assets/javascripts/orbitdesktop.js | 413 +++++++----------- app/controllers/desktop_controller.rb | 9 +- app/controllers/facebook_controller.rb | 31 ++ app/models/design/css_default.rb | 3 + app/models/desktop/facebook.rb | 9 + app/models/user/user.rb | 1 + app/views/desktop/index.html.erb | 1 - .../desktop/settings/connections.html.erb | 9 +- config/routes.rb | 3 + .../gallery/back_end/albums_controller.rb | 52 ++- .../built_in_modules/gallery/config/routes.rb | 1 + .../location/back_end/locations_controller.rb | 12 +- .../back_end/locations_controller.rb | 7 + .../location/config/routes.rb | 1 + 14 files changed, 267 insertions(+), 285 deletions(-) create mode 100644 app/controllers/facebook_controller.rb create mode 100644 app/models/desktop/facebook.rb diff --git a/app/assets/javascripts/orbitdesktop.js b/app/assets/javascripts/orbitdesktop.js index 5635980e1..5d920c158 100755 --- a/app/assets/javascripts/orbitdesktop.js +++ b/app/assets/javascripts/orbitdesktop.js @@ -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( $('').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 = $("
").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('
'); - 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 = $("
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 = $('
  • '+tile.title+'

  • '); + $li = $('
  • '+tile.title+'

  • '); } else { - $li = $('
  • '+tile.title+'

  • '); + $li = $('
  • '+tile.title+'

  • '); } @@ -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($('
  • '+section.name+'
  • ')); }); - 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 = $('

    '+app.title+'

    '); + $app = $('

    '+app.title+'

    '); if( count > 4 ){ count = 1, colindex+=1; $('#app_list').append('
    '); @@ -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(('
      ')); - newul = true; - }else if($list.find("ul:eq(0) li").length == 7){ - $list.append(('
        ')); - 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 = $('
        '); - for(x=0;x<4;x++){ - if(x==0){ - $li = $('
      • '+o.sectionList[z].name+'
      • '); - $group.find("ul.section_grp").append($li); - } - if(z!=x){ - $lii = $(''); - $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 = $('
          '); - } - $li = $('
        • '+app.title+'

        • '); - $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("
          "+account.email+"
          ") - $ul.find("input[type=password]").replaceWith("
          ••••••
          "); - $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("
          "+account.email+"
          ") + // $ul.find("input[type=password]").replaceWith("
          ••••••
          "); + // $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 "+o.sectionList[0].name+" "+o.sectionList[1].name+" "+o.sectionList[2].name+" "+o.sectionList[3].name)+""; } + //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 = '
          Loading
          '; $.each(elements,function(){ var widget = $(this), - widget_holder = $(this).find('.appholder'), - widget_style = (widget.find('.widget_style').length > 0) ? '' : ''; + widget_holder = $(this).find('.appholder') + // widget_style = (widget.find('.widget_style').length > 0) ? '' : ''; 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 = '', - 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; } } diff --git a/app/controllers/desktop_controller.rb b/app/controllers/desktop_controller.rb index ea930cd52..8ecb4ae7c 100644 --- a/app/controllers/desktop_controller.rb +++ b/app/controllers/desktop_controller.rb @@ -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 = '' + css = widget.css_default.content; + css = "" 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 diff --git a/app/controllers/facebook_controller.rb b/app/controllers/facebook_controller.rb new file mode 100644 index 000000000..c79ed811d --- /dev/null +++ b/app/controllers/facebook_controller.rb @@ -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 \ No newline at end of file diff --git a/app/models/design/css_default.rb b/app/models/design/css_default.rb index bd4baa8ca..eff8491e8 100644 --- a/app/models/design/css_default.rb +++ b/app/models/design/css_default.rb @@ -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 diff --git a/app/models/desktop/facebook.rb b/app/models/desktop/facebook.rb new file mode 100644 index 000000000..c8b6b4c8d --- /dev/null +++ b/app/models/desktop/facebook.rb @@ -0,0 +1,9 @@ +class Facebook + include Mongoid::Document + include Mongoid::Timestamps + + field :fb_identifier + field :connected, type: Boolean + + belongs_to :user +end \ No newline at end of file diff --git a/app/models/user/user.rb b/app/models/user/user.rb index 51834f8e7..57dbd9ae7 100644 --- a/app/models/user/user.rb +++ b/app/models/user/user.rb @@ -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 diff --git a/app/views/desktop/index.html.erb b/app/views/desktop/index.html.erb index 354e9049e..25bcb679a 100644 --- a/app/views/desktop/index.html.erb +++ b/app/views/desktop/index.html.erb @@ -4,7 +4,6 @@
        • Home
          • App Manager
          • -
          • All Sections
          • Settings
        • diff --git a/app/views/desktop/settings/connections.html.erb b/app/views/desktop/settings/connections.html.erb index 9d9d4c43f..0dff34418 100644 --- a/app/views/desktop/settings/connections.html.erb +++ b/app/views/desktop/settings/connections.html.erb @@ -1,6 +1,9 @@ -
          -
            + diff --git a/config/routes.rb b/config/routes.rb index da2cb410d..54e72becb 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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' diff --git a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb index 177a290b4..caf653f02 100644 --- a/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb +++ b/vendor/built_in_modules/gallery/app/controllers/panel/gallery/back_end/albums_controller.rb @@ -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 diff --git a/vendor/built_in_modules/gallery/config/routes.rb b/vendor/built_in_modules/gallery/config/routes.rb index d9acd934f..d6250beb3 100644 --- a/vendor/built_in_modules/gallery/config/routes.rb +++ b/vendor/built_in_modules/gallery/config/routes.rb @@ -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" diff --git a/vendor/built_in_modules/location/app/controllers/panel/location/back_end/locations_controller.rb b/vendor/built_in_modules/location/app/controllers/panel/location/back_end/locations_controller.rb index 5594bb7fd..f9fed6149 100644 --- a/vendor/built_in_modules/location/app/controllers/panel/location/back_end/locations_controller.rb +++ b/vendor/built_in_modules/location/app/controllers/panel/location/back_end/locations_controller.rb @@ -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 diff --git a/vendor/built_in_modules/location/app/controllers/panel/locations/back_end/locations_controller.rb b/vendor/built_in_modules/location/app/controllers/panel/locations/back_end/locations_controller.rb index 5ad721e6a..b5bc2edd7 100644 --- a/vendor/built_in_modules/location/app/controllers/panel/locations/back_end/locations_controller.rb +++ b/vendor/built_in_modules/location/app/controllers/panel/locations/back_end/locations_controller.rb @@ -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 diff --git a/vendor/built_in_modules/location/config/routes.rb b/vendor/built_in_modules/location/config/routes.rb index f7332d21b..dac4a4237 100644 --- a/vendor/built_in_modules/location/config/routes.rb +++ b/vendor/built_in_modules/location/config/routes.rb @@ -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