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 |