solved desktop conflict during cherry pick

This commit is contained in:
Harry Bomrah 2013-05-02 16:45:33 +08:00 committed by Matt K. Fu
parent 1a7a199504
commit 7e6433f71c
9 changed files with 198 additions and 36 deletions

View File

@ -612,6 +612,7 @@ var orbitDesktop = function(dom){
}
}
this.sub_menu_item = function(dom,data){
console.log(dom)
var sub_data_method = dom.attr('callback-method');
if(sub_data_method){
o.lastlink = dom.attr("href");
@ -819,6 +820,7 @@ var orbitDesktop = function(dom){
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);
@ -826,7 +828,12 @@ var orbitDesktop = function(dom){
// $("div#app_manager .group_search").css("width",$(window).width()-200);
//for textbox search
var $elements = $("#app_manager .element"),
$result = $("#app_manager .search_result");
$result = $("#app_manager .search_result"),
$appinfo = $("#app_info"),
$apptitle = $("#app_info .app_info_name"),
$appicon = $("#app_info .app_info_icon")
$appinfolist = $("#app_info .app_info_list");
$("#app_manager #searchbox")
.focus(function(){
$(this).val("");
@ -849,8 +856,8 @@ var orbitDesktop = function(dom){
if(i == 1){
$column = $('<div class="g_col g_col_w1"></div>');
}
var $newelement = $('<div class="element w1 h1 thmc2">'+$(this).html()+'</div>');
$column.append($newelement);
$column.append($(this));
$(this).show();
if(i == 4){
$result.append($column);
i = 0;
@ -859,6 +866,7 @@ var orbitDesktop = function(dom){
if(i != 0){
$result.append($column);
}
elementSetting();
} else {
$result.text("No Result Found.");
}
@ -877,11 +885,11 @@ var orbitDesktop = function(dom){
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();
@ -897,25 +905,85 @@ var orbitDesktop = function(dom){
$('.g_col.col'+ colindex).append(app);
}
});
elementSetting();
return false;
});
$(window).on('keydown', function(){
if($('#searchbox').val() == 'Search'){
$('#searchbox').focus();
var elementSetting = function(){// for element setting load
$(".element").click(function(){
$e = $(this);
$apptitle.text($e.data("title"));
$appicon.attr("src",$e.find("img").attr("src"));
$appinfolist.find("li:eq(2) div").text($e.data("version"));
var dt = new Date($e.data("update"));
$appinfolist.find("li:eq(3) div").text(dt.toUTCString());
$appinfolist.find("li:eq(4) div").text($e.data("author"));
var sections = elementSettingsData[$e.data("id")].sections;
var sectionids = new Array();
$.each(sections,function(i,sec){
sectionids.push(sec.id);
})
$appinfolist.find("li:eq(0)").empty();
$.each(o.sectionList,function(i,sec){
var present = $.inArray(sec._id,sectionids);
if(present == -1){
$sectionswitch = $('<label class="s_grid s_grid_3">'+ sec.name +'</label><div class="s_grid s_grid_9 s_switch"><div class="s_switch_status" status-off="Off">Off</div><label class="s_switch_switcher admbg2"><input type="checkbox" data-widget="'+ $e.data("id") +'" data-section="'+ sec._id +'"><span class="s_switch_toggle"></span></label></div>');
}else{
$sectionswitch = $('<label class="s_grid s_grid_3">'+ sec.name +'</label><div class="s_grid s_grid_9 s_switch"><div class="s_switch_status" status-on="On">On</div><label class="s_switch_switcher thmc2"><input type="checkbox" checked="checked" data-widget="'+ $e.data("id") +'" data-section="'+ sec._id +'"><span class="s_switch_toggle"></span></label></div>');
}
$appinfolist.find("li:eq(0)").append($sectionswitch);
})
$appinfo.show();
o.simple_switch(function(dom){
var options = {
"status" : dom.is(":checked"),
"widget_id" : dom.data("widget"),
"section_id" : dom.data("section")
}
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"){
elementSettingsData[$e.data("id")].sections.push({"id" : dom.data("section"),"name":sectionDetails.name});
if(dom.is(":checked"))
o.notify("Added to " + sectionDetails.name,"success");
else
o.notify("Removed from " + sectionDetails.name,"success");
}
}
})
});
o.appname_substr('#group_wrapper .element');
o.simple_switch();
})
}
$appinfo.find("a.panel_close").click(function(){
$appinfo.hide();
return false;
})
elementSetting();
o.appname_substr('#group_wrapper .element');
}
var elementSettingsData = {};
var loadApps = function(){ //this load apps for sorting and searching
$.getJSON("/desktop/getapplist",{desktopid:o.desktopId},function(appss){
$('#app_list').empty();
$.getJSON("/desktop/getapplistforManager",{desktopid:o.desktopId},function(apps){
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 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>');
elementSettingsData[app.id] = {"sections" : app.sections};
$app = $('<div class="element w1 h1 hp vp thmc2" data-category="'+app.data_category+'" data-title="'+app.title+'" data-author="'+app.author+'" data-version="'+app.version+'" data-update="'+app.last_update+'" data-id="'+app.id+'" ><span class="tile thmc2"></span><a href="'+app.id+'" class="appicon"><img src="'+app.icon+'" alt="" onclick="return false;"></a><h1 class="appname thmtxt">'+app.title+'</h1></div>');
if( count > 4 ){
count = 1, colindex+=1;
$('#app_list').append('<div class="g_col g_col_w1 col'+ colindex +'"/>');
@ -924,16 +992,14 @@ var orbitDesktop = function(dom){
$('.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;
@ -1579,7 +1645,8 @@ var orbitDesktop = function(dom){
});
});
};
this.simple_switch = function(){
this.simple_switch = function(func){
$('.s_switch').each(function(){
var $switcher = $(this).find('.s_switch_switcher'),
$checkbox = $(this).find('input[type=checkbox]'),
@ -1603,9 +1670,12 @@ var orbitDesktop = function(dom){
$status.text(status_off);
break;
}
if(typeof func == "function")
func.call(this,$(this));
});
});
};
this.single_select = function(){
// single select
$('.ssl .ssl_item').each(function(){

View File

@ -604,6 +604,7 @@ a.admtxt.admbg2:hover {
width: 420px;
height: 516px;
margin-right: 36px; }
#app_info .app_info_header {
height: 120px;
margin: -12px -12px 12px -12px;

View File

@ -117,8 +117,8 @@ class DesktopController< ApplicationController
jsfile = []
cssfile = ""
shape = "w1 h1"
fullsize = false
link = ""
fullsize = false
if tile.data_category == "widget"
widge = DesktopWidget.find(tile.desktop_widget_id.to_s)
# data_content = widge.widget_layout.file
@ -128,9 +128,7 @@ class DesktopController< ApplicationController
shape = widge.shape
title = widge.name
# binding.pry
if not widge.fullsize.nil?
fullsize = widge.fullsize
end
else
data_content = tile.data_content
title = tile.title
@ -195,6 +193,33 @@ class DesktopController< ApplicationController
render :json=>a.to_json
end
def getapplistforManager
@dwss = DesktopWidget.all
@tiles = Array.new
desktop = Desktop.find(params['desktopid'])
sections = desktop.sections
sections.each do |section|
groups = section.groups
groups.each do |group|
@tiles += group.tiles
end
end
@validtiles = Array.new
@allWidgets = Array.new
@dwss.each do |dw|
@id = dw.id
@validtiles = @tiles.select{|t| t.desktop_widget_id == @id}
@sections = Array.new
@validtiles.each do |vt|
grp = Group.find(vt.group_id)
sec = Section.find(grp.section_id);
@sections << {"id"=>sec.id,"name"=>sec.name}
end
@allWidgets << {"id"=>dw.id, "data_category"=> "widget","title" => dw.name, "version" => dw.version, "author"=>dw.author, "last_update"=>dw.updated_at, "icon"=>dw.images.where(:name=>dw.icon).first.file.url, "sections" => @sections}
end
render :json=>@allWidgets.to_json
end
def newpositions
@newpositions = params[:newpositions]
@ -237,4 +262,26 @@ class DesktopController< ApplicationController
render :xml=>feed
end
def appactivation
@group = Section.find(params[:section_id]).groups.first
@widget = DesktopWidget.find(params[:widget_id])
status = params[:status]
case status
when "true"
tile = Tile.new(data_category: "widget", position: 8, desktop_widget_id: @widget.id)
@group.tiles+=[tile]
@group.save
when "false"
tile = @group.tiles.where("desktop_widget_id"=>@widget.id).first
if tile != nil
tile.destroy
end
end
b = Array.new
b = {"success"=>"true"}
render :json=>b.to_json
end
end

View File

@ -4,6 +4,7 @@ class DesktopWidgetsController < OrbitBackendController
require 'zip/zip'
def index
@desktopWidgets = DesktopWidget.all
end
def upload
@ -21,6 +22,19 @@ class DesktopWidgetsController < OrbitBackendController
temp_file.close
end
end
def edit
@dw = DesktopWidget.find(params[:id])
end
def update
@dw = DesktopWidget.find(params[:id])
if(params[:desktop_widget])
@imagefile = params[:desktop_widget][:image]
@dw.images.build(:file => @imagefile)
@dw.save
end
redirect_to action: "index"
end
def unzip_widget(file, zip_name)
Zip::ZipFile.open(file) { |zip_file|

View File

@ -6,8 +6,11 @@ class DesktopWidget
field :name
field :author
field :shape
field :fullsize, :type => Boolean
field :fullsize, :type => Boolean, default: false
field :version, :type => String
field :text_color, :type => String, default: "#fff"
field :bg_color, :type => String, default: "#fff"
field :icon, default: "icon.png"
has_one :css_default, as: :css, :autosave => true, :dependent => :destroy
has_one :widget_layout, :autosave => true, :dependent => :destroy

View File

@ -13,7 +13,7 @@
<div id="holder">
<div id="group_wrapper" class="overview" content-layout="simple">
<div id="app_info" class="admbg vp hp">
<div id="app_info" class="admbg vp hp" style="display:none;">
<div class="app_info_header s_grid_row hp">
<div class="s_grid s_grid_3">
<img class="app_info_icon" src="/assets/icons/wikibooks.png" alt="">
@ -25,18 +25,18 @@
</div>
<ul class="app_info_list">
<li class="s_grid_row">
<label class="s_grid s_grid_3">Activation</label>
<div class="s_grid s_grid_9 s_switch">
<div class="s_switch_status" status-on="On" status-off="Off"></div>
<!-- <label class="s_grid s_grid_3">Activation</label>
<div class="s_grid s_grid_9 s_switch"> -->
<!-- <div class="s_switch_status" status-on="On" status-off="Off"></div>
<label class="s_switch_switcher">
<input type="checkbox">
</label>
</div>
</label> -->
<!-- </div> -->
</li>
<li class="s_grid_row">
<label class="s_grid s_grid_3">Description</label>
<div class="s_grid s_grid_9">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
</li>
<li class="s_grid_row">

View File

@ -0,0 +1,16 @@
<div>
<%= @dw.name %>
<h4>Upload Widget image </h4>
<div class="main2">
<%= form_for @dw, :url => desktop_widget_path(@dw) do |f| %>
<p>
<%= f.file_field :image %>
</p>
<%= submit_tag %>
<% end %>
</div>
</div>

View File

@ -0,0 +1,10 @@
<div>
<ul>
<% @desktopWidgets.each do |dw| %>
<li> <%= dw.name %>
<%= link_to "Delete", desktop_widget_path(dw), :method=>"delete" %>
<%= link_to "Edit", edit_desktop_widget_path(dw) %>
</li>
<% end %>
</ul>
</div>

View File

@ -200,7 +200,7 @@ Orbit::Application.routes.draw do
match "/desktop/compatibility" => "desktop#compatibility"
match "desktop" => "desktop#index"
match "/desktop/desktop" => "desktop#desktop"
match '/desktop/desktop'=>'desktop#desktop'
match '/desktop/appactivation'=>'desktop#appactivation'
match '/desktop/app_manager'=>'desktop#app_manager'
match '/desktop/allsections'=>'desktop#allsections'
match '/desktop/settings'=>'desktop#settings'
@ -211,6 +211,7 @@ Orbit::Application.routes.draw do
match '/desktop/themes/'=>'desktop#themes'
match '/desktop/sections/'=>'desktop#sections'
match '/desktop/getapplist/'=>'desktop#getapplist'
match '/desktop/getapplistforManager/'=>'desktop#getapplistforManager'
match '/desktop/newpositions/'=>'desktop#newpositions'
match '/desktop/connections/'=>'desktop#connections'
match '/desktop/widget_layout' => 'desktop#widget_layout'