Commit Graph

3503 Commits

Author SHA1 Message Date
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
b31befc23b fixed server-side validation of url-email and taglist-email:
- PHP does NOT allow \x00 in regular expression
- added PHP /u modifier for utf-8
- using now regular expression including start- / end-delemiter and modifiers, to have same regular expression (but above 2 exeptions) in PHP and javascript
2014-01-17 17:26:22 +00:00
Ralf Becker
da60fe1228 To work around a bug in action system we call global actionManger of an application NOT just appname, but prefix it with "__" 2014-01-17 16:18:12 +00:00
Hadi Nategh
bb07598beb Add set_href function to image widget,which wraps the image with <a> tag and binds a click handler to it 2014-01-17 15:58:58 +00:00
Nathan Gray
af6b513a54 Wrap search box & button in their own div 2014-01-17 13:35:13 +00:00
Nathan Gray
b094225f7a Wrap action/button groups each in their own span 2014-01-17 13:24:18 +00:00
Nathan Gray
1933389ae2 Fix some more splitter strange behaviour
- Add ignore zone, undock won't go to a position < 20px from edge. In that case, it undocks to 50%
 - Work around deferred layout (Chrome & Firefox) which caused wrong DOMNode height, which broke nm resizing
2014-01-17 12:43:14 +00:00
Klaus Leithoff
387035f76d new translations from translation.stylite.de 2014-01-17 10:48:19 +00:00
Ralf Becker
0b994ee837 new regexp to validate email addresses plus examples what it should validate and what not 2014-01-16 18:10:06 +00:00
Ralf Becker
117a2f5f6b mark mailing-lists in taglist responses with "mailinglist" css class, style it and give it a title "mailinglist" to differenciate from contacts/regular email addresses 2014-01-16 15:58:27 +00:00
Ralf Becker
4b789c932d allow "." in front-part of rfc822 email, eg. "1. company <info@first-company.com>" 2014-01-16 15:14:45 +00:00
Nathan Gray
05f0e486e3 Use long task UI to merge contacts into email templates 2014-01-16 14:05:07 +00:00
Nathan Gray
6b86050e4e UI for long running tasks that can be split
- Common dialog in et2_dialog
- nextmatch action that runs a menuaction for each selected row
2014-01-16 13:54:19 +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
4ff7a0bb31 Allow bigger progress bar 2014-01-16 10:44:04 +00:00
Ralf Becker
7cc91b0046 new&modified images from pixelegg 2014-01-15 18:04:11 +00:00
Ralf Becker
b56175a0f4 new default eTemplate request storate in EGroupware cache with an expiration time of 4 hours.
Benefit over old default is, that we get a short etemplate_exec_id giving better performance for ajax requests.
Drawback is currently poor garbadge collection only removing requests not used in 4 hours or which call egw_framework::window_close on server-side.
We can improve garbadge-collection by binding to window on(before)unload sending a (synchronious) request to server to remove concerned eT2 request.
2014-01-15 16:46:16 +00:00
Nathan Gray
f9c2c73432 Get merging contact into mail template file working 2014-01-15 16:29:30 +00:00
Nathan Gray
63b92d2939 More careful split of parameters, fixes losing part of last parameter if it had '-' in it 2014-01-15 15:05:10 +00:00
Ralf Becker
6544d38e2c storing (not used) cancel or non-cancel button pressed information now in static class-variable instead of request, to avoid modifying request and causing a save of it 2014-01-15 13:46:53 +00:00
Klaus Leithoff
60bb090278 pixelegg changes from wednesday, new/changed images and styles 2014-01-15 13:46:14 +00:00
Ralf Becker
cb8b279e94 fixed image widget uses index.php for not found images 2014-01-14 17:08:41 +00:00
Ralf Becker
629bd6f2ee added pixelegg/less/svg.css stylesheet and id reflecting their name to all svn image 2014-01-14 16:14:51 +00:00
Klaus Leithoff
e5acab5fb9 pixelegg changes from tuesday 2014-01-14 16:04:20 +00:00
Nathan Gray
959a6bd588 Increase size of column resize handle 2014-01-14 14:52:21 +00:00
Nathan Gray
29868662c1 Re-set whitespace to normal inside hbox children, fixes not nowrap text contents 2014-01-14 14:01:30 +00:00
Nathan Gray
3b443f976d Fix link entry widget not expanding after hiding app selectbox 2014-01-14 13:48:11 +00:00
Nathan Gray
cfa981480e Fix selecting 00:00 in datetime widget re-set to current time 2014-01-14 13:32:08 +00:00
Nathan Gray
6418c06b18 No seconds or milliseconds, in date/times 2014-01-14 12:35:28 +00:00
Nathan Gray
ae491c0810 Enable symlinking VFS files to not yet existing entries 2014-01-14 12:11:13 +00:00
Hadi Nategh
c82ffac545 Fix wrong order of search result in linkto 2014-01-14 11:31:33 +00:00
Nathan Gray
29992a7fee Fix linking files to not-saved entries 2014-01-14 10:16:36 +00:00
Ralf Becker
21bb9ef481 pixelegg changes from monday 2014-01-14 08:20:32 +00:00
Ralf Becker
ca1433cd5e no longer warn about widgets without a server-side class, as it is perfectly ok 2014-01-13 15:24:48 +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
be0878f883 Use this.egw() to get the correct (app level) data cache, which stores appname internally.
Fixes permission denied popup when updating.
2014-01-13 15:04:30 +00:00
Nathan Gray
51d802ec78 Only try to unbind if there's a value. If there isn't a value (new entry), handler wasn't bound, and trying causes an error.
Fixes blank popup after save.
2014-01-13 15:03:15 +00:00
Hadi Nategh
dc614521b3 Make toolbar widget being able to d-n-d with user prefernces for actions 2014-01-13 10:26:20 +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
43fe37761f Un-bind window resize handler in destructor 2014-01-11 16:43:06 +00:00
Nathan Gray
a458019490 Avoid some missing attribute warnings by not trying to set needed on readonlys, which don't support it. 2014-01-11 16:40:45 +00:00
Nathan Gray
5f12847fb3 Fire a refresh event (from the nextmatch widget) when the nextmatch auto-refresh happens, so apps can update anything else they need to. 2014-01-11 14:14:42 +00:00
Nathan Gray
52ab3203bd Remove r44925, not needed 2014-01-11 12:01:45 +00:00
Nathan Gray
04a845fa35 Enhance refreshItem() to optionally take the data needed for refreshing to avoid an extra call to the server 2014-01-11 11:53: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
Ralf Becker
87ea75a75b use \042 instead of \" in regular expression, as it stalls minifier 2014-01-10 16:19:05 +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
cb94adb995 Defer loading of tabs
First / selected tab is loaded in line with normal code execution.  Not visible tabs are loaded after using window.setTimeout().  jQuery.Deferred makes sure the template doesn't fire the load event until they're all done.
2014-01-10 14:32:03 +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
a64da9f456 Disable automatic chosen, only explicit now 2014-01-10 09:47:26 +00:00
Ralf Becker
243f20e98c fixed handling of optgroups, eg. notification chains in prefs 2014-01-10 07:08:45 +00:00
Nathan Gray
c9e923bf78 Make sure UID is a string 2014-01-09 18:10:32 +00:00
Nathan Gray
f1558bcffb Fix missing bracket 2014-01-09 16:53:42 +00:00
Nathan Gray
3fdb024ff2 Don't reset height until it's time to invalidate, avoids re-calculating on every row 2014-01-09 16:46:39 +00:00
Nathan Gray
c082dec331 Profiling - Automatically profile etemplate2 loading in Chrome 2014-01-09 16:44:34 +00:00
Ralf Becker
400240f1e4 caching translations for 10days and changing translation url, when translations are changing --> saves server-roundtrip for each translation 2014-01-09 15:32:07 +00:00
Nathan Gray
13572c472a Profiling - Add some timestamps for timeline 2014-01-09 13:38:32 +00:00
Ralf Becker
64cc24815c changed hopefully last reference to orange-ball.png with bullet.png 2014-01-09 12:26:34 +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
5179794f15 Fix constant warnings about not found images when image was in nextmatch row and src was '' for the row 2014-01-09 11:43:15 +00:00
Nathan Gray
49ef2c538a Use any row data passed from server in etemplate load call to avoid an extra call to get_rows 2014-01-09 11:25:08 +00:00
Nathan Gray
957683087c Give a minimum height to loading nm rows so average height can be properly calculated, avoiding loading hundreds of rows. 2014-01-08 16:10:07 +00:00
Ralf Becker
2f905e8290 return $arr argument itself, but no reference to it, in all error cases 2014-01-08 09:47:37 +00:00
Ralf Becker
7b7132314c can NOT use empty($idx) as it is true for 0 too! 2014-01-08 08:58:57 +00:00
Ralf Becker
3156da0619 give buttons in toolbar an individual id based on toolbar-id and action-id 2014-01-06 16:45:54 +00:00
Ralf Becker
b095be7f3d fixed handling of empty name, not index into array but return full array 2014-01-06 12:53:34 +00:00
Nathan Gray
d000a05b72 Start search if user presses enter in search box 2013-12-30 17:05:03 +00:00
Nathan Gray
fc2d036332 Add ability to turn on/off lettersearch line in column selection dialog (when enabled for app) 2013-12-24 16:54:38 +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
Hadi Nategh
ae2049db28 Fix missing translation attr in groupbox widget 2013-12-20 12:47:49 +00:00
Nathan Gray
c458f34b18 Explicitly load headers & js for old etemplates 2013-12-19 18:27:46 +00:00
Nathan Gray
3e4100d5df Make sure content manager is not null before trying to use it (occasionally happens with programmatically created selectboxes) 2013-12-19 18:06:16 +00:00
Nathan Gray
103515342e Add IDs to search & export buttons. 2013-12-19 15:50:15 +00:00
Klaus Leithoff
d3e89b1095 attempt to implement and make use of the tree-side drag and drop; does not work out-of-the-box, at least not as attempted in mail module 2013-12-19 09:58:32 +00:00
Nathan Gray
ccae3f71ab Fix undeclared var (strict mode) 2013-12-18 18:17:34 +00:00
Nathan Gray
907e9740d8 Change tree autoload URL to work with egw.link() instead of against it, while still giving the tree lib an absolute URL. 2013-12-18 17:54:28 +00:00
Nathan Gray
af51f8a102 Remove some more old code, favorites now in framework 2013-12-16 20:37:38 +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
a79f7b87a6 Continue moving most favorite functionality from favorite widget into framework. Favorite widget now uses framework. 2013-12-12 23:45:09 +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
Nathan Gray
680ce48fef Check to make sure selectionMgr is there before trying to use it 2013-12-12 23:34:42 +00:00
Ralf Becker
9c3c077314 fixed not updated sidebox in calendar listview 2013-12-12 23:32:30 +00:00
Ralf Becker
1c7887ca6a Pixelegg changes from Thursday 2013-12-12 20:27:35 +00:00
Nathan Gray
ffcc62e274 Implement 'add_tab' attribute on server side, so it works. 2013-12-12 20:15:36 +00:00
Nathan Gray
39c53c5530 Parse null values as string '' instead of 'null' to match PHP 2013-12-12 20:10:02 +00:00
Nathan Gray
d65b40046a Move sidebox favorites & backend out of nextmatch and into framework 2013-12-12 00:03:07 +00:00
Nathan Gray
603f063e00 Properly handle only-app set, with just an integer value 2013-12-11 23:11:33 +00:00
Nathan Gray
362c61e0ae Don't try to take extra size from already too small columns 2013-12-11 21:24:17 +00:00
Nathan Gray
71e62f24f3 Remove extra border spacing, should be handled in CSS if needed 2013-12-11 21:20:07 +00:00
Nathan Gray
0f055b5295 Use 'state' to store nm info
Fix some etemplate permission errors
2013-12-10 23:16:08 +00:00
Nathan Gray
bbd146c0b9 Remove debug error message 2013-12-10 19:39:01 +00:00
Nathan Gray
cc3754ff85 Expand legacy options explicitly, since $legacy_options is not defined
Fixes missing app-specific categories in category edit popup
2013-12-10 19:37:57 +00:00
Nathan Gray
735a1afa43 Clear queue when results arrive, and in reset() 2013-12-09 21:37:39 +00:00
Klaus Leithoff
4c03a02926 attempt to implement focusItem, to be able to scroll to a selected Item automatically; implement wrapper for hasChildren from dhtmlXTree API 2013-12-09 16:00:15 +00:00
Ralf Becker
8da1afca1e some fixes to get "add favorite" in regular calendar views do something 2013-12-08 22:56:23 +00:00
Ralf Becker
921eaf73f1 pixelegg changes from last week 2013-12-08 21:38:36 +00:00
Nathan Gray
ac04ff9f6c non-et2 Favorites work in progress
Stop et2_favorites from overwriting sidebox
2013-12-06 23:10:25 +00:00
Klaus Leithoff
3219eccec4 translation work provided by ingo, michael and other stylite staff 2013-12-06 08:05:58 +00:00
Ralf Becker
76cf4245e6 fix wrong download url 2013-12-05 22:46:31 +00:00
Ralf Becker
2479d85c77 search etemplates first under /etemplates in vfs and then in real filesystem, allows to overwrite templates on a per instance base, stylite.merge stream-wrapper can be used to mount templates editable into vfs 2013-12-05 21:06:35 +00:00
Nathan Gray
7ff91718e4 Fix only 2-3 rows shown for applications loaded into not visible tabs 2013-12-05 20:26:00 +00:00
Hadi Nategh
53006083e9 Add confirm method, with fixed YES_NO buttons and submit functionality, which could be exchanged by old javascript confirm() function 2013-12-05 08:53:11 +00:00
Nathan Gray
87936488bf Implement getState() & setState() towards a more universal favorites, but still more to do:
- Need to get favorite widget to use setState()
- Move much code out of etemplate2 widgets into a higher level
2013-12-05 00:00:43 +00:00
Nathan Gray
6f90cb8fb3 Decrement row count when refreshing a delete 2013-12-04 21:12:25 +00:00
Nathan Gray
3596b74f01 Use 1% to avoid scrollbars when they should not be there 2013-12-04 20:53:10 +00:00
Nathan Gray
834dbe886b Automatically bound change handler returns true to play nice with other change handlers that might be bound. 2013-12-04 19:52:51 +00:00
Ralf Becker
7d9d146241 re-added probably accidently removed et2_taglist_ro ul css 2013-12-04 18:58:51 +00:00
Klaus Leithoff
68f2605cf4 translations generated/retrieved on translation site: Thank you for your contributions 2013-12-04 10:31:41 +00:00
Ralf Becker
144da1e76d pixelegg changes from tuesday 2013-12-04 05:23:51 +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
7148a1f274 Fix broken tree by removing extra line - was not supposed to be there 2013-12-03 21:37:50 +00:00
Nathan Gray
ec118b0839 Nextmatch export button no longer defaults to on, it must now be explicitly set by the application. 2013-12-02 21:27:55 +00:00
Nathan Gray
4c1c710ba9 Implement display of server-side validation errors 2013-12-02 20:35:32 +00:00
Nathan Gray
7f176d54f1 Add a fallback to the fallback.
If an app doesn't support 'list' link entry, use 'index'
2013-12-02 20:11:47 +00:00
Nathan Gray
fbbe467a7e Unbind previous click handler before setting a new one, or they get doubled. 2013-12-02 16:24:24 +00:00
Nathan Gray
0f5cfe1949 Default to user's preferred size, app can dock if desired. Since they already do... 2013-11-29 21:26:35 +00:00
Ralf Becker
defe24b7c0 fixed not working selected_value attribute of checkbox and radio, server-side used (un)set_val as attribute while clientside used (un)selected_value for checkbox and set_value for radio, grrrr ;-) 2013-11-29 05:49:13 +00:00
Ralf Becker
57c2c913d1 fixed new emailadmin stuff to work with postgreSQL 2013-11-29 01:50:49 +00:00
Ralf Becker
4866478242 fix exception in boetemplate::get_array() 2013-11-29 00:20:56 +00:00
Nathan Gray
6dc8e077ff Revert changes from 44692 2013-11-28 20:28:36 +00:00
Nathan Gray
bcfaa60405 Automatically size just to parent, not whole window 2013-11-28 18:43:44 +00:00
Nathan Gray
b14424dbd1 Handle possibility of a null option without failing 2013-11-28 18:43:12 +00:00
Nathan Gray
69ab474f8c Another fix for private cf filtering, when filter is enabled/disabled via content 2013-11-28 18:32:36 +00:00
Nathan Gray
f8352386cb Use === to tell the difference between '' and (int)0 keys 2013-11-28 18:12:08 +00:00
Nathan Gray
f5b02ccc21 Preserve selected application when clearing search, or it gets lost internally 2013-11-28 17:31:22 +00:00
Ralf Becker
53eb8e553a pixelegg changes from yesterday 2013-11-28 06:20:18 +00:00
Nathan Gray
d1106a31fc Check & avoid duplicates when re-indexing options 2013-11-27 20:22:36 +00:00
Nathan Gray
aed7267801 If search option is set in template, don't override it with automatic chosen switch based on option count. 2013-11-27 18:07:36 +00:00
Nathan Gray
fa65814f9e Extend exception to all single select:
- Multi-select you don't select the empty/none option, just nothing
- Single select needs the empty/none option, even with chosen on
see r44551, 44631
2013-11-27 18:03:26 +00:00
Nathan Gray
407f3d673e Fix private field filter 2013-11-27 17:17:37 +00:00
Nathan Gray
f88a93c17e Can't switch DOM node in the detached interface, have to keep the original 2013-11-27 16:42:37 +00:00
Nathan Gray
1e36383224 Keep value in case select options haven't been set up yet so we can set value immediately after. 2013-11-27 16:35:45 +00:00
Ralf Becker
73b6521cbf pixelegg changes from yesterday 2013-11-27 07:21:32 +00:00
Nathan Gray
3f687236a5 Avoid repeated errors if sidebox target is missing by removing listener first 2013-11-27 00:18:55 +00:00
Nathan Gray
1b4d6049f5 Allow app to change the DOM ID of the div etemplate is loaded into 2013-11-27 00:06:12 +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
52dbc208a6 Don't reset value to array index if it's already there 2013-11-26 20:03:19 +00:00
Nathan Gray
fe5650e144 Auto-detect location target if not set.
Fixes whole page reloads in jdots/pixelegg.
2013-11-26 15:55:56 +00:00
Nathan Gray
a5227f2359 Add read-only taglist 2013-11-25 18:10:48 +00:00
Nathan Gray
e942a63607 Better handling of buttons with text & image, as well as a default style. 2013-11-25 16:50:20 +00:00
Ralf Becker
5c7a290ac9 pixelegg changes from last week 2013-11-25 03:19:58 +00:00
Nathan Gray
ad3f10d1b0 Add check for nulls, they break 2013-11-21 23:43:53 +00:00
Nathan Gray
e1774ac9b7 Add attribute to include mailing lists in email results 2013-11-21 23:08:07 +00:00
Nathan Gray
0853f5bd66 Fix infinite loop by using a new counter variable 2013-11-21 21:25:31 +00:00
Hadi Nategh
a5043743a8 Try not to remove options value for type "select-number" becasue we need it to display rows in legacy_options 2013-11-21 17:39:44 +00:00
Ralf Becker
bb56c0aa45 pixelegg changes 2013-11-21 04:18:09 +00:00
Nathan Gray
ab2a1ae9b9 Accept categories as objects in an array as well as map by category ID 2013-11-21 00:21:01 +00:00
Nathan Gray
e623ea8c82 Change minimum height from 150px to 100px, still enough for a small nm 2013-11-20 23:27:53 +00:00