Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notable Fork: Elm version #56

Open
wants to merge 54 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
eefce1f
Updated travis file
bigardone Sep 26, 2016
c97932a
Merge branch 'master' of github.com:bigardone/phoenix-trello
bigardone Sep 27, 2016
ba12bf8
Added elm packages, removed js ones and updated webpack config
bigardone Sep 27, 2016
ff36fc0
Renamed old asset files and moved js to temporally folder
bigardone Sep 27, 2016
5ab58d1
Elm main and vendor modules
bigardone Sep 27, 2016
9ec5361
fixed webpack config
bigardone Sep 28, 2016
4958daa
application skeleton
bigardone Sep 28, 2016
cb838fa
session basic modules
bigardone Sep 28, 2016
788c38b
minor changes
bigardone Sep 28, 2016
ea04e21
registration basic modules
bigardone Sep 28, 2016
ab296e0
fixed css reference
bigardone Sep 28, 2016
6922cbc
basic navigation through session and registration
bigardone Sep 28, 2016
e5352fc
removed unnecessary helper
bigardone Sep 29, 2016
e57084d
renamed auth routes
bigardone Sep 29, 2016
4b3e10a
basic home modules and redirect to sign in
bigardone Sep 29, 2016
8951502
added user model
bigardone Sep 29, 2016
b8f9e7f
handle session form input
bigardone Sep 29, 2016
59c1bcd
user authentication
bigardone Sep 30, 2016
bdcf722
sign in user using jet token
bigardone Oct 1, 2016
643ca8f
join user channel on sign in
bigardone Oct 1, 2016
24aafc1
fetch boards on channel join
bigardone Oct 1, 2016
e4cc385
main header and sign out
bigardone Oct 2, 2016
050130a
toggle header's boards list
bigardone Oct 2, 2016
a52152d
display boards in home index view
bigardone Oct 2, 2016
9ee1935
toggle board form
bigardone Oct 2, 2016
379a864
create new board
bigardone Oct 3, 2016
a036e15
show board route
bigardone Oct 4, 2016
438027e
connect to board channel when visiting board route
bigardone Oct 5, 2016
8a9f389
moved state to main model
bigardone Oct 22, 2016
8ecc169
Revert "moved state to main model"
bigardone Oct 22, 2016
1833cac
error fix
bigardone Oct 22, 2016
0bbc9fe
navigate to board from boards selector
bigardone Oct 22, 2016
b8f3faa
display board members
bigardone Oct 22, 2016
2ff142a
set connected board members
bigardone Oct 23, 2016
4b44b93
add members form
bigardone Oct 23, 2016
1ab6b11
add members push
bigardone Oct 23, 2016
5b72f32
updated vendor package
bigardone Oct 23, 2016
93ad892
socket initialized with params
bigardone Oct 23, 2016
2d328cf
minor refactor
bigardone Oct 23, 2016
0686539
minor linter fix
bigardone Oct 23, 2016
11f8a09
add new member
bigardone Oct 23, 2016
371feb0
lists and cards base modules
bigardone Oct 25, 2016
275dd3b
hide boards list on navigate
bigardone Oct 25, 2016
2117f0f
user registration
bigardone Oct 25, 2016
79139bc
reset main model on sign out success
bigardone Oct 26, 2016
ff9d2cc
display sign up errors
bigardone Oct 26, 2016
011fa32
updated npm packages
bigardone Oct 27, 2016
1f20c67
list form model
bigardone Oct 27, 2016
7c052a0
list form view
bigardone Oct 27, 2016
3fd8161
toggle list form
bigardone Oct 27, 2016
dc3c261
reply ok
bigardone Oct 27, 2016
3f6268b
list creation
bigardone Oct 27, 2016
43564b9
edit lists
bigardone Oct 29, 2016
73f863b
handle user leaving board channel
bigardone Oct 30, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ erl_crash.dump

*.log
priv/static
elm-stuff
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
language: elixir
elixir:
- 1.2.1
- 1.3.1
otp_release:
- 18.1
- 19.0
addons:
postgresql: '9.4'
services:
Expand Down
15 changes: 15 additions & 0 deletions elm-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "1.0.0",
"summary": "helpful summary of your project, less than 80 characters",
"repository": "https://github.com/user/project.git",
"license": "BSD3",
"source-directories": [
"."
],
"exposed-modules": [],
"dependencies": {
"elm-lang/core": "4.0.5 <= v < 5.0.0",
"elm-lang/html": "1.1.0 <= v < 2.0.0"
},
"elm-version": "0.17.1 <= v < 0.18.0"
}
41 changes: 10 additions & 31 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,44 +17,23 @@
"npm": "3.5.x"
},
"devDependencies": {
"babel-core": "^6.3.26",
"babel-loader": "^6.2.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.3.13",
"babel-preset-stage-2": "^6.3.13",
"css-loader": "^0.23.1",
"babel-core": "^6.18.0",
"babel-loader": "^6.2.6",
"babel-preset-es2015": "^6.18.0",
"css-loader": "^0.25.0",
"elm-hot-loader": "^0.3.4",
"elm-webpack-loader": "^3.0.6",
"extract-text-webpack-plugin": "^1.0.1",
"node-libs-browser": "^1.0.0",
"node-sass": "^3.4.2",
"sass-loader": "^3.1.2",
"node-sass": "^3.10.1",
"sass-loader": "^4.0.2",
"style-loader": "^0.13.0",
"webpack": "^1.12.11"
"webpack": "^1.13.3"
},
"dependencies": {
"bourbon": "^4.2.6",
"bourbon-neat": "^1.7.2",
"classnames": "^2.2.1",
"es6-promise": "^3.0.2",
"history": "^1.17.0",
"invariant": "^2.2.0",
"isomorphic-fetch": "^2.2.1",
"moment": "^2.11.1",
"phoenix": "file:deps/phoenix",
"phoenix_html": "file:deps/phoenix_html",
"react": "^0.14.5",
"react-addons-css-transition-group": "^0.14.5",
"react-dnd": "^2.0.2",
"react-dnd-html5-backend": "^2.0.2",
"react-dom": "^0.14.5",
"react-gravatar": "^2.2.2",
"react-page-click": "^2.0.0",
"react-redux": "^4.0.4",
"react-router": "^2.0.1",
"react-router-redux": "^4.0.0",
"redux": "^3.3.1",
"redux-logger": "^2.3.2",
"redux-thunk": "^1.0.2"
"phoenix_html": "file:deps/phoenix_html"
}
}
10 changes: 5 additions & 5 deletions web/channels/board_channel.ex
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ defmodule PhoenixTrello.BoardChannel do
list = Repo.preload(list, [:board, :cards])

broadcast! socket, "list:created", %{list: list}
{:noreply, socket}
{:reply, :ok, socket}
{:error, _changeset} ->
{:reply, {:error, %{error: "Error creating list"}}, socket}
end
Expand Down Expand Up @@ -80,12 +80,12 @@ defmodule PhoenixTrello.BoardChannel do

PhoenixTrello.Endpoint.broadcast_from! self(), "users:#{user.id}", "boards:add", %{board: board}

{:noreply, socket}
{:reply, :ok, socket}
{:error, _changeset} ->
{:reply, {:error, %{error: "Error adding new member"}}, socket}
end
catch
_, _-> {:reply, {:error, %{error: "User does not exist"}}, socket}
_, _ -> {:reply, {:error, %{error: "User does not exist"}}, socket}
end
end

Expand Down Expand Up @@ -122,7 +122,7 @@ defmodule PhoenixTrello.BoardChannel do
{:ok, _list} ->
board = get_current_board(socket)
broadcast! socket, "list:updated", %{board: board}
{:noreply, socket}
{:reply, :ok, socket}
{:error, _changeset} ->
{:reply, {:error, %{error: "Error updating list"}}, socket}
end
Expand Down Expand Up @@ -178,7 +178,7 @@ defmodule PhoenixTrello.BoardChannel do
{:reply, {:error, %{error: "Error adding new member"}}, socket}
end
catch
_, _-> {:reply, {:error, %{error: "Member does not exist"}}, socket}
_, _ -> {:reply, {:error, %{error: "Member does not exist"}}, socket}
end
end

Expand Down
22 changes: 22 additions & 0 deletions web/elm/elm-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"version": "1.0.0",
"summary": "helpful summary of your project, less than 80 characters",
"repository": "https://github.com/user/project.git",
"license": "BSD3",
"source-directories": [
"./src",
"./vendor"

],
"exposed-modules": [],
"dependencies": {
"elm-community/json-extra": "1.0.0 <= v < 2.0.0",
"elm-lang/core": "4.0.5 <= v < 5.0.0",
"elm-lang/html": "1.1.0 <= v < 2.0.0",
"elm-lang/navigation": "1.0.0 <= v < 2.0.0",
"elm-lang/websocket": "1.0.1 <= v < 2.0.0",
"evancz/elm-http": "3.0.1 <= v < 4.0.0",
"evancz/url-parser": "1.0.0 <= v < 2.0.0"
},
"elm-version": "0.17.1 <= v < 0.18.0"
}
37 changes: 37 additions & 0 deletions web/elm/src/Boards/Decoder.elm
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
module Boards.Decoder exposing (..)

import Json.Decode as Decode exposing (..)
import Json.Decode.Extra exposing ((|:))
import Model exposing (ErrorModel)
import Boards.Model exposing (..)
import Session.Decoder exposing (..)
import Lists.Decoder exposing (..)


boardModelDecoder : Decode.Decoder BoardModel
boardModelDecoder =
succeed BoardModel
|: ("id" := string)
|: (maybe ("user_id" := int))
|: ("name" := string)
|: (maybe ("user" := userDecoder))
|: (maybe ("lists" := (list listModelDecoder)))
|: (maybe ("members" := (list userDecoder)))


boardResponseDecoder : Decode.Decoder BoardResponseModel
boardResponseDecoder =
succeed BoardResponseModel
|: ("board" := boardModelDecoder)


connectedUsersResponseDecoder : Decode.Decoder ConnectedUsersListResponseModel
connectedUsersResponseDecoder =
succeed ConnectedUsersListResponseModel
|: ("users" := list int)


errorResponseDecoder : Decode.Decoder ErrorModel
errorResponseDecoder =
succeed ErrorModel
|: ("error" := string)
75 changes: 75 additions & 0 deletions web/elm/src/Boards/Model.elm
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
module Boards.Model exposing (..)

import Session.Model exposing (User)
import Lists.Model as Lists


type alias Model =
{ id : Maybe String
, state : State
, fetching : Bool
, board : Maybe BoardModel
, connectedUsers : List Int
, membersForm : MembersFormModel
, listForm : Lists.ListForm
}


type alias BoardModel =
{ id : String
, user_id : Maybe Int
, name : String
, user : Maybe User
, lists : Maybe (List Lists.Model)
, members : Maybe (List User)
}


type alias MembersFormModel =
{ show : Bool
, email : String
, error : Maybe String
}


type State
= JoiningBoard
| JoinedBoard
| LeavingBoard
| LeftBoard


type alias BoardResponseModel =
{ board : BoardModel }


type alias ConnectedUsersListResponseModel =
{ users : List Int }


initialMembersFormModel : MembersFormModel
initialMembersFormModel =
MembersFormModel False "" Nothing


initialModel : Model
initialModel =
{ id = Nothing
, state = LeftBoard
, fetching = True
, board = Nothing
, connectedUsers = []
, membersForm = initialMembersFormModel
, listForm = Lists.initialListForm Nothing
}


initialBoard : BoardModel
initialBoard =
{ id = ""
, user_id = Nothing
, name = ""
, user = Nothing
, lists = Nothing
, members = Nothing
}
24 changes: 24 additions & 0 deletions web/elm/src/Boards/Types.elm
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module Boards.Types exposing (..)

import Json.Encode as JE
import Lists.Model as ListsModel


type Msg
= JoinChannelSuccess JE.Value
| ConnectedUsers JE.Value
| ShowMembersForm Bool
| HandleMembersFormEmailInput String
| AddMemberStart
| AddMemberSuccess JE.Value
| AddMemberError JE.Value
| MemberAdded JE.Value
| ShowListForm
| HideListForm
| HandleListFormNameInput String
| SaveListStart
| SaveListSuccess JE.Value
| SaveListError JE.Value
| ListCreated JE.Value
| EditList ListsModel.Model
| UpdateBoard JE.Value
Loading