Skip to content
This repository was archived by the owner on Jan 22, 2024. It is now read-only.

Commit a73cb23

Browse files
committed
updates for authoring templates
1 parent 4163548 commit a73cb23

5 files changed

Lines changed: 174 additions & 14 deletions

File tree

dashboard.tar.gz

1.3 KB
Binary file not shown.

digexp-wcm-design/lib/wcmOperations.js

Lines changed: 164 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,23 @@ cAlternate = "alternate",
2222
wcmExts = {
2323
LibraryHTMLComponent: ".html",
2424
HTMLComponent: ".html",
25-
LibraryImageComponent: ".png",
25+
LibraryImageComponent: "_img.txt",
26+
ImageComponent: "_img.txt",
2627
LibraryTextComponent: ".txt",
2728
TextComponent: ".txt",
2829
LibraryRichTextComponent: ".rtf",
2930
RichTextComponent: ".rtf",
3031
LibraryStyleSheetComponent: ".css",
3132
LibraryShortTextComponent: "_st.txt",
32-
ShortTextComponent: "_st.txt"
33+
ShortTextComponent: "_st.txt",
34+
ReferenceComponent: "_ref.txt",
35+
DateComponent: "_dt.txt",
36+
JSPComponent: "_jsp.txt",
37+
LinkComponent: "_lnk.txt",
38+
NumericComponent: "_num.txt",
39+
OptionSelectionComponent: "_os.txt",
40+
UserSelectionComponent: "_us.txt",
41+
FileComponent: "_file.txt"
3342
},
3443
wcmTypes = {
3544
presentationTemplate: "PresentationTemplate"
@@ -718,6 +727,34 @@ function updateWcmItemMetaData(fileName){
718727
return deferred.promise;
719728
}
720729

730+
/**
731+
* Updates the specified wcm item metadata from the md file
732+
* @param FileName which contains the contents of the objects metadata
733+
* @returns a Promise that returns the updated object
734+
*/
735+
function updateWcmElementsData(fileName){
736+
var deferred = Q.defer(), doRequest = function(item , val){
737+
debugLogger.trace('updateWcmItemMetaData:: fileName::' + fileName);
738+
var data = fs.readFileSync(fileName, "utf8");
739+
try{
740+
var item = JSON.parse(data);
741+
var entry = {entry: item.elements};
742+
var uri = getUrlForType(wcmItem.getType(item)) + '/' + getRawId(wcmItem.getId(item)) + '/Prototype';
743+
authRequest.setJson(uri, entry, 'Put').then(function(data){
744+
deferred.resolve(data);
745+
},function(err){
746+
debugLogger.error("SetJson::err::"+err);
747+
deferred.reject(err);
748+
});
749+
}
750+
catch(e){
751+
debugLogger.error("update metadata ::err::"+e);
752+
deferred.reject('bad data in md file');
753+
}
754+
};
755+
doRequest(fileName);
756+
return deferred.promise;
757+
}
721758
/**
722759
* Updates the specified wcm item with new content { in progress }
723760
* @param {Object*} a wcmItem
@@ -792,7 +829,9 @@ function getWcmItemData(type, id) {
792829
var curCount = 0;
793830
var sWarn = authRequest.getWarnParallel();
794831
authRequest.setWarnParallel(false);
795-
entry.elements = [];
832+
entry.elements = items;
833+
return deferred.resolve(entry);
834+
/*
796835
items.forEach(function(item) {
797836
var cRef = getContentReference(item.type, item);
798837
if (cRef != undefined) {
@@ -825,6 +864,7 @@ function getWcmItemData(type, id) {
825864
});
826865
}
827866
});
867+
*/
828868
}, function(err) {
829869
debugLogger.error("getWcmItemData::getWcmItemsForOperation::err::" + err);
830870
deferred.reject(err);
@@ -1117,6 +1157,125 @@ function getJson( deffered, data){
11171157
}
11181158
}
11191159

1160+
/**
1161+
* Returns the data from an elements content
1162+
* @param type of content
1163+
* @param content json object
1164+
* @returns the data for this type of data
1165+
*/
1166+
function getElementData( type, content){
1167+
debugLogger.trace("getElemetData:data::" + content);
1168+
var dataJson;
1169+
try{
1170+
switch(type){
1171+
case "RichTextComponent":
1172+
case"ShortTextComponent":
1173+
case"TextComponent":
1174+
case "HTMLComponent":{
1175+
dataJson = content.value;
1176+
break;
1177+
}
1178+
case"DateComponent":{
1179+
dataJson = JSON.stringify(content.date);
1180+
break;
1181+
}
1182+
case "NumericComponent":{
1183+
dataJson = content.double;
1184+
break;
1185+
}
1186+
case "OptionSelectionComponent":{
1187+
dataJson = JSON.stringify(content.optionselection);
1188+
break;
1189+
}
1190+
case "UserSelectionComponent":{
1191+
dataJson = JSON.stringify(content.userSelection);
1192+
break;
1193+
}
1194+
case "LinkComponent":{
1195+
dataJson = JSON.stringify(content.linkElement);
1196+
break;
1197+
}
1198+
case "JSPComponent":{
1199+
dataJson = JSON.stringify(content.jsp);
1200+
break;
1201+
}
1202+
case "ImageComponent":{
1203+
dataJson = JSON.stringify(content.image);
1204+
break;
1205+
}
1206+
case "FileComponent":{
1207+
// dataJson = content.image;
1208+
break;
1209+
}
1210+
case "ReferenceComponent":{
1211+
dataJson = content.reference;
1212+
break;
1213+
}
1214+
}
1215+
} catch (e){
1216+
}
1217+
return dataJson;
1218+
}
1219+
/**
1220+
* Sets the data from an elements content
1221+
* @param type of content
1222+
* @param content json object
1223+
* @param data to set
1224+
* @returns the data for this type of data
1225+
*/
1226+
function setElementData( type, content, data ){
1227+
debugLogger.trace("setElemetData:data::" + content);
1228+
try{
1229+
switch(type){
1230+
case "RichTextComponent":
1231+
case"ShortTextComponent":
1232+
case"TextComponent":
1233+
case "HTMLComponent":{
1234+
content.value = data;
1235+
break;
1236+
}
1237+
case"DateComponent":{
1238+
content.date = JSON.parse(data);
1239+
break;
1240+
}
1241+
case "NumericComponent":{
1242+
content.double = data;
1243+
break;
1244+
}
1245+
case "OptionSelectionComponent":{
1246+
content.optionselection = JSON.parse(data);
1247+
break;
1248+
}
1249+
case "UserSelectionComponent":{
1250+
content.userSelection = JSON.parse(data);
1251+
break;
1252+
}
1253+
case "LinkComponent":{
1254+
content.linkElement = JSON.parse(data);
1255+
break;
1256+
}
1257+
case "JSPComponent":{
1258+
content.jsp = JSON.parse(data);
1259+
break;
1260+
}
1261+
case "ImageComponent":{
1262+
content.image = JSON.parse(data);
1263+
break;
1264+
}
1265+
case "FileComponent":{
1266+
// dataJson = content.image;
1267+
break;
1268+
}
1269+
case "ReferenceComponent":{
1270+
content.reference = data;
1271+
break;
1272+
}
1273+
}
1274+
} catch (e){
1275+
}
1276+
return dataJson;
1277+
}
1278+
11201279
function clearFolderMap(){
11211280
debugLogger.trace('clearFolderMap');
11221281
libraryList = undefined;
@@ -1140,4 +1299,6 @@ exports.getWcmItem = getWcmItem;
11401299
exports.getWcmItemData = getWcmItemData;
11411300
exports.itemExists = itemExists;
11421301
exports.updateWcmItemMetaData = updateWcmItemMetaData;
1302+
exports.getElementData = getElementData;
1303+
exports.setElementData = setElementData;
11431304
exports.base64_decode = base64_decode;

digexp-wcm-design/wcmHelper.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -542,22 +542,21 @@ function updateLocalFile(options, libTitle, data, extension, map){
542542
try{
543543
var ext = wcmRequests.wcmExts[element.type];
544544
if(ext != undefined)
545-
fs.writeFileSync(elPath + element.name + ext, element.data);
545+
fs.writeFileSync(elPath + element.name + ext, wcmRequests.getElementData(element.type,element.content));
546546
}catch(e){
547547
debugLogger.error("save Element::err::"+e);
548548
}
549549
});
550+
data.elements.forEach(function(element){
551+
if(element.title)
552+
delete element.title;
553+
if(element.link)
554+
delete element.link;
555+
});
556+
var entry = { id: data.id, type: data.type, elements: data.elements};
557+
fs.writeFileSync(path + elementSuffix, JSON.stringify(entry));
558+
delete data.elements;
550559
}
551-
data.elements.forEach(function(element){
552-
if(element.title)
553-
delete element.title;
554-
if(element.link)
555-
delete element.link;
556-
if(element.content)
557-
delete element.content;
558-
});
559-
fs.writeFileSync(path + elementSuffix, JSON.stringify(data.elements));
560-
delete data.elements;
561560
}
562561
else if(cData != undefined) // check there is data to write
563562
fs.writeFileSync(path + extension, cData.value);

release/digexp-toolkit.zip

2.2 KB
Binary file not shown.

wcm-design.tar.gz

876 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)