Html Requirements

Requirements For Use

  • Bootstrap V3.3.4 or higher
  • jQuery V1.12.1
  • Loupe UX library

Code Examples

The following examples will show a method for setting up the popup in html.

MessageBox

This example shows how to create a popup with message box functionality.

<!-- Modal -->
<style>
    .msg-btn-hidden {visibility: hidden;}
    .msg-btn-visible {visibility: visible;}
    #ModalPopUpdiv.lux-text-value {min-width: 1px;}
</style>

<div class="modal fade" id="ModalPopUp" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <span data-var-name="MsgBox:MessageBox.Layer.Active"></span>
        <div class="modal-content">
            <div class="modal-body">
                <p class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Message"></p>
            </div>
            <div class="modal-footer">
               <span class="lux-led" data-var-name="MsgBox:MessageBox.Buttons1.StatusDP" data-set-value="1" data-reset-value="0"
                    data-led-true="msg-btn-hidden" data-led-false="msg-btn-visible">
					<button type="button" class="btn btn-default lux-btn-set btn1" data-var-name="MsgBox:MessageBox.Buttons1.CMD">
						<div class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Buttons1">Button 1</div>
                    </button>
                </span>
                <span class="lux-led" data-var-name="MsgBox:MessageBox.Buttons2.StatusDP" data-set-value="1" data-reset-value="0"
                    data-led-true="msg-btn-hidden" data-led-false="msg-btn-visible">
						<button type="button" class="btn btn-default lux-btn-set btn2" data-var-name="MsgBox:MessageBox.Buttons2.CMD">
							<div class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Buttons2">Button 2</div>
                        </button>
                </span>
            </div>
        </div>
    </div>
</div>
<!-- Modal End -->

<script>
    var modalpop-up= function () {
        if (machine["MsgBox:MessageBox"] === undefined || machine["Msgox:MessageBox"].Layer === undefined) {
            return;
        } else if (machine["MsgBox:MessageBox"].Layer.Active && !$('#ModalPopUp').hasClass('in')) {
            $('#ModalPopUp').modal({
                backdrop: 'static',
                keyboard: false
            });
        } else if (!machine["MsgBox:MessageBox"].Layer.Active && $('#ModalPopUp').hasClass('in')) {
            $('#ModalPopUp').modal('hide');

        }
    }
    LUX.on({ 'update-hmi': modalpop-up});
</script>

Prompt

The difference between this code snippet and the one above is the user input field.


<!-- Modal -->
<style>
    .msg-btn-hidden {visibility: hidden;}
    .msg-btn-visible {visibility: visible;}
	.add-margin {margin: 25px;}
    #ModalPopUpdiv.lux-text-value {min-width: 1px;}
</style>

<div class="modal fade" id="ModalPopUp" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <span data-var-name="MsgBox:MessageBox.Layer.Active"></span>
        <div class="modal-content">
            <div class="modal-body">
                <p class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Message"></p>
            </div>
			<input class="lux-text-value add-margin" data-var-name="MsgBox:MessageBox.TextSnippets.UserString"></>
            <div class="modal-footer">
                <span class="lux-led" data-var-name="MsgBox:MessageBox.Buttons1.StatusDP" data-set-value="1" data-reset-value="0"
                    data-led-true="msg-btn-hidden" data-led-false="msg-btn-visible">
					<button type="button" class="btn btn-default lux-btn-set btn1" data-var-name="MsgBox:MessageBox.Buttons1.CMD">
						<div class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Buttons1">Button 1</div>
                    </button>
                </span>
                <span class="lux-led" data-var-name="MsgBox:MessageBox.Buttons2.StatusDP" data-set-value="1" data-reset-value="0"
                    data-led-true="msg-btn-hidden" data-led-false="msg-btn-visible">
						<button type="button" class="btn btn-default lux-btn-set btn2" data-var-name="MsgBox:MessageBox.Buttons2.CMD">
							<div class="lux-text-value" data-var-name="MsgBox:MessageBox.TextSnippets.Buttons2">Button 2</div>
                        </button>
                </span>
            </div>
        </div>
    </div>
</div>
<!-- Modal End -->

<script>
    var modalpop-up= function () {
        if (machine["MsgBox:MessageBox"] === undefined || machine["MsgBox:MessageBox"].Layer === undefined) {
            return;
        } else if (machine["MsgBox:MessageBox"].Layer.Active && !$('#ModalPopUp').hasClass('in')) {
            $('#ModalPopUp').modal({
                backdrop: 'static',
                keyboard: false
            });
        } else if (!machine["MsgBox:MessageBox"].Layer.Active && $('#ModalPopUp').hasClass('in')) {
            $('#ModalPopUp').modal('hide');

        }
    }
    LUX.on({ 'update-hmi': modalpop-up});
</script>

index.html

When adding the code above to the HMI, there are two options. The first, add the code directly into the body of the HTML page. Second option is to make the above code a standalone HTML file and use the data-include functionality from Loupe UX. See below for an example. Data-include uses the relative path based on the current file structure of the HMI application.

//place the following code anywhere inside of the body of the html file used for the HMI.
<div data-include="views/msgBox.html"></div>