Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
b655749
Phase 1: replace 5-state status with visibility (draft/published) + a…
HamptonMakes Jul 17, 2026
2456eec
Fix Phase 1 stragglers: og description, reference search, badges, bro…
HamptonMakes Jul 17, 2026
7230a5d
Phase 2 migration: libraries, placements, folder re-parenting
HamptonMakes Jul 17, 2026
4ebb925
Phase 2: personal libraries, placements, viewer-relative shelving
HamptonMakes Jul 17, 2026
f3b5c75
Phase 3: profile pages + host directory adapter
HamptonMakes Jul 17, 2026
809ebd7
Phase 4: Home activity feed, people search, three-surface nav
HamptonMakes Jul 17, 2026
91cd581
Design QA polish: nav spacing, profile shelf wrapping
HamptonMakes Jul 17, 2026
d2755f1
Auth: drop colliding usernames instead of failing every request
HamptonMakes Jul 17, 2026
1cad269
Design round: glass UI, quieter states, simpler IA
HamptonMakes Jul 17, 2026
2701f93
Feedback round 2 + full polish/testing/idioms audit
HamptonMakes Jul 18, 2026
5faa9f7
Feedback round 3: Drive-style workspace, changed-section highlights, …
HamptonMakes Jul 18, 2026
2fcbcb5
Full-review fixes: visibility, correctness, JS resilience, perf
HamptonMakes Jul 19, 2026
85ceefd
Round 4: bookmarks + folder navigator, footnote sections, two-way vis…
HamptonMakes Jul 19, 2026
17e1259
Bookmark behaves like a bookmark: second click unsaves, quietly
HamptonMakes Jul 20, 2026
7d10932
Merge origin/main: LinkPreviews + Slack, Mermaid anchors, landing ref…
HamptonMakes Jul 20, 2026
23ec3f2
Fix CI-only test failures: platform diff pairing, /dev/shm exhaustion
HamptonMakes Jul 20, 2026
d1d810e
CI: remove preinstalled chromedriver so selenium-manager provisions C…
HamptonMakes Jul 20, 2026
d2a758f
Scope the Chrome for Testing pin to local runs
HamptonMakes Jul 20, 2026
419e007
Deracify the tag-chip spec: wait for the Stimulus controller to connect
HamptonMakes Jul 20, 2026
e8f355d
Home feed: don't read a born-draft plan's creation as a publish
HamptonMakes Jul 20, 2026
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
9 changes: 7 additions & 2 deletions app/admin/folders.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
ActiveAdmin.register CoPlan::Folder, as: "Folder" do
permit_params :name, :parent_id, :created_by_user_id
permit_params :name, :parent_id, :library_id, :created_by_user_id

index do
selectable_column
id_column
column :name
column("Path") { |folder| folder.path }
column :library
column :parent
column :created_by_user
column :created_at
Expand All @@ -17,6 +18,7 @@
row :id
row :name
row("Path") { resource.path }
row :library
row :parent
row :created_by_user
row :created_at
Expand All @@ -35,7 +37,8 @@
table_for resource.plans.order(updated_at: :desc) do
column :id
column :title
column :status
column :visibility
column :archived_at
column :updated_at
end
end
Expand All @@ -44,6 +47,8 @@
form do |f|
f.inputs do
f.input :name
f.input :library_id, as: :select,
collection: CoPlan::Library.includes(:owner).map { |l| [ "#{l.owner.try(:name) || l.owner_id} — #{l.name}", l.id ] }
f.input :parent, collection: CoPlan::Folder.order(:name).map { |folder| [folder.path, folder.id] }
f.input :created_by_user, collection: CoPlan::User.order(:name).map { |u| [u.name, u.id] }
end
Expand Down
20 changes: 19 additions & 1 deletion app/admin/plan_types.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,37 @@
ActiveAdmin.register CoPlan::PlanType, as: "PlanType" do
permit_params :name, :description, :template_content
permit_params :name, :description, :icon, :template_content

index do
selectable_column
id_column
column :name
column :icon
column :description
column :created_at
actions
end

form do |f|
f.inputs do
f.input :name
f.input :description
# Curated set only (CoPlan::PlansHelper::PLAN_TYPE_ICONS) — icons are
# picked by name and rendered from built-in SVG, so nothing
# user-supplied ever reaches the page as markup. The tint is derived
# from the type's name automatically.
f.input :icon, as: :select,
collection: CoPlan::PlansHelper::PLAN_TYPE_ICONS.keys,
include_blank: "(default document icon)"
f.input :template_content, as: :text
end
f.actions
end

show do
attributes_table do
row :id
row :name
row :icon
row :description
row :default_tags
row :template_content
Expand Down
11 changes: 7 additions & 4 deletions app/admin/plans.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
ActiveAdmin.register CoPlan::Plan, as: "Plan" do
permit_params :title, :status
permit_params :title, :visibility, :archived_at

filter :title
filter :status, as: :select, collection: CoPlan::Plan::STATUSES
filter :visibility, as: :select, collection: CoPlan::Plan::VISIBILITIES
filter :archived_at
filter :plan_type, as: :select
filter :created_at
filter :updated_at
Expand All @@ -11,7 +12,8 @@
selectable_column
id_column
column :title
column :status
column :visibility
column("Archived") { |plan| plan.archived? }
column :current_revision
column :created_by_user
column :updated_at
Expand All @@ -22,7 +24,8 @@
attributes_table do
row :id
row :title
row :status
row :visibility
row :archived_at
row :current_revision
row :created_by_user
row(:tags) { |plan| plan.tag_names.join(", ") }
Expand Down
Loading
Loading