185 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class DesktopController< ApplicationController
 | |
|   layout 'desktop'
 | |
|   before_filter :authenticate_user!
 | |
| 
 | |
|   #to load pages...
 | |
|   
 | |
|   def index
 | |
|     @desktop = current_user.desktop
 | |
|     @currentusername = current_user.name
 | |
|     @title = "Desktop - " + @currentusername
 | |
|     @section = @desktop.sections.first
 | |
|   end
 | |
|   
 | |
|   def desktop
 | |
|     render :layout => false
 | |
|   end
 | |
|   
 | |
|   def app_manager
 | |
|      render :layout => false
 | |
|   end
 | |
|   
 | |
|   def sections
 | |
|     render :layout => false
 | |
|   end
 | |
|   
 | |
|   def settings
 | |
|     render :layout => false
 | |
|   end
 | |
|   
 | |
|   def settingthemes
 | |
|     @themes = DesktopTheme.all
 | |
|   #  raise @themes.inspect
 | |
|     render "desktop/settings/themes", :layout => false
 | |
|   end
 | |
|   
 | |
|   def settingsections
 | |
|     render "desktop/settings/sections", :layout => false
 | |
|   end
 | |
|   
 | |
|   def settingconnection
 | |
|     render "desktop/settings/connections", :layout => false
 | |
|   end
 | |
|   
 | |
|  
 | |
|   #ajax data load....
 | |
|   
 | |
|   def save_desktop_settings
 | |
|     @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"}
 | |
|      render :json=>a.to_json
 | |
|   end
 | |
|   
 | |
|   def get_desktop_settings
 | |
|      @desktop = Desktop.find(params["desktopid"])
 | |
|      @getwhat = params["get"]
 | |
|      case @getwhat
 | |
|       when "desktop"
 | |
|         render :json => @desktop.to_json
 | |
|       when "sectionnames"
 | |
|         secnames = Array.new
 | |
|         @sections = @desktop.sections
 | |
|         @sections.each do |section|
 | |
|           secnames << section.name
 | |
|         end
 | |
|         render :json => secnames.to_json
 | |
|       when "theme"
 | |
|         @theme = @desktop.theme
 | |
|         render :json => @theme.to_json
 | |
|      end
 | |
|   end
 | |
|   
 | |
|   def getgroups
 | |
|     @section = Section.find(params["sectionid"])
 | |
|     @groups = @section.groups
 | |
|     a = Array.new
 | |
|     @groups.each do |group|
 | |
|       a << group.tiles
 | |
|     end
 | |
|     render :json =>a.to_json
 | |
|   end
 | |
|   
 | |
|   def getsectionlist
 | |
|     @desktop = Desktop.find(params["desktopid"])
 | |
|     @sections = @desktop.sections
 | |
|     render :json => @sections.to_json 
 | |
|   end
 | |
|   
 | |
|   def temp_func
 | |
|      @section = Section.find(params["sectionid"])
 | |
|       @groups = @section.groups
 | |
|       
 | |
|       @groups.each do |group|
 | |
|         a = 1;
 | |
|         @tiles = group.tiles
 | |
|         @tiles.each do |tile|
 | |
|           tile.update_attributes({:data_category => "widget",:data_content => "temp", :position => a})
 | |
|           a = a+1;
 | |
|         end
 | |
|       end
 | |
|       b = Array.new
 | |
|        b << {"success"=>"true"}
 | |
|        render :json=>b.to_json
 | |
|   end
 | |
|   
 | |
|   def getapplist
 | |
|      @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
 | |
|      render :json=>a.to_json
 | |
|   end
 | |
|   
 | |
|   def newpositions
 | |
|     @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"}
 | |
|     render :json=>b.to_json
 | |
|   end
 | |
|   
 | |
|   def forgmail
 | |
|    
 | |
|     feed = Net::HTTP.get_response(URI.parse("https://mail.google.com/mail/feed/atom")).body
 | |
|     render :xml=>feed
 | |
|   end
 | |
|   
 | |
| end |