merged cont.
[opensuse:yast-rest-service.git] / webyast / app / helpers / application_helper.rb
1 #--
2 # Webyast Webclient framework
3 #
4 # Copyright (C) 2009, 2010 Novell, Inc. 
5 #   This library is free software; you can redistribute it and/or modify
6 # it only under the terms of version 2.1 of the GNU Lesser General Public
7 # License as published by the Free Software Foundation. 
8 #
9 #   This library is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
12 # details. 
13 #
14 #   You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software 
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 #++
18
19 # Methods added to this helper will be available to all templates in the application.
20 module ApplicationHelper
21   # Generate the Save button and a Cancel link, with the common UI style.
22   # If the form is used in a wizard, they are named Next and Back.
23   # send_options applies to the submission button.
24   #
25   # Example:
26   #   <%= form_send_buttons :disabled => write_disabled %>
27   def form_send_buttons (send_options={})
28     ret =  form_next_button(send_options)
29     ret << form_str_spacer << form_cancel_button unless Basesystem.new.load_from_session(session).first_step?
30     ret
31   end
32
33   # query if basesystem is in process
34   def basesystem_in_process?
35     Basesystem.new.load_from_session(session).in_process?
36   end
37
38   def form_str_spacer
39     _(' or ')
40   end
41
42   def header_spacer
43     _(' - ')
44   end
45
46   ##
47   # Generate a cancel link with common UI style.
48   # links to /controlpanel by default, developer can override
49   # @param [Hash] options options for a link_to Rails helper method
50   # @return [String] html part representing a cancel
51   def form_back_button (options={}, html_options = {:class=>"action-link"})
52     form_label_back_button _("Back"), options, html_options
53   end
54
55   def form_cancel_button (options={}, html_options = {:class=>"action-link"})
56     form_label_back_button _("Cancel"), options, html_options
57   end
58
59   def form_label_back_button( label, options = {}, html_options = {:class=>"action-link"})
60     if (!Basesystem.installed?) || Basesystem.new.load_from_session(session).completed?
61        if ! (options[:action] || options[:controller]) then
62            options[:controller] = "controlpanel"
63        end
64        link_to label, options, html_options
65     else
66       link_to _("Back"), {:controller => "controlpanel", :action => "backstep"}, :class=>"action-link"
67     end
68   end
69
70   def form_next_button(send_options={})
71     label = send_options[:label] || _("Save")
72     if Basesystem.installed?
73       bs = Basesystem.new.load_from_session(session)
74       label = _("Next") unless bs.completed?
75       label = _("Finish") if bs.last_step?
76     end
77     submit_tag label,send_options
78   end
79 end
80