diff options
| author | Robert | 2017-05-12 08:29:03 +0200 |
|---|---|---|
| committer | Robert | 2017-05-12 08:29:03 +0200 |
| commit | a0eb6ea4e8f3ae56a691820a50958a4acf92bcb5 (patch) | |
| tree | c14da433ba7754b01f47894f27d1a793cb3e6c6a | |
| parent | c007b5f1442b903948373337a6cc7d7d42364b41 (diff) | |
| parent | 1f6fb9c73206f3984d2f942d5d16fb9c094b2164 (diff) | |
| download | chouette-core-a0eb6ea4e8f3ae56a691820a50958a4acf92bcb5.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
17 files changed, 54 insertions, 82 deletions
diff --git a/app/assets/javascripts/es6_browserified/itineraries/index.js b/app/assets/javascripts/es6_browserified/itineraries/index.js index 12a44e376..53f7bc7f9 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/index.js +++ b/app/assets/javascripts/es6_browserified/itineraries/index.js @@ -5,6 +5,7 @@ var createStore = require('redux').createStore var reducers = require('./reducers') var App = require('./components/App') var addInput = require('./form_helper') +let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) // logger, DO NOT REMOVE // var applyMiddleware = require('redux').applyMiddleware @@ -14,7 +15,6 @@ var addInput = require('./form_helper') const getInitialState = () => { let state = [] - let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) datas.map(function(v, i) { let fancyText = v.name.replace("'", "\'") @@ -67,10 +67,7 @@ render( document.querySelector('input[name=commit]').addEventListener('click', (event)=>{ let state = store.getState() state.stopPoints.map((stopPoint, i) => { - if (stopPoint.stoppoint_id == undefined){ - stopPoint.stoppoint_id = "" - } - addInput('id',stopPoint.stoppoint_id, i) + addInput('id', (datas[i]) ? datas[i].stoppoint_id : '', i) addInput('stop_area_id',stopPoint.stoparea_id, i) addInput('position',i, i) addInput('for_boarding',stopPoint.for_boarding, i) diff --git a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js b/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js index a1be73cd9..18fee8bd1 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js +++ b/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js @@ -60,7 +60,6 @@ const stopPoints = (state = [], action) => { case 'UPDATE_INPUT_VALUE': return state.map( (t, i) => { if (i === action.index) { - updateFormForDeletion(t) return _.assign( {}, t, diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js index 090e22721..ca266af08 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js @@ -8,18 +8,10 @@ class SaveJourneyPattern extends Component{ super(props) } - componentDidUpdate(prevProps, prevState) { - if(prevProps.status.isFetching == true){ - $(window).scrollTop(0); - submitMover(); - } - } - render() { - if(this.props.status.isFetching == true || (this.props.status.policy['journey_patterns.edit'] == false)) { + if(this.props.status.policy['journey_patterns.edit'] == false) { return false - } - if(this.props.status.fetchSuccess == true) { + }else{ return ( <div className='row mt-md'> <div className='col-lg-12 text-right'> @@ -38,8 +30,6 @@ class SaveJourneyPattern extends Component{ </div> </div> ) - } else { - return false } } } diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js index e90099283..cc7980b22 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js @@ -17,7 +17,7 @@ class ExceptionsInDay extends Component { <div className='td'> <button type='button' - className='btn btn-circle' + className={'btn btn-circle' + (this.props.value.current_month[this.props.index].excluded_date ? ' active' : '')} data-actiontype='remove' onClick={(e) => { $(e.currentTarget).toggleClass('active') @@ -33,7 +33,7 @@ class ExceptionsInDay extends Component { <div className='td'> <button type='button' - className='btn btn-circle' + className={'btn btn-circle' + (this.props.value.current_month[this.props.index].include_date ? ' active' : '')} data-actiontype='add' onClick={(e) => { $(e.currentTarget).toggleClass('active') diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js index 98b355fcb..24c91f282 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js +++ b/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js @@ -8,39 +8,25 @@ class SaveTimetable extends Component{ super(props) } - componentDidUpdate(prevProps, prevState) { - if(prevProps.status.isFetching == true){ - $(window).scrollTop(0); - submitMover(); - } - } - render() { - if(this.props.status.isFetching == true) { - return false - } - if(this.props.status.fetchSuccess == true) { - return ( - <div className='row mt-md'> - <div className='col-lg-12 text-right'> - <form className='time_tables formSubmitr ml-xs' onSubmit={e => {e.preventDefault()}}> - <button - className='btn btn-default' - type='button' - onClick={e => { - e.preventDefault() - actions.submitTimetable(this.props.dispatch, this.props.timetable, this.props.metas) - }} - > - Valider - </button> - </form> - </div> + return ( + <div className='row mt-md'> + <div className='col-lg-12 text-right'> + <form className='time_tables formSubmitr ml-xs' onSubmit={e => {e.preventDefault()}}> + <button + className='btn btn-default' + type='button' + onClick={e => { + e.preventDefault() + actions.submitTimetable(this.props.dispatch, this.props.timetable, this.props.metas) + }} + > + Valider + </button> + </form> </div> - ) - } else { - return false - } + </div> + ) } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js index f494ab92b..27a82cf48 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js @@ -8,18 +8,10 @@ class SaveVehicleJourneys extends Component{ super(props) } - componentDidUpdate(prevProps, prevState) { - if(prevProps.status.isFetching == true) { - $(window).scrollTop(0); - submitMover(); - } - } - render() { - if(this.props.status.isFetching == true || this.props.filters.policy['vehicle_journeys.edit'] == false) { + if(this.props.filters.policy['vehicle_journeys.edit'] == false) { return false - } - if(this.props.status.fetchSuccess == true) { + }else{ return ( <div className='row mt-md'> <div className='col-lg-12 text-right'> @@ -38,8 +30,6 @@ class SaveVehicleJourneys extends Component{ </div> </div> ) - } else { - return false } } } diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js index bab6fa78f..f5e01de7c 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js +++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js @@ -64,7 +64,7 @@ class DuplicateVehicleJourney extends Component { <div className='col-lg-3 col-md-3 col-sm-3 col-xs-3'> <div className='form-group'> <label className='control-label is-required'>Horaire de départ</label> - <span className={'input-group time'}> + <span className={'input-group time' + (actions.getSelected(this.props.vehicleJourneys).length > 1 ? ' disabled' : '')}> <input type='number' ref='duplicate_time_hh' @@ -72,6 +72,7 @@ class DuplicateVehicleJourney extends Component { max='23' className='form-control' defaultValue={this.getDefaultValue('hour')} + disabled={(actions.getSelected(this.props.vehicleJourneys).length > 1 ? 'disabled' : '')} /> <span>:</span> <input @@ -81,6 +82,7 @@ class DuplicateVehicleJourney extends Component { max='59' className='form-control' defaultValue={this.getDefaultValue('minute')} + disabled={(actions.getSelected(this.props.vehicleJourneys).length > 1 ? 'disabled' : '')} /> </span> </div> diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb index 316652ca2..a44a03886 100644 --- a/app/controllers/vehicle_journeys_controller.rb +++ b/app/controllers/vehicle_journeys_controller.rb @@ -80,8 +80,10 @@ class VehicleJourneysController < ChouetteController scope = route.vehicle_journeys.with_stops @q = scope.search filtered_ransack_params - grouping = ransack_periode_filter - @q.build_grouping(grouping) if grouping + + # Fixme 3358 + # grouping = ransack_periode_filter + # @q.build_grouping(grouping) if grouping @ppage = 20 @vehicle_journeys = @q.result.paginate(:page => params[:page], :per_page => @ppage) diff --git a/app/controllers/workbenches_controller.rb b/app/controllers/workbenches_controller.rb index d621a28d7..ccd55965b 100644 --- a/app/controllers/workbenches_controller.rb +++ b/app/controllers/workbenches_controller.rb @@ -68,7 +68,7 @@ class WorkbenchesController < BreadcrumbController def ransack_periode scope return scope unless params[:q] && params[:q]['validity_period'] periode = params[:q]['validity_period'] - return scope if periode['end_lteq(1i)'].empty? || periode['begin_gteq(1i)'].empty? + return scope if periode['end_lteq(1i)'].blank? || periode['begin_gteq(1i)'].blank? begin_range = Date.civil(periode["begin_gteq(1i)"].to_i, periode["begin_gteq(2i)"].to_i, periode["begin_gteq(3i)"].to_i) end_range = Date.civil(periode["end_lteq(1i)"].to_i, periode["end_lteq(2i)"].to_i, periode["end_lteq(3i)"].to_i) diff --git a/app/models/chouette/line.rb b/app/models/chouette/line.rb index 075bb3a08..33a2fbb00 100644 --- a/app/models/chouette/line.rb +++ b/app/models/chouette/line.rb @@ -73,7 +73,7 @@ class Chouette::Line < Chouette::ActiveRecord end def display_name - [objectid.local_id, name, company.try(:name)].compact.join(' - ') + [objectid.local_id, number, name, company.try(:name)].compact.join(' - ') end def companies diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 37f609163..60684411a 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -551,8 +551,9 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord def duplicate tt = self.deep_clone :include => [:periods, :dates], :except => :object_version tt.uniq_objectid + tt.tag_list.add(*self.tag_list) unless self.tag_list.empty? tt.created_from = self - tt.comment = I18n.t("activerecord.copy", :name => self.comment) + tt.comment = I18n.t("activerecord.copy", :name => self.comment) tt end end diff --git a/app/views/referentials/_filters.html.slim b/app/views/referentials/_filters.html.slim index 1ed0939ff..4b09ce1a6 100644 --- a/app/views/referentials/_filters.html.slim +++ b/app/views/referentials/_filters.html.slim @@ -9,7 +9,7 @@ .ffg-row .form-group.togglable = f.label @reflines.human_attribute_name(:transport_mode), required: false, class: 'control-label' - = f.input :transport_mode_eq_any, collection: LineReferential.first.transport_modes, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("transport_modes.label.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list' } + = f.input :transport_mode_eq_any, collection: @referential.lines.pluck(:transport_mode).uniq.compact, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list' } .form-group.togglable = f.label @reflines.human_attribute_name(:network), required: false, class: 'control-label' diff --git a/app/views/routes/show.html.slim b/app/views/routes/show.html.slim index 2bdf78119..7ab628690 100644 --- a/app/views/routes/show.html.slim +++ b/app/views/routes/show.html.slim @@ -3,14 +3,14 @@ @route.name, 'Lorem ipsum dolor sit amet', t('last_update', time: l(@route.updated_at, format: :short)), - (policy(@route).edit? ? link_to(t('actions.edit'), edit_referential_line_route_path(@referential, @line, @route), class: 'btn btn-default') : '') do + (policy(@route).edit? ? link_to(t('actions.edit'), edit_referential_line_route_path(@referential, @line, @route), data: {turbolinks: false}, class: 'btn btn-default') : '') do / Below is secundary actions & optional contents (filters, ...) .row.mb-sm .col-lg-12.text-right - = link_to t('journey_patterns.index.title'), [@referential, @line, @route, :journey_patterns_collection], class: 'btn btn-primary' + = link_to t('journey_patterns.index.title'), [@referential, @line, @route, :journey_patterns_collection], data: {turbolinks: false}, class: 'btn btn-primary' - if @route.journey_patterns.present? - = link_to t('vehicle_journeys.actions.index'), [@referential, @line, @route, :vehicle_journeys], class: 'btn btn-primary' + = link_to t('vehicle_journeys.actions.index'), [@referential, @line, @route, :vehicle_journeys], data: {turbolinks: false}, class: 'btn btn-primary' = link_to t('vehicle_journey_exports.new.title'), referential_line_route_vehicle_journey_exports_path(@referential, @line, @route, format: :zip), class: 'btn btn-primary' diff --git a/config/locales/transport_modes.fr.yml b/config/locales/transport_modes.fr.yml index e889d59f6..13d037815 100644 --- a/config/locales/transport_modes.fr.yml +++ b/config/locales/transport_modes.fr.yml @@ -1,3 +1,4 @@ +# Deprecated, to remove (see #3324) fr: transport_modes: name: "Mode de transport" diff --git a/spec/models/chouette/line_spec.rb b/spec/models/chouette/line_spec.rb index ac9b2c6cd..5a339e7ed 100644 --- a/spec/models/chouette/line_spec.rb +++ b/spec/models/chouette/line_spec.rb @@ -3,6 +3,7 @@ require 'spec_helper' describe Chouette::Line, :type => :model do subject { create(:line) } + it { is_expected.to belong_to(:line_referential) } # it { is_expected.to validate_presence_of :network } # it { is_expected.to validate_presence_of :company } @@ -12,6 +13,13 @@ describe Chouette::Line, :type => :model do # it { should validate_presence_of :objectid } it { is_expected.to validate_uniqueness_of :objectid } + describe '#display_name' do + it 'should display local_id, number, name and company name' do + display_name = "#{subject.objectid.local_id} - #{subject.number} - #{subject.name} - #{subject.company.try(:name)}" + expect(subject.display_name).to eq(display_name) + end + end + describe '#objectid' do subject { super().objectid } it { is_expected.to be_kind_of(Chouette::NetexObjectId) } diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb index 18d76e805..1d0fa8585 100644 --- a/spec/models/chouette/time_table_spec.rb +++ b/spec/models/chouette/time_table_spec.rb @@ -1363,6 +1363,11 @@ end end describe "#duplicate" do + it 'should also copy tags' do + subject.tag_list.add('tag1', 'tag2') + expect(subject.duplicate.tag_list).to include('tag1', 'tag2') + end + it "should be a copy of" do target=subject.duplicate expect(target.id).to be_nil diff --git a/spec/models/line_spec.rb b/spec/models/line_spec.rb deleted file mode 100644 index 259c7035a..000000000 --- a/spec/models/line_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' - -describe Chouette::Line, type: :model do - - subject { create(:line) } - - it { is_expected.to belong_to(:line_referential) } - -end |
