2012-07-04 09:55:30 +00:00
// JavaScript Document
//harry
//Inititialize function will initialize desktop
2012-11-15 03:18:55 +00:00
2012-11-22 08:31:37 +00:00
//callback-method will be called after desktop controlled ajax call
2012-11-20 09:20:05 +00:00
//container=true is the area where the view will be loaded
2012-11-22 08:31:37 +00:00
//load = true is used to load the list element by default
//response-type = "json"|"script"|"xml|html" default is json
2012-11-27 07:55:32 +00:00
//autocomplete-list = "listname" an array from which autocomplete will be attached to its respective input or textarea
2013-03-01 09:49:58 +00:00
//ajax-remote="get/delete/post/false" this will automatically bind the <a> 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
2012-12-27 10:25:54 +00:00
// 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.
2013-03-01 09:49:58 +00:00
//"toggle-onclick" = "classes to get toggle" this will toggle classes on toggle when a tags are clicked.
2012-11-20 09:20:05 +00:00
2013-02-27 10:55:26 +00:00
//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
2013-03-01 09:49:58 +00:00
//item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item.
2013-02-27 10:55:26 +00:00
2012-11-08 09:01:59 +00:00
2012-07-04 09:55:30 +00:00
$ . extend ( $ . expr [ ':' ] , {
2012-11-15 03:18:55 +00:00
'containsi' : function ( elem , i , match , array ) {
return ( elem . textContent || elem . innerText || '' ) . toLowerCase ( ) . indexOf ( ( match [ 3 ] || "" ) . toLowerCase ( ) ) >= 0 ;
}
2012-07-04 09:55:30 +00:00
} ) ;
$ . fn . sort = function ( c ) {
2012-11-15 03:18:55 +00:00
return this . pushStack ( [ ] . sort . apply ( this , arguments ) , [ ] ) ;
} ;
2012-07-04 09:55:30 +00:00
var sortAscending = function ( a , b ) {
2012-11-15 03:18:55 +00:00
return $ ( a ) . find ( "h1" ) . text ( ) > $ ( b ) . find ( "h1" ) . text ( ) ? 1 : - 1 ;
2012-07-04 09:55:30 +00:00
} ;
var sortDescending = function ( a , b ) {
2012-11-15 03:18:55 +00:00
return $ ( a ) . find ( "h1" ) . text ( ) < $ ( b ) . find ( "h1" ) . text ( ) ? 1 : - 1 ;
2012-07-04 09:55:30 +00:00
} ;
var orbitDesktop = function ( dom ) {
2012-11-15 03:18:55 +00:00
orbitDesktopAPI . apply ( this ) ;
// o = this;
this . contentHolder = dom ;
this . themesettings = "" ;
this . theme = "4f8d3f493b67fcd05f086359" ;
this . transitionTime = 500 ;
this . currenthtml = "desktop.html" ;
this . currentface = "home" ;
this . desktopData = { } ;
this . tp = "" ;
this . sectionList ;
this . data _method ;
2013-02-23 09:12:02 +00:00
this . gridvar = null ;
2012-11-15 03:18:55 +00:00
this . initialize = function ( ) {
var theme = o . theme ;
var custom = false ;
$ . getJSON ( "/desktop/get_desktop_settings" , { "get" : "desktop" , "desktopid" : o . desktopId } , function ( desktopSettings ) {
if ( desktopSettings ) {
if ( desktopSettings . theme != "custom" ) {
theme = desktopSettings . theme ;
} else {
theme = "4f8d3f493b67fcd05f086359" ;
custom = true ;
}
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 ( $ ( '<link rel="stylesheet" id="dyn_css" type="text/css" />' ) . attr ( 'href' , "/" + o . themefolder + "/" + theme + "/css/" + ts . css ) ) ;
if ( custom ) {
$ ( "head" ) . find ( "#dyn_css" ) . remove ( ) ;
$ ( "head" ) . append ( customtheme ) ;
}
$ ( document ) . ready ( function ( ) {
o . loadWallpaper ( customwallpaper ) ;
o . bindDesktopEvents ( ) ;
o . loadIconCache ( ) ;
2012-11-28 10:11:49 +00:00
var custom _load = window . location . hash ;
if ( ! custom _load ) {
$ ( o . contentHolder ) . empty ( ) . load ( "/desktop/desktop" , function ( ) {
o . desktopData [ "d_desktop" ] = "" ;
o . initializeDesktop ( "d_desktop" , "" , false ) ;
} )
} else {
o . customPage ( custom _load ) ;
}
2012-11-15 03:18:55 +00:00
} ) ;
} )
}
}
2012-11-28 10:11:49 +00:00
this . customPage = function ( customload ) {
customload = customload . replace ( "#" , "" ) ;
if ( customload . search ( "-" ) != - 1 ) {
customload = customload . split ( "-" ) ;
o . menu _item ( $ ( ".docklist a[custom-load=" + customload [ 0 ] + "]" ) , true , customload [ 1 ] ) ;
} else {
o . menu _item ( $ ( ".docklist a[custom-load=" + customload + "]" ) , true ) ;
}
}
2012-11-15 03:18:55 +00:00
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 ) ;
$ ( 'head' ) . find ( "#dyn_css" ) . remove ( ) ;
$ ( 'head' ) . append ( $ ( '<link rel="stylesheet" id="dyn_css" type="text/css" />' ) . attr ( 'href' , "/" + o . themefolder + "/" + theme + "/css/" + ts . css ) ) ;
o . loadWallpaper ( ) ;
o . loadIconCache ( ) ;
} )
} ;
2012-11-28 10:11:49 +00:00
2012-11-15 03:18:55 +00:00
this . bindDesktopEvents = function ( ) { //this function will bind the global handlers to thd desktop, for example doc
$ ( ".docklist a" ) . click ( function ( ) {
2012-11-28 10:11:49 +00:00
o . menu _item ( $ ( this ) ) ;
2012-11-15 03:18:55 +00:00
return false ;
} )
2012-11-20 09:20:05 +00:00
2012-11-15 03:18:55 +00:00
$ ( 'body' ) . on ( {
click : function ( ) {
2012-11-29 08:46:33 +00:00
if ( ! $ ( this ) . hasClass ( 'active' ) ) {
o . sub _menu _item ( $ ( this ) ) ;
}
2012-11-15 03:18:55 +00:00
return false ;
} ,
mouseenter : function ( ) {
if ( ! $ ( this ) . hasClass ( 'active' ) ) {
$ ( this ) . switchClass ( 'admtxt' , 'thmc1 thmtxt' , 0 ) ;
}
} ,
mouseleave : function ( ) {
var t = $ ( this ) . hasClass ( 'active' ) ? '' : 'thmc1 thmtxt' ;
$ ( this ) . switchClass ( t , 'admtxt' , 0 ) ;
}
2012-11-20 09:20:05 +00:00
} , '*[content-type=menu] a' ) ;
2012-11-21 09:11:18 +00:00
$ ( "body" ) . on ( "submit" , "form[form-type=ajax_form]" , function ( ) {
2012-11-20 09:20:05 +00:00
var callback _method = $ ( this ) . attr ( "callback-method" ) ;
2012-11-22 08:31:37 +00:00
var dt = null ;
dt = $ ( this ) . attr ( "response-type" ) ;
if ( dt == null ) {
dt = "json" ;
}
2012-11-20 09:20:05 +00:00
var options = {
2012-11-22 08:31:37 +00:00
dataType : dt ,
2012-11-20 09:20:05 +00:00
success : function ( responseText , statusText , xhr , $form ) {
if ( typeof callback _method != "undefined" ) {
if ( callback _method != "" ) {
window . o [ o . data _method ] [ callback _method ] ( responseText , statusText , xhr , $form ) ;
}
}
2012-11-22 08:31:37 +00:00
} ,
error : function ( ) {
o . notify ( "Please try again later!" , "imp" ) ;
2012-11-20 09:20:05 +00:00
}
}
$ ( this ) . ajaxSubmit ( options ) ;
return false ;
} )
2012-12-27 10:25:54 +00:00
$ ( "body" ) . on ( "click" , "*[ajax-remote]" , function ( ) {
var $e = $ ( this ) ;
2013-03-01 06:45:20 +00:00
var t = $e . attr ( "ajax-remote" ) ;
var classes _to _toggle = $e . attr ( "toggle-onclick" ) ;
2013-03-06 03:32:53 +00:00
var exe = $e . attr ( "callback-method" ) ; // (typeof $e.attr("callback-method") == "function"? $e.attr("callback-method") : "");
2013-03-01 06:45:20 +00:00
if ( classes _to _toggle ) {
$e . toggleClass ( classes _to _toggle ) ;
}
if ( t == "false" ) {
2013-03-06 03:32:53 +00:00
if ( exe ) {
window . o [ o . data _method ] [ exe ] ( null , $e ) ;
}
2013-03-01 06:45:20 +00:00
return false ;
}
2012-12-27 10:25:54 +00:00
var ca = $e . attr ( "content-holder" ) ;
var a = function ( ) {
2013-03-01 06:45:20 +00:00
2012-12-27 10:25:54 +00:00
$ . ajax ( {
2013-03-01 06:45:20 +00:00
type : t ,
2012-12-27 10:25:54 +00:00
url : $e . attr ( "href" ) ,
success : function ( data ) {
if ( typeof data == "string" ) {
if ( ca )
$ ( ca ) . html ( data ) ;
2013-02-27 10:55:26 +00:00
else {
o . layout _data ( data ) ;
// $("div[container=true]").html(data);
}
2012-12-27 10:25:54 +00:00
}
if ( exe )
window . o [ o . data _method ] [ exe ] ( data , $e ) ;
}
} ) ;
}
if ( $e . attr ( "confirm-message" ) ) {
o . confirm ( {
buttons : [ "Yes" , "No" ] ,
highlighted : 2 ,
message : $e . attr ( "confirm-message" )
} , function ( value ) {
if ( value ) {
a ( ) ;
}
} )
} else {
a ( ) ;
}
return false ;
} )
2012-11-15 03:18:55 +00:00
$ ( window ) . resize ( function ( ) {
var ww = $ ( window ) . width ( ) ;
$ ( "img#thmbackground" ) . attr ( { "width" : ww } ) ;
if ( $ ( '.tinycanvas' ) . length > 0 ) { $ ( '.tinycanvas' ) . tinyscrollbar _update ( ) ; }
if ( $ ( o . contentHolder ) . find ( "div.app_frame" ) . length > 0 ) {
$ ( o . contentHolder ) . find ( "div.app_frame" ) . each ( function ( ) {
var app _holder _height = $ ( this ) . height ( ) - 72 ;
var app _holder _width = $ ( this ) . width ( ) ;
$ ( this ) . find ( "div.app_holder" ) . height ( app _holder _height ) ;
$ ( this ) . find ( "div.app_holder iframe" ) . attr ( { "height" : app _holder _height , "width" : app _holder _width } ) ;
} )
}
} ) ;
2012-11-27 07:55:32 +00:00
2012-11-15 03:18:55 +00:00
var $widget _fn = $ ( '.widget_fn' ) , $fn _des = $ ( '.fn_des' ) ;
$widget _fn . hover ( function ( ) {
var fn _name = $ ( this ) . find ( 'img' ) . attr ( 'alt' ) , nth = $ ( this ) . parents ( '.d_cate' ) . index ( ) , des _left = $ ( '.dock_child' ) . eq ( nth ) . width ( ) ;
$ ( this ) . addClass ( 'thmc1' ) ;
$fn _des . text ( fn _name ) . css ( { 'top' : nth * 60 , 'left' : des _left + 60 } ) . stop ( true , true ) . fadeIn ( ) ;
} , function ( ) {
$ ( this ) . removeClass ( 'thmc1' ) ;
$fn _des . stop ( true , true ) . fadeOut ( ) ;
} ) ;
2012-11-27 07:55:32 +00:00
var split = function ( val ) {
return val . split ( /,\s*/ ) ;
}
var extractLast = function ( term ) {
return split ( term ) . pop ( ) ;
}
2012-12-27 10:25:54 +00:00
2012-11-27 07:55:32 +00:00
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 ;
}
} )
} )
2012-11-15 03:18:55 +00:00
} ;
2013-02-27 10:55:26 +00:00
this . layout _data = function ( h ) {
var $e = $ ( h ) ;
var column _container = $e . find ( "div.overview" ) ;
var layout = column _container . attr ( "content-layout" ) , base _width = parseInt ( column _container . attr ( "base-width" ) ) , no _of _entries , temp _div = $ ( "<div></div>" ) , total _columns = 0 ;
switch ( layout ) {
case "simple" :
total _columns ++ ;
temp _div . append ( column _container . html ( ) ) ;
break ;
case "datalist" :
no _of _entries = ( typeof column _container . attr ( "per-column" ) != "undefined" ? column _container . attr ( "per-column" ) : 4 ) ;
2013-03-01 09:49:58 +00:00
var entries = column _container . find ( "li[item=true]" ) , x = 0 ;
2013-02-27 10:55:26 +00:00
entries . each ( function ( i , li ) {
if ( x == 0 ) {
2013-03-05 01:39:01 +00:00
column = $ ( "<div class='column type_datalist' style='width:" + base _width + "px'><ul></ul></div" ) ;
2013-02-27 10:55:26 +00:00
total _columns ++ ;
}
2013-03-01 09:49:58 +00:00
column . find ( "ul" ) . eq ( 0 ) . append ( li ) ;
2013-02-27 10:55:26 +00:00
x ++ ;
if ( x == no _of _entries ) {
x = 0 ;
temp _div . append ( column ) ;
}
} )
break ;
case "column" :
var entries = column _container . find ( "div[column=true]" ) , x = 0 , column ;
entries . each ( function ( i , ul ) {
2013-03-05 01:39:01 +00:00
column = $ ( "<div class='column type_column' style='width:" + base _width + "px'></div" ) ;
2013-02-27 10:55:26 +00:00
total _columns ++ ;
column . append ( ul ) ;
x ++ ;
temp _div . append ( column ) ;
} )
break ;
}
column _container . empty ( ) ;
$ ( "div[container=true]" ) . html ( h ) ;
$ ( "div[container=true] div.overview" ) . html ( temp _div . html ( ) ) ;
2013-03-05 03:04:04 +00:00
if ( isNaN ( base _width ) ) {
o . tinyscrollbar _ext ( {
main : ".tinycanvas" ,
} )
} else {
o . tinyscrollbar _ext ( {
main : ".tinycanvas" ,
fill : base _width * total _columns
} )
}
2013-02-27 10:55:26 +00:00
}
2012-11-28 10:11:49 +00:00
this . menu _item = function ( dom , customload , submenuitem ) {
if ( ! customload ) customload = false ;
var target = dom . attr ( "id" ) ;
var url = dom . attr ( "href" ) ;
o . data _method = dom . attr ( "callback-method" ) ;
if ( o . currenthtml != target ) {
if ( o . desktopData [ o . currentface ] == "undefined" )
o . desktopData [ o . currentface ] = "" ;
o . desktopData [ o . currentface ] = $ ( o . contentHolder ) . html ( ) ;
if ( customload ) {
$ ( o . contentHolder ) . html ( "<div id='content'></div>" ) ;
}
$ ( "#content" ) . hide ( "drop" , o . transitionTime , function ( ) {
o . currenthtml = target ;
o . currentface = target ;
var cache = false ;
if ( ! o . desktopData [ o . currentface ] ) {
$ ( o . contentHolder ) . empty ( ) . load ( url , function ( ) {
if ( typeof o . data _method != "undefined" ) {
if ( o . data _method != "" )
window . o [ o . data _method ] ( target , url , cache ) ;
}
2012-12-06 09:43:19 +00:00
try {
if ( ! customload )
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[load=true]" ) ) ;
else {
if ( submenuitem )
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[custom-load=" + submenuitem + "]" ) ) ;
else
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[load=true]" ) ) ;
}
} catch ( EX ) { }
} )
} else {
$ ( o . contentHolder ) . html ( o . desktopData [ o . currentface ] ) ;
try {
2012-11-28 10:11:49 +00:00
if ( ! customload )
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[load=true]" ) ) ;
else {
if ( submenuitem )
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[custom-load=" + submenuitem + "]" ) ) ;
else
o . sub _menu _item ( $ ( o . contentHolder ) . find ( "*[content-type=menu] a[load=true]" ) ) ;
}
2012-12-06 09:43:19 +00:00
} catch ( EX ) { }
2012-11-28 10:11:49 +00:00
cache = true ;
if ( typeof o . data _method != "undefined" ) {
if ( o . data _method != "" )
window . o [ o . data _method ] ( target , url , cache ) ;
}
}
} ) ;
}
}
2012-11-20 09:20:05 +00:00
this . sub _menu _item = function ( dom ) {
var sub _data _method = dom . attr ( 'callback-method' ) ;
if ( sub _data _method ) {
2013-02-27 10:55:26 +00:00
$ . ajax ( {
url : dom . attr ( "href" ) ,
type : "get" ,
success : function ( data ) {
o . layout _data ( data ) ;
if ( typeof o . data _method != "undefined" ) {
if ( o . data _method != "" ) {
if ( typeof sub _data _method != "undefined" ) {
if ( sub _data _method != "" ) {
window . o [ o . data _method ] [ sub _data _method ] ( ) ;
}
2012-11-20 09:20:05 +00:00
}
}
}
}
} )
2013-02-27 10:55:26 +00:00
// $("div[container=true]").load(dom.attr("href"),function(data){
// })
2012-11-20 09:20:05 +00:00
}
2013-03-04 09:44:55 +00:00
// $('*[content-type=menu] a').removeClass('thmc1 thmtxt active');
// dom.addClass('thmc1 thmtxt active');
o . highlight _sub _menu _item ( 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 ;
2012-11-20 09:20:05 +00:00
}
2012-11-15 03:18:55 +00:00
this . initializeDesktop = function ( target , url , cache ) { //this is for initializing main desktops that are sections and tiles
if ( ! target ) target = "desktop" ;
var bindHandlers = function ( ) { // this function will bind all the handlers in the desktop
2013-02-23 07:23:24 +00:00
// var groupWrapperWidth = 0;
// $("div#desktop .group").each(function(){groupWrapperWidth+=$(this).outerWidth(true);});
// var grps = new Array;
// $("div#desktop #group_wrapper").css("width",groupWrapperWidth);
// var first = true;
// $("div#desktop .g_col").sortable({
// connectWith: ".g_col",
// tolerance: 'pointer' ,
// revert: 300,
// containment: '#group_wrapper',
// helper: 'clone',
// stop:function(){
// first = true;
// var grpwidth = 0;
// for(i in grps){
// var grp = grps[i];
// if(grp.find(".element").length == 0){
// grp.animate({"width":"0px"},500,function(){$(this).remove();});
// grpwidth+=225;
// }
// }
// grps = [];
// $("#group_wrapper").width($("#group_wrapper").width()-grpwidth);
// },
// start:function(){
// $("#group_wrapper").find("div.group").each(function(i,par){
// var nextnumber = $(this).find("ul").length;
// $newcol = $('<ul class="g_col g_col_w2 col'+nextnumber+' ui-sortable">');
// $(this).append($newcol);
// $newcol.sortable({connectWith: '.g_col'});
// grps.push($newcol);
// $("#group_wrapper").width($("#group_wrapper").width()+225);
// });
// $("div#desktop .g_col").sortable('refresh');
// },
// update:function(){
// if(first){
// first = false;
// var newpostitions = new Array;
// var groupids = new Array;
// $.each($("div#desktop .group"),function(i,grp){
// var groupone = new Array;
// groupids.push($(grp).attr("id"));
// $ul = $(grp).find(".g_col .element");
// $.each($ul,function(){
// groupone.push($(this).attr("id"));
// })
// newpostitions.push(groupone);
// });
// $.post("/desktop/newpositions",{"sectionid":o.sectionId,"newpos":newpostitions,"groupids":groupids});
// }
// var s = $(this).find('.element').length;
// if(s!=0){
// last = $(this).find('.element').eq(s-1).position(),
// lasth = $(this).find('.element').eq(s-1).outerHeight(true);
// if ((last.top+lasth)>528){
// $(this).sortable('cancel');
// }
// }
// $("#group_wrapper ul").each(function(){
// if($(this).find('.element').length == 0)
// $(this).animate({"width":"0px"},500,function(){$(this).remove();});
// })
// },
// receive: function(event, ui){
// var s = $(this).find('.element').length,
// last = $(this).find('.element').eq(s-1).position(),
// lasth = $(this).find('.element').eq(s-1).outerHeight(true);
// if ((last.top+lasth)>528){
// $(ui.sender).sortable('cancel');
// }
// }
// });
2012-11-15 03:18:55 +00:00
o . tinyscrollbar _ext ( {
main : '.tinycanvas'
} )
o . simple _drop _down ( ) ;
2013-02-23 07:23:24 +00:00
// $("div#group_wrapper ul li[data-category=app]").click(function(){
// o.appWindow({
// title : $(this).find("a").attr("href"),
// appid : $(this).find("a").attr("href")
// });
// });
2012-11-15 03:18:55 +00:00
}
var loadTiles = function ( id ) { //This will load tiles for a specific desktop .. id of section has to be passed here to load tiles
2013-02-23 07:23:24 +00:00
$ ( "div#desktop div#group_wrapper" ) . empty ( ) ;
$ . getJSON ( "/desktop/getgroups" , { sectionid : id } , function ( tiles ) {
tiles . sort ( o . sortJSON ( "position" , true , parseInt ) ) ;
2012-11-15 03:18:55 +00:00
var tilecolors = o . themesettings . tilecolor ;
2013-02-26 03:47:05 +00:00
var totaltiles _in _a _row = 4 ;
2012-11-15 03:18:55 +00:00
var opacity = [ "op05" , "op06" , "op07" , "op08" , "op09" ] ;
2013-02-23 07:23:24 +00:00
var row = 1 , col = 1 , x = 1 , y = 1 ;
2013-02-26 03:47:05 +00:00
var $group = $ ( '<div class="grid gridster"></div>' ) ;
2013-02-23 07:23:24 +00:00
var $ul = $ ( '<ul style="margin: -6px 0 0 -6px;"></ul>' ) ;
2013-02-23 09:12:02 +00:00
2013-02-23 07:23:24 +00:00
$ . 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 ) ) ;
2012-11-15 03:18:55 +00:00
var tilecolor = tilecolors [ Math . floor ( Math . random ( ) * tilecolors . length ) ] ;
var op = opacity [ Math . floor ( Math . random ( ) * opacity . length ) ] ;
if ( tile . data _category == "app" )
2013-02-26 03:47:05 +00:00
$li = $ ( '<li data-id="' + tile . id + '" class="widget" 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;"><img src="' + o . iconPath + tile . data _content + '.png" alt="" ></a><h1 class="appname thmtxt">' + tile . title + '</h1></li>' ) ;
2012-11-15 03:18:55 +00:00
else
2013-02-26 03:47:05 +00:00
$li = $ ( '<li data-id="' + tile . id + '" class="widget" 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">Loading...</div><h1 class="appname thmtxt">' + tile . title + '</h1></li>' ) ;
2012-11-15 03:18:55 +00:00
2013-02-23 07:23:24 +00:00
row = row + y ;
$ul . append ( $li ) ;
2012-11-15 03:18:55 +00:00
} )
2013-02-23 07:23:24 +00:00
$group . append ( $ul ) ;
$ ( "div#desktop div#group_wrapper" ) . append ( $group ) ;
2013-02-26 03:47:05 +00:00
var dragged = null , draggable , lastpos = [ ] ;
o . gridvar = $ ( ".grid ul" ) . find ( "> li " ) . mousedown ( function ( e ) {
! draggable ;
dragged = $ ( this ) ;
lastpos = [ ] ;
$ ( ".grid ul li" ) . each ( function ( ) {
lastpos . push ( { "col" : $ ( this ) . attr ( "data-col" ) , "row" : $ ( this ) . attr ( "data-row" ) } )
} )
} ) . end ( )
. gridster ( {
widget _margins : [ 6 , 6 ] ,
widget _base _dimensions : [ 120 , 120 ] ,
2013-02-27 03:47:41 +00:00
// avoid_overlapped_widgets: true,
2013-02-26 03:47:05 +00:00
draggable : {
stop : function ( event , ui ) {
2013-02-27 03:47:41 +00:00
// var widgetchanged_col = dragged.attr("data-col");
// var total = 0;
// // console.log(widgetchanged.col);
// // console.log(o.gridvar.serialize_changed());
// $(".grid ul li[data-col="+widgetchanged_col+"]").each(function(i,w){
// var size = parseInt($(this).attr("data-sizey"));
// if(!isNaN(size)){
// total += size;
// }
// })
// // other way to calculate the overflow is by top > height of div
// if(total>totaltiles_in_a_row){
// revertbacktiles();
// }else{
// console.log(widgetchanged_col-1);
// $(".grid ul li[data-col="+(widgetchanged_col-1)+"]").each(function(i,w){
// var sizey = parseInt($(this).attr("data-sizey"));
// var sizex = parseInt($(this).attr("data-sizex"));
// if(sizey==1){
// sizex = sizex - 1;
// }
// console.log(sizex);
// if(!isNaN(sizex)){
// total += sizex;
// }
// })
// if(total>totaltiles_in_a_row){
// revertbacktiles();
// }
// }
2013-02-26 03:47:05 +00:00
2013-02-27 03:47:41 +00:00
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 ) {
console . log ( pos . top + $ ( this ) . height ( ) + 6 ) ;
if ( ( pos . top + $ ( this ) . height ( ) + 6 ) > 550 ) {
revertbacktiles ( ) ;
}
2013-02-26 03:47:05 +00:00
}
} )
2013-02-27 03:47:41 +00:00
}
2013-02-26 03:47:05 +00:00
}
}
} ) . data ( 'gridster' ) ;
var revertbacktiles = function ( ) {
lastpos . push ( { "col" : "" , "row" : "" } ) ;
$ ( ".grid ul li" ) . each ( function ( i ) {
$ ( this ) . attr ( { "data-col" : lastpos [ i ] . col , "data-row" : lastpos [ i ] . row } ) ;
} )
2013-02-27 03:47:41 +00:00
}
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 ( ) {
} )
break ;
}
2013-02-26 03:47:05 +00:00
}
2013-02-23 09:12:02 +00:00
bindHandlers ( ) ;
2013-02-23 07:23:24 +00:00
o . initializeWidgets ( ) ;
2012-11-15 03:18:55 +00:00
} )
2013-02-23 07:23:24 +00:00
// var tilecolors = o.themesettings.tilecolor;
// var opacity = ["op05","op06","op07","op08","op09"];
// $.each(groups,function(i,group){
// group.sort(o.sortJSON("position",true,parseInt));
// // var $group = $('<div class="group"><ul class="grp ui-sortable"></ul></div>'),
// var colindex = 0,
// $group = $('<div class="group"></div>'),
// $col = $('<ul class="g_col g_col_w2 col'+ colindex +'"/>'),
// $li,
// bdsum = 0,
// bwsum = 0,
// bhsum = 0,
// small = 0,
// single = false;
// $group.append($col);
// for(j=0;j<group.length;j++){
// var tile = group[j];
// var brick = tile.shape.replace(' holder_f','').split(' '),
// bw = parseInt(brick[0].substr(1)),
// bh = parseInt(brick[1].substr(1)),
// bd = bw * bh;
// if(bh==1 && bw==1){
// small++;
// }else if(bh!=1 && bw!=1){
// single = true;
// }
// if(small==2){
// small=0;
// single=false;
// }else if(small==1 && single==true){
// bh++;
// small=0;
// single=false;
// }else{small=0;single=false;}
// bdsum+=bd;
// bwsum+=bw;
// bhsum+=bh;
// if(bdsum > 8 || bhsum > 6){
// bdsum = 0, bhsum = 0, colindex++,j--;
// $group.append('<ul class="g_col g_col_w2 col'+ colindex +'"/>');
// }else{
// var tilecolor = tilecolors[Math.floor(Math.random()*tilecolors.length)];
// var op = opacity[Math.floor(Math.random()*opacity.length)];
// if(j==0)$group.attr("id",tile.group_id);
// if(tile.data_category == "app")
// $li = $('<li data-id="'+tile.id+'" class="element '+tile.shape+' hp vp" 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;"><img src="'+o.iconPath+tile.data_content+'.png" alt="" ></a><h1 class="appname thmtxt">'+tile.title+'</h1></li>');
// else
// $li = $('<li data-id="'+tile.id+'" class="element '+tile.shape+' hp vp" 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><h1 class="appname thmtxt">'+tile.title+'</h1><div class="appholder">Loading...</div></li>');
// $group.find('.col'+colindex).append($li);
// }
// }
// $("div#desktop div#group_wrapper").append($group);
// })
// })
2012-11-15 03:18:55 +00:00
}
var loadSectionList = function ( ) { //This will load the section list from the db
$ . getJSON ( "/desktop/getsectionlist" , { desktopid : o . desktopId } , function ( sectionlist ) {
o . sectionList = eval ( sectionlist ) ;
$ . each ( sectionlist , function ( i , section ) {
var tempstyle = "" ;
if ( i == 0 ) {
tempstyle = "style='display:none;'" ;
$ ( "#desktop #section_heading" ) . text ( section . name ) ;
}
2013-03-05 01:39:01 +00:00
$ ( "div#desktop ul#section_list" ) . append ( $ ( '<li class="section_name" ' + tempstyle + '><a class="admtxt hp w2 hh1" onclick="return false;" href="' + section . _id + '" >' + section . name + '</a></li>' ) ) ;
2012-11-15 03:18:55 +00:00
} )
bindSecondaryHandlers ( ) ;
} )
}
var bindSecondaryHandlers = function ( ) { //This is the secondary bind handler function which is used to bind events which are repeatative
$ ( "div#desktop ul#section_list li.section_name" ) . click ( function ( ) {
$ ( "div#desktop li.section_name" ) . show ( ) ;
$ ( this ) . hide ( ) ;
$ ( "#desktop #section_heading" ) . text ( $ ( this ) . text ( ) ) ;
o . sectionId = $ ( this ) . find ( "a" ) . attr ( "href" ) ;
loadTiles ( o . sectionId ) ;
} )
}
if ( cache ) {
bindHandlers ( ) ;
o . initializeWidgets ( ) ;
bindSecondaryHandlers ( ) ;
$ ( "div#desktop ul#section_list" ) . empty ( ) ;
$ . each ( o . sectionList , function ( i , section ) {
var tempstyle = "" ;
if ( section . _id == o . sectionId ) {
tempstyle = "style='display:none;'" ;
$ ( "div#desktop span#section_heading" ) . text ( section . name ) ;
}
2013-03-05 01:39:01 +00:00
$ ( "div#desktop ul#section_list" ) . append ( $ ( '<li class="section_name" ' + tempstyle + '><a class="admtxt hp w2 hh1" onclick="return false;" href="' + section . _id + '" >' + section . name + '</a></li>' ) ) ;
2012-11-15 03:18:55 +00:00
} )
bindSecondaryHandlers ( ) ;
} else {
loadTiles ( o . sectionId ) ;
loadSectionList ( ) ;
}
} ;
this . tempFunc = function ( th ) {
$ . post ( "desktop/twitter" , function ( ) { } ) ;
} ;
this . initializeAppSearch = 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 ) ;
// $("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 ( ) ) {
$ ( "div#app_manager .search_result" ) . empty ( ) ;
$ ( "div#app_manager #seperator" ) . hide ( ) ;
searchArray = $ ( "div#app_manager .element:containsi(" + $ ( this ) . val ( ) + ")" ) ;
if ( searchArray . length > 0 ) {
$ ( "div#app_manager #seperator" ) . show ( ) ;
searchArray . each ( function ( ) {
var $newelement = $ ( '<div class="search element w1 h1 hp vp thmc2" data-category="desktop">' + $ ( this ) . html ( ) + '</div>' ) ;
$ ( "div#app_manager .search_result" ) . prepend ( $newelement ) ;
} )
}
} else { $ ( "div#app_manager #seperator" ) . hide ( ) ; $ ( "div#app_manager .search_result" ) . empty ( ) ; }
} ) . blur ( function ( ) { $ ( this ) . val ( "Search" ) ; } ) ;
//for Alphabet sorting
$ ( "div#app_manager a#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 ) ;
break ;
case "descending" :
$ ( this ) . attr ( "href" , "ascending" ) . find ( ".thmtxt" ) . text ( "Alphabet [A-Z]" ) ;
allApps = $ ( "div#app_manager .group_search .element" ) . sort ( sortDescending ) ;
break ;
}
$ ( "div#app_manager #app_list" ) . empty ( ) ;
var count = 0 , colindex = 0 ;
$ ( '#app_list' ) . append ( '<div class="g_col g_col_w1 col' + colindex + '"/>' ) ;
$ . each ( allApps , function ( i , app ) {
count ++ ;
if ( count > 4 ) {
count = 1 , colindex += 1 ;
$ ( '#app_list' ) . append ( '<div class="g_col g_col_w1 col' + colindex + '"/>' ) ;
$ ( '.g_col.col' + colindex ) . append ( app ) ;
} else {
$ ( '.g_col.col' + colindex ) . append ( app ) ;
}
} )
return false ;
} )
o . tinyscrollbar _ext ( {
main : '.tinycanvas'
} )
}
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 ( '<div class="g_col g_col_w1 col' + colindex + '"/>' ) ;
$ . each ( appss , function ( i , apps ) {
$ . each ( apps , function ( i , app ) {
var $app ;
count ++ ;
$app = $ ( '<div class="element w1 h1 hp vp thmc2" data-category="' + app . data _category + '" data-content="' + app . data _content + '"><span class="tile thmc2"></span><a href="' + app . _id + '" class="appicon"><img src="' + o . iconPath + app . data _content + '.png" 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 + '"/>' ) ;
$ ( '.g_col.col' + colindex ) . append ( $app ) ;
} else {
$ ( '.g_col.col' + colindex ) . append ( $app ) ;
}
} )
} )
bindHandlers ( ) ;
} )
}
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 ;
$ ( "div#sections .group" ) . width ( 400 ) ;
$ ( "div#sections .group" ) . each ( function ( ) { groupWrapperWidth += $ ( this ) . width ( ) ; } )
groupWrapperWidth += 200 ;
groupWrapperHeight = $ ( ".group" ) . height ( ) + 20 ;
$ ( "#group_wrapper" ) . width ( groupWrapperWidth ) ;
$ ( "div#sections #group_wrapper .grp" ) . sortable ( {
start : function ( ) {
slabel = $ ( this ) . 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 ) ;
}
} ) ;
$ ( "div#sections .section_label li:not(:nth-child(1))" ) . droppable ( {
drop : function ( event , ui ) {
elementParent = ui . draggable . parents ( '.group' ) ;
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 ( ) {
$ ( this ) . appendTo ( $list ) . fadeIn ( ) ;
} ) ;
$ . 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'
} ) ;
2013-02-27 10:55:26 +00:00
2012-11-15 03:18:55 +00:00
} ;
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><ul class="grp" id="section' + ( z + 1 ) + '"></ul></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 ( "ul.section_grp" ) . append ( $lii ) ;
}
}
z ++ ;
2012-12-07 02:10:38 +00:00
2012-11-15 03:18:55 +00:00
$ ( "div#group_wrapper" ) . append ( $group ) ;
}
var yy = 1 , y = 0 ;
$ . each ( appss , function ( i , apps ) {
$ . each ( apps , function ( i , app ) {
$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">' + app . title + '</h1></li>' ) ;
2012-12-06 09:43:19 +00:00
2012-11-15 03:18:55 +00:00
$ ( "ul#section" + yy ) . append ( $li ) ;
} )
if ( y == 1 ) {
y = - 1 ;
yy ++ ;
}
y ++ ;
} )
bindHandlers ( ) ;
} )
}
if ( cache )
bindHandlers ( ) ;
else
loadApps ( ) ;
} ;
this . initializeSettings = function ( target , url , cache ) { //this is to initialize setting page
2012-12-03 04:23:56 +00:00
this . initializeSettings . account = function ( data ) { }
this . initializeSettings . passwordUpdate = function ( data ) {
if ( data . success ) {
o . notify ( data . msg , "success" ) ;
} else {
o . notify ( data . msg , "alert" ) ;
}
}
2012-11-28 10:11:49 +00:00
2012-11-15 03:18:55 +00:00
this . initializeSettings . sections = function ( ) { // this load section page in setting page
var bindHandlers = function ( ) { // binding handlers in section page
$ ( '.tinycanvas' ) . each ( function ( ) {
var h = $ ( this ) . parent ( ) . height ( ) ,
sh = $ ( this ) . siblings ( '.s_tab' ) . height ( ) ;
o . tinyscrollbar _ext ( {
main : $ ( this ) ,
height : h - sh - 24 ,
} , {
axis : "y"
} )
} ) ;
$ ( "a#name_save_btn" ) . click ( function ( ) {
var desktopnm = new Array ;
$ ( "#desktop_names input" ) . each ( function ( ) {
desktopnm . push ( $ ( this ) . val ( ) ) ;
} )
$ . post ( "/desktop/save_desktop_settings" , { "save" : "desktopnames" , "desktopid" : o . desktopId , "desktopnms" : desktopnm } , function ( result , status ) {
if ( result [ 0 ] . success == "true" ) {
o . notify ( "Names Saved!!" , "success" , 2 ) ;
} else
o . notify ( "Name saving failed!!" , "imp" , 2 ) ;
} )
$ . each ( o . sectionList , function ( i , sec ) {
sec . name = desktopnm [ i ] ;
} )
} )
}
$ . getJSON ( "/desktop/get_desktop_settings" , { "get" : "sectionnames" , "desktopid" : o . desktopId } , function ( sectionnames ) {
$ ( "#desktop_names input" ) . each ( function ( i ) {
$ ( this ) . val ( sectionnames [ i ] ) ;
} )
bindHandlers ( ) ;
2012-11-17 19:07:50 +00:00
} )
2012-11-15 03:18:55 +00:00
}
this . initializeSettings . themes = function ( ) { // this opens themes page in setting page
var bindHandlers = function ( ) { // binding handlers in themes page
// live change theme
$ ( ".theme_list > .ssl_item" ) . click ( function ( ) {
o . changeTheme ( $ ( this ) . attr ( "id" ) ) ;
// $(".theme_list > li").removeClass('thmc1').data('clicked',null).find('.theme_name').removeClass('thmtxt');
// $(this).addClass('thmc1').data('clicked',true).find('.theme_name').addClass('thmtxt');
$ . post ( "/desktop/save_desktop_settings" , { "save" : "theme" , "desktopid" : o . desktopId , "theme" : $ ( this ) . attr ( "id" ) } , function ( result , status ) {
if ( result [ 0 ] . success == "true" ) {
o . notify ( "Theme Saved!!" , "success" , 2 ) ;
loadthmc ( ) ;
} else {
o . notify ( "Theme saving failed!!" , "imp" , 2 ) ;
}
} ) ;
} ) ;
$ ( '.tinycanvas' ) . each ( function ( ) {
var h = $ ( this ) . parent ( ) . height ( ) ,
sh = $ ( this ) . siblings ( '.s_tab' ) . height ( ) ;
o . tinyscrollbar _ext ( {
main : $ ( this ) ,
height : h - sh - 24
} , {
axis : 'y'
} )
} ) ;
o . single _select ( ) ;
o . simple _tab ( ) ;
$ ( '.color-picker' ) . miniColors ( {
change : function ( hex ) {
var changewhat = $ ( this ) . attr ( "for" ) ;
var previewarea = $ ( "#theme_preview_area" ) ;
switch ( changewhat ) {
case "thmtxt" :
case "thmtxth" :
previewarea . find ( "." + changewhat ) . css ( { "color" : hex } ) ;
break ;
case "g_sep" :
previewarea . find ( "." + changewhat ) . css ( { "border-color" : hex } ) ;
break ;
case "background" :
previewarea . css ( { "background-color" : hex } ) ;
break ;
default :
previewarea . find ( "." + changewhat ) . css ( { "background-color" : hex } ) ;
break ;
}
}
} ) ;
$ ( "a#theme_submit" ) . click ( function ( ) {
o . confirm ( {
message : "Are you sure that you want to save custom theme?" ,
highlighted : 1 ,
buttons : [ "Yes" , "No" ]
} , function ( reply ) {
if ( reply ) {
var colors = new Array ;
$ ( "#color_input input" ) . each ( function ( ) {
colors [ $ ( this ) . attr ( "for" ) ] = $ ( this ) . val ( ) ;
} )
var dhtml = "<style> .thmc1 { background: " + colors [ 'thmc1' ] + "; }.thmc2 { background: " + colors [ 'thmc2' ] + "; }.thmc3 { background: #FFFFFF; }.thmc4 { background: " + colors [ 'thmc4' ] + "; }.thmtxt { color: " + colors [ 'thmtxt' ] + "; }.thmtxth { color: " + colors [ 'thmtxth' ] + "; }.g_sep { border-color: " + colors [ 'g_sep' ] + ";} body{background-color: " + colors [ 'background' ] + "} </style>" ;
$ ( "head" ) . find ( "#dyn_css" ) . remove ( ) ;
$ ( "head" ) . append ( dhtml ) ;
$ . post ( "/desktop/save_desktop_settings" , { "save" : "customtheme" , "desktopid" : o . desktopId , "theme" : dhtml } , function ( result , status ) {
if ( result [ 0 ] . success == "true" )
o . notify ( "Custom theme saved!!" , "success" , 2 ) ;
else
o . notify ( "Custom theme saving failed!!" , "imp" , 2 ) ;
} )
}
} )
} ) ;
$ ( ".stock_wallpaper .ssl_item" ) . click ( function ( ) {
var wallpapername = $ ( this ) . find ( "img" ) . attr ( "alt" ) ;
o . changeWallpaper ( wallpapername ) ;
} )
}
var loadthmc = function ( ) { // a general function to load the themecolor in color selector
$ ( '.color-picker' ) . each ( function ( ) {
var cc = $ ( this ) . attr ( 'for' ) , hex , color ;
switch ( cc ) {
case 'thmtxt' :
case 'thmtxth' :
hex = 'color' ;
break ;
case 'g_sep' :
hex = 'border-left-color' ;
break ;
default :
hex = 'background-color' ;
break ;
}
if ( cc == "background" )
color = $ ( "#theme_preview_area" ) . css ( "background-color" ) ;
else
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" ) ;
bindHandlers ( ) ;
loadthmc ( ) ;
} )
}
this . initializeSettings . connection = function ( ) {
var bindHandlers = function ( ) {
$ ( "#connection_setting ul a" ) . click ( function ( ) {
var what = $ ( this ) . attr ( "for" ) ,
type = $ ( this ) . attr ( "href" ) ,
$ul = $ ( "#" + type + "_connection" ) ,
usernm = $ul . find ( "input[type=text]" ) . val ( ) ,
pwd = $ul . find ( "input[type=password]" ) . val ( ) ;
switch ( what ) {
case "save" :
case "new" :
if ( usernm != "" && pwd != "" ) {
$ul . find ( "input[type=text]" ) . replaceWith ( "<div class='c_info usrnm'>" + usernm + "</div>" )
$ul . find ( "input[type=password]" ) . replaceWith ( "<div class='c_info pwd'>••••••</div>" ) ;
$ ( this ) . text ( "Edit" ) . attr ( "for" , "edit" ) ;
$ ( this ) . parent ( ) . find ( "a[for=delete]" ) . show ( ) ;
$ul . find ( "span.c_status" ) . text ( "Connected" ) . addClass ( "c_status_on" ) ;
if ( what == "save" )
what = "edit" ;
saveaccount ( usernm , pwd , type , what ) ;
}
break ;
case "edit" :
var un = $ul . find ( "div.usrnm" ) . text ( ) ;
$ul . find ( "div.usrnm" ) . replaceWith ( '<input type="text" value="' + un + '">' ) ;
$ul . find ( "div.pwd" ) . replaceWith ( '<input type="password">' ) ;
$ ( this ) . text ( "Save" ) . attr ( "for" , "save" ) ;
break ;
case "delete" :
var $this = $ ( this ) ;
o . confirm ( {
message : "Are you sure that you want to remove this account?" ,
buttons : [ "Yes" , "No" ] ,
highlighted : 2
} , function ( reply ) {
if ( reply ) {
$this . hide ( ) ;
$ul . find ( "div.usrnm" ) . replaceWith ( '<input type="text">' ) ;
$ul . find ( "div.pwd" ) . replaceWith ( '<input type="password">' ) ;
$ul . find ( "span.c_status" ) . text ( "No Connection" ) . removeClass ( "c_status_on" ) ;
$this . parent ( ) . find ( "a[for=edit]" ) . text ( "Connect" ) . attr ( "for" , "new" ) ;
saveaccount ( "" , "" , type , what ) ;
}
} )
break ;
}
} )
var $conlist = $ ( '.s_form' ) ,
conlist _w = $conlist . length * $conlist . outerWidth ( true ) + ( $conlist . length - 1 ) * 25 ;
$ ( '#connection_setting' ) . width ( conlist _w ) ;
o . tinyscrollbar _ext ( {
main : '.tinycanvas'
} )
}
var saveaccount = function ( usernm , pwd , type , what ) {
$ . post ( "/desktop/save_account_info" , { email : usernm , password : pwd , account : type , dowhat : what } , function ( result ) {
if ( what != "delete" ) {
if ( result [ 0 ] . success == "true" )
o . notify ( type + " account connected!!" , "success" , 2 ) ;
else
o . notify ( type + " account connection failed!!" , "imp" , 2 ) ;
} else {
if ( result [ 0 ] . success == "true" )
o . notify ( type + " account removed!!" , "success" , 2 ) ;
else
o . notify ( type + " account removal failed!!" , "imp" , 2 ) ;
}
} )
}
$ . 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'>••••••</div>" ) ;
$ul . find ( "a[for=new]" ) . text ( "Edit" ) . attr ( "for" , "edit" ) ;
$ul . find ( "a[for=delete]" ) . show ( ) ;
$ul . find ( "span.c_status" ) . text ( "Connected" ) . addClass ( "c_status_on" ) ;
} )
bindHandlers ( ) ;
} )
}
} ;
this . initializeOrbitTimeline = function ( target , url , cache ) {
var timeline = new orbitTimeline ( "#timeline" ) ;
timeline . initialize ( ) ;
} ;
2012-11-21 07:35:23 +00:00
2012-11-15 03:18:55 +00:00
this . initializeAppstore = function ( target , url , cache ) {
this . initializeAppstore . widgets = function ( ) {
var bindHandlers = function ( ) {
$ ( "#widget_list a" ) . click ( function ( ) {
var sectionid = $ ( this ) . attr ( "for" ) ;
var widgetid = $ ( this ) . parent ( ) . parent ( ) . attr ( "for" ) ;
switch ( $ ( this ) . attr ( "href" ) ) {
case "addthis" :
$this = $ ( this ) ;
o . confirm ( {
message : "Are you sure you want to add this widget?" ,
buttons : [ 'Yes' , 'No' ] ,
highlighted : 1
} , function ( reply ) {
if ( reply ) {
$ . post ( "desktop_appstore/widgets_settings" , { section : sectionid , widget : widgetid , what : "add" } , function ( result ) {
if ( result [ 0 ] . success ) {
$this . attr ( "href" , "removethis" ) ;
$targetDom = $this . parent ( ) . parent ( ) . find ( "div.status" ) ;
$parentDom = $this . parent ( ) ;
if ( $targetDom . find ( "a" ) . length == 0 )
$targetDom . html ( "Status : Installed on" ) ;
$targetDom . append ( " " ) . append ( $this ) ;
if ( $parentDom . find ( "a" ) . length == 0 )
$parentDom . empty ( ) ;
o . desktopData [ "home" ] = "" ;
o . notify ( "Widget added." , "success" , 2 ) ;
} else {
o . notify ( result [ 0 ] . error , "imp" , 2 ) ;
}
} )
}
} )
break ;
case "removethis" :
$this = $ ( this ) ;
o . confirm ( {
message : "Are you sure you want to remove this widget?" ,
buttons : [ 'Yes' , 'No' ] ,
highlighted : 2
} , function ( reply ) {
if ( reply ) {
$ . post ( "desktop_appstore/widgets_settings" , { section : sectionid , widget : widgetid , what : "remove" } , function ( result ) {
if ( result [ 0 ] . success ) {
$this . attr ( "href" , "addthis" ) ;
$targetDom = $this . parent ( ) . parent ( ) . find ( "div.not_status" ) ;
$parentDom = $this . parent ( ) ;
if ( $targetDom . html ( ) == "" )
$targetDom . html ( "Install on" ) ;
$targetDom . append ( " " ) . append ( $this ) ;
if ( $parentDom . find ( "a" ) . length == 0 )
$parentDom . html ( "Status : Downloaded" ) ;
o . desktopData [ "home" ] = "" ;
o . notify ( "Widget removed." , "success" , 2 ) ;
}
} )
}
} )
break ;
}
return false ;
} ) ;
o . tinyscrollbar _ext ( {
main : '.tinycanvas' ,
fill : '.list_t'
} )
}
$ . getJSON ( "/desktop_appstore/getuserwidgets" , function ( userwidgets ) {
var column = $ ( '<div class="g_col list_t"><ul></ul></div>' ) ,
counter = 1 ,
li ;
$ . each ( userwidgets , function ( i , widge ) {
if ( ! widge . status ) widge . status = "Downloaded" ;
var brick = widge . shape . split ( ' ' ) ,
bw = parseInt ( brick [ 0 ] . substr ( 1 ) ) ,
bh = parseInt ( brick [ 1 ] . substr ( 1 ) ) ,
shp = bw + " X " + bh ;
li = $ ( '<li class="list_t_item" for="' + widge . _id + '"><div class="list_t_title">' + widge . name + '</div><div class="list_t_des">Author : ' + widge . author + '</div><div class="list_t_des">Shape : ' + shp + '</div><div class="list_t_des status">Status : ' + widge . status + '</div><div class="list_t_des not_status"></div></li>' ) ;
var cur _section _names = new Array ( ) ;
var section _names = new Array ( ) ;
var section _links = new Array ( ) ;
if ( widge . section ) {
var s _name _list = "" ;
$ . each ( widge . section , function ( x , sec ) {
$ . each ( o . sectionList , function ( j , s ) {
if ( s . _id == sec ) {
cur _section _names . push ( s . name ) ;
s _name _list += "<a href='removethis' for='" + s . _id + "' style='text-decoration:underline;'>" + s . name + "</a> " ;
}
} )
} )
var section _names = o . getArrayfromJson ( o . sectionList , "name" ) ;
var section _links = o . getArrayfromJson ( o . sectionList , "_id" ) ;
var s _name _list _not = "" ;
$ . each ( section _names , function ( j , sec _name ) {
if ( $ . inArray ( sec _name , cur _section _names ) == - 1 ) {
var sec _link = section _links [ j ] ;
s _name _list _not += "<a href='addthis' for='" + sec _link + "' style='text-decoration:underline;'>" + sec _name + "</a> " ;
}
} )
li . find ( "div.status" ) . html ( "Status : Installed on " + s _name _list ) ;
if ( s _name _list _not )
li . find ( "div.not_status" ) . html ( "Install on " + s _name _list _not ) ;
} else {
li . find ( "div.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 div#widget_list" ) . append ( column ) ;
column = $ ( '<div class="g_col list_t" style="width:350px;"><ul></ul></div>' ) ;
}
counter ++ ;
} )
$ ( "#apps_store div#widget_list" ) . append ( column ) ;
} )
}
this . initializeAppstore . onlinestore = function ( ) {
var bindHandlers = function ( ) {
}
bindHandlers ( ) ;
}
this . initializeAppstore . onlinestore ( ) ;
bindHandlers ( ) ;
}
2012-12-27 10:25:54 +00:00
2012-11-15 03:18:55 +00:00
this . loadWallpaper = function ( wallpaper ) { // this is to load new wallpaper
if ( ! wallpaper ) wallpapernm = o . themesettings . background ; else wallpapernm = wallpaper
var ww = $ ( window ) . width ( ) ;
var wh = $ ( window ) . height ( ) ;
if ( ! wallpaper )
$ ( "img#thmbackground" ) . attr ( { "src" : "/" + o . themefolder + "/" + o . theme + "/images/" + wallpapernm , "width" : ww } ) . css ( { "position" : "fixed" , "top" : "0px" , "left" : "0px" , "z-index" : "-1" , "height" : "auto" } ) ;
else
$ ( "img#thmbackground" ) . attr ( { "src" : o . wallpaperPath + wallpaper , "width" : ww } ) . css ( { "position" : "fixed" , "top" : "0px" , "left" : "0px" , "z-index" : "-1" , "height" : "auto" } ) ;
$ ( "div#bgover" ) . css ( { "position" : "fixed" , "top" : "0px" , "left" : "0px" , "z-index" : "-1" , "width" : ww , "height" : wh } ) ;
} ;
this . loadIconCache = function ( ) { // this function load or refresh icon cache for the theme
var imgs = $ ( "ul.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 . initializeWidgets = function ( ) { // this function will initialize all the widgets in the desktop
2013-02-26 03:47:05 +00:00
var elements = $ ( "#group_wrapper li.widget" ) ;
2012-11-15 03:18:55 +00:00
$ . each ( elements , function ( ) {
var widget = $ ( this ) ;
if ( widget . attr ( "data-category" ) == "widget" ) {
var widgename = widget . attr ( "data-content" ) ;
$ . getScript ( widget . attr ( "js-link" ) , function ( ) {
widget . find ( "div.appholder" ) . load ( widget . attr ( "data-content" ) ) ;
} ) ;
$ ( this ) . find ( "div.appholder" ) . append ( '<link rel="stylesheet" id="dyn_css" href="' + widget . attr ( "css-link" ) + '" type="text/css" />' )
}
} )
} ;
this . saveWallpaper = function ( wallpaper ) { // this function saves wallpaper in db
$ . post ( "/desktop/save_desktop_settings" , { "save" : "wallpaper" , "wallpapernm" : wallpaper , "desktopid" : o . desktopId } , function ( result ) {
if ( result [ 0 ] . success == "true" )
o . notify ( "Wallpaper saved!!" , "success" , 2 ) ;
else
o . notify ( "Wallpaper saving failed!!" , "imp" , 2 ) ;
} )
} ;
this . tinyscrollbar _ext = function ( target , tinysettings ) {
//main : dom on which tinyscrollbar has to be applied
//fill : number or object for width
//height : height for the target element
//tinysettings : tinyscrollbar settings
if ( typeof target . main == "undefined" ) {
o . notify ( 'tinyscrollbar: target undefined' , 'imp' , 2 ) ;
return ;
} else {
target . main = $ ( target . main ) ;
}
//var target.fill = $
var tinysettings = ( typeof tinysettings == 'undefined' ) ? { "axis" : "x" } : tinysettings ;
var count , baseWidth , fillArray , pxs ;
2013-02-27 10:55:26 +00:00
2012-11-15 03:18:55 +00:00
if ( typeof target . fill == 'string' ) {
2013-03-05 01:39:01 +00:00
// fillArray = target.main.find(target.fill);
// count = fillArray.length;
// baseWidth = $(target.fill).eq(1).outerWidth(true);
// target.main.find('.overview').width( baseWidth * count);
2012-11-15 03:18:55 +00:00
} else if ( typeof target . fill == 'number' ) {
2013-02-27 10:55:26 +00:00
2012-11-15 03:18:55 +00:00
target . main . find ( '.overview' ) . width ( target . fill ) ;
} else if ( typeof target . fill == 'undefined' ) {
} else {
o . notify ( 'tinyscrollbar: setting width failed' , 'imp' , 2 ) ;
}
2013-03-05 01:39:01 +00:00
if ( target . height ) {
2012-11-15 03:18:55 +00:00
target . main . height ( target . height ) ;
2013-03-05 01:39:01 +00:00
}
2012-11-15 03:18:55 +00:00
target . main
. tinyscrollbar ( tinysettings )
2013-03-05 01:39:01 +00:00
. find ( '.scrollbar' ) ;
2012-11-15 03:18:55 +00:00
} ;
this . simple _drop _down = function ( ) {
// simple dropdown menu
if ( ! $ ( '.sdm' ) . children ( '.sdm_o' ) . length > 0 ) {
return ;
} else {
$ ( '.sdm' ) . hover ( function ( ) {
$ ( this ) . stop ( 1 , 1 ) . toggleClass ( 'thmc2 thmtxt' ) ;
} , function ( ) {
$ ( this ) . stop ( 1 , 1 ) . toggleClass ( 'thmc2 thmtxt' ) ;
} ) ;
$ ( '.sdm' ) . find ( 'a' ) . hover ( function ( ) {
$ ( this ) . stop ( 1 , 1 ) . toggleClass ( 'thmc2 thmtxt' ) ;
} , function ( ) {
$ ( this ) . stop ( 1 , 1 ) . toggleClass ( 'thmc2 thmtxt' ) ;
} ) ;
}
} ;
this . simple _tab = function ( ) {
// tab
var $anchor = $ ( '.s_tab a[href*=#]' ) ,
$tabcontent = $ ( '.st_c' ) ;
$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 . single _select = function ( ) {
// single select
$ ( '.ssl .ssl_item' ) . each ( function ( ) {
var $des = $ ( this ) . find ( '.ssl_des' ) ;
$ ( this ) . on ( {
click : function ( ) {
$ ( this ) . switchClass ( '' , 'thmc1 active' , 0 ) ;
$ ( this ) . siblings ( '.thmc1' ) . switchClass ( 'thmc1 active' , '' , 0 ) ;
if ( $des . length > 0 ) {
$ ( this ) . parents ( '.ssl' ) . find ( '.ssl_des' ) . removeClass ( 'thmtxt' ) ;
$des . addClass ( 'thmtxt' ) ;
}
} ,
mouseenter : function ( ) {
if ( ! $ ( this ) . hasClass ( 'active' ) ) {
$ ( this ) . addClass ( 'thmc1' ) ;
if ( $des . length > 0 ) {
$des . addClass ( 'thmtxt' ) ;
}
}
} ,
mouseleave : function ( ) {
if ( ! $ ( this ) . hasClass ( 'active' ) ) {
$ ( this ) . removeClass ( 'thmc1' ) ;
if ( $des . length > 0 ) {
$des . removeClass ( 'thmtxt' ) ;
}
}
}
} ) ;
} ) ;
}
o . initialize ( ) ;
2012-07-04 09:55:30 +00:00
}
orbitDesktop . prototype . themefolder = "themes" ;
orbitDesktop . prototype . widgetfolder = "desktop_widgets" ;
orbitDesktop . prototype . desktopId = "1" ;
orbitDesktop . prototype . notifyImgPath = "temp" ;
orbitDesktop . prototype . wallpaperPath = "/assets/stockBackground/" ;
orbitDesktop . prototype . iconPath = "/assets/icons/" ;
orbitDesktop . prototype . currentLanguage = "en" ;
orbitDesktop . prototype . currentUsername = "Harry" ;
var uselessfunction = function ( ) {
2012-11-15 03:18:55 +00:00
$ . post ( "/desktop/temp_func" , { sectionid : "4f83e7bbbd98eb041600001d" } ) ;
2012-07-05 08:42:00 +00:00
}
2012-11-05 15:04:54 +00:00