From d9079d9d7cd7a5328d02cd8b50f31bbe49880957 Mon Sep 17 00:00:00 2001 From: saurabhbhatia Date: Tue, 30 Jul 2013 16:39:01 +0800 Subject: [PATCH] Updated with icons, latest js and css for desktop --- app/assets/images/desktop/chrome.png | Bin 0 -> 2794 bytes .../images/desktop/compatibility_bg.jpg | Bin 0 -> 106551 bytes app/assets/images/desktop/firefox.png | Bin 0 -> 3715 bytes app/assets/images/desktop/ie.png | Bin 0 -> 1237 bytes app/assets/images/desktop/opera.png | Bin 0 -> 1032 bytes app/assets/images/desktop/safari.png | Bin 0 -> 2248 bytes app/assets/images/desktop/select2/select2.png | Bin 0 -> 824 bytes .../images/desktop/select2/select2x2.png | Bin 0 -> 845 bytes app/assets/images/desktop/select2/spinner.gif | Bin 0 -> 1849 bytes .../javascripts/desktop/orbitdesktop.js | 914 +++++--- .../javascripts/desktop/orbitdesktopAPI.js | 79 +- app/assets/javascripts/orbitdesktop.js | 1880 +++++++++++++++++ app/assets/javascripts/orbitdesktopAPI.js | 236 +++ .../stylesheets/desktop/desktop-main.css | 395 ++-- 14 files changed, 2961 insertions(+), 543 deletions(-) create mode 100755 app/assets/images/desktop/chrome.png create mode 100755 app/assets/images/desktop/compatibility_bg.jpg create mode 100755 app/assets/images/desktop/firefox.png create mode 100755 app/assets/images/desktop/ie.png create mode 100755 app/assets/images/desktop/opera.png create mode 100755 app/assets/images/desktop/safari.png create mode 100755 app/assets/images/desktop/select2/select2.png create mode 100755 app/assets/images/desktop/select2/select2x2.png create mode 100755 app/assets/images/desktop/select2/spinner.gif create mode 100755 app/assets/javascripts/orbitdesktop.js create mode 100644 app/assets/javascripts/orbitdesktopAPI.js diff --git a/app/assets/images/desktop/chrome.png b/app/assets/images/desktop/chrome.png new file mode 100755 index 0000000000000000000000000000000000000000..5661a6876e0cffe0017ea1b103b1680012cce7c1 GIT binary patch literal 2794 zcmVV>IRB3Hx05CHzF*7eQGl23NSO5SD zKuJVFRCt{2o$qg3Dt03G8qEujR1<_RyZUyU9aC8OdR1ms?b1GQ6f|Dya zs)Ca%;C&cz1%edCKOiu)^*)cDrL_?`!cPOtfWYvVs;YPcBtU$8ZGh_A`Dey6* zAwBF7p>w2LSBFM{w}_};0^2c`pNP;;f$eCZN#GR7(Ce*3*(2X04{L^S6WRbo*b?}` z`o#tL4nL6Zlm@kgupXQszw);rY9D(<=pw|$LwInEeAz#F`{IIp$3Ky=Ire>V-vVby zYH{oNx*GU`eD^z_7xmRe$4Gbl9)<1VnN#esC_X$m<^6i?Ic||QNteFR(jJ@xUzfbV z8{j(&cH2t{93g>J=xN2Z@Qh6GIG^WUqKn=j-Op9r;nZFB#`TF^d+-MF+z&2K`i^)- z<_DbJ#Bk}sS8?a_0ck^Lp6p8CtGMoPDzXcKuj0DLnaFbmzKXjXPDGv)WW`7@a20o1 zUXiw*ltNAQ;0T#Kzlys&wI@eYK0H<62d;UpPd*`SKAI_A^al9Pl#5-N%{N90J#`Fz zVts3--U6d1LZ%8F1OJ`!!7H zb#y$wM$%#U%z&T4%drNaIQGsmRxZIo>`mJcl-5VYZwJy3ToU1pM#9Nng>KHkli? zcPQP~>5Fq?@R0OJQ`+>3EI<8>{OInG>C`fiJ!&}T!6n1@4gE%QW7U|?&ZXXf{lIdi z6(SZ`?YIzy{YKXqoH9;edpfIw0&uwD$8#BOT-gTTsk_> zC7!CPimGk&W~{{jYg|{)xO}DQ99bYcx=3JI4~BLFJRsxqIeyagUTxi87p9FRdX_K6a1waQE^tiRWCkrU zy1lpNE6sp14`W7)k01gseXny&+GGl>E%oTb{(f56+%R$9=}3ln@iWc5cdY^+(6a_C zy1`Ec)FEk8Vg0?P(ucOKMF=B0hV3oot}$)a;=w^GzUS88UAgYs1y(}{fp2M!S5LH~ z&b4>ZY6$hzmE8I}4Pe8&Ae6xM-lm$;`u}Riuo0-VIplMbGR}`%OYKrv5|uWG6xiO| zWTLXME@0ZMW;_o4B!m$ilo~u3y1n?R<2|jIwnpf=QF74W!O%{dV7&rsy3M((gRH(~G``4a zrcEWf7O|bfUL>eR;8!?B(PcP0{-P^wvKIx>PMQ9bAq0+7evbvnp2fU2upf+q8U}E=vY+#lV*<+p)aK?>I2OJ zf1urPDPd>0Y;i&7<9k>8~=o!Cf&@lLWobsAv@XFdrQ2~OuIB^ z6d4zmJr8|;@Q!A5`Ia#s6SPHN5!9L&2JE01DsY0{*&CPGPgX6_n-7ibLiV32^T;O%zR-#M+4)Er#CAid0>Ek|Pn2Hg?m9PDT`NAD!h zXGW}o9lJkxhu@VHzQ{OOXKkx z(xOr0uE|t^L3bcBlr^M97iX*bm{X(UfHaQAeM3V@jpGcR;wH@4q(8R^%Z~Mm{GI0G z>AOlQhNKpE*1oYhU9`yt8OPSrU29K^oQMnV$|$YPlQZ7ER7`FR@f9!voS?YudC8I@6*@q^%aI zSGIJm$`o1tq9ORwmKMDtZIdo}k)^t5n;6;16{^d&)1n8YqE9GZknz7<`a-^{&6Y?v zbWa#>&Nzu16HeS$d9X>0-$%7;NsFG5?zr@M(Gc~bOC)0a4L|8rY8)r{ z7k7_**MtBS1w$4DFA&fAo#ljnrnz=0U+6kr?2+#l6R^Nd=!)+kjUKa%(0A6ckF>}X zHurG7UP6q)m)IiR>fFL&<_ZWO_pW~;f~u;SrBUFTn9~OAv7YBEE!rcZ=IE%{+d{Lz zCL6@Fw+zdr?VW)xcS+X!k8||Z_-wHjflVSr=mZho7Tk4OR13O0{S;4TtG w)R@!m{`&nPTW;#&od-@;0ZR0hcO1?C0p@QIanu~V3jhEB07*qoM6N<$g1D7jYXATM literal 0 HcmV?d00001 diff --git a/app/assets/images/desktop/compatibility_bg.jpg b/app/assets/images/desktop/compatibility_bg.jpg new file mode 100755 index 0000000000000000000000000000000000000000..7d52cd0effc9b9c7a2992827edb851633449a3c9 GIT binary patch literal 106551 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/desktop/firefox.png b/app/assets/images/desktop/firefox.png new file mode 100755 index 0000000000000000000000000000000000000000..c7f064870055a9dc49f6c6c4a95c5517fb5ed40d GIT binary patch literal 3715 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/desktop/ie.png b/app/assets/images/desktop/ie.png new file mode 100755 index 0000000000000000000000000000000000000000..ef5f454d21446b09d8ba380e27b1a4e37d0719b0 GIT binary patch literal 1237 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/desktop/select2/select2x2.png b/app/assets/images/desktop/select2/select2x2.png new file mode 100755 index 0000000000000000000000000000000000000000..4bdd5c961d452c49dfa0789c2c7ffb82c238fc24 GIT binary patch literal 845 zcmV-T1G4;yP)upQ6WKflyv?C|ADVW!U!t`EpA+x zB)5#EjWk-_X77YJZtQo`E0SF)^1bZr%)B7Cd`*OK*r z5WG-7e-R9G9^69ksDt29&oyHqxPSt|-S>xi3%PTd+GjY+BGF|nWC(7D-sd(kxqd9~ zS@2YF5vB+>dP8+$l^{oO3-lEWiGA*QIU)Wds#9M6RZ9N zcQ4y4)xqQOxD=vwu%7cz1nY#$lT&y8HCmkWgpwQP#3dhnYj9|2aS_R}IUF_^6s#$= zTm%~>A#oM?KIg$kh=<`gJkeoHa2LrulVy$Yx+N_0R3$4I!R*0677f(FKqm`2_o4~W z0h}fQZ`lC^1A+m;fM7uI(R1`S0KtG@KrkQ}5DW+&@cTnDVIow56KciMk7a899t0bC zC1KI{TsMe5NAR%GD_5`B-@ad4k~K3SO%H z_M31|`HV?E6)u$E3c&*<*n20+V@mRCop>R5;DWuZCmjSo7p@R&OYl^@Gv)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/desktop/orbitdesktop.js b/app/assets/javascripts/desktop/orbitdesktop.js index e241c2b2..fc945390 100755 --- a/app/assets/javascripts/desktop/orbitdesktop.js +++ b/app/assets/javascripts/desktop/orbitdesktop.js @@ -6,7 +6,8 @@ //container=true is the area where the view will be loaded //load = true is used to load the submenu item by default //response-type = "json"|"script"|"xml|html" default is json -//autocomplete-list = "listname" an array from which autocomplete will be attached to its respective input or textarea +//autocomplete = "url" this will automatically convert textarea or input to autocomplete. +//autocomplete-format = "--:[text,email]" first one is seperator which will be put on between every field. //ajax-remote="get/delete/post/false" this will automatically bind the with remote ajax call. By default if the resposne is html, it ll be inserted in container=true, false option will not make any calls and also stop page refresh // content-holder = "jquery dom", the returned html of server will be put inside the dom mentioned in content-holder of a tag. this can be used in a tags as attributes //confirm-message ="Some message", this will prompt user with a confirm box and show the message before ajax call is made. @@ -37,6 +38,15 @@ var sortAscending = function(a, b) { var sortDescending = function(a, b) { return $(a).find("h1").text() < $(b).find("h1").text() ? 1 : -1; }; + +Array.prototype.indexOfObject = function(object){ + for(i = 0;i < this.length; i++){ + if(this[i] === object) + break; + } + return i; +} + jQuery.ajax = (function(_ajax){ var protocol = location.protocol, @@ -107,9 +117,9 @@ var orbitDesktop = function(dom){ // o = this; this.contentHolder = dom; this.themesettings = ""; - this.theme = "4f8d3f493b67fcd05f086359"; + this.theme = null; this.transitionTime = 1000; - this.currenthtml = "desktop.html"; + this.currenthtml = "home"; this.currentface = "home"; this.desktopData = {}; this.tp = ""; @@ -124,22 +134,21 @@ var orbitDesktop = function(dom){ var theme = o.theme; var custom = false; o.getlocation(); + o.minimizeBarManager(); $.getJSON("/desktop/get_desktop_settings",{"get":"desktop","desktopid":o.desktopId},function(desktopSettings){ if(desktopSettings){ - if(desktopSettings.theme!="custom"){ - theme = desktopSettings.theme; - }else{ - theme = "4f8d3f493b67fcd05f086359"; + if(desktopSettings.theme=="custom"){ custom = true; } + theme = desktopSettings.theme; o.theme = theme; loadTheme(desktopSettings.customtheme,desktopSettings.wallpaper); }else{loadTheme();} }); var loadTheme = function(customtheme,customwallpaper){ //This function will load the theme from database - $.getJSON("/"+o.themefolder+"/"+theme+"/settings/"+theme+".json",function(ts){ - o.themesettings = eval(ts); - $('head').append( $('').attr('href', "/"+o.themefolder+"/"+theme+"/css/"+ts.css)); + $.getJSON("/desktop_themes/settings",{"id":theme},function(ts){ + o.themesettings = ts; + $('head').append( $('').attr('href', o.themesettings.css)); if(custom){ $("head").find("#dyn_css").remove(); $("head").append(customtheme); @@ -148,7 +157,6 @@ var orbitDesktop = function(dom){ o.loadWallpaper(customwallpaper); o.bindDesktopEvents(); o.loadIconCache(); - o.getlocation(); var custom_load = window.location.hash; if(!custom_load){ $(o.contentHolder).empty().load("/desktop/desktop",function(){ @@ -173,10 +181,10 @@ var orbitDesktop = function(dom){ }; this.changeTheme = function(theme){ // this function is used for changing theme o.theme = theme; - $.getJSON("/"+o.themefolder+"/"+theme+"/settings/"+theme+".json",function(ts){ - o.themesettings = eval(ts); + $.getJSON("/desktop_themes/settings",{"id":theme},function(ts){ + o.themesettings = ts; $('head').find("#dyn_css").remove(); - $('head').append( $('').attr('href', "/"+o.themefolder+"/"+theme+"/css/"+ts.css)); + $('head').append( $('').attr('href', o.themesettings.css)); o.loadWallpaper(); o.loadIconCache(); }) @@ -315,7 +323,9 @@ var orbitDesktop = function(dom){ $(window).resize(function(){ // var ww = $(window).width(); // $("img#thmbackground").attr({"width":ww}); - if( $('.tinycanvas').length > 0 ){ $('.tinycanvas').tinyscrollbar_update('relative'); } + // 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; @@ -343,56 +353,36 @@ var orbitDesktop = function(dom){ return split( term ).pop(); } - var autocompleteListName = null; - $("body").on("keydown","*[autocomplete-list]", function( event ) { - autocompleteListName = $(this).attr("autocomplete-list"); - if ( event.keyCode === $.ui.keyCode.TAB && - $( this ).data( "autocomplete" ).menu.active ) { - event.preventDefault(); - } - $(this).autocomplete({ - minLength: 0, - source: function( request, response ) { - // delegate back to autocomplete, but extract the last term - response( $.ui.autocomplete.filter( - window.o[o.data_method][autocompleteListName], extractLast( request.term ) ) ); - }, - focus: function() { - // prevent value inserted on focus - return false; - }, - select: function( event, ui ) { - var terms = split( this.value ); - // remove the current input - terms.pop(); - // add the selected item - terms.push( ui.item.value ); - // add placeholder to get the comma-and-space at the end - terms.push( "" ); - this.value = terms.join( ", " ); - return false; - } - }); - }); + // $("body").on("keydown","*[autocomplete]", function( event ) { + // var autocompleteList = $(this).attr("autocomplete-list"); + // console.log($(this)); + + // }); + // }; this.layout_data = function(h){ - var $e; - var column_container,layout, base_width, total_width, gutter, no_of_entries = 0, pagination_link, pagination_variable; + var $e; + var column_container,layout, base_width , no_of_entries = 0, pagination_link , pagination_variable, gutter, total_width; o.paging = true; gutter = (!isNaN(gutter)) ? gutter : 12; this.layout_data.generate_layout_html = function(l){ $e = $("
"); $e.html(l); - column_container = $e.find("div.overview"); - layout = column_container.attr("content-layout"), base_width = parseInt(column_container.attr("base-width")), no_of_entries,total_columns=0, pagination_link = column_container.attr("pagination-link"), pagination_variable = column_container.attr("pagination-var"); + column_container = $e.find("div.overview"), + layout = column_container.attr("content-layout"), + base_width = parseInt(column_container.attr("base-width")), + no_of_entries,total_columns = 0, + pagination_link = column_container.attr("pagination-link"), + pagination_variable = column_container.attr("pagination-var"); var temp_div = $("
"); var entries = []; switch (layout){ - case "simple": + case "simple": total_columns++; temp_div.append(column_container.html()); + total_width = "auto"; break; case "datalist": no_of_entries = (typeof column_container.attr("per-column") != "undefined"? parseInt(column_container.attr("per-column")) : 4); @@ -411,7 +401,10 @@ var orbitDesktop = function(dom){ x = 0; temp_div.append(column); } - }); + }) + if(x != 0){ + temp_div.append(column); + } } total_width = (!isNaN(base_width)) ? (base_width + gutter*2 +1) * total_columns : null; break; @@ -419,24 +412,40 @@ var orbitDesktop = function(dom){ entries = column_container.find("div[column=true]"),x = 0,column; if(entries.length!=0){ entries.each(function(i,ul){ - column = $("
'); - $("div[container=true]").find("div.tinycanvas").prepend('
'); + var check_container = $("
").html(h).find("div[container=true]"); + if(check_container.length > 0){ + $("div[container=true]") + .html(check_container.html()) + .find("div.overview") + .wrap('
'); + }else{ + $("div[container=true]") + .html(h) + .find("div.overview") + .wrap('
'); + } + $("div[container=true]") + .find("div.tinycanvas") + .prepend('
'); var f = o.layout_data.generate_layout_html(h) $("div[container=true] div.overview").html(f.markup); var settings = {main : ".tinycanvas"}; @@ -458,7 +467,12 @@ var orbitDesktop = function(dom){ } } } + // call other functions here o.tinyscrollbar_ext(settings,tsettings); + o.simple_drop_down(); + o.autocomplete(); + o.use_select2(); + o.check_simple_layout(); } this.paging = true; this.pagination = function(link,variable,page_no){ @@ -538,7 +552,7 @@ var orbitDesktop = function(dom){ var target = dom.attr("id"); var url = dom.attr("href"); if(!url)return false; - o.lastlink = url; + o.data_method = dom.attr("callback-method"); if(o.currenthtml!=target){ if(o.desktopData[o.currentface] == "undefined"){ @@ -576,20 +590,22 @@ var orbitDesktop = function(dom){ $(o.contentHolder).html(o.desktopData[o.currentface]); try{ if(!customload){ - o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]")); + o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]); }else{ if(submenuitem) - o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]")); + o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"),o.desktopData[o.currentface]); else - o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]")); + o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"),o.desktopData[o.currentface]); } }catch(EX){} - cache = true; + + cache = (o.lastlink == "/desktop/app_manager" ? false : true); if(typeof o.data_method != "undefined"){ if(o.data_method != ""){ window.o[o.data_method](target,url,cache); } } + header_ani(); } }); $('#header') @@ -606,6 +622,7 @@ var orbitDesktop = function(dom){ $(this).hide().delay(i*100).fadeIn(600,'easeInOutQuint'); }); } + o.lastlink = url; } this.sub_menu_item = function(dom,data){ var sub_data_method = dom.attr('callback-method'); @@ -634,23 +651,15 @@ var orbitDesktop = function(dom){ // $('*[content-type=menu] a').removeClass('thmc1 thmtxt active'); // dom.addClass('thmc1 thmtxt active'); } - this.highlight_sub_menu_item = function(no){ - $('*[content-type=menu] a').removeClass('thmc1 thmtxt active'); - var dom; - if(typeof no == "number"){ - dom = $('*[content-type=menu] a').eq(no); - dom.addClass('thmc1 thmtxt active'); - }else if(typeof no == "object"){ - dom = no; - dom.addClass('thmc1 thmtxt active'); - } - return dom; - } 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){ !draggable; @@ -662,26 +671,43 @@ var orbitDesktop = function(dom){ }) .end() .gridster({ + max_rows: 4, + shift_larger_widgets_down: false, widget_margins: [6, 6], widget_base_dimensions: [120, 120], + serialize_params: function($w, wgd) { return { col: wgd.col, row: wgd.row, id: $w.data("id") } }, draggable : { start: function(event, ui){ 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(); - } - }); - } + // 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}); } } }) .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){ @@ -710,19 +736,7 @@ var orbitDesktop = function(dom){ dragged.removeClass("noClick"); }); - var element = $('.gridster li'); - $.each(element, function(i){ - if($(this).attr("data-category")=="app" && $(this).find('.text_wrapper').length < 1){ - $(this).find('.appname').wrapInner(''); - var w = $(this).find('.text_wrapper').width(); - if (w > 96){ - var text = $(this).find('.text_wrapper').text(); - slice = text.substr(0,12); - $(this).find('.text_wrapper').attr('title',text).text(slice+'...'); - } - } - }); - + o.appname_substr('.gridster li'); o.simple_drop_down(); o.tinyscrollbar_ext({ main: '.tinycanvas' @@ -731,33 +745,54 @@ var orbitDesktop = function(dom){ var loadTiles = function(id){ //This will load tiles for a specific desktop .. id of section has to be passed here to load tiles $("#desktop #group_wrapper").empty(); $.getJSON("/desktop/getgroups",{sectionid:id},function(tiles){ - tiles.sort(o.sortJSON("position",true,parseInt)); - var tilecolors = o.themesettings.tilecolor; + // tiles.sort(o.sortJSON("position",true,parseInt)); + var tilecolors = (o.themesettings.tilecolor ? o.themesettings.tilecolor : ["thmc1","thmc2","thmc3","thmc4"]) ; var totaltiles_in_a_row = 4; var opacity = ["op07","op08","op09",""]; - var row = 1, col = 1, x = 1, y = 1; + var row = 0, col = 1, x = 1, y = 1, total_x = 0, prev_y = 0; var $group = $('
'); var $ul = $('
    '); $.each(tiles,function(i,tile){ - if(row >= 4){ - row = 1; - col++; - } var shape = tile.shape.split(" "); - x = parseInt(shape[0].substr(1,1)); - y = parseInt(shape[1].substr(1,1)); + // 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; + x = parseInt(shape[0].substr(1,1)); + y = parseInt(shape[1].substr(1,1)); + }else{ + x = parseInt(shape[0].substr(1,1)); + if(total_x % 2 == 0){ + row = row + y; + }else if(x == 1){ + col++; + } + y = parseInt(shape[1].substr(1,1)); + total_x = total_x + ( x * y ); + prev_y = y; + if(total_x > 8){ + row = 1; + total_x = 0; + col++; + } + } var tilecolor = tilecolors[Math.floor(Math.random()*tilecolors.length)]; var op = opacity[Math.floor(Math.random()*opacity.length)]; var f = (tile.fullsize?"fullsize":null); if(tile.data_category == "app"){ - $li = $('
  • '+tile.title+'

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

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

  • '); } - row = row + y; + $ul.append($li); }); @@ -770,7 +805,7 @@ var orbitDesktop = function(dom){ } var loadSectionList = function(){ //This will load the section list from the db $.getJSON("/desktop/getsectionlist",{desktopid:o.desktopId},function(sectionlist){ - o.sectionList = eval(sectionlist); + o.sectionList = sectionlist; $.each(sectionlist,function(i,section){ var tempstyle=""; if(i==0){ @@ -805,6 +840,7 @@ var orbitDesktop = function(dom){ $("#desktop #section_list").append($('
  • '+section.name+'
  • ')); }); bindSecondaryHandlers(); + o.simple_drop_down(); }else{ loadSectionList(); loadTiles(o.sectionId); @@ -815,52 +851,116 @@ var orbitDesktop = function(dom){ $.post("desktop/twitter",function(){}); }; - this.initializeAppSearch = function(target,url,cache){ //this is application search ie is app manager initialization - var searchArray,allApps; + this.initializeAppManager = function(target,url,cache){ //this is application search ie is app manager initialization + var searchArray, allApps; + var bindHandlers = function(){ // bind handler for app manager page - var gn = $('.g_col').length, - gw = $('.g_col').outerWidth(true); - $("#app_manager #group_wrapper").css("width",gn*gw); + // var gn = $('.g_col').length, + // gw = $('.g_col').outerWidth(true); + // $("#app_manager #group_wrapper").css("width",gn*gw); // $("div#app_manager .group_search").css("width",$(window).width()-200); - //for textbox search - $("#app_manager #searchbox").focus(function(){$(this).val("");}).keyup(function(e){ - if($(this).val()){ - $("#app_manager .search_result").empty(); - $("#app_manager #seperator").hide(); - searchArray = $("#app_manager .element:containsi("+$(this).val()+")"); - if(searchArray.length>0){ - $("#app_manager #seperator").show(); - var i = 0; - var $column; - searchArray.each(function(){ - i++; - if(i == 1){ - $column = $("
    "); + //for textbox search + var $elements = $("#app_manager .element"), + $result = $("#app_manager .search_result"), + $appinfo = $("#app_info"), + $applist = $("#app_list"), + $apptitle = $appinfo.find(".app_info_name"), + $appicon = $appinfo.find(".app_info_icon"), + $appinfolist = $appinfo.find(".app_info_list"), + $canvas = $result.parents('.overview'), + current_width = $canvas.css('width'); + + $("#app_manager #searchbox") + .focus(function(){ + $(this).val(""); + }) + .keyup(function(e){ + var query = $(this).val(); + if(query){ + $appinfo.hide().attr('style',''); + $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).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(){ + i++; + if(i == 1){ + $column = $('
    '); + } + $column.append($(this)); + $(this).show(); + if(i == 4){ + $result.append($column); + i = 0; + c++; + } + }); + if(i != 0){ + $result.append($column); + c*=132; + searchArray + .eq(0) + .parents('.overview') + .animate({ + 'width': c + },0, function(){ + $(this) + .parents('.tinycanvas') + .tinyscrollbar_update(); + }); } - var $newelement = $(''); - $column.append($newelement); - if(i == 4){ - $("#app_manager .search_result").append($column); - i = 0; - } - }) - if(i != 0){ - $("#app_manager .search_result").append($column); + } else { + var $no_result = $('
    No result for
    '); + $no_result + .find('b') + .text('"'+$(this).val()+'"') + .end() + .show() + .appendTo($result); + $canvas.animate({ + 'width':252 + }, 0, function(){ + $(this) + .parents('.tinycanvas') + .tinyscrollbar_update(); + }); } + } else if( query == "" ) { + info_close(); + $result.empty(); + $applist.show(); + $canvas.css('width',current_width); } - }else{$("#app_manager #seperator").hide();$("#app_manager .search_result").empty();} - }).blur(function(){$(this).val("Search");}); + }) + .blur(function(){ + if($(this).val()==""){ + $(this).val("Search"); + } + }); //for Alphabet sorting $("#app_manager #alphabet_sort_btn").click(function(){ switch ($(this).attr("href")){ case "ascending": $(this).attr("href","descending").find(".thmtxt").text("Alphabet [Z-A]"); - allApps = $("div#app_manager .group_search .element").sort(sortAscending); + allApps = $("div#app_manager .element").sort(sortAscending); break; case "descending": $(this).attr("href","ascending").find(".thmtxt").text("Alphabet [A-Z]"); - allApps = $("#app_manager .group_search .element").sort(sortDescending); + allApps = $("#app_manager .element").sort(sortDescending); break; } $("#app_manager #app_list").empty(); @@ -876,173 +976,166 @@ var orbitDesktop = function(dom){ $('.g_col.col'+ colindex).append(app); } }); + elementSetting(); return false; }); - } - var loadApps = function(){ //this load apps for sorting and searching - $.getJSON("/desktop/getapplist",{desktopid:o.desktopId},function(appss){ - var count = 0, colindex = 0; - $('#app_list').append('
    '); - $.each(appss,function(i,apps){ - $.each(apps,function(i,app){ - var $app; - count++; - $app = $('

    '+app.title+'

    '); - if( count > 4 ){ - count = 1, colindex+=1; - $('#app_list').append('
    '); - $('.g_col.col'+ colindex).append($app); - } else { - $('.g_col.col'+ colindex).append($app); - } - }); - }); + var elementSetting = function(){// for element setting load + $elements.click(function(){ + var $e = $(this); + $apptitle.text($e.data("title")); + $appicon.attr("src",$e.find("img").attr("src")); + $appinfolist.find("[info=app_version]").text($e.data("version")); + var dt = new Date($e.data("update")); + $appinfolist.find("[info=app_last_update]").text(dt.toUTCString()); + $appinfolist.find("[info=app_author]").text($e.data("author")); + $appinfo + .find(".app_info_header") + .attr('style','') + .css({ + "background-color": $e.data("background"), + "color": $e.data("text-color") + }); + var sections = elementSettingsData[$e.data("id")].sections; + + var sectionids = new Array(); + $.each(sections,function(i,sec){ + sectionids.push(sec.id); + }) + + $appinfolist.find("[info=app_section_activation]").empty(); + $.each(o.sectionList,function(i,sec){ + + var present = $.inArray(sec._id,sectionids); + if(present == -1){ + $sectionswitch = $('
    Off
    '); + }else{ + $sectionswitch = $('
    On
    '); + } + $appinfolist.find("[info=app_section_activation]").append($sectionswitch); + }); + info_open(); + o.simple_switch(function(dom){ + var options = { + "status" : dom.is(":checked"), + "id" : dom.data("widget"), + "section_id" : dom.data("section"), + "type" : dom.data("type") + } + var sectionDetails = o.sectionList.filter(function(o){return(o._id == dom.data("section"))})[0]; + $.ajax({ + url : "/desktop/appactivation", + type : "post", + datatype : "json", + data : options, + success : function(data){ + if(data.success == "true"){ + if(dom.is(":checked")){ console.log("true"); + elementSettingsData[$e.data("id")].sections.push({"id" : dom.data("section"),"name":sectionDetails.name}); + o.notify("Added to " + sectionDetails.name,"success"); + }else{ + var index = elementSettingsData[$e.data("id")].sections.indexOfObject(elementSettingsData[$e.data("id")].sections.filter(function(a){return a.id == dom.data("section")})[0]); + elementSettingsData[$e.data("id")].sections.splice(index,1); + o.notify("Removed from " + sectionDetails.name,"success"); + } + } + } + }); + }); + return false; + }); + } + + $appinfo.find("a.panel_close").click(function(){ + info_close(); + return false; + }); + + var info_open = function(){ + if($appinfo.is(":hidden")){ + $('.overview').stop().animate({'width': '+=480'},0 , function(){ + $('.tinycanvas').tinyscrollbar_update(); + }); + $appinfo + .css({ + 'display': 'block', + 'margin-left': -480 + }) + .delay(300) + .animate({ + 'margin-left': 0 + }, 500, 'easeInOutQuint'); + } else { + $('.tinycanvas').tinyscrollbar_update(); + } + } + + var info_close = function(){ + if( $appinfo.is(":visible") ){ + $appinfo + .stop() + .animate({ + 'margin-left': -480 + },500 , 'easeInOutQuint', function(){ + $('.overview').animate({'width': '-=480'}, 0, function(){ + $('.tinycanvas').tinyscrollbar_update(); + }); + $(this).attr("style",""); + }); + } else { + $('.tinycanvas').tinyscrollbar_update(); + } + } + $(window).on('keydown', function(){ + if($('#searchbox').val() == 'Search'){ + $('#searchbox').focus(); + } + }); + elementSetting(); + o.appname_substr('#group_wrapper .element'); + o.check_simple_layout(); + } + var elementSettingsData = {}; + var loadApps = function(){ //this load apps for sorting and searching + $('#app_info').attr('style',''); + $('.search_result').hide().text(""); + $('#app_list').empty().show(); + $.getJSON("/desktop/getapplistforManager",{desktopid:o.desktopId},function(apps){ + var count = 0, + colindex = 0, + apps_sum = apps.length, + col_sum; + + col_sum = (apps_sum - (apps_sum % 4)) / 4 + 1; + + $('#app_list') + .css('width',col_sum * 132) + .append('
    '); + + $.each(apps,function(i,app){ + var $app; + count++; + elementSettingsData[app.id] = {"sections" : app.sections}; + $app = $('

    '+app.title+'

    '); + if( count > 4 ){ + count = 1, colindex+=1; + $('#app_list').append('
    '); + $('.g_col.col'+ colindex).append($app); + } else { + $('.g_col.col'+ colindex).append($app); + } + }); bindHandlers(); }); } - if(cache){ - bindHandlers(); - } else { + // if(cache){ + // bindHandlers(); + // } else { loadApps(); - } + // } }; - 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' - }); - }; - 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){} @@ -1261,17 +1354,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(); + // }) } @@ -1420,9 +1513,8 @@ var orbitDesktop = function(dom){ } this.loadWallpaper = function(wallpaper){ // this is to load new wallpaper - wallpapernm = (!wallpaper) ? o.themesettings.background : wallpaper; if(!wallpaper){ - $("#thmbackground").attr("src","/"+o.themefolder+"/"+o.theme+"/images/"+wallpapernm); + $("#thmbackground").attr("src",o.themesettings.background); } else { $("#thmbackground").attr("src",o.wallpaperPath+wallpaper); } @@ -1432,7 +1524,7 @@ var orbitDesktop = function(dom){ var imgs = $(".docklist img"); $.each(imgs,function(){ var setting_name = $(this).attr("id").replace("_icon",""); - $(this).attr("src","/"+o.themefolder+"/"+o.theme+"/images/"+o.themesettings.icons[setting_name]) + $(this).attr("src","/assets/desktop/icons/"+o.themesettings.icons[setting_name]) }) }; this.initializeWidgets = function(){ // this function will initialize all the widgets in the desktop @@ -1440,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({ @@ -1513,6 +1605,25 @@ var orbitDesktop = function(dom){ o.tinyscrollbar = target.main.tinyscrollbar( settings ); }; + this.check_simple_layout = function(){ + // use for various width of columns inside canvas(.overview) + // only count width for visible element which has "s_column" class + // then set width to canvas + // ** 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(){ + sw += $(this).outerWidth(); + }); + $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 var $sdm = $('.sdm'); @@ -1547,6 +1658,38 @@ var orbitDesktop = function(dom){ }); }); }; + + 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'), + toggle = '', + status_on = $status.attr('status-on'), + status_off = $status.attr('status-off'), + ini, set; + 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('admbg2','thmc2'); + $status.text(status_on); + break; + case undefined: + $switcher.switchClass('thmc2','admbg2'); + $status.text(status_off); + break; + } + if(typeof func == "function"){ + func.call(this,$(this)); + } + }); + }); + }; + this.single_select = function(){ // single select $('.ssl .ssl_item').each(function(){ @@ -1583,6 +1726,143 @@ var orbitDesktop = function(dom){ }); }); } + + this.highlight_sub_menu_item = function(no){ + $('*[content-type=menu] a').removeClass('thmc1 thmtxt active'); + var dom; + if(typeof no == "number"){ + dom = $('*[content-type=menu] a').eq(no); + dom.addClass('thmc1 thmtxt active'); + }else if(typeof no == "object"){ + dom = no; + dom.addClass('thmc1 thmtxt active'); + } + return dom; + } + + this.use_select2 = function(){ + $('select:not(.select2-offscreen)').select2({ + minimumResultsForSearch: -1 + // minimumInputLength: -1 + }); + } + + this.autocomplete = function(){ + $("*[autocomplete]").each(function(){ + $e = $(this); + var options = { + multiple:true, + minimumInputLength: -1, + width: "off", + ajax: { + url: $e.attr("autocomplete"), + dataType: 'json', + quietMillis: 100, + tokenSeparators: [","], + data: function (search, page) { + return {q: search}; + }, + results: function (data, page) { + return {results: data.results}; + } + } + } + var format = $e.attr("autocomplete-format"); + if(format){ + format = format.split(":"); + var seperator = format[0]; + var fields = format[1]; + fields = fields.replace("]",""); + fields = fields.replace("[",""); + fields = fields.split(","); + + options.formatResult = function(data){ + var markup = ""; + var x = 0; + 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; + } + } + $e.select2(options); + }) + } + + this.appname_substr = function(target,length){ + var $target = $(target), + length = (length && typeof length == 'number') ? length : 12, + wrapper = '', + w1, w2; + if(!$target && $target.find('.text_wrapper').length > 0){ + return; + } else { + for(i = 0; i < $target.length; i++){ + var $this = $target.eq(i); + if($this.find('.appname').text().length > length + 1){ + $this.find('.appname').wrapInner(wrapper); + w1 = $this.find('.appname').width() - 24 + w2 = $this.find('.text_wrapper').width(); + if(w2 > w1){ + var text = $this.find('.text_wrapper').text(); + slice = text.substr(0,length); + $this.find('.text_wrapper').attr('title',text).text(slice+'...'); + } + } + } + } + } + this.minimizeBarManager = function(){ + var minimizedApps = [], + minimizeBar = $("#minimizebar"); + this.minimizeBarManager.minimize = function(win){ + minimizedApps.push(win.attr("id")); + var $e = generateMiniBar(win.attr("id")); + $e.find("span[for=title]").text(win.data('title')); + $e.one("click",function(){ + o.minimizeBarManager.maximize(win); + }); + $e.find("span.icon-remove").one("click",function(e){ + o.appWindow.close(win); + e.stopPropagation(); + }); + minimizeBar.append($e); + win.hide(); + // var minimizeOffset = minimizeBar.offset(); + // win.animate({"left":minimizeOffset.left + "px","top":minimizeOffset.top + "px","height":"25px","width":"200px"},function(){ + + // }); + + } + this.minimizeBarManager.maximize = function(win){ + var position = minimizedApps.indexOf(win.attr("id")); + minimizedApps.splice(position,1); + getMiniBar(position).remove(); + win.show(); + updatePositions(); + } + var getMiniBar = function(position){ + return minimizeBar.find("div[data-position="+position+"]"); + } + var generateMiniBar = function(id){ + var position = minimizedApps.indexOf(id), + template = '
          ', + $e = $(template); + return $e; + } + + var updatePositions = function(){ + minimizeBar.find("div.minimize").each(function(){ + $(this).attr("data-position",minimizedApps.indexOf($(this).data("app-id"))); + }) + } + } o.initialize(); } diff --git a/app/assets/javascripts/desktop/orbitdesktopAPI.js b/app/assets/javascripts/desktop/orbitdesktopAPI.js index 9e4700ea..4480555b 100644 --- a/app/assets/javascripts/desktop/orbitdesktopAPI.js +++ b/app/assets/javascripts/desktop/orbitdesktopAPI.js @@ -8,32 +8,37 @@ var orbitDesktopAPI = function(){ //msg (string) : message to display //type (string : success, imp, alert //time (int) : duration for notification in seconds - var $notify = $("#orbitnote"); - var img, n_height; + var $notify = $('#orbitnote'), + ani_method = { direction: 'up',easing: 'easeInOutQuint' }, + img, n_height; if(!type)type=""; switch(type){ case "alert": - img = "note_alert.png"; + img = "exclamation-sign"; break; case "imp": - img = "note_imp.png"; + img = "warning-sign"; break; case "success": - img = "note_success.png"; + img = "ok"; break; default: - img = "note_alert.png"; + img = "exclamation-sign"; break; } - $notify.find("img#note_img").attr("src",o.notifyImgPath+img); - $notify.find(".note_message").html(msg); - n_height = $notify.outerHeight(); - if(!time)time=5000; else time=time*1000; - $notify - .css({'top':-n_height, 'display':'block', 'opacity':0}) - .animate({top:0,opacity:1},200) + if( !time || time > 20) time = 5000; else time = time*1000; + + var sign = '
          ', + message = '
          '+ msg +'
          ', + item = '
          '+ sign + message +'
          '; + + $(item) + .prependTo($notify) + .stop(1,1) + .toggle('slide', ani_method, 300) .delay(time) - .animate({top:-n_height,opacity:0},200); + .toggle('slide', ani_method, 800); + $notify.find('.note_holder:hidden').remove(); }; this.executeFunc = function(func,callbackFn){ //takes 2 arguments @@ -67,7 +72,7 @@ var orbitDesktopAPI = function(){ this.changeWallpaper = function(wallpaper){ //takes 1 parameter //wallpaper (string): takes wallpaper and sets the wallpaper - $("img#thmbackground").attr("src",o.wallpaperPath+wallpaper); + $("#thmbackground").attr("src",o.wallpaperPath+wallpaper); o.saveWallpaper(wallpaper); }; this.confirm = function(settings,callbackfn){ @@ -111,29 +116,35 @@ var orbitDesktopAPI = function(){ }) return tempArray; }; - this.appWindow = function(settings,callbackfn){ + this.appWindow = function(options,callbackfn){ //takes set of arguments as array and gives callback //settings.method (string) : like open and close //settings.title (string) : the window title //settings.extUrl (boolean) : true for opening external url else false //settings.appid (string) : appid.. user can use this appid to open or close or refresh the window //settings.url (string) : it is the url if you want to force external url to open in appwindow... you have to pass extURL in appid if you want to open externalurl - if(typeof settings == "undefined")settings = {}; + var settings = { + method : "open", + extUrl : true, + title : "New Window" + } + $.extend(settings,options); if(!settings.appid){ o.notify("Invalid AppID.","imp",3); return; } - if(!settings.method)settings.method = "open"; - if(!settings.extUrl)settings.extUrl = true; + var isWindow = ($("div.app_frame[data-app="+settings.appid+"]").length > 0 ? $("div.app_frame[data-app="+settings.appid+"]") : null); + if(isWindow){ + o.minimizeBarManager.maximize(isWindow); + return; + } if(settings.method == 'open'){ var appurl = "http://www.rulingcom.com"; o.windowcounter++; - if(!settings.title)settings.title = "New Window "+o.windowcounter; if(settings.extUrl){ if(settings.url){ if(settings.url.substr(0,4)!="http")settings.url = "http://"+settings.url; - console.log(settings.url) var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)"); if(urlregex.test(settings.url)) appurl = settings.url; @@ -147,20 +158,34 @@ var orbitDesktopAPI = function(){ return; } } - var whtml =$('
          '); + var whtml =$('
          '+settings.title+'
          '); $(o.contentHolder).append(whtml); - var parentwindow = $(o.contentHolder).find("div#app_frame_"+o.windowcounter); + var parentwindow = $(o.contentHolder).find("#app_frame_"+o.windowcounter); var app_holder_height = parentwindow.height() - 72; var app_holder_width = parentwindow.width(); parentwindow.find("iframe").attr({"height":app_holder_height,"width":app_holder_width}); - parentwindow.find("div.app_holder").height(app_holder_height); - parentwindow.find("span.icon-remove").click(function(){ - parentwindow.remove(); + parentwindow.find(".app_holder").height(app_holder_height); + parentwindow.find(".icon-remove").click(function(){ + o.appWindow.close(parentwindow); + }); + parentwindow.find(".icon-minus").click(function(){ + o.appWindow.minimize(parentwindow); }) + } + + this.appWindow.close = function(win){ + win.remove(); + } + + this.appWindow.minimize = function(win){ + o.minimizeBarManager.minimize(win) + } + if(typeof callbackfn=="function"){ - callbackfn.call(this); + callbackfn.call(this,parentwindow); } + return parentwindow; }; this.toolPopup = function(settings){ if(settings == "destroy"){ diff --git a/app/assets/javascripts/orbitdesktop.js b/app/assets/javascripts/orbitdesktop.js new file mode 100755 index 00000000..fc945390 --- /dev/null +++ b/app/assets/javascripts/orbitdesktop.js @@ -0,0 +1,1880 @@ +// JavaScript Document +//harry +//Inititialize function will initialize desktop + +//callback-method will be called after desktop controlled ajax call +//container=true is the area where the view will be loaded +//load = true is used to load the submenu item by default +//response-type = "json"|"script"|"xml|html" default is json +//autocomplete = "url" this will automatically convert textarea or input to autocomplete. +//autocomplete-format = "--:[text,email]" first one is seperator which will be put on between every field. +//ajax-remote="get/delete/post/false" this will automatically bind the with remote ajax call. By default if the resposne is html, it ll be inserted in container=true, false option will not make any calls and also stop page refresh +// content-holder = "jquery dom", the returned html of server will be put inside the dom mentioned in content-holder of a tag. this can be used in a tags as attributes +//confirm-message ="Some message", this will prompt user with a confirm box and show the message before ajax call is made. +//"toggle-onclick" = "classes to get toggle" this will toggle classes on toggle when a tags are clicked. +//"delete-item" = "true" this will remove its respective item from the list. +//"pagination-link" = "url" this url will be used for pagination.. this will override last link url. +//"pagination-var" = "variable to send paramater with url for pagination" this will enable pagination with this attribute for that view. + +//for layout tinyscrollbar +//content-layout="datalist|column|simple" datalist is for data list from database.. column is usually for forms and some other pages.. simple is without any columns, the page will be displayed as it is.. base width will be considered the default width for tinyscrollbar +//base-width="300" this is the basic width of each column and in case of simple layout it ll be the final width +//per-column="5" this option is only for datalist layout.. this ll specify number of enteries per column.. default is 4 +//column="true" this option is only for column layout... the columns will be formed on this column=true attribute and it should be a div +//item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item. + + +$.extend($.expr[':'], { + 'containsi': function (elem, i, match, array) { + return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; + } +}); +$.fn.sort = function(c) { + return this.pushStack([].sort.apply(this, arguments), []); +}; +var sortAscending = function(a, b) { + return $(a).find("h1").text() > $(b).find("h1").text() ? 1 : -1; +}; +var sortDescending = function(a, b) { + return $(a).find("h1").text() < $(b).find("h1").text() ? 1 : -1; +}; + +Array.prototype.indexOfObject = function(object){ + for(i = 0;i < this.length; i++){ + if(this[i] === object) + break; + } + return i; +} + +jQuery.ajax = (function(_ajax){ + + var protocol = location.protocol, + hostname = location.hostname, + exRegex = RegExp(protocol + '//' + hostname), + YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?', + query = 'select * from html where url="{URL}" and xpath="*"'; + + function isExternal(url) { + return !exRegex.test(url) && /:\/\//.test(url); + } + + return function(o) { + + var url = o.url; + + if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) { + + // Manipulate options so that JSONP-x request is made to YQL + + o.url = YQL; + o.dataType = 'json'; + + o.data = { + q: query.replace( + '{URL}', + url + (o.data ? + (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data) + : '') + ), + format: 'xml' + }; + + // Since it's a JSONP request + // complete === success + if (!o.success && o.complete) { + o.success = o.complete; + delete o.complete; + } + + o.success = (function(_success){ + return function(data) { + + if (_success) { + // Fake XHR callback. + _success.call(this, { + responseText: (data.results[0] || '') + // YQL screws with