-
- <% if filter.buckets.none? %>
- All collections
- <% elsif filter.buckets.one? %>
- <%= filter.buckets.first.name %>
- <% else %>
- <%= filter.buckets.map(&:name).to_sentence %>
- <% end %>
-
<%= render "filters/settings", filter: filter %>
<%= render "filters/dialog", filter: filter %>
diff --git a/app/views/bubbles/_image.html.erb b/app/views/bubbles/_image.html.erb
index 8cab87923..495600b01 100644
--- a/app/views/bubbles/_image.html.erb
+++ b/app/views/bubbles/_image.html.erb
@@ -1,3 +1,17 @@
-
- <%= image_tag bubble.image.presence || "", data: { upload_preview_target: "image" }, aria: { hidden: true } %>
-
+<% if bubble.image.attached? %>
+ <%= button_to bucket_bubble_image_path(bubble.bucket, bubble), method: :delete, class: "btn" do %>
+ <%= image_tag "picture-remove.svg", aria: { hidden: true }, size: 24 %>
+
Clear background image
+ <% end %>
+<% else %>
+ <%= form_with model: bubble, url: bucket_bubble_path(bubble.bucket, bubble), data: { controller: "form" } do |form| %>
+
+ <% end %>
+<% end %>
diff --git a/app/views/bubbles/_messages.html.erb b/app/views/bubbles/_messages.html.erb
index 49f8655d8..5ddce595a 100644
--- a/app/views/bubbles/_messages.html.erb
+++ b/app/views/bubbles/_messages.html.erb
@@ -3,4 +3,11 @@
<%# Template Dependency: event_summaries/event_summary %>
<%= render bubble.messages, cached: true %>
<%= render "comments/new", bubble: bubble %>
+
+
+
Watching this…
+
+ <%= render partial: "bubbles/watches/watcher", collection: bubble.watchers_and_subscribers.sorted_with_user_first(Current.user) %>
+
+
<% end %>
diff --git a/app/views/bubbles/_meta.html.erb b/app/views/bubbles/_meta.html.erb
new file mode 100644
index 000000000..49d43f0b6
--- /dev/null
+++ b/app/views/bubbles/_meta.html.erb
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/app/views/bubbles/_people.html.erb b/app/views/bubbles/_people.html.erb
new file mode 100644
index 000000000..daf4e311f
--- /dev/null
+++ b/app/views/bubbles/_people.html.erb
@@ -0,0 +1,17 @@
+
+
+ Reported
+ <%= avatar_tag bubble.creator, loading: :lazy, class: "avatar" %>
+
+
+
+
Assigned
+
+ <% bubble.assignees.each do |assignee| %>
+ <%= avatar_tag assignee, loading: :lazy, class: "avatar" %>
+ <% end %>
+
+ <%= render "bubbles/sidebar/assignment", bubble: bubble, users: bubble.bucket.users.active %>
+
+
+
\ No newline at end of file
diff --git a/app/views/bubbles/_pop_toggle.html.erb b/app/views/bubbles/_pop_toggle.html.erb
index 02b92c49f..45bc7c9c9 100644
--- a/app/views/bubbles/_pop_toggle.html.erb
+++ b/app/views/bubbles/_pop_toggle.html.erb
@@ -1,16 +1,15 @@
-
+
<% if bubble.popped? %>
- Popped by <%= bubble.popped_by.name %> on <%= local_datetime_tag(bubble.popped_at, style: :shortdate) %>.
+ Completed by <%= bubble.popped_by.name %> on <%= local_datetime_tag(bubble.popped_at, style: :shortdate) %>.
<%= button_to bucket_bubble_pop_path(bubble.bucket, bubble), method: :delete, class: "btn btn--plain borderless fill-transparent" do %>
- Un-pop
+ Un-do
<% end %>
<% else %>
<%= button_to bucket_bubble_pop_path(bubble.bucket, bubble), class: "btn borderless" do %>
- <%= image_tag "pop.svg", aria: { hidden: true }, size: 24, class: "colorize--white" %>
- Pop
+ Mark as done
<% end %>
-
- Auto-pops <%= local_datetime_tag(bubble.auto_pop_at, style: :indays) %>.
+
+ Auto-closes <%= local_datetime_tag(bubble.auto_pop_at, style: :indays) %>.
<% end %>
diff --git a/app/views/bubbles/_publish.html.erb b/app/views/bubbles/_publish.html.erb
index bd0609a27..9d01f7b13 100644
--- a/app/views/bubbles/_publish.html.erb
+++ b/app/views/bubbles/_publish.html.erb
@@ -1,3 +1,3 @@
-<%= button_to bucket_bubble_publish_path(bubble.bucket, bubble), class: "btn txt-small btn--link" do %>
+<%= button_to bucket_bubble_publish_path(bubble.bucket, bubble), class: "btn txt-small btn--link", style: "--btn-background: #{ bubble.color }" do %>
Post to project
<% end %>
diff --git a/app/views/bubbles/_tags.html.erb b/app/views/bubbles/_tags.html.erb
index 65027e543..ba774fbaf 100644
--- a/app/views/bubbles/_tags.html.erb
+++ b/app/views/bubbles/_tags.html.erb
@@ -1,6 +1,13 @@
-<% bubble.tags.each do |tag| %>
- <%= link_to bubbles_path(bucket_ids: [ bubble.bucket ], tag_ids: [ tag.id ]),
- class: "bubble__tag btn btn--plain fill-transparent min-width", style: "color: #{bubble.color}", data: { turbo_frame: "_top" } do %>
-
<%= tag.hashtag %>
+
+ <% if bubble.tags.any? || bubble.creating? %>
+ #
+ <% bubble.tags.each_with_index do |tag, index| %>
+ <%= link_to bubbles_path(bucket_ids: [ bubble.bucket ], tag_ids: [ tag.id ]),
+ class: "card__tag btn btn--plain min-width txt-uppercase fill-transparent", data: { turbo_frame: "_top" } do %>
+ <%= tag.title %>
+ <% end %><%= ", " unless index == bubble.tags.size - 1 %>
+ <% end %>
<% end %>
-<% end %>
+
+ <%= render "bubbles/sidebar/tag", bubble: bubble, tags: Current.account.tags %>
+
diff --git a/app/views/bubbles/edit.html.erb b/app/views/bubbles/edit.html.erb
index d84b50e2d..d6bd9a8e4 100644
--- a/app/views/bubbles/edit.html.erb
+++ b/app/views/bubbles/edit.html.erb
@@ -1,15 +1,13 @@
<%= turbo_frame_tag @bubble, :edit do %>
- <%= form_with model: @bubble, url: bucket_bubble_path(@bubble.bucket, @bubble), class: "flex flex-column justify-center gap full-width", data: { controller: "form" } do |form| %>
- <%= form.label :title, class: "flex flex-column justify-center align-center" do %>
- <%= form.text_area :title, class: "input input--textara txt-align-center full-width borderless bubble__title-rendered",
+ <%= form_with model: @bubble, url: bucket_bubble_path(@bubble.bucket, @bubble), class: "flex flex-column gap full-width", data: { controller: "form" } do |form| %>
+ <%= form.label :title, class: "flex flex-column align-center" do %>
+ <%= form.text_area :title, class: "input input--textarea full-width borderless txt-align-start card__title-field",
required: true, autofocus: true, placeholder: "Name it…",
+ rows: 3,
data: { action: "keydown.enter->form#submit:prevent keydown.ctrl+enter->form#submit:prevent keydown.meta+enter->form#submit:prevent keydown.esc->form#cancel focus->form#select" },
style: "color: var(--spat-color); --input-border-radius: 0" %>
<% end %>
- <%= form.button "Save", class: "btn btn--reversed txt-small center", type: :submit, hidden: true do %>
- <%= image_tag "check.svg", aria: { hidden: true }, size: 24 %>
-
Save
- <% end %>
+ <%= form.button "Save", type: :submit, hidden: true %>
<%= link_to "Close editor and discard changes", bucket_bubble_path(@bubble.bucket, @bubble), data: { form_target: "cancel" }, hidden: true %>
<% end %>
<% end %>
diff --git a/app/views/bubbles/index.html.erb b/app/views/bubbles/index.html.erb
index e9ca8dbf6..13b6355f4 100644
--- a/app/views/bubbles/index.html.erb
+++ b/app/views/bubbles/index.html.erb
@@ -5,35 +5,41 @@
<% content_for :header do %>
<% end %>
-
+
<% if @bubbles.any? %>
- <%= render partial: "bubbles/bubble", collection: @bubbles.limit(10), cached: true %>
+ <%= render "display_count_selector", display_count: @display_count, filter: @filter %>
+ <%= render partial: "bubbles/card", collection: @bubbles.limit(@display_count), as: :bubble, cached: true %>
<% else %>
- Nothing here.
+ Nothing here.
<% end %>
@@ -45,9 +51,9 @@
data-divider-installed-class="bubbles-list__divider--installed"
data-divider-dragging-class="dragging"
data-action="turbo:morph@document->divider#install dragstart->divider#configureDrag dragenter->divider#acceptDrop dragover->divider#acceptDrop dragover->divider#moveDivider drop->divider#drop">
- <%= render partial: "bubbles/list/bubble", collection: @bubbles, cached: true %>
- <%= render "bubbles/list/divider", filter: @filter %>
+ <%= render partial: "bubbles/list/bubble", collection: @bubbles.offset(@display_count), as: :bubble, cached: true %>
<%= render "notifications/tray" %>
+<%= render "bubbles/pins/tray" %>
diff --git a/app/views/bubbles/list/_bubble.html.erb b/app/views/bubbles/list/_bubble.html.erb
index 2afa6d87f..c3c951d5b 100644
--- a/app/views/bubbles/list/_bubble.html.erb
+++ b/app/views/bubbles/list/_bubble.html.erb
@@ -34,18 +34,42 @@
-
- <% if bubble.due_on.present? %>
-
- Due on <%= local_datetime_tag bubble.due_on, style: :shortdate %>
- <%= local_datetime_tag bubble.due_on, style: :shortdate %>
-
- <% end %>
-
+ <%= tag.button type: "button", class: "pin-tray__all_action btn flex-item-justify-start shadow", data: { action: "click->dialog#close"} do %>
+ <%= image_tag "pinned.svg", aria: { hidden: true }, size: 24 %>
+ See all pins
+ <% end %>
+
+
+