From fce465da41831c71697665a594b3f9287856baaa Mon Sep 17 00:00:00 2001
From: Radek Czajka 
Date: Wed, 6 Mar 2019 15:40:00 +0100
Subject: [PATCH] Fixes #3866: Text counter with footnotes.
---
 src/redakcja/static/js/wiki/view_summary.js    | 16 ++++++++++++----
 src/redakcja/static/js/wiki/wikiapi.js         |  9 ++++++++-
 src/wiki/templates/wiki/tabs/summary_view.html |  8 +++++++-
 3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/redakcja/static/js/wiki/view_summary.js b/src/redakcja/static/js/wiki/view_summary.js
index 099a0e81..1bc3fb5d 100644
--- a/src/redakcja/static/js/wiki/view_summary.js
+++ b/src/redakcja/static/js/wiki/view_summary.js
@@ -32,15 +32,23 @@
     SummaryPerspective.prototype.showCharCount = function() {
         var cc;
         try {
+            $('#charcounts_text').show();
+            $('#charcounts_raw').hide();
+            cc = this.doc.getLength({noFootnotes: true, noThemes: true});
+            $('#charcount').html(cc);
+            $('#charcount_pages').html((Math.round(cc/18)/100).toLocaleString());
+
             cc = this.doc.getLength();
-            $('#charcount_untagged').hide();
+            $('#charcount_full').html(cc);
+            $('#charcount_full_pages').html((Math.round(cc/18)/100).toLocaleString());
         }
         catch (e) {
-            $('#charcount_untagged').show();
+            $('#charcounts_text').hide();
+            $('#charcounts_raw').show();
             cc = this.doc.text.replace(/\s{2,}/g, ' ').length;
+            $('#charcount_raw').html(cc);
+            $('#charcount_raw_pages').html((Math.round(cc/18)/100).toLocaleString());
         }
-        $('#charcount').html(cc);
-        $('#charcount_pages').html((Math.round(cc/18)/100).toLocaleString());
     }
 
     SummaryPerspective.prototype.freezeState = function(){
diff --git a/src/redakcja/static/js/wiki/wikiapi.js b/src/redakcja/static/js/wiki/wikiapi.js
index 8df3ef5a..f4073ff9 100644
--- a/src/redakcja/static/js/wiki/wikiapi.js
+++ b/src/redakcja/static/js/wiki/wikiapi.js
@@ -414,6 +414,7 @@
 
 
     WikiDocument.prototype.getLength = function(params) {
+        params = $.extend({}, noops, params);
         var xml = this.text.replace(/\/(\s+)/g, ' $1');
         var parser = new DOMParser();
         var doc = parser.parseFromString(xml, 'text/xml');
@@ -423,7 +424,13 @@
             throw "Not an XML document.";
         }
         $.xmlns["rdf"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
-        $('rdf|RDF, motyw, pa, pe, pr, pt', doc).remove();
+        $('rdf|RDF', doc).remove();
+        if (params.noFootnotes) {
+            $('pa, pe, pr, pt', doc).remove();
+        }
+	if (params.noThemes) {
+	    $('motyw', doc).remove();
+        }
         var text = $(doc).text();
         text = $.trim(text.replace(/\s{2,}/g, ' '));
         return text.length;
diff --git a/src/wiki/templates/wiki/tabs/summary_view.html b/src/wiki/templates/wiki/tabs/summary_view.html
index 49ad5fe7..341a5ef6 100644
--- a/src/wiki/templates/wiki/tabs/summary_view.html
+++ b/src/wiki/templates/wiki/tabs/summary_view.html
@@ -39,7 +39,13 @@
 		 
 		
 		    {% trans "Characters in document" %}: 
-		      (  {% trans "pages" %}, {% trans "untagged" %} )
+		    
+			      (  {% trans "pages" %}, {% trans "without footnotes and themes" %})
+			      (  {% trans "pages" %}, {% trans "with footnotes and themes" %})
+		     
+		    
+			      (  {% trans "pages" %}, {% trans "untagged" %})
+		     
 		
 	
 
-- 
2.20.1