~bibledit/bibledit/ubuntu-cloud-beta

« back to all changes in this revision

Viewing changes to editone2/update.cpp

  • Committer: Teus Benschop
  • Date: 2022-10-14 16:03:26 UTC
  • Revision ID: teusjannette@gmail.com-20221014160326-42ybrpft4bblpruk
new upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
    return true;
55
55
  }
56
56
  if (Filter_Roles::access_control (webserver_request, Filter_Roles::translator ())) return true;
57
 
  auto [ read, write ] = AccessBible::Any (webserver_request);
 
57
  auto [ read, write ] = access_bible::any (webserver_request);
58
58
  return read;
59
59
}
60
60
 
113
113
  
114
114
  // Checksums of the loaded and edited html.
115
115
  if (good2go) {
116
 
    if (Checksum_Logic::get (loaded_html) != checksum1) {
 
116
    if (checksum_logic::get (loaded_html) != checksum1) {
117
117
      request->response_code = 409;
118
118
      messages.push_back (translate ("Checksum error"));
119
119
      good2go = false;
120
120
    }
121
121
  }
122
122
  if (good2go) {
123
 
    if (Checksum_Logic::get (edited_html) != checksum2) {
 
123
    if (checksum_logic::get (edited_html) != checksum2) {
124
124
      request->response_code = 409;
125
125
      messages.push_back (translate ("Checksum error"));
126
126
      good2go = false;
146
146
 
147
147
  bool bible_write_access = false;
148
148
  if (good2go) {
149
 
    bible_write_access = AccessBible::BookWrite (request, string(), bible, book);
 
149
    bible_write_access = access_bible::book_write (request, string(), bible, book);
150
150
  }
151
151
 
152
152
 
196
196
      string merged_verse_usfm = filter_merge_run (loaded_verse_usfm, edited_verse_usfm, existing_verse_usfm, true, conflicts);
197
197
      // Mail the user if there is a merge anomaly.
198
198
      filter_merge_add_book_chapter (conflicts, book, chapter);
199
 
      bible_logic_optional_merge_irregularity_email (bible, book, chapter, username, loaded_verse_usfm, edited_verse_usfm, merged_verse_usfm);
 
199
      bible_logic::optional_merge_irregularity_email (bible, book, chapter, username, loaded_verse_usfm, edited_verse_usfm, merged_verse_usfm);
200
200
      // Let the merged data now become the edited data (so it gets saved properly).
201
201
      edited_verse_usfm = merged_verse_usfm;
202
202
    }
217
217
  string message;
218
218
  if (good2go && bible_write_access && text_was_edited) {
219
219
    message = filter::usfm::safely_store_verse (request, bible, book, chapter, verse, edited_verse_usfm, explanation, true);
220
 
    bible_logic_unsafe_save_mail (message, explanation, username, edited_verse_usfm, book, chapter);
 
220
    bible_logic::unsafe_save_mail (message, explanation, username, edited_verse_usfm, book, chapter);
221
221
  }
222
222
 
223
223
  
287
287
    vector <int> sizes;
288
288
    vector <string> operators;
289
289
    vector <string> content;
290
 
    bible_logic_html_to_editor_updates (editor_html, server_html, positions, sizes, operators, content);
 
290
    bible_logic::html_to_editor_updates (editor_html, server_html, positions, sizes, operators, content);
291
291
    // Encode the condensed differences for the response to the Javascript editor.
292
292
    for (size_t i = 0; i < positions.size(); i++) {
293
293
      response.append ("#_be_#");
295
295
      response.append ("#_be_#");
296
296
      string operation = operators[i];
297
297
      response.append (operation);
298
 
      if (operation == bible_logic_insert_operator ()) {
 
298
      if (operation == bible_logic::insert_operator ()) {
299
299
        string text = content[i];
300
300
        string character = unicode_string_substr (text, 0, 1);
301
301
        response.append ("#_be_#");
308
308
        response.append ("#_be_#");
309
309
        response.append (convert_to_string (sizes[i]));
310
310
      }
311
 
      else if (operation == bible_logic_delete_operator ()) {
 
311
      else if (operation == bible_logic::delete_operator ()) {
312
312
        // When deleting a UTF-16 character encoded in 4 bytes,
313
313
        // then the size in Quilljs is 2 instead of 1.
314
314
        // So always give the size when deleting a character.
315
315
        response.append ("#_be_#");
316
316
        response.append (convert_to_string (sizes[i]));
317
317
      }
318
 
      else if (operation == bible_logic_format_paragraph_operator ()) {
 
318
      else if (operation == bible_logic::format_paragraph_operator ()) {
319
319
        response.append ("#_be_#");
320
320
        response.append (content[i]);
321
321
      }
322
 
      else if (operation == bible_logic_format_character_operator ()) {
 
322
      else if (operation == bible_logic::format_character_operator ()) {
323
323
        response.append ("#_be_#");
324
324
        response.append (content[i]);
325
325
      }
347
347
 
348
348
  // Test using the Cloud together with client devices with send and receive.
349
349
  
350
 
  bool write = AccessBible::BookWrite (webserver_request, username, bible, book);
351
 
  response = Checksum_Logic::send (response, write);
 
350
  bool write = access_bible::book_write (webserver_request, username, bible, book);
 
351
  response = checksum_logic::send (response, write);
352
352
 
353
353
  // Ready.
354
354
  //this_thread::sleep_for(chrono::seconds(60));