aboutsummaryrefslogtreecommitdiff
path: root/shardweb/lib
diff options
context:
space:
mode:
Diffstat (limited to 'shardweb/lib')
-rw-r--r--shardweb/lib/channels/chat_channel.ex10
-rw-r--r--shardweb/lib/controllers/identity_controller.ex34
-rw-r--r--shardweb/lib/router.ex1
-rw-r--r--shardweb/lib/templates/directory/view.html.eex9
-rw-r--r--shardweb/lib/templates/identity/view.html.eex12
-rw-r--r--shardweb/lib/templates/layout/app.html.eex4
-rw-r--r--shardweb/lib/templates/page/shard_entry.html.eex4
-rw-r--r--shardweb/lib/templates/page/shard_list.html.eex2
-rw-r--r--shardweb/lib/views/identity_view.ex5
9 files changed, 20 insertions, 61 deletions
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 @@
</h1>
<ol class="breadcrumb">
+ <li>
+ <i class="fa fa-users"></i> Users
+ </li>
+ <li>
+ <i class="fa fa-user"></i> <%= @owner |> SApp.Identity.get_nick %>
+ <a href="<%= identity_path(@conn, :view, @owner |> Base.encode16) %>">
+ <small><%= @owner |> Shard.Keys.pk_display %></small>
+ </a>
+ </li>
<li class="active">
<i class="fa fa-folder"></i> <%= @name %>
</li>
diff --git a/shardweb/lib/templates/identity/view.html.eex b/shardweb/lib/templates/identity/view.html.eex
index 6cb1bde..3fb5a3f 100644
--- a/shardweb/lib/templates/identity/view.html.eex
+++ b/shardweb/lib/templates/identity/view.html.eex
@@ -18,16 +18,8 @@
<%= render ShardWeb.LayoutView, "flashes.html", assigns %>
-<%= if is_friend(@conn, @view_pk) do %>
- <%= form_for @conn, identity_path(@conn, :view_post, @view_pk|>Base.encode16()), [class: "form-inline"], fn f -> %>
- <%= hidden_input f, :rm_friend, value: "true" %>
- <%= submit "Remove from friends", [class: "btn btn-sm btn-danger"] %>
- <% end %>
-<% else %>
- <%= form_for @conn, identity_path(@conn, :view_post, @view_pk|>Base.encode16()), [class: "form-inline"], fn f -> %>
- <%= hidden_input f, :add_friend, value: "true" %>
- <%= submit "Add to friends", [class: "btn btn-sm btn-success"] %>
- <% end %>
+<%= if @view_pk != @pk do %>
+ <a class="btn btn-s btn-primary" href="<%= chat_path(@conn, :privchat, @pk |> Base.encode16) %>"><i class="fa fa-comments"></i> PM</a>
<% end %>
<pre>
diff --git a/shardweb/lib/templates/layout/app.html.eex b/shardweb/lib/templates/layout/app.html.eex
index 71a08f9..1310131 100644
--- a/shardweb/lib/templates/layout/app.html.eex
+++ b/shardweb/lib/templates/layout/app.html.eex
@@ -150,10 +150,6 @@
</ul>
</li>
-
- <li class="<%= if @view_module == ShardWeb.DirectoryView and @view_template == "view.html" and not @public and @name == "friends" do "active" else "" end %>">
- <a href="<%= directory_path(@conn, :view_priv, @pk|>Base.encode16(), "friends") %>"><i class="fa fa-fw fa-heart"></i> Friends</a>
- </li>
<li class="<%= if (@view_module == ShardWeb.IdentityView and @view_template == "list.html") or (@view_module == ShardWeb.ChatView and @view_template == "chat.html" and not @public) do "active" else "" end %>">
<a href="<%= identity_path(@conn, :list) %>"><i class="fa fa-fw fa-users"></i> Everyone<i class="fa fa-fw fa-caret-down"></i></a>
diff --git a/shardweb/lib/templates/page/shard_entry.html.eex b/shardweb/lib/templates/page/shard_entry.html.eex
index 8a55b3a..d99fc34 100644
--- a/shardweb/lib/templates/page/shard_entry.html.eex
+++ b/shardweb/lib/templates/page/shard_entry.html.eex
@@ -18,9 +18,7 @@
<% %SApp.Directory.Manifest{owner: owner, public: public, name: name} -> %><i class="fa fa-folder"></i>
<%= SApp.Identity.get_nick(owner) %>
- <a href="<%= identity_path(@conn, :view, owner|>Base.encode16) %>">
- <small><%= Shard.Keys.pk_display owner %></small>
- </a>
+ <small><%= Shard.Keys.pk_display owner %></small>
/
<a href="<%= directory_path(@conn, (if public do :view_pub else :view_priv end), owner|>Base.encode16(), name) %>"><%= name %></a>
<%= if public do %><i class="fa fa-globe"></i><% else %><i class="fa fa-lock"></i><% end %>
diff --git a/shardweb/lib/templates/page/shard_list.html.eex b/shardweb/lib/templates/page/shard_list.html.eex
index 53f6264..dd846d8 100644
--- a/shardweb/lib/templates/page/shard_list.html.eex
+++ b/shardweb/lib/templates/page/shard_list.html.eex
@@ -35,7 +35,7 @@
<% end %>
</td>
<td>
- <%= render "shard_entry.html", conn: @conn, manifest: manifest %>
+ <%= render "shard_entry.html", conn: @conn, manifest: manifest, pk: @pk %>
</td>
<td><small><%= id |> Base.encode16 %></small></td>
</tr>
diff --git a/shardweb/lib/views/identity_view.ex b/shardweb/lib/views/identity_view.ex
index 86423b2..1844ce8 100644
--- a/shardweb/lib/views/identity_view.ex
+++ b/shardweb/lib/views/identity_view.ex
@@ -18,9 +18,4 @@ defmodule ShardWeb.IdentityView do
end
end)
end
-
- def is_friend(conn, pk) do
- fd = SApp.Directory.friends_dir(conn.assigns.pk)
- SApp.Directory.find(fd, %SApp.Identity.Manifest{pk: pk}) != nil
- end
end