Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Notify message shows below modal Window

    SmartClient Version: SNAPSHOT_v12.1d_2019-05-02/AllModules Development Only (built 2019-05-02)
    Chrome on OSX

    Hello, please modify the #notificationsNewSample sample like that:

    Code:
    var notifyTypes = ["message", "warn", "error"];
    
    // NotifySettings that won't change should be set up front using configureMessages()
    notifyTypes.map(function (notifyType) {
        isc.Notify.configureMessages(notifyType, {
            multiMessageMode: "replace",
            autoFitMaxWidth: 250,
            slideSpeed: 250
        });
    });
    
    // configForm configures the dynamic NotifySettings that will be passed to addMessage()
    isc.DynamicForm.create({
        ID: "configForm",
        fields: [
            {type:"header", defaultValue: "Configure Notification"},
            {name: "text", title:"Message", type:"text", hint: "Type your Message", 
             defaultValue: "Download complete", wrapHintText: false},
            {name: "location", title: "Screen Location", 
             editorType: "ComboBoxItem", defaultValue: "T",
             valueMap: {
                 "L": "left edge",
                 "R": "right edge",
                 "T": "top edge",
                 "B": "bottom edge",
                 "TL": "top-left corner",
                 "TR": "top-right corner",
                 "BL": "bottom-left corner",
                 "BR": "bottom-right corner",
                 "C": "center"
             }},
            {name: "showAnimation", title: "Show Animation", editorType: "ComboBoxItem",
             wrapTitle: false, defaultValue: "slide", valueMap: ["slide", "fade", "instant"]},
            {name: "hideAnimation", title: "Hide Animation", editorType: "ComboBoxItem",
             wrapTitle: false, defaultValue: "fade", valueMap: ["slide", "fade", "instant"]},
            {name: "notifyType", title: "Message Type", editorType: "ComboBoxItem",
             wrapTitle: false, defaultValue: "message", valueMap: notifyTypes,
             change : function (form, item, value, oldValue) {
                 // dismiss all messages from old notifyType
                 isc.Notify.dismissMessage(oldValue);
             }
            },
            {name: "dismiss", type:"checkbox", title: "Add button to immediately dismiss"},
            {name: "window", type:"checkbox", title: "Add link to launch a window"}
        ]
    });
    
    isc.Button.create({
        ID: "sendButton",
        title: "Send",
        click: function () {
            var config = configForm.getValues(),
                contents = config.text;
            if (!contents) contents = "You left the message text empty!"
    
            var actions = [];
            if (config.window) {
                actions.add({
                    title: "Launch...",
                    target: sendButton,
                    methodName: "showWindow"
                });
            }
            isc.Notify.addMessage(contents, actions, config.notifyType, {
                canDismiss: config.dismiss,
                positionCanvas: testWindow,
                appearMethod: config.showAnimation,
                disappearMethod: config.hideAnimation,
                position: config.location});
        },
        showWindow : function () {
            isc.Window.create({
                isModal:true,
                autoSize:true,
                autoCenter:true,
                bodyProperties: {
                    defaultLayoutAlign: "center",
                    layoutLeftMargin: 5,
                    layoutRightMargin: 5,
                    layoutBottomMargin: 10
                },
                showModalMask:true,
                canDragReposition:false,
                title:"Notification Action",
                showMinimizeButton:false,
                items: [
                    isc.Label.create({
                        width: "100%", height: 40,
                        align: "center", wrap: false, 
                        contents: "In your application, this window might contain a wizard."
                    }),
                    isc.Img.create({
                        width: 200, height: 250,
                        src:"other/wizard.png"
                    })
                ]
            }).show();
        }
    });
    
    
    
    isc.Window.create({
        ID:"testWindow",
        isModal:true,
        autoSize:true,
        autoCenter:true,
        showModalMask:true,
        items:[
            isc.VLayout.create({
                membersMargin: 10,
                members: [configForm, sendButton]
            })
        ]
    }).show()
    I've added a window and I've configured it as positionCanvas for the Notify message.
    Click send and you'll see that the message Label will slide below the Window.

    #2
    We see the problem and are looking into it.

    Comment


      #3
      We've made a change so that notifications are always on top of other widgets, which solves the case you reported. It also means that a notification that appears will remain on top even if a modal window is shown afterwards. This is so you can still interact with the notification, which is assumed to be a separate flow of logic from whatever the modal window is controlling access to.

      The fix will be in the nightly builds dated 2019-05-10 and beyond.

      Comment


        #4
        I can confirm it's fixed, thank you very much

        Comment

        Working...
        X