From 23714807a50aa6d555ff23fcadf195fd1ffd4f36 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 2 Nov 2016 15:57:33 +0100 Subject: adding es6 for itineraries devpt --- app/assets/javascripts/es6_browserified/test.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 app/assets/javascripts/es6_browserified/test.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js new file mode 100644 index 000000000..eff33368a --- /dev/null +++ b/app/assets/javascripts/es6_browserified/test.js @@ -0,0 +1,7 @@ +class Welcome { + constructor() { + alert('Yo bitch'); + } +} + +// new Welcome(); -- cgit v1.2.3 From d2fc55bfdeded828794f5780c63bdd923a5a0c73 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 2 Nov 2016 18:23:48 +0100 Subject: mess stuff --- app/assets/javascripts/es6_browserified/test.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js index eff33368a..757e61e95 100644 --- a/app/assets/javascripts/es6_browserified/test.js +++ b/app/assets/javascripts/es6_browserified/test.js @@ -1,7 +1,9 @@ +// get json statham + class Welcome { constructor() { - alert('Yo bitch'); + console.log('Welcome'); } } -// new Welcome(); +new Welcome(); -- cgit v1.2.3 From 717fd9345a16945c09244faab19b8a7ff56db31c Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 3 Nov 2016 17:39:09 +0100 Subject: Add react redux and form example Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/actions/index.js | 25 ++++++++++++++ .../javascripts/es6_browserified/components/App.js | 14 ++++++++ .../es6_browserified/components/Footer.js | 22 ++++++++++++ .../es6_browserified/components/Link.js | 27 +++++++++++++++ .../es6_browserified/components/Todo.js | 21 ++++++++++++ .../es6_browserified/components/TodoList.js | 26 +++++++++++++++ .../es6_browserified/containers/AddTodo.js | 30 +++++++++++++++++ .../es6_browserified/containers/FilterLink.js | 24 +++++++++++++ .../es6_browserified/containers/visibleTodoList.js | 35 +++++++++++++++++++ .../javascripts/es6_browserified/reducers/index.js | 10 ++++++ .../javascripts/es6_browserified/reducers/todos.js | 39 ++++++++++++++++++++++ .../es6_browserified/reducers/visibilityFilter.js | 10 ++++++ app/assets/javascripts/es6_browserified/test.js | 20 +++++++---- 13 files changed, 296 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/actions/index.js create mode 100644 app/assets/javascripts/es6_browserified/components/App.js create mode 100644 app/assets/javascripts/es6_browserified/components/Footer.js create mode 100644 app/assets/javascripts/es6_browserified/components/Link.js create mode 100644 app/assets/javascripts/es6_browserified/components/Todo.js create mode 100644 app/assets/javascripts/es6_browserified/components/TodoList.js create mode 100644 app/assets/javascripts/es6_browserified/containers/AddTodo.js create mode 100644 app/assets/javascripts/es6_browserified/containers/FilterLink.js create mode 100644 app/assets/javascripts/es6_browserified/containers/visibleTodoList.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/index.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/todos.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js new file mode 100644 index 000000000..99b50384a --- /dev/null +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -0,0 +1,25 @@ +let nextTodoId = 0 +module.exports = { + + addTodo : (text) => { + return { + type: 'ADD_TODO', + id: nextTodoId++, + text + } + }, + + setVisibilityFilter : (filter) => { + return { + type: 'SET_VISIBILITY_FILTER', + filter + } + }, + + toggleTodo : (id) => { + return { + type: 'TOGGLE_TODO', + id + } + }, +} diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js new file mode 100644 index 000000000..62db53da1 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -0,0 +1,14 @@ +var React = require('react') +var Footer = require('./Footer') +var AddTodo = require('../containers/AddTodo') +var VisibleTodoList = require('../containers/VisibleTodoList') + +const App = () => ( +
+ + +
+
+) + +module.exports = App diff --git a/app/assets/javascripts/es6_browserified/components/Footer.js b/app/assets/javascripts/es6_browserified/components/Footer.js new file mode 100644 index 000000000..de839f11f --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Footer.js @@ -0,0 +1,22 @@ +var React = require('react') +var FilterLink = require('../containers/FilterLink') + +const Footer = () => ( +

+ Show: + {" "} + + All + + {", "} + + Active + + {", "} + + Completed + +

+) + +module.exports = Footer diff --git a/app/assets/javascripts/es6_browserified/components/Link.js b/app/assets/javascripts/es6_browserified/components/Link.js new file mode 100644 index 000000000..54daea2b6 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Link.js @@ -0,0 +1,27 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const Link = ({ active, children, onClick }) => { + if (active) { + return {children} + } + + return ( + { + e.preventDefault() + onClick() + }} + > + {children} + + ) +} + +Link.propTypes = { + active: PropTypes.bool.isRequired, + children: PropTypes.node.isRequired, + onClick: PropTypes.func.isRequired +} + +module.exports = Link diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js new file mode 100644 index 000000000..d0a83917f --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -0,0 +1,21 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const Todo = ({ onClick, completed, text }) => ( +
  • + {text} +
  • +) + +Todo.propTypes = { + onClick: PropTypes.func.isRequired, + completed: PropTypes.bool.isRequired, + text: PropTypes.string.isRequired +} + +module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js new file mode 100644 index 000000000..beabfb2c2 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -0,0 +1,26 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +var Todo = require('./Todo') + +const TodoList = ({ todos, onTodoClick }) => ( + +) + +TodoList.propTypes = { + todos: PropTypes.arrayOf(PropTypes.shape({ + id: PropTypes.number.isRequired, + completed: PropTypes.bool.isRequired, + text: PropTypes.string.isRequired + }).isRequired).isRequired, + onTodoClick: PropTypes.func.isRequired +} + +module.exports = TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js new file mode 100644 index 000000000..41c37063b --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -0,0 +1,30 @@ +var React = require('react') +var connect = require('react-redux').connect +var addTodo = require('../actions').addTodo + +let AddTodo = ({ dispatch }) => { + let input + + return ( +
    +
    { + e.preventDefault() + if (!input.value.trim()) { + return + } + dispatch(addTodo(input.value)) + input.value = '' + }}> + { + input = node + }} /> + +
    +
    + ) +} +AddTodo = connect()(AddTodo) + +module.exports = AddTodo diff --git a/app/assets/javascripts/es6_browserified/containers/FilterLink.js b/app/assets/javascripts/es6_browserified/containers/FilterLink.js new file mode 100644 index 000000000..7f6778277 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/FilterLink.js @@ -0,0 +1,24 @@ +var connect = require('react-redux').connect +var setVisibilityFilter = require('../actions').setVisibilityFilter +var Link = require('../components/Link') + +const mapStateToProps = (state, ownProps) => { + return { + active: ownProps.filter === state.visibilityFilter + } +} + +const mapDispatchToProps = (dispatch, ownProps) => { + return { + onClick: () => { + dispatch(setVisibilityFilter(ownProps.filter)) + } + } +} + +const FilterLink = connect( + mapStateToProps, + mapDispatchToProps +)(Link) + +module.exports = FilterLink diff --git a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js new file mode 100644 index 000000000..5a70582e0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js @@ -0,0 +1,35 @@ +var connect = require('react-redux').connect +var toggleTodo = require('../actions').toggleTodo +var TodoList = require('../components/TodoList') + +const getVisibleTodos = (todos, filter) => { + switch (filter) { + case 'SHOW_ALL': + return todos + case 'SHOW_COMPLETED': + return todos.filter(t => t.completed) + case 'SHOW_ACTIVE': + return todos.filter(t => !t.completed) + } +} + +const mapStateToProps = (state) => { + return { + todos: getVisibleTodos(state.todos, state.visibilityFilter) + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onTodoClick: (id) => { + dispatch(toggleTodo(id)) + } + } +} + +const VisibleTodoList = connect( + mapStateToProps, + mapDispatchToProps +)(TodoList) + +module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/reducers/index.js b/app/assets/javascripts/es6_browserified/reducers/index.js new file mode 100644 index 000000000..67dbfa862 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/index.js @@ -0,0 +1,10 @@ +var combineReducers = require('redux').combineReducers +var todos = require('./todos') +var visibilityFilter = require('./visibilityFilter') + +const todoApp = combineReducers({ + todos, + visibilityFilter +}) + +module.exports = todoApp diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js new file mode 100644 index 000000000..a99c781ea --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -0,0 +1,39 @@ +const todo = (state = {}, action) => { + switch (action.type) { + case 'ADD_TODO': + return { + id: action.id, + text: action.text, + completed: false + } + case 'TOGGLE_TODO': + if (state.id !== action.id) { + return state + } + + return Object.assign({}, state, { + completed: !state.completed + }) + + default: + return state + } +} + +const todos = (state = [], action) => { + switch (action.type) { + case 'ADD_TODO': + return [ + ...state, + todo(undefined, action) + ] + case 'TOGGLE_TODO': + return state.map(t => + todo(t, action) + ) + default: + return state + } +} + +module.exports = todos diff --git a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js new file mode 100644 index 000000000..1652ad90c --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js @@ -0,0 +1,10 @@ +const visibilityFilter = (state = 'SHOW_ALL', action) => { + switch (action.type) { + case 'SET_VISIBILITY_FILTER': + return action.filter + default: + return state + } +} + +module.exports = visibilityFilter diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js index 757e61e95..9e8b62fbc 100644 --- a/app/assets/javascripts/es6_browserified/test.js +++ b/app/assets/javascripts/es6_browserified/test.js @@ -1,9 +1,15 @@ -// get json statham +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var todoApp = require('./reducers') +var App = require('./components/App') -class Welcome { - constructor() { - console.log('Welcome'); - } -} +let store = createStore(todoApp) -new Welcome(); +render( + + + , + document.getElementById('root') +) -- cgit v1.2.3 From b2acd04ec51fb09b55ab4df643de1488b7571da6 Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 4 Nov 2016 14:25:49 +0100 Subject: getting itinerary stop_points data in js --- .../es6_browserified/containers/VisibleTodoList.js | 35 ++++++++++++++++++++++ .../es6_browserified/containers/visibleTodoList.js | 35 ---------------------- app/assets/javascripts/es6_browserified/getJSON.js | 1 + 3 files changed, 36 insertions(+), 35 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js delete mode 100644 app/assets/javascripts/es6_browserified/containers/visibleTodoList.js create mode 100644 app/assets/javascripts/es6_browserified/getJSON.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js new file mode 100644 index 000000000..5a70582e0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -0,0 +1,35 @@ +var connect = require('react-redux').connect +var toggleTodo = require('../actions').toggleTodo +var TodoList = require('../components/TodoList') + +const getVisibleTodos = (todos, filter) => { + switch (filter) { + case 'SHOW_ALL': + return todos + case 'SHOW_COMPLETED': + return todos.filter(t => t.completed) + case 'SHOW_ACTIVE': + return todos.filter(t => !t.completed) + } +} + +const mapStateToProps = (state) => { + return { + todos: getVisibleTodos(state.todos, state.visibilityFilter) + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onTodoClick: (id) => { + dispatch(toggleTodo(id)) + } + } +} + +const VisibleTodoList = connect( + mapStateToProps, + mapDispatchToProps +)(TodoList) + +module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js deleted file mode 100644 index 5a70582e0..000000000 --- a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js +++ /dev/null @@ -1,35 +0,0 @@ -var connect = require('react-redux').connect -var toggleTodo = require('../actions').toggleTodo -var TodoList = require('../components/TodoList') - -const getVisibleTodos = (todos, filter) => { - switch (filter) { - case 'SHOW_ALL': - return todos - case 'SHOW_COMPLETED': - return todos.filter(t => t.completed) - case 'SHOW_ACTIVE': - return todos.filter(t => !t.completed) - } -} - -const mapStateToProps = (state) => { - return { - todos: getVisibleTodos(state.todos, state.visibilityFilter) - } -} - -const mapDispatchToProps = (dispatch) => { - return { - onTodoClick: (id) => { - dispatch(toggleTodo(id)) - } - } -} - -const VisibleTodoList = connect( - mapStateToProps, - mapDispatchToProps -)(TodoList) - -module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js new file mode 100644 index 000000000..e883522b0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -0,0 +1 @@ +console.log(window.itinerary_stop); -- cgit v1.2.3 From cb0500d5949153d75f1aeb656034d8d55e02a615 Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 4 Nov 2016 15:03:49 +0100 Subject: getting itinerary stop_points data in js, formatted in correct JSON object --- app/assets/javascripts/es6_browserified/getJSON.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js index e883522b0..5e7e1a078 100644 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -1 +1,4 @@ -console.log(window.itinerary_stop); +data = decodeURIComponent(window.itinerary_stop) +JSONobject = JSON.parse(data) + +console.log(JSONobject) -- cgit v1.2.3 From 3d7f82296c3a265a3ad40139277c1177bf860f17 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 4 Nov 2016 17:41:54 +0100 Subject: Add first features (add / moveup / movedown / delete) to stops list Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi Signed-off-by: Mickael Gaeta Signed-off-by: Jean-Paul Lescouzeres --- .../javascripts/es6_browserified/actions/index.js | 26 +++++++----- .../javascripts/es6_browserified/components/App.js | 2 - .../es6_browserified/components/Footer.js | 22 ----------- .../es6_browserified/components/Link.js | 27 ------------- .../es6_browserified/components/Todo.js | 46 ++++++++++++++++------ .../es6_browserified/components/TodoList.js | 18 +++++---- .../es6_browserified/containers/AddTodo.js | 11 +----- .../es6_browserified/containers/FilterLink.js | 24 ----------- .../es6_browserified/containers/VisibleTodoList.js | 26 ++++++------ .../javascripts/es6_browserified/reducers/index.js | 4 +- .../javascripts/es6_browserified/reducers/todos.js | 40 +++++++++++-------- .../es6_browserified/reducers/visibilityFilter.js | 10 ----- 12 files changed, 99 insertions(+), 157 deletions(-) delete mode 100644 app/assets/javascripts/es6_browserified/components/Footer.js delete mode 100644 app/assets/javascripts/es6_browserified/components/Link.js delete mode 100644 app/assets/javascripts/es6_browserified/containers/FilterLink.js delete mode 100644 app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index 99b50384a..e90631c7f 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,25 +1,31 @@ let nextTodoId = 0 module.exports = { - addTodo : (text) => { + addStop : () => { return { - type: 'ADD_TODO', - id: nextTodoId++, - text + type: 'ADD_STOP', + id: nextTodoId++ } }, - setVisibilityFilter : (filter) => { + moveStopUp : (index) => { return { - type: 'SET_VISIBILITY_FILTER', - filter + type: 'MOVE_STOP_UP', + index } }, - toggleTodo : (id) => { + moveStopDown : (index) => { return { - type: 'TOGGLE_TODO', - id + type: 'MOVE_STOP_DOWN', + index } }, + + deleteStop: (index) => { + return { + type: 'DELETE_STOP', + index + } + } } diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js index 62db53da1..7488b0b39 100644 --- a/app/assets/javascripts/es6_browserified/components/App.js +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -1,5 +1,4 @@ var React = require('react') -var Footer = require('./Footer') var AddTodo = require('../containers/AddTodo') var VisibleTodoList = require('../containers/VisibleTodoList') @@ -7,7 +6,6 @@ const App = () => (
    -
    ) diff --git a/app/assets/javascripts/es6_browserified/components/Footer.js b/app/assets/javascripts/es6_browserified/components/Footer.js deleted file mode 100644 index de839f11f..000000000 --- a/app/assets/javascripts/es6_browserified/components/Footer.js +++ /dev/null @@ -1,22 +0,0 @@ -var React = require('react') -var FilterLink = require('../containers/FilterLink') - -const Footer = () => ( -

    - Show: - {" "} - - All - - {", "} - - Active - - {", "} - - Completed - -

    -) - -module.exports = Footer diff --git a/app/assets/javascripts/es6_browserified/components/Link.js b/app/assets/javascripts/es6_browserified/components/Link.js deleted file mode 100644 index 54daea2b6..000000000 --- a/app/assets/javascripts/es6_browserified/components/Link.js +++ /dev/null @@ -1,27 +0,0 @@ -var React = require('react') -var PropTypes = require('react').PropTypes - -const Link = ({ active, children, onClick }) => { - if (active) { - return {children} - } - - return ( - { - e.preventDefault() - onClick() - }} - > - {children} - - ) -} - -Link.propTypes = { - active: PropTypes.bool.isRequired, - children: PropTypes.node.isRequired, - onClick: PropTypes.func.isRequired -} - -module.exports = Link diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index d0a83917f..a64c38c63 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,21 +1,45 @@ var React = require('react') var PropTypes = require('react').PropTypes -const Todo = ({ onClick, completed, text }) => ( -
  • ( +
    - {text} -
  • +
    + {props.id} +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + ) Todo.propTypes = { - onClick: PropTypes.func.isRequired, - completed: PropTypes.bool.isRequired, - text: PropTypes.string.isRequired + onDeleteClick: PropTypes.func.isRequired, + onMoveUpClick: PropTypes.func.isRequired, + onMoveDownClick: PropTypes.func.isRequired } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index beabfb2c2..f81b8171d 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,25 +2,27 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onTodoClick }) => ( -
      - {todos.map(todo => +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => ( +
      + {todos.map((todo, index) => onTodoClick(todo.id)} + onDeleteClick={() => onDeleteClick(index)} + onMoveUpClick={() => onMoveUpClick(index)} + onMoveDownClick={() => onMoveDownClick(index)} /> )} -
    + ) TodoList.propTypes = { todos: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number.isRequired, - completed: PropTypes.bool.isRequired, - text: PropTypes.string.isRequired }).isRequired).isRequired, - onTodoClick: PropTypes.func.isRequired + onDeleteClick: PropTypes.func.isRequired, + onMoveUpClick: PropTypes.func.isRequired, + onMoveDownClick: PropTypes.func.isRequired } module.exports = TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 41c37063b..90a187f5f 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -1,6 +1,6 @@ var React = require('react') var connect = require('react-redux').connect -var addTodo = require('../actions').addTodo +var addTodo = require('../actions').addStop let AddTodo = ({ dispatch }) => { let input @@ -9,15 +9,8 @@ let AddTodo = ({ dispatch }) => {
    { e.preventDefault() - if (!input.value.trim()) { - return - } - dispatch(addTodo(input.value)) - input.value = '' + dispatch(addTodo()) }}> - { - input = node - }} /> diff --git a/app/assets/javascripts/es6_browserified/containers/FilterLink.js b/app/assets/javascripts/es6_browserified/containers/FilterLink.js deleted file mode 100644 index 7f6778277..000000000 --- a/app/assets/javascripts/es6_browserified/containers/FilterLink.js +++ /dev/null @@ -1,24 +0,0 @@ -var connect = require('react-redux').connect -var setVisibilityFilter = require('../actions').setVisibilityFilter -var Link = require('../components/Link') - -const mapStateToProps = (state, ownProps) => { - return { - active: ownProps.filter === state.visibilityFilter - } -} - -const mapDispatchToProps = (dispatch, ownProps) => { - return { - onClick: () => { - dispatch(setVisibilityFilter(ownProps.filter)) - } - } -} - -const FilterLink = connect( - mapStateToProps, - mapDispatchToProps -)(Link) - -module.exports = FilterLink diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index 5a70582e0..a6452018b 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -1,28 +1,26 @@ var connect = require('react-redux').connect var toggleTodo = require('../actions').toggleTodo +var deleteStop = require('../actions').deleteStop +var moveStopUp = require('../actions').moveStopUp +var moveStopDown = require('../actions').moveStopDown var TodoList = require('../components/TodoList') -const getVisibleTodos = (todos, filter) => { - switch (filter) { - case 'SHOW_ALL': - return todos - case 'SHOW_COMPLETED': - return todos.filter(t => t.completed) - case 'SHOW_ACTIVE': - return todos.filter(t => !t.completed) - } -} - const mapStateToProps = (state) => { return { - todos: getVisibleTodos(state.todos, state.visibilityFilter) + todos: state.todos } } const mapDispatchToProps = (dispatch) => { return { - onTodoClick: (id) => { - dispatch(toggleTodo(id)) + onDeleteClick: (index) =>{ + dispatch(deleteStop(index)) + }, + onMoveUpClick: (index) =>{ + dispatch(moveStopUp(index)) + }, + onMoveDownClick: (index) =>{ + dispatch(moveStopDown(index)) } } } diff --git a/app/assets/javascripts/es6_browserified/reducers/index.js b/app/assets/javascripts/es6_browserified/reducers/index.js index 67dbfa862..ae8423673 100644 --- a/app/assets/javascripts/es6_browserified/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/reducers/index.js @@ -1,10 +1,8 @@ var combineReducers = require('redux').combineReducers var todos = require('./todos') -var visibilityFilter = require('./visibilityFilter') const todoApp = combineReducers({ - todos, - visibilityFilter + todos }) module.exports = todoApp diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index a99c781ea..f2af9452a 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,19 +1,10 @@ const todo = (state = {}, action) => { + console.log('action', action) switch (action.type) { - case 'ADD_TODO': + case 'ADD_STOP': return { - id: action.id, - text: action.text, - completed: false + id: action.id } - case 'TOGGLE_TODO': - if (state.id !== action.id) { - return state - } - - return Object.assign({}, state, { - completed: !state.completed - }) default: return state @@ -22,15 +13,30 @@ const todo = (state = {}, action) => { const todos = (state = [], action) => { switch (action.type) { - case 'ADD_TODO': + case 'ADD_STOP': return [ ...state, todo(undefined, action) ] - case 'TOGGLE_TODO': - return state.map(t => - todo(t, action) - ) + case 'MOVE_STOP_UP': + return [ + ...state.slice(0, action.index - 1), + state[action.index], + state[action.index - 1], + ...state.slice(action.index + 1) + ] + case 'MOVE_STOP_DOWN': + return [ + ...state.slice(0, action.index), + state[action.index + 1], + state[action.index], + ...state.slice(action.index + 2) + ] + case 'DELETE_STOP': + return [ + ...state.slice(0, action.index), + ...state.slice(action.index + 1) + ] default: return state } diff --git a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js deleted file mode 100644 index 1652ad90c..000000000 --- a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js +++ /dev/null @@ -1,10 +0,0 @@ -const visibilityFilter = (state = 'SHOW_ALL', action) => { - switch (action.type) { - case 'SET_VISIBILITY_FILTER': - return action.filter - default: - return state - } -} - -module.exports = visibilityFilter -- cgit v1.2.3 From 22fdf9380bb62eefccdc344424aca8d7f36c0af8 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 10:03:58 +0100 Subject: rename js reactux file for better understanding --- app/assets/javascripts/es6_browserified/getJSON.js | 2 +- app/assets/javascripts/es6_browserified/stop_points.js | 15 +++++++++++++++ app/assets/javascripts/es6_browserified/test.js | 15 --------------- 3 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/stop_points.js delete mode 100644 app/assets/javascripts/es6_browserified/test.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js index 5e7e1a078..c65336b2d 100644 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -1,4 +1,4 @@ data = decodeURIComponent(window.itinerary_stop) JSONobject = JSON.parse(data) -console.log(JSONobject) +console.log("JSON", JSONobject) diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js new file mode 100644 index 000000000..9e8b62fbc --- /dev/null +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -0,0 +1,15 @@ +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var todoApp = require('./reducers') +var App = require('./components/App') + +let store = createStore(todoApp) + +render( + + + , + document.getElementById('root') +) diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js deleted file mode 100644 index 9e8b62fbc..000000000 --- a/app/assets/javascripts/es6_browserified/test.js +++ /dev/null @@ -1,15 +0,0 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var todoApp = require('./reducers') -var App = require('./components/App') - -let store = createStore(todoApp) - -render( - - - , - document.getElementById('root') -) -- cgit v1.2.3 From 6ab5dda8151d45859590cd10015d0886b2f45093 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 10:16:48 +0100 Subject: starting front adjustments for reactux stop_points fields --- app/assets/javascripts/es6_browserified/containers/AddTodo.js | 5 +++-- app/assets/javascripts/es6_browserified/stop_points.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 90a187f5f..21b5c88d6 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -11,8 +11,9 @@ let AddTodo = ({ dispatch }) => { e.preventDefault() dispatch(addTodo()) }}> -
    diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 9e8b62fbc..a324ef5bd 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -11,5 +11,5 @@ render( , - document.getElementById('root') + document.getElementById('stop_points') ) -- cgit v1.2.3 From bee4a67f9791e7ca250d9b3cd1b3c8055ac3705f Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 11:18:24 +0100 Subject: update list-grou-items components integration --- app/assets/javascripts/es6_browserified/components/Todo.js | 11 ++++++----- app/assets/javascripts/es6_browserified/containers/AddTodo.js | 5 ++--- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index a64c38c63..84426155d 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,14 +1,15 @@ var React = require('react') var PropTypes = require('react').PropTypes +const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} +const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} + const Todo = (props) => ( -
    -
    +
    +
    {props.id}
    -
    +
    diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 21b5c88d6..ddaedf8f6 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -6,14 +6,13 @@ let AddTodo = ({ dispatch }) => { let input return ( -
    +
    { e.preventDefault() dispatch(addTodo()) }}>
    -- cgit v1.2.3 From db94b1f2ca155d5e94f39e1101102f0538c53b16 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 11:43:06 +0100 Subject: adding reactux comp. to form (edit+new) and fixing ordering issues --- app/assets/javascripts/es6_browserified/components/Todo.js | 10 ++++++---- app/assets/javascripts/es6_browserified/components/TodoList.js | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 84426155d..b503f21f8 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -2,7 +2,7 @@ var React = require('react') var PropTypes = require('react').PropTypes const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} -const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} +const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} const Todo = (props) => (
    @@ -15,13 +15,13 @@ const Todo = (props) => (
    @@ -40,7 +40,9 @@ const Todo = (props) => ( Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, - onMoveDownClick: PropTypes.func.isRequired + onMoveDownClick: PropTypes.func.isRequired, + first: PropTypes.bool, + last: PropTypes.bool } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index f81b8171d..707e3a796 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -6,11 +6,13 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => (
    {todos.map((todo, index) => onDeleteClick(index)} onMoveUpClick={() => onMoveUpClick(index)} onMoveDownClick={() => onMoveDownClick(index)} + first={ index === 0 } + last={ index === (todos.length - 1) } /> )}
    -- cgit v1.2.3 From 2385617d0b21f42596d84cb67eb393273f11ab17 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 12:14:52 +0100 Subject: adding temporary input in reactux comp. --- .../es6_browserified/components/Todo.js | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index b503f21f8..6a9599812 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,36 +1,43 @@ var React = require('react') var PropTypes = require('react').PropTypes -const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} -const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} +const Container = {display: 'table', width: '100%'} +const firstBlock = {display: 'table-cell', verticalAlign: 'middle'} +const secondBlock = {display: 'table-cell', verticalAlign: 'middle', width: '150px', textAlign: 'right'} const Todo = (props) => ( -
    +
    - {props.id} +
    + Id: {props.id} +
    +
    + +
    +
    -
    -
    - +
    +
    +
    - +
    - +
    - +
    -- cgit v1.2.3 From 0ace0d4e6dd355430a5c25a08428fa26a010e742 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 7 Nov 2016 14:47:04 +0100 Subject: Add input value to state for each stop Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi --- .../javascripts/es6_browserified/actions/index.js | 7 +++++++ .../javascripts/es6_browserified/components/Todo.js | 3 ++- .../javascripts/es6_browserified/components/TodoList.js | 3 ++- .../javascripts/es6_browserified/containers/AddTodo.js | 2 -- .../es6_browserified/containers/VisibleTodoList.js | 4 ++++ .../javascripts/es6_browserified/reducers/todos.js | 17 ++++++++++++++++- 6 files changed, 31 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index e90631c7f..06b0410b6 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -27,5 +27,12 @@ module.exports = { type: 'DELETE_STOP', index } + }, + updateInputValue: (index, text) => { + return { + type : "UPDATE_INPUT_VALUE", + index, + text + } } } diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 6a9599812..574f3ac88 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -12,7 +12,7 @@ const Todo = (props) => ( Id: {props.id}
    - +
    @@ -48,6 +48,7 @@ Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, onMoveDownClick: PropTypes.func.isRequired, + onChange: PropTypes.func.isRequired, first: PropTypes.bool, last: PropTypes.bool } diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 707e3a796..96991e76b 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,7 +2,7 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => ( +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => (
    {todos.map((todo, index) => ( onDeleteClick={() => onDeleteClick(index)} onMoveUpClick={() => onMoveUpClick(index)} onMoveDownClick={() => onMoveDownClick(index)} + onChange={(event) => onChange(index, event.currentTarget.value)} first={ index === 0 } last={ index === (todos.length - 1) } /> diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index ddaedf8f6..539b6f78e 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -3,8 +3,6 @@ var connect = require('react-redux').connect var addTodo = require('../actions').addStop let AddTodo = ({ dispatch }) => { - let input - return (
    { diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index a6452018b..09da36060 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -3,6 +3,7 @@ var toggleTodo = require('../actions').toggleTodo var deleteStop = require('../actions').deleteStop var moveStopUp = require('../actions').moveStopUp var moveStopDown = require('../actions').moveStopDown +var handleChange = require('../actions').updateInputValue var TodoList = require('../components/TodoList') const mapStateToProps = (state) => { @@ -21,6 +22,9 @@ const mapDispatchToProps = (dispatch) => { }, onMoveDownClick: (index) =>{ dispatch(moveStopDown(index)) + }, + onChange: (index, text) =>{ + dispatch(handleChange(index, text)) } } } diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index f2af9452a..53bceb62d 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,11 +1,22 @@ const todo = (state = {}, action) => { - console.log('action', action) switch (action.type) { case 'ADD_STOP': return { + text: '', id: action.id } + case 'UPDATE_INPUT_VALUE': + if (state.id !== action.index) { + return state + } + // console.log('action', action) + // console.log('state', state) + return Object.assign( + {}, + state, + {text: action.text} + ) default: return state } @@ -37,6 +48,10 @@ const todos = (state = [], action) => { ...state.slice(0, action.index), ...state.slice(action.index + 1) ] + case 'UPDATE_INPUT_VALUE': + return state.map(t => + todo(t, action) + ) default: return state } -- cgit v1.2.3 From 15185592e102a2549027be57b0979c955e2df272 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 7 Nov 2016 17:17:58 +0100 Subject: Add retrieve datas when stop areas already exist Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi --- .../javascripts/es6_browserified/actions/index.js | 4 +-- .../es6_browserified/components/Todo.js | 4 +-- .../es6_browserified/components/TodoList.js | 2 +- app/assets/javascripts/es6_browserified/getJSON.js | 4 --- .../javascripts/es6_browserified/reducers/todos.js | 19 ++++++++------ .../javascripts/es6_browserified/stop_points.js | 29 +++++++++++++++++++++- 6 files changed, 44 insertions(+), 18 deletions(-) delete mode 100644 app/assets/javascripts/es6_browserified/getJSON.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index 06b0410b6..c0f64005e 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,10 +1,8 @@ -let nextTodoId = 0 module.exports = { addStop : () => { return { - type: 'ADD_STOP', - id: nextTodoId++ + type: 'ADD_STOP' } }, diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 574f3ac88..aeee78295 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -9,10 +9,10 @@ const Todo = (props) => (
    - Id: {props.id} + Id: {props.index}
    - +
    diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 96991e76b..768c691bb 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -21,7 +21,7 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan TodoList.propTypes = { todos: PropTypes.arrayOf(PropTypes.shape({ - id: PropTypes.number.isRequired, + index: PropTypes.number.isRequired, }).isRequired).isRequired, onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js deleted file mode 100644 index c65336b2d..000000000 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ /dev/null @@ -1,4 +0,0 @@ -data = decodeURIComponent(window.itinerary_stop) -JSONobject = JSON.parse(data) - -console.log("JSON", JSONobject) diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index 53bceb62d..d5a02f40a 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,17 +1,15 @@ -const todo = (state = {}, action) => { +const todo = (state = {}, action, length) => { switch (action.type) { case 'ADD_STOP': return { text: '', - id: action.id + index: length } case 'UPDATE_INPUT_VALUE': - if (state.id !== action.index) { + if (state.index !== action.index) { return state } - // console.log('action', action) - // console.log('state', state) return Object.assign( {}, state, @@ -27,9 +25,11 @@ const todos = (state = [], action) => { case 'ADD_STOP': return [ ...state, - todo(undefined, action) + todo(undefined, action, state.length) ] case 'MOVE_STOP_UP': + state[action.index].index = state[action.index - 1].index + state[action.index - 1].index = state[action.index].index + 1 return [ ...state.slice(0, action.index - 1), state[action.index], @@ -37,6 +37,8 @@ const todos = (state = [], action) => { ...state.slice(action.index + 1) ] case 'MOVE_STOP_DOWN': + state[action.index + 1].index = state[action.index].index + state[action.index].index = state[action.index + 1].index + 1 return [ ...state.slice(0, action.index), state[action.index + 1], @@ -46,7 +48,10 @@ const todos = (state = [], action) => { case 'DELETE_STOP': return [ ...state.slice(0, action.index), - ...state.slice(action.index + 1) + ...state.slice(action.index + 1).map((todo)=>{ + todo.index-- + return todo + }) ] case 'UPDATE_INPUT_VALUE': return state.map(t => diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index a324ef5bd..41c99c90f 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -2,10 +2,37 @@ var React = require('react') var render = require('react-dom').render var Provider = require('react-redux').Provider var createStore = require('redux').createStore +// var applyMiddleware = require('redux').applyMiddleware var todoApp = require('./reducers') var App = require('./components/App') +// var createLogger = require('redux-logger').default +// var thunkMiddleware = require('redux-thunk').default +// var promise = require('redux-promise') -let store = createStore(todoApp) +const getInitialState = () => { + let state = [] + let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) + for (let [index, value] of datas.entries()){ + state.push({ + index: index, + text: value.name, + city_name: value.city_name, + zip_code: value.zip_code + }) + } + console.log(state) + return state +} + +var initialState = {todos: getInitialState()} +// const loggerMiddleware = createLogger() +let store = createStore( + todoApp, + initialState + // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) +) + +console.log(store.getState()) render( -- cgit v1.2.3 From 3a23efe2f75898090aa952ae06f7a0f4accd4874 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 8 Nov 2016 17:47:56 +0100 Subject: add select2 with reactux --- .../javascripts/es6_browserified/actions/index.js | 5 +- .../es6_browserified/components/BSelect2.js | 96 ++++++++++++++++++++++ .../es6_browserified/components/Todo.js | 74 +++++++++-------- .../es6_browserified/components/TodoList.js | 44 +++++----- .../javascripts/es6_browserified/reducers/todos.js | 14 ++-- .../javascripts/es6_browserified/stop_points.js | 16 ++-- 6 files changed, 179 insertions(+), 70 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/components/BSelect2.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index c0f64005e..8967c0322 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,25 +1,21 @@ module.exports = { - addStop : () => { return { type: 'ADD_STOP' } }, - moveStopUp : (index) => { return { type: 'MOVE_STOP_UP', index } }, - moveStopDown : (index) => { return { type: 'MOVE_STOP_DOWN', index } }, - deleteStop: (index) => { return { type: 'DELETE_STOP', @@ -27,6 +23,7 @@ module.exports = { } }, updateInputValue: (index, text) => { + console.log('action',index, text) return { type : "UPDATE_INPUT_VALUE", index, diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js new file mode 100644 index 000000000..7e4782563 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -0,0 +1,96 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +var Select2 = require('react-select2') + +// get JSON full path +var origin = window.location.origin +var path = window.location.pathname.split('/', 3).join('/') + +class BSelect3 extends React.Component{ + constructor(props) { + super(props) + this.state = { + edit: false + } + } + onToggleEdit(e) { + e.preventDefault() + this.setState({edit: !this.state.edit}) + } + onChange(e) { + console.log(e.currentTarget.value, e.currentTarget.textContent) + this.props.onChange(this.props.index, {text: e.currentTarget.textContent, id: e.currentTarget.value}) + this.setState({edit: false}) + } + render() { + if(this.state.edit) + return ( +
    + +
    + ) + else + return ( +
    + + {this.props.value.text} + +
    + ) + } +} + +const BSelect2 = (props) => { + return ( + Object.assign( + {}, + item, + { text: item.name + ", " + item.zip_code + " " + item.short_city_name } + ) + ) + }; + }, + cache: true + }, + minimumInputLength: 3, + templateResult: formatRepo + }} + /> + ) +} + +// to fix: this is for custom results return +const formatRepo = (props) => { + if(props.text) return props.text + // console.log(props) + // return ( + //
    + // {props.short_name} + // {props.zip_code} {props.short_city_name} + //
    + // ) +} + +module.exports = BSelect3 diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index aeee78295..0e74e728f 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,48 +1,52 @@ var React = require('react') var PropTypes = require('react').PropTypes +var BSelect2 = require('./BSelect2') const Container = {display: 'table', width: '100%'} const firstBlock = {display: 'table-cell', verticalAlign: 'middle'} const secondBlock = {display: 'table-cell', verticalAlign: 'middle', width: '150px', textAlign: 'right'} -const Todo = (props) => ( -
    -
    -
    - Id: {props.index} -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - +const Todo = (props) => { + return ( +
    +
    +
    + #{props.index}
    -
    - + +
    +
    -
    - +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    -
    -) + ) +} Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, @@ -50,7 +54,9 @@ Todo.propTypes = { onMoveDownClick: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, first: PropTypes.bool, - last: PropTypes.bool + last: PropTypes.bool, + index: PropTypes.number, + defaultData: PropTypes.array } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 768c691bb..367cfc256 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,27 +2,33 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => ( -
    - {todos.map((todo, index) => - onDeleteClick(index)} - onMoveUpClick={() => onMoveUpClick(index)} - onMoveDownClick={() => onMoveDownClick(index)} - onChange={(event) => onChange(index, event.currentTarget.value)} - first={ index === 0 } - last={ index === (todos.length - 1) } - /> - )} -
    -) +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => { + console.log(todos) + return ( +
    + {todos.map((todo, index) => + onDeleteClick(index)} + onMoveUpClick={() => { + console.log(index, todos) + onMoveUpClick(index)} + } + onMoveDownClick={() => onMoveDownClick(index)} + onChange={ onChange } + first={ index === 0 } + last={ index === (todos.length - 1) } + index={ index } + defaultData={ todos } + value={ todo } + /> + )} +
    + ) +} TodoList.propTypes = { - todos: PropTypes.arrayOf(PropTypes.shape({ - index: PropTypes.number.isRequired, - }).isRequired).isRequired, + todos: PropTypes.array.isRequired, onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, onMoveDownClick: PropTypes.func.isRequired diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index d5a02f40a..bf64632bd 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -6,6 +6,7 @@ const todo = (state = {}, action, length) => { index: length } case 'UPDATE_INPUT_VALUE': + console.log('reducer', action) if (state.index !== action.index) { return state } @@ -13,7 +14,7 @@ const todo = (state = {}, action, length) => { return Object.assign( {}, state, - {text: action.text} + {text: action.text.text, id: action.text.id} ) default: return state @@ -28,8 +29,6 @@ const todos = (state = [], action) => { todo(undefined, action, state.length) ] case 'MOVE_STOP_UP': - state[action.index].index = state[action.index - 1].index - state[action.index - 1].index = state[action.index].index + 1 return [ ...state.slice(0, action.index - 1), state[action.index], @@ -37,8 +36,6 @@ const todos = (state = [], action) => { ...state.slice(action.index + 1) ] case 'MOVE_STOP_DOWN': - state[action.index + 1].index = state[action.index].index - state[action.index].index = state[action.index + 1].index + 1 return [ ...state.slice(0, action.index), state[action.index + 1], @@ -54,9 +51,10 @@ const todos = (state = [], action) => { }) ] case 'UPDATE_INPUT_VALUE': - return state.map(t => - todo(t, action) - ) + return state.map((t, i) => (i === action.index) ? action.text : t) + // return state.map(t => + // todo(t, action) + // ) default: return state } diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 41c99c90f..9c0195f2b 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -13,14 +13,20 @@ const getInitialState = () => { let state = [] let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) for (let [index, value] of datas.entries()){ + + let fancyText = value.name + if(value.zip_code && value.city_name) + fancyText += ", " + value.zip_code + " " + value.city_name + state.push({ - index: index, - text: value.name, + id: value.id, + name: value.name, city_name: value.city_name, - zip_code: value.zip_code + zip_code: value.zip_code, + text: fancyText }) } - console.log(state) + // console.log(state) return state } @@ -32,7 +38,7 @@ let store = createStore( // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) -console.log(store.getState()) +// console.log(store.getState()) render( -- cgit v1.2.3 From d512e3784530ae89aeec221fc2ee850cac13f650 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 2 Nov 2016 15:57:33 +0100 Subject: adding es6 for itineraries devpt --- app/assets/javascripts/es6_browserified/test.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 app/assets/javascripts/es6_browserified/test.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js new file mode 100644 index 000000000..eff33368a --- /dev/null +++ b/app/assets/javascripts/es6_browserified/test.js @@ -0,0 +1,7 @@ +class Welcome { + constructor() { + alert('Yo bitch'); + } +} + +// new Welcome(); -- cgit v1.2.3 From 7d32da0a6e2384eef088bc66b6fa08cda9d2b8ab Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 2 Nov 2016 18:23:48 +0100 Subject: mess stuff --- app/assets/javascripts/es6_browserified/test.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js index eff33368a..757e61e95 100644 --- a/app/assets/javascripts/es6_browserified/test.js +++ b/app/assets/javascripts/es6_browserified/test.js @@ -1,7 +1,9 @@ +// get json statham + class Welcome { constructor() { - alert('Yo bitch'); + console.log('Welcome'); } } -// new Welcome(); +new Welcome(); -- cgit v1.2.3 From a34ddae7dfc8ba65c8b9c5f8c8e93f4a298b90c5 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 3 Nov 2016 17:39:09 +0100 Subject: Add react redux and form example Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/actions/index.js | 25 ++++++++++++++ .../javascripts/es6_browserified/components/App.js | 14 ++++++++ .../es6_browserified/components/Footer.js | 22 ++++++++++++ .../es6_browserified/components/Link.js | 27 +++++++++++++++ .../es6_browserified/components/Todo.js | 21 ++++++++++++ .../es6_browserified/components/TodoList.js | 26 +++++++++++++++ .../es6_browserified/containers/AddTodo.js | 30 +++++++++++++++++ .../es6_browserified/containers/FilterLink.js | 24 +++++++++++++ .../es6_browserified/containers/visibleTodoList.js | 35 +++++++++++++++++++ .../javascripts/es6_browserified/reducers/index.js | 10 ++++++ .../javascripts/es6_browserified/reducers/todos.js | 39 ++++++++++++++++++++++ .../es6_browserified/reducers/visibilityFilter.js | 10 ++++++ app/assets/javascripts/es6_browserified/test.js | 20 +++++++---- 13 files changed, 296 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/actions/index.js create mode 100644 app/assets/javascripts/es6_browserified/components/App.js create mode 100644 app/assets/javascripts/es6_browserified/components/Footer.js create mode 100644 app/assets/javascripts/es6_browserified/components/Link.js create mode 100644 app/assets/javascripts/es6_browserified/components/Todo.js create mode 100644 app/assets/javascripts/es6_browserified/components/TodoList.js create mode 100644 app/assets/javascripts/es6_browserified/containers/AddTodo.js create mode 100644 app/assets/javascripts/es6_browserified/containers/FilterLink.js create mode 100644 app/assets/javascripts/es6_browserified/containers/visibleTodoList.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/index.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/todos.js create mode 100644 app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js new file mode 100644 index 000000000..99b50384a --- /dev/null +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -0,0 +1,25 @@ +let nextTodoId = 0 +module.exports = { + + addTodo : (text) => { + return { + type: 'ADD_TODO', + id: nextTodoId++, + text + } + }, + + setVisibilityFilter : (filter) => { + return { + type: 'SET_VISIBILITY_FILTER', + filter + } + }, + + toggleTodo : (id) => { + return { + type: 'TOGGLE_TODO', + id + } + }, +} diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js new file mode 100644 index 000000000..62db53da1 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -0,0 +1,14 @@ +var React = require('react') +var Footer = require('./Footer') +var AddTodo = require('../containers/AddTodo') +var VisibleTodoList = require('../containers/VisibleTodoList') + +const App = () => ( +
    + + +
    +
    +) + +module.exports = App diff --git a/app/assets/javascripts/es6_browserified/components/Footer.js b/app/assets/javascripts/es6_browserified/components/Footer.js new file mode 100644 index 000000000..de839f11f --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Footer.js @@ -0,0 +1,22 @@ +var React = require('react') +var FilterLink = require('../containers/FilterLink') + +const Footer = () => ( +

    + Show: + {" "} + + All + + {", "} + + Active + + {", "} + + Completed + +

    +) + +module.exports = Footer diff --git a/app/assets/javascripts/es6_browserified/components/Link.js b/app/assets/javascripts/es6_browserified/components/Link.js new file mode 100644 index 000000000..54daea2b6 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Link.js @@ -0,0 +1,27 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const Link = ({ active, children, onClick }) => { + if (active) { + return {children} + } + + return ( + { + e.preventDefault() + onClick() + }} + > + {children} + + ) +} + +Link.propTypes = { + active: PropTypes.bool.isRequired, + children: PropTypes.node.isRequired, + onClick: PropTypes.func.isRequired +} + +module.exports = Link diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js new file mode 100644 index 000000000..d0a83917f --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -0,0 +1,21 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const Todo = ({ onClick, completed, text }) => ( +
  • + {text} +
  • +) + +Todo.propTypes = { + onClick: PropTypes.func.isRequired, + completed: PropTypes.bool.isRequired, + text: PropTypes.string.isRequired +} + +module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js new file mode 100644 index 000000000..beabfb2c2 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -0,0 +1,26 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +var Todo = require('./Todo') + +const TodoList = ({ todos, onTodoClick }) => ( +
      + {todos.map(todo => + onTodoClick(todo.id)} + /> + )} +
    +) + +TodoList.propTypes = { + todos: PropTypes.arrayOf(PropTypes.shape({ + id: PropTypes.number.isRequired, + completed: PropTypes.bool.isRequired, + text: PropTypes.string.isRequired + }).isRequired).isRequired, + onTodoClick: PropTypes.func.isRequired +} + +module.exports = TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js new file mode 100644 index 000000000..41c37063b --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -0,0 +1,30 @@ +var React = require('react') +var connect = require('react-redux').connect +var addTodo = require('../actions').addTodo + +let AddTodo = ({ dispatch }) => { + let input + + return ( +
    + { + e.preventDefault() + if (!input.value.trim()) { + return + } + dispatch(addTodo(input.value)) + input.value = '' + }}> + { + input = node + }} /> + + +
    + ) +} +AddTodo = connect()(AddTodo) + +module.exports = AddTodo diff --git a/app/assets/javascripts/es6_browserified/containers/FilterLink.js b/app/assets/javascripts/es6_browserified/containers/FilterLink.js new file mode 100644 index 000000000..7f6778277 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/FilterLink.js @@ -0,0 +1,24 @@ +var connect = require('react-redux').connect +var setVisibilityFilter = require('../actions').setVisibilityFilter +var Link = require('../components/Link') + +const mapStateToProps = (state, ownProps) => { + return { + active: ownProps.filter === state.visibilityFilter + } +} + +const mapDispatchToProps = (dispatch, ownProps) => { + return { + onClick: () => { + dispatch(setVisibilityFilter(ownProps.filter)) + } + } +} + +const FilterLink = connect( + mapStateToProps, + mapDispatchToProps +)(Link) + +module.exports = FilterLink diff --git a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js new file mode 100644 index 000000000..5a70582e0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js @@ -0,0 +1,35 @@ +var connect = require('react-redux').connect +var toggleTodo = require('../actions').toggleTodo +var TodoList = require('../components/TodoList') + +const getVisibleTodos = (todos, filter) => { + switch (filter) { + case 'SHOW_ALL': + return todos + case 'SHOW_COMPLETED': + return todos.filter(t => t.completed) + case 'SHOW_ACTIVE': + return todos.filter(t => !t.completed) + } +} + +const mapStateToProps = (state) => { + return { + todos: getVisibleTodos(state.todos, state.visibilityFilter) + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onTodoClick: (id) => { + dispatch(toggleTodo(id)) + } + } +} + +const VisibleTodoList = connect( + mapStateToProps, + mapDispatchToProps +)(TodoList) + +module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/reducers/index.js b/app/assets/javascripts/es6_browserified/reducers/index.js new file mode 100644 index 000000000..67dbfa862 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/index.js @@ -0,0 +1,10 @@ +var combineReducers = require('redux').combineReducers +var todos = require('./todos') +var visibilityFilter = require('./visibilityFilter') + +const todoApp = combineReducers({ + todos, + visibilityFilter +}) + +module.exports = todoApp diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js new file mode 100644 index 000000000..a99c781ea --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -0,0 +1,39 @@ +const todo = (state = {}, action) => { + switch (action.type) { + case 'ADD_TODO': + return { + id: action.id, + text: action.text, + completed: false + } + case 'TOGGLE_TODO': + if (state.id !== action.id) { + return state + } + + return Object.assign({}, state, { + completed: !state.completed + }) + + default: + return state + } +} + +const todos = (state = [], action) => { + switch (action.type) { + case 'ADD_TODO': + return [ + ...state, + todo(undefined, action) + ] + case 'TOGGLE_TODO': + return state.map(t => + todo(t, action) + ) + default: + return state + } +} + +module.exports = todos diff --git a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js new file mode 100644 index 000000000..1652ad90c --- /dev/null +++ b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js @@ -0,0 +1,10 @@ +const visibilityFilter = (state = 'SHOW_ALL', action) => { + switch (action.type) { + case 'SET_VISIBILITY_FILTER': + return action.filter + default: + return state + } +} + +module.exports = visibilityFilter diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js index 757e61e95..9e8b62fbc 100644 --- a/app/assets/javascripts/es6_browserified/test.js +++ b/app/assets/javascripts/es6_browserified/test.js @@ -1,9 +1,15 @@ -// get json statham +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var todoApp = require('./reducers') +var App = require('./components/App') -class Welcome { - constructor() { - console.log('Welcome'); - } -} +let store = createStore(todoApp) -new Welcome(); +render( + + + , + document.getElementById('root') +) -- cgit v1.2.3 From 18ec196ddab33c5ebc27b0da30ca1fafc0535882 Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 4 Nov 2016 14:25:49 +0100 Subject: getting itinerary stop_points data in js --- .../es6_browserified/containers/VisibleTodoList.js | 35 ++++++++++++++++++++++ .../es6_browserified/containers/visibleTodoList.js | 35 ---------------------- app/assets/javascripts/es6_browserified/getJSON.js | 1 + 3 files changed, 36 insertions(+), 35 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js delete mode 100644 app/assets/javascripts/es6_browserified/containers/visibleTodoList.js create mode 100644 app/assets/javascripts/es6_browserified/getJSON.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js new file mode 100644 index 000000000..5a70582e0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -0,0 +1,35 @@ +var connect = require('react-redux').connect +var toggleTodo = require('../actions').toggleTodo +var TodoList = require('../components/TodoList') + +const getVisibleTodos = (todos, filter) => { + switch (filter) { + case 'SHOW_ALL': + return todos + case 'SHOW_COMPLETED': + return todos.filter(t => t.completed) + case 'SHOW_ACTIVE': + return todos.filter(t => !t.completed) + } +} + +const mapStateToProps = (state) => { + return { + todos: getVisibleTodos(state.todos, state.visibilityFilter) + } +} + +const mapDispatchToProps = (dispatch) => { + return { + onTodoClick: (id) => { + dispatch(toggleTodo(id)) + } + } +} + +const VisibleTodoList = connect( + mapStateToProps, + mapDispatchToProps +)(TodoList) + +module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js deleted file mode 100644 index 5a70582e0..000000000 --- a/app/assets/javascripts/es6_browserified/containers/visibleTodoList.js +++ /dev/null @@ -1,35 +0,0 @@ -var connect = require('react-redux').connect -var toggleTodo = require('../actions').toggleTodo -var TodoList = require('../components/TodoList') - -const getVisibleTodos = (todos, filter) => { - switch (filter) { - case 'SHOW_ALL': - return todos - case 'SHOW_COMPLETED': - return todos.filter(t => t.completed) - case 'SHOW_ACTIVE': - return todos.filter(t => !t.completed) - } -} - -const mapStateToProps = (state) => { - return { - todos: getVisibleTodos(state.todos, state.visibilityFilter) - } -} - -const mapDispatchToProps = (dispatch) => { - return { - onTodoClick: (id) => { - dispatch(toggleTodo(id)) - } - } -} - -const VisibleTodoList = connect( - mapStateToProps, - mapDispatchToProps -)(TodoList) - -module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js new file mode 100644 index 000000000..e883522b0 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -0,0 +1 @@ +console.log(window.itinerary_stop); -- cgit v1.2.3 From 581281aa7de5c13ab7b45180ce68d07c455c382f Mon Sep 17 00:00:00 2001 From: jpl Date: Fri, 4 Nov 2016 15:03:49 +0100 Subject: getting itinerary stop_points data in js, formatted in correct JSON object --- app/assets/javascripts/es6_browserified/getJSON.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js index e883522b0..5e7e1a078 100644 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -1 +1,4 @@ -console.log(window.itinerary_stop); +data = decodeURIComponent(window.itinerary_stop) +JSONobject = JSON.parse(data) + +console.log(JSONobject) -- cgit v1.2.3 From c2e2da6ded1c27154962219ee004ef8e21154acb Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Fri, 4 Nov 2016 17:41:54 +0100 Subject: Add first features (add / moveup / movedown / delete) to stops list Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi Signed-off-by: Mickael Gaeta Signed-off-by: Jean-Paul Lescouzeres --- .../javascripts/es6_browserified/actions/index.js | 26 +++++++----- .../javascripts/es6_browserified/components/App.js | 2 - .../es6_browserified/components/Footer.js | 22 ----------- .../es6_browserified/components/Link.js | 27 ------------- .../es6_browserified/components/Todo.js | 46 ++++++++++++++++------ .../es6_browserified/components/TodoList.js | 18 +++++---- .../es6_browserified/containers/AddTodo.js | 11 +----- .../es6_browserified/containers/FilterLink.js | 24 ----------- .../es6_browserified/containers/VisibleTodoList.js | 26 ++++++------ .../javascripts/es6_browserified/reducers/index.js | 4 +- .../javascripts/es6_browserified/reducers/todos.js | 40 +++++++++++-------- .../es6_browserified/reducers/visibilityFilter.js | 10 ----- 12 files changed, 99 insertions(+), 157 deletions(-) delete mode 100644 app/assets/javascripts/es6_browserified/components/Footer.js delete mode 100644 app/assets/javascripts/es6_browserified/components/Link.js delete mode 100644 app/assets/javascripts/es6_browserified/containers/FilterLink.js delete mode 100644 app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index 99b50384a..e90631c7f 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,25 +1,31 @@ let nextTodoId = 0 module.exports = { - addTodo : (text) => { + addStop : () => { return { - type: 'ADD_TODO', - id: nextTodoId++, - text + type: 'ADD_STOP', + id: nextTodoId++ } }, - setVisibilityFilter : (filter) => { + moveStopUp : (index) => { return { - type: 'SET_VISIBILITY_FILTER', - filter + type: 'MOVE_STOP_UP', + index } }, - toggleTodo : (id) => { + moveStopDown : (index) => { return { - type: 'TOGGLE_TODO', - id + type: 'MOVE_STOP_DOWN', + index } }, + + deleteStop: (index) => { + return { + type: 'DELETE_STOP', + index + } + } } diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js index 62db53da1..7488b0b39 100644 --- a/app/assets/javascripts/es6_browserified/components/App.js +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -1,5 +1,4 @@ var React = require('react') -var Footer = require('./Footer') var AddTodo = require('../containers/AddTodo') var VisibleTodoList = require('../containers/VisibleTodoList') @@ -7,7 +6,6 @@ const App = () => (
    -
    ) diff --git a/app/assets/javascripts/es6_browserified/components/Footer.js b/app/assets/javascripts/es6_browserified/components/Footer.js deleted file mode 100644 index de839f11f..000000000 --- a/app/assets/javascripts/es6_browserified/components/Footer.js +++ /dev/null @@ -1,22 +0,0 @@ -var React = require('react') -var FilterLink = require('../containers/FilterLink') - -const Footer = () => ( -

    - Show: - {" "} - - All - - {", "} - - Active - - {", "} - - Completed - -

    -) - -module.exports = Footer diff --git a/app/assets/javascripts/es6_browserified/components/Link.js b/app/assets/javascripts/es6_browserified/components/Link.js deleted file mode 100644 index 54daea2b6..000000000 --- a/app/assets/javascripts/es6_browserified/components/Link.js +++ /dev/null @@ -1,27 +0,0 @@ -var React = require('react') -var PropTypes = require('react').PropTypes - -const Link = ({ active, children, onClick }) => { - if (active) { - return {children} - } - - return ( - { - e.preventDefault() - onClick() - }} - > - {children} - - ) -} - -Link.propTypes = { - active: PropTypes.bool.isRequired, - children: PropTypes.node.isRequired, - onClick: PropTypes.func.isRequired -} - -module.exports = Link diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index d0a83917f..a64c38c63 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,21 +1,45 @@ var React = require('react') var PropTypes = require('react').PropTypes -const Todo = ({ onClick, completed, text }) => ( -
  • ( +
    - {text} -
  • +
    + {props.id} +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    ) Todo.propTypes = { - onClick: PropTypes.func.isRequired, - completed: PropTypes.bool.isRequired, - text: PropTypes.string.isRequired + onDeleteClick: PropTypes.func.isRequired, + onMoveUpClick: PropTypes.func.isRequired, + onMoveDownClick: PropTypes.func.isRequired } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index beabfb2c2..f81b8171d 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,25 +2,27 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onTodoClick }) => ( -
      - {todos.map(todo => +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => ( +
      + {todos.map((todo, index) => onTodoClick(todo.id)} + onDeleteClick={() => onDeleteClick(index)} + onMoveUpClick={() => onMoveUpClick(index)} + onMoveDownClick={() => onMoveDownClick(index)} /> )} -
    +
    ) TodoList.propTypes = { todos: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number.isRequired, - completed: PropTypes.bool.isRequired, - text: PropTypes.string.isRequired }).isRequired).isRequired, - onTodoClick: PropTypes.func.isRequired + onDeleteClick: PropTypes.func.isRequired, + onMoveUpClick: PropTypes.func.isRequired, + onMoveDownClick: PropTypes.func.isRequired } module.exports = TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 41c37063b..90a187f5f 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -1,6 +1,6 @@ var React = require('react') var connect = require('react-redux').connect -var addTodo = require('../actions').addTodo +var addTodo = require('../actions').addStop let AddTodo = ({ dispatch }) => { let input @@ -9,15 +9,8 @@ let AddTodo = ({ dispatch }) => {
    { e.preventDefault() - if (!input.value.trim()) { - return - } - dispatch(addTodo(input.value)) - input.value = '' + dispatch(addTodo()) }}> - { - input = node - }} /> diff --git a/app/assets/javascripts/es6_browserified/containers/FilterLink.js b/app/assets/javascripts/es6_browserified/containers/FilterLink.js deleted file mode 100644 index 7f6778277..000000000 --- a/app/assets/javascripts/es6_browserified/containers/FilterLink.js +++ /dev/null @@ -1,24 +0,0 @@ -var connect = require('react-redux').connect -var setVisibilityFilter = require('../actions').setVisibilityFilter -var Link = require('../components/Link') - -const mapStateToProps = (state, ownProps) => { - return { - active: ownProps.filter === state.visibilityFilter - } -} - -const mapDispatchToProps = (dispatch, ownProps) => { - return { - onClick: () => { - dispatch(setVisibilityFilter(ownProps.filter)) - } - } -} - -const FilterLink = connect( - mapStateToProps, - mapDispatchToProps -)(Link) - -module.exports = FilterLink diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index 5a70582e0..a6452018b 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -1,28 +1,26 @@ var connect = require('react-redux').connect var toggleTodo = require('../actions').toggleTodo +var deleteStop = require('../actions').deleteStop +var moveStopUp = require('../actions').moveStopUp +var moveStopDown = require('../actions').moveStopDown var TodoList = require('../components/TodoList') -const getVisibleTodos = (todos, filter) => { - switch (filter) { - case 'SHOW_ALL': - return todos - case 'SHOW_COMPLETED': - return todos.filter(t => t.completed) - case 'SHOW_ACTIVE': - return todos.filter(t => !t.completed) - } -} - const mapStateToProps = (state) => { return { - todos: getVisibleTodos(state.todos, state.visibilityFilter) + todos: state.todos } } const mapDispatchToProps = (dispatch) => { return { - onTodoClick: (id) => { - dispatch(toggleTodo(id)) + onDeleteClick: (index) =>{ + dispatch(deleteStop(index)) + }, + onMoveUpClick: (index) =>{ + dispatch(moveStopUp(index)) + }, + onMoveDownClick: (index) =>{ + dispatch(moveStopDown(index)) } } } diff --git a/app/assets/javascripts/es6_browserified/reducers/index.js b/app/assets/javascripts/es6_browserified/reducers/index.js index 67dbfa862..ae8423673 100644 --- a/app/assets/javascripts/es6_browserified/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/reducers/index.js @@ -1,10 +1,8 @@ var combineReducers = require('redux').combineReducers var todos = require('./todos') -var visibilityFilter = require('./visibilityFilter') const todoApp = combineReducers({ - todos, - visibilityFilter + todos }) module.exports = todoApp diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index a99c781ea..f2af9452a 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,19 +1,10 @@ const todo = (state = {}, action) => { + console.log('action', action) switch (action.type) { - case 'ADD_TODO': + case 'ADD_STOP': return { - id: action.id, - text: action.text, - completed: false + id: action.id } - case 'TOGGLE_TODO': - if (state.id !== action.id) { - return state - } - - return Object.assign({}, state, { - completed: !state.completed - }) default: return state @@ -22,15 +13,30 @@ const todo = (state = {}, action) => { const todos = (state = [], action) => { switch (action.type) { - case 'ADD_TODO': + case 'ADD_STOP': return [ ...state, todo(undefined, action) ] - case 'TOGGLE_TODO': - return state.map(t => - todo(t, action) - ) + case 'MOVE_STOP_UP': + return [ + ...state.slice(0, action.index - 1), + state[action.index], + state[action.index - 1], + ...state.slice(action.index + 1) + ] + case 'MOVE_STOP_DOWN': + return [ + ...state.slice(0, action.index), + state[action.index + 1], + state[action.index], + ...state.slice(action.index + 2) + ] + case 'DELETE_STOP': + return [ + ...state.slice(0, action.index), + ...state.slice(action.index + 1) + ] default: return state } diff --git a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js b/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js deleted file mode 100644 index 1652ad90c..000000000 --- a/app/assets/javascripts/es6_browserified/reducers/visibilityFilter.js +++ /dev/null @@ -1,10 +0,0 @@ -const visibilityFilter = (state = 'SHOW_ALL', action) => { - switch (action.type) { - case 'SET_VISIBILITY_FILTER': - return action.filter - default: - return state - } -} - -module.exports = visibilityFilter -- cgit v1.2.3 From f7127c73e854be7044c1a36d28b54400cf34a8ac Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 10:03:58 +0100 Subject: rename js reactux file for better understanding --- app/assets/javascripts/es6_browserified/getJSON.js | 2 +- app/assets/javascripts/es6_browserified/stop_points.js | 15 +++++++++++++++ app/assets/javascripts/es6_browserified/test.js | 15 --------------- 3 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/stop_points.js delete mode 100644 app/assets/javascripts/es6_browserified/test.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js index 5e7e1a078..c65336b2d 100644 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ b/app/assets/javascripts/es6_browserified/getJSON.js @@ -1,4 +1,4 @@ data = decodeURIComponent(window.itinerary_stop) JSONobject = JSON.parse(data) -console.log(JSONobject) +console.log("JSON", JSONobject) diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js new file mode 100644 index 000000000..9e8b62fbc --- /dev/null +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -0,0 +1,15 @@ +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var todoApp = require('./reducers') +var App = require('./components/App') + +let store = createStore(todoApp) + +render( + + + , + document.getElementById('root') +) diff --git a/app/assets/javascripts/es6_browserified/test.js b/app/assets/javascripts/es6_browserified/test.js deleted file mode 100644 index 9e8b62fbc..000000000 --- a/app/assets/javascripts/es6_browserified/test.js +++ /dev/null @@ -1,15 +0,0 @@ -var React = require('react') -var render = require('react-dom').render -var Provider = require('react-redux').Provider -var createStore = require('redux').createStore -var todoApp = require('./reducers') -var App = require('./components/App') - -let store = createStore(todoApp) - -render( - - - , - document.getElementById('root') -) -- cgit v1.2.3 From 949e09cb05b600072e505176c083b4c22fe1db9c Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 10:16:48 +0100 Subject: starting front adjustments for reactux stop_points fields --- app/assets/javascripts/es6_browserified/containers/AddTodo.js | 5 +++-- app/assets/javascripts/es6_browserified/stop_points.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 90a187f5f..21b5c88d6 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -11,8 +11,9 @@ let AddTodo = ({ dispatch }) => { e.preventDefault() dispatch(addTodo()) }}> -
    diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 9e8b62fbc..a324ef5bd 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -11,5 +11,5 @@ render( , - document.getElementById('root') + document.getElementById('stop_points') ) -- cgit v1.2.3 From 6cdab4609caf598589ce6033e181f5c5cc363114 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 11:18:24 +0100 Subject: update list-grou-items components integration --- app/assets/javascripts/es6_browserified/components/Todo.js | 11 ++++++----- app/assets/javascripts/es6_browserified/containers/AddTodo.js | 5 ++--- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index a64c38c63..84426155d 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,14 +1,15 @@ var React = require('react') var PropTypes = require('react').PropTypes +const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} +const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} + const Todo = (props) => ( -
    -
    +
    +
    {props.id}
    -
    +
    diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 21b5c88d6..ddaedf8f6 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -6,14 +6,13 @@ let AddTodo = ({ dispatch }) => { let input return ( -
    +
    { e.preventDefault() dispatch(addTodo()) }}>
    -- cgit v1.2.3 From 0fb15f610422c9164283629032d75bf48fcf107d Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 11:43:06 +0100 Subject: adding reactux comp. to form (edit+new) and fixing ordering issues --- app/assets/javascripts/es6_browserified/components/Todo.js | 10 ++++++---- app/assets/javascripts/es6_browserified/components/TodoList.js | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 84426155d..b503f21f8 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -2,7 +2,7 @@ var React = require('react') var PropTypes = require('react').PropTypes const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} -const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} +const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} const Todo = (props) => (
    @@ -15,13 +15,13 @@ const Todo = (props) => (
    @@ -40,7 +40,9 @@ const Todo = (props) => ( Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, - onMoveDownClick: PropTypes.func.isRequired + onMoveDownClick: PropTypes.func.isRequired, + first: PropTypes.bool, + last: PropTypes.bool } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index f81b8171d..707e3a796 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -6,11 +6,13 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => (
    {todos.map((todo, index) => onDeleteClick(index)} onMoveUpClick={() => onMoveUpClick(index)} onMoveDownClick={() => onMoveDownClick(index)} + first={ index === 0 } + last={ index === (todos.length - 1) } /> )}
    -- cgit v1.2.3 From 896b4741f896fda18cec77ed7a39ae1580334268 Mon Sep 17 00:00:00 2001 From: jpl Date: Mon, 7 Nov 2016 12:14:52 +0100 Subject: adding temporary input in reactux comp. --- .../es6_browserified/components/Todo.js | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index b503f21f8..6a9599812 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,36 +1,43 @@ var React = require('react') var PropTypes = require('react').PropTypes -const firstBlock = {display: 'inline-block', verticalAlign: 'middle', width: '75%'} -const secondBlock = {display: 'inline-block', verticalAlign: 'middle', width: '25%', textAlign: 'right'} +const Container = {display: 'table', width: '100%'} +const firstBlock = {display: 'table-cell', verticalAlign: 'middle'} +const secondBlock = {display: 'table-cell', verticalAlign: 'middle', width: '150px', textAlign: 'right'} const Todo = (props) => ( -
    +
    - {props.id} +
    + Id: {props.id} +
    +
    + +
    +
    -
    -
    - +
    +
    +
    - +
    - +
    - +
    -- cgit v1.2.3 From 53426aa8c9e41064fd69119f69e2106726ff4e3f Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 7 Nov 2016 14:47:04 +0100 Subject: Add input value to state for each stop Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi --- .../javascripts/es6_browserified/actions/index.js | 7 +++++++ .../javascripts/es6_browserified/components/Todo.js | 3 ++- .../javascripts/es6_browserified/components/TodoList.js | 3 ++- .../javascripts/es6_browserified/containers/AddTodo.js | 2 -- .../es6_browserified/containers/VisibleTodoList.js | 4 ++++ .../javascripts/es6_browserified/reducers/todos.js | 17 ++++++++++++++++- 6 files changed, 31 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index e90631c7f..06b0410b6 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -27,5 +27,12 @@ module.exports = { type: 'DELETE_STOP', index } + }, + updateInputValue: (index, text) => { + return { + type : "UPDATE_INPUT_VALUE", + index, + text + } } } diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 6a9599812..574f3ac88 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -12,7 +12,7 @@ const Todo = (props) => ( Id: {props.id}
    - +
    @@ -48,6 +48,7 @@ Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, onMoveDownClick: PropTypes.func.isRequired, + onChange: PropTypes.func.isRequired, first: PropTypes.bool, last: PropTypes.bool } diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 707e3a796..96991e76b 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,7 +2,7 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick }) => ( +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => (
    {todos.map((todo, index) => ( onDeleteClick={() => onDeleteClick(index)} onMoveUpClick={() => onMoveUpClick(index)} onMoveDownClick={() => onMoveDownClick(index)} + onChange={(event) => onChange(index, event.currentTarget.value)} first={ index === 0 } last={ index === (todos.length - 1) } /> diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index ddaedf8f6..539b6f78e 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -3,8 +3,6 @@ var connect = require('react-redux').connect var addTodo = require('../actions').addStop let AddTodo = ({ dispatch }) => { - let input - return (
    { diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index a6452018b..09da36060 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -3,6 +3,7 @@ var toggleTodo = require('../actions').toggleTodo var deleteStop = require('../actions').deleteStop var moveStopUp = require('../actions').moveStopUp var moveStopDown = require('../actions').moveStopDown +var handleChange = require('../actions').updateInputValue var TodoList = require('../components/TodoList') const mapStateToProps = (state) => { @@ -21,6 +22,9 @@ const mapDispatchToProps = (dispatch) => { }, onMoveDownClick: (index) =>{ dispatch(moveStopDown(index)) + }, + onChange: (index, text) =>{ + dispatch(handleChange(index, text)) } } } diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index f2af9452a..53bceb62d 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,11 +1,22 @@ const todo = (state = {}, action) => { - console.log('action', action) switch (action.type) { case 'ADD_STOP': return { + text: '', id: action.id } + case 'UPDATE_INPUT_VALUE': + if (state.id !== action.index) { + return state + } + // console.log('action', action) + // console.log('state', state) + return Object.assign( + {}, + state, + {text: action.text} + ) default: return state } @@ -37,6 +48,10 @@ const todos = (state = [], action) => { ...state.slice(0, action.index), ...state.slice(action.index + 1) ] + case 'UPDATE_INPUT_VALUE': + return state.map(t => + todo(t, action) + ) default: return state } -- cgit v1.2.3 From c01ecd41cd89f3477ae5d7a27a66ffcfa2cc86a7 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Mon, 7 Nov 2016 17:17:58 +0100 Subject: Add retrieve datas when stop areas already exist Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Paul-Xavier Ceccaldi --- .../javascripts/es6_browserified/actions/index.js | 4 +-- .../es6_browserified/components/Todo.js | 4 +-- .../es6_browserified/components/TodoList.js | 2 +- app/assets/javascripts/es6_browserified/getJSON.js | 4 --- .../javascripts/es6_browserified/reducers/todos.js | 19 ++++++++------ .../javascripts/es6_browserified/stop_points.js | 29 +++++++++++++++++++++- 6 files changed, 44 insertions(+), 18 deletions(-) delete mode 100644 app/assets/javascripts/es6_browserified/getJSON.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index 06b0410b6..c0f64005e 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,10 +1,8 @@ -let nextTodoId = 0 module.exports = { addStop : () => { return { - type: 'ADD_STOP', - id: nextTodoId++ + type: 'ADD_STOP' } }, diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 574f3ac88..aeee78295 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -9,10 +9,10 @@ const Todo = (props) => (
    - Id: {props.id} + Id: {props.index}
    - +
    diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 96991e76b..768c691bb 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -21,7 +21,7 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan TodoList.propTypes = { todos: PropTypes.arrayOf(PropTypes.shape({ - id: PropTypes.number.isRequired, + index: PropTypes.number.isRequired, }).isRequired).isRequired, onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, diff --git a/app/assets/javascripts/es6_browserified/getJSON.js b/app/assets/javascripts/es6_browserified/getJSON.js deleted file mode 100644 index c65336b2d..000000000 --- a/app/assets/javascripts/es6_browserified/getJSON.js +++ /dev/null @@ -1,4 +0,0 @@ -data = decodeURIComponent(window.itinerary_stop) -JSONobject = JSON.parse(data) - -console.log("JSON", JSONobject) diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index 53bceb62d..d5a02f40a 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,17 +1,15 @@ -const todo = (state = {}, action) => { +const todo = (state = {}, action, length) => { switch (action.type) { case 'ADD_STOP': return { text: '', - id: action.id + index: length } case 'UPDATE_INPUT_VALUE': - if (state.id !== action.index) { + if (state.index !== action.index) { return state } - // console.log('action', action) - // console.log('state', state) return Object.assign( {}, state, @@ -27,9 +25,11 @@ const todos = (state = [], action) => { case 'ADD_STOP': return [ ...state, - todo(undefined, action) + todo(undefined, action, state.length) ] case 'MOVE_STOP_UP': + state[action.index].index = state[action.index - 1].index + state[action.index - 1].index = state[action.index].index + 1 return [ ...state.slice(0, action.index - 1), state[action.index], @@ -37,6 +37,8 @@ const todos = (state = [], action) => { ...state.slice(action.index + 1) ] case 'MOVE_STOP_DOWN': + state[action.index + 1].index = state[action.index].index + state[action.index].index = state[action.index + 1].index + 1 return [ ...state.slice(0, action.index), state[action.index + 1], @@ -46,7 +48,10 @@ const todos = (state = [], action) => { case 'DELETE_STOP': return [ ...state.slice(0, action.index), - ...state.slice(action.index + 1) + ...state.slice(action.index + 1).map((todo)=>{ + todo.index-- + return todo + }) ] case 'UPDATE_INPUT_VALUE': return state.map(t => diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index a324ef5bd..41c99c90f 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -2,10 +2,37 @@ var React = require('react') var render = require('react-dom').render var Provider = require('react-redux').Provider var createStore = require('redux').createStore +// var applyMiddleware = require('redux').applyMiddleware var todoApp = require('./reducers') var App = require('./components/App') +// var createLogger = require('redux-logger').default +// var thunkMiddleware = require('redux-thunk').default +// var promise = require('redux-promise') -let store = createStore(todoApp) +const getInitialState = () => { + let state = [] + let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) + for (let [index, value] of datas.entries()){ + state.push({ + index: index, + text: value.name, + city_name: value.city_name, + zip_code: value.zip_code + }) + } + console.log(state) + return state +} + +var initialState = {todos: getInitialState()} +// const loggerMiddleware = createLogger() +let store = createStore( + todoApp, + initialState + // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) +) + +console.log(store.getState()) render( -- cgit v1.2.3 From 1da0bf0708eb981d6c17a76d3e49439580869602 Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 8 Nov 2016 17:47:56 +0100 Subject: add select2 with reactux --- .../javascripts/es6_browserified/actions/index.js | 5 +- .../es6_browserified/components/BSelect2.js | 96 ++++++++++++++++++++++ .../es6_browserified/components/Todo.js | 74 +++++++++-------- .../es6_browserified/components/TodoList.js | 44 +++++----- .../javascripts/es6_browserified/reducers/todos.js | 14 ++-- .../javascripts/es6_browserified/stop_points.js | 16 ++-- 6 files changed, 179 insertions(+), 70 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/components/BSelect2.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index c0f64005e..8967c0322 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -1,25 +1,21 @@ module.exports = { - addStop : () => { return { type: 'ADD_STOP' } }, - moveStopUp : (index) => { return { type: 'MOVE_STOP_UP', index } }, - moveStopDown : (index) => { return { type: 'MOVE_STOP_DOWN', index } }, - deleteStop: (index) => { return { type: 'DELETE_STOP', @@ -27,6 +23,7 @@ module.exports = { } }, updateInputValue: (index, text) => { + console.log('action',index, text) return { type : "UPDATE_INPUT_VALUE", index, diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js new file mode 100644 index 000000000..7e4782563 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -0,0 +1,96 @@ +var React = require('react') +var PropTypes = require('react').PropTypes +var Select2 = require('react-select2') + +// get JSON full path +var origin = window.location.origin +var path = window.location.pathname.split('/', 3).join('/') + +class BSelect3 extends React.Component{ + constructor(props) { + super(props) + this.state = { + edit: false + } + } + onToggleEdit(e) { + e.preventDefault() + this.setState({edit: !this.state.edit}) + } + onChange(e) { + console.log(e.currentTarget.value, e.currentTarget.textContent) + this.props.onChange(this.props.index, {text: e.currentTarget.textContent, id: e.currentTarget.value}) + this.setState({edit: false}) + } + render() { + if(this.state.edit) + return ( +
    + +
    + ) + else + return ( +
    + + {this.props.value.text} + +
    + ) + } +} + +const BSelect2 = (props) => { + return ( + Object.assign( + {}, + item, + { text: item.name + ", " + item.zip_code + " " + item.short_city_name } + ) + ) + }; + }, + cache: true + }, + minimumInputLength: 3, + templateResult: formatRepo + }} + /> + ) +} + +// to fix: this is for custom results return +const formatRepo = (props) => { + if(props.text) return props.text + // console.log(props) + // return ( + //
    + // {props.short_name} + // {props.zip_code} {props.short_city_name} + //
    + // ) +} + +module.exports = BSelect3 diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index aeee78295..0e74e728f 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,48 +1,52 @@ var React = require('react') var PropTypes = require('react').PropTypes +var BSelect2 = require('./BSelect2') const Container = {display: 'table', width: '100%'} const firstBlock = {display: 'table-cell', verticalAlign: 'middle'} const secondBlock = {display: 'table-cell', verticalAlign: 'middle', width: '150px', textAlign: 'right'} -const Todo = (props) => ( -
    -
    -
    - Id: {props.index} -
    -
    - -
    -
    - -
    -
    -
    - -
    -
    - +const Todo = (props) => { + return ( +
    +
    +
    + #{props.index}
    -
    - + +
    +
    -
    - +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    -
    -) + ) +} Todo.propTypes = { onDeleteClick: PropTypes.func.isRequired, @@ -50,7 +54,9 @@ Todo.propTypes = { onMoveDownClick: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, first: PropTypes.bool, - last: PropTypes.bool + last: PropTypes.bool, + index: PropTypes.number, + defaultData: PropTypes.array } module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 768c691bb..367cfc256 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -2,27 +2,33 @@ var React = require('react') var PropTypes = require('react').PropTypes var Todo = require('./Todo') -const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => ( -
    - {todos.map((todo, index) => - onDeleteClick(index)} - onMoveUpClick={() => onMoveUpClick(index)} - onMoveDownClick={() => onMoveDownClick(index)} - onChange={(event) => onChange(index, event.currentTarget.value)} - first={ index === 0 } - last={ index === (todos.length - 1) } - /> - )} -
    -) +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => { + console.log(todos) + return ( +
    + {todos.map((todo, index) => + onDeleteClick(index)} + onMoveUpClick={() => { + console.log(index, todos) + onMoveUpClick(index)} + } + onMoveDownClick={() => onMoveDownClick(index)} + onChange={ onChange } + first={ index === 0 } + last={ index === (todos.length - 1) } + index={ index } + defaultData={ todos } + value={ todo } + /> + )} +
    + ) +} TodoList.propTypes = { - todos: PropTypes.arrayOf(PropTypes.shape({ - index: PropTypes.number.isRequired, - }).isRequired).isRequired, + todos: PropTypes.array.isRequired, onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, onMoveDownClick: PropTypes.func.isRequired diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index d5a02f40a..bf64632bd 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -6,6 +6,7 @@ const todo = (state = {}, action, length) => { index: length } case 'UPDATE_INPUT_VALUE': + console.log('reducer', action) if (state.index !== action.index) { return state } @@ -13,7 +14,7 @@ const todo = (state = {}, action, length) => { return Object.assign( {}, state, - {text: action.text} + {text: action.text.text, id: action.text.id} ) default: return state @@ -28,8 +29,6 @@ const todos = (state = [], action) => { todo(undefined, action, state.length) ] case 'MOVE_STOP_UP': - state[action.index].index = state[action.index - 1].index - state[action.index - 1].index = state[action.index].index + 1 return [ ...state.slice(0, action.index - 1), state[action.index], @@ -37,8 +36,6 @@ const todos = (state = [], action) => { ...state.slice(action.index + 1) ] case 'MOVE_STOP_DOWN': - state[action.index + 1].index = state[action.index].index - state[action.index].index = state[action.index + 1].index + 1 return [ ...state.slice(0, action.index), state[action.index + 1], @@ -54,9 +51,10 @@ const todos = (state = [], action) => { }) ] case 'UPDATE_INPUT_VALUE': - return state.map(t => - todo(t, action) - ) + return state.map((t, i) => (i === action.index) ? action.text : t) + // return state.map(t => + // todo(t, action) + // ) default: return state } diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 41c99c90f..9c0195f2b 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -13,14 +13,20 @@ const getInitialState = () => { let state = [] let datas = JSON.parse(decodeURIComponent(window.itinerary_stop)) for (let [index, value] of datas.entries()){ + + let fancyText = value.name + if(value.zip_code && value.city_name) + fancyText += ", " + value.zip_code + " " + value.city_name + state.push({ - index: index, - text: value.name, + id: value.id, + name: value.name, city_name: value.city_name, - zip_code: value.zip_code + zip_code: value.zip_code, + text: fancyText }) } - console.log(state) + // console.log(state) return state } @@ -32,7 +38,7 @@ let store = createStore( // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) -console.log(store.getState()) +// console.log(store.getState()) render( -- cgit v1.2.3 From 247d315d611efd754aedc13c046ad130915c5f6d Mon Sep 17 00:00:00 2001 From: jpl Date: Tue, 8 Nov 2016 19:33:31 +0100 Subject: fix behaviours on select2 --- app/assets/javascripts/es6_browserified/actions/index.js | 1 - .../javascripts/es6_browserified/components/BSelect2.js | 12 ++++-------- app/assets/javascripts/es6_browserified/components/Todo.js | 7 ++----- .../javascripts/es6_browserified/components/TodoList.js | 2 -- 4 files changed, 6 insertions(+), 16 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index 8967c0322..de3bfc113 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -23,7 +23,6 @@ module.exports = { } }, updateInputValue: (index, text) => { - console.log('action',index, text) return { type : "UPDATE_INPUT_VALUE", index, diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 7e4782563..25d34bcc7 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -27,18 +27,14 @@ class BSelect3 extends React.Component{ return (
    +
    ) else return (
    - - {this.props.value.text} - + {this.props.value.text} +
    ) } @@ -47,7 +43,7 @@ class BSelect3 extends React.Component{ const BSelect2 = (props) => { return ( {
    - +
    -
    - -
    { - console.log(todos) return (
    {todos.map((todo, index) => @@ -19,7 +18,6 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan first={ index === 0 } last={ index === (todos.length - 1) } index={ index } - defaultData={ todos } value={ todo } /> )} -- cgit v1.2.3 From 96a6a299d66d241aa608c67fc8fb964666f51cbf Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 10:05:48 +0100 Subject: improving stop_point integration, easy --- .../es6_browserified/components/BSelect2.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 25d34bcc7..455c211a9 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -25,16 +25,25 @@ class BSelect3 extends React.Component{ render() { if(this.state.edit) return ( -
    +
    - + + +
    ) else return ( -
    - {this.props.value.text} - +
    + {this.props.value.text} + + + +
    ) } -- cgit v1.2.3 From d8132b0087d57673a17345ef4dce6e08f35f99be Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 12:26:50 +0100 Subject: update select2 width option, and so.. --- app/assets/javascripts/es6_browserified/components/BSelect2.js | 8 ++++++-- app/assets/javascripts/es6_browserified/components/TodoList.js | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 455c211a9..08ae10e75 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -18,8 +18,9 @@ class BSelect3 extends React.Component{ this.setState({edit: !this.state.edit}) } onChange(e) { - console.log(e.currentTarget.value, e.currentTarget.textContent) - this.props.onChange(this.props.index, {text: e.currentTarget.textContent, id: e.currentTarget.value}) + this.props.onChange(this.props.index, { + text: e.currentTarget.textContent, id: e.currentTarget.value + }) this.setState({edit: false}) } render() { @@ -56,7 +57,10 @@ const BSelect2 = (props) => { onSelect={ props.onSelect } options={{ placeholder: 'Sélectionnez un arrêt existant...', + allowClear: true, + language: 'fr', /* Doesn't seem to work... :( */ theme: 'bootstrap', + width: '100%', ajax: { url: origin + path + '/autocomplete_stop_areas.json', dataType: 'json', diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index e6d1035a6..fbc204417 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -10,7 +10,6 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan key={'item-' + index} onDeleteClick={() => onDeleteClick(index)} onMoveUpClick={() => { - console.log(index, todos) onMoveUpClick(index)} } onMoveDownClick={() => onMoveDownClick(index)} -- cgit v1.2.3 From 19dfbba96bdc518cb9b6597eaff0f97471058ef1 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 14:12:35 +0100 Subject: fix add_stop select2 render --- .../es6_browserified/components/BSelect2.js | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 08ae10e75..590e755fd 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -28,6 +28,7 @@ class BSelect3 extends React.Component{ return (
    +
    ) else - return ( -
    - {this.props.value.text} - - - - -
    - ) + if(!this.props.value.id) + return ( +
    + +
    + ) + else + return ( +
    + {this.props.value.text} + + + +
    + ) } } -- cgit v1.2.3 From e7bb28f100a5833628b776689750c0587de9bab4 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 15:21:55 +0100 Subject: preparing update of routes#show --- app/assets/javascripts/es6_browserified/components/Todo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index c7f9107ba..3b6ad9508 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -2,7 +2,7 @@ var React = require('react') var PropTypes = require('react').PropTypes var BSelect2 = require('./BSelect2') -const Container = {display: 'table', width: '100%'} +const Container = {display: 'table', width: '100%'} const firstBlock = {display: 'table-cell', verticalAlign: 'middle'} const secondBlock = {display: 'table-cell', verticalAlign: 'middle', width: '150px', textAlign: 'right'} -- cgit v1.2.3 From 721532c9fb90ea55851dff8d51bfa29dd3209c4c Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 9 Nov 2016 16:38:09 +0100 Subject: Fix generate hidden inputs when submitting Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/components/BSelect2.js | 2 +- app/assets/javascripts/es6_browserified/form_helper.js | 10 ++++++++++ .../javascripts/es6_browserified/reducers/todos.js | 12 +++++++++++- app/assets/javascripts/es6_browserified/stop_points.js | 16 +++++++++++----- 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/form_helper.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 590e755fd..1c8dc2dff 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -60,7 +60,7 @@ class BSelect3 extends React.Component{ const BSelect2 = (props) => { return ( { + let form = document.querySelector('form') + let input = document.createElement('input') + input.setAttribute('type', 'hidden') + input.setAttribute('name', `route[stop_points_attributes][${index}][${name}]`) + input.setAttribute('value', value) + form.appendChild(input) + } +} diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index bf64632bd..351b6e0d0 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,3 +1,5 @@ +var addInput = require('../form_helper').addInput + const todo = (state = {}, action, length) => { switch (action.type) { case 'ADD_STOP': @@ -14,12 +16,19 @@ const todo = (state = {}, action, length) => { return Object.assign( {}, state, - {text: action.text.text, id: action.text.id} + {text: action.text.text, id: action.text.stoparea_id} ) default: return state } } +const updateFormForDeletion = (stop) =>{ + if (stop.stoppoint_id !== undefined){ + let now = Date.now() + addInput('id', stop.stoppoint_id, now) + addInput('_destroy', 'true', now) + } +} const todos = (state = [], action) => { switch (action.type) { @@ -43,6 +52,7 @@ const todos = (state = [], action) => { ...state.slice(action.index + 2) ] case 'DELETE_STOP': + updateFormForDeletion(state[action.index]) return [ ...state.slice(0, action.index), ...state.slice(action.index + 1).map((todo)=>{ diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 9c0195f2b..f8b8448cd 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -19,14 +19,14 @@ const getInitialState = () => { fancyText += ", " + value.zip_code + " " + value.city_name state.push({ - id: value.id, - name: value.name, + stoppoint_id: value.stoppoint_id, + stoparea_id: value.stoparea_id, + index: index, city_name: value.city_name, zip_code: value.zip_code, text: fancyText }) } - // console.log(state) return state } @@ -38,11 +38,17 @@ let store = createStore( // applyMiddleware(thunkMiddleware, promise, loggerMiddleware) ) -// console.log(store.getState()) - render( , document.getElementById('stop_points') ) + +document.querySelector('input[name=commit]').addEventListener('click', (event)=>{ + let state = store.getState() + for (let [i, todo] of state.todos.entries()){ + addInput('id',todo.stoppoint_id, i) + addInput('stop_area_id',todo.stoparea_id, i) + } +}) -- cgit v1.2.3 From 8184db48b999fe67c7ab1ec83530d8a86f12bdfc Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 9 Nov 2016 17:19:30 +0100 Subject: Fix stopareas now working correctly Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/components/BSelect2.js | 4 ++-- app/assets/javascripts/es6_browserified/reducers/todos.js | 2 +- app/assets/javascripts/es6_browserified/stop_points.js | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 1c8dc2dff..5c391973e 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -19,7 +19,7 @@ class BSelect3 extends React.Component{ } onChange(e) { this.props.onChange(this.props.index, { - text: e.currentTarget.textContent, id: e.currentTarget.value + text: e.currentTarget.textContent, stoparea_id: e.currentTarget.value }) this.setState({edit: false}) } @@ -37,7 +37,7 @@ class BSelect3 extends React.Component{
    ) else - if(!this.props.value.id) + if(!this.props.value.stoparea_id) return (
    diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index 351b6e0d0..e46107efb 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -16,7 +16,7 @@ const todo = (state = {}, action, length) => { return Object.assign( {}, state, - {text: action.text.text, id: action.text.stoparea_id} + {text: action.text.text, stoparea_id: action.text.stoparea_id} ) default: return state diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index f8b8448cd..7ecfd9253 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -8,6 +8,7 @@ var App = require('./components/App') // var createLogger = require('redux-logger').default // var thunkMiddleware = require('redux-thunk').default // var promise = require('redux-promise') +var addInput = require('./form_helper').addInput const getInitialState = () => { let state = [] @@ -48,6 +49,9 @@ render( document.querySelector('input[name=commit]').addEventListener('click', (event)=>{ let state = store.getState() for (let [i, todo] of state.todos.entries()){ + if (todo.stoppoint_id == undefined){ + todo.stoppoint_id = "" + } addInput('id',todo.stoppoint_id, i) addInput('stop_area_id',todo.stoparea_id, i) } -- cgit v1.2.3 From 1083e2d996090034887a5d5106c3f9e0894915f8 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 17:43:47 +0100 Subject: Do the shit --- app/assets/javascripts/es6_browserified/components/Todo.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 3b6ad9508..34eeed9c7 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -10,11 +10,11 @@ const Todo = (props) => { return (
    -
    - #{props.index} +
    + {props.value.stoparea_id}
    -
    +
    -- cgit v1.2.3 From ca458e5ce89e8b378772a6d196c245a647e76543 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 9 Nov 2016 18:35:20 +0100 Subject: adding link to stop_areas --- app/assets/javascripts/es6_browserified/components/BSelect2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 5c391973e..a3ff9d1e4 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -23,6 +23,7 @@ class BSelect3 extends React.Component{ }) this.setState({edit: false}) } + render() { if(this.state.edit) return ( @@ -46,7 +47,7 @@ class BSelect3 extends React.Component{ else return (
    - {this.props.value.text} + {this.props.value.text}
    -
    +
    + +
    +
    +
    +
    + +
    +
    + +
    - $("[data-select2ed='true']").each(-> - $(this).select2 + $("[data-select2ed='true']").each -> + target = $(this) + target.select2 theme: 'bootstrap' language: 'fr' placeholder: target.data('select2ed-placeholder') - ) $(document).on 'ready page:load', select_2 -- cgit v1.2.3 From a98e911bb6f60b9414b9608e1fcd61561f033d0a Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Tue, 15 Nov 2016 17:53:46 +0100 Subject: Add for_boarding and for_alighting attributes for stop_points Signed-off-by: Thomas Shawarma Haddad --- .../javascripts/es6_browserified/actions/index.js | 12 +++++++-- .../es6_browserified/components/Todo.js | 17 +++++------- .../es6_browserified/components/TodoList.js | 6 +++-- .../es6_browserified/containers/VisibleTodoList.js | 3 +++ .../javascripts/es6_browserified/reducers/todos.js | 31 +++++++++++++--------- .../javascripts/es6_browserified/stop_points.js | 10 +++++-- 6 files changed, 50 insertions(+), 29 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/actions/index.js b/app/assets/javascripts/es6_browserified/actions/index.js index b92f9c913..7d225f2f6 100644 --- a/app/assets/javascripts/es6_browserified/actions/index.js +++ b/app/assets/javascripts/es6_browserified/actions/index.js @@ -24,11 +24,19 @@ const actions = { }, updateInputValue : (index, text) => { return { - type : "UPDATE_INPUT_VALUE", + type : 'UPDATE_INPUT_VALUE', index, text } + }, + updateSelectValue: (e, index) => { + return { + type :'UPDATE_SELECT_VALUE', + select_id: e.currentTarget.id, + select_value: e.currentTarget.value, + index + } } } -export default actions +module.exports = actions diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index 85aff9825..b5313876e 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -20,21 +20,17 @@ const Todo = (props) => {
    - + +
    - + +
    @@ -70,6 +66,7 @@ Todo.propTypes = { onMoveUpClick: PropTypes.func.isRequired, onMoveDownClick: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired, + onSelectChange: PropTypes.func.isRequired, first: PropTypes.bool, last: PropTypes.bool, index: PropTypes.number, diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 79967e336..03bd4dbf6 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -1,7 +1,7 @@ import React, {PropTypes} from 'react' import Todo from './Todo' -const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange }) => { +const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange, onSelectChange }) => { return (
    {todos.map((todo, index) => @@ -13,6 +13,7 @@ const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChan }} onMoveDownClick={() => onMoveDownClick(index)} onChange={ onChange } + onSelectChange={ (e) => onSelectChange(e, index) } first={ index === 0 } last={ index === (todos.length - 1) } index={ index } @@ -27,7 +28,8 @@ TodoList.propTypes = { todos: PropTypes.array.isRequired, onDeleteClick: PropTypes.func.isRequired, onMoveUpClick: PropTypes.func.isRequired, - onMoveDownClick: PropTypes.func.isRequired + onMoveDownClick: PropTypes.func.isRequired, + onSelectChange: PropTypes.func.isRequired } export default TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index 4bb4e6c05..a9b395279 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -21,6 +21,9 @@ const mapDispatchToProps = (dispatch) => { }, onChange: (index, text) =>{ dispatch(actions.updateInputValue(index, text)) + }, + onSelectChange: (e, index) =>{ + dispatch(actions.updateSelectValue(e, index)) } } } diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index cf3c0cbf7..cbbb59c37 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -5,19 +5,10 @@ const todo = (state = {}, action, length) => { case 'ADD_STOP': return { text: '', - index: length + index: length, + for_boarding: 'normal', + for_alighting: 'normal' } - case 'UPDATE_INPUT_VALUE': - console.log('reducer', action) - if (state.index !== action.index) { - return state - } - - return Object.assign( - {}, - state, - {text: action.text.text, stoparea_id: action.text.stoparea_id} - ) default: return state } @@ -64,7 +55,11 @@ const todos = (state = [], action) => { return state.map( (t, i) => { if (i === action.index) { updateFormForDeletion(t) - return action.text + return Object.assign( + {}, + t, + {text: action.text.text, stoparea_id: action.text.stoparea_id} + ) } else { return t } @@ -72,6 +67,16 @@ const todos = (state = [], action) => { // return state.map(t => // todo(t, action) // ) + case 'UPDATE_SELECT_VALUE': + return state.map( (t,i) => { + if (i === action.index) { + let stopState = Object.assign({}, t) + stopState[action.select_id] = action.select_value + return stopState + } else { + return t + } + }) default: return state } diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index 339264d51..f3ac81906 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -5,8 +5,10 @@ import { createStore } from 'redux' import todoApp from './reducers' import App from './components/App' import addInput from './form_helper' + +// logger, DO NOT REMOVE // var applyMiddleware = require('redux').applyMiddleware -// var createLogger = require('redux-logger').default +// var createLogger = require('redux-logger') // var thunkMiddleware = require('redux-thunk').default // var promise = require('redux-promise') @@ -25,7 +27,9 @@ const getInitialState = () => { index: index, city_name: value.city_name, zip_code: value.zip_code, - text: fancyText + text: fancyText, + for_boarding: value.for_boarding || "normal", + for_alighting: value.for_alighting || "normal" }) } return state @@ -55,5 +59,7 @@ document.querySelector('input[name=commit]').addEventListener('click', (event)=> addInput('id',todo.stoppoint_id, i) addInput('stop_area_id',todo.stoparea_id, i) addInput('position',i, i) + addInput('for_boarding',todo.for_boarding, i) + addInput('for_alighting',todo.for_alighting, i) } }) -- cgit v1.2.3 From fca3f0e0ad69089165ec78c9687a750590176821 Mon Sep 17 00:00:00 2001 From: jpl Date: Wed, 16 Nov 2016 16:31:59 +0100 Subject: Refs #1973: adding clear filter funct. --- app/assets/javascripts/select2.coffee | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/select2.coffee b/app/assets/javascripts/select2.coffee index 27528961a..edd4c476d 100644 --- a/app/assets/javascripts/select2.coffee +++ b/app/assets/javascripts/select2.coffee @@ -5,5 +5,7 @@ theme: 'bootstrap' language: 'fr' placeholder: target.data('select2ed-placeholder') + allowClear: true + $(document).on 'ready page:load', select_2 -- cgit v1.2.3 From c0524053530a3ebf89d5487f2c09246cd1be9e9d Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 17 Nov 2016 10:40:10 +0100 Subject: Fix remove es6 imports for the sake of the build Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/components/App.js | 8 ++++---- app/assets/javascripts/es6_browserified/components/BSelect2.js | 7 ++++--- app/assets/javascripts/es6_browserified/components/Todo.js | 7 ++++--- app/assets/javascripts/es6_browserified/components/TodoList.js | 7 ++++--- app/assets/javascripts/es6_browserified/containers/AddTodo.js | 8 ++++---- .../javascripts/es6_browserified/containers/VisibleTodoList.js | 8 ++++---- app/assets/javascripts/es6_browserified/form_helper.js | 2 +- app/assets/javascripts/es6_browserified/reducers/index.js | 6 +++--- app/assets/javascripts/es6_browserified/reducers/todos.js | 4 ++-- 9 files changed, 30 insertions(+), 27 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js index d41c97217..aa345cbf2 100644 --- a/app/assets/javascripts/es6_browserified/components/App.js +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -1,6 +1,6 @@ -import React from 'react' -import AddTodo from '../containers/AddTodo' -import VisibleTodoList from '../containers/VisibleTodoList' +var React = require('react') +var AddTodo = require('../containers/Addtodo') +var VisibleTodoList = require('../containers/VisibleTodoList') const App = () => (
    @@ -9,4 +9,4 @@ const App = () => (
    ) -export default App +module.exports = App diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index 6fe0f6307..a78dc625f 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -1,5 +1,6 @@ -import React, {PropTypes} from 'react' -import Select2 from 'react-select2' +var React = require('react') +var PropTypes = require('react').PropTypes +var Select2 = require('react-select2') // get JSON full path @@ -123,4 +124,4 @@ const formatRepo = (props) => { // ) } -export default BSelect3 +module.exports = BSelect3 diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index b5313876e..bf60a405e 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -1,5 +1,6 @@ -import React, {PropTypes} from 'react' -import BSelect2 from './BSelect2' +var React = require('react') +var PropTypes = require('react').PropTypes +var BSelect2 = require('./BSelect2') const Container = {display: 'table', tableLayout: 'fixed', width: '100%'} const firstBlock = {display: 'table-cell', verticalAlign: 'middle', width: '55%'} @@ -73,4 +74,4 @@ Todo.propTypes = { value: PropTypes.object } -export default Todo +module.exports = Todo diff --git a/app/assets/javascripts/es6_browserified/components/TodoList.js b/app/assets/javascripts/es6_browserified/components/TodoList.js index 03bd4dbf6..3ea2c90e1 100644 --- a/app/assets/javascripts/es6_browserified/components/TodoList.js +++ b/app/assets/javascripts/es6_browserified/components/TodoList.js @@ -1,5 +1,6 @@ -import React, {PropTypes} from 'react' -import Todo from './Todo' +var React = require('react') +var PropTypes = require('react').PropTypes +var Todo = require('./Todo') const TodoList = ({ todos, onDeleteClick, onMoveUpClick, onMoveDownClick, onChange, onSelectChange }) => { return ( @@ -32,4 +33,4 @@ TodoList.propTypes = { onSelectChange: PropTypes.func.isRequired } -export default TodoList +module.exports = TodoList diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 857732333..98904ec21 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -1,6 +1,6 @@ -import React from 'react' -import { connect } from 'react-redux' -import actions from '../actions' +var React = require('react') +var connect = require('react-redux').connect +var actions = require('../actions') let AddTodo = ({ dispatch }) => { return ( @@ -18,4 +18,4 @@ let AddTodo = ({ dispatch }) => { } AddTodo = connect()(AddTodo) -export default AddTodo +module.exports = AddTodo diff --git a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js index a9b395279..464d6e482 100644 --- a/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js +++ b/app/assets/javascripts/es6_browserified/containers/VisibleTodoList.js @@ -1,6 +1,6 @@ -import actions from '../actions' -import { connect } from 'react-redux' -import TodoList from '../components/TodoList' +var actions = require('../actions') +var connect = require('react-redux').connect +var TodoList = require('../components/TodoList') const mapStateToProps = (state) => { return { @@ -33,4 +33,4 @@ const VisibleTodoList = connect( mapDispatchToProps )(TodoList) -export default VisibleTodoList +module.exports = VisibleTodoList diff --git a/app/assets/javascripts/es6_browserified/form_helper.js b/app/assets/javascripts/es6_browserified/form_helper.js index 140794886..d48718841 100644 --- a/app/assets/javascripts/es6_browserified/form_helper.js +++ b/app/assets/javascripts/es6_browserified/form_helper.js @@ -7,4 +7,4 @@ const addInput = (name, value, index) => { form.appendChild(input) } -export default addInput +module.exports = addInput diff --git a/app/assets/javascripts/es6_browserified/reducers/index.js b/app/assets/javascripts/es6_browserified/reducers/index.js index aee1799aa..381b32d8b 100644 --- a/app/assets/javascripts/es6_browserified/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/reducers/index.js @@ -1,8 +1,8 @@ -import { combineReducers } from 'redux' -import todos from './todos' +var combineReducers = require('redux').combineReducers +var todos = require('./todos') const todoApp = combineReducers({ todos }) -export default todoApp +module.exports = todoApp diff --git a/app/assets/javascripts/es6_browserified/reducers/todos.js b/app/assets/javascripts/es6_browserified/reducers/todos.js index cbbb59c37..916cd4704 100644 --- a/app/assets/javascripts/es6_browserified/reducers/todos.js +++ b/app/assets/javascripts/es6_browserified/reducers/todos.js @@ -1,4 +1,4 @@ -import addInput from '../form_helper' +var addInput = require('../form_helper') const todo = (state = {}, action, length) => { switch (action.type) { @@ -82,4 +82,4 @@ const todos = (state = [], action) => { } } -export default todos +module.exports = todos -- cgit v1.2.3 From 07abd404cf06481fdb62e9586e9f77e7818eaa07 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 17 Nov 2016 10:51:29 +0100 Subject: Fix require typo Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/components/App.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/App.js b/app/assets/javascripts/es6_browserified/components/App.js index aa345cbf2..7488b0b39 100644 --- a/app/assets/javascripts/es6_browserified/components/App.js +++ b/app/assets/javascripts/es6_browserified/components/App.js @@ -1,5 +1,5 @@ var React = require('react') -var AddTodo = require('../containers/Addtodo') +var AddTodo = require('../containers/AddTodo') var VisibleTodoList = require('../containers/VisibleTodoList') const App = () => ( -- cgit v1.2.3 From e53902399fbdeea48c8c87f67c505a829a11d8a9 Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Thu, 17 Nov 2016 11:11:31 +0100 Subject: Fix remove es6 imports from stop_points.js Signed-off-by: Thomas Shawarma Haddad --- app/assets/javascripts/es6_browserified/stop_points.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/stop_points.js b/app/assets/javascripts/es6_browserified/stop_points.js index f3ac81906..f594c0da4 100644 --- a/app/assets/javascripts/es6_browserified/stop_points.js +++ b/app/assets/javascripts/es6_browserified/stop_points.js @@ -1,10 +1,10 @@ -import React from 'react' -import { render } from 'react-dom' -import { Provider } from 'react-redux' -import { createStore } from 'redux' -import todoApp from './reducers' -import App from './components/App' -import addInput from './form_helper' +var React = require('react') +var render = require('react-dom').render +var Provider = require('react-redux').Provider +var createStore = require('redux').createStore +var todoApp = require('./reducers') +var App = require('./components/App') +var addInput = require('./form_helper') // logger, DO NOT REMOVE // var applyMiddleware = require('redux').applyMiddleware -- cgit v1.2.3 From 31e0170480c68744a61e7211b5b7c7a5f1259096 Mon Sep 17 00:00:00 2001 From: jpl Date: Sun, 20 Nov 2016 14:26:38 +0100 Subject: Refs #1995: update route#new & route#edit --- .../es6_browserified/components/BSelect2.js | 1 + .../es6_browserified/components/Todo.js | 90 +++++++++++----------- .../es6_browserified/containers/AddTodo.js | 1 + 3 files changed, 46 insertions(+), 46 deletions(-) (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/components/BSelect2.js b/app/assets/javascripts/es6_browserified/components/BSelect2.js index a78dc625f..ec0d130d2 100644 --- a/app/assets/javascripts/es6_browserified/components/BSelect2.js +++ b/app/assets/javascripts/es6_browserified/components/BSelect2.js @@ -53,6 +53,7 @@ class BSelect3 extends React.Component{ className='form-control form-control-link' href={origin + path + '/stop_areas/' + this.props.value.stoparea_id} title={"Voir l'arrêt '" + this.props.value.text + "'"} + style={{lineHeight: '22px', overflow: 'hidden'}} > {this.props.value.text} diff --git a/app/assets/javascripts/es6_browserified/components/Todo.js b/app/assets/javascripts/es6_browserified/components/Todo.js index bf60a405e..2a670370f 100644 --- a/app/assets/javascripts/es6_browserified/components/Todo.js +++ b/app/assets/javascripts/es6_browserified/components/Todo.js @@ -2,59 +2,57 @@ var React = require('react') var PropTypes = require('react').PropTypes var BSelect2 = require('./BSelect2') -const Container = {display: 'table', tableLayout: 'fixed', width: '100%'} -const firstBlock = {display: 'table-cell', verticalAlign: 'middle', width: '55%'} -const secondBlock = {display: 'table-cell', verticalAlign: 'middle', textAlign: 'right'} -const thirdBlock = {display: 'table-cell', verticalAlign: 'middle', width: 125, textAlign: 'right'} - const Todo = (props) => { return ( -
    -
    -
    - {props.value.stoparea_id} -
    +
    +
    +
    +
    + {props.value.stoparea_id} +
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    - +
    + +
    -
    -
    -
    -
    - +
    +
    +
    -
    - +
    +
    +
    +
    -
    - +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    diff --git a/app/assets/javascripts/es6_browserified/containers/AddTodo.js b/app/assets/javascripts/es6_browserified/containers/AddTodo.js index 98904ec21..d0128f16d 100644 --- a/app/assets/javascripts/es6_browserified/containers/AddTodo.js +++ b/app/assets/javascripts/es6_browserified/containers/AddTodo.js @@ -9,6 +9,7 @@ let AddTodo = ({ dispatch }) => { e.preventDefault() dispatch(actions.addStop()) }}> + -- cgit v1.2.3