Merge remote-tracking branch 'origin/desktop' into desktop

* origin/desktop:
  Remove Gemfile.lock
  sort conference and type
  add conferene list order function
  css minor changes.
  gridster, url code fixed, views removed.
  Fix selection of sub_menu for widget (the value wasn't set)
  Fix bug in widget selection
  css minor changes.
  Fix public_r_tag selection
  gridster, url code fixed, views removed.
This commit is contained in:
Rueshyna committed 2013-02-26 17:02:01 +08:00
commit fb931b0a4a
15 files changed
+3642 -289

No files matched your search

+1
View File
@@ -14,4 +14,5 @@
//= require orbitdesktopAPI
//= require orbitTimeline
//= require orbitdesktop
//= require jquery.gridster
//= require desktop/books_pages
File diff suppressed because it is too large. Load diff
+169 -133
View File
@@ -39,6 +39,7 @@ var orbitDesktop = function(dom){
this.tp = "";
this.sectionList;
this.data_method;
this.gridvar = null;
this.initialize = function(){
var theme = o.theme;
@@ -328,156 +329,191 @@ var orbitDesktop = function(dom){
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
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');
}
}
});
// 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');
// }
// }
// });
o.tinyscrollbar_ext({
main: '.tinycanvas'
})
o.simple_drop_down();
$("div#group_wrapper ul li[data-category=app]").click(function(){
o.appWindow({
title : $(this).find("a").attr("href"),
appid : $(this).find("a").attr("href")
});
});
// $("div#group_wrapper ul li[data-category=app]").click(function(){
// o.appWindow({
// title : $(this).find("a").attr("href"),
// appid : $(this).find("a").attr("href")
// });
// });
}
var loadTiles = function(id){ //This will load tiles for a specific desktop .. id of section has to be passed here to load tiles
$("div#desktop div#group_wrapper").empty();
$.getJSON("/desktop/getgroups",{sectionid:id},function(groups){
$("div#desktop div#group_wrapper").empty();
$.getJSON("/desktop/getgroups",{sectionid:id},function(tiles){
tiles.sort(o.sortJSON("position",true,parseInt));
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 row = 1,col = 1,x = 1,y = 1;
var $group = $('<div class="grid"></div>');
var $ul = $('<ul style="margin: -6px 0 0 -6px;"></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));
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>');
$li = $('<li data-id="'+tile.id+'" class="element" 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>');
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>');
$li = $('<li data-id="'+tile.id+'" class="element" 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>');
$group.find('.col'+colindex).append($li);
}
}
$("div#desktop div#group_wrapper").append($group);
row = row + y;
$ul.append($li);
})
bindHandlers();
o.initializeWidgets();
$group.append($ul);
console.log($group);
$("div#desktop div#group_wrapper").append($group);
o.gridvar = $(".grid ul").gridster({
widget_margins: [6, 6],
widget_base_dimensions: [120, 120]
});
bindHandlers();
o.initializeWidgets();
})
// 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);
// })
// })
}
var loadSectionList = function(){ //This will load the section list from the db
$.getJSON("/desktop/getsectionlist",{desktopid:o.desktopId},function(sectionlist){
+1 -1
View File
@@ -39,7 +39,7 @@ $("#widget_list select,#frontend_list select").live('change', function() {
});
$("#tag_list select").live('change', function() {
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_r_tag_options');
$.getScript($(this).attr('rel') + '?type=' + $(this).val());
});
$("select.widget_field_select").live('change', function() {
+1
View File
@@ -12,5 +12,6 @@
*= require desktopmedia
*= require orbitTimeline
*= require orbit-bar
*= require jquery.gridster
*= require icons
*/
+3 -3
View File
@@ -388,9 +388,9 @@ a:focus { outline: none; }
.hp { padding-left: 12px; padding-right: 12px; }
.vp { padding-top: 12px; padding-bottom: 12px; }
.element {
margin: 0 12px 12px 0;
float: left;
position: relative;
/*margin: 0 12px 12px 0;
float: left;*/
position: absolute;
/*display:inline-block;*/
}
.group{
+64
View File
@@ -0,0 +1,64 @@
/*! gridster.js - v0.1.0 - 2012-10-20
* http://gridster.net/
* Copyright (c) 2012 ducksboard; Licensed MIT */
.gridster {
position:relative;
}
.gridster > * {
margin: 0 auto;
-webkit-transition: height .4s;
-moz-transition: height .4s;
-o-transition: height .4s;
-ms-transition: height .4s;
transition: height .4s;
}
.gridster .gs_w{
z-index: 2;
position: absolute;
}
.ready .gs_w:not(.preview-holder) {
-webkit-transition: opacity .3s, left .3s, top .3s;
-moz-transition: opacity .3s, left .3s, top .3s;
-o-transition: opacity .3s, left .3s, top .3s;
transition: opacity .3s, left .3s, top .3s;
}
.ready .gs_w:not(.preview-holder) {
-webkit-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
-moz-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
-o-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
}
.gridster .preview-holder {
z-index: 1;
position: absolute;
background-color: #fff;
border-color: #fff;
opacity: 0.3;
}
.gridster .player-revert {
z-index: 10!important;
-webkit-transition: left .3s, top .3s!important;
-moz-transition: left .3s, top .3s!important;
-o-transition: left .3s, top .3s!important;
transition: left .3s, top .3s!important;
}
.gridster .dragging {
z-index: 10!important;
-webkit-transition: all 0s !important;
-moz-transition: all 0s !important;
-o-transition: all 0s !important;
transition: all 0s !important;
}
/* Uncomment this if you set helper : "clone" in draggable options */
/*.gridster .player {
opacity:0;
}*/
@@ -55,7 +55,7 @@ class Admin::PagePartsController < ApplicationController
def update
@part = PagePart.find(params[:id])
params[:page_part][:widget_field] = params[:page_part][:widget_field].zip( params[:page_part][:widget_field_type],params[:page_part][:widget_field_is_link] )
params[:page_part][:widget_field] = params[:page_part][:widget_field].zip( params[:page_part][:widget_field_type],params[:page_part][:widget_field_is_link] ) if params[:page_part][:widget_field]
params[:page_part][:widget_field_type] = nil
params[:page_part][:widget_field_is_link] = nil
@@ -126,7 +126,8 @@ class Admin::PagePartsController < ApplicationController
end
def reload_r_tag_options
@r_tag = (ModuleApp.find(params[:id]) rescue nil) || params[:id]
@part = PagePart.find params[:id]
@r_tag = params[:type]
@tag_objects = @r_tag.classify.constantize.all rescue nil
respond_to do |format|
format.js {}
+2 -2
View File
@@ -125,9 +125,9 @@ class DesktopController< ApplicationController
data_content = tile.data_content
title = tile.title
end
a << {"id"=>tile.id,"data_category"=>tile.data_category,"data_content"=>data_content,"js"=>jsfile,"css"=>cssfile,"shape"=>shape,"position"=>tile.position,"title"=>title}
gr << {"id"=>tile.id,"data_category"=>tile.data_category,"data_content"=>data_content,"js"=>jsfile,"css"=>cssfile,"shape"=>shape,"position"=>tile.position,"title"=>title}
end
gr << a
# gr << a
end
render :json =>gr.to_json
end
@@ -1,5 +1,5 @@
<span id='tag_list'>
<%= f.select :public_r_tag, LIST[:public_r_tags].collect{|tag| [t(tag), tag]}, {:selected => @r_tag}, {:rel => admin_page_parts_path} %>
<%= f.select :public_r_tag, LIST[:public_r_tags].collect{|tag| [t(tag), tag]}, {:selected => @r_tag}, {:rel => reload_r_tag_options_admin_page_part_path(@part)} %>
</span>
<span id='name_list'>
@@ -1,5 +1,8 @@
<% if @r_tag.eql?('sub_menu') %>
// $('#name_list select').html("<%= j options_for_select(t(:horizontal) => :horizontal, t(:vertical) => :vertical) %>")
$('#name_list').html("<%= j hidden_field_tag 'page_part[public_r_tag_object_id]', @part.page.id %>")
<% elsif @tag_objects %>
$('#name_list').html("<%= j select_tag 'page_part[public_r_tag_object_id]', options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %>")
<% else %>
$('#name_list select').html("<%= j options_from_collection_for_select(@tag_objects, :id, :title) %>")
$('#name_list').empty()
<% end %>