@@ -20,24 +20,24 @@ cEditmedia = "edit-media",
2020cElements = "elements" ,
2121cAlternate = "alternate" ,
2222wcmExts = {
23- LibraryHTMLComponent : ".html" ,
24- HTMLComponent : ".html" ,
23+ LibraryHTMLComponent : "_html .html" ,
24+ HTMLComponent : "_html .html" ,
2525 LibraryImageComponent : "_img.txt" ,
2626 ImageComponent : "_img.txt" ,
27- LibraryTextComponent : ".txt" ,
28- TextComponent : ".txt" ,
29- LibraryRichTextComponent : ".rtf" ,
30- RichTextComponent : ".rtf" ,
31- LibraryStyleSheetComponent : ".css" ,
32- LibraryShortTextComponent : "_st .txt" ,
33- ShortTextComponent : "_st .txt" ,
34- ReferenceComponent : "_ref .txt" ,
35- DateComponent : "_dt .txt" ,
27+ LibraryTextComponent : "_text .txt" ,
28+ TextComponent : "_text .txt" ,
29+ LibraryRichTextComponent : "_rictext .rtf" ,
30+ RichTextComponent : "_richtext .rtf" ,
31+ LibraryStyleSheetComponent : "_stylesheet .css" ,
32+ LibraryShortTextComponent : "_short .txt" ,
33+ ShortTextComponent : "_short .txt" ,
34+ ReferenceComponent : "_reference .txt" ,
35+ DateComponent : "_date .txt" ,
3636 JSPComponent : "_jsp.txt" ,
37- LinkComponent : "_lnk .txt" ,
38- NumericComponent : "_num .txt" ,
39- OptionSelectionComponent : "_os .txt" ,
40- UserSelectionComponent : "_us .txt" ,
37+ LinkComponent : "_link .txt" ,
38+ NumericComponent : "_number .txt" ,
39+ OptionSelectionComponent : "_optionselection .txt" ,
40+ UserSelectionComponent : "_userselecttion .txt" ,
4141 FileComponent : "_file.txt"
4242} ,
4343wcmTypes = {
@@ -46,6 +46,7 @@ wcmTypes = {
4646 , referenceComponents : "ReferenceComponent"
4747 , authoringToolsComponent : "LibraryAuthoringToolsComponent"
4848 , metaData :"md"
49+ , element :"element"
4950 , htmlComponent : "LibraryHTMLComponent"
5051 , imageComponent : "LibraryImageComponent"
5152 , textComponent : "LibraryTextComponent"
@@ -734,12 +735,15 @@ function updateWcmItemMetaData(fileName){
734735 */
735736function updateWcmElementsData ( fileName ) {
736737 var deferred = Q . defer ( ) , doRequest = function ( item , val ) {
737- debugLogger . trace ( 'updateWcmItemMetaData :: fileName::' + fileName ) ;
738+ debugLogger . trace ( 'updateWcmElementsData :: fileName::' + fileName ) ;
738739 var data = fs . readFileSync ( fileName , "utf8" ) ;
739740 try {
740741 var item = JSON . parse ( data ) ;
741- var entry = { entry : item . elements } ;
742- var uri = getUrlForType ( wcmItem . getType ( item ) ) + '/' + getRawId ( wcmItem . getId ( item ) ) + '/Prototype' ;
742+ var uri = getUriForElements ( item ) ;
743+ // delete the parent info
744+ delete item . ptype ;
745+ delete item . pid ;
746+ var entry = { entry : item } ;
743747 authRequest . setJson ( uri , entry , 'Put' ) . then ( function ( data ) {
744748 deferred . resolve ( data ) ;
745749 } , function ( err ) {
@@ -748,13 +752,14 @@ function updateWcmElementsData(fileName){
748752 } ) ;
749753 }
750754 catch ( e ) {
751- debugLogger . error ( "update metadata ::err::" + e ) ;
752- deferred . reject ( 'bad data in md file' ) ;
755+ debugLogger . error ( "update elements ::err::" + e ) ;
756+ deferred . reject ( 'bad data in -elements file' ) ;
753757 }
754758 } ;
755759 doRequest ( fileName ) ;
756760 return deferred . promise ;
757761}
762+
758763/**
759764 * Updates the specified wcm item with new content { in progress }
760765 * @param {Object* } a wcmItem
@@ -822,49 +827,12 @@ function getWcmItemData(type, id) {
822827 // no media check for elements
823828 if ( editmedia == undefined ) {
824829 var entry = item ;
825- getWcmItemsForOperation ( item , cElements ) . then ( function ( items ) {
826- if ( items . length == 0 ) {
827- return deferred . resolve ( entry ) ;
828- }
829- var curCount = 0 ;
830- var sWarn = authRequest . getWarnParallel ( ) ;
831- authRequest . setWarnParallel ( false ) ;
832- entry . elements = items ;
833- return deferred . resolve ( entry ) ;
834- /*
835- items.forEach(function(item) {
836- var cRef = getContentReference(item.type, item);
837- if (cRef != undefined) {
838- authRequest.getContent(cRef, wcmItem.getTypeforUpdate(item)).then(function(data) {
839- curCount++;
840- item.data = data;
841- entry.elements.push(item);
842- if (curCount == items.length){
843- authRequest.setWarnParallel(sWarn);
844- return deferred.resolve(entry);
845- }
846- }, function(err) {
847- curCount++;
848- if (err.message) {
849- if (err.message.indexOf('400') != -1) {
850- item.data = undefined;
851- entry.elements.push(item);
852- if (curCount == items.length){
853- authRequest.setWarnParallel(sWarn);
854- return deferred.resolve(entry);
855- }
856- } else{
857- authRequest.setWarnParallel(sWarn);
858- return deferred.reject(err);
859- }
860- } else{
861- authRequest.setWarnParallel(sWarn);
862- return deferred.reject(err);
863- }
864- });
865- }
866- });
867- */
830+ var uri = getUriForElements ( item ) ;
831+ wcmGetJson ( uri ) . then ( function ( entry ) {
832+ entry . ptype = wcmItem . getType ( item ) ;
833+ entry . pid = wcmItem . getId ( item ) ;
834+ var rJson = { itemData : item , elements : entry } ;
835+ deferred . resolve ( rJson ) ;
868836 } , function ( err ) {
869837 debugLogger . error ( "getWcmItemData::getWcmItemsForOperation::err::" + err ) ;
870838 deferred . reject ( err ) ;
@@ -1064,6 +1032,24 @@ function getFolderForType(type){
10641032 return rVal ;
10651033}
10661034
1035+ /**
1036+ * Returns the Uri for the item type for a type that has elements
1037+ * @param item
1038+ * @returns the uri
1039+ */
1040+ function getUriForElements ( item ) {
1041+ var type = wcmItem . getType ( item ) ;
1042+ debugLogger . trace ( 'getUriForElements::type::' + type ) ;
1043+ var rVal = "" ;
1044+ switch ( type ) {
1045+ case wcmTypes . contentTemplate :{
1046+ rVal = getUrlForType ( wcmItem . getType ( item ) ) + '/' + getRawId ( wcmItem . getId ( item ) ) + '/Prototype' ;
1047+ break ;
1048+ }
1049+ } ;
1050+ return rVal ;
1051+ }
1052+
10671053/**
10681054 * Returns the data needed for a specific types operations
10691055 * @param Type of component
@@ -1204,7 +1190,7 @@ function getElementData( type, content){
12041190 break ;
12051191 }
12061192 case "FileComponent" :{
1207- // dataJson = content.image ;
1193+ dataJson = content . file ;
12081194 break ;
12091195 }
12101196 case "ReferenceComponent" :{
@@ -1216,14 +1202,36 @@ function getElementData( type, content){
12161202 }
12171203 return dataJson ;
12181204}
1205+
12191206/**
1220- * Sets the data from an elements content
1207+ * fiind the element in array by name
1208+ * @param name to look for
1209+ * @param element array
1210+ * @returns the element with this name or a new element
1211+ */
1212+ function findElement ( elements , name ) {
1213+ debugLogger . trace ( "findElement:data::" + name ) ;
1214+ var rElement ;
1215+ try {
1216+ elements . forEach ( function ( element ) {
1217+ if ( element . name == name ) {
1218+ rElement = element ;
1219+ return ;
1220+ }
1221+ } ) ;
1222+ }
1223+ catch ( e ) {
1224+ }
1225+ return rElement ;
1226+ }
1227+
1228+ /**
1229+ * Set the data from an content
12211230 * @param type of content
12221231 * @param content json object
1223- * @param data to set
12241232 * @returns the data for this type of data
12251233 */
1226- function setElementData ( type , content , data ) {
1234+ function setElementData ( type , content , data ) {
12271235 debugLogger . trace ( "setElemetData:data::" + content ) ;
12281236 try {
12291237 switch ( type ) {
@@ -1263,7 +1271,7 @@ function setElementData( type, content, data ){
12631271 break ;
12641272 }
12651273 case "FileComponent" :{
1266- // dataJson = content.image ;
1274+ content . file = data ;
12671275 break ;
12681276 }
12691277 case "ReferenceComponent" :{
@@ -1273,7 +1281,6 @@ function setElementData( type, content, data ){
12731281 }
12741282 } catch ( e ) {
12751283 }
1276- return dataJson ;
12771284}
12781285
12791286function clearFolderMap ( ) {
@@ -1299,6 +1306,8 @@ exports.getWcmItem = getWcmItem;
12991306exports . getWcmItemData = getWcmItemData ;
13001307exports . itemExists = itemExists ;
13011308exports . updateWcmItemMetaData = updateWcmItemMetaData ;
1309+ exports . updateWcmElementsData = updateWcmElementsData ;
13021310exports . getElementData = getElementData ;
13031311exports . setElementData = setElementData ;
1312+ exports . findElement = findElement ;
13041313exports . base64_decode = base64_decode ;
0 commit comments