From 2a0f39b29c1bea6a4497c0f1826052ffa453af9e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 21 Apr 2016 16:05:13 +0200 Subject: Move module implementation from brep/ to mod/ --- brep/mod-repository-details.cxx | 146 ---------------------------------------- 1 file changed, 146 deletions(-) delete mode 100644 brep/mod-repository-details.cxx (limited to 'brep/mod-repository-details.cxx') diff --git a/brep/mod-repository-details.cxx b/brep/mod-repository-details.cxx deleted file mode 100644 index b0e2b95..0000000 --- a/brep/mod-repository-details.cxx +++ /dev/null @@ -1,146 +0,0 @@ -// file : brep/mod-repository-details.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include - -#include // tzset() - -#include -#include // max() - -#include - -#include -#include - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -using namespace std; -using namespace odb::core; -using namespace brep::cli; - -// While currently the user-defined copy constructor is not required (we don't -// need to deep copy nullptr's), it is a good idea to keep the placeholder -// ready for less trivial cases. -// -brep::repository_details:: -repository_details (const repository_details& r) - : database_module (r), - options_ (r.initialized_ ? r.options_ : nullptr) -{ -} - -void brep::repository_details:: -init (scanner& s) -{ - MODULE_DIAG; - - options_ = make_shared ( - s, unknown_mode::fail, unknown_mode::fail); - - database_module::init (*options_); - - if (options_->root ().empty ()) - options_->root (dir_path ("/")); - - tzset (); // To use butl::to_stream() later on. -} - -bool brep::repository_details:: -handle (request& rq, response& rs) -{ - using namespace web::xhtml; - - MODULE_DIAG; - - const dir_path& root (options_->root ()); - - // Make sure no parameters passed. - // - try - { - name_value_scanner s (rq.parameters ()); - params::repository_details (s, unknown_mode::fail, unknown_mode::fail); - } - catch (const unknown_argument& e) - { - throw invalid_request (400, e.what ()); - } - - static const string title ("About"); - xml::serializer s (rs.content (), title); - - s << HTML - << HEAD - << TITLE << title << ~TITLE - << CSS_LINKS (path ("repository-details.css"), root) - << ~HEAD - << BODY - << DIV_HEADER (root, options_->logo (), options_->menu ()) - << DIV(ID="content"); - - transaction t (db_->begin ()); - - using query = query; - - for (const auto& r: - db_->query ( - query::internal + "ORDER BY" + query::priority)) - { - //@@ Feels like a lot of trouble (e.g., id_attribute()) for very - // dubious value. A link to the package search page just for - // this repository would probably be more useful. - // - string id (html_id (r.name)); - s << H1(ID=id) - << A(HREF="#" + web::mime_url_encode (id)) << r.display_name << ~A - << ~H1; - - if (r.summary) - s << H2 << *r.summary << ~H2; - - if (r.description) - s << P_DESCRIPTION (*r.description); - - if (r.email) - { - const email& e (*r.email); - - s << P - << A(HREF="mailto:" + e) << e << ~A; - - if (!e.comment.empty ()) - s << " (" << e.comment << ")"; - - s << ~P; - } - - ostringstream o; - butl::to_stream (o, - max (r.packages_timestamp, r.repositories_timestamp), - "%Y-%m-%d %H:%M:%S%[.N] %Z", - true, - true); - - s << P << o.str () << ~P; - } - - t.commit (); - - s << ~DIV - << ~BODY - << ~HTML; - - return true; -} -- cgit v1.1