umbraco / Umbraco.Workflow.Issues

Public issue tracker for Umbraco Workflow
1 stars 0 forks source link

Umbraco workflow not showing segmentation name in list of Variants #60

Open bielu opened 2 months ago

bielu commented 2 months ago

A brief description of the issue goes here.

We installed workflow on solution with UMS, and we noticed that now request publish contains 2 variants, which have no visible way to determine which actual variant is which segment. image

Reproduction

If you're filing a bug, please describe how to reproduce it. Include as much relevant information as possible, such as:

Bug summary

Workflow not showing segment variation even though it shows list of all variants.

Specifics

Umbraco: 13.4.1 workflow: 3.0.7 UMS: 2.1.0

Steps to reproduce

Expected result

Each variant has visible information about segment and/or culture.

Actual result

Each variant has visible information about only culture, even though there is segment variation.


This item has been added to our backlog AB#42375

nathanwoulfe commented 2 months ago

Hey @bielu, that would be due to Workflow knowing nothing about content segments 🥲 In theory, shouldn't be overly difficult to add segment awareness, but will see what happens when I start poking around...

Will aim to pick this up in the next sprint.

Fundinuk commented 1 month ago

Hi @nathanwoulfe do you think this might drop into your next sprint nad be released towards end of July? Just working to let our client know rough timings. Thanks

nathanwoulfe commented 1 month ago

Hey @Fundinuk, I don't think it will be this month - full transparency, I have no idea what will be involved to make this work. Might be trivial, might be substantial. Will pull it into the next sprint (starts next week), and will update here once I've got my head around what needs to change, and therefore what timelines we might be dealing with. Lock it in for August, just not sure when it will land.

Fundinuk commented 1 month ago

Thanks @nathanwoulfe ok, thanks for the update.

bielu commented 1 month ago

Hey @nathanwoulfe, i had a look and quick fix (before proper fix), would be read segment from umbraco information image

so the angular view would look this:

<div ng-controller="Workflow.Submit.Dialog.Controller as vm"
     class="workflow workflow-submit-overlay umb-variant-selector-overlay">
    <umb-editor-view>
        <umb-editor-header name="model.title"
                           name-locked="true"
                           hide-alias="true"
                           hide-description="true"
                           hide-icon="true">
        </umb-editor-header>
        <umb-editor-container>
            <umb-box>
                <umb-box-content class="form-horizontal">
                    <workflow-comments comment="vm.comment"
                                       template-key="vm.templateKey"
                                       label-key="'workflow_describeChanges'"
                                       required
                                       invalid="vm.invalidComment">
                    </workflow-comments>

                    <div class="control-group umb-control-group"
                         ng-if="vm.state.requireUnpublish">
                        <div class="control-header">
                            <label class="control-label">
                                <localize key="workflow_action">Action</localize>
                            </label>
                        </div>
                        <div class="controls">
                            <umb-radiobutton value="publish"
                                             name="action_0"
                                             label-key="actions_publish"
                                             disable-dirty-check
                                             model="vm.action">
                            </umb-radiobutton>
                            <umb-radiobutton value="unpublish"
                                             name="action_1"
                                             label-key="actions_unpublish"
                                             disable-dirty-check
                                             model="vm.action">
                            </umb-radiobutton>
                        </div>
                    </div>

                    <div class="control-group umb-control-group"
                         ng-if="vm.state.allowAttachments">
                        <div class="control-header">
                            <label class="control-label">
                                <localize key="workflow_attachment">Attachment</localize>
                            </label>
                            <small class="control-description"><localize key="workflow_optional">Optional</localize></small>
                        </div>
                        <div class="controls flex" style="font-size: 15px">
                            <div style="width: 171px">
                                <button type="button"
                                        ng-click="vm.filepicker()"
                                        ng-hide="vm.attachment"
                                        class="btn btn-outline-wf">
                                    <localize key="workflow_addFile">Add file</localize>
                                </button>
                                <button type="button"
                                        ng-click="vm.filepicker()"
                                        ng-show=" vm.attachment"
                                        class="btn umb-button--xs btn-overflow"
                                        style="outline: none">
                                    {{ vm.attachment.name }}
                                </button>
                            </div>
                            <button type="button"
                                    ng-show="vm.attachment"
                                    ng-click="vm.filepickerClear()"
                                    class="btn umb-button--xs dropdown-toggle umb-button-group__toggle"
                                    style="margin-left: -3px; padding-bottom: 0px">
                                <umb-icon icon="icon-wrong"></umb-icon>
                            </button>
                        </div>
                    </div>

                    <div class="control-group umb-control-group" ng-if="vm.state.allowScheduling" data-workflow-readonly="{{vm.action === 'unpublish'}}">
                        <div class="control-header">
                            <label class="control-label">
                                <localize key="workflow_publishOn">Publish on</localize>
                            </label>
                            <small class="control-description">
                                <localize key="workflow_optional">Optional</localize>
                            </small>
                        </div>
                        <div class="controls">
                            <workflow-datepicker date="vm.releaseDate.raw"
                                                 label-position="beside"
                                                 on-setup="vm.datePickerOnSetup('publish', datepicker)"
                                                 on-change="vm.datePickerOnChange('publish', date, dateFormatted)"></workflow-datepicker>
                        </div>
                    </div>

                    <div class="control-group umb-control-group" ng-if="vm.state.allowScheduling">
                        <div class="control-header">
                            <label class="control-label">
                                <localize key="workflow_unpublishOn">Unpublish on</localize>
                            </label>
                            <small class="control-description">
                                <localize key="workflow_optional">Optional</localize>
                            </small>
                        </div>
                        <div class="controls">
                            <workflow-datepicker date="vm.expireDate.raw"
                                                 on-setup="vm.datePickerOnSetup('unpublish', datepicker)"
                                                 on-change="vm.datePickerOnChange('unpublish', date, dateFormatted)"
                                                 label-position="beside"></workflow-datepicker>
                        </div>
                    </div>

                    <div class="control-group umb-control-group"
                         ng-if="vm.editorScope.content.variants.length > 1">
                        <div class="control-header">
                            <label class="control-label">
                                <localize key="workflow_variants">Variants</localize>
                            </label>
                        </div>
                        <div class="controls">
                            <div class="umb-list umb-list--condensed">
                                <div class="umb-list-item"
                                     ng-repeat="variant in vm.editorScope.content.variants track by variant.compositeId">
                                    <umb-checkbox input-id="{{variant.htmlId}}"
                                                  name="saveVariantSelector"
                                                  on-change="vm.handleVariantSelectorChange()"
                                                  model="vm.variantSyncModel[variant.language.culture]"
                                                  disabled="!vm.canSubmit(variant)">
                                        <span class="umb-variant-selector-entry__title">
                                            <span ng-bind="variant.language.name"></span>
                                               <span ng-bind="variant.segment"></span>
                                        </span>
                                        <span class="umb-variant-selector-entry__description">
                                            <umb-variant-state variant="variant"
                                                               ng-if="!vm.inWorkflow(variant)"></umb-variant-state>
                                            <localize ng-if="vm.canEdit(variant) && vm.inWorkflow(variant)"
                                                      key="workflow_docIsActive">Document is currently in a workflow</localize>
                                            <localize ng-if="!vm.canEdit(variant)"
                                                      class="text-error"
                                                      key="workflow_notAllowed">
                                                Send for workflow approval is not allowed
                                            </localize>
                                        </span>
                                    </umb-checkbox>
                                </div>

                                <div class="umb-list-item" ng-if="vm.showInvariantSelector()">
                                    <umb-checkbox input-id="invariantCheckbox"
                                                  name="saveVariantSelector"
                                                  on-change="vm.handleInvariantSelectorChange()"
                                                  model="vm.variantSyncModel['*']">
                                        <span class="umb-variant-selector-entry__title">
                                            <localize key="workflow_invariantWorkflow">Invariant workflow</localize>
                                        </span>
                                        <span class="umb-variant-selector-entry__description">
                                            <localize key="workflow_invariantDesc" tokens="[vm.defaultLanguage, vm.actionStr]"></localize>
                                        </span>
                                    </umb-checkbox>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="alert alert-workflow mb0"
                         ng-if="vm.releaseDate.raw || vm.expireDate.raw">
                        <small>
                            <localize key="workflow_scheduleDescription">
                                If a scheduled date passes before the workflow is completed, the
                                scheduled action will execute when the final workflow stage has
                                been approved.
                            </localize>
                        </small>
                    </div>
                </umb-box-content>
            </umb-box>
        </umb-editor-container>
        <umb-editor-footer>
            <umb-editor-footer-content-right>
                <umb-button type="button"
                            button-style="link"
                            label-key="general_close"
                            action="vm.close()">
                </umb-button>
                <umb-button type="button"
                            button-style="success"
                            label-key="{{vm.action === 'publish' ? 'workflow_publishButton' : 'workflow_unpublishButton'}}"
                            disabled="vm.modelIsValid === false"
                            action="vm.submit()">
                </umb-button>
            </umb-editor-footer-content-right>
        </umb-editor-footer>
    </umb-editor-view>
</div>

to make it little nicer you can also replace _ with method in your angular controller.

nathanwoulfe commented 3 weeks ago

Hopefully clearer now as to why this one has been left for a little while - now that uMarketingSuite is part of Umbraco's offering, we can more thoroughly resolve this one.