FeedEntryEditor.js 31 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.atom.widget.FeedEntryEditor"]){dojo._hasResource["dojox.atom.widget.FeedEntryEditor"]=true;dojo.provide("dojox.atom.widget.FeedEntryEditor");dojo.require("dojox.atom.widget.FeedEntryViewer");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dijit._Container");dojo.require("dijit.Editor");dojo.require("dijit.form.TextBox");dojo.require("dijit.form.SimpleTextarea");dojo.requireLocalization("dojox.atom.widget","FeedEntryEditor",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw");dojo.requireLocalization("dojox.atom.widget","PeopleEditor",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw");dojo.experimental("dojox.atom.widget.FeedEntryEditor");dojo.declare("dojox.atom.widget.FeedEntryEditor",dojox.atom.widget.FeedEntryViewer,{_contentEditor:null,_oldContent:null,_setObject:null,enableEdit:false,_contentEditorCreator:null,_editors:{},entryNewButton:null,_editable:false,templateString:dojo.cache("dojox.atom","widget/templates/FeedEntryEditor.html","<div class=\"feedEntryViewer\">\n <table border=\"0\" width=\"100%\" class=\"feedEntryViewerMenuTable\" dojoAttachPoint=\"feedEntryViewerMenu\" style=\"display: none;\">\n <tr width=\"100%\" dojoAttachPoint=\"entryCheckBoxDisplayOptions\">\n \t<td align=\"left\" dojoAttachPoint=\"entryNewButton\">\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"doNew\" dojoAttachEvent=\"onclick:_toggleNew\"></span>\n \t</td>\n <td align=\"left\" dojoAttachPoint=\"entryEditButton\" style=\"display: none;\">\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"edit\" dojoAttachEvent=\"onclick:_toggleEdit\"></span>\n </td>\n <td align=\"left\" dojoAttachPoint=\"entrySaveCancelButtons\" style=\"display: none;\">\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"save\" dojoAttachEvent=\"onclick:saveEdits\"></span>\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"cancel\" dojoAttachEvent=\"onclick:cancelEdits\"></span>\n </td>\n <td align=\"right\">\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"displayOptions\" dojoAttachEvent=\"onclick:_toggleOptions\"></span>\n </td>\n </tr>\n <tr class=\"feedEntryViewerDisplayCheckbox\" dojoAttachPoint=\"entryCheckBoxRow\" width=\"100%\" style=\"display: none;\">\n <td dojoAttachPoint=\"feedEntryCelltitle\">\n <input type=\"checkbox\" name=\"title\" value=\"Title\" dojoAttachPoint=\"feedEntryCheckBoxTitle\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelTitle\"></label>\n </td>\n <td dojoAttachPoint=\"feedEntryCellauthors\">\n <input type=\"checkbox\" name=\"authors\" value=\"Authors\" dojoAttachPoint=\"feedEntryCheckBoxAuthors\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelAuthors\"></label>\n </td>\n <td dojoAttachPoint=\"feedEntryCellcontributors\">\n <input type=\"checkbox\" name=\"contributors\" value=\"Contributors\" dojoAttachPoint=\"feedEntryCheckBoxContributors\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelContributors\"></label>\n </td>\n <td dojoAttachPoint=\"feedEntryCellid\">\n <input type=\"checkbox\" name=\"id\" value=\"Id\" dojoAttachPoint=\"feedEntryCheckBoxId\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelId\"></label>\n </td>\n <td rowspan=\"2\" align=\"right\">\n <span class=\"feedEntryViewerMenu\" dojoAttachPoint=\"close\" dojoAttachEvent=\"onclick:_toggleOptions\"></span>\n </td>\n\t\t</tr>\n\t\t<tr class=\"feedEntryViewerDisplayCheckbox\" dojoAttachPoint=\"entryCheckBoxRow2\" width=\"100%\" style=\"display: none;\">\n <td dojoAttachPoint=\"feedEntryCellupdated\">\n <input type=\"checkbox\" name=\"updated\" value=\"Updated\" dojoAttachPoint=\"feedEntryCheckBoxUpdated\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelUpdated\"></label>\n </td>\n <td dojoAttachPoint=\"feedEntryCellsummary\">\n <input type=\"checkbox\" name=\"summary\" value=\"Summary\" dojoAttachPoint=\"feedEntryCheckBoxSummary\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelSummary\"></label>\n </td>\n <td dojoAttachPoint=\"feedEntryCellcontent\">\n <input type=\"checkbox\" name=\"content\" value=\"Content\" dojoAttachPoint=\"feedEntryCheckBoxContent\" dojoAttachEvent=\"onclick:_toggleCheckbox\"/>\n\t\t\t\t<label for=\"title\" dojoAttachPoint=\"feedEntryCheckBoxLabelContent\"></label>\n </td>\n </tr>\n </table>\n \n <table class=\"feedEntryViewerContainer\" border=\"0\" width=\"100%\">\n <tr class=\"feedEntryViewerTitle\" dojoAttachPoint=\"entryTitleRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryTitleHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td>\n \t<select dojoAttachPoint=\"entryTitleSelect\" dojoAttachEvent=\"onchange:_switchEditor\" style=\"display: none\">\n \t\t<option value=\"text\">Text</option>\n\t\t\t\t\t\t\t\t<option value=\"html\">HTML</option>\n\t\t\t\t\t\t\t\t<option value=\"xhtml\">XHTML</option>\n \t</select>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" dojoAttachPoint=\"entryTitleNode\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr class=\"feedEntryViewerAuthor\" dojoAttachPoint=\"entryAuthorRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryAuthorHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entryAuthorNode\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr class=\"feedEntryViewerContributor\" dojoAttachPoint=\"entryContributorRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryContributorHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entryContributorNode\" class=\"feedEntryViewerContributorNames\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n \n <tr class=\"feedEntryViewerId\" dojoAttachPoint=\"entryIdRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryIdHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entryIdNode\" class=\"feedEntryViewerIdText\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n \n <tr class=\"feedEntryViewerUpdated\" dojoAttachPoint=\"entryUpdatedRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryUpdatedHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entryUpdatedNode\" class=\"feedEntryViewerUpdatedText\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n \n <tr class=\"feedEntryViewerSummary\" dojoAttachPoint=\"entrySummaryRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\" colspan=\"2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entrySummaryHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td>\n \t<select dojoAttachPoint=\"entrySummarySelect\" dojoAttachEvent=\"onchange:_switchEditor\" style=\"display: none\">\n \t\t<option value=\"text\">Text</option>\n\t\t\t\t\t\t\t\t<option value=\"html\">HTML</option>\n\t\t\t\t\t\t\t\t<option value=\"xhtml\">XHTML</option>\n \t</select>\n </td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entrySummaryNode\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n \n <tr class=\"feedEntryViewerContent\" dojoAttachPoint=\"entryContentRow\" style=\"display: none;\">\n <td>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr class=\"graphic-tab-lgray\">\n\t\t\t\t\t\t<td class=\"lp2\">\n\t\t\t\t\t\t\t<span class=\"lp\" dojoAttachPoint=\"entryContentHeader\"></span>\n\t\t\t\t\t\t</td>\n </tr>\n <tr>\n <td>\n \t<select dojoAttachPoint=\"entryContentSelect\" dojoAttachEvent=\"onchange:_switchEditor\" style=\"display: none\">\n \t\t<option value=\"text\">Text</option>\n\t\t\t\t\t\t\t\t<option value=\"html\">HTML</option>\n\t\t\t\t\t\t\t\t<option value=\"xhtml\">XHTML</option>\n \t</select>\n </td>\n </tr>\n <tr>\n <td dojoAttachPoint=\"entryContentNode\">\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n</div>\n"),postCreate:function(){if(this.entrySelectionTopic!==""){this._subscriptions=[dojo.subscribe(this.entrySelectionTopic,this,"_handleEvent")];}var _1=dojo.i18n.getLocalization("dojox.atom.widget","FeedEntryViewer");this.displayOptions.innerHTML=_1.displayOptions;this.feedEntryCheckBoxLabelTitle.innerHTML=_1.title;this.feedEntryCheckBoxLabelAuthors.innerHTML=_1.authors;this.feedEntryCheckBoxLabelContributors.innerHTML=_1.contributors;this.feedEntryCheckBoxLabelId.innerHTML=_1.id;this.close.innerHTML=_1.close;this.feedEntryCheckBoxLabelUpdated.innerHTML=_1.updated;this.feedEntryCheckBoxLabelSummary.innerHTML=_1.summary;this.feedEntryCheckBoxLabelContent.innerHTML=_1.content;_1=dojo.i18n.getLocalization("dojox.atom.widget","FeedEntryEditor");this.doNew.innerHTML=_1.doNew;this.edit.innerHTML=_1.edit;this.save.innerHTML=_1.save;this.cancel.innerHTML=_1.cancel;},setEntry:function(_2,_3,_4){if(this._entry!==_2){this._editMode=false;_4=false;}else{_4=true;}dojox.atom.widget.FeedEntryEditor.superclass.setEntry.call(this,_2,_3);this._editable=this._isEditable(_2);if(!_4&&!this._editable){dojo.style(this.entryEditButton,"display","none");dojo.style(this.entrySaveCancelButtons,"display","none");}if(this._editable&&this.enableEdit){if(!_4){dojo.style(this.entryEditButton,"display","");if(this.enableMenuFade&&this.entrySaveCancelButton){dojo.fadeOut({node:this.entrySaveCancelButton,duration:250}).play();}}}},_toggleEdit:function(){if(this._editable&&this.enableEdit){dojo.style(this.entryEditButton,"display","none");dojo.style(this.entrySaveCancelButtons,"display","");this._editMode=true;this.setEntry(this._entry,this._feed,true);}},_handleEvent:function(_5){if(_5.source!=this&&_5.action=="delete"&&_5.entry&&_5.entry==this._entry){dojo.style(this.entryEditButton,"display","none");}dojox.atom.widget.FeedEntryEditor.superclass._handleEvent.call(this,_5);},_isEditable:function(_6){var _7=false;if(_6&&_6!==null&&_6.links&&_6.links!==null){for(var x in _6.links){if(_6.links[x].rel&&_6.links[x].rel=="edit"){_7=true;break;}}}return _7;},setTitle:function(_8,_9,_a){if(!_9){dojox.atom.widget.FeedEntryEditor.superclass.setTitle.call(this,_8,_9,_a);if(_a.title&&_a.title.value&&_a.title.value!==null){this.setFieldValidity("title",true);}}else{if(_a.title&&_a.title.value&&_a.title.value!==null){if(!this._toLoad){this._toLoad=[];}this.entryTitleSelect.value=_a.title.type;var _b=this._createEditor(_8,_a.title,true,_a.title.type==="html"||_a.title.type==="xhtml");_b.name="title";this._toLoad.push(_b);this.setFieldValidity("titleedit",true);this.setFieldValidity("title",true);}}},setAuthors:function(_c,_d,_e){if(!_d){dojox.atom.widget.FeedEntryEditor.superclass.setAuthors.call(this,_c,_d,_e);if(_e.authors&&_e.authors.length>0){this.setFieldValidity("authors",true);}}else{if(_e.authors&&_e.authors.length>0){this._editors.authors=this._createPeopleEditor(this.entryAuthorNode,{data:_e.authors,name:"Author"});this.setFieldValidity("authors",true);}}},setContributors:function(_f,_10,_11){if(!_10){dojox.atom.widget.FeedEntryEditor.superclass.setContributors.call(this,_f,_10,_11);if(_11.contributors&&_11.contributors.length>0){this.setFieldValidity("contributors",true);}}else{if(_11.contributors&&_11.contributors.length>0){this._editors.contributors=this._createPeopleEditor(this.entryContributorNode,{data:_11.contributors,name:"Contributor"});this.setFieldValidity("contributors",true);}}},setId:function(_12,_13,_14){if(!_13){dojox.atom.widget.FeedEntryEditor.superclass.setId.call(this,_12,_13,_14);if(_14.id&&_14.id!==null){this.setFieldValidity("id",true);}}else{if(_14.id&&_14.id!==null){this._editors.id=this._createEditor(_12,_14.id);this.setFieldValidity("id",true);}}},setUpdated:function(_15,_16,_17){if(!_16){dojox.atom.widget.FeedEntryEditor.superclass.setUpdated.call(this,_15,_16,_17);if(_17.updated&&_17.updated!==null){this.setFieldValidity("updated",true);}}else{if(_17.updated&&_17.updated!==null){this._editors.updated=this._createEditor(_15,_17.updated);this.setFieldValidity("updated",true);}}},setSummary:function(_18,_19,_1a){if(!_19){dojox.atom.widget.FeedEntryEditor.superclass.setSummary.call(this,_18,_19,_1a);if(_1a.summary&&_1a.summary.value&&_1a.summary.value!==null){this.setFieldValidity("summary",true);}}else{if(_1a.summary&&_1a.summary.value&&_1a.summary.value!==null){if(!this._toLoad){this._toLoad=[];}this.entrySummarySelect.value=_1a.summary.type;var _1b=this._createEditor(_18,_1a.summary,true,_1a.summary.type==="html"||_1a.summary.type==="xhtml");_1b.name="summary";this._toLoad.push(_1b);this.setFieldValidity("summaryedit",true);this.setFieldValidity("summary",true);}}},setContent:function(_1c,_1d,_1e){if(!_1d){dojox.atom.widget.FeedEntryEditor.superclass.setContent.call(this,_1c,_1d,_1e);if(_1e.content&&_1e.content.value&&_1e.content.value!==null){this.setFieldValidity("content",true);}}else{if(_1e.content&&_1e.content.value&&_1e.content.value!==null){if(!this._toLoad){this._toLoad=[];}this.entryContentSelect.value=_1e.content.type;var _1f=this._createEditor(_1c,_1e.content,true,_1e.content.type==="html"||_1e.content.type==="xhtml");_1f.name="content";this._toLoad.push(_1f);this.setFieldValidity("contentedit",true);this.setFieldValidity("content",true);}}},_createEditor:function(_20,_21,_22,rte){var _23;var box;if(!_21){if(rte){return {anchorNode:_20,entryValue:"",editor:null,generateEditor:function(){var _24=document.createElement("div");_24.innerHTML=this.entryValue;this.anchorNode.appendChild(_24);var _25=new dijit.Editor({},_24);this.editor=_25;return _25;}};}if(_22){_23=document.createElement("textarea");_20.appendChild(_23);dojo.style(_23,"width","90%");box=new dijit.form.SimpleTextarea({},_23);}else{_23=document.createElement("input");_20.appendChild(_23);dojo.style(_23,"width","95%");box=new dijit.form.TextBox({},_23);}box.attr("value","");return box;}var _26;if(_21.value!==undefined){_26=_21.value;}else{if(_21.attr){_26=_21.attr("value");}else{_26=_21;}}if(rte){if(_26.indexOf("<")!=-1){_26=_26.replace(/</g,"&lt;");}return {anchorNode:_20,entryValue:_26,editor:null,generateEditor:function(){var _27=document.createElement("div");_27.innerHTML=this.entryValue;this.anchorNode.appendChild(_27);var _28=new dijit.Editor({},_27);this.editor=_28;return _28;}};}if(_22){_23=document.createElement("textarea");_20.appendChild(_23);dojo.style(_23,"width","90%");box=new dijit.form.SimpleTextarea({},_23);}else{_23=document.createElement("input");_20.appendChild(_23);dojo.style(_23,"width","95%");box=new dijit.form.TextBox({},_23);}box.attr("value",_26);return box;},_switchEditor:function(_29){var _2a=null;var _2b=null;var _2c=null;if(dojo.isIE){_2b=_29.srcElement;}else{_2b=_29.target;}if(_2b===this.entryTitleSelect){_2c=this.entryTitleNode;_2a="title";}else{if(_2b===this.entrySummarySelect){_2c=this.entrySummaryNode;_2a="summary";}else{_2c=this.entryContentNode;_2a="content";}}var _2d=this._editors[_2a];var _2e;var _2f;if(_2b.value==="text"){if(_2d.declaredClass==="dijit.Editor"){_2f=_2d.attr("value",false);_2d.close(false,true);_2d.destroy();while(_2c.firstChild){dojo.destroy(_2c.firstChild);}_2e=this._createEditor(_2c,{value:_2f},true,false);this._editors[_2a]=_2e;}}else{if(_2d.declaredClass!="dijit.Editor"){_2f=_2d.attr("value");_2d.destroy();while(_2c.firstChild){dojo.destroy(_2c.firstChild);}_2e=this._createEditor(_2c,{value:_2f},true,true);_2e=dojo.hitch(_2e,_2e.generateEditor)();this._editors[_2a]=_2e;}}},_createPeopleEditor:function(_30,_31){var _32=document.createElement("div");_30.appendChild(_32);return new dojox.atom.widget.PeopleEditor(_31,_32);},saveEdits:function(){dojo.style(this.entrySaveCancelButtons,"display","none");dojo.style(this.entryEditButton,"display","");dojo.style(this.entryNewButton,"display","");var _33=false;var _34;var i;var _35;var _36;var _37;var _38;if(!this._new){_36=this.getEntry();if(this._editors.title&&(this._editors.title.attr("value")!=_36.title.value||this.entryTitleSelect.value!=_36.title.type)){_34=this._editors.title.attr("value");if(this.entryTitleSelect.value==="xhtml"){_34=this._enforceXhtml(_34);if(_34.indexOf("<div xmlns=\"http://www.w3.org/1999/xhtml\">")!==0){_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}}_36.title=new dojox.atom.io.model.Content("title",_34,null,this.entryTitleSelect.value);_33=true;}if(this._editors.id.attr("value")!=_36.id){_36.id=this._editors.id.attr("value");_33=true;}if(this._editors.summary&&(this._editors.summary.attr("value")!=_36.summary.value||this.entrySummarySelect.value!=_36.summary.type)){_34=this._editors.summary.attr("value");if(this.entrySummarySelect.value==="xhtml"){_34=this._enforceXhtml(_34);if(_34.indexOf("<div xmlns=\"http://www.w3.org/1999/xhtml\">")!==0){_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}}_36.summary=new dojox.atom.io.model.Content("summary",_34,null,this.entrySummarySelect.value);_33=true;}if(this._editors.content&&(this._editors.content.attr("value")!=_36.content.value||this.entryContentSelect.value!=_36.content.type)){_34=this._editors.content.attr("value");if(this.entryContentSelect.value==="xhtml"){_34=this._enforceXhtml(_34);if(_34.indexOf("<div xmlns=\"http://www.w3.org/1999/xhtml\">")!==0){_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}}_36.content=new dojox.atom.io.model.Content("content",_34,null,this.entryContentSelect.value);_33=true;}if(this._editors.authors){if(_33){_36.authors=[];_37=this._editors.authors.getValues();for(i in _37){if(_37[i].name||_37[i].email||_37[i].uri){_36.addAuthor(_37[i].name,_37[i].email,_37[i].uri);}}}else{var _39=_36.authors;var _3a=function(_3b,_3c,uri){for(i in _39){if(_39[i].name===_3b&&_39[i].email===_3c&&_39[i].uri===uri){return true;}}return false;};_37=this._editors.authors.getValues();_35=false;for(i in _37){if(!_3a(_37[i].name,_37[i].email,_37[i].uri)){_35=true;break;}}if(_35){_36.authors=[];for(i in _37){if(_37[i].name||_37[i].email||_37[i].uri){_36.addAuthor(_37[i].name,_37[i].email,_37[i].uri);}}_33=true;}}}if(this._editors.contributors){if(_33){_36.contributors=[];_38=this._editors.contributors.getValues();for(i in _38){if(_38[i].name||_38[i].email||_38[i].uri){_36.addAuthor(_38[i].name,_38[i].email,_38[i].uri);}}}else{var _3d=_36.contributors;var _3e=function(_3f,_40,uri){for(i in _3d){if(_3d[i].name===_3f&&_3d[i].email===_40&&_3d[i].uri===uri){return true;}}return false;};_38=this._editors.contributors.getValues();_35=false;for(i in _38){if(_3e(_38[i].name,_38[i].email,_38[i].uri)){_35=true;break;}}if(_35){_36.contributors=[];for(i in _38){if(_38[i].name||_38[i].email||_38[i].uri){_36.addContributor(_38[i].name,_38[i].email,_38[i].uri);}}_33=true;}}}if(_33){dojo.publish(this.entrySelectionTopic,[{action:"update",source:this,entry:_36,callback:this._handleSave}]);}}else{this._new=false;_36=new dojox.atom.io.model.Entry();_34=this._editors.title.attr("value");if(this.entryTitleSelect.value==="xhtml"){_34=this._enforceXhtml(_34);_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}_36.setTitle(_34,this.entryTitleSelect.value);_36.id=this._editors.id.attr("value");_37=this._editors.authors.getValues();for(i in _37){if(_37[i].name||_37[i].email||_37[i].uri){_36.addAuthor(_37[i].name,_37[i].email,_37[i].uri);}}_38=this._editors.contributors.getValues();for(i in _38){if(_38[i].name||_38[i].email||_38[i].uri){_36.addContributor(_38[i].name,_38[i].email,_38[i].uri);}}_34=this._editors.summary.attr("value");if(this.entrySummarySelect.value==="xhtml"){_34=this._enforceXhtml(_34);_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}_36.summary=new dojox.atom.io.model.Content("summary",_34,null,this.entrySummarySelect.value);_34=this._editors.content.attr("value");if(this.entryContentSelect.value==="xhtml"){_34=this._enforceXhtml(_34);_34="<div xmlns=\"http://www.w3.org/1999/xhtml\">"+_34+"</div>";}_36.content=new dojox.atom.io.model.Content("content",_34,null,this.entryContentSelect.value);dojo.style(this.entryNewButton,"display","");dojo.publish(this.entrySelectionTopic,[{action:"post",source:this,entry:_36}]);}this._editMode=false;this.setEntry(_36,this._feed,true);},_handleSave:function(_41,_42){this._editMode=false;this.clear();this.setEntry(_41,this.getFeed(),true);},cancelEdits:function(){this._new=false;dojo.style(this.entrySaveCancelButtons,"display","none");if(this._editable){dojo.style(this.entryEditButton,"display","");}dojo.style(this.entryNewButton,"display","");this._editMode=false;this.clearEditors();this.setEntry(this.getEntry(),this.getFeed(),true);},clear:function(){this._editable=false;this.clearEditors();dojox.atom.widget.FeedEntryEditor.superclass.clear.apply(this);if(this._contentEditor){this._contentEditor=this._setObject=this._oldContent=this._contentEditorCreator=null;this._editors={};}},clearEditors:function(){for(var key in this._editors){if(this._editors[key].declaredClass==="dijit.Editor"){this._editors[key].close(false,true);}this._editors[key].destroy();}this._editors={};},_enforceXhtml:function(_43){var _44=null;if(_43){var _45=/<br>/g;_44=_43.replace(_45,"<br/>");_44=this._closeTag(_44,"hr");_44=this._closeTag(_44,"img");}return _44;},_closeTag:function(_46,tag){var _47="<"+tag;var _48=_46.indexOf(_47);if(_48!==-1){while(_48!==-1){var _49="";var _4a=false;for(var i=0;i<_46.length;i++){var c=_46.charAt(i);if(i<=_48||_4a){_49+=c;}else{if(c===">"){_49+="/";_4a=true;}_49+=c;}}_46=_49;_48=_46.indexOf(_47,_48+1);}}return _46;},_toggleNew:function(){dojo.style(this.entryNewButton,"display","none");dojo.style(this.entryEditButton,"display","none");dojo.style(this.entrySaveCancelButtons,"display","");this.entrySummarySelect.value="text";this.entryContentSelect.value="text";this.entryTitleSelect.value="text";this.clearNodes();this._new=true;var _4b=dojo.i18n.getLocalization("dojox.atom.widget","FeedEntryViewer");var _4c=new dojox.atom.widget.EntryHeader({title:_4b.title});this.entryTitleHeader.appendChild(_4c.domNode);this._editors.title=this._createEditor(this.entryTitleNode,null);this.setFieldValidity("title",true);var _4d=new dojox.atom.widget.EntryHeader({title:_4b.authors});this.entryAuthorHeader.appendChild(_4d.domNode);this._editors.authors=this._createPeopleEditor(this.entryAuthorNode,{name:"Author"});this.setFieldValidity("authors",true);var _4e=new dojox.atom.widget.EntryHeader({title:_4b.contributors});this.entryContributorHeader.appendChild(_4e.domNode);this._editors.contributors=this._createPeopleEditor(this.entryContributorNode,{name:"Contributor"});this.setFieldValidity("contributors",true);var _4f=new dojox.atom.widget.EntryHeader({title:_4b.id});this.entryIdHeader.appendChild(_4f.domNode);this._editors.id=this._createEditor(this.entryIdNode,null);this.setFieldValidity("id",true);var _50=new dojox.atom.widget.EntryHeader({title:_4b.updated});this.entryUpdatedHeader.appendChild(_50.domNode);this._editors.updated=this._createEditor(this.entryUpdatedNode,null);this.setFieldValidity("updated",true);var _51=new dojox.atom.widget.EntryHeader({title:_4b.summary});this.entrySummaryHeader.appendChild(_51.domNode);this._editors.summary=this._createEditor(this.entrySummaryNode,null,true);this.setFieldValidity("summaryedit",true);this.setFieldValidity("summary",true);var _52=new dojox.atom.widget.EntryHeader({title:_4b.content});this.entryContentHeader.appendChild(_52.domNode);this._editors.content=this._createEditor(this.entryContentNode,null,true);this.setFieldValidity("contentedit",true);this.setFieldValidity("content",true);this._displaySections();},_displaySections:function(){dojo.style(this.entrySummarySelect,"display","none");dojo.style(this.entryContentSelect,"display","none");dojo.style(this.entryTitleSelect,"display","none");if(this.isFieldValid("contentedit")){dojo.style(this.entryContentSelect,"display","");}if(this.isFieldValid("summaryedit")){dojo.style(this.entrySummarySelect,"display","");}if(this.isFieldValid("titleedit")){dojo.style(this.entryTitleSelect,"display","");}dojox.atom.widget.FeedEntryEditor.superclass._displaySections.apply(this);if(this._toLoad){for(var i in this._toLoad){var _53;if(this._toLoad[i].generateEditor){_53=dojo.hitch(this._toLoad[i],this._toLoad[i].generateEditor)();}else{_53=this._toLoad[i];}this._editors[this._toLoad[i].name]=_53;this._toLoad[i]=null;}this._toLoad=null;}}});dojo.declare("dojox.atom.widget.PeopleEditor",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:dojo.cache("dojox.atom","widget/templates/PeopleEditor.html","<div class=\"peopleEditor\">\n\t<table style=\"width: 100%\">\n\t\t<tbody dojoAttachPoint=\"peopleEditorEditors\"></tbody>\n\t</table>\n\t<span class=\"peopleEditorButton\" dojoAttachPoint=\"peopleEditorButton\" dojoAttachEvent=\"onclick:_add\"></span>\n</div>\n"),_rows:[],_editors:[],_index:0,_numRows:0,postCreate:function(){var _54=dojo.i18n.getLocalization("dojox.atom.widget","PeopleEditor");if(this.name){if(this.name=="Author"){this.peopleEditorButton.appendChild(document.createTextNode("["+_54.addAuthor+"]"));}else{if(this.name=="Contributor"){this.peopleEditorButton.appendChild(document.createTextNode("["+_54.addContributor+"]"));}}}else{this.peopleEditorButton.appendChild(document.createTextNode("["+_54.add+"]"));}this._editors=[];if(!this.data||this.data.length===0){this._createEditors(null,null,null,0,this.name);this._index=1;}else{for(var i in this.data){this._createEditors(this.data[i].name,this.data[i].email,this.data[i].uri,i);this._index++;this._numRows++;}}},destroy:function(){for(var key in this._editors){for(var _55 in this._editors[key]){this._editors[key][_55].destroy();}}this._editors=[];},_createEditors:function(_56,_57,uri,_58,_59){var row=document.createElement("tr");this.peopleEditorEditors.appendChild(row);row.id="removeRow"+_58;var _5a=document.createElement("td");_5a.setAttribute("align","right");row.appendChild(_5a);_5a.colSpan=2;if(this._numRows>0){var hr=document.createElement("hr");_5a.appendChild(hr);hr.id="hr"+_58;}row=document.createElement("span");_5a.appendChild(row);row.className="peopleEditorButton";dojo.style(row,"font-size","x-small");dojo.connect(row,"onclick",this,"_removeEditor");row.id="remove"+_58;_5a=document.createTextNode("[X]");row.appendChild(_5a);row=document.createElement("tr");this.peopleEditorEditors.appendChild(row);row.id="editorsRow"+_58;var _5b=document.createElement("td");row.appendChild(_5b);dojo.style(_5b,"width","20%");_5a=document.createElement("td");row.appendChild(_5a);row=document.createElement("table");_5b.appendChild(row);dojo.style(row,"width","100%");_5b=document.createElement("tbody");row.appendChild(_5b);row=document.createElement("table");_5a.appendChild(row);dojo.style(row,"width","100%");_5a=document.createElement("tbody");row.appendChild(_5a);this._editors[_58]=[];this._editors[_58].push(this._createEditor(_56,_59+"name"+_58,"Name:",_5b,_5a));this._editors[_58].push(this._createEditor(_57,_59+"email"+_58,"Email:",_5b,_5a));this._editors[_58].push(this._createEditor(uri,_59+"uri"+_58,"URI:",_5b,_5a));},_createEditor:function(_5c,id,_5d,_5e,_5f){var row=document.createElement("tr");_5e.appendChild(row);var _60=document.createElement("label");_60.setAttribute("for",id);_60.appendChild(document.createTextNode(_5d));_5e=document.createElement("td");_5e.appendChild(_60);row.appendChild(_5e);row=document.createElement("tr");_5f.appendChild(row);_5f=document.createElement("td");row.appendChild(_5f);var _61=document.createElement("input");_61.setAttribute("id",id);_5f.appendChild(_61);dojo.style(_61,"width","95%");var box=new dijit.form.TextBox({},_61);box.attr("value",_5c);return box;},_removeEditor:function(_62){var _63=null;if(dojo.isIE){_63=_62.srcElement;}else{_63=_62.target;}var id=_63.id;id=id.substring(6);for(var key in this._editors[id]){this._editors[id][key].destroy();}var _64=dojo.byId("editorsRow"+id);var _65=_64.parentNode;_65.removeChild(_64);_64=dojo.byId("removeRow"+id);_65=_64.parentNode;_65.removeChild(_64);this._numRows--;if(this._numRows===1&&_65.firstChild.firstChild.firstChild.tagName.toLowerCase()==="hr"){_64=_65.firstChild.firstChild;_64.removeChild(_64.firstChild);}this._editors[id]=null;},_add:function(){this._createEditors(null,null,null,this._index);this._index++;this._numRows++;},getValues:function(){var _66=[];for(var i in this._editors){if(this._editors[i]){_66.push({name:this._editors[i][0].attr("value"),email:this._editors[i][1].attr("value"),uri:this._editors[i][2].attr("value")});}}return _66;}});}