@@ -22,14 +22,23 @@ cAlternate = "alternate",
2222wcmExts = {
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} ,
3443wcmTypes = {
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+
11201279function clearFolderMap ( ) {
11211280 debugLogger . trace ( 'clearFolderMap' ) ;
11221281 libraryList = undefined ;
@@ -1140,4 +1299,6 @@ exports.getWcmItem = getWcmItem;
11401299exports . getWcmItemData = getWcmItemData ;
11411300exports . itemExists = itemExists ;
11421301exports . updateWcmItemMetaData = updateWcmItemMetaData ;
1302+ exports . getElementData = getElementData ;
1303+ exports . setElementData = setElementData ;
11431304exports . base64_decode = base64_decode ;
0 commit comments