186 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			186 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 |