1
0
Fork 0
mirror of https://github.com/nishiki/manage-password.git synced 2024-11-26 23:33:03 +00:00

add select form when multiple result

This commit is contained in:
nishiki 2015-01-17 00:05:40 +01:00
parent 40291632eb
commit f5b98de4c1
5 changed files with 37 additions and 10 deletions

View file

@ -31,6 +31,9 @@ en:
upload: "Can't upload the file on the server!"
unknown: "An unknown error is occured!"
warning:
select: 'Your choice is not a valid element!'
option:
usage: "Usage"
show: "Search and show the items"
@ -51,6 +54,7 @@ en:
help: "Show this help message"
form:
select: "Select the item: "
add:
title: "Add a new item"
name: "Enter the name: "
@ -122,6 +126,7 @@ en:
port: "Port"
protocol: "Protocol"
server: "Server"
warning: "Warning"
ssh:
option:

View file

@ -31,6 +31,9 @@ fr:
upload: "Impossible d'envoyer le fichier sur le serveur!"
unknown: "Une erreur inconnue est survenue!"
warning:
select: "Votre choix n'est pas un élément valide!"
option:
usage: "Utilisation"
show: "Recherche et affiche les éléments"
@ -51,6 +54,7 @@ fr:
help: "Affiche ce message d'aide"
form:
select: "Sélectionner l'élément: "
add:
title: "Ajout d'un nouvel élément"
name: "Entrez le nom: "
@ -122,6 +126,7 @@ fr:
port: "Port"
protocol: "Protocol"
server: "Serveur"
warning: "Warning"
ssh:
option:

View file

@ -90,7 +90,7 @@ module MPW
file << msg['data']
end
mpw = MPW.new(tmp_file)
mpw = MPW.new(tmp_file, @gpg_key)
if not mpw.decrypt(gpg_password)
@error_msg = mpw.error_msg
return nil

View file

@ -39,7 +39,7 @@ class Cli
return false
end
end
if not @config.sync_host.nil? and not @config.sync_port.nil?
if not @sync.connect(@config.sync_host, @config.sync_user, @config.sync_pwd, @config.sync_path, @config.sync_port)
puts "#{I18n.t('display.error')} #1: #{@sync.error_msg}".red
@ -166,21 +166,37 @@ class Cli
# Display the query's result
# @args: search -> the string to search
# protocol -> search from a particular protocol
def display(search, protocol=nil, group=nil, format=nil)
def display(search, protocol=nil, group=nil)
result = @mpw.search(search, group, protocol)
if not result.empty?
result.each do |r|
display_item(r)
end
else
case result.length
when 0
puts I18n.t('display.nothing')
when 1
display_item(result.first)
else
i = 1
result.each do |r|
print "#{i}: ".cyan
print r['name']
print " -> #{r['comment']}".magenta if not r['comment'].to_s.empty?
print "\n"
i += 1
end
choice = ask(I18n.t('form.select')).to_i
if choice >= 1 and choice < i
display_item(result[choice-1])
else
puts "#{I18n.t('display.warning')}: #{I18n.t('warning.select')}".yellow
end
end
end
# Display an item in the default format
# @args: item -> an array with the item information
def diplay_item(item)
def display_item(item)
puts '--------------------'
puts "Id: #{item['id']}"
puts "#{I18n.t('display.name')}: #{item['name']}"
@ -193,6 +209,7 @@ class Cli
puts "#{I18n.t('display.comment')}: #{item['comment']}"
end
# Form to add a new item
def add
row = []

2
mpw
View file

@ -133,7 +133,7 @@ cli.sync
# Display the item's informations
if not options[:display].nil?
cli.display(options[:display], options[:group], options[:type], options[:format])
cli.display(options[:display], options[:group], options[:type])
# Remove an item
elsif not options[:remove].nil?