Don't create Folder name or description if foldersName or foldersDesc are null. r=pgiraud (closes #2417)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@9976 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Frédéric Junod
2010-01-27 14:44:35 +00:00
parent e5aab2453d
commit 1f481f3d38
2 changed files with 37 additions and 17 deletions

View File

@@ -32,19 +32,21 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
/** /**
* APIProperty: placemarksDesc * APIProperty: placemarksDesc
* {String} Name of the placemarks. Default is "No description available." * {String} Name of the placemarks. Default is "No description available".
*/ */
placemarksDesc: "No description available", placemarksDesc: "No description available",
/** /**
* APIProperty: foldersName * APIProperty: foldersName
* {String} Name of the folders. Default is "OpenLayers export." * {String} Name of the folders. Default is "OpenLayers export".
* If set to null, no name element will be created.
*/ */
foldersName: "OpenLayers export", foldersName: "OpenLayers export",
/** /**
* APIProperty: foldersDesc * APIProperty: foldersDesc
* {String} Description of the folders. Default is "Exported on [date]." * {String} Description of the folders. Default is "Exported on [date]."
* If set to null, no description element will be created.
*/ */
foldersDesc: "Exported on " + new Date(), foldersDesc: "Exported on " + new Date(),
@@ -983,20 +985,24 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
* {DOMElement} * {DOMElement}
*/ */
createFolderXML: function() { createFolderXML: function() {
// Folder name
var folderName = this.createElementNS(this.kmlns, "name");
var folderNameText = this.createTextNode(this.foldersName);
folderName.appendChild(folderNameText);
// Folder description
var folderDesc = this.createElementNS(this.kmlns, "description");
var folderDescText = this.createTextNode(this.foldersDesc);
folderDesc.appendChild(folderDescText);
// Folder // Folder
var folder = this.createElementNS(this.kmlns, "Folder"); var folder = this.createElementNS(this.kmlns, "Folder");
folder.appendChild(folderName);
folder.appendChild(folderDesc); // Folder name
if (this.foldersName) {
var folderName = this.createElementNS(this.kmlns, "name");
var folderNameText = this.createTextNode(this.foldersName);
folderName.appendChild(folderNameText);
folder.appendChild(folderName);
}
// Folder description
if (this.foldersDesc) {
var folderDesc = this.createElementNS(this.kmlns, "description");
var folderDescText = this.createTextNode(this.foldersDesc);
folderDesc.appendChild(folderDescText);
folder.appendChild(folderDesc);
}
return folder; return folder;
}, },

View File

@@ -66,9 +66,9 @@
t.plan(1); t.plan(1);
var kmlExpected = this.test_content; var kmlExpected = this.test_content;
var options = { var options = {
folderName: "OpenLayers export", foldersName: "OpenLayers export",
foldersDesc: "Vector geometries from OpenLayers" foldersDesc: "Vector geometries from OpenLayers"
} };
var format = new OpenLayers.Format.KML(options); var format = new OpenLayers.Format.KML(options);
var features = format.read(kmlExpected); var features = format.read(kmlExpected);
@@ -77,6 +77,20 @@
t.eq(kmlOut, kmlExpected, "correctly writes an KML doc string"); t.eq(kmlOut, kmlExpected, "correctly writes an KML doc string");
} }
function test_Format_KML_write_noNameDesc(t) {
t.plan(1);
var format = new OpenLayers.Format.KML({
foldersName: null,
foldersDesc: null
});
var geom = new OpenLayers.Geometry.Point(0, 0)
var feature = new OpenLayers.Feature.Vector(geom);
feature.id = 42;
var kmlOut = format.write(feature);
var expected = '<kml xmlns="http://earth.google.com/kml/2.0"><Folder><Placemark><name>42</name><description>No description available</description><Point><coordinates>0,0</coordinates></Point></Placemark></Folder></kml>'
t.eq(kmlOut, expected, "null foldersName or foldersDesc don't create elements");
}
function test_Format_KML_write_multis(t) { function test_Format_KML_write_multis(t) {
/** /**
* KML doesn't have a representation for multi geometries of a * KML doesn't have a representation for multi geometries of a