commit - 17a96b9f3e444f9ccc92aad27ca5890af61fa2e0
commit + 8d4d245353aa669e60c4e97039dd7c3914e62ac5
blob - d9a860735bffd19f2d84ba0691bf3ab0e60ee222
blob + 2df206605e5aeebf3f38ae1ec3e8db151e649c05
--- gotweb/files/htdocs/gotweb/gotweb.css
+++ gotweb/files/htdocs/gotweb/gotweb.css
width: 100%;
background-color: #ced7e0;
}
-#np_navs {
+#navs {
padding-left: 10px;
padding-top: 2px;
padding-bottom: 2px;
padding-top: 5px;
padding-bottom: 5px;
overflow: auto;
+}
+#shortlog_wrapper {
+ clear: left;
+ float: left;
+ padding-left: 10px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+#shortlog_age {
+ float: left;
+ width: 6.5em;
+}
+#shortlog_author {
+ float: left;
+ width: 7.5em;
+ font-style: italic;
+}
+#shortlog_log {
+ float: left;
+ font-weight: bold;
+}
+#tags_wrapper {
+ clear: left;
+ float: left;
+ padding-left: 10px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+#tags_age {
+ float: left;
+ width: 6.5em;
+}
+#tag {
+ float: left;
+ width: 7.5em;
+ font-style: italic;
+}
+#tag_name {
+ float: left;
+ font-weight: bold;
}
+#heads_wrapper {
+ clear: left;
+ float: left;
+ padding-left: 10px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+#heads_age {
+ float: left;
+ width: 6.5em;
+}
+#head {
+ float: left;
+ font-weight: bold;
+}
/* index.tmpl */
padding-top: 5px;
padding-bottom: 5px;
}
-#summary_shortlog_content_wrapper {
+#summary_shortlog_content {
clear: left;
float: left;
width: 100%;
}
-#summary_shortlog_content {
- padding-left: 10px;
- padding-top: 5px;
- padding-bottom: 5px;
-}
#summary_tags_title_wrapper {
clear: left;
float: left;
padding-top: 5px;
padding-bottom: 5px;
}
-#summary_tags_content_wrapper {
+#summary_tags_content {
clear: left;
float: left;
width: 100%;
}
-#summary_tags_content {
- padding-left: 10px;
- padding-top: 5px;
- padding-bottom: 5px;
-}
#summary_heads_title_wrapper {
clear: left;
float: left;
padding-top: 5px;
padding-bottom: 5px;
}
-#summary_heads_content_wrapper {
+#summary_heads_content {
clear: left;
float: left;
width: 100%;
}
-#summary_heads_content {
- padding-left: 10px;
- padding-top: 5px;
- padding-bottom: 5px;
-}
blob - 2a81b4e630f47940689755f379f67be7423f49ac
blob + 0ca52e2c26e6dff41c63802c4a053773fdcecec7
--- gotweb/gotweb.c
+++ gotweb/gotweb.c
char *);
static char *gw_get_repo_age(struct trans *,
char *, char *, int);
+static char *gw_get_repo_shortlog(struct trans *);
+static char *gw_get_repo_tags(struct trans *);
+static char *gw_get_repo_heads(struct trans *);
static char *gw_get_clone_url(struct trans *, char *);
static char *gw_get_got_link(struct trans *);
static char *gw_get_site_link(struct trans *);
static const struct got_error* gw_blob_diff(struct trans *);
static const struct got_error* gw_commit(struct trans *);
static const struct got_error* gw_commit_diff(struct trans *);
-static const struct got_error* gw_heads(struct trans *);
static const struct got_error* gw_history(struct trans *);
static const struct got_error* gw_index(struct trans *);
static const struct got_error* gw_log(struct trans *);
static const struct got_error* gw_shortlog(struct trans *);
static const struct got_error* gw_snapshot(struct trans *);
static const struct got_error* gw_summary(struct trans *);
-static const struct got_error* gw_tags(struct trans *);
static const struct got_error* gw_tree(struct trans *);
struct gw_query_action {
}
static const struct got_error *
-gw_heads(struct trans *gw_trans)
-{
- const struct got_error *error = NULL;
-
- return error;
-}
-
-static const struct got_error *
gw_history(struct trans *gw_trans)
{
const struct got_error *error = NULL;
gw_shortlog(struct trans *gw_trans)
{
const struct got_error *error = NULL;
- struct got_repository *repo = NULL;
- error = got_repo_open(&repo, gw_trans->repo_path, NULL);
- if (error != NULL)
- return error;
-
-
return error;
}
{
const struct got_error *error = NULL;
char *description_html, *repo_owner_html, *repo_age_html,
- *cloneurl_html;
+ *cloneurl_html, *shortlog, *tags, *heads, *shortlog_html,
+ *tags_html, *heads_html;
error = apply_unveil(gw_trans->gw_dir->path, NULL);
if (error)
}
khttp_puts(gw_trans->gw_req, div_end);
- error = gw_shortlog(gw_trans);
- error = gw_tags(gw_trans);
- error = gw_heads(gw_trans);
- khttp_puts(gw_trans->gw_req, summary_shortlog);
- khttp_puts(gw_trans->gw_req, summary_tags);
- khttp_puts(gw_trans->gw_req, summary_heads);
- return error;
-}
+ shortlog = gw_get_repo_shortlog(gw_trans);
+ tags = gw_get_repo_tags(gw_trans);
+ heads = gw_get_repo_heads(gw_trans);
-static const struct got_error *
-gw_tags(struct trans *gw_trans)
-{
- const struct got_error *error = NULL;
+ if (shortlog != NULL && strcmp(shortlog, "") != 0) {
+ if ((asprintf(&shortlog_html, summary_shortlog,
+ shortlog)) == -1)
+ return got_error_from_errno("asprintf");
+ khttp_puts(gw_trans->gw_req, shortlog_html);
+ free(shortlog_html);
+ free(shortlog);
+ }
+
+ if (tags != NULL && strcmp(tags, "") != 0) {
+ if ((asprintf(&tags_html, summary_tags,
+ tags)) == -1)
+ return got_error_from_errno("asprintf");
+ khttp_puts(gw_trans->gw_req, tags_html);
+ free(tags_html);
+ free(tags);
+ }
+
+ if (heads != NULL && strcmp(heads, "") != 0) {
+ if ((asprintf(&heads_html, summary_heads,
+ heads)) == -1)
+ return got_error_from_errno("asprintf");
+ khttp_puts(gw_trans->gw_req, heads_html);
+ free(heads_html);
+ free(heads);
+ }
return error;
}
fclose(f);
free(d_file);
return url;
+}
+
+static char *
+gw_get_repo_shortlog(struct trans *gw_trans)
+{
+ char *shortlog = NULL;
+
+ asprintf(&shortlog, shortlog_row, "30 min ago", "Flan Author", "this is just a fake ass place holder", shortlog_navs);
+ return shortlog;
}
static char *
+gw_get_repo_tags(struct trans *gw_trans)
+{
+ char *tags = NULL;
+
+ asprintf(&tags, tags_row, "30 min ago", "1.0.0", "tag 1.0.0", tags_navs);
+ return tags;
+}
+
+static char *
+gw_get_repo_heads(struct trans *gw_trans)
+{
+ char *heads = NULL;
+
+ asprintf(&heads, heads_row, "30 min ago", "master", heads_navs);
+ return heads;
+}
+
+static char *
gw_get_got_link(struct trans *gw_trans)
{
char *link;
blob - 9628eafaeef5509996b07e89b3e5318b2dafcf1c
blob + 3aef0f4d79721d7d97e6eb21db510584357cc6ff
--- gotweb/gotweb_ui.h
+++ gotweb/gotweb_ui.h
"<div id='cloneurl_title'>Clone URL: </div>" \
"<div id='cloneurl'>%s</div>";
+char *shortlog_row =
+ "<div id='shortlog_wrapper'>" \
+ "<div id='shortlog_age'>%s</div>" \
+ "<div id='shortlog_author'>%s</div>" \
+ "<div id='shortlog_log'>%s</div>" \
+ "</div>" \
+ "<div id='navs_wrapper'>" \
+ "<div id='navs'>%s</div>" \
+ "</div>" \
+ "</div>" \
+ "<div id='dotted_line'></div>";
+
+char *shortlog_navs =
+ "<a href='?path=%s&action=commit&commit=%s'>commit</a> | " \
+ "<a href='?path=%s&action=commitdiff&commit=%s'>commit diff</a> | " \
+ "<a href='?path=%s&action=tree&commit=%s'>tree</a> | " \
+ "<a href='?path=%s&action=snapshot&commit=%s'>snapshot</a>";
+
+char *tags_row =
+ "<div id='tags_wrapper'>" \
+ "<div id='tags_age'>%s</div>" \
+ "<div id='tag'>%s</div>" \
+ "<div id='tag_name'>%s</div>" \
+ "</div>" \
+ "<div id='navs_wrapper'>" \
+ "<div id='navs'>%s</div>" \
+ "</div>" \
+ "</div>" \
+ "<div id='dotted_line'></div>";
+
+char *tags_navs =
+ "<a href='?path=%s&action=tagt&commit=%s'>tag</a> | " \
+ "<a href='?path=%s&action=commit&commit=%s'>commit</a> | " \
+ "<a href='?path=%s&action=shortlog&commit=%s'>shortlog</a> | " \
+ "<a href='?path=%s&action=log&commit=%s'>log</a>";
+
+char *heads_row =
+ "<div id='heads_wrapper'>" \
+ "<div id='heads_age'>%s</div>" \
+ "<div id='head'>%s</div>" \
+ "</div>" \
+ "<div id='navs_wrapper'>" \
+ "<div id='navs'>%s</div>" \
+ "</div>" \
+ "</div>" \
+ "<div id='dotted_line'></div>";
+
+char *heads_navs =
+ "<a href='?path=%s&action=shortlog&headref=%s'>shortlog</a> | " \
+ "<a href='?path=%s&action=log&headref=%s'>log</a> | " \
+ "<a href='?path=%s&action=tree&headref=%s'>commit</a>";
+
/* index.tmpl */
char *index_projects_header =
"<div id='index_project_owner'>%s</div>" \
"<div id='index_project_age'>%s</div>" \
"<div id='navs_wrapper'>" \
- "<div id='np_navs'>%s</div>" \
+ "<div id='navs'>%s</div>" \
"</div>" \
"</div>" \
"<div id='dotted_line'></div>";
char *summary_shortlog =
"<div id='summary_shortlog_title_wrapper'>" \
"<div id='summary_shortlog_title'>Shortlog</div></div>" \
- "<div id='summary_shortlog_content_wrapper'>" \
- "<div id='summary_shortlog_content'>%s</div>" \
- "</div>";
+ "<div id='summary_shortlog_content'>%s</div>";
char *summary_tags =
"<div id='summary_tags_title_wrapper'>" \
"<div id='summary_tags_title'>Tags</div></div>" \
- "<div id='summary_tags_content_wrapper'>" \
- "<div id='summary_tags_content'>%s</div>" \
- "</div>";
+ "<div id='summary_tags_content'>%s</div>";
char *summary_heads =
"<div id='summary_heads_title_wrapper'>" \
"<div id='summary_heads_title'>Heads</div></div>" \
- "<div id='summary_heads_content_wrapper'>" \
- "<div id='summary_heads_content'>%s</div>" \
- "</div>";
+ "<div id='summary_heads_content'>%s</div>";
#endif /* GOTWEB_UI_H */