@@ -31,6 +31,7 @@ exports.list = function (aReq, aRes, aNext) {
3131 var username = aReq . params . username ;
3232 var scriptname = aReq . params . scriptname ;
3333 var open = aReq . params . open !== 'closed' ;
34+ var listAll = aReq . params . open === 'all' ;
3435
3536 var installNameSlug = username + '/' + scriptname ;
3637
@@ -85,8 +86,11 @@ exports.list = function (aReq, aRes, aNext) {
8586 // discussionListQuery: category
8687 discussionListQuery . find ( { category : category . slug } ) ;
8788
88- // discussionListQuery: open
89- modelQuery . findOrDefaultIfNull ( discussionListQuery , 'open' , options . openIssuesOnly , true ) ;
89+ // discussionListQuery: Optionally filter discussion list
90+ options . allIssues = ! aReq . params . open && ! options . isOwner || listAll ;
91+ if ( ! options . allIssues ) {
92+ modelQuery . findOrDefaultIfNull ( discussionListQuery , 'open' , options . openIssuesOnly , true ) ;
93+ }
9094
9195 // discussionListQuery: Defaults
9296 modelQuery . applyDiscussionListQueryDefaults ( discussionListQuery , options , aReq ) ;
@@ -100,7 +104,10 @@ exports.list = function (aReq, aRes, aNext) {
100104 //--- Tasks
101105
102106 // Show the number of open issues
103- var scriptOpenIssueCountQuery = Discussion . find ( { category : script . issuesCategorySlug , open : { $ne : false } } ) ;
107+ var scriptOpenIssueCountQuery = Discussion . find ( {
108+ category : script . issuesCategorySlug ,
109+ open : { $ne : false }
110+ } ) ;
104111 tasks . push ( countTask ( scriptOpenIssueCountQuery , options , 'issueCount' ) ) ;
105112
106113 // Pagination
@@ -121,16 +128,24 @@ exports.list = function (aReq, aRes, aNext) {
121128
122129 // Empty list
123130 if ( options . searchBarValue ) {
124- if ( open ) {
125- options . discussionListIsEmptyMessage = 'We couldn\'t find any open discussions with this search value.' ;
131+ if ( options . allIssues ) {
132+ options . discussionListIsEmptyMessage = 'We couldn\'t find any discussions with this search value.' ;
126133 } else {
127- options . discussionListIsEmptyMessage = 'We couldn\'t find any closed discussions with this search value.' ;
134+ if ( open ) {
135+ options . discussionListIsEmptyMessage = 'We couldn\'t find any open discussions with this search value.' ;
136+ } else {
137+ options . discussionListIsEmptyMessage = 'We couldn\'t find any closed discussions with this search value.' ;
138+ }
128139 }
129140 } else {
130- if ( open ) {
131- options . discussionListIsEmptyMessage = 'No open discussions.' ;
141+ if ( options . allIssues ) {
142+ options . discussionListIsEmptyMessage = 'No discussions.' ;
132143 } else {
133- options . discussionListIsEmptyMessage = 'No closed discussions.' ;
144+ if ( open ) {
145+ options . discussionListIsEmptyMessage = 'No open discussions.' ;
146+ } else {
147+ options . discussionListIsEmptyMessage = 'No closed discussions.' ;
148+ }
134149 }
135150 }
136151 }
@@ -204,7 +219,10 @@ exports.view = function (aReq, aRes, aNext) {
204219 //--- Tasks
205220
206221 // Show the number of open issues
207- var scriptOpenIssueCountQuery = Discussion . find ( { category : script . issuesCategorySlug , open : { $ne : false } } ) ; // TODO: STYLEGUIDE.md conformance needed here
222+ var scriptOpenIssueCountQuery = Discussion . find ( {
223+ category : script . issuesCategorySlug ,
224+ open : { $ne : false }
225+ } ) ;
208226 tasks . push ( countTask ( scriptOpenIssueCountQuery , options , 'issueCount' ) ) ;
209227
210228 // Pagination
0 commit comments