# coding: utf-8 require "alone" require_relative "./address_book" class AddressBookController < AlController # # コンストラクタ # def initialize() @form = AlForm.new( AlText.new("name", :label=>"名前", :required=>true), AlText.new("address", :label=>"住所"), AlText.new("tel", :label=>"電話"), AlSubmit.new("決定"), AlHidden.new("id"), ) end # # デフォルトアクション(リスト表示) # def action_index() address_book = AddressBook.new @alldata = address_book.all() AlTemplate.run("index.rhtml") end # # 新規登録 フォーム表示 # def action_create_form() @form.action = make_uri(:action=>"create_exec") AlTemplate.run("form.rhtml") end # # 新規登録 実行 # def action_create_exec() # 新規登録時は、IDは不要(自動採番)なので取り除く @form.delete_widget( :id ) # 入力フォームにエラーがあれば、フォーム再表示 if !@form.validate() AlTemplate.run("form.rhtml") return end # モデルオブジェクトを生成し、createする。 address_book = AddressBook.new address_book.create( @form.values ) # リダイレクトを使って、デフォルト(リスト表示)へ戻る。 Alone.redirect_to( make_uri() ) end # # 更新 フォーム表示 # def action_update_form() # データ特定用のIDを得る id = AlForm.get_parameter( AlInteger.new("id") ) if !id return end # モデルオブジェクトを生成し、readする。 address_book = AddressBook.new if !address_book.read({:id=>id}) return end # フォームに初期値として設定し表示する @form.values = address_book.values @form.action = make_uri(:action=>"update_exec") AlTemplate.run("form.rhtml") end # # 更新 実行 # def action_update_exec() # 入力フォームにエラーがあれば、フォーム再表示 if !@form.validate() AlTemplate.run("form.rhtml") return end # モデルオブジェクトを生成し、updateする。 address_book = AddressBook.new address_book.update( @form.values ) # リダイレクトを使って、デフォルト(リスト表示)へ戻る。 Alone.redirect_to( make_uri() ) end # # 削除 確認画面 # def action_delete_confirm() # データ特定用のIDを得る id = AlForm.get_parameter( AlInteger.new("id") ) if !id return end # モデルオブジェクトを生成し、readする。 address_book = AddressBook.new if !address_book.read({:id=>id}) return end # 簡易画面の生成のため、フォームに入れてテンプレートに渡す @form.values = address_book.values AlTemplate.run("delete_confirm.rhtml") end # # 削除 実行 # def action_delete_exec() # データ特定用のIDを得る id = AlForm.get_parameter( AlInteger.new("id") ) if !id return end # モデルオブジェクトを生成し、deleteする address_book = AddressBook.new if !address_book.delete({:id=>id}) return end # リダイレクトを使って、デフォルト(リスト表示)へ戻る。 Alone.redirect_to( make_uri() ) end end