diff --git a/src/util.cr b/src/util.cr index 8d0f0df..50ad6d0 100644 --- a/src/util.cr +++ b/src/util.cr @@ -143,3 +143,7 @@ def set_token_cookie(env, token) cookie.expires = Time.local.shift years: 1 env.response.cookies << cookie end + +macro render_component(filename) + render "src/views/components/#{{{filename}}}.ecr" +end diff --git a/src/views/components/card.ecr b/src/views/components/card.ecr new file mode 100644 index 0000000..91cde5b --- /dev/null +++ b/src/views/components/card.ecr @@ -0,0 +1,35 @@ +
+ id="<%= item.id %>" + <% end %>> + + + href="<%= base_url %>book/<%= item.id %>" + <% end %>> + +
+ onclick="showModal("<%= item.encoded_path %>", '<%= item.pages %>', <%= (progress.not_nil! * 100).round(1) %>, "<%= item.book.encoded_display_name %>", "<%= item.encoded_display_name %>", '<%= item.title_id %>', '<%= item.id %>')" + <% end %>> + +
+ +
+ +
+ <% unless (item.is_a? Title && item.entries.size == 0) || progress.nil? %> +
<%= (progress * 100).round(1) %>%
+ <% end %> + +

"><%= item.display_name %>

+ <% if item.is_a? Entry %> +

<%= item.pages %> pages

+ <% end %> + <% if item.is_a? Title %> +

<%= item.size %> entries

+ <% end %> +
+
+
+
diff --git a/src/views/components/sort-form.ecr b/src/views/components/sort-form.ecr new file mode 100644 index 0000000..6036a15 --- /dev/null +++ b/src/views/components/sort-form.ecr @@ -0,0 +1,8 @@ +
+ +
diff --git a/src/views/index.ecr b/src/views/index.ecr index 51c9b55..afbbec5 100644 --- a/src/views/index.ecr +++ b/src/views/index.ecr @@ -8,37 +8,19 @@
-
- -
+ <% hash = { + "name" => "Name", + "date" => "Date Modified", + "progress" => "Progress" + } %> + <%= render_component "sort-form" %>
- <%- titles.each_with_index do |t, i| -%> -
- -
-
- -
-
- <%- if t.entries.size > 0 -%> -
<%= (percentage[i] * 100).round(1) %>%
- <%- end -%> -

"><%= t.display_name %>

-

<%= t.size %> entries

-
-
-
-
- <%- end -%> + <% titles.each_with_index do |item, i| %> + <% progress = percentage[i] %> + <%= render_component "card" %> + <% end %>
<% content_for "script" do %> @@ -46,4 +28,4 @@ -<% end %> \ No newline at end of file +<% end %> diff --git a/src/views/title.ecr b/src/views/title.ecr index a2f6eeb..1f704b2 100644 --- a/src/views/title.ecr +++ b/src/views/title.ecr @@ -22,52 +22,24 @@
-
- -
+ <% hash = { + "auto" => "Auto", + "name" => "Name", + "date" => "Date Modified", + "progress" => "Progress" + } %> + <%= render_component "sort-form" %>
- <%- title.titles.each_with_index do |t, i| -%> -
- -
-
- -
-
-

"><%= t.display_name %>

-

<%= t.size %> entries

-
-
-
-
- <%- end -%> - <%- title.entries.each_with_index do |e, i| -%> -
- -
-
- -
-
-
<%= (percentage[i] * 100).round(1) %>%
-

"><%= e.display_name %>

-

<%= e.pages %> pages

-
-
-
-
- <%- end -%> + <% title.titles.each_with_index do |item, i| %> + <% progress = nil %> + <%= render_component "card" %> + <% end %> + <% title.entries.each_with_index do |item, i| %> + <% progress = percentage[i] %> + <%= render_component "card" %> + <% end %>