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
							 |