// ERPNext - web based ERP (http://erpnext.com) // Copyright (C) 2012 Web Notes Technologies Pvt Ltd // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // question toolbar // contains - voting widget / tag list and user info / timestamp // By XXXXXX on YYYYY KBItemToolbar = function(args, kb) { $.extend(this, args); var me = this; this.make = function() { this.wrapper = $a(this.parent, 'div', '', {}); this.line1 = $a(this.wrapper, 'div', '', {color: '#888', fontSize:'11px', margin:'7px 0px'}); this.make_timestamp(); this.make_answers(); if(this.with_tags) this.make_tags(); this.setup_del(); } this.make_timestamp = function() { this.line1.innerHTML = repl('By %(name)s | %(when)s', { name: wn.utils.full_name(this.det.first_name, this.det.last_name), when: wn.datetime.comment_when(this.det.modified) }); // allow system manager to delete questions / answers if(has_common(user_roles, ['Administrator', 'System Manager'])) { this.line1.innerHTML += ' | delete'; } } this.make_answers = function() { if(this.doctype=='Question') { if(this.det.answers==0) { this.line1.innerHTML += ' | no answers'; } else if(this.det.answers==1) { this.line1.innerHTML += ' | 1 answer'; } else { this.line1.innerHTML += ' | '+this.det.answers+' answers'; } } } this.make_tags = function() { this.line1.innerHTML += ' | ' this.tags_area = $a(this.line1, 'span', 'kb-tags') this.tags = new TagList(this.tags_area, this.det._user_tags && (this.det._user_tags.split(',')), this.doctype, this.det.name, 0, kb.set_tag_filter) } this.setup_del = function() { $(this.line1).find('.del-link').click(function() { console.log(1); this.innerHTML = 'deleting...'; this.disabled = 1; $c_page('utilities', 'questions', 'delete', { dt: me.doctype, dn: me.det.name}, function(r,rt) { // reload the list kb.list.run() }); }); } this.make(); } // displays an editable text, // needs parent, text, disp_class, inp_class // dt, dn EditableText = function(args) { $.extend(this, args); var me = this; me.$w = $(repl('
\
\ [edit]\ \

Formatted as markdown
\ \ Cancel\
', args)).appendTo(me.parent); this.set_display = function(txt) { var display_wrapper = me.$w.find('.ed-text-display'); display_wrapper.html(wn.markdown(txt)); display_wrapper.find("a").attr("target", "blank"); me.text = txt; } this.set_display(me.text); if(me.height) me.$w.find('.ed-text-input').css('height', me.height); // edit me.$w.find('.ed-text-edit').click(function() { me.$w.find('.ed-text-input').val(me.text); me.show_as_input(); }) // save button - save the new text me.$w.find('.ed-text-save').click( function() { var v = me.$w.find('.ed-text-input').val(); // check if text is written if(!v) { msgprint('Please write something!'); return; } var btn = this; $(btn).set_working(); $c_page('utilities', 'question_view', 'update_item', { dt: me.dt, dn: me.dn, fn: me.fieldname, text: v }, function(r) { $(btn).done_working(); if(r.exc) {msgprint(r.exc); return; } me.set_display(v); me.show_as_text(); }); } ) // cancel button me.$w.find('.ed-text-cancel').click(function() { me.show_as_text(); }) this.show_as_text = function() { me.$w.find('.ed-text-display, .ed-text-edit').toggle(true); me.$w.find('.ed-text-input, .ed-text-save, .ed-text-cancel, .help').toggle(false); } this.show_as_input = function() { me.$w.find('.ed-text-display, .ed-text-edit').toggle(false); me.$w.find('.ed-text-input, .ed-text-save, .ed-text-cancel, .help').toggle(true); } }