102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class DesktopAppstoreController< ApplicationController
 | |
| 
 | |
| 	def appstore
 | |
| 		render "desktop/appstore", :layout => false
 | |
| 	end 
 | |
| 
 | |
| 	def widgets
 | |
| 		render "desktop/appstore/widgets", :layout => false
 | |
| 	end
 | |
| 
 | |
| 	def onlinestore
 | |
| 		render "desktop/appstore/onlinestore", :layout => false
 | |
| 	end
 | |
| 
 | |
| 	def getuserwidgets
 | |
| 		@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
 | |
| 		render :json=>@widgets.to_json
 | |
| 	end
 | |
| 
 | |
| 	def widgets_settings
 | |
| 		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
 | |
| 		
 | |
| 		render :json=>@msg.to_json 
 | |
| 	end
 | |
| 	
 | |
| end
 | |
| 
 |