void Editor_Export::stylesheet (string stylesheet) { Webserver_Request * request = (Webserver_Request *) webserver_request; styles.clear (); noteOpeners.clear (); characterStyles.clear (); vector <string> markers = request->database_styles()->getMarkers (stylesheet); // Load the style information into the object. for (string & marker : markers) { Database_Styles_Item style = request->database_styles()->getMarkerData (stylesheet, marker); styles [marker] = style; // Get markers with should not have endmarkers. bool suppress = false; int type = style.type; int subtype = style.subtype; if (type == StyleTypeVerseNumber) suppress = true; if (type == StyleTypeFootEndNote) { suppress = true; if (subtype == FootEndNoteSubtypeFootnote) noteOpeners.insert (marker); if (subtype == FootEndNoteSubtypeEndnote) noteOpeners.insert (marker); if (subtype == FootEndNoteSubtypeContentWithEndmarker) suppress = false; if (subtype == FootEndNoteSubtypeParagraph) suppress = false; } if (type == StyleTypeCrossreference) { suppress = true; if (subtype == CrossreferenceSubtypeCrossreference) noteOpeners.insert (marker); if (subtype == CrossreferenceSubtypeContentWithEndmarker) suppress = false; } if (type == StyleTypeTableElement) suppress = true; if (suppress) suppressEndMarkers.insert (marker); } }
// Generates the CSS. void Styles_Css::generate () { code.push_back (".superscript { font-size: x-small; vertical-align: super; }"); if (exports_enabled) { add_exports_styles (); } if (editor_enabled) { add_editor_styles (); } Webserver_Request * request = (Webserver_Request *) webserver_request; vector <string> markers = request->database_styles ()->getMarkers (stylesheet); for (auto & marker : markers) { Database_Styles_Item style = request->database_styles ()->getMarkerData (stylesheet, marker); evaluate (&style); } }
// Cleans and resets the data in the Bibledit installation. void demo_clean_data () { Database_Logs::log ("Cleaning up the demo data"); Webserver_Request request; // Set user to the demo credentials (admin) as this is the user who is always logged-in in a demo installation. request.session_logic ()->setUsername (session_admin_credentials ()); // Delete empty stylesheet that may have been there. request.database_styles()->revokeWriteAccess ("", styles_logic_standard_sheet ()); request.database_styles()->deleteSheet (""); styles_sheets_create_all (); // Set the export stylesheet to "Standard" for all Bibles and the admin. vector <string> bibles = request.database_bibles()->getBibles (); for (auto & bible : bibles) { Database_Config_Bible::setExportStylesheet (bible, styles_logic_standard_sheet ()); } request.database_config_user()->setStylesheet (styles_logic_standard_sheet ()); // Set the site language to "Default" Database_Config_General::setSiteLanguage (""); // Ensure the default users are there. map <string, int> users = { make_pair ("guest", Filter_Roles::guest ()), make_pair ("member", Filter_Roles::member ()), make_pair ("consultant", Filter_Roles::consultant ()), make_pair ("translator", Filter_Roles::translator ()), make_pair ("manager", Filter_Roles::manager ()), make_pair (session_admin_credentials (), Filter_Roles::admin ()) }; for (auto & element : users) { if (!request.database_users ()->usernameExists (element.first)) { request.database_users ()->addNewUser(element.first, element.first, element.second, ""); } request.database_users ()->updateUserLevel (element.first, element.second); } // Create / update sample Bible. demo_create_sample_bible (); // Create sample notes. demo_create_sample_notes (&request); // Create samples for the workbenches. demo_create_sample_workbenches (&request); // Set navigator to John 3:16. Ipc_Focus::set (&request, 43, 3, 16); // Set and/or trim resources to display. // Too many resources crash the demo: Limit the amount. vector <string> resources = request.database_config_user()->getActiveResources (); bool reset_resources = false; if (resources.size () > 25) reset_resources = true; vector <string> defaults = demo_logic_default_resources (); for (auto & name : defaults) { if (!in_array (name, resources)) reset_resources = true; } if (reset_resources) { resources = demo_logic_default_resources (); request.database_config_user()->setActiveResources (resources); } // No flipped basic <> advanded mode. request.database_config_user ()->setFlipInterfaceMode (false); }