diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/images/logoMEDDE.jpg | bin | 13842 -> 9767 bytes | |||
| -rw-r--r-- | app/assets/javascripts/public/jquery.ui.datepicker-i18n.js | 9 | ||||
| -rw-r--r-- | app/assets/javascripts/time_tables.js.coffee | 39 | ||||
| -rw-r--r-- | app/assets/javascripts/vehicle_journey.js.coffee | 6 | ||||
| -rw-r--r-- | app/assets/stylesheets/time_tables.css.scss | 61 | ||||
| -rw-r--r-- | app/views/exports/index.html.erb | 2 | ||||
| -rw-r--r-- | app/views/file_validations/index.html.erb | 2 | ||||
| -rw-r--r-- | app/views/imports/index.html.erb | 2 | ||||
| -rw-r--r-- | app/views/time_tables/_date_fields.erb | 4 | ||||
| -rw-r--r-- | app/views/time_tables/_dates.html.erb | 4 | ||||
| -rw-r--r-- | app/views/time_tables/_form.erb | 37 | ||||
| -rw-r--r-- | app/views/time_tables/_period_fields.erb | 5 | ||||
| -rw-r--r-- | app/views/time_tables/_periods.html.erb | 3 | ||||
| -rw-r--r-- | app/views/time_tables/show.html.erb | 27 |
14 files changed, 181 insertions, 20 deletions
diff --git a/app/assets/images/logoMEDDE.jpg b/app/assets/images/logoMEDDE.jpg Binary files differindex 51e0a3a44..06d4a2a1f 100644 --- a/app/assets/images/logoMEDDE.jpg +++ b/app/assets/images/logoMEDDE.jpg diff --git a/app/assets/javascripts/public/jquery.ui.datepicker-i18n.js b/app/assets/javascripts/public/jquery.ui.datepicker-i18n.js index 3d0d55b46..b7748a77a 100644 --- a/app/assets/javascripts/public/jquery.ui.datepicker-i18n.js +++ b/app/assets/javascripts/public/jquery.ui.datepicker-i18n.js @@ -53,7 +53,14 @@ jQuery(function($){ monthNamesShort: $.datepicker.regional[ $('html').attr('lang') ].monthNamesShort, monthNames: $.datepicker.regional[ $('html').attr('lang') ].monthNames } ); - $(element).datepicker("setDate", $.datepicker.parseDate('yy-mm-dd', $(element).val() ) ); + if ($(element).val().indexOf('/') >= 0) + { + $(element).datepicker("setDate", $.datepicker.parseDate('dd/mm/y', $(element).val() ) ); + } + else + { + $(element).datepicker("setDate", $.datepicker.parseDate('yy-mm-dd', $(element).val() ) ); + } }); $("form").submit(function(event) { diff --git a/app/assets/javascripts/time_tables.js.coffee b/app/assets/javascripts/time_tables.js.coffee new file mode 100644 index 000000000..b85376edb --- /dev/null +++ b/app/assets/javascripts/time_tables.js.coffee @@ -0,0 +1,39 @@ +jQuery -> +# add trigger to hide/show application dates and periods + switch_dates = (event) -> + event.preventDefault() + $('.time_tables .dates.content').toggle('slow') + $('a.dates .switcher').toggle() + + $('.time_tables a.dates').click(switch_dates) + + switch_periods = (event) -> + event.preventDefault() + $('.time_tables .periods.content').toggle('slow') + $('a.periods .switcher').toggle() + + $('.time_tables a.periods').click(switch_periods) + +# add trigger when creating new date or period entries to activate datepicker + tt_datepickerI18n = (index, element) -> + # do nothig if a datepicker is already attached + return if ($(element).hasClass('hasDatepicker') ) + $(element).datepicker({ + dateFormat: "dd/mm/y", + dayNamesShort: $.datepicker.regional[ $('html').attr('lang') ].dayNamesShort, + dayNames: $.datepicker.regional[ $('html').attr('lang') ].dayNames, + monthNamesShort: $.datepicker.regional[ $('html').attr('lang') ].monthNamesShort, + monthNames: $.datepicker.regional[ $('html').attr('lang') ].monthNames + }) + $(element).datepicker("setDate", $.datepicker.parseDate('dd/mm/y', $(element).val() ) ) if ($(element).val().indexOf('/') >= 0) + $(element).datepicker("setDate", $.datepicker.parseDate('yy-mm-dd', $(element).val() ) ) if ($(element).val().indexOf('/') < 0) + + after_inserts = -> + $('input[type="date"]').each(tt_datepickerI18n) + + bind_after_inserts = -> + $('#periods_content').bind('insertion-callback',after_inserts) + $('#dates_content').bind('insertion-callback',after_inserts) + #after_inserts() + + $(document).ready(bind_after_inserts) if $('.time_tables').length > 0 diff --git a/app/assets/javascripts/vehicle_journey.js.coffee b/app/assets/javascripts/vehicle_journey.js.coffee index 513d177c8..89bc8825f 100644 --- a/app/assets/javascripts/vehicle_journey.js.coffee +++ b/app/assets/javascripts/vehicle_journey.js.coffee @@ -1,6 +1,6 @@ jQuery -> swap_hour_minute = ( from, to) -> - rows = $('.vehicle_journeys.edit tbody.journey_pattern_dependent_list tr') + rows = $('.vehicle_journeys tbody.journey_pattern_dependent_list tr') for row in rows do (row) -> $(row).find( to).find('.hour')[0].value = $(row).find( from).find('.hour')[0].value @@ -10,13 +10,13 @@ jQuery -> event.preventDefault() swap_hour_minute( '.departure_time', '.arrival_time') - $('.vehicle_journeys.edit a.to_arrivals').live("click", copy_departures_to_arrivals) + $('.vehicle_journeys a.to_arrivals').live("click", copy_departures_to_arrivals) copy_arrivals_to_departures = (event) -> event.preventDefault() swap_hour_minute( '.arrival_time', '.departure_time') - $('.vehicle_journeys.edit a.to_departures').live("click", copy_arrivals_to_departures) + $('.vehicle_journeys a.to_departures').live("click", copy_arrivals_to_departures) switch_vehicle_journey_at_stops = (event) -> event.preventDefault() diff --git a/app/assets/stylesheets/time_tables.css.scss b/app/assets/stylesheets/time_tables.css.scss index 6a168eb4f..f1ff7b3d2 100644 --- a/app/assets/stylesheets/time_tables.css.scss +++ b/app/assets/stylesheets/time_tables.css.scss @@ -103,6 +103,16 @@ #workspace.time_tables.edit,#workspace.time_tables.new,#workspace.time_tables.create,#workspace.time_tables.update { + h3 { + .dates { + cursor: pointer; + } + .periods { + cursor: pointer; + } + } + + .day_type ol { float: left; margin: 0; @@ -126,4 +136,55 @@ .day_type ol li label { padding-left: 10%; } + + .dates ol { + margin-top: -0.3em; + margin-bottom: 1em; + margin-left: 25%; + padding: 0; + width: 75%; + } + .dates ol li { padding : 0.3em 0; } + + .dates ol li label { + width: 40%; + margin-top: -0.3em; + } + .dates ol li.fl1 {float: left; width: 30% ;} + .dates ol li.fl1 label {width: 40%; margin-top: -0.3em; } + .dates ol li.fl1 input { width: 50%; } + + + .periods ol { + margin-top: -0.3em; + margin-bottom: 1em; + margin-left: 25%; + padding: 0; + width: 75%; + } + .periods ol li { padding : 0.3em 0; } + + .periods ol li label { + width: 40%; + margin-top: -0.3em; + } + .periods ol li.fl1 {float: left; width: 30% ;} + .periods ol li.fl1 label {width: 40%; margin-top: -0.3em; } + .periods ol li.fl1 input { width: 50%; } + + .periods ol li.fl2 {float: left; width: 30% ;} + .periods ol li.fl2 label {width: 40%; margin-top: -0.3em;} + .periods ol li.fl2 input { width: 50%; } + a.add_fields { + margin-left: 25%; + color: #666; + padding-left: 18px; + background: url(image-path('user_interface/ui/add.png')) no-repeat 0% 50%; + } + a.remove_fields { + color: #666; + padding-left: 18px; + background: url(image-path('user_interface/ui/remove.png')) no-repeat 0% 50%; + } + } diff --git a/app/views/exports/index.html.erb b/app/views/exports/index.html.erb index 25db2e1ba..b7847b70e 100644 --- a/app/views/exports/index.html.erb +++ b/app/views/exports/index.html.erb @@ -1,5 +1,5 @@ <%= title_tag t('.title') %> - +<div class="warning"><%= t('.warning') %> </div> <div class="page_info"> <span class="search"> <%= t("will_paginate.page_entries_info.search") %></span> <%= page_entries_info @exports %> </div> diff --git a/app/views/file_validations/index.html.erb b/app/views/file_validations/index.html.erb index e1416fa96..2e0cefbe8 100644 --- a/app/views/file_validations/index.html.erb +++ b/app/views/file_validations/index.html.erb @@ -1,5 +1,5 @@ <%= title_tag t('.title') %> - +<div class="warning"><%= t('.warning') %> </div> <div class="pagination"> <div class="page_info"> <%= page_entries_info @file_validations %> diff --git a/app/views/imports/index.html.erb b/app/views/imports/index.html.erb index 7e0d366a3..8469fbd7b 100644 --- a/app/views/imports/index.html.erb +++ b/app/views/imports/index.html.erb @@ -1,5 +1,5 @@ <%= title_tag t('.title') %> - +<div class="warning"><%= t('.warning') %> </div> <div class="page_info"> <span class="search"> <%= t("will_paginate.page_entries_info.search") %></span> <%= page_entries_info @imports %> </div> diff --git a/app/views/time_tables/_date_fields.erb b/app/views/time_tables/_date_fields.erb new file mode 100644 index 000000000..5d24456a3 --- /dev/null +++ b/app/views/time_tables/_date_fields.erb @@ -0,0 +1,4 @@ +<%= f.inputs :class => 'dates nested-fields' do %> + <%= f.input :date, :as => :date_picker, :label => @time_table.human_attribute_name("date"), :wrapper_html => { :class => 'fl1' }%> + <%= link_to_remove_association t('actions.destroy'), f %> +<% end %> diff --git a/app/views/time_tables/_dates.html.erb b/app/views/time_tables/_dates.html.erb index 47ae01710..663efec58 100644 --- a/app/views/time_tables/_dates.html.erb +++ b/app/views/time_tables/_dates.html.erb @@ -1,10 +1,6 @@ <ul class='dates'> <% @time_table.dates.each do |tmd| %> <li class="<%= (tmd.position%2==0) ? 'odd' : 'even' %>"><%= l tmd.date %> - <div class="actions"> - <%= link_to t("actions.destroy"), referential_time_table_time_table_date_path(@referential, @time_table,tmd), :method => :delete, :confirm => t('time_tables.actions.destroy_date_confirm'), :class => "remove" %> - </div> - </li> <% end %> </ul> diff --git a/app/views/time_tables/_form.erb b/app/views/time_tables/_form.erb index fbced7bd4..3325b97a5 100644 --- a/app/views/time_tables/_form.erb +++ b/app/views/time_tables/_form.erb @@ -17,6 +17,43 @@ <%= form.input :objectid, :required => !@time_table.new_record?, :input_html => { :disabled => !@time_table.new_record? } %> <% end %> + <h3 class="time_table_dates"> + <a class="dates"><%= @time_table.human_attribute_name("dates") %> + <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %> + <%= image_tag("icons/minus.png" , :class => "switcher" ) %> + </a> + </h3> + + <div class="dates content" id="dates_content"> + <div id="dates"> + <%= form.semantic_fields_for :dates do |p| %> + <%= render "date_fields", :f => p %> + <% end %> + </div> + <%= link_to_add_association t("time_tables.actions.add_date"), form, :dates , + :"data-association-insertion-method" => "append", + :"data-association-insertion-node" => "div#dates" %> + </div> + + + <h3 class="time_table_periods"> + <a class="periods"><%= @time_table.human_attribute_name("periods") %> + <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %> + <%= image_tag("icons/minus.png" , :class => "switcher" ) %> + </a> + + </h3> + <div class="periods content" id="periods_content"> + <div id="periods"> + <%= form.semantic_fields_for :periods do |p| %> + <%= render "period_fields", :f => p %> + <% end %> + </div> + <%= link_to_add_association t("time_tables.actions.add_period"), form, :periods , + :"data-association-insertion-method" => "append", + :"data-association-insertion-node" => "div#periods"%> + </div> + <p/> <%= form.actions do %> <%= form.action :submit, :as => :button %> <%= form.action :cancel, :as => :link %> diff --git a/app/views/time_tables/_period_fields.erb b/app/views/time_tables/_period_fields.erb new file mode 100644 index 000000000..120a526bb --- /dev/null +++ b/app/views/time_tables/_period_fields.erb @@ -0,0 +1,5 @@ +<%= f.inputs :class => 'periods nested-fields' do %> + <%= f.input :period_start, :as => :date_picker, :label => @time_table.human_attribute_name("period_start"), :wrapper_html => { :class => 'fl1' }%> + <%= f.input :period_end, :as => :date_picker, :label => @time_table.human_attribute_name("period_end"), :wrapper_html => { :class => 'fl2' }%> + <%= link_to_remove_association t('actions.destroy'), f %> +<% end %> diff --git a/app/views/time_tables/_periods.html.erb b/app/views/time_tables/_periods.html.erb index 9f3974735..1f0aea057 100644 --- a/app/views/time_tables/_periods.html.erb +++ b/app/views/time_tables/_periods.html.erb @@ -1,9 +1,6 @@ <ul class='periods'> <% @time_table.periods.each do |tmp| %> <li class='period'><%= t('time_tables.show.from')%> <%= l tmp.period_start %> <%= t('time_tables.show.to')%> <%= l tmp.period_end %> - <div class="actions"> - <%= link_to t("actions.destroy"), referential_time_table_time_table_period_path(@referential, @time_table,tmp), :method => :delete, :confirm => t('time_tables.actions.destroy_period_confirm'), :class => "remove" %> - </div> </li> <% end %> </ul> diff --git a/app/views/time_tables/show.html.erb b/app/views/time_tables/show.html.erb index 60eee8d04..3536dedae 100644 --- a/app/views/time_tables/show.html.erb +++ b/app/views/time_tables/show.html.erb @@ -70,18 +70,33 @@ <%= @time_table.creator_id %> </p> </div> - <h3 class="dates"><%= t('.dates') %></h3> - <%= render "dates" %> - <h3 class="periods"><%= t('.periods') %></h3> - <%= render "periods" %> + <h3 class="time_table_dates"> + <a class="dates"><%= @time_table.human_attribute_name("dates") %> + <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %> + <%= image_tag("icons/minus.png" , :class => "switcher" ) %> + </a> + </h3> + + <div class="dates content"> + <%= render "dates" %> + </div> + + <h3 class="time_table_periods"> + <a class="periods"><%= @time_table.human_attribute_name("periods") %> + <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %> + <%= image_tag("icons/minus.png" , :class => "switcher" ) %> + </a> + + </h3> + <div class="periods content"> + <%= render "periods" %> + </div> </div> <% content_for :sidebar do %> <ul class="actions"> <li><%= link_to t('time_tables.actions.edit'), edit_referential_time_table_path(@referential, @time_table), :class => "edit" %></li> <li><%= link_to t('time_tables.actions.destroy'), referential_time_table_path(@referential, @time_table), :method => :delete, :confirm => t('time_tables.actions.destroy_confirm'), :class => "remove" %></li> - <li><%= link_to t('time_tables.show.add_date'), new_referential_time_table_time_table_date_path(@referential, @time_table), :class => 'add' %></li> - <li><%= link_to t('time_tables.show.add_period'), new_referential_time_table_time_table_period_path(@referential, @time_table), :class => 'add' %></li> <br> </ul> <% end %> |
