We zitten met de volgende uitdaging. We zijn bezig met het schrijven van een VoIP plugin voor SugarCRM. Hierbij kan het zijn dat mensen in meerdere tabs/windows zitten te werken. Als er een telefoontje binnenkomt dan verschijnt er in alle tabs/windows een popup. (zie screenshot). Als er dan op geklikt wordt dan moet die altijd weer naar de hoofd tab terugspringen en hier een nieuwe layer openen.
Voorbeeld: Je hebt meerdere tabs open hebt staan tab 1 tot met tab 5 in een browser. Als nu de telefoon gaat en de popup verschijnt in tab 4 en je klinkt op de popup in tab 4 dan moet die weer terug springen naar tab 1 en daar een nieuwe layer openenen. Als tab 1 afgesloten is dan moet die een nieuwe layer openen in tab 2. Het is ons niet gelukt om dit voor elkaar te krijgen.
De richtingen waarin we hebben gedacht zijn:
Ik heb net onderzoek gedaan naar de technisch haalbaarheid van een enkele mainwindow. Dit is gewoon niet haalbaar! Gezien de manier hoe browsers werken: deze geeft geen "close" signaal aan de code, dus ik kan niet afvangen dat de browser sluit... dus kan ik ook niet weten of het "mainwindow" bestaat. Werken met een cookie is ook niet haalbaar, gezien cookies (en sessievariabelen) "bestaan" voor en na de paginageneratie. Het setten is het probleem niet, alleen het lezen, gezien voor de tabs de cookie nooit heeft bestaan en deze dus niet kunnen ophalen (wederom een technische beperking aan alle browsers).
Al met al is het gewoon zonde tijd om tijd te besteden aan een technisch onhaalbaar geheel. Ik heb het hier nog eens besproken met Bas en Dragan en deze bevestigen het probleem.Het is alleen goed te doen mbh ActiveX elementen (IE only), plugins (FF only) en Chrome's source te customizen (tja Chrome only)... hiermee wordt Safari geheel uitgesloten...maar tja... niemand die dat gebruikt
Verder is het wel gelukt om de andere windows te laten sluiten als een telefoon beantwoord is, dit wordt gewoon bepaald bij de eerste keer schrijven.Hiervoor hoef ik natuurlijk niet te weten of het mainwindow bestaat of niet, want hij "heeft bestaan" bij het moment van opnemen, als je daarna besluit dat je 1 seconden na opnemen direct wil ophangen is dat de zorg van de gebruiker natuurlijk.
Iemand enig idee hoe we dit goed kunnen aanpakken?
Voorbeeld: Je hebt meerdere tabs open hebt staan tab 1 tot met tab 5 in een browser. Als nu de telefoon gaat en de popup verschijnt in tab 4 en je klinkt op de popup in tab 4 dan moet die weer terug springen naar tab 1 en daar een nieuwe layer openenen. Als tab 1 afgesloten is dan moet die een nieuwe layer openen in tab 2. Het is ons niet gelukt om dit voor elkaar te krijgen.
De richtingen waarin we hebben gedacht zijn:
Ik heb net onderzoek gedaan naar de technisch haalbaarheid van een enkele mainwindow. Dit is gewoon niet haalbaar! Gezien de manier hoe browsers werken: deze geeft geen "close" signaal aan de code, dus ik kan niet afvangen dat de browser sluit... dus kan ik ook niet weten of het "mainwindow" bestaat. Werken met een cookie is ook niet haalbaar, gezien cookies (en sessievariabelen) "bestaan" voor en na de paginageneratie. Het setten is het probleem niet, alleen het lezen, gezien voor de tabs de cookie nooit heeft bestaan en deze dus niet kunnen ophalen (wederom een technische beperking aan alle browsers).
Al met al is het gewoon zonde tijd om tijd te besteden aan een technisch onhaalbaar geheel. Ik heb het hier nog eens besproken met Bas en Dragan en deze bevestigen het probleem.Het is alleen goed te doen mbh ActiveX elementen (IE only), plugins (FF only) en Chrome's source te customizen (tja Chrome only)... hiermee wordt Safari geheel uitgesloten...maar tja... niemand die dat gebruikt
Verder is het wel gelukt om de andere windows te laten sluiten als een telefoon beantwoord is, dit wordt gewoon bepaald bij de eerste keer schrijven.Hiervoor hoef ik natuurlijk niet te weten of het mainwindow bestaat of niet, want hij "heeft bestaan" bij het moment van opnemen, als je daarna besluit dat je 1 seconden na opnemen direct wil ophangen is dat de zorg van de gebruiker natuurlijk.
Iemand enig idee hoe we dit goed kunnen aanpakken?