[Feature request] CTRL+S, CTRL+SHIFT+S, Close, Commit changes - Room for improvement

Hi,
I choose to make a new post to bump this into attention
image

I believe I am not the only one who have been asking myself if I really should answere yes or no to this question. There are several related issues to this I want to bring into attention. If anyone agree, please like or comment and add to this feature request :slight_smile:

1. CTRL+S (Save All)
Current implementation commits all modifications in designer -without any question. This is in my opinion a dangerous functionality. It is verry likely that you commit something accidentally modified fex.
Computer users are used to the keyboard shortcut CTRL+S from many software packages. But with a different behaviour: It will save the resource currently in focus.

[Feature request]: modify the meaning of CTRL+S:
-Should only commit current resource in focus.
-Save All should bring up a list of modified resources for the developer to verify. Use another keyboard shortcut for this. fex CTRL+SHIFT+S

2. Close resource
When I close a template or window in the designer, I get the above mentioned question.
-The problem is that the question is given regardles if the resource is modified or not.
-That way I dont really know if I should answere yes or no. I need to think, and try to remember, or search the resource for any accidental modification
-Usually I find myself answering yes -just to be on the safe side -but I have many examples of this beeing the wrong descision, having committed accidental modifications
-The question looses its intended meaning since it is always asked.

[Feature request]:
-Close without question if not modified

3. What is modified?
I often try to track what window or template is actually modified.
-Currently resources are not marked as modified in the designer

[Feature request]:
Mark resource if modified. Fex add “*” to the resource name as in notepad

4. Multi developer environment
Typically we are several developers connected to the same gateway. Sometimes opening resources for reference. By accidentally commiting “ghost-modifications” this troubles our workflow since we often need to handle unnecessary merge conflicts on the gateway.
-I believe there will be less such conflicts if designer did not have “Save-All-Without-Question” as default behaviour on CTRL+S.

relates to:

11 Likes

I agree with all of these!
As I said in my post, save all as the only option was very unnatural for me when I first started with ignition. I’ve become used to it now but it doesn’t mean I like it due to all the points you’ve raised. It would be great if we could have both a save and a save all button with save (single) as the default

3 Likes

Completely agree! :ok_hand:t3:

1 Like

Agree with all to!

Sometimes I close the project and choose not to save, to be sure that I don’t modify a page or template by accident.

3 Likes

With the 7.X versions there was the staging and publish versions and you got to pick and choose what to save/push, but it would get confusing as if you made a change and didn’t push it, the next time you came in and went to save, you’d see that that window or script was affected but it’d be completely on you to remember what.

I think perhaps like a synthesis of the 7.X and 8.X style would work as you said OP. Still have the option to save all for those cases sure. But if you do a save where you can select which specific windows/scripts etc to push then when you exit designer, anything that that was “modified” (if it even really was not) but was not pushed/saved - that just reverts to the last “unmodified” state. This way next time you open the designer to make a few changes, the only options you see to push next time you save are things you changed in that session - you won’t see a window you maybe opened 4 sessions ago and didn’t do anything to (if you can remember what you did) as an option to push.

Wonder how other people feel about this method. I think this is how I would personally like it.

1 Like

Some good points, absolutely
I see this functionality touches some main goals the designer should meet:

  • Confidence: The developer should easily see which resources are changed or not
  • No supprise: No developer should be supprised what gets commited, saved or pushed to the gateway
  • Efficient: The workflow during the day should be as easy as possible, not bothered by questions for saving not-modified resources
1 Like

Let me play devil’s advocate here:

  1. Changing the “Save-all” behavior of Ctrl-S will break the expectations of all developers who’ve used Ignition for a decade. And lots of applications use the same paradigm, like JetBrains IDEs.

  2. Bindings execute in the designer in both design and preview modes. Preview mode includes property changes from running scripts and user interaction. Property values are part of the resource to save, and just opening a window causes value updates that may need to be saved. So the designer asks whether to commit or not. I’d be shocked if IA could satisfy this request.

  3. Some parts of the designer interface show modified resources in italics, so not entirely missing. But could be better, yes. A way to individually revert resources to the gateway copy would be most helpful. (Ok, so not much of a devil’s advocate on this one.)

  4. Multiple developers should be working on their own copy of the gateway, or at least their own copy of the project, until the resources they are editing are ready to push to production. (Via “send to…”, preferably.) Avoid having multiple developers connecting to the same gateway.

3 Likes

Committed windows do have a reversion option. Not quite grabbing it from the gateway, but close.

5 Likes

I see. Everything usually has a history or an explanation. :slight_smile:
-However where come from, Ignition is the only software where CTRL+S saves everything no questions asked.
-At least this seems a little odd in contrast to the behaviour when closing (as far as the developer is concerned) a not-modified resource -Where questions are always asked.

Interesting to bring this up in the forum and share different experiences and opinions with you all.
-Knowing that IA deveolopers reads this forum makes it relevant to bring up such issues -to see if this is a “one-mans-opinion” or someting others are also thinking about.

Wow how did I never know this existed. That helps a lot.

I can’t comment on anything in an official capacity, but I’ll say that we see this thread and register the demand, and I’m sure this will kick off some good discussion internally.

8 Likes

The idea of working on temporary “development-branch” copy the “production” project was an interesting idea. We might as well try that out. :slight_smile:

I don't agree with this at all sorry Phil. A huge benefit of Ignition is the fact that you can have multiple developers working side-by-side on the same gateway, making changes that may benefit others who are using those resources (templates/styles/scripts/etc.) in their own resources that have fixes or development being awaited.

I've been using Ignition now for 6-7 years and still find this functionality awkward. Anyone I train up in Ignition as well makes a familiar scrunched up face when I tell them about the "save doesn't save the thing you have open, but saves all you have open, so make sure you close and revert everything you have open that you don't need to save so that you don't pollute the audit log or the resource modified dates. Of course, everyone forgets this half the time so it's a bit of a pointless exercise really..

1 Like

Then use the copy project technique I mention instead of the copy of gateway. The intent is to push selected, tested resources to production. Discard the temporary project when production is updated.

2 Likes

CTRL+S seems to be an issue only to people who have not set up version control on their project. Which is the “out of the box” use case of Ignition.

In my own opinion, it would make more sense to have “CTRL+S” bring up a confirmation dialog with a summary of changes that will be pushed to the Gateway. This way you know which resources you pushed to the gateway, at least.

3 Likes

This is good feedback. It’s one of those things where it’s worked that way for so long, nobody around here questions it anymore. I do think it’s a good idea to change it, although we might wait for 8.2 because I think the sudden change might be quite jarring to folks.

Phil is right about one part though - our ability to accurately know if anything has “changed” is not good. The model is quite dynamic, and we can’t readily distinguish changes made with intention vs properties changed from bindings.

Now, I personally dislike the “would you like to commit any changes?” dialog that Vision uses, and I’m all for the idea of eliminating it. In fact, we did eliminate it for Perspective, which automatically commits when you close a resource. I feel like this is the correct default action, and then, users should become familiar with these options:
image


So, what I’d want to do is two minor tweaks:

  1. Swap the CTRL+S and CTRL+SHIFT+S Shortcuts
    image
  2. Drop Vision’s prompt on close, adopt Perspective’s model, including the Close & Commit / Close & Revert items for all resource types.
10 Likes

I like this plan. For those like me who reflexively hit Ctrl-S often, we'll be retrained by the popup. (Edit: I like this enough to endorse it for v8.1.x.)

9 Likes

I've been burnt too many times in the past not to do this! :laughing: I save more frequently than I breathe

8 Likes

I can’t speak to the behavior in the various IDE platforms that users with a software development background may be used to, but for me, Ctrl-S as Save All is exactly what I expected it to do. For the vast unwashed masses of Windows users, of which I am one while at work, the expected behavior of Ctrl-S is typically to save “the thing that you have open”. If you’re in Excel, it saves the workbook, not just the worksheet, in Word, it saves the whole open document, etc. The thing that you open in an Ignition Designer instance is a project, so we would expect Ctrl-S to save the project (all of it). There would obviously be benefits to some people as seen in this thread, but I think; a behavior contrary to what I described will be less intuitive for a lot of users, not more so.

Just a question on the functionality - I open a window, accidentally move a component, realize I'm in the wrong window and close without the dropdown and without right clicking the to do a "Close and Revert". This component move is then primed for the Saved via Ctrl+S, but if I do a Ctrl+Shift+S, I could exclude that window from saving right?

Then if I close and reopen designer, on that window I made a mistake - it looks how it did before I made my accidental move and there's nothing primed to be saved via Ctrll+Shift+S - its all a clean slate?