string Navigation_Passage::getBooksFragment (void * webserver_request, string bible) { Webserver_Request * request = (Webserver_Request *) webserver_request; int activeBook = Ipc_Focus::getBook (request); // Take standard books in case of no Bible. vector <int> books; if (bible == "") { books = Database_Books::getIDs (); } else { books = filter_passage_get_ordered_books (bible); } string html; for (auto book : books) { string bookName = Database_Books::getEnglishFromId (book); bookName = translate (bookName); bool selected = (book == activeBook); addSelectorLink (html, convert_to_string (book), "applybook", bookName, selected); } addSelectorLink (html, "cancel", "applybook", "[" + translate ("cancel") + "]", false); html.insert (0, "<span id='applybook'>" + translate ("Select book") + ": "); html.append ("</span>"); return html; }
string Navigation_Passage::getChaptersFragment (void * webserver_request, string bible, int book, int chapter) { Webserver_Request * request = (Webserver_Request *) webserver_request; vector <int> chapters; if (bible.empty ()) { Database_Versifications database_versifications; chapters = database_versifications.getChapters ("English", book, true); } else { chapters = request->database_bibles()->getChapters (bible, book); } string html; addSelectorLink (html, "previous", "applychapter", "[" + translate ("previous") + "]", false); addSelectorLink (html, "next", "applychapter", "[" + translate ("next") + "]", false); addSelectorLink (html, "cancel", "applychapter", "[" + translate ("cancel") + "]", false); for (auto ch : chapters) { bool selected = (ch == chapter); addSelectorLink (html, convert_to_string (ch), "applychapter", convert_to_string (ch), selected); } addSelectorLink (html, "cancel", "applychapter", "[" + translate ("cancel") + "]", false); html.insert (0, "<span id=\"applychapter\">" + translate ("Select chapter")); html.append ("</span>"); return html; }
string Navigation_Passage::getVersesFragment (void * webserver_request, string bible, int book, int chapter, int verse) { Webserver_Request * request = (Webserver_Request *) webserver_request; vector <int> verses; if (bible == "") { Database_Versifications database_versifications; verses = database_versifications.getVerses (english (), book, chapter); } else { verses = usfm_get_verse_numbers (request->database_bibles()->getChapter (bible, book, chapter)); } string html; html.append (" "); for (auto vs : verses) { bool selected = (verse == vs); addSelectorLink (html, convert_to_string (vs), "applyverse", convert_to_string (vs), selected); } addSelectorLink (html, "cancel", "applyverse", "[" + translate ("cancel") + "]", false); html.insert (0, "<span id=\"applyverse\">" + translate ("Select verse")); html.append ("</span>"); return html; }