X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/9f979033640e55e9eaf62d1f1ae8dca634bdd6e2..c3f7497f5070c9b317a963a2db6cfe5880ff8d15:/redakcja/static/js/wiki/view_annotations.js
diff --git a/redakcja/static/js/wiki/view_annotations.js b/redakcja/static/js/wiki/view_annotations.js
index 72946789..76a0ae9e 100644
--- a/redakcja/static/js/wiki/view_annotations.js
+++ b/redakcja/static/js/wiki/view_annotations.js
@@ -15,8 +15,21 @@
this.$element = $("#side-annotations");
this.$error = $('.error-message', this.$element);
this.$annos = $('.annotations-list', this.$element);
- $('.refresh', this.$element).click(function() {
- self.refresh(self);
+ this.$spinner = $('.spinner', this.$element);
+ this.$refresh = $('.refresh', this.$element);
+
+ this.$refresh.click(function() {
+ $this = $(this);
+
+ self.$refresh.removeClass('active');
+ $this.addClass('active');
+ atype = $this.attr('data-tag');
+
+ self.$annos.hide();
+ self.$error.hide();
+ self.$spinner.show(100, function(){
+ self.refresh(self, atype);
+ });
});
old_callback.call(this);
@@ -27,7 +40,46 @@
AnnotationsPerspective.prototype = new $.wiki.Perspective();
- AnnotationsPerspective.prototype.refresh = function(self) {
+ AnnotationsPerspective.prototype.updateAnnotationIds = function(self){
+ self.annotationToAnchor = {};
+ $('#html-view .annotation-inline-box').each(
+ function(i, annoBox) {
+ var $annoBox = $(annoBox);
+ var $anchor = $("a[name|=anchor]", $annoBox);
+ var htmlContent = $('span', $annoBox).html();
+ // TBD: perhaps use a hash of htmlContent as key
+ self.annotationToAnchor[htmlContent] = $anchor.attr('name');
+ });
+ }
+
+ AnnotationsPerspective.prototype.goToAnnotation = function(self, srcNode){
+ var content = $(srcNode).html();
+ content = content.replace('>', '>', 'g').replace('<', '<', 'g').replace('&', '&', 'g');
+ xml2html({
+ xml: '
WystÄ piÅ bÅÄ d:
' + text + ''); + self.$spinner.hide(); + self.$error.show(); } }); + self.updateAnnotationIds(self); } else { xml = this.doc.text; } - + var parser = new DOMParser(); var serializer = new XMLSerializer(); var doc = parser.parseFromString(xml, 'text/xml'); @@ -56,20 +111,25 @@ if (error.length > 0) { self.$error.html('BÅÄ d parsowania XML.'); + self.$spinner.hide(); self.$error.show(); - self.$annos.hide(); } else { - self.$error.hide(); - self.$annos.hide(); self.$annos.html(''); var anno_list = new Array(); - var annos = doc.getElementsByTagName('pe'); + var annos = $(atype, doc); var counter = annos.length; + var atype_rx = atype.replace(/,/g, '|'); + var ann_expr = new RegExp("^<("+atype_rx+")[^>]*>|("+atype_rx+")>$", "g") - for (var i=0; i