} \r
}\r
\r
-\r
var gXimfHdrs = null; \r
// \r
function XimfmailInstanceHeaders(){\r
};\r
// \r
XimfmailInstanceHeaders.prototype.loadXimfSecurityRules = function(){\r
- var isSigned = false;\r
- \r
+ var isToogleSigned = false;\r
// get secure state from prefs\r
- if (gSMFields) isSigned = gSMFields.signMessage; \r
+ if(!gSMFields){\r
+ // use Trustedbird function to initialize gSMFields\r
+ onComposerReOpen(); \r
+ }\r
\r
// secure headers \r
try{\r
serializer.serializeToStream(signHeaders, foStream, ""); // rememeber, doc is the DOM tree\r
foStream.close();\r
\r
- // set folder datas \r
+ // set folder datas\r
gCurrentIdentity.setCharAttribute("secureheaders.folderdata",file.path);\r
\r
- // sign message with secure headers\r
+ // message with secure headers : force sign message\r
gCurrentIdentity.setBoolAttribute("secureheaders.checked",true);\r
$("#idItemSecureHeaders_1").attr("checked","true"); \r
$("#idItemSecureHeaders_2").attr("checked","true"); \r
$("#idItemSecureHeaders_1").attr("disabled","true");\r
- $("#idItemSecureHeaders_2").attr("disabled","true"); \r
- if(!isSigned){\r
- toggleSignMessage();// signMessage(); // from file msgCompSMIMIEOverlay.js\r
- isSigned = true;\r
- } \r
+ $("#idItemSecureHeaders_2").attr("disabled","true"); \r
+ \r
+ $("#menu_securitySign1").attr("checked","true");\r
+ $("#menu_securitySign2").attr("checked","true");\r
$("#menu_securitySign1").attr("disabled","true");\r
- $("#menu_securitySign2").attr("disabled","true"); \r
+ $("#menu_securitySign2").attr("disabled","true");\r
\r
+ if(!gSMFields.signMessage){\r
+ toggleSignMessage();\r
+ isToogleSigned = true;\r
+ // if certificate problem resolved, try to load ui signature\r
+ if (gCurrentIdentity.getUnicharAttribute("signing_cert_name")&&!gSMFields.signMessage){\r
+ toggleSignMessage();// certificate is set by user\r
+ }\r
+ \r
+ }\r
gConsole.logStringMessage("ximfmail - loadSecurityRules - secureHeaders on "); \r
}\r
}else{\r
_eSSSecurityLabelHdrArray = CreateRulesArray(_instance,"ximf:securityLabel");\r
if(_eSSSecurityLabelHdrArray.length > 0){ \r
$("#menu_securityLabelDialog1").attr("checked","true"); \r
- $("#menu_securityLabelDialog2").attr("checked","true"); \r
$("#menu_securityLabelDialog1").attr("disabled","true");\r
+ $("#menu_securityLabelDialog2").attr("checked","true"); \r
$("#menu_securityLabelDialog2").attr("disabled","true");\r
\r
- if(!isSigned){\r
- toggleSignMessage(); // from file msgCompSMIMIEOverlay.js\r
- isSigned = true;\r
- }\r
- if(gSMFields){\r
- gSMFields.securityClassification = -1;\r
- gSMFields.privacyMark = "";\r
- gSMFields.securityCategories = "";\r
- }\r
+ $("#menu_securitySign1").attr("checked","true"); \r
+ $("#menu_securitySign1").attr("disabled","true");\r
+ $("#menu_securitySign2").attr("checked","true");\r
+ $("#menu_securitySign2").attr("disabled","true");\r
+ \r
+ if(!gSMFields.signMessage){\r
+ if(!isToogleSigned){\r
+ toggleSignMessage();\r
+ // if certificate problem resolved, try to load ui signature\r
+ if (gCurrentIdentity.getUnicharAttribute("signing_cert_name")&&!gSMFields.signMessage){\r
+ toggleSignMessage();// certificate is set by user\r
+ }\r
+ }\r
+ } \r
+ \r
+ // \r
+ gSMFields.securityClassification = -1;\r
+ gSMFields.privacyMark = "";\r
+ gSMFields.securityCategories = ""; \r
gConsole.logStringMessage("ximfmail - loadSecurityRules - securityLabels on "); \r
}else{\r
gConsole.logStringMessage("ximfmail - loadSecurityRules - securityLabels off "); \r
function InsertXimfmailComposer(currentInstance){\r
try{\r
if(gXimfHdrs){gXimfHdrs = null;}\r
- \r
gXimfHdrs = new XimfmailInstanceHeaders();\r
gXimfHdrs.init(currentInstance);\r
gXimfHdrs.loadXimfSecurityRules();\r
\r
// ihm init \r
- ResetXimfhdrsDom();\r
InsertXimfhdrsDom(gXimfHdrs.getXimfInstanceResource(), gChromeXslMsgCompose);\r
\r
// controler init \r
* DOM MANIPULATIONS OF XIMFMAIL ELEMENTS\r
*/\r
function ResetXimfhdrsDom(){\r
- // delete old ximf items\r
- $("#ximfmailComposeMessageHeadersTablist").empty();\r
+ try{\r
+ // delete old ximf items\r
+ $("#ximfmailComposeMessageHeadersTablist").empty();\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - ResetXimfhdrsDom ] " + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);\r
+ }\r
}\r
\r
function InsertXimfhdrsDom(ximfInstanceResource, urlXslTemplate){\r
$("#isUsingXimfail").attr("hidden","true");\r
return;\r
}\r
- $("#isUsingXimfail").attr("hidden","false");\r
- \r
+\r
if(gXimfCatalog){\r
$("#ximfmailComposeMessageTitle").attr("value",gXimfCatalog.getLabelInstance(ximfInstanceResource));\r
}else{\r
$("#ximfmailComposeMessageHeadersTablist").append(CreateDOMWithXimfInstance(ximfInstanceResource, urlXslTemplate));\r
}catch(e){\r
// TODO : alert user of xslt problem\r
- ("#isUsingXimfail").attr("hidden","false");\r
+ ("#isUsingXimfail").attr("hidden","true");\r
} \r
\r
// custom panels where maxitem=1 and contains composed elements\r
for(j=0;j<mnuitems.length;++j){\r
var chkbx = document.createElement("checkbox");\r
$(chkbx).attr("id",$(mnuitems[j]).attr("id"));\r
+ $(chkbx).attr("class","ximfCheckbox");\r
$(chkbx).attr("label",$(mnuitems[j]).attr("label"));\r
$(chkbx).attr("ximfvalue",$(mnuitems[j]).attr("ximfvalue"));\r
$(chkbx).attr("ximftextbox",$(mnuitems[j]).attr("ximftextbox"));\r
// Custom Ximf Headers Dom\r
CustomXimfhdrsInputBox(); \r
CustomXimfhdrsButton(); \r
- CustomXimfhdrsTreeDialog(); // append DOM elements to access external datas \r
+ CustomXimfhdrsTreeDialog(); // append DOM elements to access external datas\r
+ \r
+ // display Ximf elements\r
+ $("#isUsingXimfail").attr("hidden","false");\r
} \r
\r
/*\r
var listEditorClass = $("popup > textbox[class='ximfInputbox']");\r
for(var i = 0 ; i<listEditorClass.length ; ++i){ \r
try{\r
- var idTxtBox = listEditorClass[i].getAttribute("ximfreftextbox");\r
- var inputbox = $("textbox[id='"+idTxtBox+"'][class]");\r
- if(inputbox[0].getAttribute("class") != "ximfDatetime"){ \r
- var editor_button = $("textbox[id='"+idTxtBox+"']>button");\r
- editor_button[0].setAttribute("class","ximfmailButtonTxt ximfEditor"); \r
- editor_button[0].setAttribute("tooltiptext",getIlkProperties("ximfmail.composer.editor.image"));\r
- editor_button[0].setAttribute("refbox",inputbox[0].getAttribute("id")); \r
+ var idTxtBox = $(listEditorClass[i]).attr("ximfreftextbox");\r
+ var inputbox = $("textbox[id='"+idTxtBox+"']");\r
+ if($(inputbox).attr("class") != "ximfDatetime"){ \r
+ var editor_button = $("textbox[id='"+idTxtBox+"']>button"); \r
+ $(editor_button).attr("class","ximfmailButtonTxt ximfEditor"); \r
+ $(editor_button).attr("tooltiptext",getIlkProperties("ximfmail.composer.editor.image"));\r
+ $(editor_button).attr("refbox",$(inputbox).attr("id"));\r
\r
- inputbox[0].setAttribute("ximfmaxitems", listEditorClass[i].getAttribute("ximfmaxitems"));\r
- inputbox[0].setAttribute("ximfminitems", listEditorClass[i].getAttribute("ximfminitems"));\r
- inputbox[0].setAttribute("ximseparator", listEditorClass[i].getAttribute("ximseparator"));\r
- inputbox[0].setAttribute("tabindex",parseInt(i, 10)+100);\r
- inputbox[0].setAttribute("class","ximfEditor"); \r
- inputbox[0].removeAttribute("popup");\r
- inputbox[0].removeAttribute("readonly");\r
+ $(inputbox).attr("ximfmaxitems", $(listEditorClass[i]).attr("ximfmaxitems"));\r
+ $(inputbox).attr("ximfminitems", $(listEditorClass[i]).attr("ximfminitems"));\r
+ $(inputbox).attr("ximseparator", $(listEditorClass[i]).attr("ximseparator"));\r
+ $(inputbox).attr("tabindex",parseInt(i, 10)+100);\r
+ $(inputbox).attr("class","ximfEditor");\r
+ $(inputbox).removeAttr("popup");\r
+ $(inputbox).removeAttr("readonly");\r
}\r
}catch(e){\r
- gConsole.logStringMessage("[ximfmail - modifyEditorBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber); \r
+ gConsole.logStringMessage("[ximfmail - CustomXimfhdrsInputBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber); \r
} \r
}\r
\r
rdfdataSource = _dataSourceArray[idxDatasSource]._dataSource;\r
refRdfdataSource = _dataSourceArray[idxDatasSource]._refDataSource;\r
}else{ \r
- // get xml schema from profile instance directory \r
+ // get xml schema from profile instance directory\r
var sCompletePath = getFilePathInProfile("extensions/"+gXimfCatalog.getSchemaInstance(gXimfHdrs.getXimfInstanceResource()));\r
sCompletePath = sCompletePath.substring(0, sCompletePath.lastIndexOf("\\")+1) + keyCat; \r
var dir = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);\r
} \r
}\r
\r
+\r
/*\r
* Open window text editor\r
*/\r
$("button[class*='ximfEraser']").bind("command",OnClickEraser); \r
$("button[class*='ximfTreeDialog']").bind("command",OnClickTreeDialogButton);\r
$("button[class*='ximfDatepicker']").bind("command",OnClickDatepicker); \r
- $("textbox[class='ximfEditor']").click(OnXimfhdrsEditor); \r
+ $("textbox[class='ximfEditor']").click(OnXimfhdrsEditor);\r
$("textbox[class='ximfEditor']").bind("change",OnCheckXimfhdrsEditor); \r
$("button[class*='ximfEditor']").bind("command",OnClickEditorButton);\r
\r
+ // check for mandatory ximf headers when editor texbox has changed\r
+ $("#ximfmailComposeMessageHeadersTablist textbox").bind("change",function(e){\r
+ e.currentTarget.setAttribute("ximfvalue",e.currentTarget.value);\r
+ CheckXimfhdrsSelection();});\r
+ \r
// get complete information of ximf hdr\r
$("button[class*='ximfDetail']").bind("command",function(evt){\r
OpenInfoDialog($(evt.currentTarget).attr("refLabel")); \r
}catch(e){\r
gConsole.logStringMessage("[ximfmail - OnSelectXimfmailContextBox ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber); \r
}\r
-} \r
-\r
+}\r
+ \r
function OnCheckXimfhdrsEditor(evt){\r
try{\r
//alert(evt.currentTarget.id)\r
var arrayCheckedbox = null;\r
while(nextElt){\r
if(nextElt.localName == "popup"){ \r
- arrayCheckedbox = $("popup[id='"+nextElt.id+"'] checkbox[class='ximCheckbox'][checked]" ); \r
+ arrayCheckedbox = $("popup[id='"+nextElt.id+"'] checkbox[class='ximfCheckbox'][checked]" ); \r
//alert("checklist OK !!" + nextElt.id + arrayCheckbox.length);\r
// id of parent node\r
idTextBox = nextElt.getAttribute('ximfreftextbox'); \r
// send hidden headers elements\r
var arrayValues = $("label[class='ximfHiddenHeader']");\r
if(arrayValues){ \r
- for(var idx=0; idx<=arrayValues.length; idx++){\r
+ for(var idx=0; idx<arrayValues.length; idx++){\r
try { \r
if(arrayValues[idx].getAttribute(_XIMF_ATT_XVALUE)){ \r
sCompleteList += EncodeMimeXimfheader($(arrayValues[idx]).attr("ximfheader"), $(arrayValues[idx]).attr(_XIMF_ATT_XVALUE), charSet) + headersSeparator; \r
// send textbox elements\r
arrayValues = $("textbox[class='XimfTextboxDisplay']");\r
if(arrayValues){ \r
- for(var idx=0; idx<=arrayValues.length; idx++){\r
+ for(var idx=0; idx<arrayValues.length; idx++){\r
try { \r
if($(arrayValues[idx]).attr(_XIMF_ATT_XVALUE)){\r
sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idx]).attr(_XIMF_ATT_REF_HEADER)).attr("ximfheader"), $(arrayValues[idx]).attr(_XIMF_ATT_XVALUE), charSet) + headersSeparator;\r
try{ \r
arrayValues = $("textbox[class='ximfEditor']");\r
if(arrayValues){\r
- for( idx=0; idx<=arrayValues.length; idx++){ \r
+ for( idx=0; idx<arrayValues.length; idx++){ \r
if(arrayValues[idx].value){\r
try{\r
sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idx]).attr(_XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idx].value, charSet) + headersSeparator; \r
//arrayValues = $("#ximfmailComposeMessagePanel " + _XIMF_ELT_DATEPICKER); \r
arrayValues = $("textbox[class='ximfDatetime']"); \r
if(arrayValues){ \r
- for( idx=0; idx<=arrayValues.length; idx++){ \r
+ for( idx=0; idx<arrayValues.length; idx++){ \r
if(arrayValues[idx].value){ \r
try{\r
sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idx]).attr(_XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idx].getAttribute(_XIMF_ATT_XVALUE), charSet) + headersSeparator; \r
try{\r
arrayValues = $("#ximfmailComposeMessagePanel ximfaddress");\r
if(arrayValues){ \r
- for( idx=0; idx<=arrayValues.length; idx++){ \r
+ for( idx=0; idx<arrayValues.length; idx++){ \r
if(arrayValues[idx].listaddress != ""){\r
try{\r
sCompleteList += EncodeMimeXimfheader($("#"+$(arrayValues[idx]).attr(_XIMF_ATT_REF_HEADER)).attr("ximfheader"), arrayValues[idx].listaddress, charSet) + headersSeparator;\r