aboutsummaryrefslogtreecommitdiff
path: root/mod/page.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'mod/page.hxx')
-rw-r--r--mod/page.hxx80
1 files changed, 35 insertions, 45 deletions
diff --git a/mod/page.hxx b/mod/page.hxx
index cba8358..7329e2d 100644
--- a/mod/page.hxx
+++ b/mod/page.hxx
@@ -1,5 +1,4 @@
// file : mod/page.hxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
#ifndef MOD_PAGE_HXX
@@ -9,7 +8,7 @@
#include <libbbot/manifest.hxx>
-#include <web/xhtml-fragment.hxx>
+#include <web/xhtml/fragment.hxx>
#include <libbrep/types.hxx>
#include <libbrep/utility.hxx>
@@ -83,21 +82,24 @@ namespace brep
// Generate counter element.
//
- // It could be redunant to distinguish between singular and plural word forms
- // if it wouldn't be so cheap in English, and phrase '1 Packages' wouldn't
- // look that ugly.
+ // If the count argument is nullopt, then it is assumed that the count is
+ // unknown and the '?' character is printed instead of the number.
+ //
+ // Note that it could be redunant to distinguish between singular and plural
+ // word forms if it wouldn't be so cheap in English, and phrase '1 Packages'
+ // wouldn't look that ugly.
//
class DIV_COUNTER
{
public:
- DIV_COUNTER (size_t c, const char* s, const char* p)
+ DIV_COUNTER (optional<size_t> c, const char* s, const char* p)
: count_ (c), singular_ (s), plural_ (p) {}
void
operator() (xml::serializer&) const;
private:
- size_t count_;
+ optional<size_t> count_;
const char* singular_;
const char* plural_;
};
@@ -194,24 +196,19 @@ namespace brep
const string& tenant_;
};
- // Generate package name element with an optional search criteria. The
- // search string should be url-encoded, if specified.
+ // Generate package name element.
//
class TR_NAME
{
public:
- TR_NAME (const package_name& n,
- const string& q,
- const dir_path& r,
- const string& t)
- : name_ (n), query_ (q), root_ (r), tenant_ (t) {}
+ TR_NAME (const package_name& n, const dir_path& r, const string& t)
+ : name_ (n), root_ (r), tenant_ (t) {}
void
operator() (xml::serializer&) const;
private:
const package_name& name_;
- const string& query_;
const dir_path& root_;
const string& tenant_;
};
@@ -379,13 +376,14 @@ namespace brep
class TR_URL
{
public:
- TR_URL (const url& u, const char* l = "url"): url_ (u), label_ (l) {}
+ TR_URL (const manifest_url& u, const char* l = "url")
+ : url_ (u), label_ (l) {}
void
operator() (xml::serializer&) const;
private:
- const url& url_;
+ const manifest_url& url_;
const char* label_;
};
@@ -424,32 +422,20 @@ namespace brep
class TR_REPOSITORY
{
public:
- TR_REPOSITORY (const string& n, const dir_path& r, const string& t)
- : name_ (n), root_ (r), tenant_ (t) {}
+ TR_REPOSITORY (const repository_location& l,
+ const dir_path& r,
+ const string& t)
+ : location_ (l), root_ (r), tenant_ (t) {}
void
operator() (xml::serializer&) const;
private:
- const string& name_;
+ const repository_location& location_;
const dir_path& root_;
const string& tenant_;
};
- // Generate repository location element.
- //
- class TR_LOCATION
- {
- public:
- TR_LOCATION (const repository_location& l): location_ (l) {}
-
- void
- operator() (xml::serializer&) const;
-
- private:
- const repository_location& location_;
- };
-
// Generate link element.
//
class TR_LINK
@@ -486,14 +472,23 @@ namespace brep
class TR_BUILD_RESULT
{
public:
- TR_BUILD_RESULT (const build& b, const string& h, const dir_path& r):
- build_ (b), host_ (h), root_ (r) {}
+ TR_BUILD_RESULT (const build& b,
+ bool a,
+ const string& h,
+ const dir_path& r):
+ build_ (b), archived_ (a), host_ (h), root_ (r)
+ {
+ // We don't expect a queued build to ever be displayed.
+ //
+ assert (build_.state != build_state::queued);
+ }
void
operator() (xml::serializer&) const;
private:
const build& build_;
+ bool archived_;
const string& host_;
const dir_path& root_;
};
@@ -599,16 +594,14 @@ namespace brep
public:
// Generate a full text element.
//
- DIV_TEXT (const string& t,
- text_type tp,
+ DIV_TEXT (const typed_text& t,
bool st,
const string& id,
const string& what,
const basic_mark& diag)
: text_ (t),
- type_ (tp),
strip_title_ (st),
- length_ (t.size ()),
+ length_ (t.text.size ()),
url_ (nullptr),
id_ (id),
what_ (what),
@@ -618,8 +611,7 @@ namespace brep
// Generate a brief text element.
//
- DIV_TEXT (const string& t,
- text_type tp,
+ DIV_TEXT (const typed_text& t,
bool st,
size_t l,
const string& u,
@@ -627,7 +619,6 @@ namespace brep
const string& what,
const basic_mark& diag)
: text_ (t),
- type_ (tp),
strip_title_ (st),
length_ (l),
url_ (&u),
@@ -641,8 +632,7 @@ namespace brep
operator() (xml::serializer&) const;
private:
- const string& text_;
- text_type type_;
+ const typed_text& text_;
bool strip_title_;
size_t length_;
const string* url_; // Full page url.