leons
uniGUI Subscriber-
Posts
55 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Events
Everything posted by leons
-
Hi Sherzod, In the VCL app it's working. regards Leon
-
Hi I have the following problem. I use a Microfocus ODBC driver for Cobol flles. In design time when I connect with Firedac I can scroll through the rows and every time when I'm at the end of the grid the new data is automatically selected. In runtime I only see the first 50 rows and at the end the grid no new rows are fetched. The same issue with a DB2 ODBC driver. Does anyone have a solution / idea how to fix this? regards Leon
-
Hi Erich, Do you want to acces the files without the interaction of the user? I don’t think this is possible because it would be a real security issue. It is against the concept of any browser. You have to use an agent on the user machine. Regards Leon
-
Office 365 OAuth 2.0 Login to my UniGui-Hyper-Sever Application
leons replied to erich.wanker's topic in General
Hi I've got this example from the forum. You have to set up the application in Azure. UniSession.Log('Got Code - see if we can get an token...'); http:=TNetHTTPClient.Create(Self); params:=Tstringlist.Create; params.Add('code=' + UniMainmodule.AzureAuthCode); params.Add('client_id=' + C_client_id_Az); // params.Add('client_secret=' + UriEncode(C_client_secret_Az)); params.Add('client_secret=' + C_client_secret_Az); params.Add('scope=' + C_scope_Az); params.Add('redirect_uri=' + C_redirect_uri_Az); params.Add('grant_type=authorization_code'); Lresponse:=http.Post('https://login.microsoftonline.com/organizations/oauth2/v2.0/token', params); UniSession.Log(Lresponse.ContentAsString()); if Lresponse.StatusText = 'OK' then begin token:=GetSimpleValue(Lresponse.ContentAsString, 'access_token'); GToken:=stringreplace (token,'"','',[rfreplaceall]);; UniSession.Log(Lresponse.ContentAsString); aMsg:=Lresponse.ContentAsString; //set username UniSession.Log('getuserInfo'); lresponse := http.get ('https://graph.microsoft.com/v1.0/me',nil,[TNetHeader.Create('Authorization','Bearer ' + gtoken)]); if lresponse.StatusText='OK' then begin UniSession.Log(Lresponse.ContentAsString); unimainmodule.AUserName := stringreplace (GetSimpleValue (lresponse.ContentAsString,'mail'),'"','',[rfreplaceall]); unimainmodule.LoginType := 2; end; // Handled:=True; end; Except on E : exception do unimainmodule.logintype := 0; // catch all unwanted exception here ! It worked for me... Regards Leon logindemo.zip -
A different approach could be using Cloudflare. They have a free version tot test with. After the setup it is very easy to make all kinds of rules. You have all kind of options. With Cloudflare you can get a lot of benefits regarding security, speed/caching e.g.
-
We use https://www.neodynamic.com/products/printing/js-print-manager/articles/. Is the same solution like QZ.io
-
Google Charts in uniGUI (new version with Print method)
leons replied to Pep's topic in Components and Code Samples
Thx! -
Google Charts in uniGUI (new version with Print method)
leons replied to Pep's topic in Components and Code Samples
Hi Pep, The demo is broken.. -
Google Charts in uniGUI (new version with Print method)
leons replied to Pep's topic in Components and Code Samples
A very big thank you! -
Thx Hayri, it's working now!
-
Hi I need to add some javascript between the <head> tags. I cannot find the right way to do this. Is this somehow possible? regards Leon
-
UniGUIServerModuleHTTPCommand / Session ID. / OpenID Connect
leons replied to CastleSoft's topic in General
@alfrthanks for the example, for me it's working perfect! -
UniGUIServerModuleHTTPCommand / Session ID. / OpenID Connect
leons replied to CastleSoft's topic in General
I use this example Could it be that, after the redirect, a new session is opened? I had this issue during some testing with the great example from @stevewong -
Great themes!! l'm really happy with @GerhardV work!
-
Login form with a "Sign in with Google" button
leons replied to stevewong's topic in Sample Projects
+1 Big thanks to @stevewong Just tried the Azure demo. It's a good starting point. I played with this a while ago and implemented it with javascript. I'm no very familiar with javascript possibilities (addjs...) and unigui. So at some point I got stucked. In the demo there is an issue when you login again after an succesful login. Then the callback situation is different. -
Is the current Unigui version compatible or do we have to wait for an update?
-
Just out of curiosity, was it possible to have more then 3 levels? regards, Leon
-
Hi Sherzod, yes that was my intention. regards
-
Hi Sherzod Thx for your answer. Just to be shure, BlockedIPList disables access to the full application, not only the /server option. Regards Leon
-
Hi Is it possible to ignore the http;//xxapplicationxx/server based on an ip address? I want to allow the access to the server monitor from certain ipaddresses and ignore the other requests. regards leon
-
Hi Is this possible to integrate with UniMap as Custom Maplayer? Targomo creates a layer on Maps. https://targomo.com/developers/libraries/javascript/code_example/googlemaps_polygons/ Example HTML <!DOCTYPE html> <html> <head> <!-- Include google maps api --> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=__your_google_api_key__" type="text/javascript"></script> <!-- Include targomo googlemaps full build --> <script src="https://releases.targomo.com/googlemaps/latest-full.min.js" type="text/javascript"></script> <style> html, body { width: 100%; height: 100%; margin: 0; } #map { width: 100%; height: calc(100% - 15px); } #attribution { width: 100%; height: 15px; } #attribution>a { float: right; font-size: 11px; line-height: 15px; padding: 0px 5px; } </style> </head> <body> <!-- where the map will live --> <div id="map"></div> <div id="attribution"><a href='https://www.openstreetmap.org/copyright' target='_blank'>© OpenStreetMap contributors</a> <a href='https://targomo.com/developers/resources/attribution/' target='_blank'>© Targomo</a></div> <script> async function initMap() { // create targomo client const client = new tgm.TargomoClient('westcentraleurope', '__targomo_key_here__'); // Coordinates to center the map const myLatlng = new google.maps.LatLng(52.36, 4.88); // define the map const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROAD }); // init the first marker const marker = new google.maps.Marker({ position: myLatlng, map: map }); // polygons time rings const travelTimes = [300, 600, 900, 1200, 1500, 1800]; // you need to define some options for the polygon service const options = { travelType: 'bike', travelEdgeWeights: travelTimes, maxEdgeWeight: 1800, edgeWeight: 'time', serializer: 'json' }; // define the starting point const sources = [{ id: 0, lat: myLatlng.lat(), lng: myLatlng.lng() }]; // define the polygon overlay const layer = new tgm.googlemaps.TgmGoogleMapsPolygonOverlay(map, { strokeWidth: 20 }); // get the polygons const polygons = await client.polygons.fetch(sources, options); // calculate bounding box for polygons const bounds = polygons.getMaxBounds(); // add polygons to overlay layer.setData(polygons); // zoom to the polygon bounds map.fitBounds(new google.maps.LatLngBounds(bounds.southWest, bounds.northEast), 0); } google.maps.event.addDomListener(window, 'load', initMap); </script> </body> </html> Regards Leon