blob: ff585f39d1c0ec2e21cd23cf2e9d80b6dd3e1c3f [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
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;
}});
}