# Drag and Drop in perspective

**URL:** <https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [May 14, 2021, 11:46am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709 "2021-05-14T11:46:47Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcasamitjana](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mcasamitjana](https://forum.inductiveautomation.com/u/mcasamitjana)\
**Post date:** [May 14, 2021, 11:46am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/1 "2021-05-14T11:46:47Z")

</div>

Hi,

In a perspective application we are developing, we would like to use “drag and drop” extensively.

Specifically, it would allow us to solve different functionalities in a very visual and intuitive way: from being able to dynamically configure part of the plant layout, to being able to define ordered lists of priorities (in what order a production list will be executed, or given a group of redundant engines in what order they will be started, etc.).

In HTML there is the “Drag and Drop API” [https://www.w3schools.com/html/html5\_draganddrop.asp](https://www.w3schools.com/html/html5_draganddrop.asp), however, the associated events (ondrop, ondropover, ondragstart, etc.) are not available in Perspective.  
We have been testing alternative solutions. For example we have tried an alternative based on the solution proposed by [http://forum.inductiveautomation.com/t/perspective-mouse-click-drag/28583/18](http://forum.inductiveautomation.com/t/perspective-mouse-click-drag/28583/18). However, it does not behave very smoothly, nor do we end up finding a way to make it work well in all the areas we need. For example, the elements on which we would allow drag and drop should be able to be inside a table, without a view canvas.

We have also been testing doing a fake drag and drop by playing with onMouseDown and onMouseUp events, combined with onMouseEnter and onMouseLeave, and modifying the page styles to make the mouse pointer the “dragging hand” when dragging. But the result is pretty lousy visually as you can’t see the object you want to drag.

Has anyone had a similar problem?

Thank you very much!

---

<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:** [May 14, 2021, 3:47pm UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/2 "2021-05-14T15:47:00Z")

</div>

It’s not a perfect solution, but could you adapt the [Dashboard Component](https://docs.inductiveautomation.com/display/DOC81/Perspective+-+Dashboard) to your needs?

---

<div class="post-metadata">

**Author:** ![mcasamitjana](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mcasamitjana](https://forum.inductiveautomation.com/u/mcasamitjana)\
**Post date:** [May 14, 2021, 7:43pm UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/3 "2021-05-14T19:43:08Z")

</div>

I have been testing the Dashboard component. It is a better solution than the ones I had tried. But I think I will not be able to adapt it for the required features.

The main problem is that widgets can be removed and added, and I couldn’t find a way to disable these two options. All elements should always be on screen.

Also, it is very rigid both aesthetically and in the way it behaves.By scripting I could partially solve the second problem, (for example, revert “drag and drop” actions that should not be allowed, revert widget size changes, etc, although visually it would be a bit contradictory).

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [March 25, 2024, 12:04am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/4 "2024-03-25T00:04:31Z")

</div>

Hi mate, did you have any progress on using this component?

I tried it a couple of months ago. It kind of doing the job, but not in a good workflow.  
Similar like you, basically I want to draw the pnid on the runtime screen and assign each component with the tag name to map with PLC UDT.

---

<div class="post-metadata">

**Author:** ![mcasamitjana](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mcasamitjana](https://forum.inductiveautomation.com/u/mcasamitjana)\
**Post date:** [March 25, 2024, 6:51pm UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/5 "2024-03-25T18:51:49Z")

</div>

Hi! In the end, the only way I found to solve my problem was to use this [GitHub - inductiveautomation/ignition-sdk-examples: Ignition SDK Example Projects](https://github.com/inductiveautomation/ignition-sdk-examples) and this [HTML Drag and Drop API - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) to make a perspective component for drag and drop. It took me some work, but once set up, it worked well.

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [March 26, 2024, 8:02am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/6 "2024-03-26T08:02:06Z")

</div>

You can inject some js which allows for d&d... Its not pretty and requires js knowledge  
A sdk is definitly the smarter way to do it, but requires more work. (altho i hope you didnt spend the 3 years on only this :p)

> [@Perspective Scheduler - Drag and Drop From Table](https://forum.inductiveautomation.com/t/perspective-scheduler-drag-and-drop-from-table/71853/12):
>
> yes you can setup a mutation observer that triggers on domchanges ive done something similar here: i'll fix up the script i have in a bit edit: here you go! a table , a schedule and the markdown are in here, with the dragdrop in de markdown and an (example of) AddEvent in de schedule. [tabledropschedule.zip](https://forum.inductiveautomation.com/uploads/short-url/vraW8MysI6UtTLmks7yMcZEDSM8.zip) (12.6 KB)

---

<div class="post-metadata">

**Author:** ![mcasamitjana](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mcasamitjana](https://forum.inductiveautomation.com/u/mcasamitjana)\
**Post date:** [March 26, 2024, 8:47am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/7 "2024-03-26T08:47:02Z")

</div>

Yes, I know about your magic 🙂 But I needed something a bit polished because it was used in many places in the application in different ways, and whoever took over the project wouldn’t cry too many hours. In the end, I spent a few days on it, especially understanding how the SDK worked, setting up the environment, etc. But I think it was a good investment because it allowed me to solve other problems that I have been having and that I would hardly have been able to solve in any other way. Having a script point that runs on the client is the only thing I miss in Ignition…

---

<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:** [March 26, 2024, 11:26am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/8 "2024-03-26T11:26:27Z")

</div>

> [@mcasamitjana](#):
>
> Having a script point that runs on the client is the only thing I miss in Ignition…

Ignition **still** has this. In Vision, where it was all along. 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![victordcq](https://avatars.discourse-cdn.com/v4/letter/v/f6c823/32.png) [@victordcq](https://forum.inductiveautomation.com/u/victordcq)\
**Post date:** [March 26, 2024, 12:37pm UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/9 "2024-03-26T12:37:04Z")

</div>

> [@mcasamitjana](#):
>
> and whoever took over the project wouldn’t cry too many hours.

Haha yea understandable

> [@mcasamitjana](#):
>
> Having a script point that runs on the client

Well that is kinda what the markdown component can be used for

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [October 30, 2024, 6:39am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/10 "2024-10-30T06:39:10Z")

</div>

I am getting back to this task again about the drag and drop in ignition.  
Just to check whether any progress from IA to make the dashboard component more user friendly?

---

<div class="post-metadata">

**Author:** ![jrd](https://avatars.discourse-cdn.com/v4/letter/j/b9bd4f/32.png) [@jrd](https://forum.inductiveautomation.com/u/jrd)\
**Post date:** [July 30, 2025, 8:37am UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/11 "2025-07-30T08:37:12Z")

</div>

Hi guyss  
You may be interested in our drawing module. See sample below  
This module allows drawing of models and saving details (nodes, connections (edges) etc) to database for reasoning & analysis - we use an external python app for analysis. Database can be any supported by Ignition  
The module has 2 modes, designer and user. We have bound user modes to Ignition user roles.  
We use the module to model process flow in manufacturing plants.  
Drawings can be built by designer by dragging objects from the palette (on the left) and dropping them on the drawing canvas, Palette and editing capability is not available only in designer mode.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/0/c06d808cb0b7bdee35e6270c12d3fe92605158d7.png)

Our app uses simple geometric objects, but the options are limitless  
Refer here for examples [Samples Index | GoJS](https://gojs.net/latest/samples/) The module integrates the (brilliant) GoJs Javascript library into Ignition  
The capabilities are endless!. We would need to customize the module to suit your specifics  
If you wish we can do an online demo

Regards  
Ross

---

<div class="post-metadata">

**Author:** ![Markus\_Oosthuizen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/markus_oosthuizen/32/81030_2.png) [@Markus\_Oosthuizen](https://forum.inductiveautomation.com/u/Markus_Oosthuizen)\
**Post date:** [March 2, 2026, 2:18pm UTC](https://forum.inductiveautomation.com/t/drag-and-drop-in-perspective/46709/12 "2026-03-02T14:18:20Z")

</div>

Hi, maybe you want to check out this module

> **[Ignition Third-Party Module Showcase](https://inductiveautomation.com/moduleshowcase/module/lidt-technologies-perspective-drag-and-drop)**
>
> Easily extend Ignition's core functionality with Third-Party Modules. The Module Showcase is a great place to find a solution that best meets your needs.

Demo video:

> **[Drag & Drop Module for Ignition Perspective Released | Markus Oosthuizen...](https://www.linkedin.com/posts/markus-oosthuizen-85652b138_ignition-scada-hmi-ugcPost-7428167999129481216-Omjh?utm_source=share&utm_medium=member_desktop&rcm=ACoAACGJrQIBs9ur7wPCJajsaMhvxQDOUsFGFok)**
>
> Now on the Ignition Module Showcase!
> LIDT Technologies have released a Drag & Drop Module for Inductive Automation's Ignition Perspective platform, built for creating dynamic, operator-configurable HMI interfaces.
> The module adds three components to...
