Время создания
Filters
Discussion
version
ApplicationHub

It would be nice if there was some automatic prompt to the user in the app hub when exporting a customer application to update the version number of a customer application. Just a little popup asking if you would like specify the version number, showing the current version number, would make this feature a lot more visible & easy to incorporate into standard workflows.

1 comments

Adding also possibility to add notes of changes in the new version number so it's directly documented in the app would be great add to be able to direcly see new changes and history of changes.

Show all comments

When adding code into a page that has to call crt.ClosePageRequest to close the page in the code, it's a very common pattern to want to close the page without the standard dialog prompt to the user asking about unsaved changes appearing. It is possible to override the crt.CanDiscardUnsavedDataRequest handler to return true to do so, but most of the time you don't want this to happen for any close page event, just the one in your particular code path(s). This leads to somewhat over-complicated code to set an attribute so that the crt.CanDiscardUnsavedDataRequest handler can know if you've gone down this code path where it can be discarded or it's from some other source such as the user clicking to close the page, introducing possible bugs.

 

I would propose that it should be possible to pass in a parameter to the crt.ClosePageRequest call to specifically tell that handler whether it should discard the unsaved changes or not, defaulted to false so that current behaviour is maintained. This would look something like this in my view:

{
	"request": "usr.SomeHandler",
	"handler": async (request, next) => {
		// Some logic which decides that the page should be closed without saving
		
		// Close the page without prompting the user
		request.$context.executeRequest({
			type: "crt.ClosePageRequest",
			$context: request.$context,
			canDiscardUnsavedData: true
		});
		


		return next.handle(request);
	}
}

 

This is a lot more natural and clear what is happening, as all the logic is contained within the single handler's logic, and so doesn't require jumping to different handlers (which aren't obvious from just looking at the handler in question's code in the current ways of doing this) and unpicking that the code is preventing that popup elsewhere.

1 comments

Hello Harvey Adcock,

We have registered this idea and passed it to the responsible R&D team for consideration in future releases.

Show all comments
Discussion
mobile
FreedomUI
http
user
websocket

Hi everyone,

I work daily with Creatio Freedom UI, both on web and mobile, and I noticed a few gaps between the two versions. I would like to suggest some improvements for the mobile app.

1. HTTP client for mobile (like sdk.HttpClientService on web)
On web, we can use sdk.HttpClientService to make HTTP requests inside Freedom UI. On mobile, this is not available. It would be great to have something similar for mobile too, at least when the app is online. This way, we could call external services directly from mobile scripts, using the current authenticated user session. Right now, we don't have a clean way to do this.

2. Basic context info for remote modules
It would help a lot if remote modules on mobile could easily access basic information, such as:
- current user
- current instance (URL/environment)
- user's time zone
- list of user's roles

This information is often needed for simple logic (for example, showing or hiding something based on role), but right now it is hard or impossible to get on mobile.

3. Real-time updates (WebSocket support) on mobile
Web Freedom UI can use WebSocket for real-time updates, but mobile does not support this yet. Adding WebSocket support to the mobile app would allow live updates (for example, notifications or data changes) without the need for constant manual refresh or polling.

All three points are about making the mobile app closer to the web version in terms of what developers can actually do. Right now, mobile feels more limited, and these gaps make some solutions harder to build or impossible without workarounds.

Has anyone else run into these limitations? I would be curious to hear if others need the same things, or if there are any workarounds I am missing.

Thanks!

2 comments

Hello,
Thank you for your valuable suggestions. We have already shared these proposals with our R&D team, and they have been logged for further evaluation and consideration.

Thank you :)

Show all comments

I already raised this issue here: https://community.creatio.com/questions/creatio-mobile-discard-unsaved-…

On web, I can handle crt.CanDiscardUnsavedDataRequest to control when the "discard unsaved changes" popup appears. On mobile, this option doesn't exist, even though the same business logic often needs to work on both platforms. I understand the popup protects users from losing data by accident, and I'm not asking to remove that protection by default. I just want the option to override it when I decide it's needed, the same way I already can on web.

I know this wouldn't cover system-level gestures or hardware back buttons, since those happen outside the JS layer. That's also true on web (closing the tab isn't covered either), but the handler is still useful for everything that goes through crt.ClosePageRequest and similar in-app navigation. Adding this would bring mobile closer to feature parity with web, giving developers the same control they already have, without changing default behavior for users who don't need it.

2 comments

Hello Eryk Andrzejewski,

The idea has already been submitted to the R&D team for implementation in future releases.

Thank you :)

Show all comments
Discussion
mobile
local
storage

Hello,
I would like to suggest adding a simple local key-value storage API to the Mobile Freedom UI SDK, similar to the standard web localStorage.
Currently, if a developer wants to store some technical data only on the device, scoped to the current user, there is no direct way to do it. The only supported option is to create a dedicated object with a relation to the user, add a filter on read, and configure access rights. This works, but it is more complex than needed, and the data is also written to the server database during synchronization, even if it is not really needed there.

A simple API like this would solve the problem:

localStorage.setItem('someSetting', { ... });
const value = localStorage.getItem('someSetting');

This would allow developers to store temporary or technical data directly on the device, without creating extra objects and without sending this data to the server.

Thank you for considering this idea!

2 comments

Hello,

We've registered this idea in our R&D team backlog for consideration and implementation in future application releases. Thank you for helping us to improve our product.

Hello, thank you

Show all comments