-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create oc_weld #944
Create oc_weld #944
Conversation
Replaces the functionality of Weld but in it's on script now (was spread between oc_core and oc_settings). Using LinksetData instead of prim description for settings, which also allows the Weld button from being dynamically added and removed. Added global_hideweld flag to hides the Weld button (1=hide). Most weld dependencies in oc_settings should now be redundant and could be removed. Already removed (commented out) weld from oc_core in OpenCollarTeam#943
Hi Yosty, great stuff, separating out weld into its own script is much needed. We're likely to need some minor changes when we've finalized the changes to settings management and dynamic menus. As part of the process of moving over to LSD for this (and other settings) we have to take some care with dependencies and redundant code, so this will also rely on changes to OC_settings as you say. We're also going to have to think about the update process here -- I'd anticipate the updater will need to ensure the weld script is added if there's a weld present. On specifics of implementation: I'd suggest we want this script in the Apps menu, and maintain the unweld code within this script. I think we could have a button in the menu that explains the unweld process too -- "how do I unweld" is one of the most commonly asked support questions. I'm not sure we actually need to use the linkset_data event here at all -- it's something we should avoid if we can for the sake of script efficiency, as as our LSD is easily read globally I'd be inclined to manage the LOCK button behaviour in main menu by checking the intern_weld value locally in the oc_core script. |
The LOCK button behavior is still controlled by the core script. and reading the weld flag like you suggest. It's one of the few pieces of weld code I left in core. But thelinkset_data event is for adding/removing the Weld button. I wouldn't know how else to do it tbh. |
Come to think of it, if we put Weld in it's own Apps menu, and no longer show the weld button in the main menu, then there no longer would be a need for the linkset_data event. |
* no longer adding/removing Weld button in main menu but instaed use it's own Weld menu in Apps * don't have to rely on linkset_data anylonger so removed that part * added warning in Weld menu prompt. And a button that links to the Weld help page: https://opencollar.cc/docs/Weld
So this is an important and valuable project, and I think we should target it for 8.3. Weld in its current form causes an awful lot of the support load for OpenCollar. At the moment this app brings the huge advantage that moving it to an app means we're taking the button a little further away from unwise temptation (we've all seen the "I accidentally welded my collar, I was curious to see what it does and now I can't unlock" complaints), and means we can clear some space in the core and api, which is certainly useful. Once we've taken the step of providing an app it makes sense to me that the weld app also handles unwelding, and we do without the necessity of an external welder altogether. This can work in exactly the same was as the weld function: the unweld has to be initiated with someone with CMD_OWNER auth, and then the wearer gets a consent popup. This entirely removes the complexity of an external welder. I have prepared a modification of @Yosty7B3 's OC_weld to do this and remove llLinkSetData dependencies for full compatibility with the 8.3 API which can be found here (as yet untested) https://github.com/OpenCollarTeam/OpenCollar/blob/Medea_destiny_weld_patch/src/Apps/oc_weld . Further work that needs to be done here for the 8.3 inclusion is to remove the weld bits that are no longer necessary in oc_core/api. @Yosty7B3 I assume you've done some work on that already? I have two extra considerations we could use some input into:
|
Yes, I did for the LSD version. It only needed an |
@Yosty7B3 Yes, so long as the plugin is there, it should show in the menu. People can always remove the plugin after welding, and add back in if they need to weld, if they wish! |
Discussion on non-technical aspects of this (decisions on how it all works for the user etc) here: #1009 |
Replaces the functionality of Weld but in it's on script now (was spread between oc_core and oc_settings).
Using LinksetData instead of prim description for settings, which also allows the Weld button from being dynamically added and removed.
Most weld dependencies in oc_settings should now be redundant and could be removed. Already removed (commented out) weld from oc_core in #943