@@ -17,11 +17,13 @@ class PublishActionManager {
1717 */
1818 initializeEventListeners ( ) {
1919 // Find all publish modals
20- const publishModals = document . querySelectorAll ( '[id^="publish-dataset-modal-"]' ) ;
20+ const publishModals = document . querySelectorAll (
21+ '[id^="publish-dataset-modal-"]' ,
22+ ) ;
2123
22- publishModals . forEach ( ( modal ) => {
24+ for ( const modal of publishModals ) {
2325 const datasetUuid = modal . getAttribute ( "data-dataset-uuid" ) ;
24- if ( ! datasetUuid ) return ;
26+ if ( ! datasetUuid ) continue ;
2527
2628 // Explicitly initialize Bootstrap modal to avoid auto-initialization issues
2729 if ( window . bootstrap && ! bootstrap . Modal . getInstance ( modal ) ) {
@@ -71,7 +73,6 @@ class PublishActionManager {
7173 publishToggle ,
7274 visibilitySection ,
7375 statusBadge ,
74- datasetUuid ,
7576 ) ;
7677 } ) ;
7778 }
@@ -96,15 +97,21 @@ class PublishActionManager {
9697 // Handle publish button click
9798 if ( publishBtn ) {
9899 publishBtn . addEventListener ( "click" , ( ) => {
99- this . handlePublish ( datasetUuid , publishToggle , privateOption , publicOption ) ;
100+ this . handlePublish (
101+ datasetUuid ,
102+ statusBadge ,
103+ publishToggle ,
104+ privateOption ,
105+ publicOption ,
106+ ) ;
100107 } ) ;
101108 }
102- } ) ;
109+ }
103110
104111 // Handle publish button clicks in dropdown (open modal)
105- document . querySelectorAll ( ".publish-dataset-btn" ) . forEach ( ( btn ) => {
112+ for ( const btn of document . querySelectorAll ( ".publish-dataset-btn" ) ) {
106113 const datasetUuid = btn . getAttribute ( "data-dataset-uuid" ) ;
107- if ( ! datasetUuid ) return ;
114+ if ( ! datasetUuid ) continue ;
108115
109116 // Only attach handler if modal exists
110117 const modalId = `publish-dataset-modal-${ datasetUuid } ` ;
@@ -115,15 +122,15 @@ class PublishActionManager {
115122 ) ;
116123 btn . disabled = true ;
117124 btn . classList . add ( "disabled" ) ;
118- return ;
125+ continue ;
119126 }
120127
121128 btn . addEventListener ( "click" , ( e ) => {
122129 e . preventDefault ( ) ;
123130 e . stopPropagation ( ) ;
124131 this . openPublishModal ( datasetUuid ) ;
125132 } ) ;
126- } ) ;
133+ }
127134 }
128135
129136 /**
@@ -170,7 +177,7 @@ class PublishActionManager {
170177 * @param {HTMLElement } statusBadge - The status badge element
171178 * @param {string } datasetUuid - Dataset UUID
172179 */
173- handlePublishToggleChange ( publishToggle , visibilitySection , statusBadge , datasetUuid ) {
180+ handlePublishToggleChange ( publishToggle , visibilitySection , statusBadge ) {
174181 if ( publishToggle . checked ) {
175182 // Publishing - set status to final and show visibility options
176183 if ( statusBadge ) {
@@ -195,25 +202,32 @@ class PublishActionManager {
195202 /**
196203 * Handle publish button click
197204 * @param {string } datasetUuid - Dataset UUID
205+ * @param {HTMLElement } statusBadge - The status badge element
198206 * @param {HTMLElement } publishToggle - The publish toggle checkbox
199207 * @param {HTMLElement } privateOption - The private option radio button
200208 * @param {HTMLElement } publicOption - The public option radio button
201209 */
202- async handlePublish ( datasetUuid , publishToggle , privateOption , publicOption ) {
210+ async handlePublish (
211+ datasetUuid ,
212+ statusBadge ,
213+ publishToggle ,
214+ privateOption ,
215+ publicOption ,
216+ ) {
203217 if ( ! window . APIClient ) {
204218 console . error ( "APIClient not available" ) ;
205219 return ;
206220 }
207221
208222 try {
209- // Get current values
210- const status = publishToggle && publishToggle . checked ? "final" : "draft" ;
211- const isPublic =
212- publicOption && publicOption . checked
213- ? "true"
214- : privateOption && privateOption . checked
215- ? "false"
216- : "false" ;
223+ const status = publishToggle ?. checked
224+ ? "final"
225+ : statusBadge ?. textContent ?. toLowerCase ( ) || "draft" ;
226+ const isPublic = publicOption ? .checked
227+ ? "true"
228+ : privateOption ? .checked
229+ ? "false"
230+ : "false" ;
217231
218232 // Prepare data
219233 const data = {
@@ -243,7 +257,9 @@ class PublishActionManager {
243257 ) ;
244258
245259 // Close modal
246- const modal = document . getElementById ( `publish-dataset-modal-${ datasetUuid } ` ) ;
260+ const modal = document . getElementById (
261+ `publish-dataset-modal-${ datasetUuid } ` ,
262+ ) ;
247263 if ( modal ) {
248264 const bsModal = bootstrap . Modal . getInstance ( modal ) ;
249265 if ( bsModal ) {
@@ -392,4 +408,4 @@ class PublishActionManager {
392408 alert ( message ) ;
393409 }
394410 }
395- }
411+ }
0 commit comments