Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
c1840cd
feat: improve activities index
joaodiaslobo Jun 13, 2024
79fd24d
Merge branch 'develop' into jl/activities
joaodiaslobo Jun 13, 2024
cc40c0c
feat: add enrolled count to enrolled tab in activity index page
joaodiaslobo Jun 13, 2024
5cde7c4
feat: improve activities index tabs
joaodiaslobo Jul 5, 2024
626643c
Merge branch 'develop' into jl/activities
joaodiaslobo Jul 5, 2024
1137a6c
feat: add organization tab and useful discover tab
joaodiaslobo Aug 1, 2024
9349249
feat: improve activity show layout
joaodiaslobo Aug 1, 2024
a2d8b14
Merge branch 'develop' into jl/activities
joaodiaslobo Aug 7, 2024
e0e7f84
fix: merge issues
joaodiaslobo Aug 7, 2024
5c0de8a
feat: activity show page
joaodiaslobo Aug 9, 2024
ed0ee8b
refactor: activity pubsub
joaodiaslobo Aug 9, 2024
05df35b
fix: enrollment limit issues
joaodiaslobo Aug 9, 2024
d418efe
Merge branch 'develop' into jl/activities
joaodiaslobo Sep 3, 2024
67b39dc
feat: add map
joaodiaslobo Sep 8, 2024
98e4c99
Merge branch 'develop' into jl/activities
joaodiaslobo Sep 9, 2024
b454d16
feat: improve location schema
joaodiaslobo Sep 9, 2024
c01793b
Merge branch 'develop' into jl/activities
joaodiaslobo Sep 12, 2024
d793395
feat: participant avatars
joaodiaslobo Sep 12, 2024
2f6821c
feat: add page component to edit page
nunom27 Sep 27, 2024
f179cba
feat: add modal for description field in activities form
enricoprazeres Jan 25, 2025
40f9f89
feat: implement description dynamic button and minor layout improvements
enricoprazeres Jan 26, 2025
9ff9ff8
feat: form layout improvements
enricoprazeres Jan 27, 2025
41ac6e6
fix: typo and styling
enricoprazeres Jan 27, 2025
dd3471d
merge develop and resolve conflicts
enricoprazeres Jan 28, 2025
1c9b5a9
feat: view participants on activity page
enricoprazeres Jan 30, 2025
545d0de
chore: enhance code quality
enricoprazeres Jan 31, 2025
8889150
fix: show ticket crashing
enricoprazeres Feb 5, 2025
31a0355
fix: minor design issues
enricoprazeres Feb 5, 2025
11c27a7
refactor: participants modal
enricoprazeres Feb 7, 2025
9d51352
chore: remove minimum entries
enricoprazeres Feb 7, 2025
31e9014
feat: add modal for maximum entries control
enricoprazeres Feb 7, 2025
28c52f0
fix: image uploader
enricoprazeres Feb 8, 2025
0f48326
fix: image uploader styling
enricoprazeres Feb 8, 2025
5380d9c
feat: add links to users profiles to participants modal
enricoprazeres Feb 9, 2025
ca3e7ef
feat: unlimited entries on activities
enricoprazeres Feb 16, 2025
929d758
feat: unlimited attendees
enricoprazeres Feb 17, 2025
33f417e
chore: add infinity symbol to input placeholder
enricoprazeres Feb 17, 2025
6c941fc
feat: add support for multi-day activities (to display date)
enricoprazeres Feb 17, 2025
6ed444d
chore: improve responsive design
enricoprazeres Feb 19, 2025
cce41c4
feat: show relative enrollment time in participant modal
enricoprazeres Feb 23, 2025
be96992
merge develop
enricoprazeres Apr 27, 2025
ef46d0f
chore: correct merge errors
enricoprazeres Apr 27, 2025
3d7d375
fix: page component
enricoprazeres Apr 27, 2025
1ba7955
fix: remove IO.inspect
enricoprazeres Apr 27, 2025
3fc4033
Merge branch 'develop' into jl/activities
enricoprazeres Apr 30, 2025
eb2e83f
Merge branch 'develop' into jl/activities
enricoprazeres Apr 30, 2025
ced4241
chore: use new image_uploader on activities page
enricoprazeres Apr 30, 2025
bb4c467
chore: remake image_uploader container
enricoprazeres Apr 30, 2025
a5bc732
chore: remove input field classes
enricoprazeres Apr 30, 2025
be8934d
fix: participants count & fields
enricoprazeres May 1, 2025
45c1ab5
fix: activities styling
enricoprazeres Jun 17, 2025
641a877
format
enricoprazeres Jun 17, 2025
c215cd5
chore: modals now open with the input focused (form)
enricoprazeres Jun 18, 2025
ed70207
feat: main layout structure
enricoprazeres Jul 2, 2025
e9a16bf
chore: correct time validations for activities
enricoprazeres Jul 3, 2025
713fff0
fix: changed tests to fit new behavior
enricoprazeres Jul 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions assets/css/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,15 @@ input:-webkit-autofill:focus,
input:-webkit-autofill:active {
-webkit-box-shadow: 0 0 0 30px white inset !important;
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}

/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}
54 changes: 31 additions & 23 deletions assets/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,46 +18,54 @@
//

// Include phoenix_html to handle method=PUT/DELETE in forms and buttons.
import "phoenix_html"
import "phoenix_html";
// Establish Phoenix Socket and LiveView configuration.
import {Socket} from "phoenix"
import {LiveSocket} from "phoenix_live_view"
import { Socket } from "phoenix";
import { LiveSocket } from "phoenix_live_view";
import "../vendor/alpine.js";
import topbar from "../vendor/topbar"
import { QrScanner, InitSorting, StickyScroll, ScrollToTop } from "./hooks";
import phxFeedbackDom from "./shims/phx_feedback_dom.js"
import topbar from "../vendor/topbar";
import {
QrScanner,
InitSorting,
StickyScroll,
ScrollToTop,
FocusEnd,
} from "./hooks";
import phxFeedbackDom from "./shims/phx_feedback_dom.js";

let Hooks = {
QrScanner: QrScanner,
InitSorting: InitSorting,
StickyScroll: StickyScroll,
ScrollToTop: ScrollToTop
ScrollToTop: ScrollToTop,
FocusEnd: FocusEnd,
};

let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
let csrfToken = document
.querySelector("meta[name='csrf-token']")
.getAttribute("content");
let liveSocket = new LiveSocket("/live", Socket, {
params: { _csrf_token: csrfToken },
hooks: Hooks,
dom: phxFeedbackDom({
onBeforeElUpdated(from, to) {
if (from._x_dataStack) {
window.Alpine.clone(from, to);
}
params: { _csrf_token: csrfToken },
hooks: Hooks,
dom: phxFeedbackDom({
onBeforeElUpdated(from, to) {
if (from._x_dataStack) {
window.Alpine.clone(from, to);
}
}),
});
},
}),
});

// Show progress bar on live navigation and form submits
topbar.config({barColors: {0: "#29d"}, shadowColor: "rgba(0, 0, 0, .3)"})
window.addEventListener("phx:page-loading-start", info => topbar.show())
window.addEventListener("phx:page-loading-stop", info => topbar.hide())
topbar.config({ barColors: { 0: "#29d" }, shadowColor: "rgba(0, 0, 0, .3)" });
window.addEventListener("phx:page-loading-start", (info) => topbar.show());
window.addEventListener("phx:page-loading-stop", (info) => topbar.hide());

// connect if there are any LiveViews on the page
liveSocket.connect()
liveSocket.connect();

// expose liveSocket on window for web console debug logs and latency simulation:
// >> liveSocket.enableDebug()
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
// >> liveSocket.disableLatencySim()
window.liveSocket = liveSocket

window.liveSocket = liveSocket;
11 changes: 11 additions & 0 deletions assets/js/hooks/focus_end.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export const FocusEnd = {
mounted() {
const input = this.el;
if (input && input.focus) {
input.focus();
const val = input.value;
input.value = "";
input.value = val;
}
},
};
3 changes: 2 additions & 1 deletion assets/js/hooks/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export { QrScanner } from "./qr_reading.js";
export { InitSorting } from "./sorting.js";
export { StickyScroll } from "./sticky_scroll.js";
export { ScrollToTop } from "./scroll_to_top.js";
export { ScrollToTop } from "./scroll_to_top.js";
export { FocusEnd } from "./focus_end.js";
Loading
Loading