Jump to content
uniGUI Discussion Forums


Popular Content

Showing content with the highest reputation since 09/23/19 in Posts

  1. 16 points
    Hi Dominique, Thank you for your feedback. I value your input here and I will try to address your concerns below. I understand your disappointment regarding our current development speed and release times. As I've always said, the development speed for uniGUI has never been constant. It can be quite fast at times or slow at other times. However, it is obvious that we have failed to keep up with the release dates announced in the latest roadmap. Again, roadmaps are not contracts. They're announced to let people know what is about to come in near future. There can be deviations from the roadmaps. We've succeeded to complete up to 80% of items in the 2019 roadmap. Without doubt the remaining 20% are very important items, including infinite grids, Linux and responsiveness support. The "light releases" that you have mentioned above are being released for past two months, that is correct. However, it is not true for the whole 2019. Year 2019 as a whole, is/was a very productive year for uniGUI. In this year many bugs have been fixed and many new features have been added. Please don't be disappointed simply because for our bad performance which can be counted only for past couple of months. A release interval of every three weeks seems to be OK from my point of view as long as each release addresses enough issues. That said, this situation will not stay the same. We are committed to the 2019 roadmap. All of the announced features in the roadmap will be implemented unless we state otherwise or revise the roadmap. We don't have any intention to revise the current roadmap. That said, obviously the dates in the roadmap need to be revised and shifted for a few months. While your views on current status of uniGUI are fully valid and understandable, I don't understand why you need to mention about a competitor here. First of all, comparing uniGUI to TMS Web Core is comparing apples to oranges. What makes uniGUI powerful is its server side integration with Delphi. It allows a seamless integration between Sencha Ext JS and Delphi. It will be a futile effort to try to explain what uniGUI is and what it can do, because all of you are already quite familiar with uniGUI. On the other hand, client side only web frameworks such as TMS Web Core adopt a totally different approach. The pseudo Pascal language they use can mimic Delphi language, but the whole environment is far from being Delphi! Delphi is not only about Pascal language. Delphi is about Object Pascal, database integration, third party tools and data aware components. Can you tell me to what level TMS allows to integrate your app with databases? You have complained about issues with DBLookupCombo, but do you have something similar in TMS Web? OK. I don't like to criticize other frameworks. I believe that all attempts to create 3rd party tools for Delphi are priceless and I wish success for all of them. However, TMS Web Core doesn't seem to belong to Delphi eco-system other than it's Pascal language. Someone can move away from Delphi Eco-system for several reasons. That happens all the time for various reasons, but many also decide to stay with Delphi for other uncountable reasons. For same reasons people choose uniGUI over other tools. 1) Maintaining Delphi licenses may cost you a few thousands annually. It can be pricey, I agree! As I told above, as soon as you decide to leave Delphi behind, there are many alternatives out there. TMS Web would be only one of them. Question here is that are you ready to loose all those benefits brought to you by Delphi and its eco-system? Maintaing Delphi can be expensive, but it can also save you from hiring more developers which can save you much more! It is not really about uniGUI, but about Delphi and its surrounding eco-system. 2) Good, but where is the original product named Delphi for PHP now? From what I know it is no longer around. 3) Free is not always free, especially when your time costs money $$$! 4) OK sounds good, but doesn't mean that you'll be more productive. 5) It's nice feature. Something that we also consider for the future. 6) It's a bit tricky. We were able to show data at design time since uniGUI 0.1 directly from a db table. However, when it comes to REST services, you need to create/configure one beforehand to be able to consume it in a designer. In my view, Delphi's data handling capabilities are still matchless. 7) If your app is so simple that you don't need a server, yes. Otherwise, you need to run a server for your database back-end and etc. 8) It is partly true for client side only sessions. But even for a minimal database work you need to extend your sessions to the server side. Which will complicate things even further. Your REST server will know nothing about your sessions. You must implement your server side session logic. 9) How about Delphi's existing 3rd party components? Such as reporting tools? 10) Already resolved in Ext JS. 11) Yes, you should also list the down sides. I have not fully reviewed the product, but I can mention some points here: You will not be able to use Delphi, its rich language, 3rd party libs and its powerful data aware components. Your code will run in client's browser which means your business logic will be exposed to outside world. What if your app is very big? I've seen uniGUI apps with hundreds of forms and data modules. How can such giant apps be loaded and run on client side? Almost all business web apps rely on heavy data consumption and manipulation. In this case you need to develop your server side business logic separately in a different tool and integrate it with your client web app. Consider that you have too many data tables on your server side. For each table these tasks should be repeated. Needless to say how these tasks are easily done in Delphi. In uniGUI you develop one application. You don't need to care about server side separately. Getting data from a REST server can be easy, but posting back, modifying specific rows, running complex queries can make your life harder than you can imagine. If you need computing power in your app, you will be limited to client browser CPU power. Since it is not native code your code will never run as fast as native CPU code. Don't forget that your code is translated into java script. On the other hand, servers are equipped with plenty of CPU cores, computing power and gigabytes of RAM. Since code runs in client browser. Your debugging and logging capabilities will be limited compared to server side code. OK. I'm not an expert in Web Core or similar frameworks. I'm not here to discredit their product. I wish them success, as I'm sure many people will find this kind of web development useful. What I'm trying to say here is that Web Core or similar frameworks can not be a replacement for uniGUI because they are not in same category with uniGUI. You can save that money today by simply switching to ASP.NET. I am here, but you are correct that I was mainly silent on the forums. I'm sorry for this. But "this" is not the "same" thing... The shown demo is a very very simple app. Not even an app. We need to see something more complicated, comparable to the simplest business web app that you can develop with uniGUI. Let me state again, through 10 years of my uniGUI endeavor I have never said a single negative word about competitor frameworks. We are busy with our own tasks not other people's stuff! The only reason that I made above comparison was that you have mentioned it here. Back to our own reality. We will be back to our full development speed soon. To compensate our deviation from roadmap I will extend all subscription dates for at least two months. I will further extend those dates if needed in the future. If we have failed to address any urgent bug, long awaited issue or question please go here. We will analyze your request and if we find your request acceptable then it will go to top of our to do list. Best regards, Farshad
  2. 9 points
    I am working in Msoft LTD a software company, we provide professional solution to our clients ( enterprise and soho) in many fields: Cellular, AI, IT.... We use Unigui for our projecrs. Unigui is stable and just work out of the box and the big advantage is the Extjs js client-side. We don't search for other solutions because all we want can be found in unigui, it is true that some times we use js code to achieve somethings that doesn't included with Unigui but what's the problem doing it in client side in that way you become familiar with Extjs. We have developed more than 30 web apps and some of them are used by clients world wide. Unigui support (Mr. Farshad) is always a helping one and caring about his customers. Before Unigui we used Intraweb and TMS components for Intraweb and the result was not impressed in every browser a different result.
  3. 8 points
    Hi everyone, This post has two parts: A complaint about the development speed of uniGUI (and about the transparency about its progress) Alternative solutions like TMS Web Core Your complaint is valid because the progress in uniGUI development slowed down this year (good reasons or bad reasons, it doesn't matter). Also, the Roadmap 2019 was very ambitious and it was affected by the slower speed. You are right on this point. The second point is not right for most of the developers using uniGUI. Let me explain why (before I get lynched without jury or trial). The main goal of uniGUI is to bring the power of a Delphi desktop application to the web and doing so while preserving what makes Delphi one of the best RAD tools ever created. Some people could be smiling now but let me mention a few things we take for granted in Delphi: Visual form designer with property editors and under-the-hook links to data modules containing datasets, action lists, and all kinds of events (no need for pesky MVC,/MVVC, or any other over-complicated and over-engineered tools except pure and clean Delphi). Data grids that get linked at design time and just work. Clear separation of the user interface and the business logic using forms and data modules. Any common application requires a database and if you need a scalable application, you will need a good middle tier for connecting to it and managing the connections from multiple clients. This scenario was always a problem for client/server applications written in Delphi because each one of them used a data module for its connection, but so did every other client. Products like RemObjects DataAbstract were created for solving this issue. With uniGUI, you get your server which holds that data module and DataAbstract becomes a luxury you don't really need. As soon as HyperServer runs as a Server Farm, you will be able to handle as many clients as your server infrastructure can handle. On the other hand, you can have all your code in JavaScript and that doesn't mean that your application can scale, it is just that you will need to create your own server and manage your connections. I could expand my answer, but it should be enough. My last comment is that TMS Web Core is not the only "alternative". Even the old IntraWeb is trying to create a "revolution" by over-promising, under-delivering, and trying to reinvent the wheel. All these products are years behind what uniGUI currently offers. We want more, we want everything! But just try any of the alternatives and you will see the difference. As a parting gift. Last year I was requested to develop a relatively simple application but using IntraWeb plus CGDevTools. After a few days, I finally discovered that they didn't have modal forms and the tricky solution they offered only worked for simple pop up messages. It took me a couple of weeks to create a generic solution that worked "almost" like a modal form. Another week to discover that none of the dataset events were really supported by their grids and that my assumptions were wrong about being capable of working Delphi-style. In the end, I learned a lot of idiosyncrasies about the product, deliver my project, and became convinced that IW + CGDevTools (including jQuery) was a waste of time. Anyone is welcomed to repeat the experience... Sorry for the rant. David Izada Rodriguez (old, very old Delphi developer)
  4. 7 points
    Source: https://github.com/pleriche/FastMM5 Experience/opinions on FastMM5: https://en.delphipraxis.net/topic/2749-experienceopinions-on-fastmm5/ A very simple test of comparing an uniGUI app comipled with Native manager versus New FastMM5 manager : Native Manager: New FastMM5 Manager :
  5. 7 points
    Dear Friends, Here is a step by step way to use them. 1. Download the official kit from : https://fontawesome.com/download by choosing FreeForWeb 2. Copy this folder (uncompressed) into your files Folder 3. In your Unigui Project add this simple line on your ServerModule > CustomFiles : (Thx to GerhardV) <link rel="stylesheet" href="files/fontawesome-free-5.12.0-web/css/all.css"> (5.12 is the current release) 4. Put an UniLabel on Mainform and set its TextConversion to txtHTML 5. Use your FontAweSome like this : procedure TMainForm.UniFormCreate(Sender: TObject); begin Unilabel1.caption:='<i class="fa fa-dove" style=color:green></i>'; end; Where : fa is the Class Name and fa-dove is icon's Name. See more details in : https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use 6. Choose your icon from 1553 free icons : https://fontawesome.com/icons?d=gallery&s=solid&m=free 7. You can also, use them OnLine from public CDNs : by adding this simple line to the CustomFiles (Thx to Marlon) <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.css"> ___________ Enjoy OffLine_FontAwSome.zip
  6. 7 points
  7. 7 points
    Hi I am addressing this post to the MR.Farshad and to the entire UniGUI team. I have read quite a long posts here I will try to keep brief. Guys just don't pay attention to posts like this.There's no point. Keep your track. I think it is right. I have more than 25 years of experience. Mainly with Delphi and I can say that UniGUI is the best thing that has happened for Delphi community since 10-15 years And I'm ready to sign this statement with my both hands. Have a nice day.
  8. 6 points
    Using one grid and one query, the result:
  9. 6 points
    I would like to thank the entire FMSOFT team and Unigui community for their dedication and consistency in working under these conditions. May God protect you and your family and bless you
  10. 6 points
    Hi All, I have read posts in this topic, and i share my experience and my thought; I have license on Unigui and also on TMS web core (and many other library and components); Goal of TMS web Core is "openess and cross-platform", due to only javascript generated code; it's still young and in constant evolution, now also work in Visual Studio Code; Well, the question is: Why I must use it if I need a "only javascript + HTML5" approach to my applications? I have tested a lot of frameworks and, if I must "rewrite" my apps for the web without Delphi approach (I intend use of datasets, frames, etc...) and I need a separate REST data management I change totally direction and go with Devextreme and pure javascript, due to its UI power (or Infragistic, or Telerik, etc...), no more dependence from Delphi in UI and no more pascal; maybe the data server can be Delphi :-) The truth is that "the magic wand" is the visual IDE, creation wysiwyg of forms and manage of event and property at DESIGN TIME. Infact TMS Web core attract our attention ONLY because it have a visual editor, like the Delphi Edition. Without a visual editor, who use pascal code in Visual Studio code for generate javascript? Ok, It is another solution if I want to approach the standard web: client code + separate remote data management, so stateless and client centric; but I need to worry about sessions, timeouts, and other not visible "variables" of the project, and I need to expose too into client browser. Moreover performance is not the best; With Unigui I take about 2 seconds at runtime for show a form with 300 fields (I develope tax applications, Farshad Known...), 10 seconds with TMS, due that creation object in javascript is not the same of Delphi, the same when you need complex calculation of use of fast complex functions. Sure they optimize it in the future, so I think it is a good product. I will look at evolution. But we have also Unigui that follows Delphi way; visual forms, datasets, events, etc. ALL in ONE perfectly integrated. With a crazy productivity in time development ($$$). Indeed, what we want (and what is missing) is that Unigui have all that we see on modern richfull libraries like Devextreme (for ex.), on Client User Interface, no one dares to question on its Delphi server logic that is PERFECT. This because our customers see only UI, but the real treasure is in the exe (or dll) that manage all, and work worderfully with its session management. So, if I can have DBGrids that have the same power and richness of great Devextreme, very powerful Listview, Lookups, Charts, etcc... without write a lot of javascript client code (all Client features!!!) why I must change UNIGUI? Why I need to change Unigui if all I need is at 95% in Unigui components property and events, with only 5% of my custom javascript client code? (I naturaly don't speek on Delphi server code) Only for obtain a cross platform javascript product, with A LOT of extra work, I think; But now I need powerful Windows (based) applications; maybe linux release give me freedom on server side for cost, when available; Mac (server) is not a problem for me; So I think that Unigui with Equinox full features completed is a powerful tool for my need, thanks the powerful updated components. We need a more attention to forum requests, more responsiveness on bug and primarily on help request about ExtJs interaction and simple client features that Delphi programmer don't known (I don't have experience in ExtJs, I study it gradually on need). Most of times the problem is that we are locked on stupid or little request, easily solvable by an expert on forum or (better) with a new timely release (I am wating for a direct editing in a cell without press Enter, for ex.) but that prevent release of the entire project for months!! So I hope only more powerful components and more attention to user requests, in short time. When all Equinox features are available I Intend to substitute also desktop application with all-in-one project. Because I think that Unigui is, at present, the best web tools for Delphi programmers. Good job to Farshad. (Sorry for my very poor english :-) )
  11. 6 points
    Hi d.bernaert, I find your point very valid and very useful too, to get a sense of what is happening. But as the other colleagues put it here, when you are going to use TMS not everything is flowers. With uniGui, you can do wonders, I'm extremely happy with uniGUI, I can do everything with it, and what doesn't exist in uniGui I create, we recently received a big investiment in our company, and all thanks to uniGui. Now one thing that I find very useful on your part, there are some super important things to develop in uniGui that should be better followed, I believe Farshad must be designing something. Farshad you have done an amazing job so far, keep it up, focus on critical uniGui things, we need you.
  12. 6 points
    Hello, I'm attaching a simple test case, try... 1. To generate coords, I used an online tool: https://www.image-map.net/ 2. UniServerModule.CustomFiles: files/imageMap.css files/imageMap.js mapImage.rar
  13. 6 points
    Example of digital signature saving (image) for mobile. Great for sales systems where it works as a type of receipt document for goods delivery etc ... www.unigui.com.br-uniGUI DOES Digital Signature.rar
  14. 5 points
    A simple example "how to" capture image in desktop format with image feedback and save in temp's folder or load in you dataset field (see comments in code). In Mobile uses the unimFileUpload component. Won't work in IOs/IPhone if the server is not in a https:// connection. www.unigui.com.br-Capture Image.rar
  15. 5 points
    Hi everyone, In response to a request from a member I have put together a simple little project to help him/her get going with using Bootstrap with uniGui. I am re-posting it here with the hope that it might help others who are interested in the topic and don't know how to get going. I have called the project uniGui-Bootstrap Starter Project and provided a link below. It addresses issues like: - What you need to use Bootstrap - How to populate a Bootstrap page with uniGui data (e.g. table records). - How to handle Bootstrap page mouse-clicks. The project uses only one uniGui component, the uniURLFrame. Everything else is done in HTML + jQuery + CSS. I have inserted a bit of in-line documentation in main.pas and in both the HTML and Javascript files to help web-application newbies. I put this together in a very short time so apologize for any bugs or things I have overlooked. I personally think a lot of magic is possible with uniGui + Bootstrap, e.g. it is so simple to build applications that would work equally well on any device (with some caveats). I would welcome some feedback, e.g. how many members think we should have a new Browse Section call Bootstrap? Enjoy. Bootstrap-uniGui StarterProject.zip
  16. 5 points
    Hello! This example shows how to scan any supported 1D/2D code with ZXing javascript library from the device video camera... This is an approximate implementation and may need to improve the code The main scan implementation is taken from here: https://zxing-js.github.io/library/examples/multi-camera/ You also need to add the files: libeay32.dll, ssleay32.dll and pem files to the root directory... UniServerModule -> CustomFiles: files/zxing.min.js BarcodeScannerZxingJS.rar
  17. 5 points
    Hi I am using uniGui For almost 2 years , and I agree that it was the best thing that happened to Delphi in as long as I remember, I think Mr. Farshad and the FMSoft Team is doing a good job , there is always a room for improvement and it can be faster but so far so good. I have finished my first project and it is very stable and working fine for 3 hotels so far no complains whatsoever. everyone is missing some feature and waiting for it to be released for example I was waiting for : 1- the Scheduler Quasar (2.0.0) 2- the UniDBgrid able to type without mouse click or press Enter I hope you all the best and may next year be better roadmap for FMSoft Regards
  18. 5 points
    As you may have noticed it is not possible to change your page's FavIcon (ServerModule.FavIcon) at runtime without a page reload. This example changes the FavIcon and is great for notification as it occurs on sites like Twitter, FaceBook, etc ... JS has been improved and now avoids caching problems on change and supports use of PNG on the fly. And as a bonus, how to change the page title. Have a good time Visit http://www.unigui.com.br for project packs, exclusive material, demos, examples, books, and our full-fledged RDP course. Several other examples also available for free from our official website. ----------------------------------------------------------------------------------------- Como você pode ter percebido não é possivel mudar o FavIcon de sua página (ServerModule.FavIcon) em tempo de execução sem um reload da página. Este exemplo mudar o FavIcon e é ótimo para notificação como ocorre em sites como Twitter, FaceBook, etc... O JS foi melhorado e agora evita problemas de cache na mudança e suporta uso d PNG na hora. E como bonus, como mudar o titulo da página. Divirta-se www.unigui.com.br-uniGUIDoesFavIcon.rar
  19. 4 points
    Hello everybody, It should be noted that Unigui has today reached great maturity. Many very useful properties are included, but they remain unknown and not obvious. Today, it is almost impossible to remember everything. This is why I appeal to all the members of our dear community to make small very simple and useful samples which will serve as references (Memory Help). Here is for my part, this little example for CSS. it follows from the forum (many thanks to Sherzod alias DD the Maestro). I count on you to post more ... Thank you Custom_CSS.zip
  20. 4 points
    It's a very hard time for everyone all over the world, fighting something you can not see is very hard. hope everyone is well
  21. 4 points
    Dear Unigueers, Here is a Demo to type Unicode characters, swithing between different langages. Not talking about internationalization components here : Juste a memo where users can write text according to their language. __________________________________________ A big thx to Sherzod (Unigui FMSoft Team). @Farshad : you can add this in Unigui DEMO (i think it's useful). Best regards Mohamed. UNICODE.zip
  22. 4 points
    Ура, 13.01 я получаю новое обновление, и что я вижу 1) Две новые темы. Новые темы, Карл, я не знаю куда притулить старые, а тут две новые. Дорожная карта рушится, но у нас есть две новые темы. 2) Combobox mode, What is this? where is example for use combobox mode ? Нет ответа 3) Values will be used to store items, изумительно, что я должен делать по этому поводу? Стенать, прыгать от счастья. Фаршад за пять лет работы не смог передать id как Value в комбобоксы, особенно в лукапы, я выкручиваюсь как могу, но тревожить его не смею, он же темы разрабатывает. Фсё, все, за месяц работы ДВЕ ТЕМЫ, и неизвестно что. Да, баги исправляются, но добавляются новые, я почти год прошу исправить ошибку с UrlPath и Mobile, нет ответа. Я не вижу исправления и чужих добавленных ошибок , и прогресса по ним. У всех есть возможность это видеть, у Фаршада нет. Что мы видим за последний год, потерянные полгода, невыполненные обещания. Я разочарован такой работой. З.Ы. Накипело З.З.Ы Я никогда не думал, что это скажу, но поддержите лайком, если вы со мной согласны, или контраргументируйте. Спасибо.
  23. 4 points
    Thank you for your comment. We will try to deserve positive comments and take required lessons from critical comments in this thread. PS: A new roadmap will be published today.
  24. 4 points
    That doesnt impress me. Have u ever tried to make a database event driven website with TMS? Forget it. Data access will require another strange TMS tools and strange TMS REST services. With unigui it just works. I dont have to implement a rest layer and can use standard FireDac & standard MS SQLServer. A powerful combination. Dont get me wrong. TMS is worth to keep it in mind. But its much too early to consider it as a serious alternative.
  25. 4 points
    uniGUI DOES SESSION TIMEOUT PROPERLY There is nothing worst than lazy people using your program and keeping it open taking resources (DB access, memory, CPU time) and not paying homage to your wonderful work , hey ? They just leave there paying no attention whatsoever !!! I hate those lazy Btds people ! So, what about a solution to detect idle UI time at browser's side and alerts the user showing the real time left to close the session ? "No problemo, I got you back boy !!!" Seriously, when you have 50-100 concurrent sessions and not planning to expand to Hyper Server, it may cripple yours application performance very deeply and quickly. That's no joke for real developers ! So, kick out the lazy ones doing nothing ! Solution https://stackoverflow.com/questions/13246378/detecting-user-inactivity-over-a-browser-purely-through-javascript This project is based in the code above and I made some tweaks to work properly and warn the user to put, that lazy bstd, to work again or leave that marvelous piece of code of yours alone. I found a better code some days latter but it don't seams to make any big difference to the JS Snippet used here. I'm planning to a latter update in the users area of unigui.com.br. For now it's what I got working and tested. Instructions 1- Put the MainForm Script in your project. 2- In MainForm OnAjaxRequest past the code provided here. Change the messages and other details. 3- As you can see, there are two Events: one to trigger at a 1 minute idle time (_idle_timeout = no mouse ou keyboard activities) and starts to show the time remaining based in uniServerModule.SessionTimeout, to TimeOut, of course !. And teh other to show the busy mode (_busy). So when the session expires, at least you warned the user before and have a trigger point to save data and close any pending task. You can also flag "work mode" and and "idle mode" showing proper remaining session time. Have fun... and have a good one. Here is a second JS Code Snippet that works better and I will replace later. Stay tuned ! (or clicking...) var IDLE_TIMEOUT = 60; //seconds var _localStorageKey = 'global_countdown_last_reset_timestamp'; var _idleSecondsTimer = null; var _lastResetTimeStamp = (new Date()).getTime(); var _localStorage = null; AttachEvent(document, 'click', ResetTime); AttachEvent(document, 'mousemove', ResetTime); AttachEvent(document, 'keypress', ResetTime); AttachEvent(window, 'load', ResetTime); try { _localStorage = window.localStorage; } catch (ex) { } _idleSecondsTimer = window.setInterval(CheckIdleTime, 1000); function GetLastResetTimeStamp() { var lastResetTimeStamp = 0; if (_localStorage) { lastResetTimeStamp = parseInt(_localStorage[_localStorageKey], 10); if (isNaN(lastResetTimeStamp) || lastResetTimeStamp < 0) lastResetTimeStamp = (new Date()).getTime(); } else { lastResetTimeStamp = _lastResetTimeStamp; } return lastResetTimeStamp; } function SetLastResetTimeStamp(timeStamp) { if (_localStorage) { _localStorage[_localStorageKey] = timeStamp; } else { _lastResetTimeStamp = timeStamp; } } function ResetTime() { SetLastResetTimeStamp((new Date()).getTime()); } function AttachEvent(element, eventName, eventHandler) { if (element.addEventListener) { element.addEventListener(eventName, eventHandler, false); return true; } else if (element.attachEvent) { element.attachEvent('on' + eventName, eventHandler); return true; } else { //nothing to do, browser too old or non standard anyway return false; } } function WriteProgress(msg) { var oPanel = document.getElementById("SecondsUntilExpire"); if (oPanel) oPanel.innerHTML = msg; else if (console) console.log(msg); } function CheckIdleTime() { var currentTimeStamp = (new Date()).getTime(); var lastResetTimeStamp = GetLastResetTimeStamp(); var secondsDiff = Math.floor((currentTimeStamp - lastResetTimeStamp) / 1000); if (secondsDiff <= 0) { ResetTime(); secondsDiff = 0; } WriteProgress((IDLE_TIMEOUT - secondsDiff) + ""); if (secondsDiff >= IDLE_TIMEOUT) { window.clearInterval(_idleSecondsTimer); ResetTime(); alert("Time expired!"); document.location.href = "logout.html"; } } uniGUI DOES SESSION TIMEOUT PROPERLY.rar