diff --git a/mockup/patterns/structure/js/actionmenu.js b/mockup/patterns/structure/js/actionmenu.js index 0717f5c8e..163d11ec3 100644 --- a/mockup/patterns/structure/js/actionmenu.js +++ b/mockup/patterns/structure/js/actionmenu.js @@ -108,7 +108,7 @@ define(['underscore', 'translate'], function(_, _t) { delete result['move-top']; delete result['move-bottom']; } - if (model.is_folderish || !app.setDefaultPageUrl) { + if (app.defaultPageTypes.indexOf(model.portal_type) == -1 || !app.setDefaultPageUrl) { delete result['set-default-page']; } diff --git a/mockup/patterns/structure/pattern.js b/mockup/patterns/structure/pattern.js index b5b07c3cf..d8c0d2f0d 100644 --- a/mockup/patterns/structure/pattern.js +++ b/mockup/patterns/structure/pattern.js @@ -119,6 +119,14 @@ define([ 'Blob': '/view' }, + defaultPageTypes: null, + _default_defaultPageTypes: [ + 'Document', + 'Event', + 'News Item', + 'Collection' + ], + collectionConstructor: 'mockup-patterns-structure-url/js/collections/result', @@ -187,7 +195,7 @@ define([ May want to consider moving the _default_* values out of the options object. */ - var replaceDefaults = ['attributes', 'activeColumns', 'availableColumns', 'buttons', 'typeToViewAction']; + var replaceDefaults = ['attributes', 'activeColumns', 'availableColumns', 'buttons', 'typeToViewAction', 'defaultPageTypes']; _.each(replaceDefaults, function(idx) { if (self.options[idx] === null) { self.options[idx] = self.options['_default_' + idx]; diff --git a/mockup/tests/pattern-structure-test.js b/mockup/tests/pattern-structure-test.js index 00684df24..515b430fc 100644 --- a/mockup/tests/pattern-structure-test.js +++ b/mockup/tests/pattern-structure-test.js @@ -135,6 +135,12 @@ define([ 'activeColumns': [], 'availableColumns': [], + 'defaultPageTypes': [ + 'Document', + 'Event', + 'News Item', + 'Collection' + ], 'indexOptionsUrl': '', 'setDefaultPageUrl': '', 'collectionConstructor': 'mockup-patterns-structure-url/js/collections/result', @@ -530,6 +536,12 @@ define([ 'activeColumns': [], 'availableColumns': [], 'collectionConstructor': 'mockup-patterns-structure-url/js/collections/result', + 'defaultPageTypes': [ + 'Document', + 'Event', + 'News Item', + 'Collection' + ], 'typeToViewAction': { 'File': '/view', 'Image': '/view', @@ -821,6 +833,12 @@ define([ "indexOptionsUrl": "/tests/json/queryStringCriteria.json", "contextInfoUrl": "{path}/contextInfo", "setDefaultPageUrl": "/setDefaultPage", + "defaultPageTypes": [ + "Document", + "Event", + "News Item", + "Collection" + ], "urlStructure": { "base": "http://localhost:9876", "appended": "/folder_contents" @@ -871,7 +889,7 @@ define([ UID: '123sdfasdf' + path + i, getURL: 'http://localhost:9876' + path + '/item' + i, path: path + '/item' + i, - portal_type: 'Document ' + i, + portal_type: 'Document', Description: 'document', Title: 'Document ' + i, 'review_state': 'published', @@ -1223,6 +1241,7 @@ define([ // cannot select all expect($('a.selectAll', item).length).to.equal(0); // can set default page + expect($('a.set-default-page', item).length).to.equal(1); expect($('a.set-default-page', item).text().trim()).to.equal( 'Set as default page'); $('a.set-default-page', item).click(); diff --git a/news/1005.bugfix b/news/1005.bugfix new file mode 100644 index 000000000..4cbe411f1 --- /dev/null +++ b/news/1005.bugfix @@ -0,0 +1,2 @@ +Respect default_page_types in actionmenu if folder_contents. Fixes https://github.com/plone/Products.CMFPlone/issues/2700 +[pbauer] \ No newline at end of file