From 3baa53f1da7f581619b066832b8303efbe9a46ba Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 2 Nov 2018 11:22:28 +0100 Subject: Remove friends list ; add some links --- shard/lib/app/directory.ex | 8 ------ shard/lib/app/identity.ex | 13 +++------ shardweb/.gitignore | 5 +++- shardweb/assets/js/app.js | 6 +++-- shardweb/config/config.exs | 6 +++++ shardweb/lib/channels/chat_channel.ex | 10 ++++--- shardweb/lib/controllers/identity_controller.ex | 34 ------------------------ shardweb/lib/router.ex | 1 - shardweb/lib/templates/directory/view.html.eex | 9 +++++++ shardweb/lib/templates/identity/view.html.eex | 12 ++------- shardweb/lib/templates/layout/app.html.eex | 4 --- shardweb/lib/templates/page/shard_entry.html.eex | 4 +-- shardweb/lib/templates/page/shard_list.html.eex | 2 +- shardweb/lib/views/identity_view.ex | 5 ---- shardweb/mix.exs | 3 ++- shardweb/mix.lock | 1 + 16 files changed, 40 insertions(+), 83 deletions(-) diff --git a/shard/lib/app/directory.ex b/shard/lib/app/directory.ex index a15de21..f4b5a0b 100644 --- a/shard/lib/app/directory.ex +++ b/shard/lib/app/directory.ex @@ -200,12 +200,4 @@ defmodule SApp.Directory do def rm_file(pid, name) do GenServer.call(pid, {:rm_file, name}) end - - @doc""" - Returns the friends directory of a user - """ - def friends_dir(pk) do - manifest = %Manifest{name: "friends", owner: pk, public: false} - Shard.Manager.find_or_start manifest - end end diff --git a/shard/lib/app/identity.ex b/shard/lib/app/identity.ex index 468906f..69bed93 100644 --- a/shard/lib/app/identity.ex +++ b/shard/lib/app/identity.ex @@ -79,16 +79,9 @@ defmodule SApp.Identity do end def handle_cast(:send_deps, state) do - default_deps = - if Shard.Keys.have_sk?(state.pk) do - [ - %SApp.Directory.Manifest{owner: state.pk, public: false, name: "friends"} - ] - else - [] - end - - GenServer.cast(Shard.Manager, {:dep_list, state.id, default_deps}) + # TODO: collections + + GenServer.cast(Shard.Manager, {:dep_list, state.id, []}) {:noreply, state} end diff --git a/shardweb/.gitignore b/shardweb/.gitignore index d5be28f..bae7727 100644 --- a/shardweb/.gitignore +++ b/shardweb/.gitignore @@ -13,6 +13,9 @@ npm-debug.log # Static artifacts /assets/node_modules +# Auto-generated by phoenix-jsroutes +/assets/js/phoenix-jsroutes.js + # Since we are building assets from assets/, # we ignore priv/static. You may want to comment # this depending on your deployment strategy. @@ -24,4 +27,4 @@ npm-debug.log # Alternatively, you may comment the line below and commit the # secrets files as long as you replace their contents by environment # variables. -/config/*.secret.exs \ No newline at end of file +/config/*.secret.exs diff --git a/shardweb/assets/js/app.js b/shardweb/assets/js/app.js index 3adae5a..1e5ea62 100644 --- a/shardweb/assets/js/app.js +++ b/shardweb/assets/js/app.js @@ -20,6 +20,8 @@ import "phoenix_html" import socket from "./socket" +import routes from './phoenix-jsroutes' + var chat_channel = window.Gon.getAsset('chat_channel'); if (chat_channel != undefined) { @@ -28,9 +30,9 @@ if (chat_channel != undefined) channel.on('shout', function (payload) { // listen to the 'shout' event var li = document.createElement("li"); // creaet new list item DOM element var name = payload.name || 'guest'; // get name from payload or set default - li.innerHTML = '<' + name + ' ' + payload.pk16 + '> ' + payload.message; // set li contents + li.innerHTML = '<' + name + ' ' + payload.pk16 + '> ' + payload.message; // set li contents - console.log(ul.scrollTop + ' ' + ul.scrollHeight + ' ' + ul.clientHeight); + // console.log(ul.scrollTop + ' ' + ul.scrollHeight + ' ' + ul.clientHeight); var must_scroll = (ul.scrollTop >= ul.scrollHeight - ul.clientHeight - 10); ul.appendChild(li); // append to list diff --git a/shardweb/config/config.exs b/shardweb/config/config.exs index a905175..0e38936 100644 --- a/shardweb/config/config.exs +++ b/shardweb/config/config.exs @@ -5,6 +5,11 @@ # is restricted to this project. use Mix.Config +# Make phx.routes and jsroutes work +config :shardweb, namespace: ShardWeb + +config :shardweb, :jsroutes, output_folder: "assets/js" + # Configures the endpoint config :shardweb, ShardWeb.Endpoint, url: [host: "localhost"], @@ -13,6 +18,7 @@ config :shardweb, ShardWeb.Endpoint, pubsub: [name: ShardWeb.PubSub, adapter: Phoenix.PubSub.PG2] + # Configures Elixir's Logger config :logger, :console, format: "$time $metadata[$level] $message\n", diff --git a/shardweb/lib/channels/chat_channel.ex b/shardweb/lib/channels/chat_channel.ex index 25f1d09..7c8f1f9 100644 --- a/shardweb/lib/channels/chat_channel.ex +++ b/shardweb/lib/channels/chat_channel.ex @@ -44,6 +44,7 @@ defmodule ShardWeb.ChatChannel do push(socket, "shout", %{ name: nick, pk16: Shard.Keys.pk_display(pk), + fullpk: Base.encode16(pk), message: msg, }) end) @@ -55,9 +56,11 @@ defmodule ShardWeb.ChatChannel do {_ts, msg} = SData.term_unbin msgbin nick = SApp.Identity.get_nick pk Logger.info("#{inspect self()} :chat_recv #{inspect msg}") - push socket, "shout", %{"name" => nick, - "pk16" => Shard.Keys.pk_display(pk), - "message" => msg} + push socket, "shout", %{ + name: nick, + pk16: Shard.Keys.pk_display(pk), + fullpk: Base.encode16(pk), + message: msg} SApp.Chat.mark_read(socket.assigns.pid) {:noreply, socket} end @@ -80,6 +83,7 @@ defmodule ShardWeb.ChatChannel do nick = SApp.Identity.get_nick pk payload = Map.put(payload, "name", nick) payload = Map.put(payload, "pk16", Shard.Keys.pk_display pk) + payload = Map.put(payload, "fullpk", Base.encode16 pk) SApp.Chat.chat_send(socket.assigns.pid, pk, payload["message"]) broadcast socket, "shout", payload diff --git a/shardweb/lib/controllers/identity_controller.ex b/shardweb/lib/controllers/identity_controller.ex index d1c6886..962a888 100644 --- a/shardweb/lib/controllers/identity_controller.ex +++ b/shardweb/lib/controllers/identity_controller.ex @@ -25,40 +25,6 @@ defmodule ShardWeb.IdentityController do end end - def view_post(conn, opts) do - IO.puts(inspect opts) - {:ok, pk} = Base.decode16(opts["pk"]) - manifest = %SApp.Identity.Manifest{pk: pk} - nick = SApp.Identity.get_nick pk - shard = manifest |> SData.term_hash - pid = Shard.Manager.find_proc shard - - if opts["add_friend"] == "true" do - friend_list = SApp.Directory.friends_dir(conn.assigns.pk) - name = nick <> " " <> Shard.Keys.pk_display(pk) - SApp.Directory.add_file(friend_list, name, manifest) - end - - if opts["rm_friend"] == "true" do - friend_list = SApp.Directory.friends_dir(conn.assigns.pk) - name = SApp.Directory.find(friend_list, manifest) - if name != nil do - SApp.Directory.rm_file(friend_list, name) - end - end - - if pid == nil do - render conn, ShardWeb.ErrorView, "404.html" - else - render conn, "view.html", - view_pk: pk, - view_nick: SApp.Identity.get_nick(pk), - shard: shard, - pid: pid - end - #TODO - end - def update(conn, params) do pid = SApp.Identity.find_proc(conn.assigns.pk) info = SApp.Identity.get_info(pid) diff --git a/shardweb/lib/router.ex b/shardweb/lib/router.ex index eb1868f..61f8209 100644 --- a/shardweb/lib/router.ex +++ b/shardweb/lib/router.ex @@ -24,7 +24,6 @@ defmodule ShardWeb.Router do get "/people", IdentityController, :list get "/people/:pk", IdentityController, :view - post "/people/:pk", IdentityController, :view_post get "/identity", IdentityController, :self post "/identity", IdentityController, :update post "/identity/switch", IdentityController, :switch diff --git a/shardweb/lib/templates/directory/view.html.eex b/shardweb/lib/templates/directory/view.html.eex index b981391..43ded97 100644 --- a/shardweb/lib/templates/directory/view.html.eex +++ b/shardweb/lib/templates/directory/view.html.eex @@ -7,6 +7,15 @@