Commit ·
d77a9fd
0
Parent(s):
Initial import
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .formatter.exs +6 -0
- .gitignore +37 -0
- README.md +18 -0
- assets/css/app.css +5 -0
- assets/js/app.js +41 -0
- assets/tailwind.config.js +68 -0
- assets/vendor/heroicons/LICENSE.md +21 -0
- assets/vendor/heroicons/UPGRADE.md +6 -0
- assets/vendor/heroicons/optimized/20/solid/academic-cap.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/archive-box.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg +10 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-path.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-right.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg +4 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-up.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg +3 -0
- assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg +3 -0
.formatter.exs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
import_deps: [:ecto, :ecto_sql, :phoenix],
|
| 3 |
+
subdirectories: ["priv/*/migrations"],
|
| 4 |
+
plugins: [Phoenix.LiveView.HTMLFormatter],
|
| 5 |
+
inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"]
|
| 6 |
+
]
|
.gitignore
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# The directory Mix will write compiled artifacts to.
|
| 2 |
+
/_build/
|
| 3 |
+
|
| 4 |
+
# If you run "mix test --cover", coverage assets end up here.
|
| 5 |
+
/cover/
|
| 6 |
+
|
| 7 |
+
# The directory Mix downloads your dependencies sources to.
|
| 8 |
+
/deps/
|
| 9 |
+
|
| 10 |
+
# Where 3rd-party dependencies like ExDoc output generated docs.
|
| 11 |
+
/doc/
|
| 12 |
+
|
| 13 |
+
# Ignore .fetch files in case you like to edit your project deps locally.
|
| 14 |
+
/.fetch
|
| 15 |
+
|
| 16 |
+
# If the VM crashes, it generates a dump, let's ignore it too.
|
| 17 |
+
erl_crash.dump
|
| 18 |
+
|
| 19 |
+
# Also ignore archive artifacts (built via "mix archive.build").
|
| 20 |
+
*.ez
|
| 21 |
+
|
| 22 |
+
# Temporary files, for example, from tests.
|
| 23 |
+
/tmp/
|
| 24 |
+
|
| 25 |
+
# Ignore package tarball (built via "mix hex.build").
|
| 26 |
+
medical_transcription-*.tar
|
| 27 |
+
|
| 28 |
+
# Ignore assets that are produced by build tools.
|
| 29 |
+
/priv/static/assets/
|
| 30 |
+
|
| 31 |
+
# Ignore digested assets cache.
|
| 32 |
+
/priv/static/cache_manifest.json
|
| 33 |
+
|
| 34 |
+
# In case you use Node.js/npm, you want to ignore these.
|
| 35 |
+
npm-debug.log
|
| 36 |
+
/assets/node_modules/
|
| 37 |
+
|
README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# MedicalTranscription
|
| 2 |
+
|
| 3 |
+
To start your Phoenix server:
|
| 4 |
+
|
| 5 |
+
* Run `mix setup` to install and setup dependencies
|
| 6 |
+
* Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`
|
| 7 |
+
|
| 8 |
+
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
|
| 9 |
+
|
| 10 |
+
Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).
|
| 11 |
+
|
| 12 |
+
## Learn more
|
| 13 |
+
|
| 14 |
+
* Official website: https://www.phoenixframework.org/
|
| 15 |
+
* Guides: https://hexdocs.pm/phoenix/overview.html
|
| 16 |
+
* Docs: https://hexdocs.pm/phoenix
|
| 17 |
+
* Forum: https://elixirforum.com/c/phoenix-forum
|
| 18 |
+
* Source: https://github.com/phoenixframework/phoenix
|
assets/css/app.css
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@import "tailwindcss/base";
|
| 2 |
+
@import "tailwindcss/components";
|
| 3 |
+
@import "tailwindcss/utilities";
|
| 4 |
+
|
| 5 |
+
/* This file is for your main application CSS */
|
assets/js/app.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// If you want to use Phoenix channels, run `mix help phx.gen.channel`
|
| 2 |
+
// to get started and then uncomment the line below.
|
| 3 |
+
// import "./user_socket.js"
|
| 4 |
+
|
| 5 |
+
// You can include dependencies in two ways.
|
| 6 |
+
//
|
| 7 |
+
// The simplest option is to put them in assets/vendor and
|
| 8 |
+
// import them using relative paths:
|
| 9 |
+
//
|
| 10 |
+
// import "../vendor/some-package.js"
|
| 11 |
+
//
|
| 12 |
+
// Alternatively, you can `npm install some-package --prefix assets` and import
|
| 13 |
+
// them using a path starting with the package name:
|
| 14 |
+
//
|
| 15 |
+
// import "some-package"
|
| 16 |
+
//
|
| 17 |
+
|
| 18 |
+
// Include phoenix_html to handle method=PUT/DELETE in forms and buttons.
|
| 19 |
+
import "phoenix_html"
|
| 20 |
+
// Establish Phoenix Socket and LiveView configuration.
|
| 21 |
+
import {Socket} from "phoenix"
|
| 22 |
+
import {LiveSocket} from "phoenix_live_view"
|
| 23 |
+
import topbar from "../vendor/topbar"
|
| 24 |
+
|
| 25 |
+
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
|
| 26 |
+
let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}})
|
| 27 |
+
|
| 28 |
+
// Show progress bar on live navigation and form submits
|
| 29 |
+
topbar.config({barColors: {0: "#29d"}, shadowColor: "rgba(0, 0, 0, .3)"})
|
| 30 |
+
window.addEventListener("phx:page-loading-start", _info => topbar.show(300))
|
| 31 |
+
window.addEventListener("phx:page-loading-stop", _info => topbar.hide())
|
| 32 |
+
|
| 33 |
+
// connect if there are any LiveViews on the page
|
| 34 |
+
liveSocket.connect()
|
| 35 |
+
|
| 36 |
+
// expose liveSocket on window for web console debug logs and latency simulation:
|
| 37 |
+
// >> liveSocket.enableDebug()
|
| 38 |
+
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
|
| 39 |
+
// >> liveSocket.disableLatencySim()
|
| 40 |
+
window.liveSocket = liveSocket
|
| 41 |
+
|
assets/tailwind.config.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// See the Tailwind configuration guide for advanced usage
|
| 2 |
+
// https://tailwindcss.com/docs/configuration
|
| 3 |
+
|
| 4 |
+
const plugin = require("tailwindcss/plugin")
|
| 5 |
+
const fs = require("fs")
|
| 6 |
+
const path = require("path")
|
| 7 |
+
|
| 8 |
+
module.exports = {
|
| 9 |
+
content: [
|
| 10 |
+
"./js/**/*.js",
|
| 11 |
+
"../lib/medical_transcription_web.ex",
|
| 12 |
+
"../lib/medical_transcription_web/**/*.*ex"
|
| 13 |
+
],
|
| 14 |
+
theme: {
|
| 15 |
+
extend: {
|
| 16 |
+
colors: {
|
| 17 |
+
brand: "#FD4F00",
|
| 18 |
+
}
|
| 19 |
+
},
|
| 20 |
+
},
|
| 21 |
+
plugins: [
|
| 22 |
+
require("@tailwindcss/forms"),
|
| 23 |
+
// Allows prefixing tailwind classes with LiveView classes to add rules
|
| 24 |
+
// only when LiveView classes are applied, for example:
|
| 25 |
+
//
|
| 26 |
+
// <div class="phx-click-loading:animate-ping">
|
| 27 |
+
//
|
| 28 |
+
plugin(({addVariant}) => addVariant("phx-no-feedback", [".phx-no-feedback&", ".phx-no-feedback &"])),
|
| 29 |
+
plugin(({addVariant}) => addVariant("phx-click-loading", [".phx-click-loading&", ".phx-click-loading &"])),
|
| 30 |
+
plugin(({addVariant}) => addVariant("phx-submit-loading", [".phx-submit-loading&", ".phx-submit-loading &"])),
|
| 31 |
+
plugin(({addVariant}) => addVariant("phx-change-loading", [".phx-change-loading&", ".phx-change-loading &"])),
|
| 32 |
+
|
| 33 |
+
// Embeds Heroicons (https://heroicons.com) into your app.css bundle
|
| 34 |
+
// See your `CoreComponents.icon/1` for more information.
|
| 35 |
+
//
|
| 36 |
+
plugin(function({matchComponents, theme}) {
|
| 37 |
+
let iconsDir = path.join(__dirname, "./vendor/heroicons/optimized")
|
| 38 |
+
let values = {}
|
| 39 |
+
let icons = [
|
| 40 |
+
["", "/24/outline"],
|
| 41 |
+
["-solid", "/24/solid"],
|
| 42 |
+
["-mini", "/20/solid"]
|
| 43 |
+
]
|
| 44 |
+
icons.forEach(([suffix, dir]) => {
|
| 45 |
+
fs.readdirSync(path.join(iconsDir, dir)).forEach(file => {
|
| 46 |
+
let name = path.basename(file, ".svg") + suffix
|
| 47 |
+
values[name] = {name, fullPath: path.join(iconsDir, dir, file)}
|
| 48 |
+
})
|
| 49 |
+
})
|
| 50 |
+
matchComponents({
|
| 51 |
+
"hero": ({name, fullPath}) => {
|
| 52 |
+
let content = fs.readFileSync(fullPath).toString().replace(/\r?\n|\r/g, "")
|
| 53 |
+
return {
|
| 54 |
+
[`--hero-${name}`]: `url('data:image/svg+xml;utf8,${content}')`,
|
| 55 |
+
"-webkit-mask": `var(--hero-${name})`,
|
| 56 |
+
"mask": `var(--hero-${name})`,
|
| 57 |
+
"mask-repeat": "no-repeat",
|
| 58 |
+
"background-color": "currentColor",
|
| 59 |
+
"vertical-align": "middle",
|
| 60 |
+
"display": "inline-block",
|
| 61 |
+
"width": theme("spacing.5"),
|
| 62 |
+
"height": theme("spacing.5")
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
}, {values})
|
| 66 |
+
})
|
| 67 |
+
]
|
| 68 |
+
}
|
assets/vendor/heroicons/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2020 Refactoring UI Inc.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
assets/vendor/heroicons/UPGRADE.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
You are running heroicons v2.0.16. To upgrade in place, you can run the following command,
|
| 2 |
+
where your `HERO_VSN` export is your desired version:
|
| 3 |
+
|
| 4 |
+
export HERO_VSN="2.0.16" ; \
|
| 5 |
+
curl -L "https://github.com/tailwindlabs/heroicons/archive/refs/tags/v${HERO_VSN}.tar.gz" | \
|
| 6 |
+
tar -xvz --strip-components=1 heroicons-${HERO_VSN}/optimized
|
assets/vendor/heroicons/optimized/20/solid/academic-cap.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/archive-box.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-path.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-right.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-up.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg
ADDED
|
|
assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg
ADDED
|
|