-
Notifications
You must be signed in to change notification settings - Fork 969
/
citations.js
2 lines (2 loc) · 5.32 KB
/
citations.js
1
2
define("mvc/citations",["exports","libs/bibtexParse","mvc/base-mvc","utils/localization","latex-to-unicode-converter","latex-parser"],function(t,e,i,n,o,s){"use strict";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(e),l=a(i),c=a(n),d=Backbone.Model.extend(l.default.LoggableMixin).extend({_logNamespace:"citation",defaults:{content:""},initialize:function(){var t;try{t=r.toJSON(this.attributes.content)}catch(t){this.log("Error parsing bibtex: "+t)}if(this._fields={},this.entry=_.first(t),this.entry){var e=this.entry.entryTags;for(var i in e){var n=e[i],o=i.toLowerCase();this._fields[o]=n}}},entryType:function(){return this.entry?this.entry.entryType:void 0},fields:function(){return this._fields}}),h=Backbone.Collection.extend(l.default.LoggableMixin).extend({_logNamespace:"citation",urlRoot:Galaxy.root+"api",partial:!0,model:d}),u=h.extend({url:function(){return this.urlRoot+"/histories/"+this.history_id+"/citations"}}),b=h.extend({url:function(){return this.urlRoot+"/tools/"+this.tool_id+"/citations"},partial:!1}),f=Backbone.View.extend({tagName:"div",className:"citations",render:function(){return this.$el.append("<p>"+this.formattedReference()+"</p>"),this},formattedReference:function(){var t=this.model,e=t.entryType(),i=t.fields(),n="",a=this._asSentence((i.author?i.author:"")+(i.year?" ("+i.year+")":""))+" ",r=i.title||"",l=i.pages?"pp. "+i.pages:"",c=i.address;if("article"==e){var d=(i.volume?i.volume:"")+(i.number?" ("+i.number+")":"")+(l?", "+l:"");n=a+this._asSentence(r)+(i.journal?"In <em>"+i.journal+", ":"")+this._asSentence(d)+this._asSentence(i.address)+"</em>"}else n="inproceedings"==e||"proceedings"==e?a+this._asSentence(r)+(i.booktitle?"In <em>"+i.booktitle+", ":"")+(l||"")+(c?", "+c:"")+".</em>":"mastersthesis"==e||"phdthesis"==e?a+this._asSentence(r)+(i.howpublished?i.howpublished+". ":"")+(i.note?i.note+".":""):"techreport"==e?a+this._asSentence(r)+this._asSentence(i.institution)+this._asSentence(i.number)+this._asSentence(i.type):"book"==e||"inbook"==e||"incollection"==e?a+" "+this._formatBookInfo(i):a+" "+this._asSentence(r)+this._asSentence(i.howpublished)+this._asSentence(i.note);var h="";i.doi&&(n+='[<a href="'+(h="http://dx.doi.org/"+i.doi)+'" target="_blank">doi:'+i.doi+"</a>]");var u=i.url||h;return u&&(n+='[<a href="'+u+'" target="_blank">Link</a>]'),(0,o.convertLaTeX)({onError:function(t,e){return"{"+(0,s.stringifyLaTeX)(e)+"}"}},n)},_formatBookInfo:function(t){var e="";return t.chapter&&(e+=t.chapter+" in "),t.title&&(e+="<em>"+t.title+"</em>"),t.editor&&(e+=", Edited by "+t.editor+", "),t.publisher&&(e+=", "+t.publisher),t.pages&&(e+=", pp. "+t.pages),t.series&&(e+=", <em>"+t.series+"</em>"),t.volume&&(e+=", Vol."+t.volume),t.issn&&(e+=", ISBN: "+t.issn),e+"."},_asSentence:function(t){return t&&t.trim()?t+". ":""}}),p=Backbone.View.extend({initialize:function(){this.setElement("<div/>"),this.listenTo(this.collection,"add",this.renderCitation),this.render()},events:{"click .citations-to-bibtex":"showBibtex","click .citations-to-formatted":"showFormatted"},renderCitation:function(t){var e=new f({model:t});this.$(".citations-formatted").append(e.render().el);var i=this.$(".citations-bibtex-text");i.val(i.val()+"\n\r"+t.attributes.content)},render:function(){this.$el.html(this.citationsElement()),this.collection.each(function(t){this.renderCitation(t)},this),this.showFormatted()},showBibtex:function(){this.$(".citations-to-formatted").show(),this.$(".citations-to-bibtex").hide(),this.$(".citations-bibtex").show(),this.$(".citations-formatted").hide(),this.$(".citations-bibtex-text").select()},showFormatted:function(){this.$(".citations-to-formatted").hide(),this.$(".citations-to-bibtex").show(),this.$(".citations-bibtex").hide(),this.$(".citations-formatted").show()},partialWarningElement:function(){return this.collection.partial?['<div style="padding:5px 10px">',"<b>Warning: This is a experimental feature.</b> Most Galaxy tools will not annotate"," citations explicitly at this time. When writing up your analysis, please manually"," review your histories and find all references"," that should be cited in order to completely describe your work. Also, please remember to",' <a href="https://galaxyproject.org/citing-galaxy">cite Galaxy</a>.',"</div>"].join(""):""},citationsElement:function(){return['<div class="toolForm">','<div class="toolFormTitle">',(0,c.default)("Citations"),' <button type="button" class="btn btn-xs citations-to-bibtex" title="Show all in BibTeX format."><i class="fa fa-pencil-square-o"></i> Show BibTeX</button>',' <button type="button" class="btn btn-xs citations-to-formatted" title="Return to formatted citation list."><i class="fa fa-times"></i> Hide BibTeX</button>',"</div>",'<div class="toolFormBody" style="padding:5px 10px">',this.partialWarningElement(),'<span class="citations-formatted" style="word-wrap: break-word;"></span>',"</div>",'<div class="citations-bibtex toolFormBody" style="padding:5px 10px">','<textarea style="width: 100%; height: 500px;" class="citations-bibtex-text"></textarea>',"</div>","</div>"].join("")}});t.default={Citation:d,HistoryCitationCollection:u,ToolCitationCollection:b,CitationView:f,CitationListView:p}});
//# sourceMappingURL=../../maps/mvc/citations.js.map