--- /dev/null
+Ximfmail (0.6.4)
+* Corrective on blocking TrustedBird on downloading messages with big attachments
+* Corrective on using settings to sign messages
+-- Sep 09 2011
<triple subject="?elt"\r
predicate="http://www.ximfmail.com/RDF#instanceLabel"\r
object="?label" /> \r
+ <triple subject="?elt"\r
+ predicate="http://www.ximfmail.com/RDF#active"\r
+ object="true" /> \r
</conditions>\r
<action>\r
<menuitem uri="?elt" value="?elt" label="?label"/> \r
gSelectedDate = new Date();\r
\r
// minutes %5 \r
- gSelectedDate.setMinutes(parseInt(Math.round(gSelectedDate.getMinutes()/5)*5)); \r
+ gSelectedDate.setMinutes(parseInt(Math.round(gSelectedDate.getMinutes()/5)*5, 10)); \r
UpdateCalendar(); \r
}\r
\r
//return new Date(parseInt(parts[1]-1),parseInt(parts[0]),parseInt(parts[2]),parseInt(parts[3]),parseInt(parts[4]),0);\r
//alert("SPLIT DATE\nmonth : "+parts[1] + "\n day : " + parts[0] +"\n year : "+ parts[2] +"\n hour : "+ parts[3] +"\n min : "+ parts[4]);\r
var new_date = new Date();\r
- new_date.setDate(parseInt(parts[0]));\r
- new_date.setMonth(parseInt(parts[1]-1));\r
- new_date.setFullYear(parseInt(parts[2]));\r
- new_date.setHours(parseInt(parts[3]));\r
- new_date.setMinutes(parseInt(parts[4]));\r
+ new_date.setDate(parseInt(parts[0], 10));\r
+ new_date.setMonth(parseInt(parts[1]-1, 10));\r
+ new_date.setFullYear(parseInt(parts[2], 10));\r
+ new_date.setHours(parseInt(parts[3], 10));\r
+ new_date.setMinutes(parseInt(parts[4], 10));\r
new_date.setSeconds(0);\r
return new_date; \r
}\r
gSelectedHourItem = newHoursItem;\r
*/\r
\r
- gSelectedDate.setHours(parseInt(newHourItemNumber)); \r
+ gSelectedDate.setHours(parseInt(newHourItemNumber, 10)); \r
}\r
\r
/*\r
}\r
gSelectedMinItem = newMinItem;\r
*/\r
- gSelectedDate.setMinutes(parseInt(newMinItemNumber));\r
+ gSelectedDate.setMinutes(parseInt(newMinItemNumber, 10));\r
\r
}\r
\r
//return new Date(parseInt(parts[1]-1),parseInt(parts[0]),parseInt(parts[2]),parseInt(parts[3]),parseInt(parts[4]),0);\r
alert("SPLIT DATE\nmonth : "+parts[1] + "\n day : " + parts[0] +"\n year : "+ parts[2] +"\n hour : "+ parts[3] +"\n min : "+ parts[4]);\r
var new_date = new Date();\r
- new_date.setDate(parseInt(parts[0]));\r
- new_date.setMonth(parseInt(parts[1]-1));\r
- new_date.setFullYear(parseInt(parts[2]));\r
- new_date.setHours(parseInt(parts[3]));\r
- new_date.setMinutes(parseInt(parts[4]));\r
+ new_date.setDate(parseInt(parts[0], 10));\r
+ new_date.setMonth(parseInt(parts[1]-1, 10));\r
+ new_date.setFullYear(parseInt(parts[2], 10));\r
+ new_date.setHours(parseInt(parts[3], 10));\r
+ new_date.setMinutes(parseInt(parts[4], 10));\r
new_date.setSeconds(0);\r
return new_date; \r
}\r
//bug on 8 and 9 ParseInt hourNumber\r
//alert(hourNumber +" .. " + parseInt(hourNumber)+">>"+this.gSelectedDate.getHours());\r
\r
- var iHour = 0; parseInt(hourNumber);\r
- if(hourNumber=="08"){\r
- iHour = 8;\r
- }else{\r
- if(hourNumber=="09"){\r
- iHour = 9;\r
- }else{\r
- iHour = parseInt(hourNumber);\r
- }\r
- }\r
+ //var iHour = 0; parseInt(hourNumber);\r
+ //if(hourNumber=="08"){\r
+ // iHour = 8;\r
+ //}else{\r
+ // if(hourNumber=="09"){\r
+ // iHour = 9;\r
+ // }else{\r
+ // iHour = parseInt(hourNumber);\r
+ // }\r
+ //}\r
\r
- this.gSelectedDate.setHours(iHour); \r
+ //this.gSelectedDate.setHours(iHour);\r
+ this.gSelectedDate.setHours(parseInt(hourNumber, 10)); \r
this.selectDate();\r
\r
}\r
this.selectMinutesItem(newMinItem);\r
//\r
\r
- this.gSelectedDate.setMinutes(parseInt(newMinItemNumber)); \r
+ this.gSelectedDate.setMinutes(parseInt(newMinItemNumber, 10)); \r
this.selectDate(); \r
}\r
]]></body>\r
--- /dev/null
+var XIMF_DIALOG_TREE_RDF_ROOT_URI = "http://www.ximfmail.com/dialogtree/datas";
+var XIMF_DIALOG_TREE_PREDICATE_COLUMN_0 = "http://www.ximfmail.com/RDF#column0";
+var XIMF_DIALOG_TREE_PREDICATE_COLUMN_1 = "http://www.ximfmail.com/RDF#column1";
+
+function Indexage(){
+ this.A = -1;
+ this.B = -1;
+ this.C = -1;
+ this.D = -1;
+ this.E = -1;
+ this.F = -1;
+ this.G = -1;
+ this.H = -1;
+ this.I = -1;
+ this.J = -1;
+ this.K = -1;
+ this.L = -1;
+ this.M = -1;
+ this.N = -1;
+ this.O = -1;
+ this.P = -1;
+ this.Q = -1;
+ this.R = -1;
+ this.S = -1;
+ this.T = -1;
+ this.U = -1;
+ this.V = -1;
+ this.W = -1;
+ this.X = -1;
+ this.Y = -1;
+ this.Z = -1;
+};
+/*
+ *
+ */
+function DialogTreeRDFSourceClass()
+{
+ // private:
+ var _rdfService = null;
+ var _rdfCUtils = null;
+ var _treeProjectsDatasource = null;
+ var _treeProjectsRefURI = null;
+ var _SeqRDFC_data = null;
+
+ // public:
+ if(typeof DialogTreeRDFSourceClass.initialized == "undefined")
+ {
+ //init
+ DialogTreeRDFSourceClass.prototype.initialize = function(dataSource, strURI)
+ {
+ try{
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFClass ] \n ");
+ // ref : attribut of tree. use to save all data in the same dataSource
+ _treeProjectsRefURI = strURI;
+
+ // init RDF service
+ _rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+
+ // init data source
+ if(null == _treeProjectsDatasource)
+ {
+ _treeProjectsDatasource = dataSource;
+ }
+
+ // init RDF Container Utils
+ _rdfCUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].createInstance(Components.interfaces.nsIRDFContainerUtils);
+
+ // Init seq Container data source
+ var seqNode = _rdfService.GetResource(_treeProjectsRefURI);
+ _SeqRDFC_data = _rdfCUtils.MakeSeq(_treeProjectsDatasource, seqNode);
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFClass ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ }
+
+ //
+ DialogTreeRDFSourceClass.prototype.getEntriesCount = function()
+ {
+ if(_SeqRDFC_data){
+ return _SeqRDFC_data.GetCount();
+ }else{
+ return 0;
+ }
+ }
+ //
+ DialogTreeRDFSourceClass.prototype.getDataSource=function()
+ {
+ return _treeProjectsDatasource;
+ };
+
+ DialogTreeRDFSourceClass.prototype.getDataEntry = function(uri,predicate){
+ try
+ {
+ var data = "";
+ var resource = _rdfService.GetResource(uri);
+ var targets = _treeProjectsDatasource.ArcLabelsOut(resource);
+ while (targets.hasMoreElements())
+ {
+ var newpredicate = targets.getNext();
+ if (newpredicate instanceof Components.interfaces.nsIRDFResource)
+ {
+ var target = _treeProjectsDatasource.GetTarget(resource, newpredicate, true);
+ if (target instanceof Components.interfaces.nsIRDFLiteral)
+ {
+ if(newpredicate.Value == predicate)
+ data = target.Value;
+ }
+ }
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFSourceClass ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ return data;
+ };
+
+
+ DialogTreeRDFSourceClass.prototype.getEntryByPos = function(beggin, nbr)
+ {
+ var arrayResult = [];
+ try
+ {
+ var seq = _SeqRDFC_data.GetElements();
+ var currentData = 0;
+ while (seq.hasMoreElements())
+ {
+ var element = seq.getNext();
+ if (element instanceof Components.interfaces.nsIRDFResource)
+ {
+ if(currentData >= beggin && currentData <= beggin+nbr)
+ {
+ var col0 = this.getDataEntry(element.ValueUTF8,XIMF_DIALOG_TREE_PREDICATE_COLUMN_0);
+ var col1 = this.getDataEntry(element.ValueUTF8,XIMF_DIALOG_TREE_PREDICATE_COLUMN_1);
+
+ arrayResult.push([col0,col1]);
+ }
+ }
+ currentData++;
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - getSeachText ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ return arrayResult;
+
+ };
+
+ //
+ DialogTreeRDFSourceClass.prototype.getEntryByText = function(textToFind, nbr, curpos)
+ {
+ var arrayResult = [];
+ var beggin = _SeqRDFC_data.GetCount();
+ try
+ {
+ var seq = _SeqRDFC_data.GetElements();
+ var currentData = 0;
+ while (seq.hasMoreElements())
+ {
+ var element = seq.getNext();
+ if (element instanceof Components.interfaces.nsIRDFResource)
+ {
+ if(curpos <= currentData)
+ {
+ var col0 = this.getDataEntry(element.ValueUTF8,XIMF_DIALOG_TREE_PREDICATE_COLUMN_0);
+ if(beggin == _SeqRDFC_data.GetCount())
+ if(col0.toUpperCase().indexOf(textToFind.toUpperCase()) != -1)
+ beggin = currentData;
+
+ if(currentData >= beggin && currentData <= beggin+nbr)
+ {
+ var col1 = this.getDataEntry(element.ValueUTF8,XIMF_DIALOG_TREE_PREDICATE_COLUMN_1);
+ arrayResult.push([col0,col1]);
+ }
+ }
+ }
+ currentData++;
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - getSeachText ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ return [arrayResult,beggin];
+ };
+
+ DialogTreeRDFSourceClass.prototype.getIndex = function()
+ {
+ var arrayResult = [];
+ var beggin = -1;
+ var indexAZ = new Indexage();
+ try
+ {
+ var seq = _SeqRDFC_data.GetElements();
+ var currentData = 0;
+ while (seq.hasMoreElements())
+ {
+ var element = seq.getNext();
+ if (element instanceof Components.interfaces.nsIRDFResource)
+ {
+ var col0 = this.getDataEntry(element.ValueUTF8,XIMF_DIALOG_TREE_PREDICATE_COLUMN_0);
+ if(indexAZ[col0[0].toUpperCase()] == -1)
+ {
+ indexAZ[col0[0].toUpperCase()] = currentData;
+ }
+ }
+ currentData++;
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - getIndex ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ return indexAZ;
+ };
+ // object initialisation
+ DialogTreeRDFSourceClass.initialized = true;
+ }
+}
+
+/*
+ *
+ */
+function DialogTreeRDFClass()
+{
+ // private:
+ var _rdfService = null;
+ var _rdfCUtils = null;
+ var _treeProjectsDatasource = null;
+ var _treeProjectsRefURI = null;
+ var _SeqRDFC_data = null;
+ var _RdfDataSourceOrigin = null;
+ var _indexAZ = null;
+
+ // public:
+ if(typeof DialogTreeRDFClass.initialized == "undefined")
+ {
+ //init
+ DialogTreeRDFClass.prototype.initialize = function(dataSource, strURI)
+ {
+ try{
+ // ref : attribut of tree. use to save all data in the same dataSource
+ _treeProjectsRefURI = XIMF_DIALOG_TREE_RDF_ROOT_URI;
+
+ // init RDF service
+ _rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+
+ // init data source
+ if(null == _treeProjectsDatasource)
+ {
+ _treeProjectsDatasource = _rdfService.GetDataSource("rdf:in-memory-datasource");
+ _treeProjectsDatasource.QueryInterface(Components.interfaces.nsIRDFInMemoryDataSource);
+ }
+
+ // init RDF Container Utils
+ _rdfCUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].createInstance(Components.interfaces.nsIRDFContainerUtils);
+
+ // Init seq Container data source
+ var seqNode = _rdfService.GetResource(_treeProjectsRefURI);
+ _SeqRDFC_data = _rdfCUtils.MakeSeq(_treeProjectsDatasource, seqNode);
+
+ _RdfDataSourceOrigin = new DialogTreeRDFSourceClass();
+ _RdfDataSourceOrigin.initialize(dataSource, strURI);
+
+ _indexAZ = _RdfDataSourceOrigin.getIndex();
+
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFClass ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ }
+
+ //
+ DialogTreeRDFClass.prototype.getEntriesCount = function()
+ {
+ if(_SeqRDFC_data){
+ return _SeqRDFC_data.GetCount();
+ }else{
+ return 0;
+ }
+ }
+ //
+ DialogTreeRDFClass.prototype.getDataSource=function()
+ {
+ return _treeProjectsDatasource;
+ };
+
+ DialogTreeRDFClass.prototype.addEntryDisplay = function(entry, index)
+ {
+ // append resource element to sequence
+ //[DN,name,type]
+ var col0 = entry[0];
+ var col1 = entry[1];
+
+ var newURI = _treeProjectsRefURI + "/data" + index ;
+ var newResource = _rdfService.GetResource(newURI);
+ _SeqRDFC_data.AppendElement(newResource);
+
+ // save user informations
+ if(col0)
+ {
+ _treeProjectsDatasource.Assert(newResource,
+ _rdfService.GetResource(XIMF_DIALOG_TREE_PREDICATE_COLUMN_0),
+ _rdfService.GetLiteral(col0),
+ true);
+ }
+
+ if(col1)
+ {
+ _treeProjectsDatasource.Assert(newResource,
+ _rdfService.GetResource(XIMF_DIALOG_TREE_PREDICATE_COLUMN_1),
+ _rdfService.GetLiteral(col1),
+ true);
+ }
+ };
+
+
+ DialogTreeRDFClass.prototype.getDataEntry = function(uri,predicate)
+ {
+ try{
+ _RdfDataSourceOrigin.getDataEntry(uri,predicate);
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFClass ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ return data;
+ };
+
+ DialogTreeRDFClass.prototype.removeAllDisplay = function()
+ {
+ try
+ {
+ if(_SeqRDFC_data)
+ {
+ var numEntri = _SeqRDFC_data.GetCount();
+ for (var indexCur = numEntri; indexCur >0; indexCur--)
+ {
+ _SeqRDFC_data.RemoveElementAt(indexCur,true);
+ }
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - DialogTreeRDFClass ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ };
+
+ //
+ DialogTreeRDFClass.prototype.updateDisplay = function(curpos,maxPos)
+ {
+ //
+ var colFoundArray = [];
+ var maxEntry = _RdfDataSourceOrigin.getEntriesCount();
+
+ if(curpos+maxPos > maxEntry)
+ curpos = maxEntry-maxPos;
+
+ colFoundArray = _RdfDataSourceOrigin.getEntryByPos(curpos, maxPos);
+
+ this.removeAllDisplay();
+
+ for(var currItem=0;currItem<colFoundArray.length;currItem++)
+ {
+ this.addEntryDisplay(colFoundArray[currItem], currItem);
+ }
+ $("#ximfmail.treedialog").attr("hidevscroll","true");
+ };
+
+ //
+ DialogTreeRDFClass.prototype.updateDisplayByText = function(textToFind,maxPos,curpos)
+ {
+ //
+ var colFoundArray = [];
+ var index = _indexAZ[textToFind[0].toUpperCase()];
+
+ if(index == -1)
+ return -1;
+
+ if(textToFind.length == 1)
+ {
+ if(index==curpos)
+ return -1;
+
+ this.updateDisplay(index,maxPos);
+ return index;
+ }
+
+ var maxEntry = _RdfDataSourceOrigin.getEntriesCount();
+ if(index+maxPos > maxEntry)
+ index = maxEntry-maxPos-1;
+
+ var result = _RdfDataSourceOrigin.getEntryByText(textToFind, maxPos, index);
+ colFoundArray = result[0];
+
+ if(colFoundArray.length == 0)
+ return -1;
+
+ this.removeAllDisplay();
+
+ for(var currItem=0;currItem<colFoundArray.length;currItem++)
+ {
+ this.addEntryDisplay(colFoundArray[currItem], currItem);
+ }
+ $("#ximfmail.treedialog").attr("hidevscroll","true");
+
+ return result[1];
+ };
+
+ //
+ DialogTreeRDFClass.prototype.getMaxEntry = function()
+ {
+ //
+ var remoteCount = 0;
+
+ remoteCount = _RdfDataSourceOrigin.getEntriesCount();
+
+ return remoteCount;
+ };
+
+ // object initialisation
+ DialogTreeRDFClass.initialized = true;
+ }
+}
\ No newline at end of file
this._refDataSource; \r
}\r
\r
-\r
-\r
+// RDF list\r
+var gMaxDataList = 15;\r
+var gCurposList = -1;\r
+var gIDTimeoutList = null;\r
+var gIDTimeoutListSearch = null;\r
+var gSearchText = "";\r
+var gRDFList = null;\r
\r
\r
var gArgsOpener = null;\r
$("#ximfmail_dTreeDel").bind("command",OnPushDelSelection);\r
$("#ximfmail_dTreeRaz").bind("command",OnPushRazSelection); \r
\r
+ // event for scroll \r
+ $("#ximfmailTreeDialogScroll").mousemove(OnClickScrollTreeList);\r
+ $("#ximfmailTreeDialogScroll").click(OnClickScrollTreeList);\r
+ $("#iTreechildDialog").mousemove(OnClickScrollTreeList);\r
+ $(window).resize(OnClickScrollTreeList);\r
+ \r
+ document.getElementById("iTreechildDialog").addEventListener('DOMMouseScroll', OnScrollTreeList, false);\r
+ $("#ximfmail.treedialog").keypress(OnKeyPressScrollTreeList);\r
+ $("#ximfmailTreeDialogDisplaybox").keypress(OnKeyPressScrollTreeList);\r
+ \r
// load background datas\r
try{\r
gArgsOpener = gArgs[0]; // gArgs[0] is an XimfmailTreedialogArgs object - XimfmailTreedialogArgs class description at ximfmail.js file\r
}\r
\r
// create alert message \r
- if(parseInt(gArgsOpener.maxItemsSelected) > 1){\r
+ if(parseInt(gArgsOpener.maxItemsSelected, 10) > 1){\r
gDlgTreeXimf_maxItem_alert = gArgsOpener.maxItemsSelected + " "+ getIlkProperties("ximfmail.dialog.editor.warning.nbrows");\r
}else{\r
- if(parseInt(gArgsOpener.maxItemsSelected) == 1){\r
+ if(parseInt(gArgsOpener.maxItemsSelected, 10) == 1){\r
gDlgTreeXimf_maxItem_alert = gArgsOpener.maxItemsSelected + " "+ getIlkProperties("ximfmail.dialog.editor.warning.nbrows.one");\r
}\r
}\r
gConsole.logStringMessage("[ximfmail - AddCurrentSelection ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+ e.lineNumber);\r
}\r
\r
- setTimeout("LoadXmlDatas()", 50); \r
+ LoadXmlDatas(); \r
});\r
\r
/*\r
try{ \r
//\r
var tree = document.getElementById("iTreechildDialog"); \r
- tree.database.AddDataSource(gArgsOpener.dataSource); \r
- tree.setAttribute("ref",gArgsOpener.refdataSource); \r
+ \r
+ gRDFList = new DialogTreeRDFClass();\r
+ gRDFList.initialize(gArgsOpener.dataSource, gArgsOpener.refdataSource);\r
+ \r
+ tree.database.AddDataSource(gRDFList.getDataSource()); \r
+ //tree.setAttribute("ref",gArgsOpener.refdataSource); \r
tree.builder.rebuild();\r
+ \r
+ OnClickScrollTreeList(0);\r
+ \r
//\r
AddCurrentSelection();\r
}catch(e){ \r
//alert(row.value + " : " + idMatch);\r
//return {row: row.value, col: idMatch}; \r
}\r
+\r
+\r
+/* for to scroll */\r
+function OnClickScrollTreeList(evt)\r
+{\r
+ try\r
+ {\r
+ if(parseInt($("#ximfmailTreeDialogScroll").attr("maxpos"), 10) <=0)\r
+ return;\r
+ var treeResult = document.getElementById("ximfmail.treedialog");\r
+ $("#iTreechildDialog").attr("hidevscroll","true");\r
+ var curpos = 0;\r
+ \r
+ curpos = parseInt($("#ximfmailTreeDialogScroll").attr("curpos"), 10);\r
+ var pageLength = gMaxDataList;\r
+ try{\r
+ pageLength = treeResult.boxObject.getPageLength();\r
+ if(0 == pageLength)\r
+ pageLength = gMaxDataList;\r
+ }catch(e){pageLength = gMaxDataList;}\r
+ \r
+ /*gConsole.logStringMessage("gCurposList=" + gCurposList + " curpos=" + curpos+ " gMaxDataList=" + gMaxDataList\r
+ + " pageLength=" + pageLength+ " gRDFList.getEntriesCount()=" + gRDFList.getEntriesCount());*/\r
+ \r
+ if(gCurposList != curpos || gMaxDataList != pageLength \r
+ || gMaxDataList != gRDFList.getEntriesCount()\r
+ || evt == 0)\r
+ {\r
+ window.setCursor("wait");\r
+ gMaxDataList = pageLength;\r
+ var maxEntry = parseInt(gRDFList.getMaxEntry(), 10);\r
+ \r
+ gRDFList.updateDisplay(curpos,gMaxDataList-1);\r
+ var maxpos = gMaxDataList;\r
+ \r
+ if(maxEntry - gMaxDataList >= 0)\r
+ maxpos = maxEntry - gMaxDataList;\r
+ else\r
+ maxpos = -1;\r
+ \r
+ if(maxEntry < gMaxDataList)\r
+ gMaxDataList = maxEntry;\r
+ $("#ximfmailTreeDialogScroll").attr("maxpos",maxpos);\r
+ \r
+ gCurposList = curpos;\r
+ \r
+ if(maxEntry == 0 || maxpos <= 0) \r
+ {\r
+ $("#ximfmailTreeDialogScroll").attr("hidden","true");\r
+ gMaxDataList = maxEntry;\r
+ }\r
+ else\r
+ $("#ximfmailTreeDialogScroll").removeAttr("hidden");\r
+ \r
+ if(treeResult.database != null)\r
+ {\r
+ treeResult.database.AddDataSource(gRDFList.getDataSource());\r
+ treeResult.builder.rebuild();\r
+ clearTimeout(gIDTimeoutList);\r
+ gIDTimeoutList = setTimeout(OnClickScrollTreeList,100,1);\r
+ }\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - OnClickScrollTreeList ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ window.setCursor("auto");\r
+}\r
+\r
+function OnScrollTreeList(event)\r
+{\r
+ window.setCursor("wait");\r
+ try\r
+ {\r
+ var curpos = parseInt($("#ximfmailTreeDialogScroll").attr("curpos"), 10);\r
+ var addPos = 0;\r
+ if(event.detail == -3)\r
+ addPos = -3;\r
+ else if(event.detail == 3)\r
+ addPos = 3;\r
+ curpos += addPos;\r
+ var maxpos = parseInt(gRDFList.getMaxEntry(), 10) - gMaxDataList;\r
+ \r
+ if(curpos<0)\r
+ curpos = 0;\r
+ if(curpos>maxpos)\r
+ curpos = maxpos;\r
+ \r
+ $("#ximfmailTreeDialogScroll").attr("curpos", curpos);\r
+ OnClickScrollTreeList(0);\r
+ }\r
+ catch(e)\r
+ {\r
+ gConsole.logStringMessage("[ximfmail - OnScrollTreeList ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ window.setCursor("auto");\r
+}\r
+\r
+function OnKeyPressScrollTreeList(event)\r
+{\r
+ window.setCursor("wait");\r
+ gConsole.logStringMessage("[ximfmail - OnKeyPressScrollTreeList ] enter");\r
+ try\r
+ {\r
+ var curpos = parseInt($("#ximfmailTreeDialogScroll").attr("curpos"), 10);\r
+ var addPos = 0;\r
+ var maxEntry = parseInt(gRDFList.getMaxEntry(), 10);\r
+ var maxpos = maxEntry - gMaxDataList;\r
+ var textToFind = "";\r
+ \r
+ switch(event.keyCode)\r
+ {\r
+ case 33:\r
+ // page up\r
+ addPos = 1-gMaxDataList;\r
+ break;\r
+ \r
+ case 34:\r
+ // page down\r
+ addPos = gMaxDataList-1;\r
+ break;\r
+ \r
+ case 35:\r
+ // end\r
+ addPos = 0;\r
+ curpos = maxpos;\r
+ break;\r
+ \r
+ case 36:\r
+ // beggin\r
+ addPos = 0;\r
+ curpos = 0;\r
+ break; \r
+ \r
+ case 38:\r
+ // up\r
+ addPos = -1;\r
+ break;\r
+ \r
+ case 40:\r
+ // down\r
+ addPos = 1;\r
+ break;\r
+ \r
+ default:\r
+ if(event.charCode ==0)\r
+ {\r
+ window.setCursor("auto");\r
+ return;\r
+ }\r
+ else\r
+ textToFind = String.fromCharCode(event.charCode);\r
+ }\r
+ \r
+ if("" == textToFind)\r
+ {\r
+ curpos += addPos;\r
+ \r
+ if(curpos<0)\r
+ curpos = 0;\r
+ if(curpos>maxpos)\r
+ curpos = maxpos;\r
+ \r
+ $("#ximfmailTreeDialogScroll").attr("curpos", curpos);\r
+ OnClickScrollTreeList(0);\r
+ }\r
+ else\r
+ {\r
+ clearTimeout(gIDTimeoutListSearch);\r
+ gSearchText += textToFind;\r
+ var curposAfter = gRDFList.updateDisplayByText(gSearchText,gMaxDataList,curpos);\r
+ if(curposAfter == -1)\r
+ {\r
+ gSearchText = "";\r
+ window.setCursor("auto");\r
+ return;\r
+ }\r
+ else\r
+ {\r
+ var maxpos = gMaxDataList;\r
+ if(maxEntry - gMaxDataList >= 0)\r
+ maxpos = maxEntry - gMaxDataList;\r
+ else\r
+ maxpos = -1;\r
+ \r
+ if(maxEntry < gMaxDataList)\r
+ gMaxDataList = maxEntry;\r
+ \r
+ $("#ximfmailTreeDialogScroll").attr("maxpos",maxpos);\r
+ $("#ximfmailTreeDialogScroll").attr("curpos", curposAfter);\r
+ OnClickScrollTreeList(0);\r
+ \r
+ gIDTimeoutListSearch = setTimeout(resetSearchText,2000);\r
+ }\r
+ }\r
+ \r
+ }\r
+ catch(e)\r
+ {\r
+ gConsole.logStringMessage("[ximfmail - OnKeyPressScrollTreeList ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);\r
+ }\r
+ window.setCursor("auto");\r
+}\r
+\r
+function resetSearchText()\r
+{\r
+ gSearchText = "";\r
+ gIDTimeoutListSearch = null;\r
+}\r
<script type="application/javascript" src="chrome://ximfmail/content/ximfmail.js" /> \r
<script type="application/javascript" src="chrome://ximfmail/content/constant-ximfmail.js" /> \r
<script type="application/javascript" src="chrome://ximfmail/content/dialogTree-ximfmail.js" /> \r
+ <script type="application/javascript" src="chrome://ximfmail/content/dialogTree-rdf-ximfmail.js" />\r
\r
<hbox id="ximfmailTreeDialogBox" flex="1" style="height:400px; width:800px;"> \r
- <vbox id="ximfmailTreeDialogDisplaybox" flex="1"> \r
- <tree id="ximfmail.treedialog" flex="1" enableColumnDrag="true" flags="dont-build-content">\r
+ <hbox id="ximfmailTreeDialogDisplaybox" flex="1"> \r
+ <tree id="ximfmail.treedialog" flex="1" enableColumnDrag="true" \r
+ flags="dont-build-content">\r
<treecols> \r
<treecol id="iCol0" label="&ximfmail.dialogtree.title.col0;" primary="true" persist="hidden ordinal width sortDirection" flex="1"/>\r
<splitter class="tree-splitter"/>\r
<treechildren flex="1"\r
id="iTreechildDialog"\r
datasources="rdf:null"\r
- ref="">\r
+ ref="http://www.ximfmail.com/dialogtree/datas">\r
<template>\r
<treeitem uri="?uri">\r
<treerow>\r
</template>\r
</treechildren>\r
</tree> \r
- </vbox>\r
+ <scrollbar id="ximfmailTreeDialogScroll" curpos="0" maxpos="50" orient="vertical" /> \r
+ </hbox>\r
<vbox id="ximfmailTreeDialogButtonbox">\r
<spacer flex="1"/>\r
<button id="ximfmail_dTreeAdd" image="chrome://ximfmail/content/resource/arrow_right.png" tooltiptext="add selection"/>\r
gEditorElt = document.getElementById("textbox-editor"); \r
gConsole.logStringMessage("[ximfmail - dialogEditor ] \n id of textbox :" + gArgs[0][0] + "\n separator value: " + gArgs[0][2] + "\n max items to write: "+ gArgs[0][3] + "\n min items to write: " +gArgs[0][4]); \r
\r
- if(parseInt(gXimfMaxItems) > 1){\r
+ if(parseInt(gXimfMaxItems, 10) > 1){\r
gDlgEditorXimf_maxItem_alert = gXimfMaxItems + " "+ getIlkProperties("ximfmail.dialog.editor.warning.nbrows"); \r
$("#textbox-editor").attr("style","width:400px;height:100px");\r
}else{ \r
{\r
if(!gEditorElt) return false;\r
if(gXimfMinItems){\r
- if( getWritedRowsCount() < parseInt(gXimfMinItems)){\r
+ if( getWritedRowsCount() < parseInt(gXimfMinItems, 10)){\r
ximfAlert("not enough item");\r
}\r
}\r
//newvalue = gEditorElt.value.replace(reg , gXimfSeparator);\r
var arrayValue = gEditorElt.value.split(reg); \r
var nbElements = arrayValue.length;\r
- if(parseInt(gXimfMaxItems)<arrayValue.length){\r
- nbElements = parseInt(gXimfMaxItems);\r
+ if(parseInt(gXimfMaxItems, 10)<arrayValue.length){\r
+ nbElements = parseInt(gXimfMaxItems, 10);\r
ximfAlert(gDlgEditorXimf_maxItem_alert);\r
} \r
for(var i=0 ; i<nbElements ; ++i){\r
var key = aEvent.which; \r
switch(key){\r
case 13: // key=="\n" \r
- if( getWritedRowsCount() >= parseInt(gXimfMaxItems)){\r
+ if( getWritedRowsCount() >= parseInt(gXimfMaxItems, 10)){\r
ximfAlert(gDlgEditorXimf_maxItem_alert); \r
var reg = new RegExp("\n", "g");\r
var artxt = gEditorElt.value.split(reg);\r
case 0: // delete\r
break;\r
default:\r
- if( getWritedRowsCount() > parseInt(gXimfMaxItems)){\r
+ if( getWritedRowsCount() > parseInt(gXimfMaxItems, 10)){\r
ximfAlert(gDlgEditorXimf_maxItem_alert); \r
return false;\r
}\r
/*\r
// check for entries items\r
if(key == 13){ // key=="\n" \r
- if( getWritedRowsCount() >= parseInt(gXimfMaxItems)){\r
+ if( getWritedRowsCount() >= parseInt(gXimfMaxItems, 10)){\r
alert(gDlgEditorXimf_maxItem_alert); \r
var reg = new RegExp("\n", "g");\r
var artxt = gEditorElt.value.split(reg);\r
}\r
}\r
else{\r
- if( getWritedRowsCount() > parseInt(gXimfMaxItems)){\r
+ if( getWritedRowsCount() > parseInt(gXimfMaxItems, 10)){\r
alert(gDlgEditorXimf_maxItem_alert); \r
return false;\r
}\r
* ***** END LICENSE BLOCK ***** */
var gConsole = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
var gJSLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].createInstance(Components.interfaces.mozIJSSubScriptLoader);
-
gJSLoader.loadSubScript("chrome://ximfmail/content/constant-ximfmail.js");
-/*
- * read datas of a message from an valid URI
- */
-function XimfMessageAnalyser(){
- var _mailUri = null;
- var _xHdrArray =[]; // array of ximfHdr : _ximfHdrArray[ximfHdr]
+/**
+Get message source
+@param {nsIMsgDBHdr} header
+@param {function} callbackFunction Function to call when data are received: callbackFunction(header, receivedData, callbackParam)
+@param callbackParam Parameter of callbackFunction
+@return {string} Message source or <b>false</b> if an error occurs
+*/
+function XimfmailGetMessage(mailUri, callbackFunction, callbackParam){
+ if (!mailUri) return;
+ var streamListener = {
+ QueryInterface: function(aIID) {
+ if (aIID.equals(Components.interfaces.nsISupports)
+ || aIID.equals(Components.interfaces.nsIStreamListener))
+ return this;
+ throw Components.results.NS_NOINTERFACE;
+ },
+ data: "",
+ isDataComplete: false,
+ onStartRequest: function(request, context) {},
+ onDataAvailable: function(request, context, inputStream, offset, available) {
+ if(!this.isDataComplete ){
+ var stream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
+ stream.init(inputStream);
+ this.data += stream.read(available);
+ stream.close();
+ stream = null;
- function xHdr(){
- this._hdrName;
- this._hdrValue;
+ // parse headers only
+ var idxEnd = this.data.indexOf("\r\n\r\n",0); // * CRLF DOS : "\r\n"
+ if(idxEnd == -1) idxEnd = this.data.indexOf("\n\n",0); // * CRLF UNIX : "\n"
+ if(idxEnd == -1) idxEnd = this.data.indexOf("\r\r",0); //CRLF OS : "\r"
+ if(idxEnd != -1) this.isDataComplete = true; // msgSrc = msgSrc.substr(0,idxEnd); //dbg gConsole.logStringMessage("[smime - MessageAnalyser - succes getting mime headers : ] \n" + msgSrc);
+ }
+ },
+ onStopRequest: function(request, context, status) {
+ if (Components.isSuccessCode(status)) {
+ callbackFunction( this.data, mailUri, callbackParam);
+ } else {
+ srv.errorSrv("notifyListener.getMsgSrc - "+mailUri+" - Error: "+status);
}
-
- if(typeof XimfMessageAnalyser.initialized == "undefined"){
-
- XimfMessageAnalyser.prototype.setOriginalURI = function(uri){
- _mailUri = uri;
}
- /*
- * Extract Headers fields from mail
- * Create array of {[headerName][headerValue],[headerName][headerValue],...}
- */
- XimfMessageAnalyser.prototype.createXimfHdrArray = function(){
-
- var nbBytes = 0;
- var tmpBuf = "";
- var content = "";
-
- // first try to open URI
- try{
- var cmessenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Components.interfaces.nsIMessenger);
- var msgSvc = cmessenger.messageServiceFromURI(_mailUri);
-
- //var xmsgHdr = _messenger.msgHdrFromURI(gCurrentMessageUri); // ok, entetes basic de messages
- var MsgStream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance();
- var consumer = MsgStream.QueryInterface(Components.interfaces.nsIInputStream);
- var ScriptInput = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance();
- var ScriptInputStream = ScriptInput.QueryInterface(Components.interfaces.nsIScriptableInputStream);
- ScriptInputStream.init(consumer);
-
- try{
- msgSvc.streamMessage(_mailUri, MsgStream, msgWindow, null, false, null);
- }catch (e){
- // can't read heafer message (bad uri...)
- gConsole.logStringMessage("[ximfmail - MessageAnalyser - createXimfHdrArray ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
- return;
- }
-
- if(!ScriptInputStream) return;
- // extract headers datas of selected message
- nbBytes = ScriptInputStream.available();
- tmpBuf = ScriptInputStream.read(nbBytes);
- // RFC 2822 : The body is simply a sequence of characters that
- // follows the header and is separated from the header by an empty line
- // (i.e., a line with nothing preceding the CRLF).
- var endHdrsNlock = tmpBuf.indexOf("\r\n\r\n",0);
- if(endHdrsNlock == -1) endHdrsNlock = tmpBuf.indexOf("\n\n",0);
- if(endHdrsNlock == -1) endHdrsNlock = tmpBuf.indexOf("\r\r",0);
- if(endHdrsNlock != -1){
- content = tmpBuf.substring(0,endHdrsNlock);
- }else{
- content = tmpBuf;
}
- //alert(content);
- tmpBuf = null;
- ScriptInputStream.close();
- consumer.close();
-
- }catch(e){}
-
- try{
- // _mailUri can be a path : case of open file message
- if(tmpBuf == "")
- {
- var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
- var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
- file.initWithPath(_mailUri);
- stream.init(file, -1, 0, 0);
-
- var ScriptInput = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance();
- var ScriptInputStream = ScriptInput.QueryInterface(Components.interfaces.nsIScriptableInputStream);
- ScriptInputStream.init(stream);
-
- //if(!ScriptInputStream) return;
- // extract headers datas of selected message
- nbBytes = ScriptInputStream.available();
- tmpBuf = ScriptInputStream.read(nbBytes);
-
- // RFC 2822 : The body is simply a sequence of characters that
- // follows the header and is separated from the header by an empty line
- // (i.e., a line with nothing preceding the CRLF).
- var endHdrsNlock = tmpBuf.indexOf("\r\n\r\n",0);
- if(endHdrsNlock == -1) endHdrsNlock = tmpBuf.indexOf("\n\n",0);
- if(endHdrsNlock == -1) endHdrsNlock = tmpBuf.indexOf("\r\r",0);
- if(endHdrsNlock != -1){
- content = tmpBuf.substring(0,endHdrsNlock);
+ gConsole.logStringMessage("[ximfmail - XimfmailGetMessage ]");
+ $("#ximfmailMailPanel").attr("collapsed","true"); // XIMF headers ihm
+ $("#ximfmail-custom-panel").attr("collapsed","true"); //XIMF account profile type ihm
+ $("#ximfHeadBox").attr("collapsed","true"); // XIMF pictures ihm
+ var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);
+ pref = pref.QueryInterface(Components.interfaces.nsIPrefBranch2);
+ if(pref.getBoolPref("mailnews.headers.showXimfmail")){
+ // parse message to get XIMF headers
+ var cmessenger = Components.classes["@mozilla.org/messenger;1"].createInstance(Components.interfaces.nsIMessenger);
+ var msgSvc = cmessenger.messageServiceFromURI(mailUri);
+ try { msgSvc.streamMessage(mailUri, streamListener, null, null, false, null); } catch (ex) { return false; }
}else{
- content = tmpBuf;
+ DeleteXimfHeaders();
}
+}
- tmpBuf = null;
- ScriptInputStream.close();
- stream.close();
- }
-
- //msgSvc
+/*
+ * Set Ximf headers of message to array
+ *
+ *
+ */
+function XimfmailParseMessage(msgSrc){
var separator = new RegExp("\\r\\n|\\r|\\n", "i");// end line
- var tab = content.split(separator);
-
+ var tab = msgSrc.split(separator);
+ var currentXimfHdrArray = [];
// filter on IMF headers - append data to array
- if(_xHdrArray.length > 0)
- _xHdrArray.splice(0,_xHdrArray.length);
var reg_folding = new RegExp("( )","g");
var reg_folding2 = new RegExp("(\t)","g");
var idxTab=0;
+
for(idxTab=0; idxTab<tab.length; ++idxTab){
var header_line = tab[idxTab];
// search for long header fields (folding) - RFC 2822
// fill _ximfHdrArray
//var lowcaseTmp = header_line.toLowerCase();
+
var lowcaseTmp = header_line; //String_from_utf8(header_line).toLowerCase();
if(lowcaseTmp.indexOf(":")!=-1){
- var xhdr = new xHdr();
+ var xhdr = new Object;
xhdr._hdrName = lowcaseTmp.substring(0,lowcaseTmp.indexOf(": ",0));
xhdr._hdrValue = lowcaseTmp.substring(lowcaseTmp.indexOf(": ",lowcaseTmp)+2);
// decode MIME Header
xhdr._hdrValue = DecodeMimeXimfheader(xhdr._hdrValue);
- _xHdrArray.push(xhdr);
+ currentXimfHdrArray.push(xhdr);
//gConsole.logStringMessage("[ximfmail - MessageAnalyser - push : ] \n" + xhdr._hdrName + " :: "+xhdr._hdrValue);
}
}
- }catch(e){
- gConsole.logStringMessage("[ximfmail - MessageAnalyser - createXimfHdrArray ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
- }
- }
- /*
- *
+ return currentXimfHdrArray;
+}
+
+
+/*
+ * Ximf headers of current message
*/
- XimfMessageAnalyser.prototype.getHeaderValue = function(headerName){
- var value = null;
+function XimfmailMesssage(){
+ this._mailUri = null;
+ this._instanceMsgXimf = null;
+ this._current_definition = null;
+ this._currentXimfHdrArray = [];
+ if(typeof XimfmailMesssage.initialized == "undefined"){
+ // set uri of message
+ XimfmailMesssage.prototype.set = function(uri){
try{
- var tmpHead = null;
- for(var idx_xHdrArray = 0 ; idx_xHdrArray < _xHdrArray.length ; ++idx_xHdrArray){
- tmpHead = _xHdrArray[idx_xHdrArray]._hdrName;
- if(headerName.toLowerCase() == tmpHead.toLowerCase()){
- value = _xHdrArray[idx_xHdrArray]._hdrValue;
- break;
- }
- }
+ if(!uri) return;
+ if(this._mailUri == uri) return;
+ this._mailUri = uri;
}catch(e){
- gConsole.logStringMessage("[ximfmail - MessageAnalyser - getHeaderValue ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ gConsole.logStringMessage("[ximfmail - XimfmailMesssage.set ] " + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);
}
- return value;
+ return false;
+ };
+ //
+ XimfmailMesssage.prototype.init = function(uri,headerArray){
+ try{
+ if(!uri) return;
+ if(this._mailUri == uri) return;
+ this._mailUri = uri;
+ this._instanceMsgXimf = null;
+
+ this._currentXimfHdrArray=headerArray;
+
+ // get account XIMF definition
+ var prefBranch = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);
+ this._current_definition = "";
+ if(prefBranch.prefHasUserValue("mailnews.instance.mailpanel")){
+ if(prefBranch.prefHasUserValue("mailnews.theme.mailpanel"))
+ this._current_definition = prefBranch.getCharPref("mailnews.theme.mailpanel");
+ }else{
+ gConsole.logStringMessage("DBG [ximfmail - XimfmailMesssage.init ] no ximf preferences ");
+ return false;
}
- /*
- *
- */
- XimfMessageAnalyser.prototype.getCompleteArray = function(){
- return _xHdrArray;
+
+ var uriXimfInstance = this.hasXimfHeaders(this._current_definition);
+ if(uriXimfInstance){
+ gConsole.logStringMessage("DBG [ximfmail - XimfmailMesssage.init ] mail instance : " + uriXimfInstance);
+ this._instanceMsgXimf = uriXimfInstance;
+ return true;
+ }else{
+ return false;
}
- /*
- * search for associated XIMF INSTANCE of account definition
- */
- XimfMessageAnalyser.prototype.hasXimfHeaders = function(currentDefinition){
- var uriInstanceXimf = null;
- var sdefinition = null;
+
+
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - XimfmailMesssage.init ] " + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);
+ }
+ return false;
+ };
+
+
+ // check message with XimfmailCatalog
+ XimfmailMesssage.prototype.hasXimfHeaders = function(currentDefinition){
+ try{
var sversion = null;
var sname = null;
+
sversion = this.getHeaderValue(XIMF_VERSION_HEADER);
sname = this.getHeaderValue(XIMF_NAME_HEADER);
gConsole.logStringMessage("DBG [ximfmail - MessageAnalyser - hasXimfHeaders ] \ndefinition uri = "+ currentDefinition +"\nXIMF version = "+ sversion+"\nXIMF name = "+sname );
//if(gXimfCatalog && sname && sversion)
- if(gXimfCatalog && sname)
+ if(!sname) return null;
+
+ // check currentDefinition in XimfmailCatalog
+ CreateXimfmailCatalog();
uriInstanceXimf = gXimfCatalog.getInstanceUri(currentDefinition,sname,sversion);
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - XimfmailMesssage.hasXimfHeaders ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+
return uriInstanceXimf;
+ };
+
+ // get XIMF value from message
+ XimfmailMesssage.prototype.getHeaderValue = function(headerName){
+ var value = null;
+ try{
+ var tmpHead = null;
+ for(var idx_xHdrArray = 0 ; idx_xHdrArray < this._currentXimfHdrArray.length ; ++idx_xHdrArray){
+ tmpHead = this._currentXimfHdrArray[idx_xHdrArray]._hdrName;
+ if(headerName.toLowerCase() == tmpHead.toLowerCase()){
+ value = this._currentXimfHdrArray[idx_xHdrArray]._hdrValue;
+ break;
+ }
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - XimfmailMesssage.getValue ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
}
+ return value;
+ };
- /*
- * add or replace Ximfheader in _xHdrArray
- */
- XimfMessageAnalyser.prototype.setHeaderValue = function(headerName, headerValue){
+ // get XIMF value from message
+ XimfmailMesssage.prototype.getCompleteArray = function(){
+ return this._currentXimfHdrArray();
+ };
+ // set XIMF value to message
+ XimfmailMesssage.prototype.setXimfHeader = function(headerName,headerValue){
try{
var isNewHeader = true;
- for(var idx_xHdrArray = 0 ; idx_xHdrArray < _xHdrArray.length ; ++idx_xHdrArray){
- var tmpHead = _xHdrArray[idx_xHdrArray]._hdrName;
+ for(var idx_xHdrArray = 0 ; idx_xHdrArray < this._currentXimfHdrArray.length ; ++idx_xHdrArray){
+ var tmpHead = this._currentXimfHdrArray[idx_xHdrArray]._hdrName;
if(tmpHead.toLowerCase() == headerName.toLowerCase()){
- _xHdrArray[idx_xHdrArray]._hdrValue = headerValue;
+ this._currentXimfHdrArray[idx_xHdrArray]._hdrValue = headerValue;
isNewHeader = false;
break;
}
}
if(isNewHeader){
- var xhdr = new xHdr();
+ var xhdr = new Object;
xhdr._hdrName = headerName;
xhdr._hdrValue = headerValue;
- _xHdrArray.push(xhdr);
+ this._currentXimfHdrArray.push(xhdr);
}
}catch(e){
- gConsole.logStringMessage("[ximfmail - MessageAnalyser - setHeaderValue ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ gConsole.logStringMessage("[ximfmail - XimfmailMesssage.setXimfHeader ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
}
- }
-
- // MessageAnalyser
- XimfMessageAnalyser.initialized = true;
+ };
+ XimfmailMesssage.initialized = true;
}
}
\ No newline at end of file
* ***** END LICENSE BLOCK ***** */
var gConsole = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
-var gXimfHeaders = null;
//
window.addEventListener('messagepane-loaded', InitXimfailMsgWindow, true);
-
/*
* Create a message listener
*/
-var gIdTimeOut = null;
function InitXimfailMsgWindow(){
+ //
gMessageListeners.push({
onStartHeaders: function (){
+
},
onEndHeaders: function(){
+ var uriMsg = null;
+ if (gMessageDisplay.isDummy){
+ // displayed message from disk
+ uriMsg = gMessageDisplay.displayedUri;
+ gConsole.logStringMessage("[ximfmail - InitXimfailMsgWindow.onEndHeaders ]\ndisplayed message from disk - url = "+uriMsg);
+ }else{
+ // get uri of selected message
+ var msgDBHdr = gFolderDisplay.selectedMessage;
+ if(msgDBHdr) uriMsg = msgDBHdr.folder.getUriForMsg(msgDBHdr);
+ }
+ XimfmailGetMessage(uriMsg,XimfmailParseAndOpenMesssage);
},
onEndAttachments: function (){
- if(gIdTimeOut != null)
- clearTimeout(gIdTimeOut);
- gIdTimeOut = setTimeout("ParseMsgXimfHeaders()",500);
- },
+ }
});
}
/*
* Get Extended headers of messages and display known instances
*/
-function ParseMsgXimfHeaders() {
+function XimfmailParseAndOpenMesssage(msgSrc,uriSrc){
+ var currentXimfHdrArray = XimfmailParseMessage(msgSrc);
try{
- gConsole.logStringMessage("[ximfmail - ParseMsgXimfHeaders ]");
- var msgDBHdr = gFolderDisplay.selectedMessage;
- if(!msgDBHdr){
- gConsole.logStringMessage("[ximfmail - ParseMsgXimfHeaders ] no message selected");
- return;
- }
-
- $("#ximfmailMailPanel").attr("collapsed","true"); // XIMF headers ihm
- $("#ximfmail-custom-panel").attr("collapsed","true"); //XIMF account profile type ihm
- $("#ximfHeadBox").attr("collapsed","true"); // XIMF pictures ihm
- var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);
- pref = pref.QueryInterface(Components.interfaces.nsIPrefBranch2);
- if(pref.getBoolPref("mailnews.headers.showXimfmail")){
- gXimfHeaders = new XimfmailDbMsg();
+ if(currentXimfHdrArray.length > 0){
+ var ximfMsg = new XimfmailMesssage();
+ if(ximfMsg.init(uriSrc,currentXimfHdrArray)){
+ //alert("XimfmailParseMesssage uriSrc = " + uriSrc +" \n valid ximfmail message")
var folderPaneElt = document.getElementById('folderPaneBox');
if(folderPaneElt){
- gXimfHeaders.set(msgDBHdr.folder.getUriForMsg(msgDBHdr));
// is read message opened in new tab
if(folderPaneElt.hasAttribute("collapsed")){
$("#ximfmail-custom-panel").attr("collapsed","true");
- if(ShowXimfmailPanel()){
+ if(ShowXimfmailPanel(ximfMsg)){
$("#ximfmailMailPanel").removeAttr("collapsed");
}
}else{
$("#ximfmail-custom-panel").removeAttr("collapsed");
}
}else{
- //if (window.arguments[0] instanceof Components.interfaces.nsIMsgDBHdr){
+ //alert("XimfmailParseMesssage - new window - uriSrc = " + uriSrc +" \n valid ximfmail message")
// message is displayed in new window
- //var msgHdr = window.arguments[0];
$("#ximfmail-custom-panel").removeAttr("collapsed");
- CreateXimfmailCatalog();
- gXimfHeaders.set(msgDBHdr.folder.getUriForMsg(msgDBHdr));
- if(ShowXimfmailPanel())
- $("#ximfmailMailPanel").removeAttr("collapsed");
- //if(ShowExpandedHeaders())
- // $("#ximfHeadBox").removeAttr("collapsed");
+ if(ShowXimfmailPanel(ximfMsg)) $("#ximfmailMailPanel").removeAttr("collapsed");
}
// common elements to display
- if(ShowExpandedHeaders()){
+ if(ShowExpandedHeaders(ximfMsg)){
$("#ximfHeadBox").removeAttr("collapsed");
}
- }else{
- DeleteXimfHeaders();
+ }
}
}catch(e){
- gConsole.logStringMessage("[ximfmail - ParseMsgXimfHeaders ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);
+ gConsole.logStringMessage("XimfmailParseAndOpenMesssage error:"+e);
}
-}
+};
/*
}catch(e){}
}
-/*
- * Ximf headers of current message
- */
-function XimfmailDbMsg(){
- this._mailUri = null;
- this._msgAnalyser = null;
- this._instanceMsgXimf = null;
-
- // parse and save ximf headers message
- this.set = function(uri){
- try{
- if(!uri) return;
- if(this._mailUri == uri) return;
- this._mailUri = uri;
- this._instanceMsgXimf = null;
- this._msgAnalyser=null;
-
- // get account XIMF definition
- var prefBranch = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);
- var current_definition = "";
- if(prefBranch.prefHasUserValue("mailnews.instance.mailpanel")){
- if(prefBranch.prefHasUserValue("mailnews.theme.mailpanel"))
- current_definition = prefBranch.getCharPref("mailnews.theme.mailpanel");
- }else{
- gConsole.logStringMessage("DBG [ximfmail - XimfmailDbMsg.set ] no ximf preferences ");
- }
-
- // search for template XIMF
- this._msgAnalyser = new XimfMessageAnalyser();
- this._msgAnalyser.setOriginalURI(this._mailUri);
- this._msgAnalyser.createXimfHdrArray();
- var uriXimfInstance = this._msgAnalyser.hasXimfHeaders(current_definition);
- if(uriXimfInstance){
- gConsole.logStringMessage("DBG [ximfmail - XimfmailDbMsg.set ] mail instance : " + uriXimfInstance);
- this._instanceMsgXimf = uriXimfInstance;
- return true;
- }
- }catch(e){
- gConsole.logStringMessage("[ximfmail - XimfmailDbMsg.reload ] " + e +"\nline : " + e.lineNumber + " : "+ e + "\nfile : "+ Error().fileName);
- }
- return false;
- };
-
- // get XIMF value from message
- this.getValue = function(headerName){
- return this._msgAnalyser.getHeaderValue(headerName);
- };
-
- // get XIMF value from message
- this.getCompleteArray = function(){
- return this._msgAnalyser.getCompleteArray();
- };
-
- this.setXimfHeader = function(headerName,value){
- this._msgAnalyser.setHeaderValue(headerName,value);
- };
-}
/*
* Dom document manipulations
}catch(e){}
};
-// set label and ximfvalue of ximf linked element
-function ComputeXimfElementLinked(ximfelement,idPanel){
+/*
+ * Set label and ximfvalue of ximf linked element
+ *
+ * @ximfMesssage : ximfmailMesssage object
+ */
+function ComputeXimfElementLinked(ximfelement,idPanel,ximfMessage){
try{
var xHeader = $("label[id='"+$(ximfelement).attr("refheader")+"']").attr("ximfheader");
- var ximfValue = gXimfHeaders.getValue(xHeader);
+ var ximfValue = ximfMessage.getHeaderValue(xHeader);
if(ximfValue){
// search for value and comlete display box
$(ximfelement).attr("refpanel",idPanel);
if(linkpopup){
var targetpopup = $("panel[id='"+linkpopup+"']");
$("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']").attr("refpanel",linkpopup);
- ComputeXimfElementLinked($("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']"),targetpopup[0].id);
+ ComputeXimfElementLinked($("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']"),targetpopup[0].id,ximfMessage);
}
}
}
}
// load ximf headers in DOM documents
-function ShowXimfmailPanel(){
- if(!gXimfHeaders._instanceMsgXimf){ return false; }
+function ShowXimfmailPanel(ximfmailMesssage){
try{
// create DOM panel using compose message template xslt
if(gXimfCatalog){
- $("#ximfmailMailPanelTitle").attr("value",gXimfCatalog.getNameInstance(gXimfHeaders._instanceMsgXimf));
+ $("#ximfmailMailPanelTitle").attr("value",gXimfCatalog.getNameInstance(ximfmailMesssage._instanceMsgXimf));
}else{
$("#ximfmailMailPanelTitle").attr("value","XIMFMAIL");
}
$("#ximfmailMailHeadersTablist").empty();
- var composeDom = CreateDOMWithXimfInstance(gXimfHeaders._instanceMsgXimf,"chrome://theme_ximfmail/content/messengerCompose-ximfmail.xsl");
+ var composeDom = CreateDOMWithXimfInstance(ximfmailMesssage._instanceMsgXimf,"chrome://theme_ximfmail/content/messengerCompose-ximfmail.xsl");
$("#ximfmailMailHeadersTablist").append(composeDom);
$("#ximfmailMailPanel").attr("hidden","true");
for(var idx_xheader_dom=0; idx_xheader_dom<xheader_dom.length; ++idx_xheader_dom){
try{
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for textbox : " + xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));
- var ximfValue = gXimfHeaders.getValue(xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));
+ var ximfValue = ximfmailMesssage.getHeaderValue(xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));
if(ximfValue){
// search for value and comlete display box
var display_box = $("textbox[refheader='" + xheader_dom[idx_xheader_dom].getAttribute("id") + "']");
if(linkpopup){
var targetpopup = $("panel[id='"+linkpopup+"']");
- ComputeXimfElementLinked($("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']"),targetpopup[0].id);
+ ComputeXimfElementLinked($("textbox[id='" + targetpopup[0].getAttribute("ximfreftextbox")+"']"),targetpopup[0].id,ximfmailMesssage);
}
}
}
var ximfLabelId = $("textbox[id='"+oriTxtboxId+"']").attr("refheader");
if(ximfLabelId){
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId);
- var ximfValue = gXimfHeaders.getValue($("label[id='"+ximfLabelId+"']").attr("ximfheader"));
+ var ximfValue = ximfmailMesssage.getHeaderValue($("label[id='"+ximfLabelId+"']").attr("ximfheader"));
if(ximfValue){
try{
// ximfValue is in Array
var refHeader = xheader_dom[idx_xheader_dom].getAttribute("refheader");
if(refHeader){
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId);
- var ximfValue = gXimfHeaders.getValue($("label[id='"+refHeader+"']").attr("ximfheader"));
+ var ximfValue = ximfmailMesssage.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader"));
if(ximfValue){
try{
// ximfValue is in Array
var refHeader = xheader_dom[idx_xheader_dom].getAttribute("refheader");
if(refHeader){
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId);
- var ximfValue = gXimfHeaders.getValue($("label[id='"+refHeader+"']").attr("ximfheader"));
+ var ximfValue = ximfmailMesssage.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader"));
if(ximfValue){
//alert($("label[id='"+refHeader+"']").attr("ximfheader")+" :: "+ximfValue)
xheader_dom[idx_xheader_dom].setAttribute("ximfvalue", ximfValue);
}
// insert security pictures...
-function ShowExpandedHeaders(){
+function ShowExpandedHeaders(ximfmailMesssage){
try{
// ximfmail elements to display pictures
var imgClassification = document.getElementById("ximfSecurityClassificationLabelImg");
var imgCategory = document.getElementById("ximfCategoryClassificationLabelImg");
// selected message has no XIMF headers
- if(!gXimfHeaders._instanceMsgXimf){
+ if(!ximfmailMesssage._instanceMsgXimf){
// remove all ximfmail pictures
if(imgClassification) imgClassification.setAttribute("src","");
if(imgCategory) imgCategory.setAttribute("src","");
if(imgClassification){
imgClassification.setAttribute("src","");
var reg=new RegExp("[&]+", "g");
- var picturesClassifArray = CreateRulesArray(gXimfHeaders._instanceMsgXimf,"ximf:classificationPictures");
+ var picturesClassifArray = CreateRulesArray(ximfmailMesssage._instanceMsgXimf,"ximf:classificationPictures");
for(var iHdr=0; iHdr<picturesClassifArray.length ; ++iHdr){
var headerRef = picturesClassifArray[iHdr]._headerRef;
- var valueRef = gXimfHeaders.getValue(headerRef);
+ var valueRef = ximfmailMesssage.getHeaderValue(headerRef);
if(valueRef){
for(var idxPix = 0 ; idxPix < picturesClassifArray.length ; ++idxPix){
var tabPictureValueRef =picturesClassifArray[idxPix]._valueRef.split(reg);
if(imgCategory){
imgCategory.setAttribute("src","");
var reg=new RegExp("[&]+", "g");
- var picturesCategorArray = CreateRulesArray(gXimfHeaders._instanceMsgXimf,"ximf:categoryPictures");
+ var picturesCategorArray = CreateRulesArray(ximfmailMesssage._instanceMsgXimf,"ximf:categoryPictures");
for(var iHdr=0; iHdr<picturesCategorArray.length ; ++iHdr){
var headerRef = picturesCategorArray[iHdr]._headerRef;
- var valueRef = gXimfHeaders.getValue(headerRef);
+ var valueRef = ximfmailMesssage.getHeaderValue(headerRef);
if(valueRef){
for(var idxPix = 0 ; idxPix < picturesCategorArray.length ; ++idxPix){
var tabPictureValueRef = picturesCategorArray[idxPix]._valueRef.split(reg);
// secure headers signature are present in message, isn't it?
// this rule is applied only on ximf messages with same instance of current account
try{
- secureHdrsArray = CreateRulesArray(gXimfHeaders._instanceMsgXimf,"ximfsecureHeaders");
+ secureHdrsArray = CreateRulesArray(ximfmailMesssage._instanceMsgXimf,"ximfsecureHeaders");
if(secureHdrsArray.length > 0){
var smimeBox = document.getElementById("smimeBox")
if(smimeBox.hasAttribute("collapsed")){
<?xml-stylesheet href="chrome://ximfmail/skin" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://ximfmail/locale/ximfmail.dtd">
-<overlay id="ximfMessengerOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">\r
- \r
- <script type="application/javascript" src="chrome://ximfmail/content/jquery.js" />\r
- <script type="application/javascript" src="chrome://ximfmail/content/controler-ximfmail.js" />\r
- <script type="application/javascript" src="chrome://ximfmail/content/constant-ximfmail.js" />\r
- <script type="application/javascript" src="chrome://ximfmail/content/ximfmail.js" />\r
- <script type="application/javascript" src="chrome://ximfmail/content/messageAnalyser-ximfmail.js" />\r
- <script type="application/javascript" src="chrome://ximfmail/content/messageWindow-ov-ximfmail.js" />\r
-\r
- <!-- Display Ximf pictures in message of new window-->\r
- <!-- Display Ximf pictures in message --> \r
- <rows id="expandedHeaderRows">\r
- <row id="ximfHeadBox" insertbefore="expandedfromRow" collapsed="true">\r
- <label value=""/>\r
- <hbox>\r
- <image id="ximfSecurityClassificationLabelImg"/>\r
- <spacer flex="1"/> \r
- <image id="ximfCategoryClassificationLabelImg"/>\r
- <spacer flex="1"/> \r
- </hbox> \r
- </row>\r
- </rows>\r
- \r
- <!-- Display Ximf headers in message of new window -->\r
+<overlay id="ximfMessengerOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script type="application/javascript" src="chrome://ximfmail/content/jquery.js" />
+ <script type="application/javascript" src="chrome://ximfmail/content/controler-ximfmail.js" />
+ <script type="application/javascript" src="chrome://ximfmail/content/constant-ximfmail.js" />
+ <script type="application/javascript" src="chrome://ximfmail/content/ximfmail.js" />
+ <script type="application/javascript" src="chrome://ximfmail/content/messageAnalyser-ximfmail.js" />
+ <script type="application/javascript" src="chrome://ximfmail/content/messageWindow-ov-ximfmail.js" />
+
+ <!-- Display Ximf pictures in message of new window-->
+ <!-- Display Ximf pictures in message -->
+ <rows id="expandedHeaderRows">
+ <row id="ximfHeadBox" insertbefore="expandedfromRow" collapsed="true">
+ <label value=""/>
+ <hbox>
+ <image id="ximfSecurityClassificationLabelImg"/>
+ <spacer flex="1"/>
+ <image id="ximfCategoryClassificationLabelImg"/>
+ <spacer flex="1"/>
+ </hbox>
+ </row>
+ </rows>
+
<vbox id="messagepanebox">
+ <!-- Display Ximf headers in message of new window -->
<vbox id="ximfmailMailPanel" insertafter="msgHeaderView" collapsed="true">
<hbox id="ximfmailMailPanelFocusBar" class="ximfmailFocusBar" flex="1" align="center">
<button class="ximfmailButton" id="ximfmailComposeMessageMaximize" tooltiptext="&ximfmail.compose.focus;" accesskey="+" hidden="true" />
* ZAC de la Clef Saint Pierre - 78990 Elancourt - FRANCE (IDDN.FR.001.480012.002.S.P.2008.000.10000) \r
* ***** END LICENSE BLOCK ***** */\r
// global variables\r
-var gCurrentIdentity=null;\r
-var gPreviousIdentity=null;\r
-var gComposeMsgByMenuitem=false;\r
+var gCurrentIdentity = null;\r
+var gPreviousIdentity = null;\r
+var gComposeMsgByMenuitem = false;\r
var gXimfThreadTree = null;\r
\r
var gConsole = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);\r
$("#threadTree").bind('select', OnSelectMsg);\r
\r
// Security Labels compatibility (RFC2634)\r
- try{CreateSecurityLabelXml()}catch(e){}\r
+ try{CreateSecurityLabelXml();}catch(e){}\r
});\r
\r
\r
<triple subject="?elt"\r
predicate="http://www.ximfmail.com/RDF#instanceLabel"\r
object="?label" /> \r
+ <triple subject="?elt"\r
+ predicate="http://www.ximfmail.com/RDF#active"\r
+ object="true" />\r
</conditions>\r
<action> \r
<menuitem uri="?elt" \r
case nsIMsgCompType.ReplyToSender: \r
case nsIMsgCompType.ForwardInline: \r
case nsIMsgCompType.ForwardAsAttachment: \r
- //alert("typeMsg = " + args.type + "\nUri of message : " + args.originalMsgURI);\r
- gJSLoader.loadSubScript("chrome://ximfmail/content/messageAnalyser-ximfmail.js");\r
- \r
- var msgAnalyser = new XimfMessageAnalyser();\r
- \r
- // search for template XIMF \r
+ var uriMsg = null;\r
if( args){ \r
- msgAnalyser.setOriginalURI(args.originalMsgURI); \r
+ uriMsg = args.originalMsgURI; \r
}else{\r
- if(gMsgCompose) msgAnalyser.setOriginalURI(gMsgCompose.originalMsgURI); \r
+ if(gMsgCompose) uriMsg = gMsgCompose.originalMsgURI; \r
}\r
- msgAnalyser.createXimfHdrArray(); \r
- \r
- // get instance of message \r
- var uriXimfInstance = msgAnalyser.hasXimfHeaders(current_definition);\r
- if(uriXimfInstance){ \r
- currentInstance = uriXimfInstance;\r
+ XimfmailGetMessage(uriMsg,XimfmailParseAndUpdateComposeMesssage); \r
+ break;\r
+ default : \r
LoadXimfmailPanel(currentInstance);\r
- ComputeWithForm(msgAnalyser); \r
+ break;\r
+ }\r
+ }catch(e){\r
+ gConsole.logStringMessage("[ximfmail - XimfmailStartup ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber); \r
+ } \r
+ //gConsole.logStringMessage("DBG [ximfmail - messengerCompose - XimfmailStartup ] \n XIMF instance : "+ currentInstance + "\n XIMF definition : " + current_definition);\r
+}\r
+\r
+/*\r
+ * Get Extended headers of messages and display known instances\r
+ */\r
+function XimfmailParseAndUpdateComposeMesssage(msgSrc,uriSrc){\r
+ var currentXimfHdrArray = XimfmailParseMessage(msgSrc);\r
+ var ximfMsg = new XimfmailMesssage();\r
+ if(ximfMsg.init(uriSrc,currentXimfHdrArray)){\r
+ LoadXimfmailPanel(ximfMsg._instanceMsgXimf);\r
+ ComputeWithForm(ximfMsg);\r
}else{ \r
$("#ximfmailComposeMessageHeadersTablist").empty();\r
$("#ximfmailComposeMessageTitle").attr("value","");\r
$("#isUsingXimfail").attr("hidden","false"); \r
- gXimfHdrs=null; \r
//remove ximf events ...\r
HideSendMessageElements(true);\r
$("#addressingWidget").unbind("command",SpecialXimfRule_CheckAddress); \r
ReloadSecurityAccess(); \r
} \r
- break;\r
- default : \r
- LoadXimfmailPanel(currentInstance); \r
- break;\r
- }\r
- }catch(e){\r
- gConsole.logStringMessage("[ximfmail - XimfmailStartup ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber); \r
- } \r
- //gConsole.logStringMessage("DBG [ximfmail - messengerCompose - XimfmailStartup ] \n XIMF instance : "+ currentInstance + "\n XIMF definition : " + current_definition);\r
}\r
\r
/*\r
<script type="application/javascript" src="chrome://ximfmail/content/constant-ximfmail.js" />\r
<script type="application/javascript" src="chrome://ximfmail/content/ximfmail.js" /> \r
<script type="application/javascript" src="chrome://ximfmail/content/ximfDataSource.js" />\r
+ <script type="application/javascript" src="chrome://ximfmail/content/messageAnalyser-ximfmail.js" />\r
<script type="application/javascript" src="chrome://ximfmail/content/messengerComposeHeaders-ximfmail.js" /> \r
<script type="application/javascript" src="chrome://ximfmail/content/ximfSpecial.js" /> \r
<script type="application/javascript" src="chrome://messenger/content/messengercompose/addressingWidgetOverlay.js"/>\r
// \r
XimfmailInstanceHeaders.prototype.loadXimfSecurityRules = function(){\r
var isSigned = false;\r
+ \r
+ // get secure state from prefs\r
+ if (gSMFields) isSigned = gSMFields.signMessage; \r
+\r
// secure headers \r
try{\r
// create XMLFile at temp directory with rules datas\r
$("#idItemSecureHeaders_2").attr("disabled","true"); \r
if(!isSigned){\r
toggleSignMessage();// signMessage(); // from file msgCompSMIMIEOverlay.js\r
- isSigned = true\r
+ isSigned = true;\r
} \r
$("#menu_securitySign1").attr("disabled","true");\r
$("#menu_securitySign2").attr("disabled","true"); \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)+100);\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
var idBox = button.getAttribute("refBox");\r
var ebox = document.getElementById(idBox);\r
args.push(idBox); // args[0] : id de la textbox a enrichir\r
- args.push(ebox.getAttribute("value")); // displayed date\r
+ args.push(ebox.value); // displayed date\r
args.push($("label[id='"+ebox.getAttribute("refheader")+"']").attr("value"));\r
\r
// open dialog \r
\r
// panel can accept more than 1 entry for header\r
$("panel").bind("popuphidden",function(evt){\r
- if(parseInt($(evt.currentTarget).attr("ximfmaxitem")) > 1 ){\r
+ if(parseInt($(evt.currentTarget).attr("ximfmaxitem"), 10) > 1 ){\r
// if panel has XIMF multiset implementation, don't compute it\r
var multisetPanel = $("#" + evt.currentTarget.id + " button[class='ximfButton']");\r
if(multisetPanel.length <=0){\r
\r
// panel - first entry must be selected before selecting composed item\r
$("panel").bind("popupshown",function(evt){\r
- if(parseInt($(evt.currentTarget).attr("ximfmaxitem")) <= 1 ) return;\r
+ if(parseInt($(evt.currentTarget).attr("ximfmaxitem"), 10) <= 1 ) return;\r
var richitems = $("#" + evt.currentTarget.id + " richlistbox" ).children("richlistitem"); \r
for(i=0 ; i<richitems.length; ++i){\r
var chk1 = richitems[i].firstElementChild;\r
try{ \r
idBox = evt.currentTarget.getAttribute("idbox"); \r
var eltTextbox = document.getElementById(idBox);\r
- switch(parseInt(evt.currentTarget.getAttribute("idx"))){ \r
+ switch(parseInt(evt.currentTarget.getAttribute("idx"), 10)){ \r
case 1:\r
// erase all selected values\r
EraseAndComputeXimfhdrsTextbox(eltTextbox.id, true);\r
var dlgEditorXimf_maxItem_alert = maxItems + " "+ getIlkProperties("ximfmail.dialog.editor.warning.nbrows"); \r
var arrayItem = domElt.value.split(separatorItem); \r
var nbItems = arrayItem.length;\r
- if(parseInt(maxItems)<arrayItem.length){\r
- nbItems = parseInt(maxItems);\r
+ if(parseInt(maxItems, 10)<arrayItem.length){\r
+ nbItems = parseInt(maxItems, 10);\r
ximfAlert(labelHeader,dlgEditorXimf_maxItem_alert); \r
var newvalue = ""; \r
for(var i=0 ; i<nbItems ; ++i){\r
/*\r
* Compute DOM with datas (used to load draft or template message)\r
*/\r
-function ComputeWithForm(ximfMessageAnalyser){\r
- if (!ximfMessageAnalyser instanceof XimfMessageAnalyser){\r
- gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - refreshDatas] \n parameter of refreshDatas ust be a XimfMessageAnalyser object");\r
+function ComputeWithForm(ximfMessage){ \r
+ if (!ximfMessage instanceof XimfmailMesssage){\r
+ gConsole.logStringMessage("[ximfmail - ComputeWithForm ] \n parameter of refreshDatas must be a ximfMessage object");\r
return false; \r
}\r
\r
var display_box = null;\r
try{\r
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for textbox : " + xheader_dom[idx_xheader_dom].getAttribute("ximfheader")); \r
- var ximfValue = ximfMessageAnalyser.getHeaderValue(xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));\r
+ var ximfValue = ximfMessage.getHeaderValue(xheader_dom[idx_xheader_dom].getAttribute("ximfheader"));\r
if(ximfValue){ \r
// search for value and complete display box\r
var display_box_list = $("textbox[refheader='" + xheader_dom[idx_xheader_dom].getAttribute("id") + "']");\r
var ximfLabelId = $("textbox[id='"+oriTxtboxId+"']").attr("refheader");\r
if(ximfLabelId){\r
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId); \r
- var ximfValue = ximfMessageAnalyser.getHeaderValue($("label[id='"+ximfLabelId+"']").attr("ximfheader")); \r
+ var ximfValue = ximfMessage.getHeaderValue($("label[id='"+ximfLabelId+"']").attr("ximfheader")); \r
if(ximfValue){ \r
xheader_dom[idx_xheader_dom].setAttribute("value",ximfValue);\r
} \r
var refHeader = xheader_dom[idx_xheader_dom].getAttribute(_XIMF_ATT_REF_HEADER); \r
if(refHeader){\r
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId); \r
- var ximfValue = ximfMessageAnalyser.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader")); \r
+ var ximfValue = ximfMessage.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader")); \r
if(ximfValue){ \r
xheader_dom[idx_xheader_dom].listaddress = ximfValue;\r
//alert("load address values \n"+ximfValue+"\n"+xheader_dom[idx_xheader_dom].listaddress); \r
var refHeader = xheader_dom[idx_xheader_dom].getAttribute(_XIMF_ATT_REF_HEADER); \r
if(refHeader){\r
//gConsole.logStringMessage("[ximfmail - XimfMsgComposeView - search value for freetext :" + $("label[id='"+ximfLabelId+"']").attr("ximfheader")+"\nid ="+ximfLabelId); \r
- var ximfValue = ximfMessageAnalyser.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader")); \r
+ var ximfValue = ximfMessage.getHeaderValue($("label[id='"+refHeader+"']").attr("ximfheader")); \r
if(ximfValue){\r
//alert($("label[id='"+refHeader+"']").attr("ximfheader")+" :: "+ximfValue)\r
var thisDate = ConvertZTimeToLocal(ximfValue); \r
var textboxXimfHdrs = $("textbox[class='XimfTextboxDisplay']"); \r
for(var i=0; i<textboxXimfHdrs.length; ++i){\r
try{\r
- var refDefaultItemHdr = $("panel[id='" + $(textboxXimfHdrs[i]).attr("refpanel") + "']").attr("ximfdefault"); \r
- if(refDefaultItemHdr && $(textboxXimfHdrs[i]).attr("ximfvalue") == "" ){\r
- var item = $("#"+refDefaultItemHdr);\r
+ var refDefaultItemXimfHdr = $("panel[id='" + $(textboxXimfHdrs[i]).attr("refpanel") + "']").attr("ximfdefault"); \r
+ if(refDefaultItemXimfHdr && $(textboxXimfHdrs[i]).attr("ximfvalue") == "" ){\r
+ var item = $("#"+refDefaultItemXimfHdr);\r
if(item.length > 0){\r
$(textboxXimfHdrs[i]).attr("ximfvalue",$(item[0]).attr("ximfvalue"));\r
textboxXimfHdrs[i].value = $(item[0]).attr("label"); \r
$(textboxXimfHdrs[i]).attr("ximftecvalue",techvalue);\r
}\r
}else{\r
- $(textboxXimfHdrs[i]).attr("ximfvalue",refDefaultItemHdr);\r
- textboxXimfHdrs[i].value = refDefaultItemHdr;\r
+ $(textboxXimfHdrs[i]).attr("ximfvalue",refDefaultItemXimfHdr);\r
+ textboxXimfHdrs[i].value = refDefaultItemXimfHdr;\r
}\r
}\r
}catch(err){}\r
var _rdfService = null;
var _dsCatalog = null;
var _urlCatalog = null
- var _instanceCounter = 0; // instance counter for index RDF file
+
// public:
if(typeof XimfCatalog.initialized == "undefined"){
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
}
+ return null;
};
/*
* create catalog with profile xml informations
*/
- XimfCatalog.prototype.registerXimfmailProfileNode = function(domProfile){
+ XimfCatalog.prototype.registerXimfmailProfileNode = function(domProfile,aclLevel){
try{
// default title of smtp message
var smtpXimfVersion = DEFAULT_XIMF_VERSION;
// Create theme List
var themeTag = domProfile.getElementsByTagName("theme");
var theme = "";
+ var uriThemeDefinition = "http://www.ximfmail.com/catalog/" + themeTag[0].getAttribute("name");
if(themeTag.length > 0){
+ //var adate = new Date();
+ //theme = themeTag[0].getAttribute("name")+"-" + parseInt(adate.getTime())+ parseInt(Math.round(Math.random()*1000));
theme = themeTag[0].getAttribute("name");
var newURI = "http://www.ximfmail.com/catalog/" + theme;
+
+ // get acl default level
+ var defaultacl=-1;
+ if(themeTag[0].hasAttribute("defaultacl")){
+ defaultacl = themeTag[0].getAttribute("defaultacl");
+ gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] Default ACL level of profile " + newURI + " : " + defaultacl);
+ }
+
+ if( RDFC.IndexOf(_rdfService.GetResource(newURI)) == -1){
RDFC.AppendElement(_rdfService.GetResource(newURI));
+
_dsCatalog.Assert(_rdfService.GetResource(newURI),
_rdfService.GetResource("http://www.ximfmail.com/RDF#name"),
_rdfService.GetLiteral(theme), true);
_dsCatalog.Assert(_rdfService.GetResource(newURI),
_rdfService.GetResource("http://www.ximfmail.com/RDF#refSeq"),
_rdfService.GetLiteral("http://www.ximfmail.com/catalog/instance_"+theme), true);
+
+ _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#defaultacl"),
+ _rdfService.GetLiteral(defaultacl), true);
+
+ }else{
+ _dsCatalog.Change(_rdfService.GetResource(newURI),
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#name"),
+ _rdfService.GetLiteral( this.getTarget(newURI,"http://www.ximfmail.com/RDF#name")),
+ _rdfService.GetLiteral(theme));
+
+ _dsCatalog.Change(_rdfService.GetResource(newURI),
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#refSeq"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#refSeq")),
+ _rdfService.GetLiteral("http://www.ximfmail.com/catalog/instance_"+theme));
+
+ _dsCatalog.Change(_rdfService.GetResource(newURI),
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#defaultacl"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#defaultacl")),
+ _rdfService.GetLiteral(defaultacl));
}
+ }
+
// Create instance List
- var seqNode = _rdfService.GetResource("http://www.ximfmail.com/catalog/instance_"+theme);
- RDFCUtils.MakeSeq(_dsCatalog, seqNode);
- RDFC.Init(_dsCatalog, seqNode);
+ var RDFCI = RDFCUtils.MakeSeq(_dsCatalog, _rdfService.GetResource("http://www.ximfmail.com/catalog/instance_"+theme));
+
+ // create definitions entries
var instanceTag = themeTag[0].getElementsByTagName("instance");
//alert(instanceTag.length + " instances in profile xml " + theme)
+
var sValue="";
var bHasSmtpInstance=false;
- // create definitions entries
for(var i = 0; i < instanceTag.length; i++){
try{
// default instance message, continue
continue;
}
}catch(e){}
- //alert("instance : " + schemaTag[0].getAttribute("name") +" && "+ schemaTag[0].textContent);
// append resource element to sequence
- var newURI = "http://www.ximfmail.com/catalog/instance_"+theme +"/" + (i + 1 + _instanceCounter);
- RDFC.AppendElement(_rdfService.GetResource(newURI));
+ var newURI = "http://www.ximfmail.com/catalog/instance_"+theme +"/"+instanceTag[i].getAttribute("name");
+ var newResource = _rdfService.GetResource(newURI);
+ var isNewItem = false;
+
+ if( RDFCI.IndexOf(newResource) == -1){
+ RDFCI.AppendElement(newResource);
+ isNewItem = true;
+ }
// append ximfVersion of instance
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#ximfVersion"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("ximfVersion")), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#ximfVersion"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#ximfVersion")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("ximfVersion")));
+ }
// append name of instance
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#instance"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("name")), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#instance"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#instance")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("name")));
+ }
// append label of instance
try{
var instLabel = instanceTag[i].getAttribute("label");
if(!instLabel) instLabel = instanceTag[i].getAttribute("name");
//gConsole.logStringMessage("instLabel" + instLabel);
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#instanceLabel"),
_rdfService.GetLiteral(instLabel), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#instanceLabel"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#instanceLabel")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("instanceLabel")));
+ }
}catch(ex){}
// append version of instance
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#version"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("version")), true);
-
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#version"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#version")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("version")));
+ }
// append id of instance
try{
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#id"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("id")), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#id"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#id")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("id")));
+ }
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
}
if(schemaElt){
sValue = schemaElt[0].textContent;
}
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#pathSchema"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#pathSchema"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#pathSchema")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue));
+ }
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
}
if(ihmElt){
sValue = ihmElt[0].textContent;
}
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#pathIhm"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#pathIhm"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#pathIhm")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue));
+ }
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
}
if(rulesDico){
sValue = rulesDico[0].textContent;
}
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#pathRules"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#pathRules"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#pathRules")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue));
+ }
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
}
if(ihmDico){
sValue = ihmDico[0].textContent;
}
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#pathDictionary"),
_rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#pathDictionary"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#pathDictionary")),
+ _rdfService.GetLiteral(instanceTag[i].getAttribute("directory")+sValue));
+ }
}catch(e){
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
}
- _dsCatalog.Assert(_rdfService.GetResource(newURI),
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
_rdfService.GetResource("http://www.ximfmail.com/RDF#theme"),
_rdfService.GetLiteral(theme), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#theme"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#theme")),
+ _rdfService.GetLiteral(theme));
+ }
+
+ try{
+ // aclLevel of instance to hide/unhide it on account
+ sValue="true";
+ var iAclLevel = -1;
+ var acltag = instanceTag[i].getElementsByTagName("acl");
+ if(acltag.length>0)iAclLevel = acltag[0].textContent;
+ if(aclLevel){
+ if(parseInt(iAclLevel, 10) > parseInt(aclLevel, 10)) sValue = "false";
+ }else{
+ if(parseInt(iAclLevel, 10) > parseInt(this.getTarget(uriThemeDefinition,"http://www.ximfmail.com/RDF#defaultacl"), 10))sValue = "false";
+ }
+
+ if(isNewItem){
+ _dsCatalog.Assert(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#active"),
+ _rdfService.GetLiteral(sValue), true);
+ }else{
+ _dsCatalog.Change(newResource,
+ _rdfService.GetResource("http://www.ximfmail.com/RDF#active"),
+ _rdfService.GetLiteral(this.getTarget(newURI,"http://www.ximfmail.com/RDF#active")),
+ _rdfService.GetLiteral(sValue));
+ }
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + e.fileName+"\nline : "+e.lineNumber);
+ }
}
// insert smtp entry
if(bHasSmtpInstance){
- var sURI = "http://www.ximfmail.com/catalog/instance_"+theme +"/" + _instanceCounter;
- RDFC.AppendElement(_rdfService.GetResource(sURI));
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#ximfVersion"), _rdfService.GetLiteral(smtpXimfVersion), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#instance"),_rdfService.GetLiteral(smtpInstance), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#version"), _rdfService.GetLiteral(smtpVersion), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#pathSchema"),_rdfService.GetLiteral(smtpInstance), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#pathIhm"),_rdfService.GetLiteral(smtpInstance), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#pathRules"),_rdfService.GetLiteral(smtpInstance), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#pathDictionary"),_rdfService.GetLiteral(smtpInstance), true);
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#theme"),_rdfService.GetLiteral(smtpInstance), true);
+ var smtpURI = "http://www.ximfmail.com/catalog/instance_"+theme +"/smtp";
+ var smtpResource = _rdfService.GetResource(smtpURI);
+ RDFCI.AppendElement(smtpResource);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#ximfVersion"), _rdfService.GetLiteral(smtpXimfVersion), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#instance"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#version"), _rdfService.GetLiteral(smtpVersion), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#pathSchema"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#pathIhm"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#pathRules"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#pathDictionary"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#theme"),_rdfService.GetLiteral(smtpInstance), true);
+ _dsCatalog.Assert(smtpResource, _rdfService.GetResource("http://www.ximfmail.com/RDF#active"), _rdfService.GetLiteral("true"), true);
// append label of instance
try{
- _dsCatalog.Assert(_rdfService.GetResource(sURI),_rdfService.GetResource("http://www.ximfmail.com/RDF#instanceLabel"),_rdfService.GetLiteral(smtpInstanceLabel), true);
+ _dsCatalog.Assert(smtpResource,_rdfService.GetResource("http://www.ximfmail.com/RDF#instanceLabel"),_rdfService.GetLiteral(smtpInstanceLabel), true);
}catch(ex){}
- // counter instances
- _instanceCounter = _instanceCounter + instanceTag.length + 1;
}
// save datas to file DBG
//_dsCatalog.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+e.lineNumber);
}
};
+ XimfCatalog.prototype.RemoveSeqCatalog = function(seqNode){
+ try{
+ // create RDF resources
+
+ //var seqNode = _rdfService.GetResource("http://www.ximfmail.com/catalog");
+ var rSeqCatalog = null;
+ try{
+ rSeqCatalog = _rdfCUtils.MakeSeq(_dsCatalog, seqNode);
+ }catch(e){
+ gConsole.logStringMessage("[ximfmail - XimfCatalog.registerXimfmailProfileNode ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+
+
+
+ if(rSeqCatalog){
+ /*
+ var numEntri = rSeqCatalog.GetCount();
+ for (var indexCur = numEntri; indexCur >0; indexCur--){
+ rSeqCatalog.RemoveElementAt(indexCur,true);
+ alert("remove " + rSeqCatalog)
+ }
+ */
+
+ var tseq = rSeqCatalog.GetElements();
+ alert(seqNode.ValueUTF8+"\nnb elements to remove = " + rSeqCatalog.GetCount())
+ var uriResource = "";
+ while (tseq.hasMoreElements()){
+ var element = tseq.getNext();
+ if (element instanceof Components.interfaces.nsIRDFResource){
+ uriResource = element.ValueUTF8;
+ alert("remove " + uriResource)
+ var resource = _rdfService.GetResource(uriResource);
+ rSeqCatalog.RemoveElementAt(rSeqCatalog.IndexOf(resource),true);
+ }else{
+ alert("remove " + uriResource)
+ }
+ }
+ alert("nb elements = " + rSeqCatalog.GetCount())
+ }
+ }catch(e){
+ alert(e)
+ gConsole.logStringMessage("[ximfmail - XimfCatalog - RemoveSeqCatalog ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
+ }
+ };
+
XimfCatalog.prototype.getNameInstance = function(instance){
return this.getTarget(instance,"http://www.ximfmail.com/RDF#instance");
};
try{
/// get container of instance resources of current definition
var RDFCUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].createInstance(Components.interfaces.nsIRDFContainerUtils);
-
+ //alert("getInstanceUri - ximfDefUri = " + ximfDefUri)
var rs_seqInstance = _rdfService.GetResource(ximfDefUri);
var containerInstances = RDFCUtils.MakeSeq(_dsCatalog, rs_seqInstance);
var children = containerInstances.GetElements();
var gConsole = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
var gJSLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].createInstance(Components.interfaces.mozIJSSubScriptLoader);
+var gXimfCatalog = null;
try{
gJSLoader.loadSubScript("chrome://ximfmail/content/ximfCatalog.js");
- var gXimfCatalog = new XimfCatalog();
+ gXimfCatalog = new XimfCatalog();
}catch(e){
gConsole.logStringMessage("[ximfmail - Load XimfCatalog ] \n " + e + "\nfile : " + Error().fileName+"\nline : "+Error().lineNumber);
}
/*
* Load informations of ximf extensions in RDF memory
*/
-function CreateXimfmailCatalog(){
+function CreateXimfmailCatalog(aclLevel){
try{
+ if(!gXimfCatalog) gXimfCatalog = new XimfCatalog();
var extensionPath = getFilePathInProfile("extensions/");
var extensionList = getExtensionsList();
var sCompletePath;
if(dir.exists()){
// get xml profile
var xmlDoc = GetXmlDocument(sCompletePath);
- gXimfCatalog.registerXimfmailProfileNode(xmlDoc.documentElement);
+ gXimfCatalog.registerXimfmailProfileNode(xmlDoc.documentElement,aclLevel);
dump(sCompletePath + " : " + extensionList[i].name);
//alert(sCompletePath + " : " + extensionList[i].name);
}
// get date
new_date = parts[1];
// get month
+ var month = "";
switch(parts[2].toLowerCase()){
case "jan":
new_date += "/01/";
+ month = "0";
break;
case "feb":
new_date += "/02/";
+ month = "1";
break;
case "mar":
new_date += "/03/";
+ month = "2";
break;
case "apr":
new_date += "/04/";
+ month = "3";
break;
case "may":
new_date += "/05/";
+ month = "4";
break;
case "jun":
new_date += "/06/";
+ month = "5";
break;
case "jul":
new_date += "/07/";
+ month = "6";
break;
case "aug":
new_date += "/08/";
+ month = "7";
break;
case "sep":
new_date += "/09/";
+ month = "8";
break;
case "oct":
new_date += "/10/";
+ month = "9";
break;
case "nov":
new_date += "/11/";
+ month = "10";
break;
case "dec":
new_date += "/12/";
+ month = "11";
break;
default : new_date += "/??/";
}
new_date += parts[3];
//get time, adjust time GMT and LocaleTime
var cdat = new Date();
+ cdat.setUTCFullYear(parseInt("20"+parts[3], 10));
+ cdat.setUTCMonth(parseInt(month, 10));
+ cdat.setUTCDate(parseInt(parts[1], 10));
+
var hour = parts[4];
var min = parts[5];
try{
}catch(e){}
// get local time
- var time = (parseInt(hour)*60) + parseInt(min) + (cdat.getTimezoneOffset()*-1);
- //gConsole.logStringMessage("DBG [Ximfmail - ConvertZTimeToLocal] Formule \n"+(parseInt(hour)*60)+"+"+parseInt(min)+"+" +cdat.getTimezoneOffset()+"="+time);
+ var time = (parseInt(hour, 10)*60) + parseInt(min, 10) + (cdat.getTimezoneOffset()*-1);
+ //gConsole.logStringMessage("DBG [Ximfmail - ConvertZTimeToLocal] Formule \n"+(parseInt(hour, 10)*60)+"+"+parseInt(min, 10)+"+" +cdat.getTimezoneOffset()+"="+time);
- var hour = parseInt(parseInt(time)/60);
- if(parseInt(min) < 0){
+ var hour = parseInt(parseInt(time, 10)/60, 10);
+ if(parseInt(hour, 10)<=9) hour = "0" + hour;
+ if(parseInt(min, 10) < 0){
}
- if(parseInt(min) < 24){
+ if(parseInt(min, 10) < 24){
}
- var min = parseInt(parseInt(time)%60);
- if(parseInt(min)<=9) min = "0" + min;
+ var min = parseInt(parseInt(time, 10)%60, 10);
+ if(parseInt(min, 10)<=9) min = "0" + min;
new_date += " "+ hour +":"+min;
- //gConsole.logStringMessage("DBG [Ximfmail - ConvertZTimeToLocal] \n"+hour+":"+min+" >> " +time+"\n"+time+"/60 = "+ parseInt(time)/60 + "\n" + time + "%60 = " + parseInt(time)%60);
+ //gConsole.logStringMessage("DBG [Ximfmail - ConvertZTimeToLocal] \n"+hour+":"+min+" >> " +time+"\n"+time+"/60 = "+ parseInt(time, 10)/60 + "\n" + time + "%60 = " + parseInt(time, 10)%60);
return new_date;
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">\r
<Description about="urn:mozilla:install-manifest">\r
<em:name>XIMFMail</em:name>\r
- <em:version>3.1.10+0.5.1</em:version>\r
+ <em:version>0.6.4</em:version>\r
<em:id>{A627B834-BD9F-4b3f-9AF5-347B5A570402}</em:id>\r
<em:description>Xtend Internet Message Format engine</em:description>\r
\r
content/kernel/am-ximfmail.xul (chrome/content/kernel/am-ximfmail.xul)
content/kernel/dialogHdrInfo-ximfmail.xul (chrome/content/kernel/dialogHdrInfo-ximfmail.xul)
content/kernel/dialogTree-ximfmail.xul (chrome/content/kernel/dialogTree-ximfmail.xul)
+ content/kernel/dialogTree-rdf-ximfmail.js (chrome/content/kernel/dialogTree-rdf-ximfmail.js)
content/kernel/messageWindow-ov-ximfmail.xul (chrome/content/kernel/messageWindow-ov-ximfmail.xul)
content/kernel/messengerCompose-ov-ximfmail.xul (chrome/content/kernel/messengerCompose-ov-ximfmail.xul)
content/kernel/messenger-ov-ximfmail.xul (chrome/content/kernel/messenger-ov-ximfmail.xul)