diff options
| -rw-r--r-- | .babelrc | 19 | ||||
| -rw-r--r-- | .gitignore | 7 | ||||
| -rw-r--r-- | .postcssrc.yml | 3 | ||||
| -rw-r--r-- | Gemfile | 4 | ||||
| -rw-r--r-- | Gemfile.lock | 676 | ||||
| -rw-r--r-- | Procfile | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/application.js | 4 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/itineraries/components/App.js | 28 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/itineraries/reducers/index.js | 8 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/components/App.js | 21 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js | 48 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js | 18 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/journey_patterns/reducers/stopPointsList.js | 8 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/ConfirmModal.js | 51 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js | 43 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js | 149 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/reducers/index.js | 16 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/time_tables/reducers/status.js | 17 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/vehicle_journeys/batch.js | 26 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js | 38 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/vehicle_journeys/components/ConfirmModal.js | 42 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/index.js | 20 | ||||
| -rw-r--r-- | app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/stopPointsList.js | 8 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/calendar.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/compliance_control_set.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/import.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/time_table.js | 7 | ||||
| -rw-r--r-- | app/assets/javascripts/filters/workbench.js | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/helpers/date_filters.js | 38 | ||||
| -rw-r--r-- | app/javascript/date_filters/calendar.js | 5 | ||||
| -rw-r--r-- | app/javascript/date_filters/compliance_check_set.js | 5 | ||||
| -rw-r--r-- | app/javascript/date_filters/compliance_control_set.js | 5 | ||||
| -rw-r--r-- | app/javascript/date_filters/import.js | 5 | ||||
| -rw-r--r-- | app/javascript/date_filters/index.js | 17 | ||||
| -rw-r--r-- | app/javascript/date_filters/time_table.js | 5 | ||||
| -rw-r--r-- | app/javascript/date_filters/workbench.js | 5 | ||||
| -rw-r--r-- | app/javascript/helpers/clone.js (renamed from app/assets/javascripts/es6_browserified/helpers/clone.js) | 8 | ||||
| -rw-r--r-- | app/javascript/helpers/date_filters.js | 29 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/actions/index.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js) | 4 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/App.js | 21 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/ConfirmModal.js | 46 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/CreateModal.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js) | 12 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/EditModal.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/EditModal.js) | 12 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/JourneyPattern.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js) | 12 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/JourneyPatterns.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js) | 15 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/Navigate.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js) | 12 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/components/SaveJourneyPattern.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js) | 12 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/AddJourneyPattern.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js) | 8 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/ConfirmModal.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/ConfirmModal.js) | 8 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/JourneyPatternList.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js) | 8 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/Modal.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js) | 10 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/Navigate.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js) | 10 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/containers/SaveJourneyPattern.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js) | 9 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/editMode.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/reducers/editMode.js) | 6 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/index.js | 18 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/journeyPatterns.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js) | 10 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/modal.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js) | 9 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/pagination.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js) | 9 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/status.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js) | 10 | ||||
| -rw-r--r-- | app/javascript/journey_patterns/reducers/stopPointsList.js | 6 | ||||
| -rw-r--r-- | app/javascript/packs/application.js | 11 | ||||
| -rw-r--r-- | app/javascript/packs/date_filters.js | 1 | ||||
| -rw-r--r-- | app/javascript/packs/journey_patterns/index.js (renamed from app/assets/javascripts/es6_browserified/journey_patterns/index.js) | 13 | ||||
| -rw-r--r-- | app/javascript/packs/routes/edit.js | 81 | ||||
| -rw-r--r-- | app/javascript/packs/routes/show.js | 102 | ||||
| -rw-r--r-- | app/javascript/packs/time_tables/edit.js (renamed from app/assets/javascripts/es6_browserified/time_tables/index.js) | 16 | ||||
| -rw-r--r-- | app/javascript/packs/vehicle_journeys/index.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/index.js) | 18 | ||||
| -rw-r--r-- | app/javascript/routes/actions/index.js (renamed from app/assets/javascripts/es6_browserified/itineraries/actions/index.js) | 0 | ||||
| -rw-r--r-- | app/javascript/routes/components/App.js | 25 | ||||
| -rw-r--r-- | app/javascript/routes/components/BSelect2.js (renamed from app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js) | 11 | ||||
| -rw-r--r-- | app/javascript/routes/components/OlMap.js (renamed from app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js) | 9 | ||||
| -rw-r--r-- | app/javascript/routes/components/StopPoint.js (renamed from app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js) | 15 | ||||
| -rw-r--r-- | app/javascript/routes/components/StopPointList.js (renamed from app/assets/javascripts/es6_browserified/itineraries/components/StopPointList.js) | 13 | ||||
| -rw-r--r-- | app/javascript/routes/containers/AddStopPoint.js (renamed from app/assets/javascripts/es6_browserified/itineraries/containers/AddStopPoint.js) | 10 | ||||
| -rw-r--r-- | app/javascript/routes/containers/VisibleStopPoints.js (renamed from app/assets/javascripts/es6_browserified/itineraries/containers/VisibleStopPoints.js) | 8 | ||||
| -rw-r--r-- | app/javascript/routes/form_helper.js (renamed from app/assets/javascripts/es6_browserified/itineraries/form_helper.js) | 2 | ||||
| -rw-r--r-- | app/javascript/routes/index.js (renamed from app/assets/javascripts/es6_browserified/itineraries/index.js) | 16 | ||||
| -rw-r--r-- | app/javascript/routes/reducers/index.js | 8 | ||||
| -rw-r--r-- | app/javascript/routes/reducers/stopPoints.js (renamed from app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js) | 10 | ||||
| -rw-r--r-- | app/javascript/routes/show.js (renamed from app/assets/javascripts/es6_browserified/itineraries/show.js) | 0 | ||||
| -rw-r--r-- | app/javascript/time_tables/actions/index.js (renamed from app/assets/javascripts/es6_browserified/time_tables/actions/index.js) | 30 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/ConfirmModal.js | 50 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/ErrorModal.js | 42 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/ExceptionsInDay.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js) | 10 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/Metas.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/Metas.js) | 13 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/Navigate.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js) | 16 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/PeriodForm.js | 148 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/PeriodManager.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js) | 11 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/PeriodsInDay.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js) | 10 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/SaveTimetable.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js) | 13 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/TagsSelect2.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/TagsSelect2.js) | 29 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/TimeTableDay.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js) | 7 | ||||
| -rw-r--r-- | app/javascript/time_tables/components/Timetable.js (renamed from app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js) | 16 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/App.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/App.js) | 26 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/ConfirmModal.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/ConfirmModal.js) | 8 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/ErrorModal.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/ErrorModal.js) | 8 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/Metas.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js) | 8 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/Navigate.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/Navigate.js) | 10 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/PeriodForm.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js) | 14 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/SaveTimetable.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js) | 9 | ||||
| -rw-r--r-- | app/javascript/time_tables/containers/Timetable.js (renamed from app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js) | 8 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/index.js | 16 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/metas.js (renamed from app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js) | 27 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/modal.js (renamed from app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js) | 34 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/pagination.js (renamed from app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js) | 18 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/status.js | 15 | ||||
| -rw-r--r-- | app/javascript/time_tables/reducers/timetable.js (renamed from app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js) | 59 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/actions/index.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js) | 6 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/batch.js | 26 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/App.js | 38 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/ConfirmModal.js | 40 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/Filters.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js) | 15 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/Navigate.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js) | 12 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js) | 12 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/ToggleArrivals.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/ToggleArrivals.js) | 9 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/Tools.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js) | 25 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/VehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js) | 12 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/VehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js) | 15 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/CreateModal.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js) | 16 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/DeleteVehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js) | 11 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/DuplicateVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js) | 14 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js) | 14 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/NotesEditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js) | 14 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/ShiftVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js) | 12 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js) | 14 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js) | 19 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js) | 22 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js) | 17 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js) | 21 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/components/tools/select2s/fr.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/fr.js) | 0 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/ConfirmModal.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ConfirmModal.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/Filters.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/Navigate.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Navigate.js) | 9 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/SaveVehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js) | 9 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/ToggleArrivals.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ToggleArrivals.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/Tools.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/VehicleJourneysList.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/AddVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/AddVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/EditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/EditVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/ShiftVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/ShiftVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js) | 8 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/editMode.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/editMode.js) | 6 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/filters.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js) | 10 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/index.js | 20 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/modal.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js) | 10 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/pagination.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js) | 9 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/status.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js) | 10 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/stopPointsList.js | 6 | ||||
| -rw-r--r-- | app/javascript/vehicle_journeys/reducers/vehicleJourneys.js (renamed from app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js) | 10 | ||||
| -rw-r--r-- | app/views/calendars/index.html.slim | 2 | ||||
| -rw-r--r-- | app/views/compliance_check_sets/_filters.html.slim | 2 | ||||
| -rw-r--r-- | app/views/compliance_control_sets/index.html.slim | 2 | ||||
| -rw-r--r-- | app/views/imports/index.html.slim | 2 | ||||
| -rw-r--r-- | app/views/journey_patterns_collections/show.html.slim | 2 | ||||
| -rw-r--r-- | app/views/layouts/application.html.slim | 2 | ||||
| -rw-r--r-- | app/views/routes/_form.html.slim | 2 | ||||
| -rw-r--r-- | app/views/routes/show.html.slim | 3 | ||||
| -rw-r--r-- | app/views/time_tables/edit.html.slim | 2 | ||||
| -rw-r--r-- | app/views/time_tables/index.html.slim | 2 | ||||
| -rw-r--r-- | app/views/vehicle_journeys/index.html.slim | 2 | ||||
| -rw-r--r-- | app/views/workbenches/show.html.slim | 2 | ||||
| -rw-r--r-- | config/application.rb | 8 | ||||
| -rw-r--r-- | config/environments/production.rb | 2 | ||||
| -rw-r--r-- | config/webpack/dev.js | 12 | ||||
| -rw-r--r-- | config/webpack/development.js | 3 | ||||
| -rw-r--r-- | config/webpack/environment.js | 36 | ||||
| -rw-r--r-- | config/webpack/production.js | 12 | ||||
| -rw-r--r-- | config/webpack/staging.js | 12 | ||||
| -rw-r--r-- | config/webpack/test.js | 3 | ||||
| -rw-r--r-- | config/webpacker.yml | 81 | ||||
| -rw-r--r-- | lib/tasks/ci.rake | 8 | ||||
| -rw-r--r-- | package.json | 22 | ||||
| -rw-r--r-- | spec/fixtures/target_OFFRE_TRANSDEV_20170301122517.zip | bin | 0 -> 5446 bytes | |||
| -rw-r--r-- | spec/fixtures/target_OFFRE_TRANSDEV_20170301122519.zip | bin | 0 -> 5249 bytes | |||
| -rw-r--r-- | spec/javascript/journey_patterns/actions_spec.js (renamed from spec/javascripts/journey_patterns/actions_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/journey_patterns/reducers/journey_patterns_spec.js (renamed from spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js) | 3 | ||||
| -rw-r--r-- | spec/javascript/journey_patterns/reducers/modal_spec.js (renamed from spec/javascripts/journey_patterns/reducers/modal_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/journey_patterns/reducers/pagination_spec.js (renamed from spec/javascripts/journey_patterns/reducers/pagination_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/journey_patterns/reducers/status_spec.js (renamed from spec/javascripts/journey_patterns/reducers/status_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/routes/actions_spec.js (renamed from spec/javascripts/itineraries/actions_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/routes/reducers/stop_points_spec.js (renamed from spec/javascripts/itineraries/reducers/stop_points_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/spec_helper.coffee (renamed from spec/javascripts/spec_helper.coffee) | 0 | ||||
| -rw-r--r-- | spec/javascript/spec_helper.js (renamed from spec/javascripts/spec_helper.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/actions_spec.js (renamed from spec/javascripts/time_table/actions_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/reducers/metas_spec.js (renamed from spec/javascripts/time_table/reducers/metas_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/reducers/modal_spec.js (renamed from spec/javascripts/time_table/reducers/modal_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/reducers/pagination_spec.js (renamed from spec/javascripts/time_table/reducers/pagination_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/reducers/status_spec.js (renamed from spec/javascripts/time_table/reducers/status_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/time_table/reducers/timetable_spec.js (renamed from spec/javascripts/time_table/reducers/timetable_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/actions_spec.js (renamed from spec/javascripts/vehicle_journeys/actions_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/reducers/filters_spec.js (renamed from spec/javascripts/vehicle_journeys/reducers/filters_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/reducers/modal_spec.js (renamed from spec/javascripts/vehicle_journeys/reducers/modal_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/reducers/pagination_spec.js (renamed from spec/javascripts/vehicle_journeys/reducers/pagination_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/reducers/status_spec.js (renamed from spec/javascripts/vehicle_journeys/reducers/status_spec.js) | 2 | ||||
| -rw-r--r-- | spec/javascript/vehicle_journeys/reducers/vehicle_journeys_spec.js (renamed from spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js) | 2 | ||||
| -rw-r--r-- | spec/teaspoon_env.rb | 6 | 
199 files changed, 1548 insertions, 2002 deletions
| diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..efa322372 --- /dev/null +++ b/.babelrc @@ -0,0 +1,19 @@ +{ +  "presets": [ +    ["env", { +      "modules": false, +      "targets": { +        "browsers": "> 1%", +        "uglify": true +      }, +      "useBuiltIns": true +    }], +      "react" +  ], + +  "plugins": [ +    "syntax-dynamic-import", +    "transform-object-rest-spread", +    ["transform-class-properties", { "spec": true }] +  ] +} diff --git a/.gitignore b/.gitignore index 41d838ee0..a950559ef 100644 --- a/.gitignore +++ b/.gitignore @@ -30,10 +30,10 @@ coverage  # IDE  .idea -bin/  # Ignore uploaded files  /public/uploads +/public/packs  # Ignore node modules  /node_modules @@ -42,6 +42,9 @@ bin/  /bin/rake  /bin/rails  /bin/rspec +/bin/spring  # FIXME Ignore ./spec/services/zip_service/regression_4273_spec.rb files -/spec/fixtures/target_*.zip
\ No newline at end of file +/spec/fixtures/target_*.zip/public/packs +/public/packs-test +/node_modules diff --git a/.postcssrc.yml b/.postcssrc.yml new file mode 100644 index 000000000..a123d1fd2 --- /dev/null +++ b/.postcssrc.yml @@ -0,0 +1,3 @@ +plugins: +  postcss-smart-import: {} +  postcss-cssnext: {} @@ -15,8 +15,8 @@ gem 'uglifier', '~> 2.7.2'  # Use CoffeeScript for .js.coffee assets and views  gem 'coffee-rails', '~> 4.0.0' -# ES6 powa -gem 'browserify-rails' +# Webpacker +gem 'webpacker', '~> 3.0'  # Use jquery as the JavaScript library  gem 'jquery-rails', '~> 3.1.4' # Update to v4 for Rails 4.2 diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 065390ebe..000000000 --- a/Gemfile.lock +++ /dev/null @@ -1,676 +0,0 @@ -GIT -  remote: git@github.com:af83/has_array_of.git -  revision: a6439d93291c7a1ca224ea95a8d39ed101e2f05f -  specs: -    has_array_of (0.0.1) -      activerecord (>= 4.0) -      pg -      railties (>= 4.0) - -GIT -  remote: git@github.com:af83/stif-codifline-api.git -  revision: c0efb26bf202e0770348bdac060b14c28e575ac2 -  specs: -    codifligne (0.0.2) -      nokogiri (>= 1.7.2) - -GIT -  remote: git@github.com:af83/stif-reflex-api.git -  revision: 7c517b98c3900c9bb0b81dd0ccab97f8e8f5f249 -  specs: -    reflex (0.0.1) -      nokogiri (~> 1.6) - -GIT -  remote: https://github.com/af83/language_engine.git -  revision: c4d7d5af781b55c1df4806c3960caf3c22f1ee96 -  specs: -    language_engine (0.0.7) -      rails (~> 4.2) - -GIT -  remote: https://github.com/af83/whenever.git -  revision: b7963381a11243affe4f35881c85be0710f434e3 -  specs: -    whenever (0.9.4) -      chronic (>= 0.6.3) - -GEM -  remote: https://rubygems.org/ -  remote: https://rails-assets.org/ -  specs: -    RedCloth (4.3.2) -    SyslogLogger (2.0) -    aasm (4.12.0) -      concurrent-ruby (~> 1.0) -    actionmailer (4.2.8) -      actionpack (= 4.2.8) -      actionview (= 4.2.8) -      activejob (= 4.2.8) -      mail (~> 2.5, >= 2.5.4) -      rails-dom-testing (~> 1.0, >= 1.0.5) -    actionpack (4.2.8) -      actionview (= 4.2.8) -      activesupport (= 4.2.8) -      rack (~> 1.6) -      rack-test (~> 0.6.2) -      rails-dom-testing (~> 1.0, >= 1.0.5) -      rails-html-sanitizer (~> 1.0, >= 1.0.2) -    actionview (4.2.8) -      activesupport (= 4.2.8) -      builder (~> 3.1) -      erubis (~> 2.7.0) -      rails-dom-testing (~> 1.0, >= 1.0.5) -      rails-html-sanitizer (~> 1.0, >= 1.0.3) -    active_attr (0.10.0) -      activemodel (>= 3.0.2, < 5.1) -      activesupport (>= 3.0.2, < 5.1) -    activejob (4.2.8) -      activesupport (= 4.2.8) -      globalid (>= 0.3.0) -    activemodel (4.2.8) -      activesupport (= 4.2.8) -      builder (~> 3.1) -    activerecord (4.2.8) -      activemodel (= 4.2.8) -      activesupport (= 4.2.8) -      arel (~> 6.0) -    activerecord-postgis-adapter (3.0.0) -      activerecord (~> 4.2) -      rgeo-activerecord (~> 4.0) -    activesupport (4.2.8) -      i18n (~> 0.7) -      minitest (~> 5.1) -      thread_safe (~> 0.3, >= 0.3.4) -      tzinfo (~> 1.1) -    acts-as-taggable-on (4.0.0) -      activerecord (>= 4.0) -    acts_as_list (0.6.0) -      activerecord (>= 3.0) -    acts_as_tree (2.1.0) -      activerecord (>= 3.0.0) -    addressable (2.3.8) -    apartment (1.0.2) -      activerecord (>= 3.1.2, < 5.0) -      rack (>= 1.3.6) -    arel (6.0.4) -    ast (2.3.0) -    astrolabe (1.3.1) -      parser (~> 2.2) -    awesome_print (1.7.0) -    bcrypt (3.1.11) -    better_errors (2.1.1) -      coderay (>= 1.0.0) -      erubis (>= 2.6.6) -      rack (>= 0.9.0) -    binding_of_caller (0.7.2) -      debug_inspector (>= 0.0.1) -    breadcrumbs_on_rails (3.0.1) -    browserify-rails (1.1.0) -      railties (>= 4.0.0, < 5.0) -    builder (3.2.3) -    bundler-audit (0.5.0) -      bundler (~> 1.2) -      thor (~> 0.18) -    byebug (9.0.6) -    calendar_helper (0.2.5) -      open4 -    capistrano (2.13.5) -      highline -      net-scp (>= 1.0.0) -      net-sftp (>= 2.0.0) -      net-ssh (>= 2.0.14) -      net-ssh-gateway (>= 1.1.0) -    capistrano-ext (1.2.1) -      capistrano (>= 1.0.0) -    capistrano-npm (0.0.2) -      capistrano (>= 2.5.5) -    capybara (2.4.4) -      mime-types (>= 1.16) -      nokogiri (>= 1.3.3) -      rack (>= 1.0.0) -      rack-test (>= 0.5.4) -      xpath (~> 2.0) -    carrierwave (1.0.0) -      activemodel (>= 4.0.0) -      activesupport (>= 4.0.0) -      mime-types (>= 1.16) -    choice (0.2.0) -    chronic (0.10.2) -    cliver (0.3.2) -    cocoon (1.2.9) -    coderay (1.1.1) -    coffee-rails (4.0.1) -      coffee-script (>= 2.2.0) -      railties (>= 4.0.0, < 5.0) -    coffee-script (2.4.1) -      coffee-script-source -      execjs -    coffee-script-source (1.12.2) -    concurrent-ruby (1.0.5) -    connection_pool (2.2.1) -    crack (0.4.3) -      safe_yaml (~> 1.0.0) -    cucumber (2.4.0) -      builder (>= 2.1.2) -      cucumber-core (~> 1.5.0) -      cucumber-wire (~> 0.0.1) -      diff-lcs (>= 1.1.3) -      gherkin (~> 4.0) -      multi_json (>= 1.7.5, < 2.0) -      multi_test (>= 0.1.2) -    cucumber-core (1.5.0) -      gherkin (~> 4.0) -    cucumber-rails (1.4.5) -      capybara (>= 1.1.2, < 3) -      cucumber (>= 1.3.8, < 4) -      mime-types (>= 1.16, < 4) -      nokogiri (~> 1.5) -      railties (>= 3, < 5.1) -    cucumber-wire (0.0.1) -    daemons (1.2.4) -    database_cleaner (1.5.3) -    dbf (3.1.0) -    dbshell-rails (0.0.2) -    debug_inspector (0.0.2) -    deep_cloneable (2.0.2) -      activerecord (>= 3.1.0, < 5.0.0) -    devise (3.5.10) -      bcrypt (~> 3.0) -      orm_adapter (~> 0.1) -      railties (>= 3.2.6, < 5) -      responders -      thread_safe (~> 0.1) -      warden (~> 1.2.3) -    devise-async (0.10.2) -      devise (>= 3.2, < 4.0) -    devise-encryptable (0.2.0) -      devise (>= 2.1.0) -    devise-i18n (1.1.2) -    devise_cas_authenticatable (1.10.0) -      devise (>= 1.2.0) -      rubycas-client (>= 2.2.1) -    devise_invitable (1.6.1) -      actionmailer (>= 3.2.6) -      devise (>= 3.2.0) -    diff-lcs (1.3) -    docile (1.1.5) -    dr-ffi-proj4 (0.0.3) -      ffi (>= 1.0.0) -    draper (2.1.0) -      actionpack (>= 3.0) -      activemodel (>= 3.0) -      activesupport (>= 3.0) -      request_store (~> 1.0) -    easy_translate (0.5.0) -      json -      thread -      thread_safe -    email_spec (1.6.0) -      launchy (~> 2.1) -      mail (~> 2.2) -    enumerize (2.1.2) -      activesupport (>= 3.2) -    erubis (2.7.0) -    execjs (2.7.0) -    fabrication (2.14.1) -    factory_girl (4.8.0) -      activesupport (>= 3.0.0) -    factory_girl_rails (4.8.0) -      factory_girl (~> 4.8.0) -      railties (>= 3.0.0) -    faker (1.7.3) -      i18n (~> 0.5) -    fakeweb (1.3.0) -    faraday (0.9.2) -      multipart-post (>= 1.2, < 3) -    faraday_middleware (0.9.2) -      faraday (>= 0.7.4, < 0.10) -    ffaker (2.1.0) -    ffi (1.9.18) -    ffi-geos (1.2.0) -      ffi (>= 1.0.0) -    font-awesome-sass (4.7.0) -      sass (>= 3.2) -    formtastic (3.1.5) -      actionpack (>= 3.2.13) -    geokit (1.6.7) -      multi_json (>= 1.3.2) -    georuby (2.3.0) -    georuby-ext (0.0.5) -      activesupport (>= 3.2.6) -      dbf -      dr-ffi-proj4 (>= 0.0.3) -      ffi-geos (>= 0.1.1) -      geokit (= 1.6.7) -      georuby (>= 1.9.8) -      rgeo (>= 0.3.20) -    gherkin (4.1.1) -    globalid (0.3.7) -      activesupport (>= 4.1.0) -    google-analytics-rails (1.1.0) -    has_scope (0.7.0) -      actionpack (>= 4.1, < 5.1) -      activesupport (>= 4.1, < 5.1) -    hashdiff (0.3.4) -    highline (1.7.8) -    hike (1.2.3) -    hstore_accessor (1.1.0) -      activerecord (>= 4.0.0) -    htmlbeautifier (1.3.1) -    httparty (0.14.0) -      multi_xml (>= 0.5.2) -    i18n (0.8.6) -    i18n-tasks (0.9.15) -      activesupport (>= 4.0.2) -      ast (>= 2.1.0) -      easy_translate (>= 0.5.0) -      erubis -      highline (>= 1.7.3) -      i18n -      parser (>= 2.2.3.0) -      rainbow (~> 2.2) -      terminal-table (>= 1.5.1) -    inherited_resources (1.7.1) -      actionpack (>= 3.2, < 5.1) -      has_scope (~> 0.6) -      railties (>= 3.2, < 5.1) -      responders -    jbuilder (2.6.3) -      activesupport (>= 3.0.0, < 5.2) -      multi_json (~> 1.2) -    jquery-rails (3.1.4) -      railties (>= 3.0, < 5.0) -      thor (>= 0.14, < 2.0) -    json (1.8.6) -    launchy (2.4.3) -      addressable (~> 2.3) -    letter_opener (1.4.1) -      launchy (~> 2.2) -    libv8 (3.16.14.19) -    license_finder (3.0.0) -      bundler -      httparty -      rubyzip -      thor -      with_env (> 1.0) -      xml-simple -    loofah (2.0.3) -      nokogiri (>= 1.5.9) -    mail (2.6.4) -      mime-types (>= 1.16, < 4) -    map_layers (0.0.4) -    method_source (0.8.2) -    mime-types (3.1) -      mime-types-data (~> 3.2015) -    mime-types-data (3.2016.0521) -    mimemagic (0.3.2) -    mini_portile2 (2.3.0) -    minitest (5.10.3) -    multi_json (1.12.1) -    multi_test (0.1.2) -    multi_xml (0.6.0) -    multipart-post (2.0.0) -    net-scp (1.2.1) -      net-ssh (>= 2.6.5) -    net-sftp (2.1.2) -      net-ssh (>= 2.6.5) -    net-ssh (4.1.0) -    net-ssh-gateway (2.0.0) -      net-ssh (>= 4.0.0) -    newrelic_rpm (4.0.0.332) -    nokogiri (1.8.1) -      mini_portile2 (~> 2.3.0) -    open4 (1.3.4) -    orm_adapter (0.5.0) -    parser (2.4.0.0) -      ast (~> 2.2) -    pg (0.20.0) -    phantomjs (2.1.1.0) -    poltergeist (1.14.0) -      capybara (~> 2.1) -      cliver (~> 0.3.1) -      websocket-driver (>= 0.2.0) -    polyamorous (1.3.1) -      activerecord (>= 3.0) -    polylines (0.3.0) -    pry (0.10.4) -      coderay (~> 1.1.0) -      method_source (~> 0.8.1) -      slop (~> 3.4) -    pry-byebug (3.4.2) -      byebug (~> 9.0) -      pry (~> 0.10) -    pry-rails (0.3.6) -      pry (>= 0.10.4) -    pundit (1.1.0) -      activesupport (>= 3.0.0) -    quiet_assets (1.1.0) -      railties (>= 3.1, < 5.0) -    rabl (0.13.1) -      activesupport (>= 2.3.14) -    rack (1.6.8) -    rack-protection (1.5.3) -      rack -    rack-test (0.6.3) -      rack (>= 1.0) -    rails (4.2.8) -      actionmailer (= 4.2.8) -      actionpack (= 4.2.8) -      actionview (= 4.2.8) -      activejob (= 4.2.8) -      activemodel (= 4.2.8) -      activerecord (= 4.2.8) -      activesupport (= 4.2.8) -      bundler (>= 1.3.0, < 2.0) -      railties (= 4.2.8) -      sprockets-rails -    rails-assets-bootstrap-sass-official (3.3.7) -      rails-assets-jquery (>= 1.9.1, < 4) -    rails-assets-footable (2.0.3) -      rails-assets-jquery (>= 1.4.4) -    rails-assets-jquery (3.2.1) -    rails-assets-jquery-tokeninput (1.7.0) -      rails-assets-jquery (>= 1.5) -    rails-assets-modernizr (2.0.6) -    rails-assets-respond (1.4.2) -    rails-assets-tagmanager (3.0.1) -      rails-assets-jquery (>= 1.0.0) -    rails-deprecated_sanitizer (1.0.3) -      activesupport (>= 4.2.0.alpha) -    rails-dom-testing (1.0.8) -      activesupport (>= 4.2.0.beta, < 5.0) -      nokogiri (~> 1.6) -      rails-deprecated_sanitizer (>= 1.0.1) -    rails-erd (1.5.0) -      activerecord (>= 3.2) -      activesupport (>= 3.2) -      choice (~> 0.2.0) -      ruby-graphviz (~> 1.2) -    rails-html-sanitizer (1.0.3) -      loofah (~> 2.0) -    rails-i18n (4.0.9) -      i18n (~> 0.7) -      railties (~> 4.0) -    rails-observers (0.1.2) -      activemodel (~> 4.0) -    railties (4.2.8) -      actionpack (= 4.2.8) -      activesupport (= 4.2.8) -      rake (>= 0.8.7) -      thor (>= 0.18.1, < 2.0) -    rainbow (2.2.2) -      rake -    rake (12.0.0) -    ransack (1.8.3) -      actionpack (>= 3.0) -      activerecord (>= 3.0) -      activesupport (>= 3.0) -      i18n -      polyamorous (~> 1.3) -    rb-fsevent (0.9.8) -    rb-inotify (0.9.8) -      ffi (>= 0.5.0) -    rdoc (4.3.0) -    redis (3.3.3) -    ref (2.0.0) -    request_store (1.3.2) -    responders (2.3.0) -      railties (>= 4.2.0, < 5.1) -    rgeo (0.5.3) -    rgeo-activerecord (4.0.5) -      activerecord (~> 4.2) -      rgeo (~> 0.3) -    roo (2.7.1) -      nokogiri (~> 1) -      rubyzip (~> 1.1, < 2.0.0) -    rspec-core (3.5.4) -      rspec-support (~> 3.5.0) -    rspec-expectations (3.5.0) -      diff-lcs (>= 1.2.0, < 2.0) -      rspec-support (~> 3.5.0) -    rspec-mocks (3.5.0) -      diff-lcs (>= 1.2.0, < 2.0) -      rspec-support (~> 3.5.0) -    rspec-rails (3.5.2) -      actionpack (>= 3.0) -      activesupport (>= 3.0) -      railties (>= 3.0) -      rspec-core (~> 3.5.0) -      rspec-expectations (~> 3.5.0) -      rspec-mocks (~> 3.5.0) -      rspec-support (~> 3.5.0) -    rspec-support (3.5.0) -    ruby-graphviz (1.2.3) -    rubycas-client (2.3.9) -      activesupport -    rubyzip (1.2.1) -    safe_yaml (1.0.4) -    sass (3.2.19) -    sass-rails (4.0.5) -      railties (>= 4.0.0, < 5.0) -      sass (~> 3.2.2) -      sprockets (~> 2.8, < 3.0) -      sprockets-rails (~> 2.0) -    sawyer (0.6.0) -      addressable (~> 2.3.5) -      faraday (~> 0.8, < 0.10) -    sdoc (0.4.2) -      json (~> 1.7, >= 1.7.7) -      rdoc (~> 4.0) -    select2-rails (4.0.3) -      thor (~> 0.14) -    sequel (4.47.0) -    shoulda-matchers (3.1.1) -      activesupport (>= 4.0.0) -    sidekiq (4.2.10) -      concurrent-ruby (~> 1.0) -      connection_pool (~> 2.2, >= 2.2.0) -      rack-protection (>= 1.5.0) -      redis (~> 3.2, >= 3.2.1) -    simple_form (3.1.1) -      actionpack (~> 4.0) -      activemodel (~> 4.0) -    simplecov (0.14.1) -      docile (~> 1.1.0) -      json (>= 1.8, < 3) -      simplecov-html (~> 0.10.0) -    simplecov-html (0.10.0) -    simplecov-rcov (0.2.3) -      simplecov (>= 0.4.1) -    sinatra (1.4.8) -      rack (~> 1.5) -      rack-protection (~> 1.4) -      tilt (>= 1.3, < 3) -    slim (3.0.7) -      temple (~> 0.7.6) -      tilt (>= 1.3.3, < 2.1) -    slim-rails (3.1.2) -      actionpack (>= 3.1) -      railties (>= 3.1) -      slim (~> 3.0) -    slop (3.6.0) -    spring (2.0.1) -      activesupport (>= 4.2) -    spring-commands-rspec (1.0.4) -      spring (>= 0.9.1) -    sprockets (2.12.4) -      hike (~> 1.2) -      multi_json (~> 1.0) -      rack (~> 1.0) -      tilt (~> 1.1, != 1.3.0) -    sprockets-rails (2.3.3) -      actionpack (>= 3.0) -      activesupport (>= 3.0) -      sprockets (>= 2.8, < 4.0) -    sqlite3 (1.3.13) -    teaspoon (1.1.5) -      railties (>= 3.2.5, < 6) -    teaspoon-jasmine (2.3.4) -      teaspoon (>= 1.0.0) -    temple (0.7.7) -    terminal-table (1.8.0) -      unicode-display_width (~> 1.1, >= 1.1.1) -    therubyracer (0.12.3) -      libv8 (~> 3.16.14.15) -      ref -    thor (0.19.4) -    thread (0.2.2) -    thread_safe (0.3.6) -    tilt (1.4.1) -    timecop (0.9.1) -    transpec (3.3.0) -      activesupport (>= 3.0, < 6.0) -      astrolabe (~> 1.2) -      bundler (~> 1.3) -      json (>= 1.8, < 3.0) -      parser (>= 2.3.0.7) -      rainbow (>= 1.99.1, < 3.0) -    tzinfo (1.2.3) -      thread_safe (~> 0.1) -    uglifier (2.7.2) -      execjs (>= 0.3.0) -      json (>= 1.8.0) -    unicode-display_width (1.3.0) -    warden (1.2.7) -      rack (>= 1.0) -    webmock (3.0.1) -      addressable (>= 2.3.6) -      crack (>= 0.3.2) -      hashdiff -    websocket-driver (0.6.5) -      websocket-extensions (>= 0.1.0) -    websocket-extensions (0.1.2) -    will_paginate (3.1.5) -    will_paginate-bootstrap (1.0.1) -      will_paginate (>= 3.0.3) -    with_env (1.1.0) -    xml-simple (1.1.5) -    xpath (2.0.0) -      nokogiri (~> 1.3) - -PLATFORMS -  ruby - -DEPENDENCIES -  RedCloth (~> 4.3.0) -  SyslogLogger -  aasm -  active_attr -  activerecord-postgis-adapter (~> 3.0.0) -  acts-as-taggable-on (~> 4.0.0) -  acts_as_list (~> 0.6.0) -  acts_as_tree (~> 2.1.0) -  apartment (~> 1.0.0) -  awesome_print -  better_errors -  binding_of_caller -  breadcrumbs_on_rails -  browserify-rails -  bundler-audit -  calendar_helper (= 0.2.5) -  capistrano (= 2.13.5) -  capistrano-ext -  capistrano-npm -  capybara (~> 2.4.0) -  carrierwave (~> 1.0) -  cocoon -  codifligne! -  coffee-rails (~> 4.0.0) -  cucumber-rails -  daemons -  database_cleaner -  dbshell-rails -  deep_cloneable (~> 2.0.0) -  devise (~> 3.5.4) -  devise-async -  devise-encryptable -  devise-i18n -  devise_cas_authenticatable -  devise_invitable -  draper -  email_spec -  enumerize (~> 2.1.2) -  fabrication (~> 2.14.1) -  factory_girl_rails (~> 4.0) -  faker -  fakeweb -  faraday (~> 0.9.1) -  faraday_middleware (~> 0.9.1) -  ffaker (~> 2.1.0) -  font-awesome-sass (~> 4.7) -  formtastic (= 3.1.5) -  georuby (= 2.3.0) -  georuby-ext (= 0.0.5) -  google-analytics-rails -  has_array_of! -  hstore_accessor (~> 1.1) -  htmlbeautifier -  i18n-tasks -  inherited_resources -  jbuilder (~> 2.0) -  jquery-rails (~> 3.1.4) -  json -  language_engine! -  launchy -  letter_opener -  license_finder -  map_layers (= 0.0.4) -  mimemagic -  newrelic_rpm -  pg -  phantomjs -  poltergeist -  polylines -  pry-byebug -  pry-rails -  pundit -  quiet_assets -  rabl -  rails (~> 4.2.8) -  rails-assets-bootstrap-sass-official (~> 3.3.0)! -  rails-assets-footable (~> 2.0.3)! -  rails-assets-jquery-tokeninput (~> 1.7.0)! -  rails-assets-modernizr (~> 2.0.6)! -  rails-assets-respond! -  rails-assets-tagmanager (~> 3.0.1.0)! -  rails-erd -  rails-i18n (~> 4.0.0) -  rails-observers -  rake -  ransack -  rb-fsevent -  rb-inotify -  reflex! -  responders -  rgeo (~> 0.5.2) -  roo -  rspec-rails (~> 3.5.0) -  rubyzip -  sass-rails (~> 4.0.3) -  sawyer (~> 0.6.0) -  sdoc (~> 0.4.0) -  select2-rails (~> 4.0, >= 4.0.3) -  sequel -  shoulda-matchers (~> 3.1) -  sidekiq -  simple_form (~> 3.1.0) -  simplecov -  simplecov-rcov -  sinatra -  slim-rails (~> 3.1) -  spring -  spring-commands-rspec -  sqlite3 -  teaspoon-jasmine -  therubyracer (~> 0.12) -  timecop -  transpec -  uglifier (~> 2.7.2) -  webmock -  whenever! -  will_paginate -  will_paginate-bootstrap - -BUNDLED WITH -   1.15.4 diff --git a/Procfile b/Procfile new file mode 100644 index 000000000..49e7bf922 --- /dev/null +++ b/Procfile @@ -0,0 +1,2 @@ +web: bundle exec rails s +webpack: bin/webpack --progress --colors --watch
\ No newline at end of file diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 0024b62b5..4c5aff22f 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -20,5 +20,5 @@  //= require footable/footable.sort  //= require_directory ./plugins  //= require_directory . -require('whatwg-fetch') -require('babel-polyfill') +// require('whatwg-fetch') +// require('babel-polyfill') diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/App.js b/app/assets/javascripts/es6_browserified/itineraries/components/App.js deleted file mode 100644 index f4cc5e4a6..000000000 --- a/app/assets/javascripts/es6_browserified/itineraries/components/App.js +++ /dev/null @@ -1,28 +0,0 @@ -var React = require('react') -var { Component, PropTypes } = require('react') -var AddStopPoint = require('../containers/AddStopPoint') -var VisibleStopPoints = require('../containers/VisibleStopPoints') -const clone = require('../../helpers/clone') -const I18n = clone(window , "I18n", true) - -class App extends Component { - -  getChildContext() { -    return { I18n } -  } - -  render() { -    return ( -      <div> -        <VisibleStopPoints /> -        <AddStopPoint /> -      </div> -    )   -  }  -} - -App.childContextTypes = { -  I18n: PropTypes.object -} - -module.exports = App diff --git a/app/assets/javascripts/es6_browserified/itineraries/reducers/index.js b/app/assets/javascripts/es6_browserified/itineraries/reducers/index.js deleted file mode 100644 index 446c9ed36..000000000 --- a/app/assets/javascripts/es6_browserified/itineraries/reducers/index.js +++ /dev/null @@ -1,8 +0,0 @@ -var combineReducers = require('redux').combineReducers -var stopPoints = require('./stopPoints') - -const stopPointsApp = combineReducers({ -  stopPoints -}) - -module.exports = stopPointsApp diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js deleted file mode 100644 index 7513fc506..000000000 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js +++ /dev/null @@ -1,21 +0,0 @@ -var React = require('react') -var AddJourneyPattern = require('../containers/AddJourneyPattern') -var Navigate = require('../containers/Navigate') -var Modal = require('../containers/Modal') -var ConfirmModal = require('../containers/ConfirmModal') -var SaveJourneyPattern = require('../containers/SaveJourneyPattern') -var JourneyPatternList = require('../containers/JourneyPatternList') - -const App = () => ( -  <div> -    <Navigate /> -    <JourneyPatternList /> -    <Navigate /> -    <AddJourneyPattern /> -    <SaveJourneyPattern /> -    <ConfirmModal /> -    <Modal/> -  </div> -) - -module.exports = App diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js deleted file mode 100644 index c2229d991..000000000 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/ConfirmModal.js +++ /dev/null @@ -1,48 +0,0 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes - -const ConfirmModal = ({dispatch, modal, onModalAccept, onModalCancel, journeyPatterns}) => ( -  <div className={ 'modal fade ' + ((modal.type == 'confirm') ? 'in' : '') } id='ConfirmModal'> -    <div className='modal-container'> -      <div className='modal-dialog'> -        <div className='modal-content'> -          <div className='modal-header'> -            <h4 className='modal-title'>Confirmation</h4> -          </div> -          <div className='modal-body'> -            <div className='mt-md mb-md'> -              <p>Vous vous apprêtez à changer de page. Voulez-vous valider vos modifications avant cela ?</p> -            </div> -          </div> -          <div className='modal-footer'> -            <button -              className='btn btn-link' -              data-dismiss='modal' -              type='button' -              onClick= {() => {onModalCancel(modal.confirmModal.callback)}} -              > -              Ne pas valider -            </button> -            <button -              className='btn btn-primary' -              data-dismiss='modal' -              type='button' -              onClick = {() => {onModalAccept(modal.confirmModal.callback, journeyPatterns)}} -              > -              Valider -            </button> -          </div> -        </div> -      </div> -    </div> -  </div> -) - -ConfirmModal.propTypes = { -  modal: PropTypes.object.isRequired, -  onModalAccept: PropTypes.func.isRequired, -  onModalCancel: PropTypes.func.isRequired -} - -module.exports = ConfirmModal diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js deleted file mode 100644 index a9c28b83e..000000000 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js +++ /dev/null @@ -1,18 +0,0 @@ -var combineReducers = require('redux').combineReducers -var editMode = require('./editMode') -var status = require('./status') -var journeyPatterns = require('./journeyPatterns') -var pagination = require('./pagination') -var modal = require('./modal') -var stopPointsList = require('./stopPointsList') - -const journeyPatternsApp = combineReducers({ -  editMode, -  status, -  journeyPatterns, -  pagination, -  stopPointsList, -  modal -}) - -module.exports = journeyPatternsApp diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/stopPointsList.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/stopPointsList.js deleted file mode 100644 index 9abacc8c8..000000000 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/stopPointsList.js +++ /dev/null @@ -1,8 +0,0 @@ -const stopPointsList = (state = [], action) => { -  switch (action.type) { -    default: -      return state -  } -} - -module.exports = stopPointsList diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ConfirmModal.js b/app/assets/javascripts/es6_browserified/time_tables/components/ConfirmModal.js deleted file mode 100644 index 674a03296..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ConfirmModal.js +++ /dev/null @@ -1,51 +0,0 @@ -var React = require('react') -var { PropTypes } = require('react') - -const ConfirmModal = ({dispatch, modal, onModalAccept, onModalCancel, timetable, metas}, {I18n}) => ( -  <div className={ 'modal fade ' + ((modal.type == 'confirm') ? 'in' : '') } id='ConfirmModal'> -    <div className='modal-container'> -      <div className='modal-dialog'> -        <div className='modal-content'> -          <div className='modal-header'> -            <h4 className='modal-title'>{I18n.time_tables.edit.confirm_modal.title}</h4> -          </div> -          <div className='modal-body'> -            <div className='mt-md mb-md'> -              <p>{I18n.time_tables.edit.confirm_modal.message}</p> -            </div> -          </div> -          <div className='modal-footer'> -            <button -              className='btn btn-link' -              data-dismiss='modal' -              type='button' -              onClick= {() => {onModalCancel(modal.confirmModal.callback)}} -              > -              {I18n.cancel} -            </button> -            <button -              className='btn btn-primary' -              data-dismiss='modal' -              type='button' -              onClick = {() => {onModalAccept(modal.confirmModal.callback, timetable, metas)}} -              > -              {I18n.actions.submit} -            </button> -          </div> -        </div> -      </div> -    </div> -  </div> -) - -ConfirmModal.propTypes = { -  modal: PropTypes.object.isRequired, -  onModalAccept: PropTypes.func.isRequired, -  onModalCancel: PropTypes.func.isRequired -} - -ConfirmModal.contextTypes = { -  I18n: PropTypes.object -} - -module.exports = ConfirmModal diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js b/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js deleted file mode 100644 index 2597a4870..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ErrorModal.js +++ /dev/null @@ -1,43 +0,0 @@ -var React = require('react') -var { PropTypes } = require('react') -var { errorModalMessage } = require('../actions') - -const ErrorModal = ({dispatch, modal, onModalClose}, {I18n}) => ( -  <div className={ 'modal fade ' + ((modal.type == 'error') ? 'in' : '') } id='ErrorModal'> -    <div className='modal-container'> -      <div className='modal-dialog'> -        <div className='modal-content'> -          <div className='modal-header'> -            <h4 className='modal-title'>{I18n.time_tables.edit.error_modal.title}</h4> -          </div> -          <div className='modal-body'> -            <div className='mt-md mb-md'> -              <p>{errorModalMessage(modal.modalProps.error)}</p> -            </div> -          </div> -          <div className='modal-footer'> -            <button -              className='btn btn-link' -              data-dismiss='modal' -              type='button' -              onClick= {() => {onModalClose()}} -              > -              {I18n.back} -            </button> -          </div> -        </div> -      </div> -    </div> -  </div> -) - -ErrorModal.propTypes = { -  modal: PropTypes.object.isRequired, -  onModalClose: PropTypes.func.isRequired -} - -ErrorModal.contextTypes = { -  I18n: PropTypes.object -} - -module.exports = ErrorModal diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js b/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js deleted file mode 100644 index d494109cc..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodForm.js +++ /dev/null @@ -1,149 +0,0 @@ -var React = require('react') -var { PropTypes } = require('react') -var _ = require('lodash') -let monthsArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] - -const formatNumber = (val) => { -  return ("0" + val).slice(-2) -} - -const makeDaysOptions = (daySelected) => { -  let arr = [] -  for(let i = 1; i < 32; i++) { -    arr.push(<option value={formatNumber(i)} key={i}>{formatNumber(i)}</option>) -  } -  return arr -} - -const makeMonthsOptions = (monthSelected) => { -  let arr = [] -  for(let i = 1; i < 13; i++) { -    arr.push(<option value={formatNumber(i)} key={i}>{monthsArray[i - 1]}</option>) -  } -  return arr -} - -const makeYearsOptions = (yearSelected) => { -  let arr = [] -  let startYear = new Date().getFullYear() - 3 -  for(let i = startYear; i <= startYear + 6; i++) { -    arr.push(<option key={i}>{i}</option>) -  } -  return arr -} - -const PeriodForm = ({modal, timetable, metas, onOpenAddPeriodForm, onClosePeriodForm, onUpdatePeriodForm, onValidatePeriodForm}, {I18n}) => ( -  <div className="container-fluid"> -    <div className="row"> -      <div className="col lg-6 col-lg-offset-3"> -        <div className='subform'> -          {modal.modalProps.active && -            <div> -              <div className="nested-head"> -                <div className="wrapper"> -                  <div> -                    <div className="form-group"> -                      <label htmlFor="" className="control-label required"> -                        {I18n.time_tables.edit.period_form.begin} -                        <abbr title="requis">*</abbr> -                      </label> -                    </div> -                  </div> -                  <div> -                    <div className="form-group"> -                      <label htmlFor="" className="control-label required"> -                      {I18n.time_tables.edit.period_form.end} -                        <abbr title="requis">*</abbr> -                      </label> -                    </div> -                  </div> -                </div> -              </div> -              <div className="nested-fields"> -                <div className="wrapper"> -                  <div> -                    <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}> -                      <div className="form-inline"> -                        <select value={formatNumber(modal.modalProps.begin.day)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'day', modal.modalProps)} id="q_validity_period_begin_gteq_3i" className="date required form-control"> -                          {makeDaysOptions(modal.modalProps.begin.day)} -                        </select> -                        <select value={formatNumber(modal.modalProps.begin.month)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'month', modal.modalProps)} id="q_validity_period_begin_gteq_2i" className="date required form-control"> -                          {makeMonthsOptions(modal.modalProps.begin.month)} -                        </select> -                        <select value={modal.modalProps.begin.year} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'year', modal.modalProps)} id="q_validity_period_begin_gteq_1i" className="date required form-control"> -                          {makeYearsOptions(modal.modalProps.begin.year)} -                        </select> -                      </div> -                    </div> -                  </div> -                  <div> -                    <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}> -                      <div className="form-inline"> -                        <select value={formatNumber(modal.modalProps.end.day)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'day', modal.modalProps)} id="q_validity_period_end_gteq_3i" className="date required form-control"> -                          {makeDaysOptions(modal.modalProps.end.day)} -                        </select> -                        <select value={formatNumber(modal.modalProps.end.month)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'month', modal.modalProps)} id="q_validity_period_end_gteq_2i" className="date required form-control"> -                          {makeMonthsOptions(modal.modalProps.end.month)} -                        </select> -                        <select value={modal.modalProps.end.year} onChange={(e) => onUpdatePeriodForm(e, 'end', 'year', modal.modalProps)} id="q_validity_period_end_gteq_1i" className="date required form-control"> -                          {makeYearsOptions(modal.modalProps.end.year)} -                        </select> -                      </div> -                    </div> -                  </div> -                </div> -              </div> - -              <div className='links nested-linker'> -                <span className='help-block small text-danger pull-left mt-xs ml-sm'> -                  {modal.modalProps.error} -                </span> -                <button -                  type='button' -                  className='btn btn-link' -                  onClick={onClosePeriodForm} -                > -                  {I18n.cancel} -                </button> -                <button -                  type='button' -                  className='btn btn-outline-primary mr-sm' -                  onClick={() => onValidatePeriodForm(modal.modalProps, timetable.time_table_periods, metas, _.filter(timetable.time_table_dates, ['in_out', true]))} -                > -                  {I18n.actions.submit} -                </button> -              </div> -            </div> -          } -          {!modal.modalProps.active && -            <div className="text-right"> -              <button -                type='button' -                className='btn btn-outline-primary' -                onClick={onOpenAddPeriodForm} -                > -                {I18n.time_tables.actions.add_period} -              </button> -            </div> -          } -        </div> -      </div> -    </div> -  </div> -) - -PeriodForm.propTypes = { -  modal: PropTypes.object.isRequired, -  metas: PropTypes.object.isRequired, -  onOpenAddPeriodForm: PropTypes.func.isRequired, -  onClosePeriodForm: PropTypes.func.isRequired, -  onUpdatePeriodForm: PropTypes.func.isRequired, -  onValidatePeriodForm: PropTypes.func.isRequired, -  timetable: PropTypes.object.isRequired -} - -PeriodForm.contextTypes = { -  I18n: PropTypes.object -} - -module.exports = PeriodForm diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js deleted file mode 100644 index 5b05aadda..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/index.js +++ /dev/null @@ -1,16 +0,0 @@ -var combineReducers = require('redux').combineReducers -var status = require('./status') -var pagination = require('./pagination') -var modal = require('./modal') -var timetable = require('./timetable') -var metas = require('./metas') - -const timeTablesApp = combineReducers({ -  timetable, -  metas, -  status, -  pagination, -  modal -}) - -module.exports = timeTablesApp diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js b/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js deleted file mode 100644 index fc205d0ae..000000000 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/status.js +++ /dev/null @@ -1,17 +0,0 @@ -var _ = require('lodash') - -const status = (state = {}, action) => { -  switch (action.type) { -    case 'UNAVAILABLE_SERVER': -      return _.assign({}, state, {fetchSuccess: false}) -    case 'FETCH_API': -      return _.assign({}, state, {isFetching: true}) -    case 'RECEIVE_TIME_TABLES': -    case 'RECEIVE_MONTH': -      return _.assign({}, state, {fetchSuccess: true, isFetching: false}) -    default: -      return state -  } -} - -module.exports = status diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/batch.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/batch.js deleted file mode 100644 index 284d7b268..000000000 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/batch.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { -	value: true -}); -exports.batchActions = batchActions; -exports.enableBatching = enableBatching; -var BATCH = exports.BATCH = 'BATCH'; - -function batchActions(actions) { -	return { -    type: BATCH, -    payload: actions -  }; -} - -function enableBatching(reduce) { -	return function batchingReducer(state, action) { -		switch (action.type) { -			case BATCH: -				return action.payload.reduce(batchingReducer, state); -			default: -				return reduce(state, action); -		} -	}; -} diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js deleted file mode 100644 index d5f419747..000000000 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/App.js +++ /dev/null @@ -1,38 +0,0 @@ -var React = require('react') -var VehicleJourneysList = require('../containers/VehicleJourneysList') -var Navigate = require('../containers/Navigate') -var ToggleArrivals = require('../containers/ToggleArrivals') -var Filters = require('../containers/Filters') -var SaveVehicleJourneys = require('../containers/SaveVehicleJourneys') -var ConfirmModal = require('../containers/ConfirmModal') -var Tools = require('../containers/Tools') - -const App = () => ( -  <div> - -    <div className='row'> -      <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'> -        <ToggleArrivals /> -      </div> -      <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6 text-right'> -        <Navigate /> -      </div> -    </div> - -    <Filters /> -    <VehicleJourneysList /> - -    <div className='row'> -      <div className='col-lg-12 text-right'> -        <Navigate /> -      </div> -    </div> - -    <SaveVehicleJourneys /> -    <Tools /> - -    <ConfirmModal /> -  </div> -) - -module.exports = App diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/ConfirmModal.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/ConfirmModal.js deleted file mode 100644 index 54f0287c6..000000000 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/ConfirmModal.js +++ /dev/null @@ -1,42 +0,0 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes - -const ConfirmModal = ({dispatch, modal, onModalAccept, onModalCancel, vehicleJourneys}) => ( -  <div className={ 'modal fade ' + ((modal.type == 'confirm') ? 'in' : '') } id='ConfirmModal'> -    <div className='modal-dialog'> -      <div className='modal-content'> -        <div className='modal-body'> -          <p> Voulez-vous valider vos modifications avant de changer de page? </p> -        </div> -        <div className='modal-footer'> -          <button -            className='btn btn-default' -            data-dismiss='modal' -            type='button' -            onClick= {() => {onModalCancel(modal.confirmModal.callback)}} -            > -            Ne pas valider -          </button> -          <button -            className='btn btn-danger' -            data-dismiss='modal' -            type='button' -            onClick = {() => {onModalAccept(modal.confirmModal.callback, vehicleJourneys)}} -            > -            Valider -          </button> -        </div> -      </div> -    </div> -  </div> -) - -ConfirmModal.propTypes = { -  vehicleJourneys: PropTypes.array.isRequired, -  modal: PropTypes.object.isRequired, -  onModalAccept: PropTypes.func.isRequired, -  onModalCancel: PropTypes.func.isRequired -} - -module.exports = ConfirmModal diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/index.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/index.js deleted file mode 100644 index 4e0839102..000000000 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/index.js +++ /dev/null @@ -1,20 +0,0 @@ -var combineReducers = require('redux').combineReducers -var vehicleJourneys = require('./vehicleJourneys') -var pagination = require('./pagination') -var modal = require('./modal') -var status = require('./status') -var filters = require('./filters') -var editMode = require('./editMode') -var stopPointsList = require('./stopPointsList') - -const vehicleJourneysApp = combineReducers({ -  vehicleJourneys, -  pagination, -  modal, -  status, -  filters, -  editMode, -  stopPointsList -}) - -module.exports = vehicleJourneysApp diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/stopPointsList.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/stopPointsList.js deleted file mode 100644 index 9abacc8c8..000000000 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/stopPointsList.js +++ /dev/null @@ -1,8 +0,0 @@ -const stopPointsList = (state = [], action) => { -  switch (action.type) { -    default: -      return state -  } -} - -module.exports = stopPointsList diff --git a/app/assets/javascripts/filters/calendar.js b/app/assets/javascripts/filters/calendar.js deleted file mode 100644 index a4e84777c..000000000 --- a/app/assets/javascripts/filters/calendar.js +++ /dev/null @@ -1,6 +0,0 @@ -const DateFilter = require('../helpers/date_filters') - -$(document).ready(function(){ -  const calendarDF = new DateFilter("#calendar_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_contains_date_NUMi") -  calendarDF() -}) diff --git a/app/assets/javascripts/filters/compliance_control_set.js b/app/assets/javascripts/filters/compliance_control_set.js deleted file mode 100644 index b0b00dea5..000000000 --- a/app/assets/javascripts/filters/compliance_control_set.js +++ /dev/null @@ -1,6 +0,0 @@ -const DateFilter = require('../helpers/date_filters') - -$(document).ready(function () { -  const complianceControlSetDF = new DateFilter("#compliance_control_set_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_updated_at_start_date_NUMi", "#q_updated_at_end_date_NUMi") -  complianceControlSetDF() -}) diff --git a/app/assets/javascripts/filters/import.js b/app/assets/javascripts/filters/import.js deleted file mode 100644 index d437dc7ed..000000000 --- a/app/assets/javascripts/filters/import.js +++ /dev/null @@ -1,6 +0,0 @@ -const DateFilter = require('../helpers/date_filters') - -$(document).ready(function(){ -  const importDF = new DateFilter("#import_filter_btn", "Tous les champs du filtre de date doivent être remplis", "#q_started_at_start_date_NUMi", "#q_started_at_end_date_NUMi") -  importDF() -}) diff --git a/app/assets/javascripts/filters/time_table.js b/app/assets/javascripts/filters/time_table.js deleted file mode 100644 index a336d2664..000000000 --- a/app/assets/javascripts/filters/time_table.js +++ /dev/null @@ -1,7 +0,0 @@ -$(document).ready(function(){ -  const DateFilter = require('../helpers/date_filters') - -  const timetableDF = new DateFilter("#time_table_filter_btn", window.I18n.fr.time_tables.error_period_filter, "#q_bounding_dates_start_date_NUMi", "#q_bounding_dates_end_date_NUMi") - -  timetableDF() -}) diff --git a/app/assets/javascripts/filters/workbench.js b/app/assets/javascripts/filters/workbench.js deleted file mode 100644 index dc5ac8487..000000000 --- a/app/assets/javascripts/filters/workbench.js +++ /dev/null @@ -1,6 +0,0 @@ -const DateFilter = require('../helpers/date_filters') - -$(document).ready(function(){ -  const workbenchDF = new DateFilter("#referential_filter_btn", window.I18n.fr.referentials.error_period_filter, "#q_validity_period_start_date_NUMi", "#q_validity_period_end_date_NUMi") -  workbenchDF() -}) diff --git a/app/assets/javascripts/helpers/date_filters.js b/app/assets/javascripts/helpers/date_filters.js deleted file mode 100644 index 1f48bb28f..000000000 --- a/app/assets/javascripts/helpers/date_filters.js +++ /dev/null @@ -1,38 +0,0 @@ -const DateFilter = function(buttonId, message, ...inputIds) { -  this.buttonId = buttonId -  this.inputIds = inputIds -  this.message = message - -  const getVal = (str, key) => { -    let newStr = str.replace(/NUM/, key) -    return $(newStr).val() -  } - -  const getDates = () => { -    return this.inputIds.reduce((arr, id) => { -      let newIds = [1, 2, 3].map(key => getVal(id, key)) -      arr.push(...newIds) -      return arr -    },[]) -  } - -  const allInputFilled = () => { -    return getDates().every(date => !!date) -  } - -  const noInputFilled = () => { -    return getDates().every(date => !date) -  } - -  const execute = () => { -    $(this.buttonId).on("click", (e) => { -      if (allInputFilled() == false && noInputFilled() == false) { -        e.preventDefault() -        alert(this.message) -      } -    }) -  } -  return execute -} - -module.exports = DateFilter diff --git a/app/javascript/date_filters/calendar.js b/app/javascript/date_filters/calendar.js new file mode 100644 index 000000000..7e5f678e2 --- /dev/null +++ b/app/javascript/date_filters/calendar.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const calendarDF = new DateFilter("calendar_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_contains_date_NUMi") + +export default calendarDF
\ No newline at end of file diff --git a/app/javascript/date_filters/compliance_check_set.js b/app/javascript/date_filters/compliance_check_set.js new file mode 100644 index 000000000..09544a3cd --- /dev/null +++ b/app/javascript/date_filters/compliance_check_set.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const complianceCheckSetDF = new DateFilter("compliance_check_set_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_created_at_start_date_NUMi", "q_created_at_end_date_NUMi") + +export default complianceCheckSetDF
\ No newline at end of file diff --git a/app/javascript/date_filters/compliance_control_set.js b/app/javascript/date_filters/compliance_control_set.js new file mode 100644 index 000000000..60d8e3bfa --- /dev/null +++ b/app/javascript/date_filters/compliance_control_set.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const complianceControlSetDF = new DateFilter("compliance_control_set_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_updated_at_start_date_NUMi", "q_updated_at_end_date_NUMi") + +export default complianceControlSetDF
\ No newline at end of file diff --git a/app/javascript/date_filters/import.js b/app/javascript/date_filters/import.js new file mode 100644 index 000000000..356371d30 --- /dev/null +++ b/app/javascript/date_filters/import.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const importDF = new DateFilter("import_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_started_at_start_date_NUMi", "q_started_at_end_date_NUMi") + +export default importDF
\ No newline at end of file diff --git a/app/javascript/date_filters/index.js b/app/javascript/date_filters/index.js new file mode 100644 index 000000000..ee892a7fe --- /dev/null +++ b/app/javascript/date_filters/index.js @@ -0,0 +1,17 @@ +import calendarDF from './calendar' +import complianceControlSetDF from './compliance_control_set' +import complianceCheckSetDF from './compliance_check_set' +import timetableDF from './time_table' +import importDF from './import' +import workbenchDF from './workbench' + +const DateFilters = { +  calendarDF, +  complianceCheckSetDF, +  complianceControlSetDF, +  importDF, +  timetableDF, +  workbenchDF +} + +export default DateFilters
\ No newline at end of file diff --git a/app/javascript/date_filters/time_table.js b/app/javascript/date_filters/time_table.js new file mode 100644 index 000000000..d26693993 --- /dev/null +++ b/app/javascript/date_filters/time_table.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const timetableDF = new DateFilter("time_table_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_bounding_dates_start_date_NUMi", "q_bounding_dates_end_date_NUMi") + +export default timetableDF
\ No newline at end of file diff --git a/app/javascript/date_filters/workbench.js b/app/javascript/date_filters/workbench.js new file mode 100644 index 000000000..cc4112d73 --- /dev/null +++ b/app/javascript/date_filters/workbench.js @@ -0,0 +1,5 @@ +import DateFilter from '../helpers/date_filters' + +const workbenchDF = new DateFilter("referential_filter_btn", "Tous les champs du filtre de date doivent être remplis", "q_validity_period_start_date_NUMi", "q_validity_period_end_date_NUMi") + +export default workbenchDF
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/helpers/clone.js b/app/javascript/helpers/clone.js index c3b627858..00127e2b1 100644 --- a/app/assets/javascripts/es6_browserified/helpers/clone.js +++ b/app/javascript/helpers/clone.js @@ -1,14 +1,12 @@ -const _ = require("lodash") +import _ from 'lodash'  /* This function helps having a bit more security when we pass data from the backend to the React parts    It clones the obj (window variable) and then conditionnaly delete the window variable  */ -const clone = (window, key, deletable = false) => { +export default function clone(window, key, deletable = false) {    let obj = _.cloneDeep(window[key])    if (deletable) delete window[key]    return obj -} - -module.exports = clone
\ No newline at end of file +}
\ No newline at end of file diff --git a/app/javascript/helpers/date_filters.js b/app/javascript/helpers/date_filters.js new file mode 100644 index 000000000..53c9da641 --- /dev/null +++ b/app/javascript/helpers/date_filters.js @@ -0,0 +1,29 @@ +export default function DateFilter(buttonId, message, ...inputIds) { +  this.button = document.getElementById(buttonId) +  this.inputIds = inputIds +  this.message = message + +  const getVal = (str, key) => { +    let newStr = str.replace(/NUM/, key) +    return document.getElementById(newStr).value +  } + +  const getDates = () => { +    return this.inputIds.reduce((arr, id) => { +      let newIds = [1, 2, 3].map(key => getVal(id, key)) +      arr.push(...newIds) +      return arr +    }, []) +  } + +  const allInputFilled = () => getDates().every(date => !!date) + +  const noInputFilled = () => getDates().every(date => !date) +   +  this.button && this.button.addEventListener('click', (event) => { +    if (!allInputFilled() && !noInputFilled()) { +      event.preventDefault() +      alert(this.message) +    } +  }) +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/javascript/journey_patterns/actions/index.js index 825e7bb7d..0c1cb5f5c 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/javascript/journey_patterns/actions/index.js @@ -1,4 +1,4 @@ -var Promise = require('promise-polyfill') +import Promise from 'promise-polyfill'  // To add to window  if (!window.Promise) { @@ -217,4 +217,4 @@ const actions = {    }  } -module.exports = actions +export default actions
\ No newline at end of file diff --git a/app/javascript/journey_patterns/components/App.js b/app/javascript/journey_patterns/components/App.js new file mode 100644 index 000000000..ac6214cc1 --- /dev/null +++ b/app/javascript/journey_patterns/components/App.js @@ -0,0 +1,21 @@ +import React from 'react' +import AddJourneyPattern from '../containers/AddJourneyPattern' +import Navigate from '../containers/Navigate' +import Modal from '../containers/Modal' +import ConfirmModal from '../containers/ConfirmModal' +import SaveJourneyPattern from '../containers/SaveJourneyPattern' +import JourneyPatternList from '../containers/JourneyPatternList' + +const App = () => ( +  <div> +    <Navigate /> +    <JourneyPatternList /> +    <Navigate /> +    <AddJourneyPattern /> +    <SaveJourneyPattern /> +    <ConfirmModal /> +    <Modal/> +  </div> +) + +export default App diff --git a/app/javascript/journey_patterns/components/ConfirmModal.js b/app/javascript/journey_patterns/components/ConfirmModal.js new file mode 100644 index 000000000..2cc1bef44 --- /dev/null +++ b/app/javascript/journey_patterns/components/ConfirmModal.js @@ -0,0 +1,46 @@ +import React, { PropTypes } from 'react' + +export default function ConfirmModal({dispatch, modal, onModalAccept, onModalCancel, journeyPatterns}) { +  return ( +    <div className={'modal fade ' + ((modal.type == 'confirm') ? 'in' : '')} id='ConfirmModal'> +      <div className='modal-container'> +        <div className='modal-dialog'> +          <div className='modal-content'> +            <div className='modal-header'> +              <h4 className='modal-title'>Confirmation</h4> +            </div> +            <div className='modal-body'> +              <div className='mt-md mb-md'> +                <p>Vous vous apprêtez à changer de page. Voulez-vous valider vos modifications avant cela ?</p> +              </div> +            </div> +            <div className='modal-footer'> +              <button +                className='btn btn-link' +                data-dismiss='modal' +                type='button' +                onClick={() => { onModalCancel(modal.confirmModal.callback) }} +              > +                Ne pas valider +            </button> +              <button +                className='btn btn-primary' +                data-dismiss='modal' +                type='button' +                onClick={() => { onModalAccept(modal.confirmModal.callback, journeyPatterns) }} +              > +                Valider +            </button> +            </div> +          </div> +        </div> +      </div> +    </div> +  ) +} + +ConfirmModal.propTypes = { +  modal: PropTypes.object.isRequired, +  onModalAccept: PropTypes.func.isRequired, +  onModalCancel: PropTypes.func.isRequired +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js b/app/javascript/journey_patterns/components/CreateModal.js index 12871431a..d0eff6e57 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/CreateModal.js +++ b/app/javascript/journey_patterns/components/CreateModal.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class CreateModal extends Component { +export default class CreateModal extends Component {    constructor(props) {      super(props)    } @@ -121,6 +119,4 @@ CreateModal.propTypes = {    onOpenCreateModal: PropTypes.func.isRequired,    onModalClose: PropTypes.func.isRequired,    onAddJourneyPattern: PropTypes.func.isRequired -} - -module.exports = CreateModal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/EditModal.js b/app/javascript/journey_patterns/components/EditModal.js index 1fc935932..699f89b85 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/EditModal.js +++ b/app/javascript/journey_patterns/components/EditModal.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class EditModal extends Component { +export default class EditModal extends Component {    constructor(props) {      super(props)    } @@ -109,6 +107,4 @@ EditModal.propTypes = {    modal: PropTypes.object,    onModalClose: PropTypes.func.isRequired,    saveModal: PropTypes.func.isRequired -} - -module.exports = EditModal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/javascript/journey_patterns/components/JourneyPattern.js index 1e569d584..dde73a957 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/javascript/journey_patterns/components/JourneyPattern.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class JourneyPattern extends Component{ +export default class JourneyPattern extends Component{    constructor(props){      super(props)      this.previousCity = undefined @@ -130,6 +128,4 @@ JourneyPattern.propTypes = {    onCheckboxChange: PropTypes.func.isRequired,    onOpenEditModal: PropTypes.func.isRequired,    onDeleteJourneyPattern: PropTypes.func.isRequired -} - -module.exports = JourneyPattern +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js b/app/javascript/journey_patterns/components/JourneyPatterns.js index 6506b706c..4b2badabb 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js +++ b/app/javascript/journey_patterns/components/JourneyPatterns.js @@ -1,10 +1,9 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var JourneyPattern = require('./JourneyPattern') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import _ from 'lodash' +import JourneyPattern from './JourneyPattern' -class JourneyPatterns extends Component{ + +export default class JourneyPatterns extends Component {    constructor(props){      super(props)      this.previousCity = undefined @@ -153,6 +152,4 @@ JourneyPatterns.propTypes = {    onCheckboxChange: PropTypes.func.isRequired,    onLoadFirstPage: PropTypes.func.isRequired,    onOpenEditModal: PropTypes.func.isRequired -} - -module.exports = JourneyPatterns +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js b/app/javascript/journey_patterns/components/Navigate.js index 5747aa5ce..f2fdd668f 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/Navigate.js +++ b/app/javascript/journey_patterns/components/Navigate.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -let Navigate = ({ dispatch, journeyPatterns, pagination, status }) => { +export default function Navigate({ dispatch, journeyPatterns, pagination, status }) {    let firstPage = 1    let lastPage = Math.ceil(pagination.totalCount / window.journeyPatternsPerPage) @@ -61,6 +59,4 @@ Navigate.propTypes = {    status: PropTypes.object.isRequired,    pagination: PropTypes.object.isRequired,    dispatch: PropTypes.func.isRequired -} - -module.exports = Navigate +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js b/app/javascript/journey_patterns/components/SaveJourneyPattern.js index 767dab088..d071fa542 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/SaveJourneyPattern.js +++ b/app/javascript/journey_patterns/components/SaveJourneyPattern.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class SaveJourneyPattern extends Component{ +export default class SaveJourneyPattern extends Component {    constructor(props){      super(props)    } @@ -38,6 +36,4 @@ SaveJourneyPattern.propTypes = {    journeyPatterns: PropTypes.array.isRequired,    status: PropTypes.object.isRequired,    page: PropTypes.number.isRequired -} - -module.exports = SaveJourneyPattern +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js b/app/javascript/journey_patterns/containers/AddJourneyPattern.js index 7aa27754e..b093fd111 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/AddJourneyPattern.js +++ b/app/javascript/journey_patterns/containers/AddJourneyPattern.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var CreateModal = require('../components/CreateModal') +import { connect } from 'react-redux' +import actions from '../actions' +import CreateModal from '../components/CreateModal'  const mapStateToProps = (state) => {    return { @@ -27,4 +27,4 @@ const mapDispatchToProps = (dispatch) => {  const AddJourneyPattern = connect(mapStateToProps, mapDispatchToProps)(CreateModal) -module.exports = AddJourneyPattern +export default AddJourneyPattern diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/ConfirmModal.js b/app/javascript/journey_patterns/containers/ConfirmModal.js index d66425a3a..92ce09f33 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/ConfirmModal.js +++ b/app/javascript/journey_patterns/containers/ConfirmModal.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var ConfirmModal = require('../components/ConfirmModal') +import { connect } from 'react-redux' +import actions from '../actions' +import ConfirmModal from '../components/ConfirmModal'  const mapStateToProps = (state) => {    return { @@ -27,4 +27,4 @@ const mapDispatchToProps = (dispatch) => {  const ConfirmModalContainer = connect(mapStateToProps, mapDispatchToProps)(ConfirmModal) -module.exports = ConfirmModalContainer +export default ConfirmModalContainer diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js b/app/javascript/journey_patterns/containers/JourneyPatternList.js index 228df3ede..d98734407 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js +++ b/app/javascript/journey_patterns/containers/JourneyPatternList.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var JourneyPatterns = require('../components/JourneyPatterns') +import { connect } from 'react-redux' +import actions from '../actions' +import JourneyPatterns from '../components/JourneyPatterns'  const mapStateToProps = (state) => {    return { @@ -31,4 +31,4 @@ const mapDispatchToProps = (dispatch) => {  const JourneyPatternList = connect(mapStateToProps, mapDispatchToProps)(JourneyPatterns) -module.exports = JourneyPatternList +export default JourneyPatternList diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js b/app/javascript/journey_patterns/containers/Modal.js index ef6a4a6b1..ace71a857 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js +++ b/app/javascript/journey_patterns/containers/Modal.js @@ -1,7 +1,7 @@ -var connect = require('react-redux').connect -var EditModal = require('../components/EditModal') -var CreateModal = require('../components/CreateModal') -var actions = require('../actions') +import { connect } from 'react-redux' +import actions from '../actions' +import EditModal from '../components/EditModal' +import CreateModal from '../components/CreateModal'  const mapStateToProps = (state) => {    return { @@ -23,4 +23,4 @@ const mapDispatchToProps = (dispatch) => {  const ModalContainer = connect(mapStateToProps, mapDispatchToProps)(EditModal, CreateModal) -module.exports = ModalContainer +export default ModalContainer diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js b/app/javascript/journey_patterns/containers/Navigate.js index ef9f8859c..d34e0b4c5 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Navigate.js +++ b/app/javascript/journey_patterns/containers/Navigate.js @@ -1,7 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var NavigateComponent = require('../components/Navigate') +import { connect } from 'react-redux' +import actions from '../actions' +import NavigateComponent from '../components/Navigate'  const mapStateToProps = (state) => {    return { @@ -11,7 +10,6 @@ const mapStateToProps = (state) => {    }  } -  const Navigate = connect(mapStateToProps)(NavigateComponent) -module.exports = Navigate +export default Navigate
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js b/app/javascript/journey_patterns/containers/SaveJourneyPattern.js index 434264fea..b630c121c 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/SaveJourneyPattern.js +++ b/app/javascript/journey_patterns/containers/SaveJourneyPattern.js @@ -1,7 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var SaveJourneyPatternComponent = require('../components/SaveJourneyPattern') +import { connect } from 'react-redux' +import actions from '../actions' +import SaveJourneyPatternComponent from '../components/SaveJourneyPattern'  const mapStateToProps = (state) => {    return { @@ -25,4 +24,4 @@ const mapDispatchToProps = (dispatch) => {  const SaveJourneyPattern = connect(mapStateToProps, mapDispatchToProps)(SaveJourneyPatternComponent) -module.exports = SaveJourneyPattern +export default SaveJourneyPattern diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/editMode.js b/app/javascript/journey_patterns/reducers/editMode.js index 2e8af1aa8..bff976804 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/editMode.js +++ b/app/javascript/journey_patterns/reducers/editMode.js @@ -1,4 +1,4 @@ -const editMode = (state = {}, action ) => { +export default function editMode(state = {}, action ) {    switch (action.type) {      case "ENTER_EDIT_MODE":        return true @@ -7,6 +7,4 @@ const editMode = (state = {}, action ) => {      default:        return state    } -} - -module.exports = editMode +}
\ No newline at end of file diff --git a/app/javascript/journey_patterns/reducers/index.js b/app/javascript/journey_patterns/reducers/index.js new file mode 100644 index 000000000..2ffaf86d4 --- /dev/null +++ b/app/javascript/journey_patterns/reducers/index.js @@ -0,0 +1,18 @@ +import { combineReducers } from 'redux' +import editMode from './editMode' +import status from './status' +import journeyPatterns from './journeyPatterns' +import pagination from './pagination' +import modal from './modal' +import stopPointsList from './stopPointsList' + +const journeyPatternsApp = combineReducers({ +  editMode, +  status, +  journeyPatterns, +  pagination, +  stopPointsList, +  modal +}) + +export default journeyPatternsApp diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js b/app/javascript/journey_patterns/reducers/journeyPatterns.js index d4f7257d7..7702e21bc 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/journeyPatterns.js +++ b/app/javascript/journey_patterns/reducers/journeyPatterns.js @@ -1,7 +1,7 @@ -var _ = require('lodash') -var actions = require("../actions") +import _ from 'lodash' +import actions from "../actions" -const journeyPattern = (state = {}, action) => { +export default function journeyPattern(state = {}, action) {    switch (action.type) {      case 'ADD_JOURNEYPATTERN':        let stopPoints = window.stopPoints @@ -87,6 +87,4 @@ const journeyPatterns = (state = [], action) => {      default:        return state    } -} - -module.exports = journeyPatterns +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js b/app/javascript/journey_patterns/reducers/modal.js index 86cfb5a25..0a96f1679 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js +++ b/app/javascript/journey_patterns/reducers/modal.js @@ -1,5 +1,6 @@ -var _ = require('lodash') -const modal = (state = {}, action) => { +import _ from 'lodash' + +export default function modal(state = {}, action) {    switch (action.type) {      case 'OPEN_CONFIRM_MODAL':        $('#ConfirmModal').modal('show') @@ -37,6 +38,4 @@ const modal = (state = {}, action) => {      default:        return state    } -} - -module.exports = modal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js b/app/javascript/journey_patterns/reducers/pagination.js index 0714ca843..01fdf21d4 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/pagination.js +++ b/app/javascript/journey_patterns/reducers/pagination.js @@ -1,5 +1,6 @@ -var _ = require('lodash') -const pagination = (state = {}, action) => { +import _ from 'lodash' + +export default function pagination (state = {}, action) {    switch (action.type) {      case 'RECEIVE_JOURNEY_PATTERNS':        return _.assign({}, state, {stateChanged: false}) @@ -31,6 +32,4 @@ const toggleOnConfirmModal = (arg = '') =>{    $('.confirm').each(function(){      $(this).data('toggle','')    }) -} - -module.exports = pagination +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js b/app/javascript/journey_patterns/reducers/status.js index 07bbdc249..88c75966d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/status.js +++ b/app/javascript/journey_patterns/reducers/status.js @@ -1,7 +1,7 @@ -var _ = require('lodash') -var actions = require("../actions") +import _ from 'lodash' +import actions from '../actions' -const status = (state = {}, action) => { +export default function status (state = {}, action) {    switch (action.type) {      case 'UNAVAILABLE_SERVER':        return _.assign({}, state, {fetchSuccess: false}) @@ -18,6 +18,4 @@ const status = (state = {}, action) => {      default:        return state    } -} - -module.exports = status +}
\ No newline at end of file diff --git a/app/javascript/journey_patterns/reducers/stopPointsList.js b/app/javascript/journey_patterns/reducers/stopPointsList.js new file mode 100644 index 000000000..ee5eb1a80 --- /dev/null +++ b/app/javascript/journey_patterns/reducers/stopPointsList.js @@ -0,0 +1,6 @@ +export default function stopPointsList (state = [], action) { +  switch (action.type) { +    default: +      return state +  } +}
\ No newline at end of file diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js new file mode 100644 index 000000000..0b3711e53 --- /dev/null +++ b/app/javascript/packs/application.js @@ -0,0 +1,11 @@ +/* eslint no-console:0 */ +// This file is automatically compiled by Webpack, along with any other files +// present in this directory. You're encouraged to place your actual application logic in +// a relevant structure within app/javascript and only use these pack files to reference +// that code so it'll be compiled. +// +// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate +// layout file, like app/views/layouts/application.html.erb + +// import jQuery from 'jquery' +// import {} from 'jquery-ujs' diff --git a/app/javascript/packs/date_filters.js b/app/javascript/packs/date_filters.js new file mode 100644 index 000000000..88f508152 --- /dev/null +++ b/app/javascript/packs/date_filters.js @@ -0,0 +1 @@ +import DateFilter from '../date_filters'
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/javascript/packs/journey_patterns/index.js index ca9efd2d0..fde28b45d 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/javascript/packs/journey_patterns/index.js @@ -1,9 +1,10 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var journeyPatternsApp = require('./reducers') -var App = require('./components/App') +import React from 'react' +import { render } from 'react-dom' +import { Provider } from 'react-redux' +import { createStore } from 'redux' +import journeyPatternsApp from '../../journey_patterns/reducers' +import App from '../../journey_patterns/components/App' +import clone from '../../helpers/clone'  // logger, DO NOT REMOVE  // var applyMiddleware = require('redux').applyMiddleware diff --git a/app/javascript/packs/routes/edit.js b/app/javascript/packs/routes/edit.js new file mode 100644 index 000000000..d6ceed60f --- /dev/null +++ b/app/javascript/packs/routes/edit.js @@ -0,0 +1,81 @@ +import React, { PropTypes } from 'react' +import { render } from 'react-dom' +import { Provider } from 'react-redux' +import { createStore } from 'redux' + +import reducers from '../../routes/reducers' +import App from '../../routes/components/App' +import formHelper from '../../routes/form_helper' +import clone from '../../helpers/clone' +let datas = clone(window, "itinerary_stop", true) +datas = JSON.parse(decodeURIComponent(datas)) + +// logger, DO NOT REMOVE +var applyMiddleware = require('redux').applyMiddleware +var createLogger = require('redux-logger') +var thunkMiddleware = require('redux-thunk').default +var promise = require('redux-promise') + +const getInitialState = () => { +  let state = [] + +  datas.map(function (v, i) { +    let fancyText = v.name.replace("'", "\'") +    if (v.zip_code && v.city_name) +      fancyText += ", " + v.zip_code + " " + v.city_name.replace("'", "\'") + +    state.push({ +      stoppoint_id: v.stoppoint_id, +      stoparea_id: v.stoparea_id, +      user_objectid: v.user_objectid, +      short_name: v.short_name ? v.short_name.replace("'", "\'") : '', +      area_type: v.area_type, +      index: i, +      edit: false, +      city_name: v.city_name ? v.city_name.replace("'", "\'") : '', +      zip_code: v.zip_code, +      name: v.name ? v.name.replace("'", "\'") : '', +      registration_number: v.registration_number, +      text: fancyText, +      for_boarding: v.for_boarding || "normal", +      for_alighting: v.for_alighting || "normal", +      longitude: v.longitude || 0, +      latitude: v.latitude || 0, +      comment: v.comment ? v.comment.replace("'", "\'") : '', +      olMap: { +        isOpened: false, +        json: {} +      } +    }) +  }) + +  return state +} + +var initialState = { stopPoints: getInitialState() } +const loggerMiddleware = createLogger() +let store = createStore( +  reducers, +  initialState, +  applyMiddleware(thunkMiddleware, promise, loggerMiddleware) +) + +render( +  <Provider store={store}> +    <App /> +  </Provider>, +  document.getElementById('stop_points') +) + +document.querySelector('input[name=commit]').addEventListener('click', (event) => { +  let state = store.getState() + +  let name = $("#route_name").val() +  let publicName = $("#route_published_name").val() +  if (name == "" || publicName == "") { +    event.preventDefault() +    formHelper.handleForm("#route_name", "#route_published_name") +  } + +  formHelper.handleStopPoints(event, state) +}) diff --git a/app/javascript/packs/routes/show.js b/app/javascript/packs/routes/show.js new file mode 100644 index 000000000..7f14a6f11 --- /dev/null +++ b/app/javascript/packs/routes/show.js @@ -0,0 +1,102 @@ +import clone from '../../helpers/clone' +let route = clone(window, "route", true) +route = JSON.parse(decodeURIComponent(route)) + +const geoColPts = [] +const geoColLns = [] +const geoColEdges = [ +  new ol.Feature({ +    geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(route[0].longitude), parseFloat(route[0].latitude)])) +  }), +  new ol.Feature({ +    geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(route[route.length - 1].longitude), parseFloat(route[route.length - 1].latitude)])) +  }) +] +route.forEach(function (stop, i) { +  if (i < route.length - 1) { +    geoColLns.push(new ol.Feature({ +      geometry: new ol.geom.LineString([ +        ol.proj.fromLonLat([parseFloat(route[i].longitude), parseFloat(route[i].latitude)]), +        ol.proj.fromLonLat([parseFloat(route[i + 1].longitude), parseFloat(route[i + 1].latitude)]) +      ]) +    })) +  } +  geoColPts.push(new ol.Feature({ +    geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(stop.longitude), parseFloat(stop.latitude)])) +  }) +  ) +}) +var edgeStyles = new ol.style.Style({ +  image: new ol.style.Circle(({ +    radius: 5, +    stroke: new ol.style.Stroke({ +      color: '#007fbb', +      width: 2 +    }), +    fill: new ol.style.Fill({ +      color: '#007fbb', +      width: 2 +    }) +  })) +}) +var defaultStyles = new ol.style.Style({ +  image: new ol.style.Circle(({ +    radius: 4, +    stroke: new ol.style.Stroke({ +      color: '#007fbb', +      width: 2 +    }), +    fill: new ol.style.Fill({ +      color: '#ffffff', +      width: 2 +    }) +  })) +}) +var lineStyle = new ol.style.Style({ +  stroke: new ol.style.Stroke({ +    color: '#007fbb', +    width: 3 +  }) +}) + +var vectorPtsLayer = new ol.layer.Vector({ +  source: new ol.source.Vector({ +    features: geoColPts +  }), +  style: defaultStyles, +  zIndex: 2 +}) +var vectorEdgesLayer = new ol.layer.Vector({ +  source: new ol.source.Vector({ +    features: geoColEdges +  }), +  style: edgeStyles, +  zIndex: 3 +}) +var vectorLnsLayer = new ol.layer.Vector({ +  source: new ol.source.Vector({ +    features: geoColLns +  }), +  style: [lineStyle], +  zIndex: 1 +}) + +var map = new ol.Map({ +  target: 'route_map', +  layers: [ +    new ol.layer.Tile({ +      source: new ol.source.OSM() +    }), +    vectorPtsLayer, +    vectorEdgesLayer, +    vectorLnsLayer +  ], +  controls: [new ol.control.ScaleLine(), new ol.control.Zoom(), new ol.control.ZoomSlider()], +  interactions: ol.interaction.defaults({ +    zoom: true +  }), +  view: new ol.View({ +    center: ol.proj.fromLonLat([parseFloat(route[0].longitude), parseFloat(route[0].latitude)]), +    zoom: 13 +  }) +}); diff --git a/app/assets/javascripts/es6_browserified/time_tables/index.js b/app/javascript/packs/time_tables/edit.js index 6c352df6b..cf058d501 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/index.js +++ b/app/javascript/packs/time_tables/edit.js @@ -1,11 +1,11 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var timeTablesApp = require('./reducers') -var App = require('./containers/App') +import React from 'react' +import { render } from 'react-dom' +import { Provider } from 'react-redux' +import { createStore } from 'redux' +import timeTablesApp from '../../time_tables/reducers' +import App from '../../time_tables/containers/App' +import clone from '../../helpers/clone' -const clone = require('../helpers/clone')  const actionType = clone(window, "actionType", true)  // logger, DO NOT REMOVE @@ -14,7 +14,7 @@ const actionType = clone(window, "actionType", true)  // var thunkMiddleware = require('redux-thunk').default  // var promise = require('redux-promise') -var initialState = { +let initialState = {    status: {      actionType: actionType,      policy: window.perms, diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js b/app/javascript/packs/vehicle_journeys/index.js index 53bbcf952..38431af1d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/index.js +++ b/app/javascript/packs/vehicle_journeys/index.js @@ -1,11 +1,11 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var vehicleJourneysApp = require('./reducers') -var App = require('./components/App') -var actions = require("./actions") -var enableBatching = require('./batch').enableBatching +import React from 'react' +import { render } from 'react-dom' +import { Provider } from 'react-redux' +import { createStore } from 'redux' +import vehicleJourneysApp from '../../vehicle_journeys/reducers' +import App from '../../vehicle_journeys/components/App' +import actions from "../../vehicle_journeys/actions" +import { enableBatching } from '../../vehicle_journeys/batch'  // logger, DO NOT REMOVE  // var applyMiddleware = require('redux').applyMiddleware @@ -99,4 +99,4 @@ render(      <App />    </Provider>,    document.getElementById('vehicle_journeys_wip') -) +)
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/itineraries/actions/index.js b/app/javascript/routes/actions/index.js index 13b2d60b2..13b2d60b2 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/actions/index.js +++ b/app/javascript/routes/actions/index.js diff --git a/app/javascript/routes/components/App.js b/app/javascript/routes/components/App.js new file mode 100644 index 000000000..0f5786407 --- /dev/null +++ b/app/javascript/routes/components/App.js @@ -0,0 +1,25 @@ +import React, { Component, PropTypes } from 'react' +import AddStopPoint from '../containers/AddStopPoint' +import VisibleStopPoints from'../containers/VisibleStopPoints' +import clone  from '../../helpers/clone' +const I18n = clone(window , "I18n", true) + +export default class App extends Component { + +  getChildContext() { +    return { I18n } +  } + +  render() { +    return ( +      <div> +        <VisibleStopPoints /> +        <AddStopPoint /> +      </div> +    )   +  }  +} + +App.childContextTypes = { +  I18n: PropTypes.object +} diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js b/app/javascript/routes/components/BSelect2.js index 9a82b7925..340d9df95 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/BSelect2.js +++ b/app/javascript/routes/components/BSelect2.js @@ -1,7 +1,6 @@ -var _ = require('lodash') -var React = require('react') -var { Component, PropTypes } = require('react') -var Select2 = require('react-select2') +import _ from'lodash' +import React, { Component, PropTypes } from 'react' +import Select2 from 'react-select2'  // get JSON full path @@ -9,7 +8,7 @@ var origin = window.location.origin  var path = window.location.pathname.split('/', 3).join('/') -class BSelect3 extends Component{ +export default class BSelect3 extends Component {    constructor(props, context) {      super(props, context)    } @@ -124,5 +123,3 @@ class BSelect2 extends Component{  BSelect2.contextTypes = {    I18n: PropTypes.object  } - -module.exports = BSelect3 diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js b/app/javascript/routes/components/OlMap.js index 937871346..2c01dfa7f 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/OlMap.js +++ b/app/javascript/routes/components/OlMap.js @@ -1,8 +1,7 @@ -var _ = require('lodash') -var React = require('react') -var { Component, PropTypes } = require('react') +import _ from 'lodash' +import React, { Component, PropTypes } from 'react' -class OlMap extends Component{ +export default class OlMap extends Component{    constructor(props, context){      super(props, context)    } @@ -168,5 +167,3 @@ OlMap.PropTypes = {  OlMap.contextTypes = {    I18n: PropTypes.object  } - -module.exports = OlMap diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js b/app/javascript/routes/components/StopPoint.js index c3996f5b3..606121f99 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/StopPoint.js +++ b/app/javascript/routes/components/StopPoint.js @@ -1,9 +1,8 @@ -var React = require('react') -var PropTypes = require('react').PropTypes -var BSelect2 = require('./BSelect2') -var OlMap = require('./OlMap') +import React, { PropTypes } from 'react' +import BSelect2 from './BSelect2' +import OlMap from './OlMap' -const StopPoint = (props, {I18n}) => { +export default function StopPoint(props, {I18n}) {    return (      <div className='nested-fields'>        <div className='wrapper'> @@ -76,7 +75,7 @@ const StopPoint = (props, {I18n}) => {    )  } -StopPoint.propTypes = { +StopPoint.PropTypes = {    onToggleMap: PropTypes.func.isRequired,    onToggleEdit: PropTypes.func.isRequired,    onDeleteClick: PropTypes.func.isRequired, @@ -92,6 +91,4 @@ StopPoint.propTypes = {  StopPoint.contextTypes = {    I18n: PropTypes.object -} - -module.exports = StopPoint +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/itineraries/components/StopPointList.js b/app/javascript/routes/components/StopPointList.js index 37a480fca..68af16f57 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/components/StopPointList.js +++ b/app/javascript/routes/components/StopPointList.js @@ -1,8 +1,7 @@ -var React = require('react') -var PropTypes = require('react').PropTypes -var StopPoint = require('./StopPoint') +import React, { PropTypes } from 'react' +import StopPoint from './StopPoint' -const StopPointList = ({ stopPoints, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange, onSelectChange, onToggleMap, onToggleEdit, onSelectMarker, onUnselectMarker, onUpdateViaOlMap }, {I18n}) => { +export default function StopPointList({ stopPoints, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange, onSelectChange, onToggleMap, onToggleEdit, onSelectMarker, onUnselectMarker, onUpdateViaOlMap }, {I18n}) {    return (      <div className='subform'>        <div className='nested-head'> @@ -55,7 +54,7 @@ const StopPointList = ({ stopPoints, onDeleteClick, onMoveUpClick, onMoveDownCli    )  } -StopPointList.propTypes = { +StopPointList.PropTypes = {    stopPoints: PropTypes.array.isRequired,    onDeleteClick: PropTypes.func.isRequired,    onMoveUpClick: PropTypes.func.isRequired, @@ -67,6 +66,4 @@ StopPointList.propTypes = {  StopPointList.contextTypes = {    I18n: PropTypes.object -} - -module.exports = StopPointList +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/itineraries/containers/AddStopPoint.js b/app/javascript/routes/containers/AddStopPoint.js index ea5ae90db..fd9227ff3 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/containers/AddStopPoint.js +++ b/app/javascript/routes/containers/AddStopPoint.js @@ -1,6 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') +import React from 'react' +import { connect } from 'react-redux' +import actions from '../actions'  let AddStopPoint = ({ dispatch }) => {    return ( @@ -17,6 +17,4 @@ let AddStopPoint = ({ dispatch }) => {      </div>    )  } -AddStopPoint = connect()(AddStopPoint) - -module.exports = AddStopPoint +export default AddStopPoint = connect()(AddStopPoint) diff --git a/app/assets/javascripts/es6_browserified/itineraries/containers/VisibleStopPoints.js b/app/javascript/routes/containers/VisibleStopPoints.js index 8b08a1e5f..67d77af50 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/containers/VisibleStopPoints.js +++ b/app/javascript/routes/containers/VisibleStopPoints.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var StopPointList = require('../components/StopPointList') +import actions from '../actions' +import  { connect } from 'react-redux' +import StopPointList from '../components/StopPointList'  const mapStateToProps = (state) => {    return { @@ -55,4 +55,4 @@ const VisibleStopPoints = connect(    mapDispatchToProps  )(StopPointList) -module.exports = VisibleStopPoints +export default VisibleStopPoints diff --git a/app/assets/javascripts/es6_browserified/itineraries/form_helper.js b/app/javascript/routes/form_helper.js index f682e39c0..8a3277234 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/form_helper.js +++ b/app/javascript/routes/form_helper.js @@ -52,4 +52,4 @@ const formHelper = {    }  } -module.exports = formHelper
\ No newline at end of file +export default formHelper
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/itineraries/index.js b/app/javascript/routes/index.js index 13d89bec5..febae7d54 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/index.js +++ b/app/javascript/routes/index.js @@ -1,11 +1,11 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var reducers = require('./reducers') -var App = require('./components/App') -var { handleForm, handleStopPoints } = require('./form_helper') -let clone = require('../helpers/clone') +import React from 'react' +import { render  } from 'react-dom' +import { Provider } from 'react-redux' +import { createStore } from 'redux' +import reducers from './reducers' +import App from './components/App' +import { handleForm, handleStopPoints } from './form_helper' +import clone from '../helpers/clone'  let datas = clone(window, "itinerary_stop", true)  datas = JSON.parse(decodeURIComponent(datas)) diff --git a/app/javascript/routes/reducers/index.js b/app/javascript/routes/reducers/index.js new file mode 100644 index 000000000..eb01ea9f7 --- /dev/null +++ b/app/javascript/routes/reducers/index.js @@ -0,0 +1,8 @@ +import { combineReducers } from 'redux' +import stopPoints from './stopPoints' + +const stopPointsApp = combineReducers({ +  stopPoints +}) + +export default stopPointsApp diff --git a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js b/app/javascript/routes/reducers/stopPoints.js index f3a26b8d7..eeec06327 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/reducers/stopPoints.js +++ b/app/javascript/routes/reducers/stopPoints.js @@ -1,5 +1,5 @@ -var _ = require('lodash') -var { addInput } = require('../form_helper') +import _ from 'lodash' +import formHelper from '../form_helper'  const stopPoint = (state = {}, action, length) => {    switch (action.type) { @@ -23,8 +23,8 @@ const stopPoint = (state = {}, action, length) => {  const updateFormForDeletion = (stop) =>{    if (stop.stoppoint_id !== undefined){      let now = Date.now() -    addInput('id', stop.stoppoint_id, now) -    addInput('_destroy', 'true', now) +    formHelper.addInput('id', stop.stoppoint_id, now) +    formHelper.addInput('_destroy', 'true', now)    }  } @@ -141,4 +141,4 @@ const stopPoints = (state = [], action) => {    }  } -module.exports = stopPoints +export default stopPoints
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/itineraries/show.js b/app/javascript/routes/show.js index e88469900..e88469900 100644 --- a/app/assets/javascripts/es6_browserified/itineraries/show.js +++ b/app/javascript/routes/show.js diff --git a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js b/app/javascript/time_tables/actions/index.js index a421a8ed6..13cb96b64 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/actions/index.js +++ b/app/javascript/time_tables/actions/index.js @@ -1,10 +1,14 @@ -const _ = require('lodash') -const clone = require('../../helpers/clone') +import range from 'lodash/range' +import assign from 'lodash/assign' +import reject from 'lodash/reject' +import some from 'lodash/some' +import every from 'lodash/every' +import clone from '../../helpers/clone'  const I18n = clone(window, "I18n")  const actions = {    weekDays: (index) => { -    return _.range(1, 8).map(n => I18n.time_tables.edit.metas.days[n]) +    return range(1, 8).map(n => I18n.time_tables.edit.metas.days[n])    },    strToArrayDayTypes: (str) =>{      return actions.weekDays().map(day => str.indexOf(day) !== -1) @@ -151,7 +155,7 @@ const actions = {      type : 'CLOSE_MODAL'    }),    monthName(strDate) { -    let monthList = _.range(1,13).map(n => I18n.calendars.months[n]) +    let monthList = range(1,13).map(n => I18n.calendars.months[n])      let date = new Date(strDate)      return monthList[date.getMonth()]    }, @@ -172,12 +176,12 @@ const actions = {      return date.toLocaleDateString()    },    updateSynthesis: ({current_month, time_table_dates: dates, time_table_periods: periods}) => { -    let newPeriods = _.reject(periods, 'deleted') +    let newPeriods = reject(periods, 'deleted')      let improvedCM = current_month.map((d, i) => {        let isInPeriod = actions.isInPeriod(newPeriods, d.date) -      let isIncluded = _.some(dates, {'date': d.date, 'in_out': true}) +      let isIncluded = some(dates, {'date': d.date, 'in_out': true}) -      return _.assign({}, current_month[i], { +      return assign({}, current_month[i], {          in_periods: isInPeriod,          include_date: isIncluded,          excluded_date: !isInPeriod ? false : current_month[i].excluded_date @@ -271,8 +275,8 @@ const actions = {    submitTimetable: (dispatch, timetable, metas, next) => {      dispatch(actions.fetchingApi())      let strDayTypes = actions.arrayToStrDayTypes(metas.day_types) -    metas.day_types= strDayTypes -    let sentState = _.assign({}, timetable, metas) +    metas.day_types = strDayTypes +    let sentState = assign({}, timetable, metas)      let urlJSON = window.location.pathname.split('/', 5).join('/')      let hasError = false      fetch(urlJSON + '.json', { @@ -302,8 +306,8 @@ const actions = {        })    },    errorModalKey: (periods, dayTypes) => { -    const withoutPeriodsWithDaysTypes = _.reject(periods, 'deleted').length == 0 && _.some(dayTypes) && "withoutPeriodsWithDaysTypes" -    const withPeriodsWithoutDayTypes = _.reject(periods, 'deleted').length > 0 &&  _.every(dayTypes, dt => dt == false) && "withPeriodsWithoutDayTypes" +    const withoutPeriodsWithDaysTypes = reject(periods, 'deleted').length == 0 && some(dayTypes) && "withoutPeriodsWithDaysTypes" +    const withPeriodsWithoutDayTypes = reject(periods, 'deleted').length > 0 &&  every(dayTypes, dt => dt == false) && "withPeriodsWithoutDayTypes"      return (withoutPeriodsWithDaysTypes || withPeriodsWithoutDayTypes) && (withoutPeriodsWithDaysTypes ? "withoutPeriodsWithDaysTypes" : "withPeriodsWithoutDayTypes") @@ -318,7 +322,7 @@ const actions = {          return errorKey      } -  }, +  }  } -module.exports = actions +export default actions
\ No newline at end of file diff --git a/app/javascript/time_tables/components/ConfirmModal.js b/app/javascript/time_tables/components/ConfirmModal.js new file mode 100644 index 000000000..d89170ee7 --- /dev/null +++ b/app/javascript/time_tables/components/ConfirmModal.js @@ -0,0 +1,50 @@ +import React, { PropTypes } from 'react' + +export default function ConfirmModal({dispatch, modal, onModalAccept, onModalCancel, timetable, metas}, {I18n}) { +  return ( +    <div className={'modal fade ' + ((modal.type == 'confirm') ? 'in' : '')} id='ConfirmModal'> +      <div className='modal-container'> +        <div className='modal-dialog'> +          <div className='modal-content'> +            <div className='modal-header'> +              <h4 className='modal-title'>{I18n.time_tables.edit.confirm_modal.title}</h4> +            </div> +            <div className='modal-body'> +              <div className='mt-md mb-md'> +                <p>{I18n.time_tables.edit.confirm_modal.message}</p> +              </div> +            </div> +            <div className='modal-footer'> +              <button +                className='btn btn-link' +                data-dismiss='modal' +                type='button' +                onClick={() => { onModalCancel(modal.confirmModal.callback) }} +              > +                {I18n.cancel} +              </button> +              <button +                className='btn btn-primary' +                data-dismiss='modal' +                type='button' +                onClick={() => { onModalAccept(modal.confirmModal.callback, timetable, metas) }} +              > +                {I18n.actions.submit} +              </button> +            </div> +          </div> +        </div> +      </div> +    </div> +  ) +} + +ConfirmModal.propTypes = { +  modal: PropTypes.object.isRequired, +  onModalAccept: PropTypes.func.isRequired, +  onModalCancel: PropTypes.func.isRequired +} + +ConfirmModal.contextTypes = { +  I18n: PropTypes.object +}
\ No newline at end of file diff --git a/app/javascript/time_tables/components/ErrorModal.js b/app/javascript/time_tables/components/ErrorModal.js new file mode 100644 index 000000000..e810f49ab --- /dev/null +++ b/app/javascript/time_tables/components/ErrorModal.js @@ -0,0 +1,42 @@ +import React, { PropTypes } from 'react' +import actions from '../actions' + +export default function ErrorModal({dispatch, modal, onModalClose}, {I18n}) { +  return ( +    <div className={'modal fade ' + ((modal.type == 'error') ? 'in' : '')} id='ErrorModal'> +      <div className='modal-container'> +        <div className='modal-dialog'> +          <div className='modal-content'> +            <div className='modal-header'> +              <h4 className='modal-title'>{I18n.time_tables.edit.error_modal.title}</h4> +            </div> +            <div className='modal-body'> +              <div className='mt-md mb-md'> +                <p>{actions.errorModalMessage(modal.modalProps.error)}</p> +              </div> +            </div> +            <div className='modal-footer'> +              <button +                className='btn btn-link' +                data-dismiss='modal' +                type='button' +                onClick={() => { onModalClose() }} +              > +                {I18n.back} +              </button> +            </div> +          </div> +        </div> +      </div> +    </div> +  ) +} + +ErrorModal.propTypes = { +  modal: PropTypes.object.isRequired, +  onModalClose: PropTypes.func.isRequired +} + +ErrorModal.contextTypes = { +  I18n: PropTypes.object +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js b/app/javascript/time_tables/components/ExceptionsInDay.js index 80c2e4b7a..3335ee89d 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/ExceptionsInDay.js +++ b/app/javascript/time_tables/components/ExceptionsInDay.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class ExceptionsInDay extends Component { +export default class ExceptionsInDay extends Component {    constructor(props) {      super(props)    } @@ -71,5 +69,3 @@ ExceptionsInDay.propTypes = {    onIncludeDateInPeriod: PropTypes.func.isRequired,    index: PropTypes.number.isRequired  } - -module.exports = ExceptionsInDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js b/app/javascript/time_tables/components/Metas.js index 26a96e4a6..7098d2b82 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Metas.js +++ b/app/javascript/time_tables/components/Metas.js @@ -1,9 +1,8 @@ -var React = require('react') -var  { PropTypes }  = require('react') -const { weekDays } = require('../actions') -var TagsSelect2 = require('./TagsSelect2') +import React, { PropTypes } from 'react' +import actions from '../actions' +import TagsSelect2 from './TagsSelect2' -const Metas = ({metas, onUpdateDayTypes, onUpdateComment, onUpdateColor, onSelect2Tags, onUnselect2Tags}, {I18n}) => { +export default function Metas({metas, onUpdateDayTypes, onUpdateComment, onUpdateColor, onSelect2Tags, onUnselect2Tags}, {I18n}) {    let colorList = ["", "#9B9B9B", "#FFA070", "#C67300", "#7F551B", "#41CCE3", "#09B09C", "#3655D7",   "#6321A0", "#E796C6", "#DD2DAA"]    return (      <div className='form-horizontal'> @@ -112,7 +111,7 @@ const Metas = ({metas, onUpdateDayTypes, onUpdateComment, onUpdateColor, onSelec                            type="checkbox"                            checked={day ? 'checked' : ''}                            /> -                        <span className='lcbx-group-item-label'>{weekDays()[i]}</span> +                        <span className='lcbx-group-item-label'>{actions.weekDays()[i]}</span>                        </label>                      </div>                    </div> @@ -138,5 +137,3 @@ Metas.propTypes = {  Metas.contextTypes = {    I18n: PropTypes.object  } - -module.exports = Metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js b/app/javascript/time_tables/components/Navigate.js index 6a3690cb0..7307d819b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Navigate.js +++ b/app/javascript/time_tables/components/Navigate.js @@ -1,10 +1,8 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import map from 'lodash/map' +import actions from '../actions' -let Navigate = ({ dispatch, metas, timetable, pagination, status, filters}) => { +export default function Navigate({ dispatch, metas, timetable, pagination, status, filters}) {    if(status.isFetching == true) {      return false    } @@ -32,7 +30,7 @@ let Navigate = ({ dispatch, metas, timetable, pagination, status, filters}) => {                  className='dropdown-menu'                  aria-labelledby='date_selector'                  > -                {_.map(pagination.periode_range, (month, i) => ( +                {map(pagination.periode_range, (month, i) => (                    <li key={i}>                      <button                        type='button' @@ -87,6 +85,4 @@ Navigate.propTypes = {    status: PropTypes.object.isRequired,    pagination: PropTypes.object.isRequired,    dispatch: PropTypes.func.isRequired -} - -module.exports = Navigate +}
\ No newline at end of file diff --git a/app/javascript/time_tables/components/PeriodForm.js b/app/javascript/time_tables/components/PeriodForm.js new file mode 100644 index 000000000..d9f1d3437 --- /dev/null +++ b/app/javascript/time_tables/components/PeriodForm.js @@ -0,0 +1,148 @@ +import React, { PropTypes } from 'react' +import filter from 'lodash/filter' +let monthsArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] + +const formatNumber = (val) => { +  return ("0" + val).slice(-2) +} + +const makeDaysOptions = (daySelected) => { +  let arr = [] +  for(let i = 1; i < 32; i++) { +    arr.push(<option value={formatNumber(i)} key={i}>{formatNumber(i)}</option>) +  } +  return arr +} + +const makeMonthsOptions = (monthSelected) => { +  let arr = [] +  for(let i = 1; i < 13; i++) { +    arr.push(<option value={formatNumber(i)} key={i}>{monthsArray[i - 1]}</option>) +  } +  return arr +} + +const makeYearsOptions = (yearSelected) => { +  let arr = [] +  let startYear = new Date().getFullYear() - 3 +  for(let i = startYear; i <= startYear + 6; i++) { +    arr.push(<option key={i}>{i}</option>) +  } +  return arr +} + +export default function PeriodForm({modal, timetable, metas, onOpenAddPeriodForm, onClosePeriodForm, onUpdatePeriodForm, onValidatePeriodForm}, {I18n}) { +  return ( +    <div className="container-fluid"> +      <div className="row"> +        <div className="col lg-6 col-lg-offset-3"> +          <div className='subform'> +            {modal.modalProps.active && +              <div> +                <div className="nested-head"> +                  <div className="wrapper"> +                    <div> +                      <div className="form-group"> +                        <label htmlFor="" className="control-label required"> +                          {I18n.time_tables.edit.period_form.begin} +                          <abbr title="requis">*</abbr> +                        </label> +                      </div> +                    </div> +                    <div> +                      <div className="form-group"> +                        <label htmlFor="" className="control-label required"> +                          {I18n.time_tables.edit.period_form.end} +                          <abbr title="requis">*</abbr> +                        </label> +                      </div> +                    </div> +                  </div> +                </div> +                <div className="nested-fields"> +                  <div className="wrapper"> +                    <div> +                      <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}> +                        <div className="form-inline"> +                          <select value={formatNumber(modal.modalProps.begin.day)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'day', modal.modalProps)} id="q_validity_period_begin_gteq_3i" className="date required form-control"> +                            {makeDaysOptions(modal.modalProps.begin.day)} +                          </select> +                          <select value={formatNumber(modal.modalProps.begin.month)} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'month', modal.modalProps)} id="q_validity_period_begin_gteq_2i" className="date required form-control"> +                            {makeMonthsOptions(modal.modalProps.begin.month)} +                          </select> +                          <select value={modal.modalProps.begin.year} onChange={(e) => onUpdatePeriodForm(e, 'begin', 'year', modal.modalProps)} id="q_validity_period_begin_gteq_1i" className="date required form-control"> +                            {makeYearsOptions(modal.modalProps.begin.year)} +                          </select> +                        </div> +                      </div> +                    </div> +                    <div> +                      <div className={'form-group date ' + (modal.modalProps.error ? ' has-error' : '')}> +                        <div className="form-inline"> +                          <select value={formatNumber(modal.modalProps.end.day)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'day', modal.modalProps)} id="q_validity_period_end_gteq_3i" className="date required form-control"> +                            {makeDaysOptions(modal.modalProps.end.day)} +                          </select> +                          <select value={formatNumber(modal.modalProps.end.month)} onChange={(e) => onUpdatePeriodForm(e, 'end', 'month', modal.modalProps)} id="q_validity_period_end_gteq_2i" className="date required form-control"> +                            {makeMonthsOptions(modal.modalProps.end.month)} +                          </select> +                          <select value={modal.modalProps.end.year} onChange={(e) => onUpdatePeriodForm(e, 'end', 'year', modal.modalProps)} id="q_validity_period_end_gteq_1i" className="date required form-control"> +                            {makeYearsOptions(modal.modalProps.end.year)} +                          </select> +                        </div> +                      </div> +                    </div> +                  </div> +                </div> + +                <div className='links nested-linker'> +                  <span className='help-block small text-danger pull-left mt-xs ml-sm'> +                    {modal.modalProps.error} +                  </span> +                  <button +                    type='button' +                    className='btn btn-link' +                    onClick={onClosePeriodForm} +                  > +                    {I18n.cancel} +                  </button> +                  <button +                    type='button' +                    className='btn btn-outline-primary mr-sm' +                    onClick={() => onValidatePeriodForm(modal.modalProps, timetable.time_table_periods, metas, filter(timetable.time_table_dates, ['in_out', true]))} +                  > +                    {I18n.actions.submit} +                  </button> +                </div> +              </div> +            } +            {!modal.modalProps.active && +              <div className="text-right"> +                <button +                  type='button' +                  className='btn btn-outline-primary' +                  onClick={onOpenAddPeriodForm} +                > +                  {I18n.time_tables.actions.add_period} +                </button> +              </div> +            } +          </div> +        </div> +      </div> +    </div> +  )  +} + +PeriodForm.propTypes = { +  modal: PropTypes.object.isRequired, +  metas: PropTypes.object.isRequired, +  onOpenAddPeriodForm: PropTypes.func.isRequired, +  onClosePeriodForm: PropTypes.func.isRequired, +  onUpdatePeriodForm: PropTypes.func.isRequired, +  onValidatePeriodForm: PropTypes.func.isRequired, +  timetable: PropTypes.object.isRequired +} + +PeriodForm.contextTypes = { +  I18n: PropTypes.object +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js b/app/javascript/time_tables/components/PeriodManager.js index 704e21331..9922ce2c4 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodManager.js +++ b/app/javascript/time_tables/components/PeriodManager.js @@ -1,8 +1,7 @@ -var React = require('react') -var { Component, PropTypes } = require('react') -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class PeriodManager extends Component { +export default class PeriodManager extends Component {    constructor(props, context) {      super(props, context)    } @@ -83,6 +82,4 @@ PeriodManager.propTypes = {  PeriodManager.contextTypes = {    I18n: PropTypes.object -} - -module.exports = PeriodManager +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js b/app/javascript/time_tables/components/PeriodsInDay.js index f56509b99..888537579 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/PeriodsInDay.js +++ b/app/javascript/time_tables/components/PeriodsInDay.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var PeriodManager = require('./PeriodManager') +import React, { PropTypes, Component } from 'react' +import PeriodManager from './PeriodManager' -class PeriodsInDay extends Component { +export default class PeriodsInDay extends Component {    constructor(props) {      super(props)    } @@ -75,5 +73,3 @@ PeriodsInDay.propTypes = {    index: PropTypes.number.isRequired,    onDeletePeriod: PropTypes.func.isRequired  } - -module.exports = PeriodsInDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js b/app/javascript/time_tables/components/SaveTimetable.js index 779fd8e25..d5a57bd1c 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/SaveTimetable.js +++ b/app/javascript/time_tables/components/SaveTimetable.js @@ -1,10 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class SaveTimetable extends Component{ +export default class SaveTimetable extends Component{    constructor(props){      super(props)    } @@ -41,6 +38,4 @@ SaveTimetable.propTypes = {    timetable: PropTypes.object.isRequired,    status: PropTypes.object.isRequired,    metas: PropTypes.object.isRequired -} - -module.exports = SaveTimetable +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/TagsSelect2.js b/app/javascript/time_tables/components/TagsSelect2.js index 46188cdd1..70a748a04 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/TagsSelect2.js +++ b/app/javascript/time_tables/components/TagsSelect2.js @@ -1,21 +1,22 @@ -var _ = require('lodash') -var React = require('react') -var PropTypes = require('react').PropTypes -var Select2 = require('react-select2') +import React, { PropTypes, Component } from 'react' +import mapKeys from 'lodash/mapKeys' +import map from 'lodash/map' +import filter from 'lodash/filter' +import assign from 'lodash/assign' +import Select2 from 'react-select2'  // get JSON full path -var origin = window.location.origin -var path = window.location.pathname.split('/', 4).join('/') -var _ = require('lodash') +let origin = window.location.origin +let path = window.location.pathname.split('/', 4).join('/') -class TagsSelect2 extends React.Component{ +export default class TagsSelect2 extends Component {    constructor(props, context) {      super(props, context)    }    mapKeys(array){      return array.map((item) => -      _.mapKeys(item, (v, k) => +      mapKeys(item, (v, k) =>          ((k == 'name') ? 'text' : k)        )      ) @@ -24,7 +25,7 @@ class TagsSelect2 extends React.Component{    render() {      return (        <Select2 -        value={(this.props.tags.length) ? _.map(this.props.tags, 'id') : undefined} +        value={(this.props.tags.length) ? map(this.props.tags, 'id') : undefined}          data={(this.props.initialTags.length) ? this.mapKeys(this.props.initialTags) : undefined}          onSelect={(e) => this.props.onSelect2Tags(e)}          onUnselect={(e) => setTimeout( () => this.props.onUnselect2Tags(e, 150))} @@ -49,10 +50,10 @@ class TagsSelect2 extends React.Component{                };              },              processResults: function(data, params) { -              let items = _.filter(data, ({name}) => name.includes(params.term) ) +              let items = filter(data, ({name}) => name.includes(params.term) )                return {                  results: items.map( -                  item => _.assign( +                  item => assign(                      {},                      item,                      {text: item.name} @@ -76,6 +77,4 @@ const formatRepo = (props) => {  TagsSelect2.contextTypes = {    I18n: PropTypes.object -} - -module.exports = TagsSelect2 +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js b/app/javascript/time_tables/components/TimeTableDay.js index 93a0a90fe..165c7b848 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/TimeTableDay.js +++ b/app/javascript/time_tables/components/TimeTableDay.js @@ -1,7 +1,6 @@ -var React = require('react') -var { Component, PropTypes } = require('react') +import React, { PropTypes, Component } from 'react' -class TimeTableDay extends Component { +export default class TimeTableDay extends Component {    constructor(props) {      super(props)    } @@ -30,5 +29,3 @@ TimeTableDay.propTypes = {    index: PropTypes.number.isRequired,    dayTypeActive: PropTypes.bool.isRequired  } - -module.exports = TimeTableDay diff --git a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js b/app/javascript/time_tables/components/Timetable.js index 22e971c6b..df6e6016b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/components/Timetable.js +++ b/app/javascript/time_tables/components/Timetable.js @@ -1,11 +1,11 @@ -var React = require('react') -var { Component, PropTypes}  = require('react') -var TimeTableDay = require('./TimeTableDay') -var PeriodsInDay = require('./PeriodsInDay') -var ExceptionsInDay = require('./ExceptionsInDay') -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' +import TimeTableDay from './TimeTableDay' +import PeriodsInDay from './PeriodsInDay' +import ExceptionsInDay from './ExceptionsInDay' -class Timetable extends Component{ + +export default class Timetable extends Component {    constructor(props, context){      super(props, context)    } @@ -113,5 +113,3 @@ Timetable.propTypes = {  Timetable.contextTypes = {    I18n: PropTypes.object  } - -module.exports = Timetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js b/app/javascript/time_tables/containers/App.js index f12fb8a71..235dccb50 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/App.js +++ b/app/javascript/time_tables/containers/App.js @@ -1,16 +1,14 @@ -var React = require('react') -var connect = require('react-redux').connect -var { Component, PropTypes} = require('react') -var actions = require('../actions') -var Metas = require('./Metas') -var Timetable = require('./Timetable') -var Navigate = require('./Navigate') -var PeriodForm = require('./PeriodForm') -var SaveTimetable = require('./SaveTimetable') -var ConfirmModal = require('./ConfirmModal') -var ErrorModal = require('./ErrorModal') - -const clone = require('../../helpers/clone') +import React, { PropTypes, Component } from 'react' +import { connect } from'react-redux' +import actions from '../actions' +import Metas from './Metas' +import Timetable from './Timetable' +import Navigate from './Navigate' +import PeriodForm from './PeriodForm' +import SaveTimetable from './SaveTimetable' +import ConfirmModal from './ConfirmModal' +import ErrorModal from './ErrorModal' +import clone from '../../helpers/clone'  const I18n = clone(window, "I18n", true)  class App extends Component { @@ -54,4 +52,4 @@ App.childContextTypes = {  const timeTableApp = connect(null, mapDispatchToProps)(App) -module.exports = timeTableApp +export default timeTableApp diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/ConfirmModal.js b/app/javascript/time_tables/containers/ConfirmModal.js index 6282c1d1d..f3742b038 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/ConfirmModal.js +++ b/app/javascript/time_tables/containers/ConfirmModal.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var ConfirmModal = require('../components/ConfirmModal') +import { connect } from 'react-redux' +import actions from '../actions' +import ConfirmModal from '../components/ConfirmModal'  const mapStateToProps = (state) => {    return { @@ -28,4 +28,4 @@ const mapDispatchToProps = (dispatch) => {  const ConfirmModalContainer = connect(mapStateToProps, mapDispatchToProps)(ConfirmModal) -module.exports = ConfirmModalContainer +export default ConfirmModalContainer diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/ErrorModal.js b/app/javascript/time_tables/containers/ErrorModal.js index e0b2c1240..37099073b 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/ErrorModal.js +++ b/app/javascript/time_tables/containers/ErrorModal.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var ErrorModal = require('../components/ErrorModal') +import { connect } from 'react-redux' +import actions from '../actions' +import ErrorModal from '../components/ErrorModal'  const mapStateToProps = (state) => {    return { @@ -19,4 +19,4 @@ const mapDispatchToProps = (dispatch) => {  const ErrorModalContainer = connect(mapStateToProps, mapDispatchToProps)(ErrorModal) -module.exports = ErrorModalContainer +export default ErrorModalContainer diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js b/app/javascript/time_tables/containers/Metas.js index c4ab2d5b3..ebccf556e 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Metas.js +++ b/app/javascript/time_tables/containers/Metas.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var MetasComponent = require('../components/Metas') +import { connect } from 'react-redux' +import actions from '../actions' +import MetasComponent from '../components/Metas'  const mapStateToProps = (state) => {    return { @@ -35,4 +35,4 @@ const mapDispatchToProps = (dispatch) => {  const Metas = connect(mapStateToProps, mapDispatchToProps)(MetasComponent) -module.exports = Metas +export default Metas diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Navigate.js b/app/javascript/time_tables/containers/Navigate.js index c70583c25..8d163659c 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Navigate.js +++ b/app/javascript/time_tables/containers/Navigate.js @@ -1,7 +1,7 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var NavigateComponent = require('../components/Navigate') +import React from 'react' +import { connect } from 'react-redux' +import actions from '../actions' +import NavigateComponent from '../components/Navigate'  const mapStateToProps = (state) => {    return { @@ -15,4 +15,4 @@ const mapStateToProps = (state) => {  const Navigate = connect(mapStateToProps)(NavigateComponent) -module.exports = Navigate +export default Navigate diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js b/app/javascript/time_tables/containers/PeriodForm.js index 951a09741..1bde039e2 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/PeriodForm.js +++ b/app/javascript/time_tables/containers/PeriodForm.js @@ -1,7 +1,9 @@ -var connect = require('react-redux').connect -var PeriodFormComponent = require('../components/PeriodForm') -var actions = require('../actions') -var _ = require('lodash') +import { connect } from 'react-redux' +import assign from 'lodash/assign' +import actions from '../actions' +import PeriodFormComponent from '../components/PeriodForm' + +  const mapStateToProps = (state) => {    return { @@ -21,7 +23,7 @@ const mapDispatchToProps = (dispatch) => {      },      onUpdatePeriodForm: (e, group, selectType, modalProps) => {        dispatch(actions.updatePeriodForm(e.currentTarget.value, group, selectType)) -      let mProps = _.assign({}, modalProps) +      let mProps = assign({}, modalProps)        mProps[group][selectType] = e.currentTarget.value        let val = window.correctDay([parseInt(mProps[group]['day']), parseInt(mProps[group]['month']), parseInt(mProps[group]['year'])])        val = (val < 10) ? '0' + String(val) : String(val) @@ -41,4 +43,4 @@ const mapDispatchToProps = (dispatch) => {  const PeriodForm = connect(mapStateToProps, mapDispatchToProps)(PeriodFormComponent) -module.exports = PeriodForm +export default PeriodForm diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js b/app/javascript/time_tables/containers/SaveTimetable.js index 6287da15b..7574dc5cc 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/SaveTimetable.js +++ b/app/javascript/time_tables/containers/SaveTimetable.js @@ -1,7 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var SaveTimetableComponent = require('../components/SaveTimetable') +import { connect } from 'react-redux' +import actions from '../actions' +import SaveTimetableComponent from '../components/SaveTimetable'  const mapStateToProps = (state) => {    return { @@ -23,4 +22,4 @@ const mapDispatchToProps = (dispatch) => {  }  const SaveTimetable = connect(mapStateToProps, mapDispatchToProps)(SaveTimetableComponent) -module.exports = SaveTimetable +export default SaveTimetable diff --git a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js b/app/javascript/time_tables/containers/Timetable.js index a37e99982..e78e8840a 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/containers/Timetable.js +++ b/app/javascript/time_tables/containers/Timetable.js @@ -1,6 +1,6 @@ -var connect = require('react-redux').connect -var TimetableComponent = require('../components/Timetable') -var actions = require('../actions') +import { connect } from 'react-redux' +import actions from '../actions' +import TimetableComponent from '../components/Timetable'  const mapStateToProps = (state) => {    return { @@ -41,4 +41,4 @@ const mapDispatchToProps = (dispatch) => {  const Timetable = connect(mapStateToProps, mapDispatchToProps)(TimetableComponent) -module.exports = Timetable +export default Timetable diff --git a/app/javascript/time_tables/reducers/index.js b/app/javascript/time_tables/reducers/index.js new file mode 100644 index 000000000..aed9035b5 --- /dev/null +++ b/app/javascript/time_tables/reducers/index.js @@ -0,0 +1,16 @@ +import { combineReducers } from 'redux' +import status from './status' +import pagination from './pagination' +import modal from './modal' +import timetable from './timetable' +import metas from './metas' + +const timeTablesApp = combineReducers({ +  timetable, +  metas, +  status, +  pagination, +  modal +}) + +export default timeTablesApp diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js b/app/javascript/time_tables/reducers/metas.js index ab5ed3d91..51e1ec149 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/metas.js +++ b/app/javascript/time_tables/reducers/metas.js @@ -1,10 +1,11 @@ -const _ = require('lodash') -const actions = require('../actions') +import assign from 'lodash/assign' +import filter from 'lodash/filter' +import actions from '../actions' -const metas = (state = {}, action) => { +export default function metas(state = {}, action) {    switch (action.type) {      case 'RECEIVE_TIME_TABLES': -      return _.assign({}, state, { +      return assign({}, state, {          comment: action.json.comment,          day_types: actions.strToArrayDayTypes(action.json.day_types),          tags: action.json.tags, @@ -14,29 +15,27 @@ const metas = (state = {}, action) => {        })      case 'RECEIVE_MONTH':        let dt = (typeof state.day_types === 'string') ? actions.strToArrayDayTypes(state.day_types) : state.day_types -      return _.assign({}, state, {day_types: dt}) +      return assign({}, state, {day_types: dt})      case 'ADD_INCLUDED_DATE':      case 'REMOVE_INCLUDED_DATE':      case 'ADD_EXCLUDED_DATE':      case 'REMOVE_EXCLUDED_DATE':      case 'DELETE_PERIOD':      case 'VALIDATE_PERIOD_FORM': -      return _.assign({}, state, {calendar: null}) +      return assign({}, state, {calendar: null})      case 'UPDATE_DAY_TYPES': -      return _.assign({}, state, {day_types: action.dayTypes, calendar : null}) +      return assign({}, state, {day_types: action.dayTypes, calendar : null})      case 'UPDATE_COMMENT': -      return _.assign({}, state, {comment: action.comment}) +      return assign({}, state, {comment: action.comment})      case 'UPDATE_COLOR': -      return _.assign({}, state, {color: action.color}) +      return assign({}, state, {color: action.color})      case 'UPDATE_SELECT_TAG':        let tags = [...state.tags]        tags.push(action.selectedItem) -      return _.assign({}, state, {tags: tags}) +      return assign({}, state, {tags: tags})      case 'UPDATE_UNSELECT_TAG': -      return _.assign({}, state, {tags: _.filter(state.tags, (t) => (t.id != action.selectedItem.id))}) +      return assign({}, state, {tags: filter(state.tags, (t) => (t.id != action.selectedItem.id))})      default:        return state    } -} - -module.exports = metas +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js b/app/javascript/time_tables/reducers/modal.js index c61296f1c..5e870a6ef 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/modal.js +++ b/app/javascript/time_tables/reducers/modal.js @@ -1,5 +1,5 @@ -var _ = require('lodash') -var actions = require('../actions') +import assign from 'lodash/assign' +import actions from '../actions'  let newModalProps = {}  let emptyDate = { @@ -9,11 +9,11 @@ let emptyDate = {  }  let period_start = '', period_end = '' -const modal = (state = {}, action) => { +export default function modal(state = {}, action) {    switch (action.type) {      case 'OPEN_CONFIRM_MODAL':        $('#ConfirmModal').modal('show') -      return _.assign({}, state, { +      return assign({}, state, {          type: 'confirm',          confirmModal: {            callback: action.callback, @@ -21,14 +21,14 @@ const modal = (state = {}, action) => {        })      case 'OPEN_ERROR_MODAL':        $('#ErrorModal').modal('show') -      newModalProps = _.assign({}, state.modalProps, {error: action.error}) -      return _.assign({}, state, {type: 'error'}, {modalProps: newModalProps}) +      newModalProps = assign({}, state.modalProps, {error: action.error}) +      return assign({}, state, {type: 'error'}, {modalProps: newModalProps})      case 'RESET_MODAL_ERRORS': -      newModalProps = _.assign({}, state.modalProps, {error: ''}) -      return _.assign({}, state, {type: ''}, {modalProps: newModalProps}) +      newModalProps = assign({}, state.modalProps, {error: ''}) +      return assign({}, state, {type: ''}, {modalProps: newModalProps})      case 'CLOSE_PERIOD_FORM': -      newModalProps = _.assign({}, state.modalProps, {active: false, error: ""}) -      return _.assign({}, state, {modalProps: newModalProps}) +      newModalProps = assign({}, state.modalProps, {active: false, error: ""}) +      return assign({}, state, {modalProps: newModalProps})      case 'OPEN_EDIT_PERIOD_FORM':        period_start = action.period.period_start.split('-')        period_end = action.period.period_end.split('-') @@ -45,22 +45,20 @@ const modal = (state = {}, action) => {        newModalProps.active = true        newModalProps.index = action.index        newModalProps.error = '' -      return _.assign({}, state, {modalProps: newModalProps}) +      return assign({}, state, {modalProps: newModalProps})      case 'OPEN_ADD_PERIOD_FORM': -      newModalProps = _.assign({}, state.modalProps, {active: true, begin: emptyDate, end: emptyDate, index: false, error: ''}) -      return _.assign({}, state, {modalProps: newModalProps}) +      newModalProps = assign({}, state.modalProps, {active: true, begin: emptyDate, end: emptyDate, index: false, error: ''}) +      return assign({}, state, {modalProps: newModalProps})      case 'UPDATE_PERIOD_FORM':        newModalProps = JSON.parse(JSON.stringify(state.modalProps))        newModalProps[action.group][action.selectType] = action.val -      return _.assign({}, state, {modalProps: newModalProps}) +      return assign({}, state, {modalProps: newModalProps})      case 'VALIDATE_PERIOD_FORM':        newModalProps = JSON.parse(JSON.stringify(state.modalProps))        newModalProps.error = action.error        newModalProps.active = (newModalProps.error == '') ? false : true -      return _.assign({}, state, {modalProps: newModalProps}) +      return assign({}, state, {modalProps: newModalProps})      default:        return state    } -} - -module.exports = modal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js b/app/javascript/time_tables/reducers/pagination.js index f38b124d9..53a753356 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/pagination.js +++ b/app/javascript/time_tables/reducers/pagination.js @@ -1,25 +1,25 @@ -var _ = require('lodash') +import assign from 'lodash/assign' -const pagination = (state = {}, action) => { +export default function pagination(state = {}, action) {    switch (action.type) {      case 'RECEIVE_TIME_TABLES': -      return _.assign({}, state, { +      return assign({}, state, {          currentPage: action.json.current_periode_range,          periode_range: action.json.periode_range,          stateChanged: false        })      case 'RECEIVE_MONTH':      case 'RECEIVE_ERRORS': -      return _.assign({}, state, {stateChanged: false}) +      return assign({}, state, {stateChanged: false})      case 'GO_TO_PREVIOUS_PAGE':      case 'GO_TO_NEXT_PAGE':        let nextPage = action.nextPage ? 1 : -1        let newPage = action.pagination.periode_range[action.pagination.periode_range.indexOf(action.pagination.currentPage) + nextPage]        toggleOnConfirmModal() -      return _.assign({}, state, {currentPage : newPage, stateChanged: false}) +      return assign({}, state, {currentPage : newPage, stateChanged: false})      case 'CHANGE_PAGE':        toggleOnConfirmModal() -      return _.assign({}, state, {currentPage : action.page, stateChanged: false}) +      return assign({}, state, {currentPage : action.page, stateChanged: false})      case 'ADD_INCLUDED_DATE':      case 'REMOVE_INCLUDED_DATE':      case 'ADD_EXCLUDED_DATE': @@ -31,7 +31,7 @@ const pagination = (state = {}, action) => {      case 'UPDATE_DAY_TYPES':      case 'UPDATE_CURRENT_MONTH_FROM_DAYTYPES':        toggleOnConfirmModal('modal') -      return _.assign({}, state, {stateChanged: true}) +      return assign({}, state, {stateChanged: true})      default:        return state    } @@ -41,6 +41,4 @@ const toggleOnConfirmModal = (arg = '') =>{    $('.confirm').each(function(){      $(this).data('toggle','')    }) -} - -module.exports = pagination +}
\ No newline at end of file diff --git a/app/javascript/time_tables/reducers/status.js b/app/javascript/time_tables/reducers/status.js new file mode 100644 index 000000000..256059191 --- /dev/null +++ b/app/javascript/time_tables/reducers/status.js @@ -0,0 +1,15 @@ +import assign from 'lodash/assign' + +export default function status(state = {}, action) { +  switch (action.type) { +    case 'UNAVAILABLE_SERVER': +      return assign({}, state, {fetchSuccess: false}) +    case 'FETCH_API': +      return assign({}, state, {isFetching: true}) +    case 'RECEIVE_TIME_TABLES': +    case 'RECEIVE_MONTH': +      return assign({}, state, {fetchSuccess: true, isFetching: false}) +    default: +      return state +  } +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js b/app/javascript/time_tables/reducers/timetable.js index 712808abd..21ca1efed 100644 --- a/app/assets/javascripts/es6_browserified/time_tables/reducers/timetable.js +++ b/app/javascript/time_tables/reducers/timetable.js @@ -1,34 +1,37 @@ -const _ = require('lodash') -var actions = require('../actions') +import assign from 'lodash/assign' +import reject from 'lodash/reject' +import sortBy from 'lodash/sortBy' +import reduce from 'lodash/reduce' +import actions from '../actions'  let newState, newPeriods, newDates, newCM -const timetable = (state = {}, action) => { +export default function timetable(state = {}, action) {    switch (action.type) {      case 'RECEIVE_TIME_TABLES': -      let fetchedState = _.assign({}, state, { +      let fetchedState = assign({}, state, {          current_month: action.json.current_month,          current_periode_range: action.json.current_periode_range,          periode_range: action.json.periode_range,          time_table_periods: action.json.time_table_periods, -        time_table_dates: _.sortBy(action.json.time_table_dates, ['date']) +        time_table_dates: sortBy(action.json.time_table_dates, ['date'])        }) -      return _.assign({}, fetchedState, {current_month: actions.updateSynthesis(fetchedState)}) +      return assign({}, fetchedState, {current_month: actions.updateSynthesis(fetchedState)})      case 'RECEIVE_MONTH': -      newState = _.assign({}, state, { +      newState = assign({}, state, {          current_month: action.json.days        }) -      return _.assign({}, newState, {current_month: actions.updateSynthesis(newState)}) +      return assign({}, newState, {current_month: actions.updateSynthesis(newState)})      case 'GO_TO_PREVIOUS_PAGE':      case 'GO_TO_NEXT_PAGE':        let nextPage = action.nextPage ? 1 : -1        let newPage = action.pagination.periode_range[action.pagination.periode_range.indexOf(action.pagination.currentPage) + nextPage]        $('#ConfirmModal').modal('hide')        actions.fetchTimeTables(action.dispatch, newPage) -      return _.assign({}, state, {current_periode_range: newPage}) +      return assign({}, state, {current_periode_range: newPage})      case 'CHANGE_PAGE':        $('#ConfirmModal').modal('hide')        actions.fetchTimeTables(action.dispatch, action.page) -      return _.assign({}, state, {current_periode_range: action.page}) +      return assign({}, state, {current_periode_range: action.page})      case 'DELETE_PERIOD':        newPeriods = state.time_table_periods.map((period, i) =>{          if(i == action.index){ @@ -37,45 +40,45 @@ const timetable = (state = {}, action) => {          return period        })        let deletedPeriod = Array.of(state.time_table_periods[action.index]) -      newDates = _.reject(state.time_table_dates, d => actions.isInPeriod(deletedPeriod, d.date) && !d.in_out) -      newState = _.assign({}, state, {time_table_periods : newPeriods, time_table_dates: newDates}) -      return _.assign({}, newState, { current_month: actions.updateSynthesis(newState)}) +      newDates = reject(state.time_table_dates, d => actions.isInPeriod(deletedPeriod, d.date) && !d.in_out) +      newState = assign({}, state, {time_table_periods : newPeriods, time_table_dates: newDates}) +      return assign({}, newState, { current_month: actions.updateSynthesis(newState)})      case 'ADD_INCLUDED_DATE':        newDates = state.time_table_dates.concat({date: action.date, in_out: true})        newCM = state.current_month.map((d, i) => {          if (i == action.index) d.include_date = true          return d        }) -      return _.assign({}, state, {current_month: newCM, time_table_dates: newDates}) +      return assign({}, state, {current_month: newCM, time_table_dates: newDates})      case 'REMOVE_INCLUDED_DATE': -      newDates = _.reject(state.time_table_dates, ['date', action.date]) +      newDates = reject(state.time_table_dates, ['date', action.date])        newCM = state.current_month.map((d, i) => {          if (i == action.index) d.include_date = false          return d        }) -      return _.assign({}, state, {current_month: newCM, time_table_dates: newDates}) +      return assign({}, state, {current_month: newCM, time_table_dates: newDates})      case 'ADD_EXCLUDED_DATE':        newDates = state.time_table_dates.concat({date: action.date, in_out: false})        newCM = state.current_month.map((d, i) => {          if (i == action.index) d.excluded_date = true          return d        }) -      return _.assign({}, state, {current_month: newCM, time_table_dates: newDates}) +      return assign({}, state, {current_month: newCM, time_table_dates: newDates})      case 'REMOVE_EXCLUDED_DATE': -      newDates = _.reject(state.time_table_dates, ['date', action.date]) +      newDates = reject(state.time_table_dates, ['date', action.date])        newCM = state.current_month.map((d, i) => {          if (i == action.index) d.excluded_date = false          return d        }) -      return _.assign({}, state, {current_month: newCM, time_table_dates: newDates}) +      return assign({}, state, {current_month: newCM, time_table_dates: newDates})      case 'UPDATE_DAY_TYPES':        // We get the week days of the activated day types to reject the out_dates that that are out of newDayTypes -      let weekDays = _.reduce(action.dayTypes, (array, dt, i) => { +      let weekDays = reduce(action.dayTypes, (array, dt, i) => {          if (dt) array.push(i)          return array        }, []) -      newDates =  _.reject(state.time_table_dates, (d) => { +      newDates =  reject(state.time_table_dates, (d) => {          let weekDay = new Date(d.date).getDay()          if (d.in_out) { @@ -84,9 +87,9 @@ const timetable = (state = {}, action) => {            return !weekDays.includes(weekDay)          }        }) -      return _.assign({}, state, {time_table_dates: newDates}) +      return assign({}, state, {time_table_dates: newDates})      case 'UPDATE_CURRENT_MONTH_FROM_DAYTYPES': -      return _.assign({}, state, {current_month: actions.updateSynthesis(state)}) +      return assign({}, state, {current_month: actions.updateSynthesis(state)})      case 'VALIDATE_PERIOD_FORM':        if (action.error != '') return state @@ -99,7 +102,7 @@ const timetable = (state = {}, action) => {          let updatedPeriod = newPeriods[action.modalProps.index]          updatedPeriod.period_start = period_start          updatedPeriod.period_end = period_end -        newDates = _.reject(state.time_table_dates, d => actions.isInPeriod(newPeriods, d.date) && !d.in_out) +        newDates = reject(state.time_table_dates, d => actions.isInPeriod(newPeriods, d.date) && !d.in_out)        }else{          let newPeriod = {            period_start: period_start, @@ -109,11 +112,9 @@ const timetable = (state = {}, action) => {        }        newDates = newDates || state.time_table_dates -      newState =_.assign({}, state, {time_table_periods: newPeriods, time_table_dates: newDates}) -      return _.assign({}, newState, {current_month: actions.updateSynthesis(newState)}) +      newState =assign({}, state, {time_table_periods: newPeriods, time_table_dates: newDates}) +      return assign({}, newState, {current_month: actions.updateSynthesis(newState)})      default:        return state    } -} - -module.exports = timetable +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js b/app/javascript/vehicle_journeys/actions/index.js index 2e2e06514..4272c7915 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/actions/index.js +++ b/app/javascript/vehicle_journeys/actions/index.js @@ -1,10 +1,10 @@ -var Promise = require('promise-polyfill') +import Promise from 'promise-polyfill'  // To add to window  if (!window.Promise) {    window.Promise = Promise;  } -var batchActions = require('../batch').batchActions +import { batchActions } from '../batch'  const actions = {    enterEditMode: () => ({ @@ -460,4 +460,4 @@ const actions = {    },  } -module.exports = actions +export default actions diff --git a/app/javascript/vehicle_journeys/batch.js b/app/javascript/vehicle_journeys/batch.js new file mode 100644 index 000000000..ea08572aa --- /dev/null +++ b/app/javascript/vehicle_journeys/batch.js @@ -0,0 +1,26 @@ +// 'use strict'; + +// Object.defineProperty(exports, "__esModule", { +// 	value: true +// }); +// exports.batchActions = batchActions; +// exports.enableBatching = enableBatching; +// var BATCH = exports.BATCH = 'BATCH'; + +export function batchActions(actions) { +	return { +    type: 'BATCH', +    payload: actions +  }; +} + +export function enableBatching(reduce) { +	return function batchingReducer(state, action) { +		switch (action.type) { +			case 'BATCH': +				return action.payload.reduce(batchingReducer, state); +			default: +				return reduce(state, action); +		} +	} +}
\ No newline at end of file diff --git a/app/javascript/vehicle_journeys/components/App.js b/app/javascript/vehicle_journeys/components/App.js new file mode 100644 index 000000000..8e5f7aa9d --- /dev/null +++ b/app/javascript/vehicle_journeys/components/App.js @@ -0,0 +1,38 @@ +import React from 'react' +import VehicleJourneysList from '../containers/VehicleJourneysList' +import Navigate from '../containers/Navigate' +import ToggleArrivals from '../containers/ToggleArrivals' +import Filters from '../containers/Filters' +import SaveVehicleJourneys from '../containers/SaveVehicleJourneys' +import ConfirmModal from '../containers/ConfirmModal' +import Tools from '../containers/Tools' + +export default function App() { +  return ( +    <div> + +      <div className='row'> +        <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'> +          <ToggleArrivals /> +        </div> +        <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6 text-right'> +          <Navigate /> +        </div> +      </div> + +      <Filters /> +      <VehicleJourneysList /> + +      <div className='row'> +        <div className='col-lg-12 text-right'> +          <Navigate /> +        </div> +      </div> + +      <SaveVehicleJourneys /> +      <Tools /> + +      <ConfirmModal /> +    </div> +  ) +}
\ No newline at end of file diff --git a/app/javascript/vehicle_journeys/components/ConfirmModal.js b/app/javascript/vehicle_journeys/components/ConfirmModal.js new file mode 100644 index 000000000..df3c96c48 --- /dev/null +++ b/app/javascript/vehicle_journeys/components/ConfirmModal.js @@ -0,0 +1,40 @@ +import React, { PropTypes, Component } from 'react' + +export default function ConfirmModal({dispatch, modal, onModalAccept, onModalCancel, vehicleJourneys}) { +  return ( +    <div className={'modal fade ' + ((modal.type == 'confirm') ? 'in' : '')} id='ConfirmModal'> +      <div className='modal-dialog'> +        <div className='modal-content'> +          <div className='modal-body'> +            <p> Voulez-vous valider vos modifications avant de changer de page? </p> +          </div> +          <div className='modal-footer'> +            <button +              className='btn btn-default' +              data-dismiss='modal' +              type='button' +              onClick={() => { onModalCancel(modal.confirmModal.callback) }} +            > +              Ne pas valider +          </button> +            <button +              className='btn btn-danger' +              data-dismiss='modal' +              type='button' +              onClick={() => { onModalAccept(modal.confirmModal.callback, vehicleJourneys) }} +            > +              Valider +          </button> +          </div> +        </div> +      </div> +    </div> +  ) +}  + +ConfirmModal.propTypes = { +  vehicleJourneys: PropTypes.array.isRequired, +  modal: PropTypes.object.isRequired, +  onModalAccept: PropTypes.func.isRequired, +  onModalCancel: PropTypes.func.isRequired +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js b/app/javascript/vehicle_journeys/components/Filters.js index f74bfa71d..db6707520 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Filters.js +++ b/app/javascript/vehicle_journeys/components/Filters.js @@ -1,10 +1,9 @@ -var React = require('react') -var PropTypes = require('react').PropTypes -var MissionSelect2 = require('./tools/select2s/MissionSelect2') -var VJSelect2 = require('./tools/select2s/VJSelect2') -var TimetableSelect2 = require('./tools/select2s/TimetableSelect2') +import React, { PropTypes } from 'react' +import MissionSelect2 from'./tools/select2s/MissionSelect2' +import VJSelect2 from'./tools/select2s/VJSelect2' +import TimetableSelect2 from'./tools/select2s/TimetableSelect2' -const Filters = ({filters, pagination, onFilter, onResetFilters, onUpdateStartTimeFilter, onUpdateEndTimeFilter, onToggleWithoutSchedule, onToggleWithoutTimeTable, onSelect2Timetable, onSelect2JourneyPattern, onSelect2VehicleJourney}) => { +export default function Filters({filters, pagination, onFilter, onResetFilters, onUpdateStartTimeFilter, onUpdateEndTimeFilter, onToggleWithoutSchedule, onToggleWithoutTimeTable, onSelect2Timetable, onSelect2JourneyPattern, onSelect2VehicleJourney}) {    return (      <div className='row'>        <div className='col-lg-12'> @@ -166,6 +165,4 @@ Filters.propTypes = {    onSelect2Timetable: PropTypes.func.isRequired,    onSelect2JourneyPattern: PropTypes.func.isRequired,    onSelect2VehicleJourney: PropTypes.func.isRequired -} - -module.exports = Filters +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js b/app/javascript/vehicle_journeys/components/Navigate.js index a62e034ae..7493b705b 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Navigate.js +++ b/app/javascript/vehicle_journeys/components/Navigate.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from'../actions' -let Navigate = ({ dispatch, vehicleJourneys, pagination, status, filters}) => { +export default function Navigate({ dispatch, vehicleJourneys, pagination, status, filters}) {    let firstPage = 1    let lastPage = Math.ceil(pagination.totalCount / pagination.perPage)    let minVJ = (pagination.page - 1) * pagination.perPage + 1 @@ -54,6 +52,4 @@ Navigate.propTypes = {    status: PropTypes.object.isRequired,    pagination: PropTypes.object.isRequired,    dispatch: PropTypes.func.isRequired -} - -module.exports = Navigate +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js index 3c45e5758..e8c27f92e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/SaveVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/SaveVehicleJourneys.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class SaveVehicleJourneys extends Component{ +export default class SaveVehicleJourneys extends Component{    constructor(props){      super(props)    } @@ -41,6 +39,4 @@ SaveVehicleJourneys.propTypes = {    filters: PropTypes.object.isRequired,    onEnterEditMode: PropTypes.func.isRequired,    onSubmitVehicleJourneys: PropTypes.func.isRequired -} - -module.exports = SaveVehicleJourneys +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/ToggleArrivals.js b/app/javascript/vehicle_journeys/components/ToggleArrivals.js index 48fee683f..e26ceec3a 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/ToggleArrivals.js +++ b/app/javascript/vehicle_journeys/components/ToggleArrivals.js @@ -1,7 +1,6 @@ -var React = require('react') -var PropTypes = require('react').PropTypes +import React, { PropTypes } from 'react' -const ToggleArrivals = ({filters, onToggleArrivals}) => { +export default function ToggleArrivals({filters, onToggleArrivals}) {    return (      <div className='has_switch form-group inline'>        <label htmlFor='toggleArrivals' className='control-label'>Afficher et éditer les horaires d'arrivée</label> @@ -25,6 +24,4 @@ const ToggleArrivals = ({filters, onToggleArrivals}) => {  ToggleArrivals.propTypes = {    filters : PropTypes.object.isRequired,    onToggleArrivals: PropTypes.func.isRequired -} - -module.exports = ToggleArrivals +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js b/app/javascript/vehicle_journeys/components/Tools.js index 4948e6b1a..a717408b9 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/Tools.js +++ b/app/javascript/vehicle_journeys/components/Tools.js @@ -1,15 +1,14 @@ -var React = require('react') -var PropTypes = require('react').PropTypes -var AddVehicleJourney = require('../containers/tools/AddVehicleJourney') -var DeleteVehicleJourneys = require('../containers/tools/DeleteVehicleJourneys') -var ShiftVehicleJourney = require('../containers/tools/ShiftVehicleJourney') -var DuplicateVehicleJourney = require('../containers/tools/DuplicateVehicleJourney') -var EditVehicleJourney = require('../containers/tools/EditVehicleJourney') -var NotesEditVehicleJourney = require('../containers/tools/NotesEditVehicleJourney') -var TimetablesEditVehicleJourney = require('../containers/tools/TimetablesEditVehicleJourney') -var actions = require('../actions') +import React, { PropTypes } from 'react' +import actions from '../actions' +import AddVehicleJourney from '../containers/tools/AddVehicleJourney' +import DeleteVehicleJourneys from '../containers/tools/DeleteVehicleJourneys' +import ShiftVehicleJourney from '../containers/tools/ShiftVehicleJourney' +import DuplicateVehicleJourney from '../containers/tools/DuplicateVehicleJourney' +import EditVehicleJourney from '../containers/tools/EditVehicleJourney' +import NotesEditVehicleJourney from '../containers/tools/NotesEditVehicleJourney' +import TimetablesEditVehicleJourney from '../containers/tools/TimetablesEditVehicleJourney' -const Tools = ({vehicleJourneys, onCancelSelection, filters: {policy}, editMode}) => { +export default function Tools({vehicleJourneys, onCancelSelection, filters: {policy}, editMode}) {    return (      <div>        { @@ -37,6 +36,4 @@ Tools.propTypes = {    vehicleJourneys : PropTypes.array.isRequired,    onCancelSelection: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = Tools +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js b/app/javascript/vehicle_journeys/components/VehicleJourney.js index ca6694f61..cb5407f81 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/VehicleJourney.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../actions' -class VehicleJourney extends Component { +export default class VehicleJourney extends Component {    constructor(props) {      super(props)      this.previousCity = undefined @@ -144,6 +142,4 @@ VehicleJourney.propTypes = {    index: PropTypes.number.isRequired,    onUpdateTime: PropTypes.func.isRequired,    onSelectVehicleJourney: PropTypes.func.isRequired -} - -module.exports = VehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js b/app/javascript/vehicle_journeys/components/VehicleJourneys.js index 8f3f91b25..6bce9766b 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/VehicleJourneys.js @@ -1,10 +1,9 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var VehicleJourney = require('./VehicleJourney') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import _ from 'lodash' +import VehicleJourney from './VehicleJourney' -class VehicleJourneys extends Component{ + +export default class VehicleJourneys extends Component {    constructor(props){      super(props)      this.previousCity = undefined @@ -154,6 +153,4 @@ VehicleJourneys.propTypes = {    onLoadFirstPage: PropTypes.func.isRequired,    onUpdateTime: PropTypes.func.isRequired,    onSelectVehicleJourney: PropTypes.func.isRequired -} - -module.exports = VehicleJourneys +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js b/app/javascript/vehicle_journeys/components/tools/CreateModal.js index 6a1e8ffb9..5b5e2f849 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/CreateModal.js +++ b/app/javascript/vehicle_journeys/components/tools/CreateModal.js @@ -1,11 +1,9 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') -var MissionSelect2 = require('./select2s/MissionSelect2') -var CompanySelect2 = require('./select2s/CompanySelect2') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' +import MissionSelect2 from './select2s/MissionSelect2' +import CompanySelect2 from './select2s/CompanySelect2' -class CreateModal extends Component { +export default class CreateModal extends Component {    constructor(props) {      super(props)    } @@ -130,6 +128,4 @@ CreateModal.propTypes = {    onModalClose: PropTypes.func.isRequired,    onAddVehicleJourney: PropTypes.func.isRequired,    onSelect2JourneyPattern: PropTypes.func.isRequired -} - -module.exports = CreateModal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js b/app/javascript/vehicle_journeys/components/tools/DeleteVehicleJourneys.js index c98b794a8..0a1dedd3c 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DeleteVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/components/tools/DeleteVehicleJourneys.js @@ -1,8 +1,7 @@ -var React = require('react') -var PropTypes = require('react').PropTypes -var actions = require('../../actions') +import React, { PropTypes } from 'react' +import actions from '../../actions' -const DeleteVehicleJourneys = ({onDeleteVehicleJourneys, vehicleJourneys, filters}) => { +export default function DeleteVehicleJourneys({onDeleteVehicleJourneys, vehicleJourneys, filters}) {    return (      <li className='st_action'>        <button @@ -24,6 +23,4 @@ DeleteVehicleJourneys.propTypes = {    onDeleteVehicleJourneys: PropTypes.func.isRequired,    vehicleJourneys: PropTypes.array.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = DeleteVehicleJourneys +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/DuplicateVehicleJourney.js index 9446b993a..0c1c81114 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/DuplicateVehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/tools/DuplicateVehicleJourney.js @@ -1,10 +1,8 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' +import _ from 'lodash' -class DuplicateVehicleJourney extends Component { +export default class DuplicateVehicleJourney extends Component {    constructor(props) {      super(props)      this.state = {} @@ -195,6 +193,4 @@ DuplicateVehicleJourney.propTypes = {    onOpenDuplicateModal: PropTypes.func.isRequired,    onModalClose: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = DuplicateVehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js index d9f81d399..3a4a57024 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/EditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js @@ -1,10 +1,8 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') -var CompanySelect2 = require('./select2s/CompanySelect2') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' +import CompanySelect2 from './select2s/CompanySelect2' -class EditVehicleJourney extends Component { +export default class EditVehicleJourney extends Component {    constructor(props) {      super(props)    } @@ -166,6 +164,4 @@ EditVehicleJourney.propTypes = {    onOpenEditModal: PropTypes.func.isRequired,    onModalClose: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = EditVehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/NotesEditVehicleJourney.js index df6c311e6..1958faf5f 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/NotesEditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/tools/NotesEditVehicleJourney.js @@ -1,10 +1,8 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') -var _ = require('lodash') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' +import _ from 'lodash' -class NotesEditVehicleJourney extends Component { +export default class NotesEditVehicleJourney extends Component {    constructor(props) {      super(props)    } @@ -149,6 +147,4 @@ NotesEditVehicleJourney.propTypes = {    onToggleFootnoteModal: PropTypes.func.isRequired,    onNotesEditVehicleJourney: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = NotesEditVehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/ShiftVehicleJourney.js index dd0bade39..c1e2de779 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/ShiftVehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/tools/ShiftVehicleJourney.js @@ -1,9 +1,7 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' -class ShiftVehicleJourney extends Component { +export default class ShiftVehicleJourney extends Component {    constructor(props) {      super(props)      this.state = { @@ -113,6 +111,4 @@ ShiftVehicleJourney.propTypes = {    onOpenShiftModal: PropTypes.func.isRequired,    onModalClose: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = ShiftVehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js index a26a9b805..fd2304901 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js @@ -1,10 +1,8 @@ -var React = require('react') -var Component = require('react').Component -var PropTypes = require('react').PropTypes -var actions = require('../../actions') -var TimetableSelect2 = require('./select2s/TimetableSelect2') +import React, { PropTypes, Component } from 'react' +import actions from '../../actions' +import TimetableSelect2 from './select2s/TimetableSelect2' -class TimetablesEditVehicleJourney extends Component { +export default class TimetablesEditVehicleJourney extends Component {    constructor(props) {      super(props)    } @@ -130,6 +128,4 @@ TimetablesEditVehicleJourney.propTypes = {    onDeleteCalendarModal: PropTypes.func.isRequired,    onSelect2Timetable: PropTypes.func.isRequired,    filters: PropTypes.object.isRequired -} - -module.exports = TimetablesEditVehicleJourney +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js index c1ce0e92a..9c259630d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/CompanySelect2.js +++ b/app/javascript/vehicle_journeys/components/tools/select2s/CompanySelect2.js @@ -1,15 +1,14 @@ -var _ = require('lodash') -var React = require('react') -var PropTypes = require('react').PropTypes -var Select2 = require('react-select2') +import _ from 'lodash' +import React, { PropTypes, Component } from 'react' +import Select2 from 'react-select2'  // get JSON full path -var origin = window.location.origin -var path = window.location.pathname.split('/', 3).join('/') -var line = window.location.pathname.split('/')[4] +let origin = window.location.origin +let path = window.location.pathname.split('/', 3).join('/') +let line = window.location.pathname.split('/')[4] -class BSelect4 extends React.Component{ +export default class BSelect4 extends Component {    constructor(props) {      super(props)    } @@ -62,6 +61,4 @@ class BSelect4 extends React.Component{  const formatRepo = (props) => {    if(props.text) return props.text -} - -module.exports = BSelect4 +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js index 2f49e9980..e4abdd651 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/MissionSelect2.js +++ b/app/javascript/vehicle_journeys/components/tools/select2s/MissionSelect2.js @@ -1,20 +1,18 @@ -var _ = require('lodash') -var React = require('react') -var PropTypes = require('react').PropTypes -var Select2 = require('react-select2') -var humanOID = require('../../../actions').humanOID +import _ from 'lodash' +import React, { PropTypes, Component } from 'react' +import Select2 from 'react-select2' +import actions from '../../../actions'  // get JSON full path -var origin = window.location.origin -var path = window.location.pathname.split('/', 7).join('/') +let origin = window.location.origin +let path = window.location.pathname.split('/', 7).join('/') -class BSelect4 extends React.Component{ +export default class BSelect4 extends Component {    constructor(props) {      super(props)    } -    render() {      return (        <Select2 @@ -44,7 +42,7 @@ class BSelect4 extends React.Component{                    item => _.assign(                      {},                      item, -                    { text: "<strong>" + item.published_name + " - " + humanOID(item.object_id) + "</strong><br/><small>" + item.registration_number + "</small>" } +                    { text: "<strong>" + item.published_name + " - " + actions.humanOID(item.object_id) + "</strong><br/><small>" + item.registration_number + "</small>" }                    )                  )                }; @@ -62,6 +60,4 @@ class BSelect4 extends React.Component{  const formatRepo = (props) => {    if(props.text) return props.text -} - -module.exports = BSelect4 +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js index 2248175ab..606bf8511 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/TimetableSelect2.js +++ b/app/javascript/vehicle_journeys/components/tools/select2s/TimetableSelect2.js @@ -1,15 +1,14 @@ -var _ = require('lodash') -var React = require('react') -var PropTypes = require('react').PropTypes -var Select2 = require('react-select2') -var humanOID = require('../../../actions').humanOID +import _ from 'lodash' +import React, { PropTypes, Component } from 'react' +import Select2 from 'react-select2' +import actions from '../../../actions'  // get JSON full path  var origin = window.location.origin  var path = window.location.pathname.split('/', 3).join('/') -class BSelect4 extends React.Component{ +export default class BSelect4 extends Component {    constructor(props) {      super(props)    } @@ -48,7 +47,7 @@ class BSelect4 extends React.Component{                    item => _.assign(                      {},                      item, -                    {text: '<strong>' + "<span class='fa fa-circle' style='color:" + (item.color ? item.color : '#4B4B4B') + "'></span> " + item.comment + ' - ' + humanOID(item.objectid) + '</strong><br/><small>' + (item.day_types ? item.day_types.match(/[A-Z]?[a-z]+/g).join(', ') : "") + '</small>'} +                    {text: '<strong>' + "<span class='fa fa-circle' style='color:" + (item.color ? item.color : '#4B4B4B') + "'></span> " + item.comment + ' - ' + actions.humanOID(item.objectid) + '</strong><br/><small>' + (item.day_types ? item.day_types.match(/[A-Z]?[a-z]+/g).join(', ') : "") + '</small>'}                    )                  )                }; @@ -66,6 +65,4 @@ class BSelect4 extends React.Component{  const formatRepo = (props) => {    if(props.text) return props.text -} - -module.exports = BSelect4 +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js b/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js index b9678ea9a..e1af8816d 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/VJSelect2.js +++ b/app/javascript/vehicle_journeys/components/tools/select2s/VJSelect2.js @@ -1,15 +1,14 @@ -var _ = require('lodash') -var React = require('react') -var PropTypes = require('react').PropTypes -var Select2 = require('react-select2') -var humanOID = require('../../../actions').humanOID +import _ from 'lodash' +import React, { PropTypes, Component } from 'react' +import Select2 from 'react-select2' +import actions from '../../../actions'  // get JSON full path -var origin = window.location.origin -var path = window.location.pathname.split('/', 7).join('/') +let origin = window.location.origin +let path = window.location.pathname.split('/', 7).join('/') -class BSelect4b extends React.Component{ +export default class BSelect4b extends Component {    constructor(props) {      super(props)    } @@ -43,7 +42,7 @@ class BSelect4b extends React.Component{                    item => _.assign(                      {},                      item, -                    { id: item.objectid, text: humanOID(item.objectid) } +                    { id: item.objectid, text: actions.humanOID(item.objectid) }                    )                  )                }; @@ -60,6 +59,4 @@ class BSelect4b extends React.Component{  const formatRepo = (props) => {    if(props.text) return props.text -} - -module.exports = BSelect4b +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/fr.js b/app/javascript/vehicle_journeys/components/tools/select2s/fr.js index 20154d412..20154d412 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/tools/select2s/fr.js +++ b/app/javascript/vehicle_journeys/components/tools/select2s/fr.js diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ConfirmModal.js b/app/javascript/vehicle_journeys/containers/ConfirmModal.js index e91ba6bf0..e751a70f6 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ConfirmModal.js +++ b/app/javascript/vehicle_journeys/containers/ConfirmModal.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var ConfirmModal = require('../components/ConfirmModal') +import actions from '../actions' +import { connect } from 'react-redux' +import ConfirmModal from '../components/ConfirmModal'  const mapStateToProps = (state) => {    return { @@ -27,4 +27,4 @@ const mapDispatchToProps = (dispatch) => {  const ConfirmModalContainer = connect(mapStateToProps, mapDispatchToProps)(ConfirmModal) -module.exports = ConfirmModalContainer +export default ConfirmModalContainer diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js b/app/javascript/vehicle_journeys/containers/Filters.js index 831b47ca1..bec3527f4 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Filters.js +++ b/app/javascript/vehicle_journeys/containers/Filters.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var Filters = require('../components/Filters') +import actions from '../actions' +import { connect } from 'react-redux' +import Filters from '../components/Filters'  const mapStateToProps = (state) => {    return { @@ -45,4 +45,4 @@ const mapDispatchToProps = (dispatch) => {  const FiltersList = connect(mapStateToProps, mapDispatchToProps)(Filters) -module.exports = FiltersList +export default FiltersList diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Navigate.js b/app/javascript/vehicle_journeys/containers/Navigate.js index a3eca13c8..f6cd4e2a1 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Navigate.js +++ b/app/javascript/vehicle_journeys/containers/Navigate.js @@ -1,7 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var NavigateComponent = require('../components/Navigate') +import actions from '../actions' +import { connect } from 'react-redux' +import NavigateComponent from '../components/Navigate'  const mapStateToProps = (state) => {    return { @@ -15,4 +14,4 @@ const mapStateToProps = (state) => {  const Navigate = connect(mapStateToProps)(NavigateComponent) -module.exports = Navigate +export default Navigate diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js b/app/javascript/vehicle_journeys/containers/SaveVehicleJourneys.js index c1ce90d38..18f9e994e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/SaveVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/containers/SaveVehicleJourneys.js @@ -1,7 +1,6 @@ -var React = require('react') -var connect = require('react-redux').connect -var actions = require('../actions') -var SaveVehicleJourneysComponent = require('../components/SaveVehicleJourneys') +import actions from '../actions' +import { connect } from 'react-redux' +import SaveVehicleJourneysComponent from '../components/SaveVehicleJourneys'  const mapStateToProps = (state) => {    return { @@ -26,4 +25,4 @@ const mapDispatchToProps = (dispatch) => {  const SaveVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(SaveVehicleJourneysComponent) -module.exports = SaveVehicleJourneys +export default SaveVehicleJourneys diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ToggleArrivals.js b/app/javascript/vehicle_journeys/containers/ToggleArrivals.js index 716485dbf..f6e180f80 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/ToggleArrivals.js +++ b/app/javascript/vehicle_journeys/containers/ToggleArrivals.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var ToggleArrivals = require('../components/ToggleArrivals') +import actions from '../actions' +import { connect } from 'react-redux' +import ToggleArrivals from '../components/ToggleArrivals'  const mapStateToProps = (state) => {    return { @@ -18,4 +18,4 @@ const mapDispatchToProps = (dispatch) => {  const ToggleArrivalsList = connect(mapStateToProps, mapDispatchToProps)(ToggleArrivals) -module.exports = ToggleArrivalsList +export default ToggleArrivalsList diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js b/app/javascript/vehicle_journeys/containers/Tools.js index a4b3056ac..b760b52d6 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/Tools.js +++ b/app/javascript/vehicle_journeys/containers/Tools.js @@ -1,6 +1,6 @@ -var connect = require('react-redux').connect -var ToolsComponent = require('../components/Tools') -var actions = require('../actions') +import actions from '../actions' +import { connect } from 'react-redux' +import ToolsComponent from '../components/Tools'  const mapStateToProps = (state) => {    return { @@ -20,4 +20,4 @@ const mapDispatchToProps = (dispatch) => {  const Tools = connect(mapStateToProps, mapDispatchToProps)(ToolsComponent) -module.exports = Tools +export default Tools diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js index f834e4457..38ab9f6d3 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/VehicleJourneysList.js +++ b/app/javascript/vehicle_journeys/containers/VehicleJourneysList.js @@ -1,6 +1,6 @@ -var actions = require('../actions') -var connect = require('react-redux').connect -var VehicleJourneys = require('../components/VehicleJourneys') +import actions from '../actions' +import { connect } from 'react-redux' +import VehicleJourneys from '../components/VehicleJourneys'  const mapStateToProps = (state) => {    return { @@ -29,4 +29,4 @@ const mapDispatchToProps = (dispatch) => {  const VehicleJourneysList = connect(mapStateToProps, mapDispatchToProps)(VehicleJourneys) -module.exports = VehicleJourneysList +export default VehicleJourneysList diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/AddVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/AddVehicleJourney.js index ffe080cdf..b3f777448 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/AddVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/AddVehicleJourney.js @@ -1,6 +1,6 @@ -var actions = require('../../actions') -var connect = require('react-redux').connect -var CreateModal = require('../../components/tools/CreateModal') +import actions from '../../actions' +import { connect } from 'react-redux' +import CreateModal from '../../components/tools/CreateModal'  const mapStateToProps = (state) => {    return { @@ -34,4 +34,4 @@ const mapDispatchToProps = (dispatch) => {  const AddVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(CreateModal) -module.exports = AddVehicleJourney +export default AddVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js b/app/javascript/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js index c012c9706..d7d315da4 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js +++ b/app/javascript/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js @@ -1,6 +1,6 @@ -var actions = require('../../actions') -var connect = require('react-redux').connect -var DeleteVJComponent = require('../../components/tools/DeleteVehicleJourneys') +import actions from '../../actions' +import { connect } from 'react-redux' +import DeleteVJComponent from '../../components/tools/DeleteVehicleJourneys'  const mapStateToProps = (state) => {    return { @@ -19,4 +19,4 @@ const mapDispatchToProps = (dispatch) => {  const DeleteVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(DeleteVJComponent) -module.exports = DeleteVehicleJourneys +export default DeleteVehicleJourneys diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js index 70e8fde4d..e9ca88040 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js @@ -1,6 +1,6 @@ -var actions = require('../../actions') -var connect = require('react-redux').connect -var DuplicateVJComponent = require('../../components/tools/DuplicateVehicleJourney') +import actions from '../../actions' +import { connect } from 'react-redux' +import DuplicateVJComponent from '../../components/tools/DuplicateVehicleJourney'  const mapStateToProps = (state) => {    return { @@ -27,4 +27,4 @@ const mapDispatchToProps = (dispatch) => {  const DuplicateVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(DuplicateVJComponent) -module.exports = DuplicateVehicleJourney +export default DuplicateVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/EditVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/EditVehicleJourney.js index ac9772b8a..2d480aa0c 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/EditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/EditVehicleJourney.js @@ -1,6 +1,6 @@ -var connect = require('react-redux').connect -var EditComponent = require('../../components/tools/EditVehicleJourney') -var actions = require('../../actions') +import actions from '../../actions' +import { connect } from 'react-redux' +import EditComponent from '../../components/tools/EditVehicleJourney'  const mapStateToProps = (state) => {    return { @@ -33,4 +33,4 @@ const mapDispatchToProps = (dispatch) => {  const EditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(EditComponent) -module.exports = EditVehicleJourney +export default EditVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js index 1619300d0..5a96ff273 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js @@ -1,6 +1,6 @@ -var connect = require('react-redux').connect -var NotesEditComponent = require('../../components/tools/NotesEditVehicleJourney') -var actions = require('../../actions') +import actions from '../../actions' +import { connect } from 'react-redux' +import NotesEditComponent from '../../components/tools/NotesEditVehicleJourney'  const mapStateToProps = (state) => {    return { @@ -30,4 +30,4 @@ const mapDispatchToProps = (dispatch) => {  const NotesEditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(NotesEditComponent) -module.exports = NotesEditVehicleJourney +export default NotesEditVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/ShiftVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/ShiftVehicleJourney.js index 196f6722a..a4b4fbe39 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/ShiftVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/ShiftVehicleJourney.js @@ -1,6 +1,6 @@ -var actions = require('../../actions') -var connect = require('react-redux').connect -var ShiftVJComponent = require('../../components/tools/ShiftVehicleJourney') +import actions from '../../actions' +import { connect } from 'react-redux' +import ShiftVJComponent from '../../components/tools/ShiftVehicleJourney'  const mapStateToProps = (state) => {    return { @@ -27,4 +27,4 @@ const mapDispatchToProps = (dispatch) => {  const ShiftVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(ShiftVJComponent) -module.exports = ShiftVehicleJourney +export default ShiftVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js b/app/javascript/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js index 1cfff407c..62150a06e 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js +++ b/app/javascript/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js @@ -1,6 +1,6 @@ -var connect = require('react-redux').connect -var TimetablesEditComponent = require('../../components/tools/TimetablesEditVehicleJourney') -var actions = require('../../actions') +import actions from '../../actions' +import { connect } from 'react-redux' +import TimetablesEditComponent from '../../components/tools/TimetablesEditVehicleJourney'  const mapStateToProps = (state) => {    return { @@ -34,4 +34,4 @@ const mapDispatchToProps = (dispatch) => {  const TimetablesEditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(TimetablesEditComponent) -module.exports = TimetablesEditVehicleJourney +export default TimetablesEditVehicleJourney diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/editMode.js b/app/javascript/vehicle_journeys/reducers/editMode.js index 2e8af1aa8..bff976804 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/editMode.js +++ b/app/javascript/vehicle_journeys/reducers/editMode.js @@ -1,4 +1,4 @@ -const editMode = (state = {}, action ) => { +export default function editMode(state = {}, action ) {    switch (action.type) {      case "ENTER_EDIT_MODE":        return true @@ -7,6 +7,4 @@ const editMode = (state = {}, action ) => {      default:        return state    } -} - -module.exports = editMode +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js b/app/javascript/vehicle_journeys/reducers/filters.js index b4a70ec08..76fc98cc5 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/filters.js +++ b/app/javascript/vehicle_journeys/reducers/filters.js @@ -1,8 +1,8 @@ -var _ = require('lodash') -var actions = require("../actions") +import _ from 'lodash' +import actions from '../actions'  let newQuery, newInterval -const filters = (state = {}, action) => { +export default function  filters(state = {}, action) {    switch (action.type) {      case 'RESET_FILTERS':        let interval = { @@ -70,6 +70,4 @@ const filters = (state = {}, action) => {      default:        return state    } -} - -module.exports = filters +}
\ No newline at end of file diff --git a/app/javascript/vehicle_journeys/reducers/index.js b/app/javascript/vehicle_journeys/reducers/index.js new file mode 100644 index 000000000..bb24aa185 --- /dev/null +++ b/app/javascript/vehicle_journeys/reducers/index.js @@ -0,0 +1,20 @@ +import { combineReducers } from 'redux' +import vehicleJourneys from './vehicleJourneys' +import pagination from './pagination' +import modal from './modal' +import status from './status' +import filters from './filters' +import editMode from './editMode' +import stopPointsList from './stopPointsList' + +const vehicleJourneysApp = combineReducers({ +  vehicleJourneys, +  pagination, +  modal, +  status, +  filters, +  editMode, +  stopPointsList +}) + +export default vehicleJourneysApp diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js b/app/javascript/vehicle_journeys/reducers/modal.js index 1e5ff4294..57f54a144 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/modal.js +++ b/app/javascript/vehicle_journeys/reducers/modal.js @@ -1,6 +1,8 @@ -var _ = require('lodash') +import _ from 'lodash' +  let vehicleJourneysModal, newModalProps -const modal = (state = {}, action) => { + +export default function modal(state = {}, action) {    switch (action.type) {      case 'OPEN_CONFIRM_MODAL':        $('#ConfirmModal').modal('show') @@ -133,6 +135,4 @@ const modal = (state = {}, action) => {      default:        return state    } -} - -module.exports = modal +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js b/app/javascript/vehicle_journeys/reducers/pagination.js index a8189fc97..45c40c4c4 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/pagination.js +++ b/app/javascript/vehicle_journeys/reducers/pagination.js @@ -1,5 +1,6 @@ -var _ = require('lodash') -const pagination = (state = {}, action) => { +import _ from 'lodash' + +export default function pagination(state = {}, action) {    switch (action.type) {      case 'RECEIVE_JOURNEY_PATTERNS':      case 'RECEIVE_VEHICLE_JOURNEYS': @@ -33,6 +34,4 @@ const toggleOnConfirmModal = (arg = '') =>{    $('.confirm').each(function(){      $(this).data('toggle','')    }) -} - -module.exports = pagination +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js b/app/javascript/vehicle_journeys/reducers/status.js index e658e164e..0bbb05124 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/status.js +++ b/app/javascript/vehicle_journeys/reducers/status.js @@ -1,7 +1,7 @@ -var _ = require('lodash') -var actions = require("../actions") +import _ from 'lodash' +import actions from '../actions' -const status = (state = {}, action) => { +export default function status(state = {}, action) {    switch (action.type) {      case 'UNAVAILABLE_SERVER':        return _.assign({}, state, {fetchSuccess: false}) @@ -14,6 +14,4 @@ const status = (state = {}, action) => {      default:        return state    } -} - -module.exports = status +}
\ No newline at end of file diff --git a/app/javascript/vehicle_journeys/reducers/stopPointsList.js b/app/javascript/vehicle_journeys/reducers/stopPointsList.js new file mode 100644 index 000000000..9b22e08f2 --- /dev/null +++ b/app/javascript/vehicle_journeys/reducers/stopPointsList.js @@ -0,0 +1,6 @@ +export default function stopPointsList(state = [], action) { +  switch (action.type) { +    default: +      return state +  } +}
\ No newline at end of file diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js index 969b2ddd8..775fefdca 100644 --- a/app/assets/javascripts/es6_browserified/vehicle_journeys/reducers/vehicleJourneys.js +++ b/app/javascript/vehicle_journeys/reducers/vehicleJourneys.js @@ -1,5 +1,5 @@ -var _ = require('lodash') -var actions = require("../actions") +import _ from 'lodash' +import actions from '../actions'  const vehicleJourney= (state = {}, action, keep) => {    switch (action.type) { @@ -102,7 +102,7 @@ const vehicleJourney= (state = {}, action, keep) => {    }  } -const vehicleJourneys = (state = [], action) => { +export default function vehicleJourneys(state = [], action) {    switch (action.type) {      case 'RECEIVE_VEHICLE_JOURNEYS':        return [...action.json] @@ -224,6 +224,4 @@ const vehicleJourneys = (state = [], action) => {      default:        return state    } -} - -module.exports = vehicleJourneys +}
\ No newline at end of file diff --git a/app/views/calendars/index.html.slim b/app/views/calendars/index.html.slim index 24ed15484..d3168fa3d 100644 --- a/app/views/calendars/index.html.slim +++ b/app/views/calendars/index.html.slim @@ -49,4 +49,4 @@          .col-lg-12            = replacement_msg t('calendars.search_no_results') -= javascript_include_tag 'filters/calendar.js' += javascript_pack_tag 'date_filters' diff --git a/app/views/compliance_check_sets/_filters.html.slim b/app/views/compliance_check_sets/_filters.html.slim index c5c968c6a..3051bda64 100644 --- a/app/views/compliance_check_sets/_filters.html.slim +++ b/app/views/compliance_check_sets/_filters.html.slim @@ -20,4 +20,4 @@    .actions      = link_to t('actions.erase'), @compliance_checks_sets, class: 'btn btn-link' -    = f.submit t('actions.filter'), class: 'btn btn-default', id: 'referential_filter_btn' +    = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_check_set_filter_btn' diff --git a/app/views/compliance_control_sets/index.html.slim b/app/views/compliance_control_sets/index.html.slim index 22c65dabc..68173fee9 100644 --- a/app/views/compliance_control_sets/index.html.slim +++ b/app/views/compliance_control_sets/index.html.slim @@ -53,4 +53,4 @@            = replacement_msg t('compliance_control_sets.search_no_results') -= javascript_include_tag 'filters/compliance_control_set.js'
\ No newline at end of file += javascript_pack_tag 'date_filters'
\ No newline at end of file diff --git a/app/views/imports/index.html.slim b/app/views/imports/index.html.slim index a6da730f1..cd236ef36 100644 --- a/app/views/imports/index.html.slim +++ b/app/views/imports/index.html.slim @@ -48,4 +48,4 @@          .col-lg-12            = replacement_msg t('imports.search_no_results') -= javascript_include_tag 'filters/import.js' += javascript_pack_tag 'date_filters' diff --git a/app/views/journey_patterns_collections/show.html.slim b/app/views/journey_patterns_collections/show.html.slim index bce4f28b5..8c0950536 100644 --- a/app/views/journey_patterns_collections/show.html.slim +++ b/app/views/journey_patterns_collections/show.html.slim @@ -20,4 +20,4 @@    | window.journeyPatternsPerPage = #{@ppage};    | window.perms = #{raw @perms} -= javascript_include_tag 'es6_browserified/journey_patterns/index.js' += javascript_pack_tag 'journey_patterns/index.js' diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index d6a22c4f8..1bc9de136 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -11,7 +11,9 @@ html lang=I18n.locale      = stylesheet_link_tag 'base'      = stylesheet_link_tag 'application' +    = javascript_pack_tag 'application'      = javascript_include_tag 'application' +        body diff --git a/app/views/routes/_form.html.slim b/app/views/routes/_form.html.slim index 24c0d3c4a..29e5be3d2 100644 --- a/app/views/routes/_form.html.slim +++ b/app/views/routes/_form.html.slim @@ -30,4 +30,4 @@    | window.I18n = #{(I18n.backend.send(:translations)[I18n.locale].to_json).html_safe};  / StopPoints Reactux component -= javascript_include_tag 'es6_browserified/itineraries/index.js' += javascript_pack_tag 'routes/edit.js' diff --git a/app/views/routes/show.html.slim b/app/views/routes/show.html.slim index edc2d254b..83ee62386 100644 --- a/app/views/routes/show.html.slim +++ b/app/views/routes/show.html.slim @@ -76,4 +76,5 @@  = javascript_tag do    | window.route = "#{URI.escape(route_json_for_edit(@route))}" -= javascript_include_tag 'es6_browserified/itineraries/show.js' + += javascript_pack_tag 'routes/show.js'
\ No newline at end of file diff --git a/app/views/time_tables/edit.html.slim b/app/views/time_tables/edit.html.slim index cc6f31489..bf7573c71 100644 --- a/app/views/time_tables/edit.html.slim +++ b/app/views/time_tables/edit.html.slim @@ -13,4 +13,4 @@    | window.actionType = "#{raw params[:action]}";    | window.I18n = #{(I18n.backend.send(:translations)[I18n.locale].to_json).html_safe}; -= javascript_include_tag 'es6_browserified/time_tables/index.js' += javascript_pack_tag 'time_tables/edit.js' diff --git a/app/views/time_tables/index.html.slim b/app/views/time_tables/index.html.slim index b984f95c8..c71a214f1 100644 --- a/app/views/time_tables/index.html.slim +++ b/app/views/time_tables/index.html.slim @@ -69,4 +69,4 @@  = javascript_tag do    | window.I18n = #{(I18n.backend.send(:translations).to_json).html_safe}; -= javascript_include_tag 'filters/time_table.js' += javascript_pack_tag 'date_filters' diff --git a/app/views/vehicle_journeys/index.html.slim b/app/views/vehicle_journeys/index.html.slim index 4efc34eaa..f88afc398 100644 --- a/app/views/vehicle_journeys/index.html.slim +++ b/app/views/vehicle_journeys/index.html.slim @@ -25,4 +25,4 @@    | window.perms = #{raw @perms};    | window.I18n = #{(I18n.backend.send(:translations).to_json).html_safe}; -= javascript_include_tag 'es6_browserified/vehicle_journeys/index.js' += javascript_pack_tag 'vehicle_journeys/index.js' diff --git a/app/views/workbenches/show.html.slim b/app/views/workbenches/show.html.slim index fd72979ea..32a933cc2 100644 --- a/app/views/workbenches/show.html.slim +++ b/app/views/workbenches/show.html.slim @@ -78,4 +78,4 @@  = javascript_tag do    | window.I18n = #{(I18n.backend.send(:translations).to_json).html_safe}; -= javascript_include_tag 'filters/workbench.js' += javascript_pack_tag 'date_filters'
\ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 05a9752b6..169c13e10 100644 --- a/config/application.rb +++ b/config/application.rb @@ -28,7 +28,7 @@ module ChouetteIhm      config.i18n.default_locale = ENV.fetch('RAILS_LOCALE', 'fr').to_sym      # Configure Browserify to use babelify to compile ES6 -    config.browserify_rails.commandline_options = "-t [ babelify --presets [ react es2015 ] ]" +    # config.browserify_rails.commandline_options = "-t [ babelify --presets [ react es2015 ] ]"      config.active_record.observers = [:route_observer, :calendar_observer]      config.active_record.raise_in_transactional_callbacks = true @@ -40,9 +40,9 @@ module ChouetteIhm          Rails.application.config.assets.precompile += %w(spec_helper.js)          # Make sure Browserify is triggered when          # asked to serve javascript spec files -        config.browserify_rails.paths << lambda { |p| -            p.start_with?(Rails.root.join("spec/javascripts").to_s) -        } +        # config.browserify_rails.paths << lambda { |p| +        #     p.start_with?(Rails.root.join("spec/javascripts").to_s) +        # }      end    end  end diff --git a/config/environments/production.rb b/config/environments/production.rb index 794c8bd88..8e21f0919 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -144,5 +144,5 @@ Rails.application.configure do    config.rails_host = ENV.fetch('RAILS_HOST')    # Set node env for browserify-rails -  config.browserify_rails.node_env = "production" +  # config.browserify_rails.node_env = "production"  end diff --git a/config/webpack/dev.js b/config/webpack/dev.js new file mode 100644 index 000000000..97b6a77ff --- /dev/null +++ b/config/webpack/dev.js @@ -0,0 +1,12 @@ +const environment = require('./environment') + +environment.plugins.set( +  'UglifyJs', +  new webpack.optimize.UglifyJsPlugin({ +    compress: { +      warnings: false +    } +  }) +) + +module.exports = environment.toWebpackConfig()
\ No newline at end of file diff --git a/config/webpack/development.js b/config/webpack/development.js new file mode 100644 index 000000000..b66885a3c --- /dev/null +++ b/config/webpack/development.js @@ -0,0 +1,3 @@ +const environment = require('./environment') + +module.exports = environment.toWebpackConfig()
\ No newline at end of file diff --git a/config/webpack/environment.js b/config/webpack/environment.js new file mode 100644 index 000000000..ae1deb610 --- /dev/null +++ b/config/webpack/environment.js @@ -0,0 +1,36 @@ +const { environment } = require('@rails/webpacker') +const webpack = require('webpack') +const UglifyJsPlugin = require('uglify-js') +const CleanWebpackPlugin = require('clean-webpack-plugin') + +let pathsToClean = [ +  'public/packs' +]; + +// the clean options to use +let cleanOptions = { +  root: __dirname + '/../../', +  verbose: true, +  dry: false +}; + + +environment.plugins.set( +  'CleanWebpack', +  new CleanWebpackPlugin(pathsToClean, cleanOptions) +) + +// environment.plugins.set('Provide', new webpack.ProvidePlugin({ +//     $: 'jquery', +//     jQuery: 'jquery', +//     jquery: 'jquery' +//   }) +// ) + +// const config = environment.toWebpackConfig() + +// config.resolve.alias = { +//   jquery: "jquery/src/jquery", +// } + +module.exports = environment
\ No newline at end of file diff --git a/config/webpack/production.js b/config/webpack/production.js new file mode 100644 index 000000000..97b6a77ff --- /dev/null +++ b/config/webpack/production.js @@ -0,0 +1,12 @@ +const environment = require('./environment') + +environment.plugins.set( +  'UglifyJs', +  new webpack.optimize.UglifyJsPlugin({ +    compress: { +      warnings: false +    } +  }) +) + +module.exports = environment.toWebpackConfig()
\ No newline at end of file diff --git a/config/webpack/staging.js b/config/webpack/staging.js new file mode 100644 index 000000000..97b6a77ff --- /dev/null +++ b/config/webpack/staging.js @@ -0,0 +1,12 @@ +const environment = require('./environment') + +environment.plugins.set( +  'UglifyJs', +  new webpack.optimize.UglifyJsPlugin({ +    compress: { +      warnings: false +    } +  }) +) + +module.exports = environment.toWebpackConfig()
\ No newline at end of file diff --git a/config/webpack/test.js b/config/webpack/test.js new file mode 100644 index 000000000..81269f651 --- /dev/null +++ b/config/webpack/test.js @@ -0,0 +1,3 @@ +const environment = require('./environment') + +module.exports = environment.toWebpackConfig() diff --git a/config/webpacker.yml b/config/webpacker.yml new file mode 100644 index 000000000..be1105bad --- /dev/null +++ b/config/webpacker.yml @@ -0,0 +1,81 @@ +# Note: You must restart bin/webpack-dev-server for changes to take effect + +default: &default +  source_path: app/javascript +  source_entry_path: packs +  public_output_path: packs +  cache_path: tmp/cache/webpacker + +  # Additional paths webpack should lookup modules +  # ['app/assets', 'engine/foo/app/assets'] +  resolved_paths: [] + +  # Reload manifest.json on all requests so we reload latest compiled packs +  cache_manifest: false + +  extensions: +    - .coffee +    - .erb +    - .js +    - .jsx +    - .ts +    - .vue +    - .sass +    - .scss +    - .css +    - .png +    - .svg +    - .gif +    - .jpeg +    - .jpg + +development: +  <<: *default +  compile: true + +  # Reference: https://webpack.js.org/configuration/dev-server/ +  dev_server: +    https: false +    host: localhost +    port: 3035 +    public: localhost:3035 +    hmr: false +    # Inline should be set to true if using HMR +    inline: true +    overlay: true +    disable_host_check: true +    use_local_ip: false + +test: +  <<: *default +  compile: true + +  # Compile test packs to a separate directory +  public_output_path: packs-test + +production: +  <<: *default + +  # Production depends on precompilation of packs prior to booting for performance. +  compile: false + +  # Cache manifest.json for performance +  cache_manifest: true + +dev: +  <<: *default + +  # Production depends on precompilation of packs prior to booting for performance. +  compile: false + +  # Cache manifest.json for performance +  cache_manifest: true + +staging: +  <<: *default + +  # Production depends on precompilation of packs prior to booting for performance. +  compile: false + +  # Cache manifest.json for performance +  cache_manifest: true diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake index 7fe289ed6..633bf82ad 100644 --- a/lib/tasks/ci.rake +++ b/lib/tasks/ci.rake @@ -32,11 +32,7 @@ namespace :ci do    end    task :spec do -    sh "bundle exec rspec --profile" -  end - -  task :teaspoon do -    sh "RAILS_ENV=test bundle exec rake teaspoon" +    sh "bundle exec rake spec"    end    desc "Deploy after CI" @@ -55,4 +51,4 @@ namespace :ci do  end  desc "Run continuous integration tasks (spec, ...)" -task :ci => ["ci:setup", "ci:spec", "ci:teaspoon", "cucumber", "ci:check_security", "ci:deploy", "ci:clean"] +task :ci => ["ci:setup", "ci:spec", "cucumber", "ci:check_security", "ci:deploy", "ci:clean"] diff --git a/package.json b/package.json index 9a46403f3..1f6f354b9 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,35 @@  {    "name": "stif-boiv",    "dependencies": { +    "@rails/webpacker": "3.0.2",      "babel-polyfill": "6.16.0",      "babel-preset-es2015": "6.18.0", -    "babel-preset-react": "6.16.0", +    "babel-preset-react": "6.24.1",      "babelify": "7.3.0", -    "browserify": "13.1.1", -    "browserify-incremental": "3.1.1", +    "coffeescript": "1.12.7", +    "jquery": "3.2.1",      "lodash": "4.17.4", -    "promise-polyfill": "^6.0.2", +    "promise-polyfill": "6.0.2",      "react": "15.3.2",      "react-dom": "15.3.2",      "react-redux": "4.4.5", -    "react-select2": "4.0.2", +    "react-select2": "4.0.3",      "redux": "3.6.0", -    "whatwg-fetch": "2.0.3",      "redux-logger": "2.7.4", +    "redux-promise": "0.5.3",      "redux-thunk": "2.1.0", -    "redux-promise": "0.5.3" +    "whatwg-fetch": "2.0.3"    },    "license": "MIT",    "engines": { -    "node": "5.12.0" +    "node": "6.11.4"    },    "devDependencies": { +    "clean-webpack-plugin": "0.1.17",      "es6-object-assign": "1.0.3",      "react-addons-test-utils": "15.3.2", -    "sinon": "1.17.7" +    "sinon": "1.17.7", +    "uglify-js": "3.1.3", +    "webpack-dev-server": "2.9.1"    }  } diff --git a/spec/fixtures/target_OFFRE_TRANSDEV_20170301122517.zip b/spec/fixtures/target_OFFRE_TRANSDEV_20170301122517.zipBinary files differ new file mode 100644 index 000000000..efdcff539 --- /dev/null +++ b/spec/fixtures/target_OFFRE_TRANSDEV_20170301122517.zip diff --git a/spec/fixtures/target_OFFRE_TRANSDEV_20170301122519.zip b/spec/fixtures/target_OFFRE_TRANSDEV_20170301122519.zipBinary files differ new file mode 100644 index 000000000..5c49ab225 --- /dev/null +++ b/spec/fixtures/target_OFFRE_TRANSDEV_20170301122519.zip diff --git a/spec/javascripts/journey_patterns/actions_spec.js b/spec/javascript/journey_patterns/actions_spec.js index 07f83ca1b..75f2682b1 100644 --- a/spec/javascripts/journey_patterns/actions_spec.js +++ b/spec/javascript/journey_patterns/actions_spec.js @@ -1,4 +1,4 @@ -var actions = require('es6_browserified/journey_patterns/actions') +import actions from '../../app/javascript/journey_patterns/actions'  const dispatch = function(){}  const currentPage = 1 diff --git a/spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js b/spec/javascript/journey_patterns/reducers/journey_patterns_spec.js index df288e530..13a88e477 100644 --- a/spec/javascripts/journey_patterns/reducers/journey_patterns_spec.js +++ b/spec/javascript/journey_patterns/reducers/journey_patterns_spec.js @@ -1,4 +1,5 @@ -var jpReducer = require('es6_browserified/journey_patterns/reducers/journeyPatterns') +import jpReducer from '../../../app/javascript/journey_patterns/reducers/journeyPatterns' +  let state = []  let fakeStopPoints = [{    area_type : "lda", diff --git a/spec/javascripts/journey_patterns/reducers/modal_spec.js b/spec/javascript/journey_patterns/reducers/modal_spec.js index 0bc7c9240..a5d215a9c 100644 --- a/spec/javascripts/journey_patterns/reducers/modal_spec.js +++ b/spec/javascript/journey_patterns/reducers/modal_spec.js @@ -1,4 +1,4 @@ -var modalReducer = require('es6_browserified/journey_patterns/reducers/modal') +import modalReducer from '../../../app/javascript/journey_patterns/reducers/modal'  let state = {} diff --git a/spec/javascripts/journey_patterns/reducers/pagination_spec.js b/spec/javascript/journey_patterns/reducers/pagination_spec.js index d0f9fef47..78a09eace 100644 --- a/spec/javascripts/journey_patterns/reducers/pagination_spec.js +++ b/spec/javascript/journey_patterns/reducers/pagination_spec.js @@ -1,4 +1,4 @@ -var reducer = require('es6_browserified/journey_patterns/reducers/pagination') +import reducer from '../../../app/javascript/journey_patterns/reducers/pagination'  const diff = 1  let state = { diff --git a/spec/javascripts/journey_patterns/reducers/status_spec.js b/spec/javascript/journey_patterns/reducers/status_spec.js index 91cbbb0b8..bf27a3d05 100644 --- a/spec/javascripts/journey_patterns/reducers/status_spec.js +++ b/spec/javascript/journey_patterns/reducers/status_spec.js @@ -1,4 +1,4 @@ -var statusReducer = require('es6_browserified/journey_patterns/reducers/status') +import statusReducer from '../../../app/javascript/journey_patterns/reducers/status'  let state = {} diff --git a/spec/javascripts/itineraries/actions_spec.js b/spec/javascript/routes/actions_spec.js index 2bae59987..490b1b615 100644 --- a/spec/javascripts/itineraries/actions_spec.js +++ b/spec/javascript/routes/actions_spec.js @@ -1,4 +1,4 @@ -var actions = require('es6_browserified/itineraries/actions') +import actions from '../../app/javascript/routes/actions'  describe('actions', () => {    it('should create an action to add a stop', () => { diff --git a/spec/javascripts/itineraries/reducers/stop_points_spec.js b/spec/javascript/routes/reducers/stop_points_spec.js index 0331a424c..c9d76a29e 100644 --- a/spec/javascripts/itineraries/reducers/stop_points_spec.js +++ b/spec/javascript/routes/reducers/stop_points_spec.js @@ -1,4 +1,4 @@ -var stopPointsReducer = require('es6_browserified/itineraries/reducers/stopPoints') +import stopPointsReducer from '../../../app/javascript/routes/reducers/stopPoints'  let state = [] diff --git a/spec/javascripts/spec_helper.coffee b/spec/javascript/spec_helper.coffee index 9ff516885..9ff516885 100644 --- a/spec/javascripts/spec_helper.coffee +++ b/spec/javascript/spec_helper.coffee diff --git a/spec/javascripts/spec_helper.js b/spec/javascript/spec_helper.js index a0285cccf..b6fcb7d8d 100644 --- a/spec/javascripts/spec_helper.js +++ b/spec/javascript/spec_helper.js @@ -6,7 +6,7 @@  // require support/your-support-file  //= require jquery  //= require bootstrap-sass-official -require('es6-object-assign').polyfill(); +import { polyfill } from 'es6-object-assign'  //  // PhantomJS (Teaspoons default driver) doesn't have support for Function.prototype.bind, which has caused confusion.  // Use this polyfill to avoid the confusion. diff --git a/spec/javascripts/time_table/actions_spec.js b/spec/javascript/time_table/actions_spec.js index a7344586d..4c1d4e200 100644 --- a/spec/javascripts/time_table/actions_spec.js +++ b/spec/javascript/time_table/actions_spec.js @@ -1,4 +1,4 @@ -var actions = require('es6_browserified/time_tables/actions') +import actions from '../../app/javascript/time_tables/actions'  const dispatch = function(){}  const dayTypes = [true, true, true, true, true, true, true]  const day = { diff --git a/spec/javascripts/time_table/reducers/metas_spec.js b/spec/javascript/time_table/reducers/metas_spec.js index 5ec7a0034..8806cc1cf 100644 --- a/spec/javascripts/time_table/reducers/metas_spec.js +++ b/spec/javascript/time_table/reducers/metas_spec.js @@ -1,4 +1,4 @@ -var metasReducer = require('es6_browserified/time_tables/reducers/metas') +import metasReducer from '../../../app/javascript/time_tables/reducers/metas'  let state = {} diff --git a/spec/javascripts/time_table/reducers/modal_spec.js b/spec/javascript/time_table/reducers/modal_spec.js index 05d58a138..f627ca53b 100644 --- a/spec/javascripts/time_table/reducers/modal_spec.js +++ b/spec/javascript/time_table/reducers/modal_spec.js @@ -1,4 +1,4 @@ -var modalReducer = require('es6_browserified/time_tables/reducers/modal') +import modalReducer from '../../../app/javascript/time_tables/reducers/modal'  let state = {} diff --git a/spec/javascripts/time_table/reducers/pagination_spec.js b/spec/javascript/time_table/reducers/pagination_spec.js index 3c1edb9c5..23135d98b 100644 --- a/spec/javascripts/time_table/reducers/pagination_spec.js +++ b/spec/javascript/time_table/reducers/pagination_spec.js @@ -1,4 +1,4 @@ -var paginationReducer = require('es6_browserified/time_tables/reducers/pagination') +import paginationReducer from '../../../app/javascript/time_tables/reducers/pagination'  const dispatch = function(){} diff --git a/spec/javascripts/time_table/reducers/status_spec.js b/spec/javascript/time_table/reducers/status_spec.js index f000324cc..15b733703 100644 --- a/spec/javascripts/time_table/reducers/status_spec.js +++ b/spec/javascript/time_table/reducers/status_spec.js @@ -1,4 +1,4 @@ -var statusReducer = require('es6_browserified/time_tables/reducers/status') +import statusReducer from '../../../app/javascript/time_tables/reducers/status'  let state = {} diff --git a/spec/javascripts/time_table/reducers/timetable_spec.js b/spec/javascript/time_table/reducers/timetable_spec.js index 21f6d236d..f5e5c0a36 100644 --- a/spec/javascripts/time_table/reducers/timetable_spec.js +++ b/spec/javascript/time_table/reducers/timetable_spec.js @@ -1,5 +1,5 @@  require('whatwg-fetch') -var timetableReducer = require('es6_browserified/time_tables/reducers/timetable') +import timetableReducer from '../../../app/javascript/time_tables/reducers/timetable'  let state = {}  const dispatch = function(){} diff --git a/spec/javascripts/vehicle_journeys/actions_spec.js b/spec/javascript/vehicle_journeys/actions_spec.js index 707ae22cb..b847893d2 100644 --- a/spec/javascripts/vehicle_journeys/actions_spec.js +++ b/spec/javascript/vehicle_journeys/actions_spec.js @@ -1,4 +1,4 @@ -var actions = require('es6_browserified/vehicle_journeys/actions') +import actions from 'vehicle_journeys/actions/index'  const dispatch = function(){}  const currentPage = 1 diff --git a/spec/javascripts/vehicle_journeys/reducers/filters_spec.js b/spec/javascript/vehicle_journeys/reducers/filters_spec.js index 0a6729c8b..43f03ab30 100644 --- a/spec/javascripts/vehicle_journeys/reducers/filters_spec.js +++ b/spec/javascript/vehicle_journeys/reducers/filters_spec.js @@ -1,4 +1,4 @@ -var statusReducer = require('es6_browserified/vehicle_journeys/reducers/filters') +import statusReducer from '../../../app/javascript/vehicle_journeys/reducers/filters'  let state = {} diff --git a/spec/javascripts/vehicle_journeys/reducers/modal_spec.js b/spec/javascript/vehicle_journeys/reducers/modal_spec.js index 4530b5ee7..210ac9e78 100644 --- a/spec/javascripts/vehicle_journeys/reducers/modal_spec.js +++ b/spec/javascript/vehicle_journeys/reducers/modal_spec.js @@ -1,4 +1,4 @@ -var modalReducer = require('es6_browserified/vehicle_journeys/reducers/modal') +import modalReducer from '../../app/javascript/vehicle_journeys/reducers/modal'  let state = {} diff --git a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js b/spec/javascript/vehicle_journeys/reducers/pagination_spec.js index 57417a3b9..0ec2dbea2 100644 --- a/spec/javascripts/vehicle_journeys/reducers/pagination_spec.js +++ b/spec/javascript/vehicle_journeys/reducers/pagination_spec.js @@ -1,4 +1,4 @@ -var reducer = require('es6_browserified/vehicle_journeys/reducers/pagination') +import reducer from '../../../app/javascript/vehicle_journeys/reducers/pagination'  const diff = 1  let state = { diff --git a/spec/javascripts/vehicle_journeys/reducers/status_spec.js b/spec/javascript/vehicle_journeys/reducers/status_spec.js index d48d48f4a..7dee88c97 100644 --- a/spec/javascripts/vehicle_journeys/reducers/status_spec.js +++ b/spec/javascript/vehicle_journeys/reducers/status_spec.js @@ -1,4 +1,4 @@ -var statusReducer = require('es6_browserified/vehicle_journeys/reducers/status') +import statusReducer from '../../../app/javascript/vehicle_journeys/reducers/status'  let state = {} diff --git a/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js b/spec/javascript/vehicle_journeys/reducers/vehicle_journeys_spec.js index 3b2137a2a..92f75206c 100644 --- a/spec/javascripts/vehicle_journeys/reducers/vehicle_journeys_spec.js +++ b/spec/javascript/vehicle_journeys/reducers/vehicle_journeys_spec.js @@ -1,4 +1,4 @@ -var vjReducer = require('es6_browserified/vehicle_journeys/reducers/vehicleJourneys') +import vjReducer from '../../../app/javascript/vehicle_journeys/reducers/vehicleJourneys'  let state = []  let stateModal = { diff --git a/spec/teaspoon_env.rb b/spec/teaspoon_env.rb index d9dd2cc47..da6697b28 100644 --- a/spec/teaspoon_env.rb +++ b/spec/teaspoon_env.rb @@ -10,11 +10,11 @@ Teaspoon.configure do |config|    # Paths that will be appended to the Rails assets paths    # Note: Relative to `config.root`. -  config.asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets"] +  config.asset_paths = ["spec/javascript", "spec/javascript/stylesheets"]    # Fixtures are rendered through a controller, which allows using HAML, RABL/JBuilder, etc. Files in these paths will    # be rendered as fixtures. -  config.fixture_paths = ["spec/javascripts/fixtures"] +  config.fixture_paths = ["spec/javascript/fixtures"]    # SUITES    # @@ -38,7 +38,7 @@ Teaspoon.configure do |config|      # Specify a file matcher as a regular expression and all matching files will be loaded when the suite is run. These      # files need to be within an asset path. You can add asset paths using the `config.asset_paths`. -    suite.matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}" +    suite.matcher = "{spec/javascript,app/javascript}/**/*_spec.{js,js.coffee,coffee}"      # Load additional JS files, but requiring them in your spec helper is the preferred way to do this.      #suite.javascripts = [] | 
