| 
									
										
										
										
											2012-06-26 08:59:29 +00:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-04 10:00:06 +00:00
										 |  |  | end |