aboutsummaryrefslogtreecommitdiffstats
path: root/app/javascript/packs/routes/edit.js
diff options
context:
space:
mode:
authorLuc Donnet2017-10-16 23:52:06 +0200
committerLuc Donnet2017-10-16 23:52:06 +0200
commitf480ad0739e5c0ec2c0c8bb890344b9c4777ba35 (patch)
treea19bc6b43449b8b978a53c33476fb3eb571d4dda /app/javascript/packs/routes/edit.js
parentb611a84ed724036c4929bd4c3eaa7e23ea314f45 (diff)
parent51a1ea5b141032121913f807a162d305828bec54 (diff)
downloadchouette-core-f480ad0739e5c0ec2c0c8bb890344b9c4777ba35.tar.bz2
Merge branch 'master' into staging
Diffstat (limited to 'app/javascript/packs/routes/edit.js')
-rw-r--r--app/javascript/packs/routes/edit.js81
1 files changed, 81 insertions, 0 deletions
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)
+})