Jump to content

leons

uniGUI Subscriber
  • Posts

    55
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by leons

  1. Hi Sherzod, In the VCL app it's working. regards Leon
  2. 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
  3. 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
  4. 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
  5. 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.
  6. We use https://www.neodynamic.com/products/printing/js-print-manager/articles/. Is the same solution like QZ.io
  7. Thx Hayri, it's working now!
  8. 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
  9. @alfrthanks for the example, for me it's working perfect!
  10. 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
  11. Great themes!! l'm really happy with @GerhardV work!
  12. Hi Wicket, did you finisch the fabric.js solution?
  13. +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.
  14. Also as a start... http://forums.unigui.com/index.php?/topic/10974-unigui-with-saml-20-single-sign-on/
  15. Is the current Unigui version compatible or do we have to wait for an update?
  16. Just out of curiosity, was it possible to have more then 3 levels? regards, Leon
  17. Hi Sherzod Thx for your answer. Just to be shure, BlockedIPList disables access to the full application, not only the /server option. Regards Leon
  18. 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
  19. leons

    UniMap layer

    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'>&copy; OpenStreetMap contributors</a> <a href='https://targomo.com/developers/resources/attribution/' target='_blank'>&copy; 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
×
×
  • Create New...