-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add events and qrcodes to activities (#284)
- Loading branch information
1 parent
44ade10
commit 2798b1f
Showing
43 changed files
with
370 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import { Html5Qrcode, Html5QrcodeSupportedFormats } from "../vendor/html5-qrcode.js" | ||
|
||
function parseURL(url) { | ||
try { | ||
const url_obj = new URL(url); | ||
|
||
if (url_obj.host !== window.location.host) return null; | ||
return url_obj.pathname.split("/").splice(1).join("/"); | ||
} catch { | ||
return null; | ||
} | ||
} | ||
|
||
export const QrScanner = { | ||
|
||
mounted() { | ||
const config = { fps: 4, qrbox: (width, height) => {return { width: width * 0.8, height: height * 0.9 }}}; | ||
this.scanner = new Html5Qrcode(this.el.id, { formatsToSupport: [ Html5QrcodeSupportedFormats.QR_CODE ] }); | ||
|
||
const onScanSuccess = (decodedText, decodedResult) => { | ||
const pathname = parseURL(decodedText); | ||
if (pathname != null && pathname !== this.lastRead) { | ||
this.lastRead = pathname; | ||
if (this.el.dataset.on_success) | ||
Function("hook", "pathname", this.el.dataset.on_success)(this, pathname); | ||
} | ||
} | ||
|
||
const startScanner = () => { | ||
this.scanner.start({ facingMode: "environment" }, config, onScanSuccess) | ||
.then((_) => { | ||
if (this.el.dataset.on_start) | ||
Function("hook", this.el.dataset.on_start)(this); | ||
}, (e) => { | ||
if (this.el.dataset.on_error) | ||
Function("hook", this.el.dataset.on_error)(this); | ||
}); | ||
} | ||
|
||
if (this.el.dataset.ask_perm) { | ||
document.getElementById(this.el.dataset.ask_perm).addEventListener("click", startScanner); | ||
} | ||
|
||
if (this.el.dataset.open_on_mount !== undefined) | ||
startScanner(); | ||
}, | ||
|
||
destroyed() { | ||
this.scanner.stop().then((_) => { | ||
if (this.el.dataset.on_stop) | ||
Function("hook", this.el.dataset.on_stop)(this); | ||
}); | ||
} | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
defmodule Atomic.Accounts.UserNotifier do | ||
@moduledoc false | ||
import Swoosh.Email | ||
|
||
alias Atomic.Mailer | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
defmodule Atomic.Events.Enrollment do | ||
@moduledoc """ | ||
An event enrollment. | ||
""" | ||
use Atomic.Schema | ||
|
||
alias Atomic.Accounts.User | ||
alias Atomic.Events.Event | ||
|
||
schema "enrollments" do | ||
field :present, :boolean | ||
belongs_to :event, Event | ||
belongs_to :user, User | ||
|
||
timestamps() | ||
end | ||
|
||
@doc false | ||
def changeset(enrollment, attrs) do | ||
enrollment | ||
|> cast(attrs, [:event_id, :user_id, :present]) | ||
|> validate_required([:event_id, :user_id]) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
defmodule Atomic.Events.Event do | ||
@moduledoc false | ||
use Ecto.Schema | ||
import Ecto.Changeset | ||
|
||
alias Atomic.Activities.Activity | ||
alias Atomic.Activities.Location | ||
alias Atomic.Events.Enrollment | ||
alias Atomic.Events.EventOrganization | ||
@required_fields ~w(name location_id)a | ||
|
||
schema "events" do | ||
field :name, :string | ||
field :description, :string | ||
belongs_to :event_organization, EventOrganization | ||
embeds_one :location, Location, on_replace: :delete | ||
has_many :activities, Activity | ||
has_many :enrollments, Enrollment | ||
|
||
timestamps() | ||
end | ||
|
||
@doc false | ||
def changeset(events, attrs) do | ||
events | ||
|> cast(attrs, @required_fields) | ||
|> validate_required([]) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
defmodule Atomic.Events.EventOrganization do | ||
@moduledoc false | ||
use Ecto.Schema | ||
import Ecto.Changeset | ||
|
||
alias Atomic.Events.Event | ||
alias Atomic.Organizations.Organization | ||
|
||
schema "event_organizations" do | ||
belongs_to :event, Event | ||
belongs_to :organization, Organization | ||
|
||
timestamps() | ||
end | ||
|
||
@doc false | ||
def changeset(event_organization, attrs) do | ||
event_organization | ||
|> cast(attrs, [:event_id, :organization_id]) | ||
|> validate_required([]) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
defmodule Atomic.Mailer do | ||
@moduledoc false | ||
use Swoosh.Mailer, otp_app: :atomic | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
defmodule Atomic.Organizations.Membership do | ||
@moduledoc false | ||
use Atomic.Schema | ||
|
||
alias Atomic.Accounts.User | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
defmodule Atomic.Scheduler do | ||
@moduledoc false | ||
use Quantum, otp_app: :atomic | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.