@@ -101,7 +101,7 @@ export function useWorkflowActions() {
101
101
}
102
102
103
103
function workflowAssignToIssueAndScheduleForPublication (
104
- { selectedPublication, submission} ,
104
+ { pageInitConfig , selectedPublication, submission} ,
105
105
finishedCallback ,
106
106
) {
107
107
// if version is unassigned, we need to assign it to a publication stage first
@@ -110,13 +110,40 @@ export function useWorkflowActions() {
110
110
{ selectedPublication, submission} ,
111
111
( publicationData ) =>
112
112
workflowAssignToIssueAndScheduleForPublication (
113
- { submission , selectedPublication : publicationData } ,
113
+ { pageInitConfig , selectedPublication : publicationData , submission } ,
114
114
finishedCallback ,
115
115
) ,
116
116
) ;
117
117
}
118
118
119
- if ( selectedPublication . issueId === null ) {
119
+ // if there are no issues, we can schedule the publication immediately
120
+ if ( pageInitConfig . publicationSettings . countIssues === 0 ) {
121
+ workflowScheduleForPublication (
122
+ { submission, selectedPublication} ,
123
+ finishedCallback ,
124
+ ) ;
125
+
126
+ return ;
127
+ }
128
+
129
+ // If the publication is marked as published,
130
+ // and not assigned to an issue, or assigned to an issue that is not published (e.g. future issue),
131
+ // we can publish the publication immediately as issueless or continuous publication
132
+ if (
133
+ selectedPublication . published &&
134
+ ( selectedPublication . issueId === null ||
135
+ ! pageInitConfig . publicationSettings . issuePublishedStatus [
136
+ selectedPublication . issueId
137
+ ] )
138
+ ) {
139
+ workflowScheduleForPublication (
140
+ { submission, selectedPublication} ,
141
+ finishedCallback ,
142
+ ) ;
143
+ return ;
144
+ }
145
+
146
+ if ( selectedPublication . issueId === null || selectedPublication . published ) {
120
147
const { url} = useLegacyGridUrl ( {
121
148
component : 'modals.publish.AssignToIssueHandler' ,
122
149
op : 'assign' ,
@@ -138,7 +165,7 @@ export function useWorkflowActions() {
138
165
} ,
139
166
{
140
167
onClose : async ( { formId, data} ) => {
141
- if ( data ?. issueId ) {
168
+ if ( data ?. issueId || data ?. published ) {
142
169
workflowScheduleForPublication (
143
170
{ submission, selectedPublication} ,
144
171
finishedCallback ,
0 commit comments