Ralf Becker
178bca7f7a
fix redirect loop initiated eg. by saving a mail, caused by document.location=url triggering etemplate unload handler and destroying et2 request, identical redirect url detected by jdots framework causes refresh via nextmatch --> next redirect
2014-10-08 20:02:59 +00:00
Nathan Gray
aa6c36ba3f
Work on app-entry widgets (contact-value)
2014-09-30 21:37:45 +00:00
Hadi Nategh
427956518e
* Etemplate/widget: Introduce video widget.
...
- Add ability to play video media/stream
2014-08-19 10:10:09 +00:00
Hadi Nategh
161734f941
Handle validation_error if widget is children of a tabbox.
...
-Fix widget with validation error does not activate its related tab.
2014-08-18 12:05:04 +00:00
Nathan Gray
9851a8a6ef
Trigger a clear event on the etemplate DOMContainer when the etemplate is cleared, so app code can listen for it.
...
This allows a 'et2_unload' sort of processing.
2014-07-28 20:51:49 +00:00
Hadi Nategh
296530b320
Fix etemplate2 submit() method for those buttons which they do not have nested ids
2014-07-07 13:25:20 +00:00
Nathan Gray
34ed2d7290
- Fix missing change handler on some nm header templates
...
- Fix improper usage of jQuery.when() (it doesn't take an array)
- Fix missing filter detection to not break with multiple values
2014-05-26 22:27:57 +00:00
Ralf Becker
30ffb38bd6
reverted r47030 as it breaks server-side nextmatch actions
...
nextmatch values were in root instead of namespaced "nm", causing all serverside actions (eg. move one contact into an other addressbook) to fail, because validation did not find values placed clientside outside valid namespace
2014-05-23 16:00:17 +00:00
Ralf Becker
24ee68bdf2
fixed infinit loop for apps running in iframe by refactoring frameworked templates work with client-side api:
...
- moved shared etemplate2 part into static etemplate2.app_refresh() method
- egw_message.refresh() calls framework.refresh() which can return a DOMwindow for egw.refresh() to work on, instead of calling egw.refresh recursive
2014-05-23 08:21:11 +00:00
Ralf Becker
893091e286
- new app.js observer method which receives update notifications from all apps
...
- app.infolog.observer triggering refresh of InfoLog list, when a timesheet get stored
- moved code of already deprecated egw_refresh() to egw.refresh() and changed etemplate to use that
- framework from jdots/pixelegg template no longer overwrites window.egw_refresh, but egw.refresh calls framework.refresh for regular refreshs if framework is present
2014-05-22 15:29:14 +00:00
Nathan Gray
ccdb54a366
Gantt chart progress
2014-05-21 22:11:36 +00:00
Nathan Gray
d80ef84012
Remove div from console, it's no longer useful
2014-05-07 16:35:51 +00:00
Nathan Gray
c4f56f2c3b
New dhtmlxGantt library, and etemplate2 widget to use it (work in progress)
2014-04-16 19:47:29 +00:00
Ralf Becker
ce3c5c897f
stop server-side validation errors, if submit was with no_validation
2014-04-02 19:30:33 +00:00
Nathan Gray
734b5d02f2
Add a parameter for submit() to skip the client-side widget validation
2014-04-02 18:49:43 +00:00
Nathan Gray
210dea829b
Avoid big scary error if server tries to assign on an unloaded etemplate.
...
Log a little friendly warning instead.
2014-04-01 21:42:06 +00:00
Ralf Becker
ac18b6cc8d
changed et2_core_inheritance.js to implement ClassWithAttributes extending Class from egw_inheritance and changed et2 objects to use ClassWithAttributes when required (also fixed lots of IDE warnings / added docu)
2014-03-20 09:40:37 +00:00
Ralf Becker
db1244dc50
put favorites, counter and new header_row into one container (header_row_right) to float them all to the right, also removed lots of unnecessary css and fixed alignment
2014-03-12 09:47:40 +00:00
Nathan Gray
a1ae0bdb83
Add new method etemplate2.getById() to get etemplate object by DOM ID of container node
2014-03-11 15:28:18 +00:00
Ralf Becker
a021f998e0
fixed template was not prepending parent/top-level name, but search for first loaded template which ends in its name eg. "rows" used in "mail.sieve.index" picked "addressbook.index.rows" instead of "mail.sieve.index.rows"
2014-02-25 13:04:28 +00:00
Nathan Gray
1c4b473d6f
Make template cache static class level variable, so they're always available & persist for session
2014-02-19 22:30:59 +00:00
Nathan Gray
ac653d6c9a
Set top level owner to top level widget.
...
Fixes error if read-only expansion runs off the top of the tree, and no owner found.
2014-02-19 00:28:38 +00:00
Ralf Becker
d01d5119ca
calling app[appname].et2_ready(et2,name) with template name as second parameter
2014-02-17 14:58:20 +00:00
Ralf Becker
61e98b8149
default refresh method for jdots, if no nextmatch available
2014-02-14 15:01:45 +00:00
Ralf Becker
4dab9cba88
if content of template contains data for key "msg", call egw.message() with it and remove it from content
2014-02-06 17:27:01 +00:00
Nathan Gray
66cddfbd61
If thrown does not have a message attribute, use what was thrown instead.
...
Fixes 'undefined' error message in log when using throw "error"
2014-02-05 17:19:18 +00:00
Ralf Becker
4f30210b03
indention
2014-01-24 09:27:52 +00:00
Ralf Becker
0c2d8f87b9
only bind session/request destroy handler, if we have an etemplate_exec_id. Not the case for pure client-side call like from et2_dialog
2014-01-17 17:51:17 +00:00
Ralf Becker
a0213fd5a3
now calling our session_destroy also for etemplate2.clear(), this way we get also unloads from frameset templates
2014-01-16 12:52:25 +00:00
Ralf Becker
205794f4a7
notify server about closed windows, so we can destroy no longer eT needed session/requests and so keep cache small
2014-01-16 12:13:16 +00:00
Nathan Gray
4eea706aa0
- Return true after window close in et2_load, avoids 'Error while parsing et2_load response'
...
- Catch trying to set a widget attribute with no set_...() function via JSON assign and warn instead of generic error
2014-01-13 15:07:03 +00:00
Nathan Gray
71f0fcdda0
Implement refresh type 'update' to _only_ update the data of a row - sorting is not considered, so make sure to use 'edit' if sorting might be affected.
2014-01-13 09:40:23 +00:00
Nathan Gray
26b8cae767
Avoid removing all event listeners if the etemplate has no unique ID (happens for dialogs)
2014-01-11 11:42:23 +00:00
Nathan Gray
3b57659536
Defer binding to window resize until after loading is finished.
2014-01-10 15:54:35 +00:00
Nathan Gray
9b4cd3e306
Some more profiling helpers - timeline timestamp at start of rendering, consistently measure to end of app callback
2014-01-10 14:27:21 +00:00
Nathan Gray
f1558bcffb
Fix missing bracket
2014-01-09 16:53:42 +00:00
Nathan Gray
c082dec331
Profiling - Automatically profile etemplate2 loading in Chrome
2014-01-09 16:44:34 +00:00
Nathan Gray
13572c472a
Profiling - Add some timestamps for timeline
2014-01-09 13:38:32 +00:00
Ralf Becker
90edb55ec5
add async include and et2 render times to page-generation-times shown
2014-01-09 12:20:13 +00:00
Nathan Gray
9009ef44bb
Pass current app to egw_app_header() so it can set header for correct app. Fixes sometimes wrong app header shown.
2013-12-23 16:13:40 +00:00
Nathan Gray
a1e5783da6
Make sure data is set before trying to look inside it.
2013-12-16 18:11:53 +00:00
Ralf Becker
374312be3c
need to set app_header before message, as app_header is (temp.) replaced by it
2013-12-13 01:15:41 +00:00
Nathan Gray
23fd7066bf
Add etemplate into indexed list before starting the load process. This way anything looking for it can find it, even if it's not fully loaded (and bind to the load event if needed)
2013-12-12 23:37:12 +00:00
Ralf Becker
9c3c077314
fixed not updated sidebox in calendar listview
2013-12-12 23:32:30 +00:00
Nathan Gray
698efb3039
Better handling of submitting with passed button to properly process the button ID into the value array. Fixes the case where ID like 'button[delete]', previously wound up in button.button[delete].
2013-12-04 00:15:50 +00:00
Nathan Gray
4c1c710ba9
Implement display of server-side validation errors
2013-12-02 20:35:32 +00:00
Nathan Gray
092da6a706
Use a fallback menuaction that won't give a permission error
2013-11-26 22:34:32 +00:00
Nathan Gray
ca92b22daf
Downgrade error about overwriting value, id exists twice to warning.
...
Stop warning about duplicate IDs in children of header bar, those values are part of nextmatch.
2013-11-08 16:28:07 +00:00
Nathan Gray
ba9782138c
Check for app_callback before trying to call it
2013-11-07 23:21:14 +00:00
Ralf Becker
6d226a7921
split constructor function and place of instanciation for app.js objects: app[appname] = new app.classes[appname]();
2013-11-04 20:54:23 +00:00