@@ -31,9 +31,53 @@ wcmTypes = {
3131 , listPresetationComponent : "LibraryListPresetationComponent"
3232 , listPresetationComponent : "LibraryListPresetationComponent"
3333 , folder : "Folder"
34+ , library : "Library"
3435
3536} ;
3637
38+ /**
39+ * Returns the result of the created library
40+ * @param String library title
41+ * @param bolean is the library enabled
42+ * @param boolean can you delete the library
43+ * @param boolean include default items in library
44+ * @returns a promise thet returns the result of the created library
45+ */
46+
47+ function createLibrary ( libTitle , enabled , allowDeletion , includeDefaultItems ) {
48+ var deferred = Q . defer ( ) , doRequest = function ( libTitle , allowDeletion , includeDefaultItems ) {
49+ if ( allowDeletion == undefined )
50+ allowDeletion = true ;
51+ if ( includeDefaultItems == undefined )
52+ includeDefaultItems = false ;
53+ if ( enabled == undefined )
54+ enabled = true ;
55+ postData = {
56+ entry : {
57+ name : libTitle ,
58+ content : {
59+ type : 'application/vnd.ibm.wcm+xml' ,
60+ library : {
61+ allowDeletion : allowDeletion ,
62+ enabled : enabled ,
63+ includeDefaultItems : includeDefaultItems
64+ }
65+ }
66+ }
67+ } ;
68+
69+ authRequest . setJson ( getUrlForType ( wcmTypes . library ) , postData ) . then ( function ( library ) {
70+ if ( libraryList != undefined )
71+ libraryList . push ( library ) ;
72+ deferred . resolve ( library ) ;
73+ } , function ( err ) {
74+ deferred . reject ( err ) ;
75+ } ) ;
76+ } ;
77+ doRequest ( libTitle , enabled , allowDeletion , includeDefaultItems ) ;
78+ return deferred . promise ;
79+ }
80+
3781/**
3882 * Returns an array of wcmItems that are libraries
3983 * @returns a promise thet returns {Object*}[] of libraries
@@ -385,14 +429,14 @@ function getWcmItemsForOperation(item, operation, resultValues){
385429 } else
386430 if ( dataJson . feed . entry != undefined )
387431 entries = dataJson . feed . entry ;
388- if ( resultValues ) {
389- // if we're adding to array, push these entries and use as resolved value
390- resultValues = resultValues . concat ( entries ) ;
391- deferred . resolve ( resultValues ) ;
392- }
393- else {
394- deferred . resolve ( entries ) ;
395- }
432+ if ( resultValues ) {
433+ // if we're adding to array, push these entries and use as resolved value
434+ resultValues = resultValues . concat ( entries ) ;
435+ deferred . resolve ( resultValues ) ;
436+ }
437+ else {
438+ deferred . resolve ( entries ) ;
439+ }
396440 }
397441 } , function ( err ) {
398442 debugLogger . error ( "getWcmItemsForOperation::getJson::err::" + err ) ;
@@ -516,16 +560,45 @@ function createNewWcmItem(type, libraryName, name, fileName, parent ){
516560 var deferred = Q . defer ( ) , doRequest = function ( type , libraryName , name , fileName , parent ) {
517561 debugLogger . trace ( 'createNewWcmItem::type::' + type + 'libraryName::' + libraryName + ' name::' + name + ' fileName::' + fileName + ' parent::' + parent ) ;
518562 getLibrary ( libraryName ) . then ( function ( lib ) {
519- var pLink = "" ;
563+ var links = { } ;
520564 url = getUrlForType ( type ) ;
521565 href = wcmItem . getOperationHref ( lib , "library" ) ;
522566
523567 if ( parent != undefined ) {
524- pLink = '<link rel="parent" href="' + wcmItem . getOperationHref ( parent , "self" ) + '"/>' ;
568+ // pLink = '<link rel="parent" href="' + wcmItem.getOperationHref(parent, "self") + '"/>';
569+ links = [
570+ {
571+ "rel" : "library" ,
572+ "href" : href ,
573+ "label" : "Library"
574+ } ,
575+ {
576+ "rel" : "parent" ,
577+ "href" : wcmItem . getOperationHref ( parent , "self" ) ,
578+ "label" : "Parent"
579+ }
580+ ] ;
581+ }
582+ else {
583+ links = [
584+ {
585+ "rel" : "library" ,
586+ "href" : href ,
587+ "label" : "Library"
588+ }
589+ ] ;
525590 }
526- postData = '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="wcm/namespace"><title>' +
527- name + '</title><link rel="library" href="' + href + '"/>' + pLink + '<wcm:name>' +
528- name + '</wcm:name></entry>' ;
591+
592+ // postData = '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:wcm="wcm/namespace"><title>'+
593+ // name + '</title><link rel="library" href="' + href + '"/>' + pLink + '<wcm:name>'+
594+ // name + '</wcm:name></entry>';
595+ postData = {
596+ entry : {
597+ title : name ,
598+ name : name ,
599+ link : links
600+ }
601+ } ;
529602 authRequest . setJson ( url , postData ) . then ( function ( data ) {
530603 var dataJson = getJson ( deferred , data ) ;
531604 if ( dataJson != undefined ) {
@@ -615,8 +688,8 @@ function getWcmItemData(type, id){
615688 var deferred = Q . defer ( ) , doRequest = function ( type , id ) {
616689 debugLogger . trace ( 'getWcmItemData::type::' + type + ' id:' + id ) ;
617690 wcmGetJson ( getUrlForType ( type ) + '/' + getRawId ( id ) ) . then ( function ( item ) {
618- if ( item . content )
619- deferred . resolve ( item ) . done ( ) ;
691+ if ( item . content && type != wcmTypes . imageComponent && type != wcmTypes . fileComponent )
692+ return deferred . resolve ( item ) ;
620693 getWcmItemsForOperation ( item , "edit-media" ) . then ( function ( item ) {
621694 var entry = item [ 0 ] ;
622695 if ( wcmTypes . htmlComponent == type || wcmTypes . presentationTemplate == type ) {
@@ -653,13 +726,14 @@ function getContentReference(type, item){
653726 debugLogger . trace ( 'getContentReference::type::' + type + ' item::' + item ) ;
654727 var cRef = undefined ;
655728 switch ( type ) {
656- /* case wcmTypes.fileComponent:
729+ /*
657730 case wcmTypes.htmlComponent:
658731 case wcmTypes.jspComponent:
659732 case wcmTypes.linkComponent:
660733 case wcmTypes.textComponent:
661734 case wcmTypes.richTextComponent:
662735*/
736+ case wcmTypes . fileComponent :
663737 case wcmTypes . imageComponent :
664738 case wcmTypes . styleSheetComponent :{
665739 cRef = wcmItem . getOperationHref ( item , 'edit-media' ) ;
@@ -811,8 +885,13 @@ function setUpDataForType(item, type, fileName){
811885 switch ( type ) {
812886 case wcmTypes . authoringTools :
813887 case wcmTypes . jspComponent :
814- case wcmTypes . linkComponent :
888+ case wcmTypes . linkComponent :{
889+ break ;
890+ }
815891 case wcmTypes . fileComponent :{
892+ var binaraydata = fs . readFileSync ( fileName ) ;
893+ var ext = Path . extname ( fileName ) . slice ( 1 ) ;
894+ rVal = { type : 'application/' + ext , value : binaraydata } ;
816895 break ;
817896 }
818897 case wcmTypes . presentationTemplate :
@@ -826,15 +905,6 @@ function setUpDataForType(item, type, fileName){
826905 var binaraydata = fs . readFileSync ( fileName ) ;
827906
828907 var ext = Path . extname ( fileName ) . slice ( 1 ) ;
829- /* var baseName = Path.basename(fileName);
830- var content = wcmItem.getContent(item);
831- var data;
832- // if(getContentReference(type, item) == undefined)
833- data = '<content type="application/vnd.ibm.wcm+xml"><wcm:image xmlns="http://www.ibm.com/xmlns/wcm"><dimension height="' +
834- content.image.dimension.height + '" border="0"/><altText></altText><tagName></tagName><wcm:binaryresource type="image/"' + ext + ' fileName="' + baseName + '">' + b64data + '</wcm:binaryresource></wcm:image></content>';
835- // else
836- // data = b64data;
837- */
838908 rVal = { type : 'image/' + ext , value : binaraydata } ;
839909 break ;
840910 }
@@ -846,22 +916,6 @@ function setUpDataForType(item, type, fileName){
846916 case wcmTypes . styleSheetComponent :{
847917 var data = fs . readFileSync ( fileName , "utf8" ) ;
848918 rVal = { type : 'text/css' , value : data } ;
849- /*if(getContentReference(type, item) != undefined){
850- var data = fs.readFileSync(fileName, "utf8");
851- rVal = {type: mType, value: data};
852- }
853- else{
854- var b64data = base64_encode(fileName);
855- var baseName = Path.basename(fileName);
856- var content = wcmItem.getContent(item);
857- data = '<content type="application/vnd.ibm.wcm+xml"><wcm:stylesheet xmlns="http://www.ibm.com/xmlns/wcm"><type>'+
858- content.type + '</type>"/><mediaType>' +
859- content.mediaType +'</mediaType><title>' +
860- content.title + '</title><wcm:binaryresource type="text/css" fileName="' +
861- baseName + '">' + b64data +
862- '</wcm:binaryresource></wcm:stylesheet></content>';
863- rVal = { type: mType, value: data };
864- }*/
865919 break ;
866920 } ;
867921 } ;
@@ -918,6 +972,7 @@ exports.wcmTypes= wcmTypes;
918972exports . clearFolderMap = clearFolderMap ; exports . getWcmItemsOfType = getWcmItemsOfType ;
919973exports . getWcmItemOfTypeAndName = getWcmItemOfTypeAndName ;
920974exports . getAllLibraries = getAllLibraries ;
975+ exports . createLibrary = createLibrary ;
921976exports . getLibrary = getLibrary ;
922977exports . getLibraryId = getLibraryId ;
923978exports . getFolderMap = getFolderMap ;
0 commit comments