This commit is contained in:
		
							
								
								
									
										17
									
								
								lib/memex_web/controllers/export_controller.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/memex_web/controllers/export_controller.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| defmodule MemexWeb.ExportController do | ||||
|   use MemexWeb, :controller | ||||
|   alias Memex.{Contexts, Notes, Pipelines, Pipelines.Steps} | ||||
|  | ||||
|   def export(%{assigns: %{current_user: current_user}} = conn, %{"mode" => "json"}) do | ||||
|     pipelines = | ||||
|       Pipelines.list_pipelines(current_user) | ||||
|       |> Enum.map(fn pipeline -> Steps.preload_steps(pipeline, current_user) end) | ||||
|  | ||||
|     json(conn, %{ | ||||
|       user: current_user, | ||||
|       notes: Notes.list_notes(current_user), | ||||
|       contexts: Contexts.list_contexts(current_user), | ||||
|       pipelines: pipelines | ||||
|     }) | ||||
|   end | ||||
| end | ||||
| @@ -76,6 +76,7 @@ defmodule MemexWeb.Router do | ||||
|       put "/users/settings", UserSettingsController, :update | ||||
|       delete "/users/settings/:id", UserSettingsController, :delete | ||||
|       get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email | ||||
|       get "/export/:mode", ExportController, :export | ||||
|     end | ||||
|  | ||||
|     scope "/", MemexWeb do | ||||
|   | ||||
| @@ -136,12 +136,22 @@ | ||||
|  | ||||
|   <hr class="hr" /> | ||||
|  | ||||
|   <.link | ||||
|     href={Routes.user_settings_path(@conn, :delete, @current_user)} | ||||
|     method={:delete} | ||||
|     class="btn btn-alert" | ||||
|     data-confirm={dgettext("prompts", "are you sure you want to delete your account?")} | ||||
|   > | ||||
|     <%= dgettext("actions", "delete user") %> | ||||
|   </.link> | ||||
|   <div class="flex justify-center items-center"> | ||||
|     <.link | ||||
|       href={Routes.export_path(@conn, :export, :json)} | ||||
|       class="mx-4 my-2 btn btn-primary" | ||||
|       target="_blank" | ||||
|     > | ||||
|       <%= dgettext("actions", "export data as json") %> | ||||
|     </.link> | ||||
|  | ||||
|     <.link | ||||
|       href={Routes.user_settings_path(@conn, :delete, @current_user)} | ||||
|       method={:delete} | ||||
|       class="mx-4 my-2 btn btn-alert" | ||||
|       data-confirm={dgettext("prompts", "are you sure you want to delete your account?")} | ||||
|     > | ||||
|       <%= dgettext("actions", "delete user") %> | ||||
|     </.link> | ||||
|   </div> | ||||
| </div> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user