# \[FEATURE-6423\] 'Confirm?' prop for the Perspective Multi-State Button

**URL:** <https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125>\
**Category:** Ignition\
**Tags:** vision, perspective\
**Created:** [July 20, 2022, 2:44pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125 "2022-07-20T14:44:37Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Philip\_08012](https://avatars.discourse-cdn.com/v4/letter/p/ce73a5/32.png) [@Philip\_08012](https://forum.inductiveautomation.com/u/Philip_08012)\
**Post date:** [July 20, 2022, 2:44pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/1 "2022-07-20T14:44:37Z")

</div>

In ignito perspective there is no ‘are you sure’ popup as there is on the one shot button? Is there something I am missing or do you have to create your own pop up? It was available on ignition vision

---

<div class="post-metadata">

**Author:** ![jthorpe](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jthorpe/32/36639_2.png) [@jthorpe](https://forum.inductiveautomation.com/u/jthorpe)\
**Post date:** [August 4, 2022, 10:37pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/3 "2022-08-04T22:37:09Z")

</div>

Hi Philip,

I wrote up a ticket for us to take a look at adding this functionality to the Perspective version of the Multi-State Button. Seeing as similar components across Vision and Perspective have this property to enable a confirmation popup, it appears to be an oversight on our part. We will update this thread if and when that feature makes it into an Ignition release.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 5, 2022, 12:46am UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/4 "2022-08-05T00:46:53Z")

</div>

Oy! I hope not. Confirmation popups are an anti-pattern. See this recent discussion (among many):

> [@Create Text Confirmation Instead of Click Confirmation](https://forum.inductiveautomation.com/t/create-text-confirmation-instead-of-click-confirmation/62423/2):
>
> You are battling human nature. You will lose. Consider not using a popup, instead using a time-limited “command mode” of some kind, specific to each screen that needs it. The command mode would enable the other relevant buttons, and would time out after a short idle period. This approach satisfies requirements for avoiding accidental button presses, without using a popup that becomes a rote action.

---

<div class="post-metadata">

**Author:** ![rpavlicek](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/rpavlicek/32/55868_2.png) [@rpavlicek](https://forum.inductiveautomation.com/u/rpavlicek)\
**Post date:** [February 8, 2023, 5:28pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/5 "2023-02-08T17:28:17Z")

</div>

Can you give an example of a "Command Mode" control or something similar on what you are referring to?

I like the though process around having things to be more intuitive and a smoother flow, but what if we have an emergency button that would stop the process fully, and wanted to protect it from accidently being pressed. A confirmation box is an obvious thing we think of to put in place.

Is a command mode control a component (button, switch, etc..) that enables the emergency stop button, so you are doing two clicks anyways?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 8, 2023, 5:39pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/6 "2023-02-08T17:39:07Z")

</div>

An emergency stop probably doesn't belong in software.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 8, 2023, 5:41pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/7 "2023-02-08T17:41:58Z")

</div>

> [@rpavlicek](#):
>
> Is a command mode control a component (button, switch, etc..) that enables the emergency stop button, so you are doing two clicks anyways?

Yes. One click to enable the "protected" operation(s), then the second click to execute. The latter can also cancel the "command mode" before the timeout expires.

The point is that a popup, if modal, doesn't let anything else happen until dismissed, even things that might also be important to have available in a single click. In Vision, the common GUI popups stop all foreground scripting, too.

Note that things like emergency stops are **forbidden** to require multiple actions, if you can have it on an HMI at all.

---

<div class="post-metadata">

**Author:** ![rpavlicek](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/rpavlicek/32/55868_2.png) [@rpavlicek](https://forum.inductiveautomation.com/u/rpavlicek)\
**Post date:** [February 8, 2023, 5:43pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/8 "2023-02-08T17:43:45Z")

</div>

Yes you are right, bad example, shouldn't have said the word "emergency" to something that is critical to the safety of others.

To my above question, a more practical case of something that may need someone to not accidently press something in general.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [February 8, 2023, 6:05pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/9 "2023-02-08T18:05:57Z")

</div>

Have a command mode button that toggles a custom property bool. Then in your scripts that should only work in command mode, check the custom prop bool to make sure it is true. Otherwise, you are in "read-only" mode.

```auto
def runAction(self, event):
	if self.view.custom.commandMode:
		# do writes
	else:
		# in read-only mode
		return

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 8, 2023, 6:10pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/10 "2023-02-08T18:10:22Z")

</div>

> [@dkhayes117](#):
>
> in your scripts that should only work in command mode

By itself, this provides insufficient user feedback. Enabling & disabling the "protected" buttons provides a clear indication that a something is not going to respond.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [February 8, 2023, 6:13pm UTC](https://forum.inductiveautomation.com/t/feature-6423-confirm-prop-for-the-perspective-multi-state-button/62125/11 "2023-02-08T18:13:39Z")

</div>

Yep, that makes more sense, use the property in an expression to enable/disable the protected buttons 👍
