148 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class Desktopapp::DesktopApp < Sinatra::Base
 | |
| 	
 | |
| 	#set :views, settings.root+'/desktop/'
 | |
| 	
 | |
| 	get "/desktop/desktop" do 
 | |
| 		erb :desktop
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/app_manager" do
 | |
| 		erb :app_manager 
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/sections" do
 | |
| 		erb :sections
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/settings" do
 | |
| 		erb :settings
 | |
| 	end
 | |
| 
 | |
| 	post "/desktop/save_desktop_settings" do
 | |
| 		@desktop = Desktop.find(params["desktopid"])
 | |
| 	    @savewhat = params["save"]
 | |
| 	    case @savewhat
 | |
| 	    when "theme"
 | |
| 	      @desktop.update_attributes(:theme => params["theme"])
 | |
| 	      @desktop.update_attributes(:wallpaper => nil)
 | |
| 	    when "desktopnames"
 | |
| 	      @sections = @desktop.sections
 | |
| 	      x = 0;
 | |
| 	      @sections.each do |section|
 | |
| 	        @desktopnewnames = params["desktopnms"]
 | |
| 	        section.update_attributes(:name => @desktopnewnames[x] )
 | |
| 	        x = x+1
 | |
| 	      end
 | |
| 	    when "appnewsection"
 | |
| 	      @section = Section.find(params["newsectionid"])
 | |
| 	      @groups = @section.groups
 | |
| 	      @app = Tile.find(params["appid"])
 | |
| 	      @groups.each do |group|
 | |
| 	        @tiles = group.tiles.where(:data_category.all => ["app"])
 | |
| 	        if @tiles.length < 12
 | |
| 	          @app.update_attributes(:group_id => group.id)
 | |
| 	          break
 | |
| 	        end
 | |
| 	      end
 | |
| 	      when "customtheme"
 | |
| 	        @desktop.update_attributes(:theme => "custom")
 | |
| 	        @desktop.update_attributes(:customtheme => params['theme'])
 | |
| 	      when "wallpaper"
 | |
| 	        @desktop.update_attributes(:wallpaper => params["wallpapernm"])
 | |
| 	      end
 | |
| 	     a = Array.new
 | |
| 	     a << {"success"=>"true"}
 | |
| 	     a.to_json
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/get_desktop_settings" do
 | |
| 		@desktop = Desktop.find(params["desktopid"])
 | |
| 	     @getwhat = params["get"]
 | |
| 	     case @getwhat
 | |
| 	      when "desktop"
 | |
| 	        	 @desktop.to_json
 | |
| 	      when "sectionnames"
 | |
| 	        secnames = Array.new
 | |
| 	        @sections = @desktop.sections
 | |
| 	        @sections.each do |section|
 | |
| 	          secnames << section.name
 | |
| 	        end
 | |
| 	        secnames.to_json
 | |
| 	      when "theme"
 | |
| 	        @theme = @desktop.theme
 | |
| 	       	@theme.to_json
 | |
| 	     end
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/getgroups" do
 | |
| 		 @section = Section.find(params["sectionid"])
 | |
| 	    @groups = @section.groups
 | |
| 	    a = Array.new
 | |
| 	    @groups.each do |group|
 | |
| 	      a << group.tiles
 | |
| 	    end
 | |
| 	    a.to_json
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/getsectionlist" do
 | |
| 		@desktop = Desktop.find(params["desktopid"])
 | |
|   		@sections = @desktop.sections
 | |
|     	@sections.to_json 
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/settingthemes" do
 | |
| 		 @themes = DesktopTheme.all
 | |
| 		 erb :'settings/themes'
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/settingsections" do
 | |
| 		erb :'settings/sections'
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/getapplist" do
 | |
| 		@desktop = Desktop.find(params["desktopid"])
 | |
| 	     @sections = @desktop.sections
 | |
| 	     a = Array.new
 | |
| 	     @sections.each do |section|
 | |
| 	       @groups = section.groups
 | |
| 	       @groups.each do |group|
 | |
| 	         @tiles = group.tiles.where(:data_category.all => ["app"])
 | |
| 	         a << @tiles
 | |
| 	       end
 | |
| 	     end
 | |
| 	     a.to_json
 | |
| 	end
 | |
| 
 | |
| 	post "/desktop/newpositions" do
 | |
| 		@newpositions = params["newpos"]
 | |
| 	    @section = Section.find(params["sectionid"])
 | |
| 	    @groupids = params["groupids"]
 | |
| 	    @groups = @section.groups
 | |
| 	     z = 0
 | |
| 	    @newpositions.each do |grp|
 | |
| 	      x = 1
 | |
| 	      grp.each do |tileid|
 | |
| 	        if x != 1
 | |
| 	          y = 1
 | |
| 	          tileid.each do |id|
 | |
| 	            @tile = Tile.find(id)
 | |
| 	            @tile.update_attributes({:position => y})
 | |
| 	            if @tile.group_id != @groupids[z]
 | |
| 	              @tile.update_attributes({:group_id => @groupids[z]})
 | |
| 	            end
 | |
| 	             y = y + 1
 | |
| 	          end
 | |
| 	          z = z + 1
 | |
| 	        end
 | |
| 	        x = x + 1
 | |
| 	      end
 | |
| 	    end
 | |
| 	    b = Array.new
 | |
| 	    b << {"success"=>"true"}
 | |
| 	    b.to_json
 | |
| 	end
 | |
| 
 | |
| 	get "/desktop/settingconnection" do
 | |
| 		erb :'settings/connections'
 | |
| 	end
 | |
| end |