96 lines
2.6 KiB
Ruby
96 lines
2.6 KiB
Ruby
class Desktopapp::DesktopAppAppstore < Sinatra::Base
|
|
|
|
get '/desktop_appstore/appstore' do
|
|
erb :appstore
|
|
end
|
|
|
|
get '/desktop_appstore/widgets' do
|
|
erb :'appstore/widgets'
|
|
end
|
|
|
|
get '/desktop_appstore/getuserwidgets' do
|
|
# @widgets = current_user.desktop.desktop_widgets
|
|
# @groups = Array.new
|
|
# @sections = current_user.desktop.sections
|
|
|
|
# @sections.each do |section|
|
|
# @groups << section.groups
|
|
# end
|
|
|
|
# @widgets.each do |widget|
|
|
# @count = 0;
|
|
# @sectionids = Array.new
|
|
# @groups.each do |group|
|
|
# group.each do |grp|
|
|
# @widge = 0
|
|
# @gid = widget.id.to_s
|
|
# @widge = grp.tiles.where(:data_content.all => [@gid]).count
|
|
# @count = @count + @widge
|
|
# if @widge > 0
|
|
# @sectionids << grp.section_id
|
|
# end
|
|
# end
|
|
# end
|
|
# if @count > 0
|
|
# widget.status = "Installed"
|
|
# widget.section = @sectionids
|
|
# else
|
|
# widget.status = "Downloaded"
|
|
# end
|
|
# end
|
|
# @widgets.to_json
|
|
current_user.to_json
|
|
end
|
|
|
|
get '/desktop_appstore/widgets_settings' do
|
|
what = params["what"]
|
|
@widgetid = params["widget"]
|
|
@sectionid = params["section"]
|
|
@msg = Array.new
|
|
case what
|
|
when "remove"
|
|
@section = Section.find(@sectionid)
|
|
@groups = @section.groups
|
|
@groups.each do |group|
|
|
@tile = group.tiles.where(:data_content.all => [@widgetid])
|
|
if @tile.count > 0
|
|
@thistile = @tile
|
|
end
|
|
end
|
|
@t = Tile.find(@thistile.first.id)
|
|
@t.delete
|
|
@msg << {"success"=>true}
|
|
when "add"
|
|
@widget = current_user.desktop.desktop_widgets.find(@widgetid)
|
|
@section = Section.find(@sectionid)
|
|
@groups = @section.groups
|
|
@totalwidgets = 0
|
|
@groups.each do |group|
|
|
@tile = group.tiles.where(:data_content.all => [@widgetid]).count
|
|
if @tile > 0
|
|
@msg << {"success"=>false,"error"=>"Duplicate widget"}
|
|
else
|
|
no_of_widgets = group.tiles.where(:data_category.all => ["widget"]).count
|
|
@totalwidgets = @totalwidgets + no_of_widgets
|
|
end
|
|
end
|
|
if @totalwidgets >= 12
|
|
@msg << {"success"=>false,"error"=>"Section full"}
|
|
else
|
|
wshape = @widget.shape
|
|
wdata_content = @widgetid
|
|
wdata_category = "widget"
|
|
wname = @widget.name
|
|
if @groups.first.tiles.where(:data_category.all => ["widget"]).count >= 6
|
|
groupid = @groups.last.id
|
|
else
|
|
groupid = @groups.first.id
|
|
end
|
|
Tile.create(data_category: wdata_category,data_content: wdata_content, group_id: groupid, position: 10, title: wname, shape: wshape)
|
|
@msg << {"success"=>true}
|
|
end
|
|
end
|
|
@msg.to_json
|
|
end
|
|
|
|
end |