Revision 912:5e80956cc792 .svn/pristine/13

View differences:

.svn/pristine/13/130043bdfae755b8a2fcb2b00201feff2d982de9.svn-base
1
default:
2
  somesetting: foo
3
  
4
production:
5

  
6
development:
7

  
8
test:
9
  somesetting: bar
.svn/pristine/13/134682aa67acff21c24711968698972a9dfb0d8a.svn-base
1
<h2><%= link_to l(:label_role_plural), :controller => 'roles', :action => 'index' %> &#187; <%=l(:label_role_new)%></h2>
2

  
3
<% labelled_tabular_form_for :role, @role, :url => { :action => 'new' }, :html => {:id => 'role_form'} do |f| %>
4
<%= render :partial => 'form', :locals => { :f => f } %>
5
<%= submit_tag l(:button_create) %>
6
<% end %>
.svn/pristine/13/134abc8208803badec34f77d9e7dc1b2f4a0df2f.svn-base
1
<h2><%=l(:label_settings)%></h2>
2

  
3
<%= render_tabs project_settings_tabs %>
4

  
5
<% html_title(l(:label_settings)) -%>
.svn/pristine/13/1360db03d113fb07eff0808c5131dd75d05da3fd.svn-base
1
// ** I18N
2

  
3
// Calendar DE language
4
// Author: Jack (tR), <jack@jtr.de>
5
// Encoding: any
6
// Distributed under the same terms as the calendar itself.
7

  
8
// For translators: please use UTF-8 if possible.  We strongly believe that
9
// Unicode is the answer to a real internationalized world.  Also please
10
// include your contact information in the header, as can be seen above.
11

  
12
// full day names
13
Calendar._DN = new Array
14
("Sonntag",
15
 "Montag",
16
 "Dienstag",
17
 "Mittwoch",
18
 "Donnerstag",
19
 "Freitag",
20
 "Samstag",
21
 "Sonntag");
22

  
23
// Please note that the following array of short day names (and the same goes
24
// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
// for exemplification on how one can customize the short day names, but if
26
// they are simply the first N letters of the full name you can simply say:
27
//
28
//   Calendar._SDN_len = N; // short day name length
29
//   Calendar._SMN_len = N; // short month name length
30
//
31
// If N = 3 then this is not needed either since we assume a value of 3 if not
32
// present, to be compatible with translation files that were written before
33
// this feature.
34

  
35
// First day of the week. "0" means display Sunday first, "1" means display
36
// Monday first, etc.
37
Calendar._FD = 1;
38

  
39
// short day names
40
Calendar._SDN = new Array
41
("So",
42
 "Mo",
43
 "Di",
44
 "Mi",
45
 "Do",
46
 "Fr",
47
 "Sa",
48
 "So");
49

  
50
// full month names
51
Calendar._MN = new Array
52
("Januar",
53
 "Februar",
54
 "M\u00e4rz",
55
 "April",
56
 "Mai",
57
 "Juni",
58
 "Juli",
59
 "August",
60
 "September",
61
 "Oktober",
62
 "November",
63
 "Dezember");
64

  
65
// short month names
66
Calendar._SMN = new Array
67
("Jan",
68
 "Feb",
69
 "M\u00e4r",
70
 "Apr",
71
 "May",
72
 "Jun",
73
 "Jul",
74
 "Aug",
75
 "Sep",
76
 "Okt",
77
 "Nov",
78
 "Dez");
79

  
80
// tooltips
81
Calendar._TT = {};
82
Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul";
83

  
84
Calendar._TT["ABOUT"] =
85
"DHTML Date/Time Selector\n" +
86
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-)
87
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
88
"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
89
"\n\n" +
90
"Datum ausw\u00e4hlen:\n" +
91
"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" +
92
"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" +
93
"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest.";
94
Calendar._TT["ABOUT_TIME"] = "\n\n" +
95
"Zeit ausw\u00e4hlen:\n" +
96
"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" +
97
"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" +
98
"- oder klicken und festhalten f\u00fcr Schnellauswahl.";
99

  
100
Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
101
Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)";
102
Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)";
103
Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen";
104
Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)";
105
Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)";
106
Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
107
Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten";
108
Calendar._TT["PART_TODAY"] = " (Heute)";
109

  
110
// the following is to inform that "%s" is to be the first day of week
111
// %s will be replaced with the day name.
112
Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s ";
113

  
114
// This may be locale-dependent.  It specifies the week-end days, as an array
115
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
116
// means Monday, etc.
117
Calendar._TT["WEEKEND"] = "0,6";
118

  
119
Calendar._TT["CLOSE"] = "Schlie\u00dfen";
120
Calendar._TT["TODAY"] = "Heute";
121
Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern";
122

  
123
// date formats
124
Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
125
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
126

  
127
Calendar._TT["WK"] = "wk";
128
Calendar._TT["TIME"] = "Zeit:";
.svn/pristine/13/137331c94a623d300b9797520d5d31b04bbcafd5.svn-base
1
# Redmine - project management software
2
# Copyright (C) 2006-2011  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require File.expand_path('../../test_helper', __FILE__)
19

  
20
class AdminTest < ActionController::IntegrationTest
21
  fixtures :projects, :trackers, :issue_statuses, :issues,
22
           :enumerations, :users, :issue_categories,
23
           :projects_trackers,
24
           :roles,
25
           :member_roles,
26
           :members,
27
           :enabled_modules,
28
           :workflows
29

  
30
  def test_add_user
31
    log_user("admin", "admin")
32
    get "/users/new"
33
    assert_response :success
34
    assert_template "users/new"
35
    post "/users/create",
36
         :user => { :login => "psmith", :firstname => "Paul",
37
                    :lastname => "Smith", :mail => "psmith@somenet.foo",
38
                    :language => "en", :password => "psmith09",
39
                    :password_confirmation => "psmith09" }
40

  
41
    user = User.find_by_login("psmith")
42
    assert_kind_of User, user
43
    assert_redirected_to "/users/#{ user.id }/edit"
44

  
45
    logged_user = User.try_to_login("psmith", "psmith09")
46
    assert_kind_of User, logged_user
47
    assert_equal "Paul", logged_user.firstname
48

  
49
    put "users/#{user.id}", :id => user.id, :user => { :status => User::STATUS_LOCKED }
50
    assert_redirected_to "/users/#{ user.id }/edit"
51
    locked_user = User.try_to_login("psmith", "psmith09")
52
    assert_equal nil, locked_user
53
  end
54

  
55
  test "Add a user as an anonymous user should fail" do
56
    post '/users/create',
57
         :user => { :login => 'psmith', :firstname => 'Paul'},
58
         :password => "psmith09", :password_confirmation => "psmith09"
59
    assert_response :redirect
60
    assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fusers"
61
  end
62
end
.svn/pristine/13/138f43d777efffd6ecf4f9d5f88f24c526eb7287.svn-base
1
module ActionView
2
  module Helpers
3
    # Provides methods for linking to ActionController::Pagination objects using a simple generator API.  You can optionally
4
    # also build your links manually using ActionView::Helpers::AssetHelper#link_to like so:
5
    #
6
    # <%= link_to "Previous page", { :page => paginator.current.previous } if paginator.current.previous %>
7
    # <%= link_to "Next page", { :page => paginator.current.next } if paginator.current.next %>
8
    module PaginationHelper
9
      unless const_defined?(:DEFAULT_OPTIONS)
10
        DEFAULT_OPTIONS = {
11
          :name => :page,
12
          :window_size => 2,
13
          :always_show_anchors => true,
14
          :link_to_current_page => false,
15
          :params => {}
16
        }
17
      end
18

  
19
      # Creates a basic HTML link bar for the given +paginator+.  Links will be created
20
      # for the next and/or previous page and for a number of other pages around the current
21
      # pages position. The +html_options+ hash is passed to +link_to+ when the links are created.
22
      #
23
      # ==== Options
24
      # <tt>:name</tt>::                 the routing name for this paginator
25
      #                                  (defaults to +page+)
26
      # <tt>:prefix</tt>::               prefix for pagination links
27
      #                                  (i.e. Older Pages: 1 2 3 4)
28
      # <tt>:suffix</tt>::               suffix for pagination links
29
      #                                  (i.e. 1 2 3 4 <- Older Pages)
30
      # <tt>:window_size</tt>::          the number of pages to show around 
31
      #                                  the current page (defaults to <tt>2</tt>)
32
      # <tt>:always_show_anchors</tt>::  whether or not the first and last
33
      #                                  pages should always be shown
34
      #                                  (defaults to +true+)
35
      # <tt>:link_to_current_page</tt>:: whether or not the current page
36
      #                                  should be linked to (defaults to
37
      #                                  +false+)
38
      # <tt>:params</tt>::               any additional routing parameters
39
      #                                  for page URLs
40
      #
41
      # ==== Examples
42
      #  # We'll assume we have a paginator setup in @person_pages...
43
      #
44
      #  pagination_links(@person_pages)
45
      #  # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>  ... <a href="/?page=10/">10</a>
46
      #
47
      #  pagination_links(@person_pages, :link_to_current_page => true)
48
      #  # => <a href="/?page=1/">1</a> <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>  ... <a href="/?page=10/">10</a>
49
      #
50
      #  pagination_links(@person_pages, :always_show_anchors => false)
51
      #  # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a> 
52
      #
53
      #  pagination_links(@person_pages, :window_size => 1)
54
      #  # => 1 <a href="/?page=2/">2</a>  ... <a href="/?page=10/">10</a>
55
      #
56
      #  pagination_links(@person_pages, :params => { :viewer => "flash" })
57
      #  # => 1 <a href="/?page=2&amp;viewer=flash/">2</a> <a href="/?page=3&amp;viewer=flash/">3</a>  ... 
58
      #  #    <a href="/?page=10&amp;viewer=flash/">10</a>
59
      def pagination_links(paginator, options={}, html_options={})
60
        name = options[:name] || DEFAULT_OPTIONS[:name]
61
        params = (options[:params] || DEFAULT_OPTIONS[:params]).clone
62
        
63
        prefix = options[:prefix] || ''
64
        suffix = options[:suffix] || ''
65

  
66
        pagination_links_each(paginator, options, prefix, suffix) do |n|
67
          params[name] = n
68
          link_to(n.to_s, params, html_options)
69
        end
70
      end
71

  
72
      # Iterate through the pages of a given +paginator+, invoking a
73
      # block for each page number that needs to be rendered as a link.
74
      # 
75
      # ==== Options
76
      # <tt>:window_size</tt>::          the number of pages to show around 
77
      #                                  the current page (defaults to +2+)
78
      # <tt>:always_show_anchors</tt>::  whether or not the first and last
79
      #                                  pages should always be shown
80
      #                                  (defaults to +true+)
81
      # <tt>:link_to_current_page</tt>:: whether or not the current page
82
      #                                  should be linked to (defaults to
83
      #                                  +false+)
84
      #
85
      # ==== Example
86
      #  # Turn paginated links into an Ajax call
87
      #  pagination_links_each(paginator, page_options) do |link|
88
      #    options = { :url => {:action => 'list'}, :update => 'results' }
89
      #    html_options = { :href => url_for(:action => 'list') }
90
      #
91
      #    link_to_remote(link.to_s, options, html_options)
92
      #  end
93
      def pagination_links_each(paginator, options, prefix = nil, suffix = nil)
94
        options = DEFAULT_OPTIONS.merge(options)
95
        link_to_current_page = options[:link_to_current_page]
96
        always_show_anchors = options[:always_show_anchors]
97

  
98
        current_page = paginator.current_page
99
        window_pages = current_page.window(options[:window_size]).pages
100
        return if window_pages.length <= 1 unless link_to_current_page
101
        
102
        first, last = paginator.first, paginator.last
103
        
104
        html = ''
105

  
106
        html << prefix if prefix
107

  
108
        if always_show_anchors and not (wp_first = window_pages[0]).first?
109
          html << yield(first.number)
110
          html << ' ... ' if wp_first.number - first.number > 1
111
          html << ' '
112
        end
113
          
114
        window_pages.each do |page|
115
          if current_page == page && !link_to_current_page
116
            html << page.number.to_s
117
          else
118
            html << yield(page.number)
119
          end
120
          html << ' '
121
        end
122
        
123
        if always_show_anchors and not (wp_last = window_pages[-1]).last? 
124
          html << ' ... ' if last.number - wp_last.number > 1
125
          html << yield(last.number)
126
        end
127

  
128
        html << suffix if suffix
129

  
130
        html
131
      end
132
      
133
    end # PaginationHelper
134
  end # Helpers
135
end # ActionView
.svn/pristine/13/13a9de4a4790249b88f8367228e59b3e03f18775.svn-base
1
<div class="contextual">
2
<%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'new', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
3
</div>
4

  
5
<%= render_timelog_breadcrumb %>
6

  
7
<h2><%= l(:label_spent_time) %></h2>
8

  
9
<% form_tag({:controller => 'time_entry_reports', :action => 'report', :project_id => @project, :issue_id => @issue}, :method => :get, :id => 'query_form') do %>
10
  <% @criterias.each do |criteria| %>
11
    <%= hidden_field_tag 'criterias[]', criteria, :id => nil %>
12
  <% end %>
13
  <%= render :partial => 'timelog/date_range' %>
14

  
15
  <p><label for='columns'><%= l(:label_details) %></label>: <%= select_tag 'columns', options_for_select([[l(:label_year), 'year'],
16
                                                                            [l(:label_month), 'month'],
17
                                                                            [l(:label_week), 'week'],
18
                                                                            [l(:label_day_plural).titleize, 'day']], @columns),
19
                                                        :onchange => "this.form.onsubmit();" %>
20

  
21
  <label for='criterias'><%= l(:button_add) %></label>: <%= select_tag('criterias[]', options_for_select([[]] + (@available_criterias.keys - @criterias).collect{|k| [l_or_humanize(@available_criterias[k][:label]), k]}),
22
                                                          :onchange => "this.form.submit();",
23
                                                          :style => 'width: 200px',
24
                                                          :id => nil,
25
                                                          :disabled => (@criterias.length >= 3), :id => "criterias") %>
26
     <%= link_to l(:button_clear), {:project_id => @project, :issue_id => @issue, :period_type => params[:period_type], :period => params[:period], :from => @from, :to => @to, :columns => @columns}, :class => 'icon icon-reload' %></p>
27
<% end %>
28

  
29
<% unless @criterias.empty? %>
30
<div class="total-hours">
31
<p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
32
</div>
33

  
34
<% unless @hours.empty? %>
35
<div class="autoscroll">
36
<table class="list" id="time-report">
37
<thead>
38
<tr>
39
<% @criterias.each do |criteria| %>
40
  <th><%= l_or_humanize(@available_criterias[criteria][:label]) %></th>
41
<% end %>
42
<% columns_width = (40 / (@periods.length+1)).to_i %>
43
<% @periods.each do |period| %>
44
  <th class="period" width="<%= columns_width %>%"><%= period %></th>
45
<% end %>
46
  <th class="total" width="<%= columns_width %>%"><%= l(:label_total) %></th>
47
</tr>
48
</thead>
49
<tbody>
50
<%= render :partial => 'report_criteria', :locals => {:criterias => @criterias, :hours => @hours, :level => 0} %>
51
  <tr class="total">
52
  <td><%= l(:label_total) %></td>
53
  <%= '<td></td>' * (@criterias.size - 1) %>
54
  <% total = 0 -%>
55
  <% @periods.each do |period| -%>
56
    <% sum = sum_hours(select_hours(@hours, @columns, period.to_s)); total += sum -%>
57
    <td class="hours"><%= html_hours("%.2f" % sum) if sum > 0 %></td>
58
  <% end -%>
59
  <td class="hours"><%= html_hours("%.2f" % total) if total > 0 %></td>
60
  </tr>
61
</tbody>
62
</table>
63
</div>
64

  
65
<% other_formats_links do |f| %>
66
  <%= f.link_to 'CSV', :url => params %>
67
<% end %>
68
<% end %>
69
<% end %>
70

  
71
<% html_title l(:label_spent_time), l(:label_report) %>
72

  
.svn/pristine/13/13d58fac9d8f76e7061c50c043e9ceb3e590857c.svn-base
1
class Namespace::SharedPluginController < ApplicationController
2
  def an_action
3
    render_class_and_action 'from beta_plugin'
4
  end
5
end

Also available in: Unified diff