class ManabuDesktop::Screens::Login

Constants

CACHE_FILE_NAME

Attributes

cache_info[RW]
client[RW]

Public Class Methods

new() click to toggle source
Calls superclass method ManabuDesktop::Screens::Base::new
# File lib/screens/login.rb, line 14
def initialize()
  super('login')

  _load_cache()

  @window.resizable = false

  @builder.get_object('server.Label').set_label(I18n.t('login.server'))
  @server_comboBoxText = @builder.get_object('server.ComboBoxText')
  
  @builder.get_object('secure.Label').set_label(I18n.t('login.secure'))
  @server_secure_switch = @builder.get_object('secure.Switch')

  @cache_info[:servers].each{ |server| @server_comboBoxText.append_text(server[:addr])}
  if (@cache_info[:servers].length > 0)
    @server_comboBoxText.set_active(0)
    @server_secure_switch.active = @cache_info[:servers][0][:secure]
  end
  # TODO: set server details when selection is changed
  # TODO: allow deletion of a server entry
  # TODO: save new servers

  @builder.get_object('user.Label').set_label(I18n.t('login.user'))
  @user_entry = @builder.get_object('user.Entry')
  @builder.get_object('password.Label').set_label(I18n.t('login.password'))
  @password_entry = @builder.get_object('password.Entry')

  @builder.get_object('toolbox.Label').set_label(I18n.t('login.toolbox'))
  @open_toolbox_switch = @builder.get_object('toolbox.Switch')

  engage_button = @builder.get_object('engage.Button')
  engage_button.set_label(I18n.t('login.engage'))
  engage_button.signal_connect('clicked') {
    _engage(@server_comboBoxText.active_text, @server_secure_switch.active?,
            @user_entry.text, @password_entry.text)
  }

  _show()
end

Public Instance Methods

_engage(server, secure, user, password) click to toggle source

Attempt to engage a connection with the given prarameters

# File lib/screens/login.rb, line 69
def _engage(server, secure, user, password)
  addr = /^[^:|^\/]*[^:|^\/]/.match(server) # server part
  port = /[^:]\d[^\D]*/.match(server).to_s.to_i # port part
  port = 80 if (port == 0)
  route = /\/.*$/.match(server) #route part

  # TODO: first check if a session is already open to this server/port/user
  @client = Manabu::Client.new(user, password, "#{addr}#{route}", port,
                               force_secure_connection: secure)
  if @client.status == :connected
    ManabuDesktop::Sessions.add_session(@client)
    if @open_toolbox_switch.active?
      _open_toolbox(@client)
    else
      @window.destroy
    end
  end
end
_load_cache() click to toggle source
# File lib/screens/login.rb, line 54
def _load_cache()
  @cache_info = ManabuDesktop::Util::Cache.load(CACHE_FILE_NAME)
  if (@cache_info === {} || !@cache_info.includes?(:servers) ||
      !@cache_info[:servers].instance_of?(Array))
    @cache_info = {
      servers: [{addr: 'localhost:9000', secure: false}]
    }
  end
end
_open_toolbox(client) click to toggle source
# File lib/screens/login.rb, line 88
def _open_toolbox(client)
  @window.destroy
  ManabuDesktop::Screens::ToolBox.new(client)
end
_save_cache() click to toggle source
# File lib/screens/login.rb, line 64
def _save_cache()

end
_update_server_list() click to toggle source
# File lib/screens/login.rb, line 93
def _update_server_list()
end