the repository which powers this website
Diffstat (limited to 'themed/tree.html')
-rw-r--r--themed/tree.html39
1 files changed, 8 insertions, 31 deletions
diff --git a/themed/tree.html b/themed/tree.html
index 2bf73784..bfd3709e 100644
--- a/themed/tree.html
+++ b/themed/tree.html
@@ -17,35 +17,6 @@
</nav>
<div class="grid grid-cols-[auto_1fr_auto_auto] border border-gray-300 rounded-md mb-4">
{% endblock %}
-{% block tree_content_directory_item(const struct object_id *oid, struct strbuf *base, const char *pathname, unsigned mode, int child_idx) %}
- {# Directory listing entry #}
- {!
- unsigned long size = 0;
- if (!S_ISGITLINK(mode)) {
- oid_object_info(the_repository, oid, &size);
- }
-
- struct strbuf fullpath = STRBUF_INIT;
- strbuf_addf(&fullpath, "%s%s", base->buf, pathname);
- !}
- <div class="pl-3 pr-1 py-2{% if child_idx > 0 %} border-t border-gray-300{% endif %}">
- {% if S_ISDIR(mode) %}
- {# Heroicons solid folder #}
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-5 text-blue-400 mt-[0.1rem]"><path d="M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z" /></svg>
- {% else %}
- {# Heroicons outline document #}
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-5 text-gray-500 mt-[0.1rem]"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" /></svg>
- {% endif %}
- </div>
- <div class="pr-3 py-2{% if child_idx > 0 %} border-t border-gray-300{% endif %}">
- <a href="{! cgit_shared_reporevlink_url("tree", ctx.qry.head, ctx.qry.oid, fullpath.buf); !}" class="hover:text-blue-600 hover:underline">
- {{ pathname }}
- </a>
- </div>
- <div class="pr-3 py-2{% if child_idx > 0 %} border-t border-gray-300{% endif %} text-gray-500 font-mono">{! cgit_print_filemode(mode); !}</div>
- <div class="pr-3 py-2{% if child_idx > 0 %} border-t border-gray-300{% endif %} text-gray-500 text-end">{% if !S_ISDIR(mode) %}{{ size|%ld }}{% endif %}</div>
- {! strbuf_release(&fullpath); !}
-{% endblock %}
{% block tree_content_directory_footer %}
{# Footer for directory listing #}
</div>
@@ -112,7 +83,13 @@
if (strcmp(walk_tree_ctx->match_path, buffer.buf)) {
// Not the target path, so continue to walk the tree
strbuf_release(&buffer);
- return READ_TREE_RECURSIVE;
+
+ if (S_ISGITLINK(mode)) {
+ // Never recurse into submodules
+ return 0;
+ } else {
+ return READ_TREE_RECURSIVE;
+ }
}
// This is the target path
@@ -140,7 +117,7 @@
strbuf_addstr(&buffer, "/");
if (!strcmp(buffer.buf, base->buf)) {
- tree_content_directory_item(oid, base, pathname, mode, walk_tree_ctx->directory_child_idx);
+ tree_listing_item(oid, base, pathname, mode, walk_tree_ctx->directory_child_idx > 0);
walk_tree_ctx->directory_child_idx++;
}
strbuf_release(&buffer);