Re: Can't add or edit events in dynamic view Horde webmail 5.2.2, Kronolith 4.2.2
Eric Van Bocxlaer <[email protected]>
| Newsgroups | gmane.comp.horde.kronolith |
|---|---|
| Message-ID | <20141030191048.Horde.CcmQge90LAsUt7cm6V40eQ8@aphophis> |
Citeren Jan Schneider <[email protected]>: > Zitat von Eric Van Bocxlaer <[email protected]>: > >> Citeren Eric Van Bocxlaer <[email protected]>: >> >>> Citeren Jan Schneider <[email protected]>: >>> >>>> Zitat von Eric Van Bocxlaer <[email protected]>: >>>> >>>>> Citeren Jan Schneider <[email protected]>: >>>>> >>>>>> Zitat von Eric Van Bocxlaer <[email protected]>: >>>>>> >>>>>>>> Zitat von Eric Van Bocxlaer <[email protected]>: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> For some time now I can't edit or add events in the dynamic view. No >>>>>>>>> problem in editing or adding in the simple view! >>>>>>>>> >>>>>>>>> So I did some debug in FireBug and the reason is a undefined >>>>>>>>> 'date_format' in the javascript file kronolith.js, function getDate: >>>>>>>>> getDate: function(what) { >>>>>>>>> var dateElm, timeElm, date, time; >>>>>>>>> if (what == 'start') { >>>>>>>>> dateElm = 'kronolithEventStartDate'; >>>>>>>>> timeElm = 'kronolithEventStartTime'; >>>>>>>>> } else { >>>>>>>>> dateElm = 'kronolithEventEndDate'; >>>>>>>>> timeElm = 'kronolithEventEndTime'; >>>>>>>>> } >>>>>>>>> date = Date.parseExact($F(dateElm), Kronolith.conf.date_format) >>>>>>>>> || Date.parse($F(dateElm)); >>>>>>>>> if (date) { >>>>>>>>> time = Date.parseExact($F(timeElm), >>>>>>>>> Kronolith.conf.time_format); >>>>>>>>> if (!time) { >>>>>>>>> time = Date.parse($F(timeElm)); >>>>>>>>> } >>>>>>>>> if (time) { >>>>>>>>> date.setHours(time.getHours()); >>>>>>>>> date.setMinutes(time.getMinutes()); >>>>>>>>> } >>>>>>>>> } >>>>>>>>> return date; >>>>>>>>> }, >>>>>>>>> >>>>>>>>> Kronolith.conf.date_format is for some reason undefined. >>>>>>>>> When I look via FireBug into the object 'Kronolith' I see two child >>>>>>>>> objects 'conf' and 'text'. In the child object 'conf' I see a >>>>>>>>> defined 'time_format', but no 'date_format'. >>>>>>>>> When I define via FireBug a 'date_format', everything is working, I >>>>>>>>> can add and edit events in the dynamic view! >>>>>>>>> >>>>>>>>> I searched but did not (yet) found where the configuration >>>>>>>>> information is read and putted in the 'Kronolith' object? >>>>>>>>> Can someone guid me to find the correct code? >>>>>>>> >>>>>>>> See below, it's probably the same problem, because the date format >>>>>>>> depends on the current locale. >>>>>>>> >>>>>>>>> During my search I verified the global settings of Horde for the >>>>>>>>> date_format, date_format_mini and the time_format. There are all set! >>>>>>>>> Some remark though, when I take these lists I can see entries, but >>>>>>>>> also some empty lines. The filled in lines and the empty lines are >>>>>>>>> corresponding with the enum array in prefs.php. >>>>>>>>> Example date_format list: >>>>>>>>> 09/20/14 >>>>>>>>> 2014-09-20 >>>>>>>>> 20/09/2014 >>>>>>>>> Saturday 20 September 2014 >>>>>>>>> Saturday, September 20, 2014 >>>>>>>>> Saturday, 20. September 2014 >>>>>>>>> Saturday, 20 September 2014 >>>>>>>>> empty line >>>>>>>>> empty line >>>>>>>>> empty line >>>>>>>>> empty line >>>>>>>>> empty line >>>>>>>>> Sat 20 Sep 2014 >>>>>>>>> Sat 09/20/14 >>>>>>>>> Sat 2014-09-20 >>>>>>>>> The rest of the lines are empty >>>>>>>>> >>>>>>>>> Why these empty lines and why the weekdays/months are not in dutch? >>>>>>>>> Everything else is translated but not the weekdays and months? >>>>>>>>> >>>>>>>>> Regards, >>>>>>>> >>>>>>>> Some of those entries depend on your current locale. If you don't see >>>>>>>> expected date strings, make sure you have the system locales for your >>>>>>>> current language installed. >>>>>>>> >>>>>>> >>>>>>> I verified the system locale on my server, it was correctly set to >>>>>>> 'Dutch (Belgium)' the same as my selected language when I log in >>>>>>> Horde webmail and the same as the selected language in the horde >>>>>>> global settings. >>>>>> >>>>>> It doesn't matter what you set the locale to, if the locale isn't >>>>>> installed. >>>>>> >>>>>>> I found a file Registry.php, function setLanguage. I added some php >>>>>>> error logging and found that the language >>>>>>> returned from this function is 'nl_BE'. >>>>>> >>>>>> Then this is the preferred language set by your browser, but it's not >>>>>> supported by Horde and maybe not by your system either (see above). >>>>>> I'm not even sure how the language got so far in the code, other than >>>>>> on the login screen, because logging in should only be possible with >>>>>> one of the languages we actually support. >>>>>> >>>>>>> Where can I start to debug this thing? >>>>>>> The server is a windows system running apache24 and horde webmail >>>>>>> installed via pear. >>>>>> >>>>>> Well, that's an important information too. Windows' locale support >>>>>> isn't actually very good, so some date formats may not be available to >>>>>> you at all. And frankly, I haven't tested a recent Horde version on a >>>>>> Windows system in years, so I'm not even sure if it still works. >>>>>> >>>>> >>>>> I'm using without any problem horde on windows now for years. >>>>> Sometimes after an upgrade there is some little problem, but I >>>>> learned to wait and allmost the problem is gone with a next upgrade. >>>>> Sometimes it is blocking and then I use RoundCube as emergency >>>>> system ;-) >>>>> The problem described above is now already for some time in the >>>>> system and upgrades are not fixing the problem. >>>>> So I decided to do some debugging. >>>>> >>>>> There is no problem in the static simple view, it only appears in >>>>> the dynamic view. >>>>> So I don't understand: don't you use 'locales' in the static simple view? >>>> >>>> The difference is we don't use the date format from the preferences in >>>> dynamic view, because we must be able to re-parse the entered dates >>>> from free-text fields. We use the default date format of the current >>>> locale in dynamic view. >>>> >>>>> Can you point me to the code where the object >>>>> 'Kronolith.conf.date_format' in the javascript file Kronolith.js is >>>>> initialized. >>>>> If I know where to debug I can maybe repair the problem apparently >>>>> appearing only on Windows systems and only in the dynamic view. >>>> >>>> kronolith/lib/Ajax.php, Kronolith_Ajax::_addBaseVars(). >>> >>> Like said, I'm running horde with apache24 on a windows server. >>> That horde isn't tested under windows should be mentionned on the >>> www.horde.org website so that users are warned! >>> >>> I found two problems under windows causing the above described problems: >>> 1. the php function nl_langinfo is used, but this function isn't >>> implemented on windows platforms >>> 2. the php function setlocale is used, but the locale strings used are >>> not the same on windows platforms >>> >>> For the first problem a workaround exists by simulating the missing >>> function. Paul Kemper did write a 'windows' nl_langinfo function. This >>> function is too long to include here, but I can send it if requested. >>> There was still a bug in his function for the D_FMT locale and >>> strftime parameter '%e'. The latter isn't implemented on windows, so >>> it must be replaced by '%#d'. >>> And because of this the function translateFormat in Datejs.php >>> (C:\php\pear\Horde\Core\Script\Package\Datejs.php) must be adapted for >>> the '%e' translation, no leading space on windows: >>> /** >>> * Translates date format strings from strftime to datejs. >>> * >>> * @param string $format A date format string in strftime syntax. >>> * >>> * @return string The date format string in datejs format. >>> */ >>> static public function translateFormat($format) >>> { >>> $from = array('%e', '%-d', '%d', '%a', '%A', '%-m', '%m', >>> '%h', '%b', '%B', '%y', '%Y'); >>> $to = array('d', 'd', 'dd', 'ddd', 'dddd', 'M', 'MM', 'MMM', >>> 'MMM', 'MMMM', 'yy', 'yyyy'); >>> if (defined('D_FMT')) { >>> $from[] = '%x'; >>> $to[] = str_replace($from, $to, Horde_Nls::getLangInfo(D_FMT)); >>> } >>> return str_replace($from, $to, $format); >>> } >>> >>> Add the simulated function nl_langinfo as an include in the Nls.php >>> file (C:\php\pear\Horde\Nls.php): >>> include( 'WindowsNl_LangInfo.php' ); >>> >>> For the second problem, I first created a new nls.local.php >>> configuration file (C:\Apache24\htdocs\webmail\config\nls.local.php) >>> with the windows locales strings: >>> 'usa_usa' => '‭English (American)', >>> 'uk_uk' => '‭English (British)', >>> 'canadian_can' => '‭English (Canadian)', >>> 'fra_fra' => 'Français', >>> 'nld_nld' => 'Nederlands' >>> And then modified the function setLanguage in Registry.php >>> (C:\php\pear\Horde\Registry.php) to not include 'UTF-8', also not >>> supported on each windows platform. >>> But that didn't work, I'm missing something I think. >>> If I hard code the wanted language 'nld_nld' in the function >>> setLanguage, then it works. Of course the user can't change the >>> language anymore. That's not a problem for me, but as generic >>> solution, this can't be coded like this! >>> >>> With all these changes the agenda is now working in the wanted >>> language, I can now add events, delete and change events. >>> But it is not future proof, the next upgrade of horde will delete the >>> changes and I'm back at the beginning. >>> The key question is, will horde support an installation on windows in >>> the future? For this to happen, the code must be made cross-platform... >>> >>> Regards, >>> Eric >> >> I didn't receive any reaction about above questions. >> Will windows support be added or not? >> If not, it should be mentionned in the documentation to pinpoint >> people, working with window platforms, to the existing problems. >> Regards, >> >> >> >> -- >> kronolith mailing list >> Frequently Asked Questions: http://wiki.horde.org/FAQ >> To unsubscribe, mail: [email protected] > > This takes some time to consider, and I don't even have a working > Windows server system at the moment to test this myself. > Since this only affects the dynamic view though, I wouldn't say that > we don't support Windows. Support may just be limited to the basic and > mobile view. > > -- > Jan Schneider > The Horde Project > http://www.horde.org/ > https://www.facebook.com/hordeproject Ok, if it will be mentionned in the documentation, no problem. I'm happy to see that support for the dynamic view will be considered. I will encode a ticket in the https://bugs.horde.org/ to be able to follow up more easily. Regards, -- kronolith mailing list Frequently Asked Questions: http://wiki.horde.org/FAQ To unsubscribe, mail: [email protected]