rename to memex
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| kind: pipeline | kind: pipeline | ||||||
| type: docker | type: docker | ||||||
| name: lokal | name: memex | ||||||
|  |  | ||||||
| steps: | steps: | ||||||
| - name: restore-cache | - name: restore-cache | ||||||
| @@ -18,7 +18,7 @@ steps: | |||||||
| - name: test | - name: test | ||||||
|   image: bitwalker/alpine-elixir-phoenix:1.13 |   image: bitwalker/alpine-elixir-phoenix:1.13 | ||||||
|   environment: |   environment: | ||||||
|     TEST_DATABASE_URL: ecto://postgres:postgres@database/lokal_test |     TEST_DATABASE_URL: ecto://postgres:postgres@database/memex_test | ||||||
|     HOST: testing.example.tld |     HOST: testing.example.tld | ||||||
|   commands: |   commands: | ||||||
|   - mix local.rebar --force |   - mix local.rebar --force | ||||||
| @@ -30,7 +30,7 @@ steps: | |||||||
| - name: build and publish stable | - name: build and publish stable | ||||||
|   image: plugins/docker |   image: plugins/docker | ||||||
|   settings: |   settings: | ||||||
|     repo: shibaobun/lokal |     repo: shibaobun/memex | ||||||
|     username: |     username: | ||||||
|       from_secret: docker_username |       from_secret: docker_username | ||||||
|     password: |     password: | ||||||
| @@ -43,7 +43,7 @@ steps: | |||||||
| - name: build and publish tagged version | - name: build and publish tagged version | ||||||
|   image: plugins/docker |   image: plugins/docker | ||||||
|   settings: |   settings: | ||||||
|     repo: shibaobun/lokal |     repo: shibaobun/memex | ||||||
|     username: |     username: | ||||||
|       from_secret: docker_username |       from_secret: docker_username | ||||||
|     password: |     password: | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ erl_crash.dump | |||||||
| *.ez | *.ez | ||||||
|  |  | ||||||
| # Ignore package tarball (built via "mix hex.build"). | # Ignore package tarball (built via "mix hex.build"). | ||||||
| lokal-*.tar | memex-*.tar | ||||||
|  |  | ||||||
| # If NPM crashes, it generates a log, let's ignore it too. | # If NPM crashes, it generates a log, let's ignore it too. | ||||||
| npm-debug.log | npm-debug.log | ||||||
|   | |||||||
| @@ -45,10 +45,10 @@ RUN chown nobody:nobody /app | |||||||
|  |  | ||||||
| USER nobody:nobody | USER nobody:nobody | ||||||
|  |  | ||||||
| COPY --from=build --chown=nobody:nobody /app/_build/prod/rel/lokal ./ | COPY --from=build --chown=nobody:nobody /app/_build/prod/rel/memex ./ | ||||||
| COPY --from=build --chown=nobody:nobody /app/priv /app/priv | COPY --from=build --chown=nobody:nobody /app/priv /app/priv | ||||||
| RUN chmod +x /app/priv/random.sh | RUN chmod +x /app/priv/random.sh | ||||||
|  |  | ||||||
| ENV HOME=/app | ENV HOME=/app | ||||||
|  |  | ||||||
| CMD ["bin/lokal", "start"] | CMD ["bin/memex", "start"] | ||||||
|   | |||||||
| @@ -58,7 +58,7 @@ liveSocket.connect() | |||||||
| window.liveSocket = liveSocket | window.liveSocket = liveSocket | ||||||
|  |  | ||||||
| // Copy to clipboard | // Copy to clipboard | ||||||
| window.addEventListener('lokal:clipcopy', (event) => { | window.addEventListener('memex:clipcopy', (event) => { | ||||||
|   if ('clipboard' in navigator) { |   if ('clipboard' in navigator) { | ||||||
|     const text = event.target.textContent |     const text = event.target.textContent | ||||||
|     navigator.clipboard.writeText(text) |     navigator.clipboard.writeText(text) | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ module.exports = { | |||||||
|     colors: { |     colors: { | ||||||
|       transparent: 'transparent', |       transparent: 'transparent', | ||||||
|       current: 'currentColor', |       current: 'currentColor', | ||||||
|       primary: colors.indigo, |       primary: colors.black, | ||||||
|       black: colors.black, |       black: colors.black, | ||||||
|       white: colors.white, |       white: colors.white, | ||||||
|       gray: colors.neutral, |       gray: colors.neutral, | ||||||
|   | |||||||
| @@ -7,23 +7,23 @@ | |||||||
| # General application configuration | # General application configuration | ||||||
| import Config | import Config | ||||||
|  |  | ||||||
| config :lokal, | config :memex, | ||||||
|   ecto_repos: [Lokal.Repo], |   ecto_repos: [Memex.Repo], | ||||||
|   generators: [binary_id: true] |   generators: [binary_id: true] | ||||||
|  |  | ||||||
| # Configures the endpoint | # Configures the endpoint | ||||||
| config :lokal, LokalWeb.Endpoint, | config :memex, MemexWeb.Endpoint, | ||||||
|   url: [scheme: "https", host: System.get_env("HOST") || "localhost", port: "443"], |   url: [scheme: "https", host: System.get_env("HOST") || "localhost", port: "443"], | ||||||
|   http: [port: String.to_integer(System.get_env("PORT") || "4000")], |   http: [port: String.to_integer(System.get_env("PORT") || "4000")], | ||||||
|   secret_key_base: "KH59P0iZixX5gP/u+zkxxG8vAAj6vgt0YqnwEB5JP5K+E567SsqkCz69uWShjE7I", |   secret_key_base: "KH59P0iZixX5gP/u+zkxxG8vAAj6vgt0YqnwEB5JP5K+E567SsqkCz69uWShjE7I", | ||||||
|   render_errors: [view: LokalWeb.ErrorView, accepts: ~w(html json), layout: false], |   render_errors: [view: MemexWeb.ErrorView, accepts: ~w(html json), layout: false], | ||||||
|   pubsub_server: Lokal.PubSub, |   pubsub_server: Memex.PubSub, | ||||||
|   live_view: [signing_salt: "zOLgd3lr"], |   live_view: [signing_salt: "zOLgd3lr"], | ||||||
|   registration: System.get_env("REGISTRATION") || "invite" |   registration: System.get_env("REGISTRATION") || "invite" | ||||||
|  |  | ||||||
| config :lokal, Lokal.Application, automigrate: false | config :memex, Memex.Application, automigrate: false | ||||||
|  |  | ||||||
| config :lokal, :generators, | config :memex, :generators, | ||||||
|   migration: true, |   migration: true, | ||||||
|   binary_id: true, |   binary_id: true, | ||||||
|   sample_binary_id: "11111111-1111-1111-1111-111111111111" |   sample_binary_id: "11111111-1111-1111-1111-111111111111" | ||||||
| @@ -35,7 +35,7 @@ config :lokal, :generators, | |||||||
| # | # | ||||||
| # For production it's recommended to configure a different adapter | # For production it's recommended to configure a different adapter | ||||||
| # at the `config/runtime.exs`. | # at the `config/runtime.exs`. | ||||||
| config :lokal, Lokal.Mailer, adapter: Swoosh.Adapters.Local | config :memex, Memex.Mailer, adapter: Swoosh.Adapters.Local | ||||||
|  |  | ||||||
| # Swoosh API client is needed for adapters other than SMTP. | # Swoosh API client is needed for adapters other than SMTP. | ||||||
| config :swoosh, :api_client, false | config :swoosh, :api_client, false | ||||||
| @@ -44,8 +44,8 @@ config :swoosh, :api_client, false | |||||||
| config :gettext, :default_locale, "en_US" | config :gettext, :default_locale, "en_US" | ||||||
|  |  | ||||||
| # Configure Oban | # Configure Oban | ||||||
| config :lokal, Oban, | config :memex, Oban, | ||||||
|   repo: Lokal.Repo, |   repo: Memex.Repo, | ||||||
|   plugins: [Oban.Plugins.Pruner], |   plugins: [Oban.Plugins.Pruner], | ||||||
|   queues: [default: 10, mailers: 20] |   queues: [default: 10, mailers: 20] | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| import Config | import Config | ||||||
|  |  | ||||||
| # Configure your database | # Configure your database | ||||||
| config :lokal, Lokal.Repo, | config :memex, Memex.Repo, | ||||||
|   show_sensitive_data_on_connection_error: true, |   show_sensitive_data_on_connection_error: true, | ||||||
|   pool_size: 10 |   pool_size: 10 | ||||||
|  |  | ||||||
| @@ -11,7 +11,7 @@ config :lokal, Lokal.Repo, | |||||||
| # The watchers configuration can be used to run external | # The watchers configuration can be used to run external | ||||||
| # watchers to your application. For example, we use it | # watchers to your application. For example, we use it | ||||||
| # with esbuild to bundle .js and .css sources. | # with esbuild to bundle .js and .css sources. | ||||||
| config :lokal, LokalWeb.Endpoint, | config :memex, MemexWeb.Endpoint, | ||||||
|   check_origin: false, |   check_origin: false, | ||||||
|   code_reloader: true, |   code_reloader: true, | ||||||
|   debug_errors: true, |   debug_errors: true, | ||||||
| @@ -54,13 +54,13 @@ config :lokal, LokalWeb.Endpoint, | |||||||
| # different ports. | # different ports. | ||||||
|  |  | ||||||
| # Watch static and templates for browser reloading. | # Watch static and templates for browser reloading. | ||||||
| config :lokal, LokalWeb.Endpoint, | config :memex, MemexWeb.Endpoint, | ||||||
|   live_reload: [ |   live_reload: [ | ||||||
|     patterns: [ |     patterns: [ | ||||||
|       ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", |       ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", | ||||||
|       ~r"priv/gettext/.*(po)$", |       ~r"priv/gettext/.*(po)$", | ||||||
|       ~r"lib/lokal_web/(live|views)/.*(ex)$", |       ~r"lib/memex_web/(live|views)/.*(ex)$", | ||||||
|       ~r"lib/lokal_web/templates/.*(eex)$" |       ~r"lib/memex_web/templates/.*(eex)$" | ||||||
|     ] |     ] | ||||||
|   ] |   ] | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ import Config | |||||||
| # manifest is generated by the `mix phx.digest` task, | # manifest is generated by the `mix phx.digest` task, | ||||||
| # which you should run after static files are built and | # which you should run after static files are built and | ||||||
| # before starting your production server. | # before starting your production server. | ||||||
| config :lokal, LokalWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json" | config :memex, MemexWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json" | ||||||
|  |  | ||||||
| # Do not print debug messages in production | # Do not print debug messages in production | ||||||
| config :logger, level: :info | config :logger, level: :info | ||||||
| @@ -19,7 +19,7 @@ config :logger, level: :info | |||||||
| # To get SSL working, you will need to add the `https` key | # To get SSL working, you will need to add the `https` key | ||||||
| # to the previous section and set your `:url` port to 443: | # to the previous section and set your `:url` port to 443: | ||||||
| # | # | ||||||
| #     config :lokal, LokalWeb.Endpoint, | #     config :memex, MemexWeb.Endpoint, | ||||||
| #       ..., | #       ..., | ||||||
| #       url: [host: "example.com", port: 443], | #       url: [host: "example.com", port: 443], | ||||||
| #       https: [ | #       https: [ | ||||||
| @@ -43,7 +43,7 @@ config :logger, level: :info | |||||||
| # We also recommend setting `force_ssl` in your endpoint, ensuring | # We also recommend setting `force_ssl` in your endpoint, ensuring | ||||||
| # no data is ever sent via http, always redirecting to https: | # no data is ever sent via http, always redirecting to https: | ||||||
| # | # | ||||||
| #     config :lokal, LokalWeb.Endpoint, | #     config :memex, MemexWeb.Endpoint, | ||||||
| #       force_ssl: [hsts: true] | #       force_ssl: [hsts: true] | ||||||
| # | # | ||||||
| # Check `Plug.SSL` for all available options in `force_ssl`. | # Check `Plug.SSL` for all available options in `force_ssl`. | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ import Config | |||||||
|  |  | ||||||
| # Start the phoenix server if environment is set and running in a release | # Start the phoenix server if environment is set and running in a release | ||||||
| if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do | if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do | ||||||
|   config :lokal, LokalWeb.Endpoint, server: true |   config :memex, MemexWeb.Endpoint, server: true | ||||||
| end | end | ||||||
|  |  | ||||||
| # Set default locale | # Set default locale | ||||||
| @@ -20,28 +20,28 @@ maybe_ipv6 = if System.get_env("ECTO_IPV6") == "true", do: [:inet6], else: [] | |||||||
| database_url = | database_url = | ||||||
|   if config_env() == :test do |   if config_env() == :test do | ||||||
|     System.get_env("TEST_DATABASE_URL") || |     System.get_env("TEST_DATABASE_URL") || | ||||||
|       "ecto://postgres:postgres@localhost/lokal_test#{System.get_env("MIX_TEST_PARTITION")}" |       "ecto://postgres:postgres@localhost/memex_test#{System.get_env("MIX_TEST_PARTITION")}" | ||||||
|   else |   else | ||||||
|     System.get_env("DATABASE_URL") || |     System.get_env("DATABASE_URL") || | ||||||
|       "ecto://postgres:postgres@lokal-db/lokal" |       "ecto://postgres:postgres@memex-db/memex" | ||||||
|   end |   end | ||||||
|  |  | ||||||
| host = | host = | ||||||
|   System.get_env("HOST") || |   System.get_env("HOST") || | ||||||
|     raise "No hostname set! Must be the domain and tld like `lokal.bubbletea.dev`." |     raise "No hostname set! Must be the domain and tld like `memex.bubbletea.dev`." | ||||||
|  |  | ||||||
| interface = | interface = | ||||||
|   if config_env() in [:dev, :test], |   if config_env() in [:dev, :test], | ||||||
|     do: {0, 0, 0, 0}, |     do: {0, 0, 0, 0}, | ||||||
|     else: {0, 0, 0, 0, 0, 0, 0, 0} |     else: {0, 0, 0, 0, 0, 0, 0, 0} | ||||||
|  |  | ||||||
| config :lokal, Lokal.Repo, | config :memex, Memex.Repo, | ||||||
|   # ssl: true, |   # ssl: true, | ||||||
|   url: database_url, |   url: database_url, | ||||||
|   pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), |   pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), | ||||||
|   socket_options: maybe_ipv6 |   socket_options: maybe_ipv6 | ||||||
|  |  | ||||||
| config :lokal, LokalWeb.Endpoint, | config :memex, MemexWeb.Endpoint, | ||||||
|   url: [scheme: "https", host: host, port: 443], |   url: [scheme: "https", host: host, port: 443], | ||||||
|   http: [ |   http: [ | ||||||
|     # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html |     # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html | ||||||
| @@ -65,13 +65,13 @@ if config_env() == :prod do | |||||||
|       You can generate one by calling: mix phx.gen.secret |       You can generate one by calling: mix phx.gen.secret | ||||||
|       """ |       """ | ||||||
|  |  | ||||||
|   config :lokal, LokalWeb.Endpoint, secret_key_base: secret_key_base |   config :memex, MemexWeb.Endpoint, secret_key_base: secret_key_base | ||||||
|  |  | ||||||
|   # Automatically apply migrations |   # Automatically apply migrations | ||||||
|   config :lokal, Lokal.Application, automigrate: true |   config :memex, Memex.Application, automigrate: true | ||||||
|  |  | ||||||
|   # Set up SMTP settings |   # Set up SMTP settings | ||||||
|   config :lokal, Lokal.Mailer, |   config :memex, Memex.Mailer, | ||||||
|     adapter: Swoosh.Adapters.SMTP, |     adapter: Swoosh.Adapters.SMTP, | ||||||
|     relay: System.get_env("SMTP_HOST") || raise("No SMTP_HOST set!"), |     relay: System.get_env("SMTP_HOST") || raise("No SMTP_HOST set!"), | ||||||
|     port: System.get_env("SMTP_PORT") || 587, |     port: System.get_env("SMTP_PORT") || 587, | ||||||
| @@ -79,14 +79,14 @@ if config_env() == :prod do | |||||||
|     password: System.get_env("SMTP_PASSWORD") || raise("No SMTP_PASSWORD set!"), |     password: System.get_env("SMTP_PASSWORD") || raise("No SMTP_PASSWORD set!"), | ||||||
|     ssl: System.get_env("SMTP_SSL") == "true", |     ssl: System.get_env("SMTP_SSL") == "true", | ||||||
|     email_from: System.get_env("EMAIL_FROM") || "no-reply@#{System.get_env("HOST")}", |     email_from: System.get_env("EMAIL_FROM") || "no-reply@#{System.get_env("HOST")}", | ||||||
|     email_name: System.get_env("EMAIL_NAME") || "Lokal" |     email_name: System.get_env("EMAIL_NAME") || "Memex" | ||||||
|  |  | ||||||
|   # ## Using releases |   # ## Using releases | ||||||
|   # |   # | ||||||
|   # If you are doing OTP releases, you need to instruct Phoenix |   # If you are doing OTP releases, you need to instruct Phoenix | ||||||
|   # to start each relevant endpoint: |   # to start each relevant endpoint: | ||||||
|   # |   # | ||||||
|   #     config :lokal, LokalWeb.Endpoint, server: true |   #     config :memex, MemexWeb.Endpoint, server: true | ||||||
|   # |   # | ||||||
|   # Then you can assemble a release by calling `mix release`. |   # Then you can assemble a release by calling `mix release`. | ||||||
|   # See `mix help release` for more information. |   # See `mix help release` for more information. | ||||||
|   | |||||||
| @@ -8,19 +8,19 @@ config :bcrypt_elixir, :log_rounds, 1 | |||||||
| # The MIX_TEST_PARTITION environment variable can be used | # The MIX_TEST_PARTITION environment variable can be used | ||||||
| # to provide built-in test partitioning in CI environment. | # to provide built-in test partitioning in CI environment. | ||||||
| # Run `mix help test` for more information. | # Run `mix help test` for more information. | ||||||
| config :lokal, Lokal.Repo, | config :memex, Memex.Repo, | ||||||
|   pool: Ecto.Adapters.SQL.Sandbox, |   pool: Ecto.Adapters.SQL.Sandbox, | ||||||
|   pool_size: 10 |   pool_size: 10 | ||||||
|  |  | ||||||
| # We don't run a server during test. If one is required, | # We don't run a server during test. If one is required, | ||||||
| # you can enable the server option below. | # you can enable the server option below. | ||||||
| config :lokal, LokalWeb.Endpoint, | config :memex, MemexWeb.Endpoint, | ||||||
|   http: [ip: {0, 0, 0, 0}, port: 4002], |   http: [ip: {0, 0, 0, 0}, port: 4002], | ||||||
|   secret_key_base: "S3qq9QtUdsFtlYej+HTjAVN95uP5i5tf2sPYINWSQfCKJghFj2B1+wTAoljZyHOK", |   secret_key_base: "S3qq9QtUdsFtlYej+HTjAVN95uP5i5tf2sPYINWSQfCKJghFj2B1+wTAoljZyHOK", | ||||||
|   server: false |   server: false | ||||||
|  |  | ||||||
| # In test we don't send emails. | # In test we don't send emails. | ||||||
| config :lokal, Lokal.Mailer, adapter: Swoosh.Adapters.Test | config :memex, Memex.Mailer, adapter: Swoosh.Adapters.Test | ||||||
|  |  | ||||||
| # Print only warnings and errors during test | # Print only warnings and errors during test | ||||||
| config :logger, level: :warn | config :logger, level: :warn | ||||||
| @@ -29,4 +29,4 @@ config :logger, level: :warn | |||||||
| config :phoenix, :plug_init_mode, :runtime | config :phoenix, :plug_init_mode, :runtime | ||||||
|  |  | ||||||
| # Disable Oban | # Disable Oban | ||||||
| config :lokal, Oban, queues: false, plugins: false | config :memex, Oban, queues: false, plugins: false | ||||||
|   | |||||||
| @@ -77,21 +77,21 @@ Check them out! | |||||||
| For development, I recommend setting environment variables with | For development, I recommend setting environment variables with | ||||||
| [direnv](https://direnv.net). | [direnv](https://direnv.net). | ||||||
|  |  | ||||||
| By default, Lokal will always bind to all external IPv4 and IPv6 addresses in | By default, Memex will always bind to all external IPv4 and IPv6 addresses in | ||||||
| `dev` and `prod` mode, respectively. If you would like to use different values, | `dev` and `prod` mode, respectively. If you would like to use different values, | ||||||
| they will need to be overridden in `config/dev.exs` and `config/runtime.exs` for | they will need to be overridden in `config/dev.exs` and `config/runtime.exs` for | ||||||
| `dev` and `prod` modes, respectively. | `dev` and `prod` modes, respectively. | ||||||
|  |  | ||||||
| ## `MIX_ENV=dev` | ## `MIX_ENV=dev` | ||||||
|  |  | ||||||
| In `dev` mode, Lokal will listen for these environment variables at runtime. | In `dev` mode, Memex will listen for these environment variables at runtime. | ||||||
|  |  | ||||||
| - `HOST`: External url to generate links with. Set this especially if you're | - `HOST`: External url to generate links with. Set this especially if you're | ||||||
|   behind a reverse proxy. Defaults to `localhost`. External URLs will always be |   behind a reverse proxy. Defaults to `localhost`. External URLs will always be | ||||||
|   generated with `https://` and port `443`. |   generated with `https://` and port `443`. | ||||||
| - `PORT`: Internal port to bind to. Defaults to `4000`. | - `PORT`: Internal port to bind to. Defaults to `4000`. | ||||||
| - `DATABASE_URL`: Controls the database url to connect to. Defaults to | - `DATABASE_URL`: Controls the database url to connect to. Defaults to | ||||||
|   `ecto://postgres:postgres@localhost/lokal_dev`. |   `ecto://postgres:postgres@localhost/memex_dev`. | ||||||
| - `ECTO_IPV6`: Controls if Ecto should use IPv6 to connect to PostgreSQL. | - `ECTO_IPV6`: Controls if Ecto should use IPv6 to connect to PostgreSQL. | ||||||
|   Defaults to `false`. |   Defaults to `false`. | ||||||
| - `POOL_SIZE`: Controls the pool size to use with PostgreSQL. Defaults to `10`. | - `POOL_SIZE`: Controls the pool size to use with PostgreSQL. Defaults to `10`. | ||||||
| @@ -100,20 +100,20 @@ In `dev` mode, Lokal will listen for these environment variables at runtime. | |||||||
|  |  | ||||||
| ## `MIX_ENV=test` | ## `MIX_ENV=test` | ||||||
|  |  | ||||||
| In `test` mode (or in the Docker container), Lokal will listen for the same environment variables as dev mode, but also include the following at runtime: | In `test` mode (or in the Docker container), Memex will listen for the same environment variables as dev mode, but also include the following at runtime: | ||||||
|  |  | ||||||
| - `TEST_DATABASE_URL`: REPLACES `DATABASE_URL`. Controls the database url to | - `TEST_DATABASE_URL`: REPLACES `DATABASE_URL`. Controls the database url to | ||||||
|   connect to. Defaults to `ecto://postgres:postgres@localhost/lokal_test`. |   connect to. Defaults to `ecto://postgres:postgres@localhost/memex_test`. | ||||||
| - `MIX_TEST_PARTITION`: Only used if `TEST_DATABASE_URL` is not specified. | - `MIX_TEST_PARTITION`: Only used if `TEST_DATABASE_URL` is not specified. | ||||||
|   Appended to the default database url if you would like to partition your test |   Appended to the default database url if you would like to partition your test | ||||||
|   databases. Defaults to not set. |   databases. Defaults to not set. | ||||||
|  |  | ||||||
| ## `MIX_ENV=prod` | ## `MIX_ENV=prod` | ||||||
|  |  | ||||||
| In `prod` mode (or in the Docker container), Lokal will listen for the same environment variables as dev mode, but also include the following at runtime: | In `prod` mode (or in the Docker container), Memex will listen for the same environment variables as dev mode, but also include the following at runtime: | ||||||
|  |  | ||||||
| - `SECRET_KEY_BASE`: Secret key base used to sign cookies. Must be generated | - `SECRET_KEY_BASE`: Secret key base used to sign cookies. Must be generated | ||||||
|   with `docker run -it shibaobun/lokal mix phx.gen.secret` and set for server to start. |   with `docker run -it shibaobun/memex mix phx.gen.secret` and set for server to start. | ||||||
| - `SMTP_HOST`: The url for your SMTP email provider. Must be set | - `SMTP_HOST`: The url for your SMTP email provider. Must be set | ||||||
| - `SMTP_PORT`: The port for your SMTP relay. Defaults to `587`. | - `SMTP_PORT`: The port for your SMTP relay. Defaults to `587`. | ||||||
| - `SMTP_USERNAME`: The username for your SMTP relay. Must be set! | - `SMTP_USERNAME`: The username for your SMTP relay. Must be set! | ||||||
| @@ -121,4 +121,4 @@ In `prod` mode (or in the Docker container), Lokal will listen for the same envi | |||||||
| - `SMTP_SSL`: Set to `true` to enable SSL for emails. Defaults to `false`. | - `SMTP_SSL`: Set to `true` to enable SSL for emails. Defaults to `false`. | ||||||
| - `EMAIL_FROM`: Sets the sender email in sent emails. Defaults to | - `EMAIL_FROM`: Sets the sender email in sent emails. Defaults to | ||||||
|   `no-reply@HOST` where `HOST` was previously defined. |   `no-reply@HOST` where `HOST` was previously defined. | ||||||
| - `EMAIL_NAME`: Sets the sender name in sent emails. Defaults to "Lokal". | - `EMAIL_NAME`: Sets the sender name in sent emails. Defaults to "Memex". | ||||||
|   | |||||||
| @@ -1,16 +1,16 @@ | |||||||
| version: '3' | version: '3' | ||||||
|  |  | ||||||
| services: | services: | ||||||
|   lokal: |   memex: | ||||||
|     build: |     build: | ||||||
|       context: . |       context: . | ||||||
|     container_name: lokal |     container_name: memex | ||||||
|     restart: always |     restart: always | ||||||
|     environment: |     environment: | ||||||
|       # HOST must be set! |       # HOST must be set! | ||||||
|       # - HOST=your.domain.com |       # - HOST=your.domain.com | ||||||
|       - DATABASE_URL=ecto://postgres:postgres@lokal-db/lokal |       - DATABASE_URL=ecto://postgres:postgres@memex-db/memex | ||||||
|       # Use `docker run -it shibaobun/lokal /app/priv/random.sh` to generate a secret key base |       # Use `docker run -it shibaobun/memex /app/priv/random.sh` to generate a secret key base | ||||||
|       # - SECRET_KEY_BASE=change-me-this-is-really-important-seriously-change-it |       # - SECRET_KEY_BASE=change-me-this-is-really-important-seriously-change-it | ||||||
|       # uncomment to enable public sign ups, not recommended |       # uncomment to enable public sign ups, not recommended | ||||||
|       # - REGISTRATION=public |       # - REGISTRATION=public | ||||||
| @@ -24,21 +24,21 @@ services: | |||||||
|       # optional, default is false |       # optional, default is false | ||||||
|       # - SMTP_SSL=false |       # - SMTP_SSL=false | ||||||
|       # optional, default is format below |       # optional, default is format below | ||||||
|       # - EMAIL_FROM=no-reply@lokal.example.tld |       # - EMAIL_FROM=no-reply@memex.example.tld | ||||||
|       # optional, default is "Lokal" |       # optional, default is "Memex" | ||||||
|       # - EMAIL_NAME=Lokal |       # - EMAIL_NAME=Memex | ||||||
|     expose: |     expose: | ||||||
|       - "4000" |       - "4000" | ||||||
|     depends_on: |     depends_on: | ||||||
|       - lokal-db |       - memex-db | ||||||
|  |  | ||||||
|   lokal-db: |   memex-db: | ||||||
|     image: postgres:13 |     image: postgres:13 | ||||||
|     container_name: lokal-db |     container_name: memex-db | ||||||
|     environment: |     environment: | ||||||
|       - POSTGRES_USER="postgres" |       - POSTGRES_USER="postgres" | ||||||
|       - POSTGRES_PASSWORD="postgres" |       - POSTGRES_PASSWORD="postgres" | ||||||
|       - POSTGRES_DB="lokal" |       - POSTGRES_DB="memex" | ||||||
|     restart: always |     restart: always | ||||||
|     volumes: |     volumes: | ||||||
|       - ./data:/var/lib/postgresql/data |       - ./data:/var/lib/postgresql/data | ||||||
|   | |||||||
| @@ -1,8 +0,0 @@ | |||||||
| defmodule LokalWeb.EmailView do |  | ||||||
|   @moduledoc """ |  | ||||||
|   A view for email-related helper functions |  | ||||||
|   """ |  | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |  | ||||||
|  |  | ||||||
|   use LokalWeb, :view |  | ||||||
| end |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| defmodule LokalWeb.PageView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
| end |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| defmodule LokalWeb.UserConfirmationView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
|   alias Lokal.Accounts |  | ||||||
| end |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| defmodule LokalWeb.UserRegistrationView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
| end |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| defmodule LokalWeb.UserResetPasswordView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
|   alias Lokal.Accounts |  | ||||||
| end |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| defmodule LokalWeb.UserSessionView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
|   alias Lokal.Accounts |  | ||||||
| end |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| defmodule LokalWeb.UserSettingsView do |  | ||||||
|   use LokalWeb, :view |  | ||||||
| end |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| defmodule Lokal do | defmodule Memex do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Lokal keeps the contexts that define your domain |   Memex keeps the contexts that define your domain | ||||||
|   and business logic. |   and business logic. | ||||||
| 
 | 
 | ||||||
|   Contexts are also responsible for managing your data, regardless |   Contexts are also responsible for managing your data, regardless | ||||||
| @@ -1,11 +1,11 @@ | |||||||
| defmodule Lokal.Accounts do | defmodule Memex.Accounts do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   The Accounts context. |   The Accounts context. | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   import Ecto.Query, warn: false |   import Ecto.Query, warn: false | ||||||
|   alias Lokal.{Mailer, Repo} |   alias Memex.{Mailer, Repo} | ||||||
|   alias Lokal.Accounts.{User, UserToken} |   alias Memex.Accounts.{User, UserToken} | ||||||
|   alias Ecto.{Changeset, Multi} |   alias Ecto.{Changeset, Multi} | ||||||
|   alias Oban.Job |   alias Oban.Job | ||||||
| 
 | 
 | ||||||
| @@ -349,7 +349,7 @@ defmodule Lokal.Accounts do | |||||||
|   """ |   """ | ||||||
|   @spec allow_registration?() :: boolean() |   @spec allow_registration?() :: boolean() | ||||||
|   def allow_registration? do |   def allow_registration? do | ||||||
|     Application.get_env(:lokal, LokalWeb.Endpoint)[:registration] == "public" or |     Application.get_env(:memex, MemexWeb.Endpoint)[:registration] == "public" or | ||||||
|       list_users_by_role(:admin) |> Enum.empty?() |       list_users_by_role(:admin) |> Enum.empty?() | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -1,16 +1,16 @@ | |||||||
| defmodule Lokal.Email do | defmodule Memex.Email do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Emails that can be sent using Swoosh. |   Emails that can be sent using Swoosh. | ||||||
| 
 | 
 | ||||||
|   You can find the base email templates at |   You can find the base email templates at | ||||||
|   `lib/Lokal_web/templates/layout/email.html.heex` for html emails and |   `lib/memex_web/templates/layout/email.html.heex` for html emails and | ||||||
|   `lib/Lokal_web/templates/layout/email.txt.heex` for text emails. |   `lib/memex_web/templates/layout/email.txt.heex` for text emails. | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use Phoenix.Swoosh, view: LokalWeb.EmailView, layout: {LokalWeb.LayoutView, :email} |   use Phoenix.Swoosh, view: MemexWeb.EmailView, layout: {MemexWeb.LayoutView, :email} | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Lokal.Accounts.User |   alias Memex.Accounts.User | ||||||
|   alias LokalWeb.EmailView |   alias MemexWeb.EmailView | ||||||
| 
 | 
 | ||||||
|   @typedoc """ |   @typedoc """ | ||||||
|   Represents an HTML and text body email that can be sent |   Represents an HTML and text body email that can be sent | ||||||
| @@ -19,29 +19,29 @@ defmodule Lokal.Email do | |||||||
| 
 | 
 | ||||||
|   @spec base_email(User.t(), String.t()) :: t() |   @spec base_email(User.t(), String.t()) :: t() | ||||||
|   defp base_email(%User{email: email}, subject) do |   defp base_email(%User{email: email}, subject) do | ||||||
|     from = Application.get_env(:Lokal, Lokal.Mailer)[:email_from] || "noreply@localhost" |     from = Application.get_env(:Memex, Memex.Mailer)[:email_from] || "noreply@localhost" | ||||||
|     name = Application.get_env(:Lokal, Lokal.Mailer)[:email_name] |     name = Application.get_env(:Memex, Memex.Mailer)[:email_name] | ||||||
|     new() |> to(email) |> from({name, from}) |> subject(subject) |     new() |> to(email) |> from({name, from}) |> subject(subject) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   @spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t() |   @spec generate_email(key :: String.t(), User.t(), attrs :: map()) :: t() | ||||||
|   def generate_email("welcome", user, %{"url" => url}) do |   def generate_email("welcome", user, %{"url" => url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Confirm your Lokal account")) |     |> base_email(dgettext("emails", "Confirm your Memex account")) | ||||||
|     |> render_body("confirm_email.html", %{user: user, url: url}) |     |> render_body("confirm_email.html", %{user: user, url: url}) | ||||||
|     |> text_body(EmailView.render("confirm_email.txt", %{user: user, url: url})) |     |> text_body(EmailView.render("confirm_email.txt", %{user: user, url: url})) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def generate_email("reset_password", user, %{"url" => url}) do |   def generate_email("reset_password", user, %{"url" => url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Reset your Lokal password")) |     |> base_email(dgettext("emails", "Reset your Memex password")) | ||||||
|     |> render_body("reset_password.html", %{user: user, url: url}) |     |> render_body("reset_password.html", %{user: user, url: url}) | ||||||
|     |> text_body(EmailView.render("reset_password.txt", %{user: user, url: url})) |     |> text_body(EmailView.render("reset_password.txt", %{user: user, url: url})) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def generate_email("update_email", user, %{"url" => url}) do |   def generate_email("update_email", user, %{"url" => url}) do | ||||||
|     user |     user | ||||||
|     |> base_email(dgettext("emails", "Update your Lokal email")) |     |> base_email(dgettext("emails", "Update your Memex email")) | ||||||
|     |> render_body("update_email.html", %{user: user, url: url}) |     |> render_body("update_email.html", %{user: user, url: url}) | ||||||
|     |> text_body(EmailView.render("update_email.txt", %{user: user, url: url})) |     |> text_body(EmailView.render("update_email.txt", %{user: user, url: url})) | ||||||
|   end |   end | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| defmodule Lokal.EmailWorker do | defmodule Memex.EmailWorker do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Oban worker that dispatches emails |   Oban worker that dispatches emails | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use Oban.Worker, queue: :mailers, tags: ["email"] |   use Oban.Worker, queue: :mailers, tags: ["email"] | ||||||
|   alias Lokal.{Accounts, Email, Mailer} |   alias Memex.{Accounts, Email, Mailer} | ||||||
| 
 | 
 | ||||||
|   @impl Oban.Worker |   @impl Oban.Worker | ||||||
|   def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do |   def perform(%Oban.Job{args: %{"email" => email, "user_id" => user_id, "attrs" => attrs}}) do | ||||||
| @@ -1,13 +1,13 @@ | |||||||
| defmodule Lokal.Accounts.User do | defmodule Memex.Accounts.User do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   A Lokal user |   A Memex user | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use Ecto.Schema |   use Ecto.Schema | ||||||
|   import Ecto.Changeset |   import Ecto.Changeset | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Ecto.{Changeset, UUID} |   alias Ecto.{Changeset, UUID} | ||||||
|   alias Lokal.{Accounts.User, Invites.Invite} |   alias Memex.{Accounts.User, Invites.Invite} | ||||||
| 
 | 
 | ||||||
|   @derive {Inspect, except: [:password]} |   @derive {Inspect, except: [:password]} | ||||||
|   @primary_key {:id, :binary_id, autogenerate: true} |   @primary_key {:id, :binary_id, autogenerate: true} | ||||||
| @@ -84,7 +84,7 @@ defmodule Lokal.Accounts.User do | |||||||
|       message: dgettext("errors", "must have the @ sign and no spaces") |       message: dgettext("errors", "must have the @ sign and no spaces") | ||||||
|     ) |     ) | ||||||
|     |> validate_length(:email, max: 160) |     |> validate_length(:email, max: 160) | ||||||
|     |> unsafe_validate_unique(:email, Lokal.Repo) |     |> unsafe_validate_unique(:email, Memex.Repo) | ||||||
|     |> unique_constraint(:email) |     |> unique_constraint(:email) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Accounts.UserNotifier do | defmodule Memex.Accounts.UserNotifier do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Contains templates and messages for user messages |   Contains templates and messages for user messages | ||||||
|   """ |   """ | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Accounts.UserToken do | defmodule Memex.Accounts.UserToken do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Schema for a user's session token |   Schema for a user's session token | ||||||
|   """ |   """ | ||||||
| @@ -22,7 +22,7 @@ defmodule Lokal.Accounts.UserToken do | |||||||
|     field :token, :binary |     field :token, :binary | ||||||
|     field :context, :string |     field :context, :string | ||||||
|     field :sent_to, :string |     field :sent_to, :string | ||||||
|     belongs_to :user, Lokal.Accounts.User |     belongs_to :user, Memex.Accounts.User | ||||||
| 
 | 
 | ||||||
|     timestamps(updated_at: false) |     timestamps(updated_at: false) | ||||||
|   end |   end | ||||||
| @@ -34,7 +34,7 @@ defmodule Lokal.Accounts.UserToken do | |||||||
|   """ |   """ | ||||||
|   def build_session_token(user) do |   def build_session_token(user) do | ||||||
|     token = :crypto.strong_rand_bytes(@rand_size) |     token = :crypto.strong_rand_bytes(@rand_size) | ||||||
|     {token, %Lokal.Accounts.UserToken{token: token, context: "session", user_id: user.id}} |     {token, %Memex.Accounts.UserToken{token: token, context: "session", user_id: user.id}} | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   @doc """ |   @doc """ | ||||||
| @@ -69,7 +69,7 @@ defmodule Lokal.Accounts.UserToken do | |||||||
|     hashed_token = :crypto.hash(@hash_algorithm, token) |     hashed_token = :crypto.hash(@hash_algorithm, token) | ||||||
| 
 | 
 | ||||||
|     {Base.url_encode64(token, padding: false), |     {Base.url_encode64(token, padding: false), | ||||||
|      %Lokal.Accounts.UserToken{ |      %Memex.Accounts.UserToken{ | ||||||
|        token: hashed_token, |        token: hashed_token, | ||||||
|        context: context, |        context: context, | ||||||
|        sent_to: sent_to, |        sent_to: sent_to, | ||||||
| @@ -129,17 +129,17 @@ defmodule Lokal.Accounts.UserToken do | |||||||
|   Returns the given token with the given context. |   Returns the given token with the given context. | ||||||
|   """ |   """ | ||||||
|   def token_and_context_query(token, context) do |   def token_and_context_query(token, context) do | ||||||
|     from Lokal.Accounts.UserToken, where: [token: ^token, context: ^context] |     from Memex.Accounts.UserToken, where: [token: ^token, context: ^context] | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   @doc """ |   @doc """ | ||||||
|   Gets all tokens for the given user for the given contexts. |   Gets all tokens for the given user for the given contexts. | ||||||
|   """ |   """ | ||||||
|   def user_and_contexts_query(user, :all) do |   def user_and_contexts_query(user, :all) do | ||||||
|     from t in Lokal.Accounts.UserToken, where: t.user_id == ^user.id |     from t in Memex.Accounts.UserToken, where: t.user_id == ^user.id | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def user_and_contexts_query(user, [_ | _] = contexts) do |   def user_and_contexts_query(user, [_ | _] = contexts) do | ||||||
|     from t in Lokal.Accounts.UserToken, where: t.user_id == ^user.id and t.context in ^contexts |     from t in Memex.Accounts.UserToken, where: t.user_id == ^user.id and t.context in ^contexts | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Application do | defmodule Memex.Application do | ||||||
|   # See https://hexdocs.pm/elixir/Application.html |   # See https://hexdocs.pm/elixir/Application.html | ||||||
|   # for more information on OTP Applications |   # for more information on OTP Applications | ||||||
|   @moduledoc false |   @moduledoc false | ||||||
| @@ -9,28 +9,28 @@ defmodule Lokal.Application do | |||||||
|   def start(_type, _args) do |   def start(_type, _args) do | ||||||
|     children = [ |     children = [ | ||||||
|       # Start the Ecto repository |       # Start the Ecto repository | ||||||
|       Lokal.Repo, |       Memex.Repo, | ||||||
|       # Start the Telemetry supervisor |       # Start the Telemetry supervisor | ||||||
|       LokalWeb.Telemetry, |       MemexWeb.Telemetry, | ||||||
|       # Start the PubSub system |       # Start the PubSub system | ||||||
|       {Phoenix.PubSub, name: Lokal.PubSub}, |       {Phoenix.PubSub, name: Memex.PubSub}, | ||||||
|       # Start the Endpoint (http/https) |       # Start the Endpoint (http/https) | ||||||
|       LokalWeb.Endpoint, |       MemexWeb.Endpoint, | ||||||
|       # Add Oban |       # Add Oban | ||||||
|       {Oban, oban_config()} |       {Oban, oban_config()} | ||||||
|       # Start a worker by calling: Lokal.Worker.start_link(arg) |       # Start a worker by calling: Memex.Worker.start_link(arg) | ||||||
|       # {Lokal.Worker, arg} |       # {Memex.Worker, arg} | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     # Automatically migrate on start in prod |     # Automatically migrate on start in prod | ||||||
|     children = |     children = | ||||||
|       if Application.get_env(:lokal, Lokal.Application, automigrate: false)[:automigrate], |       if Application.get_env(:memex, Memex.Application, automigrate: false)[:automigrate], | ||||||
|         do: children ++ [Lokal.Repo.Migrator], |         do: children ++ [Memex.Repo.Migrator], | ||||||
|         else: children |         else: children | ||||||
| 
 | 
 | ||||||
|     # See https://hexdocs.pm/elixir/Supervisor.html |     # See https://hexdocs.pm/elixir/Supervisor.html | ||||||
|     # for other strategies and supported options |     # for other strategies and supported options | ||||||
|     opts = [strategy: :one_for_one, name: Lokal.Supervisor] |     opts = [strategy: :one_for_one, name: Memex.Supervisor] | ||||||
|     Supervisor.start_link(children, opts) |     Supervisor.start_link(children, opts) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -38,11 +38,11 @@ defmodule Lokal.Application do | |||||||
|   # whenever the application is updated. |   # whenever the application is updated. | ||||||
|   @impl true |   @impl true | ||||||
|   def config_change(changed, _new, removed) do |   def config_change(changed, _new, removed) do | ||||||
|     LokalWeb.Endpoint.config_change(changed, removed) |     MemexWeb.Endpoint.config_change(changed, removed) | ||||||
|     :ok |     :ok | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   defp oban_config do |   defp oban_config do | ||||||
|     Application.fetch_env!(:lokal, Oban) |     Application.fetch_env!(:memex, Oban) | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -1,11 +1,11 @@ | |||||||
| defmodule Lokal.Invites do | defmodule Memex.Invites do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   The Invites context. |   The Invites context. | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   import Ecto.Query, warn: false |   import Ecto.Query, warn: false | ||||||
|   alias Ecto.Changeset |   alias Ecto.Changeset | ||||||
|   alias Lokal.{Accounts.User, Invites.Invite, Repo} |   alias Memex.{Accounts.User, Invites.Invite, Repo} | ||||||
| 
 | 
 | ||||||
|   @invite_token_length 20 |   @invite_token_length 20 | ||||||
| 
 | 
 | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Invites.Invite do | defmodule Memex.Invites.Invite do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   An invite, created by an admin to allow someone to join their instance. An |   An invite, created by an admin to allow someone to join their instance. An | ||||||
|   invite can be enabled or disabled, and can have an optional number of uses if |   invite can be enabled or disabled, and can have an optional number of uses if | ||||||
| @@ -8,7 +8,7 @@ defmodule Lokal.Invites.Invite do | |||||||
|   use Ecto.Schema |   use Ecto.Schema | ||||||
|   import Ecto.Changeset |   import Ecto.Changeset | ||||||
|   alias Ecto.{Changeset, UUID} |   alias Ecto.{Changeset, UUID} | ||||||
|   alias Lokal.{Accounts.User, Invites.Invite} |   alias Memex.{Accounts.User, Invites.Invite} | ||||||
| 
 | 
 | ||||||
|   @primary_key {:id, :binary_id, autogenerate: true} |   @primary_key {:id, :binary_id, autogenerate: true} | ||||||
|   @foreign_key_type :binary_id |   @foreign_key_type :binary_id | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Mailer do | defmodule Memex.Mailer do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Mailer adapter for emails |   Mailer adapter for emails | ||||||
| 
 | 
 | ||||||
| @@ -6,8 +6,8 @@ defmodule Lokal.Mailer do | |||||||
|   json with Jason, which restricts the use of structs. |   json with Jason, which restricts the use of structs. | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use Swoosh.Mailer, otp_app: :lokal |   use Swoosh.Mailer, otp_app: :memex | ||||||
|   alias Lokal.{Accounts.User, EmailWorker} |   alias Memex.{Accounts.User, EmailWorker} | ||||||
|   alias Oban.Job |   alias Oban.Job | ||||||
| 
 | 
 | ||||||
|   @doc """ |   @doc """ | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule Lokal.Release do | defmodule Memex.Release do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Contains mix tasks that can used in generated releases |   Contains mix tasks that can used in generated releases | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   @app :lokal |   @app :memex | ||||||
| 
 | 
 | ||||||
|   def rollback(repo, version) do |   def rollback(repo, version) do | ||||||
|     load_app() |     load_app() | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| defmodule Lokal.Repo do | defmodule Memex.Repo do | ||||||
|   use Ecto.Repo, |   use Ecto.Repo, | ||||||
|     otp_app: :lokal, |     otp_app: :memex, | ||||||
|     adapter: Ecto.Adapters.Postgres |     adapter: Ecto.Adapters.Postgres | ||||||
| end | end | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Repo.Migrator do | defmodule Memex.Repo.Migrator do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Genserver to automatically perform all migration on app start |   Genserver to automatically perform all migration on app start | ||||||
|   """ |   """ | ||||||
| @@ -16,7 +16,7 @@ defmodule Lokal.Repo.Migrator do | |||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def migrate! do |   def migrate! do | ||||||
|     path = Application.app_dir(:lokal, "priv/repo/migrations") |     path = Application.app_dir(:memex, "priv/repo/migrations") | ||||||
|     Ecto.Migrator.run(Lokal.Repo, path, :up, all: true) |     Ecto.Migrator.run(Memex.Repo, path, :up, all: true) | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -1,12 +1,12 @@ | |||||||
| defmodule LokalWeb do | defmodule MemexWeb do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   The entrypoint for defining your web interface, such |   The entrypoint for defining your web interface, such | ||||||
|   as controllers, views, channels and so on. |   as controllers, views, channels and so on. | ||||||
| 
 | 
 | ||||||
|   This can be used in your application as: |   This can be used in your application as: | ||||||
| 
 | 
 | ||||||
|       use LokalWeb, :controller |       use MemexWeb, :controller | ||||||
|       use LokalWeb, :view |       use MemexWeb, :view | ||||||
| 
 | 
 | ||||||
|   The definitions below will be executed for every view, |   The definitions below will be executed for every view, | ||||||
|   controller, etc, so keep them short and clean, focused |   controller, etc, so keep them short and clean, focused | ||||||
| @@ -19,19 +19,19 @@ defmodule LokalWeb do | |||||||
| 
 | 
 | ||||||
|   def controller do |   def controller do | ||||||
|     quote do |     quote do | ||||||
|       use Phoenix.Controller, namespace: LokalWeb |       use Phoenix.Controller, namespace: MemexWeb | ||||||
| 
 | 
 | ||||||
|       import Plug.Conn |       import Plug.Conn | ||||||
|       import LokalWeb.Gettext |       import MemexWeb.Gettext | ||||||
|       alias LokalWeb.Router.Helpers, as: Routes |       alias MemexWeb.Router.Helpers, as: Routes | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def view do |   def view do | ||||||
|     quote do |     quote do | ||||||
|       use Phoenix.View, |       use Phoenix.View, | ||||||
|         root: "lib/lokal_web/templates", |         root: "lib/memex_web/templates", | ||||||
|         namespace: LokalWeb |         namespace: MemexWeb | ||||||
| 
 | 
 | ||||||
|       # Import convenience functions from controllers |       # Import convenience functions from controllers | ||||||
|       import Phoenix.Controller, |       import Phoenix.Controller, | ||||||
| @@ -45,9 +45,9 @@ defmodule LokalWeb do | |||||||
|   def live_view do |   def live_view do | ||||||
|     quote do |     quote do | ||||||
|       use Phoenix.LiveView, |       use Phoenix.LiveView, | ||||||
|         layout: {LokalWeb.LayoutView, "live.html"} |         layout: {MemexWeb.LayoutView, "live.html"} | ||||||
| 
 | 
 | ||||||
|       on_mount LokalWeb.InitAssigns |       on_mount MemexWeb.InitAssigns | ||||||
|       unquote(view_helpers()) |       unquote(view_helpers()) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| @@ -81,7 +81,7 @@ defmodule LokalWeb do | |||||||
|   def channel do |   def channel do | ||||||
|     quote do |     quote do | ||||||
|       use Phoenix.Channel |       use Phoenix.Channel | ||||||
|       import LokalWeb.Gettext |       import MemexWeb.Gettext | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -96,8 +96,8 @@ defmodule LokalWeb do | |||||||
|       # Import basic rendering functionality (render, render_layout, etc) |       # Import basic rendering functionality (render, render_layout, etc) | ||||||
|       import Phoenix.View |       import Phoenix.View | ||||||
| 
 | 
 | ||||||
|       import LokalWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers} |       import MemexWeb.{ErrorHelpers, Gettext, LiveHelpers, ViewHelpers} | ||||||
|       alias LokalWeb.Router.Helpers, as: Routes |       alias MemexWeb.Router.Helpers, as: Routes | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| defmodule LokalWeb.Components.InviteCard do | defmodule MemexWeb.Components.InviteCard do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Display card for an invite |   Display card for an invite | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :component |   use MemexWeb, :component | ||||||
|   alias LokalWeb.Endpoint |   alias MemexWeb.Endpoint | ||||||
| 
 | 
 | ||||||
|   def invite_card(assigns) do |   def invite_card(assigns) do | ||||||
|     ~H""" |     ~H""" | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule LokalWeb.Components.TableComponent do | defmodule MemexWeb.Components.TableComponent do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Livecomponent that presents a resortable table |   Livecomponent that presents a resortable table | ||||||
| 
 | 
 | ||||||
| @@ -19,7 +19,7 @@ defmodule LokalWeb.Components.TableComponent do | |||||||
|         content. |         content. | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :live_component |   use MemexWeb, :live_component | ||||||
|   alias Phoenix.LiveView.Socket |   alias Phoenix.LiveView.Socket | ||||||
| 
 | 
 | ||||||
|   @impl true |   @impl true | ||||||
| @@ -1,12 +1,12 @@ | |||||||
| defmodule LokalWeb.Components.Topbar do | defmodule MemexWeb.Components.Topbar do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Component that renders a topbar with user functions/links |   Component that renders a topbar with user functions/links | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :component |   use MemexWeb, :component | ||||||
| 
 | 
 | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
| 
 | 
 | ||||||
|   def topbar(assigns) do |   def topbar(assigns) do | ||||||
|     assigns = |     assigns = | ||||||
| @@ -16,7 +16,7 @@ defmodule LokalWeb.Components.Topbar do | |||||||
|     <nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400"> |     <nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400"> | ||||||
|       <div class="flex flex-col sm:flex-row justify-between items-center"> |       <div class="flex flex-col sm:flex-row justify-between items-center"> | ||||||
|         <div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2"> |         <div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2"> | ||||||
|           <%= live_redirect("Lokal", |           <%= live_redirect("Memex", | ||||||
|             to: Routes.live_path(Endpoint, HomeLive), |             to: Routes.live_path(Endpoint, HomeLive), | ||||||
|             class: "mx-2 my-1 leading-5 text-xl text-white hover:underline" |             class: "mx-2 my-1 leading-5 text-xl text-white hover:underline" | ||||||
|           ) %> |           ) %> | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule LokalWeb.Components.UserCard do | defmodule MemexWeb.Components.UserCard do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Display card for a user |   Display card for a user | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :component |   use MemexWeb, :component | ||||||
| 
 | 
 | ||||||
|   def user_card(assigns) do |   def user_card(assigns) do | ||||||
|     ~H""" |     ~H""" | ||||||
| @@ -1,16 +1,16 @@ | |||||||
| defmodule LokalWeb.EmailController do | defmodule MemexWeb.EmailController do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   A dev controller used to develop on emails |   A dev controller used to develop on emails | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
|   alias Lokal.Accounts.User |   alias Memex.Accounts.User | ||||||
| 
 | 
 | ||||||
|   plug :put_layout, {LokalWeb.LayoutView, :email} |   plug :put_layout, {MemexWeb.LayoutView, :email} | ||||||
| 
 | 
 | ||||||
|   @sample_assigns %{ |   @sample_assigns %{ | ||||||
|     email: %{subject: "Example subject"}, |     email: %{subject: "Example subject"}, | ||||||
|     url: "https://lokal.bubbletea.dev/sample_url", |     url: "https://memex.bubbletea.dev/sample_url", | ||||||
|     user: %User{email: "sample@email.com"} |     user: %User{email: "sample@email.com"} | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule LokalWeb.HomeController do | defmodule MemexWeb.HomeController do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Controller for home page |   Controller for home page | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
| 
 | 
 | ||||||
|   def index(conn, _params) do |   def index(conn, _params) do | ||||||
|     render(conn, "index.html") |     render(conn, "index.html") | ||||||
| @@ -1,20 +1,20 @@ | |||||||
| defmodule LokalWeb.UserAuth do | defmodule MemexWeb.UserAuth do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Functions for user session and authentication |   Functions for user session and authentication | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   import Plug.Conn |   import Plug.Conn | ||||||
|   import Phoenix.Controller |   import Phoenix.Controller | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Lokal.{Accounts, Accounts.User} |   alias Memex.{Accounts, Accounts.User} | ||||||
|   alias LokalWeb.HomeLive |   alias MemexWeb.HomeLive | ||||||
|   alias LokalWeb.Router.Helpers, as: Routes |   alias MemexWeb.Router.Helpers, as: Routes | ||||||
| 
 | 
 | ||||||
|   # Make the remember me cookie valid for 60 days. |   # Make the remember me cookie valid for 60 days. | ||||||
|   # If you want bump or reduce this value, also change |   # If you want bump or reduce this value, also change | ||||||
|   # the token expiry itself in UserToken. |   # the token expiry itself in UserToken. | ||||||
|   @max_age 60 * 60 * 24 * 60 |   @max_age 60 * 60 * 24 * 60 | ||||||
|   @remember_me_cookie "_lokal_web_user_remember_me" |   @remember_me_cookie "_memex_web_user_remember_me" | ||||||
|   @remember_me_options [sign: true, max_age: @max_age, same_site: "Lax"] |   @remember_me_options [sign: true, max_age: @max_age, same_site: "Lax"] | ||||||
| 
 | 
 | ||||||
|   @doc """ |   @doc """ | ||||||
| @@ -99,7 +99,7 @@ defmodule LokalWeb.UserAuth do | |||||||
|     user_token && Accounts.delete_session_token(user_token) |     user_token && Accounts.delete_session_token(user_token) | ||||||
| 
 | 
 | ||||||
|     if live_socket_id = get_session(conn, :live_socket_id) do |     if live_socket_id = get_session(conn, :live_socket_id) do | ||||||
|       LokalWeb.Endpoint.broadcast(live_socket_id, "disconnect", %{}) |       MemexWeb.Endpoint.broadcast(live_socket_id, "disconnect", %{}) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     conn |     conn | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| defmodule LokalWeb.UserConfirmationController do | defmodule MemexWeb.UserConfirmationController do | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
| 
 | 
 | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
| 
 | 
 | ||||||
|   def new(conn, _params) do |   def new(conn, _params) do | ||||||
|     render(conn, "new.html", page_title: gettext("Confirm your account")) |     render(conn, "new.html", page_title: gettext("Confirm your account")) | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule LokalWeb.UserRegistrationController do | defmodule MemexWeb.UserRegistrationController do | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Lokal.{Accounts, Invites} |   alias Memex.{Accounts, Invites} | ||||||
|   alias Lokal.Accounts.User |   alias Memex.Accounts.User | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
| 
 | 
 | ||||||
|   def new(conn, %{"invite" => invite_token}) do |   def new(conn, %{"invite" => invite_token}) do | ||||||
|     invite = Invites.get_invite_by_token(invite_token) |     invite = Invites.get_invite_by_token(invite_token) | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| defmodule LokalWeb.UserResetPasswordController do | defmodule MemexWeb.UserResetPasswordController do | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
| 
 | 
 | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
| 
 | 
 | ||||||
|   plug :get_user_by_reset_password_token when action in [:edit, :update] |   plug :get_user_by_reset_password_token when action in [:edit, :update] | ||||||
| 
 | 
 | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| defmodule LokalWeb.UserSessionController do | defmodule MemexWeb.UserSessionController do | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
| 
 | 
 | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
|   alias LokalWeb.UserAuth |   alias MemexWeb.UserAuth | ||||||
| 
 | 
 | ||||||
|   def new(conn, _params) do |   def new(conn, _params) do | ||||||
|     render(conn, "new.html", error_message: nil, page_title: gettext("Log in")) |     render(conn, "new.html", error_message: nil, page_title: gettext("Log in")) | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| defmodule LokalWeb.UserSettingsController do | defmodule MemexWeb.UserSettingsController do | ||||||
|   use LokalWeb, :controller |   use MemexWeb, :controller | ||||||
|   import LokalWeb.Gettext |   import MemexWeb.Gettext | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
|   alias LokalWeb.{HomeLive, UserAuth} |   alias MemexWeb.{HomeLive, UserAuth} | ||||||
| 
 | 
 | ||||||
|   plug :assign_email_and_password_changesets |   plug :assign_email_and_password_changesets | ||||||
| 
 | 
 | ||||||
| @@ -1,12 +1,12 @@ | |||||||
| defmodule LokalWeb.Endpoint do | defmodule MemexWeb.Endpoint do | ||||||
|   use Phoenix.Endpoint, otp_app: :lokal |   use Phoenix.Endpoint, otp_app: :memex | ||||||
| 
 | 
 | ||||||
|   # The session will be stored in the cookie and signed, |   # The session will be stored in the cookie and signed, | ||||||
|   # this means its contents can be read but not tampered with. |   # this means its contents can be read but not tampered with. | ||||||
|   # Set :encryption_salt if you would also like to encrypt it. |   # Set :encryption_salt if you would also like to encrypt it. | ||||||
|   @session_options [ |   @session_options [ | ||||||
|     store: :cookie, |     store: :cookie, | ||||||
|     key: "_lokal_key", |     key: "_memex_key", | ||||||
|     signing_salt: "fxAnJltS" |     signing_salt: "fxAnJltS" | ||||||
|   ] |   ] | ||||||
| 
 | 
 | ||||||
| @@ -18,7 +18,7 @@ defmodule LokalWeb.Endpoint do | |||||||
|   # when deploying your static files in production. |   # when deploying your static files in production. | ||||||
|   plug Plug.Static, |   plug Plug.Static, | ||||||
|     at: "/", |     at: "/", | ||||||
|     from: :lokal, |     from: :memex, | ||||||
|     gzip: false, |     gzip: false, | ||||||
|     only: ~w(css fonts images js favicon.ico robots.txt) |     only: ~w(css fonts images js favicon.ico robots.txt) | ||||||
| 
 | 
 | ||||||
| @@ -28,7 +28,7 @@ defmodule LokalWeb.Endpoint do | |||||||
|     socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket |     socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket | ||||||
|     plug Phoenix.LiveReloader |     plug Phoenix.LiveReloader | ||||||
|     plug Phoenix.CodeReloader |     plug Phoenix.CodeReloader | ||||||
|     plug Phoenix.Ecto.CheckRepoStatus, otp_app: :lokal |     plug Phoenix.Ecto.CheckRepoStatus, otp_app: :memex | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   plug Phoenix.LiveDashboard.RequestLogger, |   plug Phoenix.LiveDashboard.RequestLogger, | ||||||
| @@ -46,5 +46,5 @@ defmodule LokalWeb.Endpoint do | |||||||
|   plug Plug.MethodOverride |   plug Plug.MethodOverride | ||||||
|   plug Plug.Head |   plug Plug.Head | ||||||
|   plug Plug.Session, @session_options |   plug Plug.Session, @session_options | ||||||
|   plug LokalWeb.Router |   plug MemexWeb.Router | ||||||
| end | end | ||||||
| @@ -1,11 +1,11 @@ | |||||||
| defmodule LokalWeb.Gettext do | defmodule MemexWeb.Gettext do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   A module providing Internationalization with a gettext-based API. |   A module providing Internationalization with a gettext-based API. | ||||||
| 
 | 
 | ||||||
|   By using [Gettext](https://hexdocs.pm/gettext), |   By using [Gettext](https://hexdocs.pm/gettext), | ||||||
|   your module gains a set of macros for translations, for example: |   your module gains a set of macros for translations, for example: | ||||||
| 
 | 
 | ||||||
|       import LokalWeb.Gettext |       import MemexWeb.Gettext | ||||||
| 
 | 
 | ||||||
|       # Simple translation |       # Simple translation | ||||||
|       gettext("Here is the string to translate") |       gettext("Here is the string to translate") | ||||||
| @@ -20,5 +20,5 @@ defmodule LokalWeb.Gettext do | |||||||
| 
 | 
 | ||||||
|   See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. |   See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. | ||||||
|   """ |   """ | ||||||
|   use Gettext, otp_app: :lokal |   use Gettext, otp_app: :memex | ||||||
| end | end | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule LokalWeb.HomeLive do | defmodule MemexWeb.HomeLive do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Liveview for the main home page |   Liveview for the main home page | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :live_view |   use MemexWeb, :live_view | ||||||
| 
 | 
 | ||||||
|   @impl true |   @impl true | ||||||
|   def mount(_params, _session, socket) do |   def mount(_params, _session, socket) do | ||||||
| @@ -30,7 +30,7 @@ defmodule LokalWeb.HomeLive do | |||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   defp search(query) do |   defp search(query) do | ||||||
|     if not LokalWeb.Endpoint.config(:code_reloader) do |     if not MemexWeb.Endpoint.config(:code_reloader) do | ||||||
|       raise "action disabled when not in development" |       raise "action disabled when not in development" | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| <div class="flex flex-col justify-center items-center text-center space-y-4"> | <div class="flex flex-col justify-center items-center text-center space-y-4"> | ||||||
|   <h1 class="title text-primary-500 text-2xl"> |   <h1 class="title text-primary-500 text-2xl"> | ||||||
|     <%= gettext("Welcome to Lokal") %> |     <%= gettext("memex") %> | ||||||
|   </h1> |   </h1> | ||||||
| 
 | 
 | ||||||
|   <p class="title  text-primary-500 text-lg"> |   <p class="title  text-primary-500 text-lg"> | ||||||
|     <%= gettext("Shop from your community") %> |     <%= gettext("filling this out later") %> | ||||||
|   </p> |   </p> | ||||||
| </div> | </div> | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| defmodule LokalWeb.InitAssigns do | defmodule MemexWeb.InitAssigns do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Ensures common `assigns` are applied to all LiveViews attaching this hook. |   Ensures common `assigns` are applied to all LiveViews attaching this hook. | ||||||
|   """ |   """ | ||||||
|   import Phoenix.LiveView |   import Phoenix.LiveView | ||||||
|   alias Lokal.Accounts |   alias Memex.Accounts | ||||||
| 
 | 
 | ||||||
|   def on_mount(:default, _params, %{"locale" => locale, "user_token" => user_token}, socket) do |   def on_mount(:default, _params, %{"locale" => locale, "user_token" => user_token}, socket) do | ||||||
|     Gettext.put_locale(locale) |     Gettext.put_locale(locale) | ||||||
| @@ -1,11 +1,11 @@ | |||||||
| defmodule LokalWeb.InviteLive.FormComponent do | defmodule MemexWeb.InviteLive.FormComponent do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Livecomponent that can update or create an Lokal.Invites.Invite |   Livecomponent that can update or create an Memex.Invites.Invite | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :live_component |   use MemexWeb, :live_component | ||||||
|   alias Ecto.Changeset |   alias Ecto.Changeset | ||||||
|   alias Lokal.{Accounts.User, Invites, Invites.Invite} |   alias Memex.{Accounts.User, Invites, Invites.Invite} | ||||||
|   alias Phoenix.LiveView.Socket |   alias Phoenix.LiveView.Socket | ||||||
| 
 | 
 | ||||||
|   @impl true |   @impl true | ||||||
| @@ -1,12 +1,12 @@ | |||||||
| defmodule LokalWeb.InviteLive.Index do | defmodule MemexWeb.InviteLive.Index do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Liveview to show a Lokal.Invites.Invite index |   Liveview to show a Memex.Invites.Invite index | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
|   use LokalWeb, :live_view |   use MemexWeb, :live_view | ||||||
|   import LokalWeb.Components.{InviteCard, UserCard} |   import MemexWeb.Components.{InviteCard, UserCard} | ||||||
|   alias Lokal.{Accounts, Invites, Invites.Invite} |   alias Memex.{Accounts, Invites, Invites.Invite} | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
|   alias Phoenix.LiveView.JS |   alias Phoenix.LiveView.JS | ||||||
| 
 | 
 | ||||||
|   @impl true |   @impl true | ||||||
| @@ -27,7 +27,7 @@ | |||||||
|             <button |             <button | ||||||
|               type="submit" |               type="submit" | ||||||
|               class="mx-2 my-1 btn btn-primary" |               class="mx-2 my-1 btn btn-primary" | ||||||
|               phx-click={JS.dispatch("lokal:clipcopy", to: "#code-#{invite.id}")} |               phx-click={JS.dispatch("memex:clipcopy", to: "#code-#{invite.id}")} | ||||||
|             > |             > | ||||||
|               <%= dgettext("actions", "Copy to clipboard") %> |               <%= dgettext("actions", "Copy to clipboard") %> | ||||||
|             </button> |             </button> | ||||||
| @@ -144,7 +144,7 @@ | |||||||
| <%= if @live_action in [:new, :edit] do %> | <%= if @live_action in [:new, :edit] do %> | ||||||
|   <.modal return_to={Routes.invite_index_path(Endpoint, :index)}> |   <.modal return_to={Routes.invite_index_path(Endpoint, :index)}> | ||||||
|     <.live_component |     <.live_component | ||||||
|       module={LokalWeb.InviteLive.FormComponent} |       module={MemexWeb.InviteLive.FormComponent} | ||||||
|       id={@invite.id || :new} |       id={@invite.id || :new} | ||||||
|       title={@page_title} |       title={@page_title} | ||||||
|       action={@live_action} |       action={@live_action} | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule LokalWeb.LiveHelpers do | defmodule MemexWeb.LiveHelpers do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Contains resuable methods for all liveviews |   Contains resuable methods for all liveviews | ||||||
|   """ |   """ | ||||||
| @@ -1,13 +1,13 @@ | |||||||
| defmodule LokalWeb.Router do | defmodule MemexWeb.Router do | ||||||
|   use LokalWeb, :router |   use MemexWeb, :router | ||||||
|   import Phoenix.LiveDashboard.Router |   import Phoenix.LiveDashboard.Router | ||||||
|   import LokalWeb.UserAuth |   import MemexWeb.UserAuth | ||||||
| 
 | 
 | ||||||
|   pipeline :browser do |   pipeline :browser do | ||||||
|     plug :accepts, ["html"] |     plug :accepts, ["html"] | ||||||
|     plug :fetch_session |     plug :fetch_session | ||||||
|     plug :fetch_live_flash |     plug :fetch_live_flash | ||||||
|     plug :put_root_layout, {LokalWeb.LayoutView, :root} |     plug :put_root_layout, {MemexWeb.LayoutView, :root} | ||||||
|     plug :protect_from_forgery |     plug :protect_from_forgery | ||||||
|     plug :put_secure_browser_headers |     plug :put_secure_browser_headers | ||||||
|     plug :fetch_current_user |     plug :fetch_current_user | ||||||
| @@ -32,7 +32,7 @@ defmodule LokalWeb.Router do | |||||||
|     plug :accepts, ["json"] |     plug :accepts, ["json"] | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   scope "/", LokalWeb do |   scope "/", MemexWeb do | ||||||
|     pipe_through :browser |     pipe_through :browser | ||||||
| 
 | 
 | ||||||
|     live "/", HomeLive |     live "/", HomeLive | ||||||
| @@ -40,7 +40,7 @@ defmodule LokalWeb.Router do | |||||||
| 
 | 
 | ||||||
|   ## Authentication routes |   ## Authentication routes | ||||||
| 
 | 
 | ||||||
|   scope "/", LokalWeb do |   scope "/", MemexWeb do | ||||||
|     pipe_through [:browser, :redirect_if_user_is_authenticated] |     pipe_through [:browser, :redirect_if_user_is_authenticated] | ||||||
| 
 | 
 | ||||||
|     get "/users/register", UserRegistrationController, :new |     get "/users/register", UserRegistrationController, :new | ||||||
| @@ -53,7 +53,7 @@ defmodule LokalWeb.Router do | |||||||
|     put "/users/reset_password/:token", UserResetPasswordController, :update |     put "/users/reset_password/:token", UserResetPasswordController, :update | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   scope "/", LokalWeb do |   scope "/", MemexWeb do | ||||||
|     pipe_through [:browser, :require_authenticated_user] |     pipe_through [:browser, :require_authenticated_user] | ||||||
| 
 | 
 | ||||||
|     get "/users/settings", UserSettingsController, :edit |     get "/users/settings", UserSettingsController, :edit | ||||||
| @@ -62,17 +62,17 @@ defmodule LokalWeb.Router do | |||||||
|     get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email |     get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   scope "/", LokalWeb do |   scope "/", MemexWeb do | ||||||
|     pipe_through [:browser, :require_authenticated_user, :require_admin] |     pipe_through [:browser, :require_authenticated_user, :require_admin] | ||||||
| 
 | 
 | ||||||
|     live_dashboard "/dashboard", metrics: LokalWeb.Telemetry, ecto_repos: [Lokal.Repo] |     live_dashboard "/dashboard", metrics: MemexWeb.Telemetry, ecto_repos: [Memex.Repo] | ||||||
| 
 | 
 | ||||||
|     live "/invites", InviteLive.Index, :index |     live "/invites", InviteLive.Index, :index | ||||||
|     live "/invites/new", InviteLive.Index, :new |     live "/invites/new", InviteLive.Index, :new | ||||||
|     live "/invites/:id/edit", InviteLive.Index, :edit |     live "/invites/:id/edit", InviteLive.Index, :edit | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   scope "/", LokalWeb do |   scope "/", MemexWeb do | ||||||
|     pipe_through [:browser] |     pipe_through [:browser] | ||||||
| 
 | 
 | ||||||
|     delete "/users/log_out", UserSessionController, :delete |     delete "/users/log_out", UserSessionController, :delete | ||||||
| @@ -93,7 +93,7 @@ defmodule LokalWeb.Router do | |||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     scope "/dev" do |     scope "/dev" do | ||||||
|       get "/preview/:id", LokalWeb.EmailController, :preview |       get "/preview/:id", MemexWeb.EmailController, :preview | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule LokalWeb.Telemetry do | defmodule MemexWeb.Telemetry do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Collects telemetry |   Collects telemetry | ||||||
|   """ |   """ | ||||||
| @@ -35,23 +35,23 @@ defmodule LokalWeb.Telemetry do | |||||||
|       ), |       ), | ||||||
| 
 | 
 | ||||||
|       # Database Metrics |       # Database Metrics | ||||||
|       summary("lokal.repo.query.total_time", |       summary("memex.repo.query.total_time", | ||||||
|         unit: {:native, :millisecond}, |         unit: {:native, :millisecond}, | ||||||
|         description: "The sum of the other measurements" |         description: "The sum of the other measurements" | ||||||
|       ), |       ), | ||||||
|       summary("lokal.repo.query.decode_time", |       summary("memex.repo.query.decode_time", | ||||||
|         unit: {:native, :millisecond}, |         unit: {:native, :millisecond}, | ||||||
|         description: "The time spent decoding the data received from the database" |         description: "The time spent decoding the data received from the database" | ||||||
|       ), |       ), | ||||||
|       summary("lokal.repo.query.query_time", |       summary("memex.repo.query.query_time", | ||||||
|         unit: {:native, :millisecond}, |         unit: {:native, :millisecond}, | ||||||
|         description: "The time spent executing the query" |         description: "The time spent executing the query" | ||||||
|       ), |       ), | ||||||
|       summary("lokal.repo.query.queue_time", |       summary("memex.repo.query.queue_time", | ||||||
|         unit: {:native, :millisecond}, |         unit: {:native, :millisecond}, | ||||||
|         description: "The time spent waiting for a database connection" |         description: "The time spent waiting for a database connection" | ||||||
|       ), |       ), | ||||||
|       summary("lokal.repo.query.idle_time", |       summary("memex.repo.query.idle_time", | ||||||
|         unit: {:native, :millisecond}, |         unit: {:native, :millisecond}, | ||||||
|         description: |         description: | ||||||
|           "The time the connection spent waiting before being checked out for the query" |           "The time the connection spent waiting before being checked out for the query" | ||||||
| @@ -69,7 +69,7 @@ defmodule LokalWeb.Telemetry do | |||||||
|     [ |     [ | ||||||
|       # A module, function and arguments to be invoked periodically. |       # A module, function and arguments to be invoked periodically. | ||||||
|       # This function must call :telemetry.execute/3 and a metric must be added above. |       # This function must call :telemetry.execute/3 and a metric must be added above. | ||||||
|       # {LokalWeb, :count_users, []} |       # {MemexWeb, :count_users, []} | ||||||
|     ] |     ] | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -6,7 +6,7 @@ | |||||||
|   <br /> |   <br /> | ||||||
| 
 | 
 | ||||||
|   <span style="margin-bottom: 1em; font-size: 1.25em;"> |   <span style="margin-bottom: 1em; font-size: 1.25em;"> | ||||||
|     <%= dgettext("emails", "Welcome to Lokal") %> |     <%= dgettext("emails", "Welcome to Memex") %> | ||||||
|   </span> |   </span> | ||||||
| 
 | 
 | ||||||
|   <br /> |   <br /> | ||||||
| @@ -19,5 +19,5 @@ | |||||||
| 
 | 
 | ||||||
|   <br /> |   <br /> | ||||||
| 
 | 
 | ||||||
|   <%= dgettext("emails", "If you didn't create an account at Lokal, please ignore this.") %> |   <%= dgettext("emails", "If you didn't create an account at Memex, please ignore this.") %> | ||||||
| </div> | </div> | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| 
 | 
 | ||||||
| <%= dgettext("emails", "Hi %{email},", email: @user.email) %> | <%= dgettext("emails", "Hi %{email},", email: @user.email) %> | ||||||
| 
 | 
 | ||||||
| <%= dgettext("emails", "Welcome to Lokal") %> | <%= dgettext("emails", "Welcome to Memex") %> | ||||||
| 
 | 
 | ||||||
| <%= dgettext("emails", "You can confirm your account by visiting the URL below:") %> | <%= dgettext("emails", "You can confirm your account by visiting the URL below:") %> | ||||||
| 
 | 
 | ||||||
| @@ -13,5 +13,5 @@ | |||||||
| 
 | 
 | ||||||
|   <br /> |   <br /> | ||||||
| 
 | 
 | ||||||
|   <%= dgettext("emails", "If you didn't request this change from Lokal, please ignore this.") %> |   <%= dgettext("emails", "If you didn't request this change from Memex, please ignore this.") %> | ||||||
| </div> | </div> | ||||||
| @@ -15,6 +15,6 @@ | |||||||
| 
 | 
 | ||||||
|   <%= dgettext( |   <%= dgettext( | ||||||
|     "emails", |     "emails", | ||||||
|     "If you didn't request this change from Lokal, please ignore this." |     "If you didn't request this change from Memex, please ignore this." | ||||||
|   ) %> |   ) %> | ||||||
| </div> | </div> | ||||||
| @@ -5,7 +5,7 @@ | |||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||||
|     <title> |     <title> | ||||||
|       <%= dgettext("errors", "Error") %>| Lokal |       <%= dgettext("errors", "Error") %>| Memex | ||||||
|     </title> |     </title> | ||||||
|     <link rel="stylesheet" href="/css/app.css" /> |     <link rel="stylesheet" href="/css/app.css" /> | ||||||
|     <script defer type="text/javascript" src="/js/app.js"> |     <script defer type="text/javascript" src="/js/app.js"> | ||||||
| @@ -12,7 +12,7 @@ | |||||||
|     <a style="color: rgb(31, 31, 31);" href={Routes.live_url(Endpoint, HomeLive)}> |     <a style="color: rgb(31, 31, 31);" href={Routes.live_url(Endpoint, HomeLive)}> | ||||||
|       <%= dgettext( |       <%= dgettext( | ||||||
|         "emails", |         "emails", | ||||||
|         "This email was sent from Lokal, the self-hosted firearm tracker website." |         "This email was sent from Memex, the self-hosted firearm tracker website." | ||||||
|       ) %> |       ) %> | ||||||
|     </a> |     </a> | ||||||
|   </body> |   </body> | ||||||
| @@ -7,5 +7,5 @@ | |||||||
| ===================== | ===================== | ||||||
| 
 | 
 | ||||||
| <%= dgettext("emails", | <%= dgettext("emails", | ||||||
|   "This email was sent from Lokal at %{url}, the self-hosted firearm tracker website.", |   "This email was sent from Memex at %{url}, the self-hosted firearm tracker website.", | ||||||
|   url: Routes.live_url(Endpoint, HomeLive)) %> |   url: Routes.live_url(Endpoint, HomeLive)) %> | ||||||
| @@ -5,8 +5,8 @@ | |||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |     <meta http-equiv="X-UA-Compatible" content="IE=edge" /> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||||
|     <%= csrf_meta_tag() %> |     <%= csrf_meta_tag() %> | ||||||
|     <%= if(assigns |> Map.has_key?(:page_title), do: @page_title, else: "Lokal") |     <%= if(assigns |> Map.has_key?(:page_title), do: @page_title, else: "Memex") | ||||||
|     |> live_title_tag(suffix: " | Lokal") %> |     |> live_title_tag(suffix: " | Memex") %> | ||||||
|     <link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} /> |     <link phx-track-static rel="stylesheet" href={Routes.static_path(@conn, "/css/app.css")} /> | ||||||
|     <script |     <script | ||||||
|       defer |       defer | ||||||
							
								
								
									
										8
									
								
								lib/memex_web/views/email_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								lib/memex_web/views/email_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | defmodule MemexWeb.EmailView do | ||||||
|  |   @moduledoc """ | ||||||
|  |   A view for email-related helper functions | ||||||
|  |   """ | ||||||
|  |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
|  |  | ||||||
|  |   use MemexWeb, :view | ||||||
|  | end | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule LokalWeb.ErrorHelpers do | defmodule MemexWeb.ErrorHelpers do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Conveniences for translating and building error messages. |   Conveniences for translating and building error messages. | ||||||
|   """ |   """ | ||||||
| @@ -48,9 +48,9 @@ defmodule LokalWeb.ErrorHelpers do | |||||||
|     # should be written to the errors.po file. The :count option is |     # should be written to the errors.po file. The :count option is | ||||||
|     # set by Ecto and indicates we should also apply plural rules. |     # set by Ecto and indicates we should also apply plural rules. | ||||||
|     if count = opts[:count] do |     if count = opts[:count] do | ||||||
|       Gettext.dngettext(LokalWeb.Gettext, "errors", msg, msg, count, opts) |       Gettext.dngettext(MemexWeb.Gettext, "errors", msg, msg, count, opts) | ||||||
|     else |     else | ||||||
|       Gettext.dgettext(LokalWeb.Gettext, "errors", msg, opts) |       Gettext.dgettext(MemexWeb.Gettext, "errors", msg, opts) | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| defmodule LokalWeb.ErrorView do | defmodule MemexWeb.ErrorView do | ||||||
|   use LokalWeb, :view |   use MemexWeb, :view | ||||||
|   import LokalWeb.Components.Topbar |   import MemexWeb.Components.Topbar | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
| 
 | 
 | ||||||
|   def template_not_found(error_path, _assigns) do |   def template_not_found(error_path, _assigns) do | ||||||
|     error_string = |     error_string = | ||||||
							
								
								
									
										3
									
								
								lib/memex_web/views/home_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lib/memex_web/views/home_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | defmodule MemexWeb.PageView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  | end | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| defmodule LokalWeb.LayoutView do | defmodule MemexWeb.LayoutView do | ||||||
|   use LokalWeb, :view |   use MemexWeb, :view | ||||||
|   import LokalWeb.Components.Topbar |   import MemexWeb.Components.Topbar | ||||||
|   alias LokalWeb.{Endpoint, HomeLive} |   alias MemexWeb.{Endpoint, HomeLive} | ||||||
| 
 | 
 | ||||||
|   # Phoenix LiveDashboard is available only in development by default, |   # Phoenix LiveDashboard is available only in development by default, | ||||||
|   # so we instruct Elixir to not warn if the dashboard route is missing. |   # so we instruct Elixir to not warn if the dashboard route is missing. | ||||||
| @@ -9,9 +9,9 @@ defmodule LokalWeb.LayoutView do | |||||||
| 
 | 
 | ||||||
|   def get_title(conn) do |   def get_title(conn) do | ||||||
|     if conn.assigns |> Map.has_key?(:title) do |     if conn.assigns |> Map.has_key?(:title) do | ||||||
|       "Lokal | #{conn.assigns.title}" |       "Memex | #{conn.assigns.title}" | ||||||
|     else |     else | ||||||
|       "Lokal" |       "Memex" | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
							
								
								
									
										4
									
								
								lib/memex_web/views/user_confirmation_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								lib/memex_web/views/user_confirmation_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | defmodule MemexWeb.UserConfirmationView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  |   alias Memex.Accounts | ||||||
|  | end | ||||||
							
								
								
									
										3
									
								
								lib/memex_web/views/user_registration_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lib/memex_web/views/user_registration_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | defmodule MemexWeb.UserRegistrationView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  | end | ||||||
							
								
								
									
										4
									
								
								lib/memex_web/views/user_reset_password_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								lib/memex_web/views/user_reset_password_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | defmodule MemexWeb.UserResetPasswordView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  |   alias Memex.Accounts | ||||||
|  | end | ||||||
							
								
								
									
										4
									
								
								lib/memex_web/views/user_session_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								lib/memex_web/views/user_session_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | defmodule MemexWeb.UserSessionView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  |   alias Memex.Accounts | ||||||
|  | end | ||||||
							
								
								
									
										3
									
								
								lib/memex_web/views/user_settings_view.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lib/memex_web/views/user_settings_view.ex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | defmodule MemexWeb.UserSettingsView do | ||||||
|  |   use MemexWeb, :view | ||||||
|  | end | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| defmodule LokalWeb.ViewHelpers do | defmodule MemexWeb.ViewHelpers do | ||||||
|   @moduledoc """ |   @moduledoc """ | ||||||
|   Contains common helpers that can be used in liveviews and regular views. These |   Contains common helpers that can be used in liveviews and regular views. These | ||||||
|   are automatically imported into any Phoenix View using `use LokalWeb, |   are automatically imported into any Phoenix View using `use MemexWeb, | ||||||
|   :view` |   :view` | ||||||
|   """ |   """ | ||||||
| 
 | 
 | ||||||
							
								
								
									
										12
									
								
								mix.exs
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								mix.exs
									
									
									
									
									
								
							| @@ -1,9 +1,9 @@ | |||||||
| defmodule Lokal.MixProject do | defmodule Memex.MixProject do | ||||||
|   use Mix.Project |   use Mix.Project | ||||||
|  |  | ||||||
|   def project do |   def project do | ||||||
|     [ |     [ | ||||||
|       app: :lokal, |       app: :memex, | ||||||
|       version: "0.1.0", |       version: "0.1.0", | ||||||
|       elixir: "~> 1.12", |       elixir: "~> 1.12", | ||||||
|       elixirc_paths: elixirc_paths(Mix.env()), |       elixirc_paths: elixirc_paths(Mix.env()), | ||||||
| @@ -15,9 +15,9 @@ defmodule Lokal.MixProject do | |||||||
|       consolidate_protocols: Mix.env() not in [:dev, :test], |       consolidate_protocols: Mix.env() not in [:dev, :test], | ||||||
|       preferred_cli_env: [test: :test], |       preferred_cli_env: [test: :test], | ||||||
|       # ExDoc |       # ExDoc | ||||||
|       name: "Lokal", |       name: "memex", | ||||||
|       source_url: "https://gitea.bubbletea.dev/shibao/lokal", |       source_url: "https://gitea.bubbletea.dev/shibao/memex", | ||||||
|       homepage_url: "https://gitea.bubbletea.dev/shibao/lokal", |       homepage_url: "https://gitea.bubbletea.dev/shibao/memex", | ||||||
|       docs: [ |       docs: [ | ||||||
|         # The main page in the docs |         # The main page in the docs | ||||||
|         main: "README.md", |         main: "README.md", | ||||||
| @@ -33,7 +33,7 @@ defmodule Lokal.MixProject do | |||||||
|   # Type `mix help compile.app` for more information. |   # Type `mix help compile.app` for more information. | ||||||
|   def application do |   def application do | ||||||
|     [ |     [ | ||||||
|       mod: {Lokal.Application, []}, |       mod: {Memex.Application, []}, | ||||||
|       extra_applications: [:logger, :runtime_tools, :os_mon] |       extra_applications: [:logger, :runtime_tools, :os_mon] | ||||||
|     ] |     ] | ||||||
|   end |   end | ||||||
|   | |||||||
| @@ -96,7 +96,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/live/home_live.html.heex:3 | #: lib/lokal_web/live/home_live.html.heex:3 | ||||||
| msgid "Welcome to Lokal" | msgid "Welcome to Memex" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
|   | |||||||
| @@ -50,43 +50,43 @@ msgid "You can reset your password by visiting the URL below:" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:30 | #: lib/memex/accounts/email.ex:30 | ||||||
| msgid "Confirm your Lokal account" | msgid "Confirm your Memex account" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/confirm_email.html.heex:22 | #: lib/lokal_web/templates/email/confirm_email.html.heex:22 | ||||||
| msgid "If you didn't create an account at Lokal, please ignore this." | msgid "If you didn't create an account at Memex, please ignore this." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/reset_password.html.heex:16 | #: lib/lokal_web/templates/email/reset_password.html.heex:16 | ||||||
| #: lib/lokal_web/templates/email/update_email.html.heex:16 | #: lib/lokal_web/templates/email/update_email.html.heex:16 | ||||||
| msgid "If you didn't request this change from Lokal, please ignore this." | msgid "If you didn't request this change from Memex, please ignore this." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:37 | #: lib/memex/accounts/email.ex:37 | ||||||
| msgid "Reset your Lokal password" | msgid "Reset your Memex password" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/layout/email.txt.eex:9 | #: lib/lokal_web/templates/layout/email.txt.eex:9 | ||||||
| msgid "This email was sent from Lokal at %{url}, the self-hosted firearm tracker website." | msgid "This email was sent from Memex at %{url}, the self-hosted firearm tracker website." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/layout/email.html.heex:13 | #: lib/lokal_web/templates/layout/email.html.heex:13 | ||||||
| msgid "This email was sent from Lokal, the self-hosted firearm tracker website." | msgid "This email was sent from Memex, the self-hosted firearm tracker website." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:44 | #: lib/memex/accounts/email.ex:44 | ||||||
| msgid "Update your Lokal email" | msgid "Update your Memex email" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/confirm_email.html.heex:9 | #: lib/lokal_web/templates/email/confirm_email.html.heex:9 | ||||||
| #: lib/lokal_web/templates/email/confirm_email.txt.eex:4 | #: lib/lokal_web/templates/email/confirm_email.txt.eex:4 | ||||||
| msgid "Welcome to Lokal" | msgid "Welcome to Memex" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -97,7 +97,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/live/home_live.html.heex:3 | #: lib/lokal_web/live/home_live.html.heex:3 | ||||||
| msgid "Welcome to Lokal" | msgid "Welcome to Memex" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
|   | |||||||
| @@ -51,43 +51,43 @@ msgid "You can reset your password by visiting the URL below:" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:30 | #: lib/memex/accounts/email.ex:30 | ||||||
| msgid "Confirm your Lokal account" | msgid "Confirm your Memex account" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/confirm_email.html.heex:22 | #: lib/lokal_web/templates/email/confirm_email.html.heex:22 | ||||||
| msgid "If you didn't create an account at Lokal, please ignore this." | msgid "If you didn't create an account at Memex, please ignore this." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/reset_password.html.heex:16 | #: lib/lokal_web/templates/email/reset_password.html.heex:16 | ||||||
| #: lib/lokal_web/templates/email/update_email.html.heex:16 | #: lib/lokal_web/templates/email/update_email.html.heex:16 | ||||||
| msgid "If you didn't request this change from Lokal, please ignore this." | msgid "If you didn't request this change from Memex, please ignore this." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:37 | #: lib/memex/accounts/email.ex:37 | ||||||
| msgid "Reset your Lokal password" | msgid "Reset your Memex password" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/layout/email.txt.eex:9 | #: lib/lokal_web/templates/layout/email.txt.eex:9 | ||||||
| msgid "This email was sent from Lokal at %{url}, the self-hosted firearm tracker website." | msgid "This email was sent from Memex at %{url}, the self-hosted firearm tracker website." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/layout/email.html.heex:13 | #: lib/lokal_web/templates/layout/email.html.heex:13 | ||||||
| msgid "This email was sent from Lokal, the self-hosted firearm tracker website." | msgid "This email was sent from Memex, the self-hosted firearm tracker website." | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/email.ex:44 | #: lib/memex/accounts/email.ex:44 | ||||||
| msgid "Update your Lokal email" | msgid "Update your Memex email" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal_web/templates/email/confirm_email.html.heex:9 | #: lib/lokal_web/templates/email/confirm_email.html.heex:9 | ||||||
| #: lib/lokal_web/templates/email/confirm_email.txt.eex:4 | #: lib/lokal_web/templates/email/confirm_email.txt.eex:4 | ||||||
| msgid "Welcome to Lokal" | msgid "Welcome to Memex" | ||||||
| msgstr "" | msgstr "" | ||||||
|   | |||||||
| @@ -179,22 +179,22 @@ msgid "You must confirm your account and log in to access this page." | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:130 | #: lib/memex/accounts/user.ex:130 | ||||||
| msgid "did not change" | msgid "did not change" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:151 | #: lib/memex/accounts/user.ex:151 | ||||||
| msgid "does not match password" | msgid "does not match password" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:188 | #: lib/memex/accounts/user.ex:188 | ||||||
| msgid "is not valid" | msgid "is not valid" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:84 | #: lib/memex/accounts/user.ex:84 | ||||||
| msgid "must have the @ sign and no spaces" | msgid "must have the @ sign and no spaces" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -176,22 +176,22 @@ msgid "You must confirm your account and log in to access this page." | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:130 | #: lib/memex/accounts/user.ex:130 | ||||||
| msgid "did not change" | msgid "did not change" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:151 | #: lib/memex/accounts/user.ex:151 | ||||||
| msgid "does not match password" | msgid "does not match password" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:188 | #: lib/memex/accounts/user.ex:188 | ||||||
| msgid "is not valid" | msgid "is not valid" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| #: lib/lokal/accounts/user.ex:84 | #: lib/memex/accounts/user.ex:84 | ||||||
| msgid "must have the @ sign and no spaces" | msgid "must have the @ sign and no spaces" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Repo.Migrations.CreateUsersAuthTables do | defmodule Memex.Repo.Migrations.CreateUsersAuthTables do | ||||||
|   use Ecto.Migration |   use Ecto.Migration | ||||||
|  |  | ||||||
|   def change do |   def change do | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Repo.Migrations.CreateInvites do | defmodule Memex.Repo.Migrations.CreateInvites do | ||||||
|   use Ecto.Migration |   use Ecto.Migration | ||||||
|  |  | ||||||
|   def change do |   def change do | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Repo.Migrations.AddOban do | defmodule Memex.Repo.Migrations.AddOban do | ||||||
|   use Ecto.Migration |   use Ecto.Migration | ||||||
|  |  | ||||||
|   def up do |   def up do | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| defmodule Lokal.Repo.Migrations.AddLocaleSetting do | defmodule Memex.Repo.Migrations.AddLocaleSetting do | ||||||
|   use Ecto.Migration |   use Ecto.Migration | ||||||
|  |  | ||||||
|   def change do |   def change do | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user