Commit Graph

282 Commits

Author SHA1 Message Date
Nathan Gray
d5acb5f888 Don't try to refresh a not-fully-initialized nextmatch.
Fixes type error when switching to an open app that was loaded on login.
2014-02-03 16:03:32 +00:00
Ralf Becker
d383373ffe skip empty, undefined or null labels when generating captions for column selection, eg. timesheet 2014-01-31 08:14:49 +00:00
Nathan Gray
12fc2ba8d0 Fix some more bugs in egw_refresh() delete:
- Fix selecting next row selecting current row instead
- Fix subsequent deletes not removing row
2014-01-30 17:10:28 +00:00
Klaus Leithoff
398ca817d4 handle condition for no next found, to avoid java script errors 2014-01-29 09:58:29 +00:00
Ralf Becker
ba5254040d fixed "can not access attribute 0 of undefined" caused by automatic nextmatch refresh loosing context 2014-01-27 16:26:00 +00:00
Nathan Gray
c5e1ed231a Fix deleting multiple rows by storing grid row ID first, otherwise grid row IDs change as we delete rows 2014-01-22 16:43:31 +00:00
Nathan Gray
b4ad250438 Fix rows staying after deleting by preventing automatic grid stuff while deleting 2014-01-22 15:22:29 +00:00
Nathan Gray
4d997bf7c8 Fix up caching, clearing and filtering, so we cache what we need and clear only what we have to when filtering
Selection still needs work.
2014-01-21 15:21:42 +00:00
Nathan Gray
045d1a3b19 Revert r45247, mail has some lingering issues and needs a harsh reset 2014-01-21 09:42:10 +00:00
Nathan Gray
ac0e2f6016 Improve applyFilters(), no longer blanks nextmatch before re-filling 2014-01-18 13:46:33 +00:00
Nathan Gray
f3762d9884 Fix typo causing wrong record count after delete 2014-01-18 11:58:34 +00:00
Nathan Gray
344a63b37c Fix removing (delete) a row from nextmatch
- Fix broken destroy callback
- Fix caching & actions to be removed
- Fix always removing the last row also
- Fix indexing so arrow keys work over sparse indexMap
2014-01-17 17:57:59 +00:00
Nathan Gray
af6b513a54 Wrap search box & button in their own div 2014-01-17 13:35:13 +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
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
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
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
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
103515342e Add IDs to search & export buttons. 2013-12-19 15:50:15 +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
Nathan Gray
6f90cb8fb3 Decrement row count when refreshing a delete 2013-12-04 21:12:25 +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
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
e623ea8c82 Change minimum height from 150px to 100px, still enough for a small nm 2013-11-20 23:27:53 +00:00
Nathan Gray
3c38cd10c4 Nextmatch update changes:
- Implement "update" as alias for edit
- Comment out handling of edit (handle as add)
2013-11-15 15:28:38 +00:00
Nathan Gray
44f6f55406 Make sure entry header sets activeFilter value when setting nextmatch 2013-11-13 22:41:22 +00:00
Nathan Gray
a10ac05b63 Allow app's custom file drop code to run even if no row data found 2013-11-13 17:18:55 +00:00
Nathan Gray
39c1efc789 Fix up dataview / nm filter changes. Removes extra server call to ajax_get_rows. 2013-11-06 18:55:57 +00:00
Nathan Gray
7c7d6391ab - Automatically add 'Select All' action with Ctrl+A shortcut after first action group
- Implement Select All into selection controller so it works even if all rows aren't loaded
2013-10-24 17:29:11 +00:00
Nathan Gray
ab4873553b - Add in any missing filter/left/right header select options from favorites or other changes instead of rejecting. Server side get_rows is responsible for actually providing the missing option(s)
- Propagate changed exec_id to controller
2013-10-21 22:23:02 +00:00
Nathan Gray
52a7acfc55 - Don't change template if new is the same as current
- Create header in init(), now that not-loaded templates are handled
- Update nm left/right header input widgets' old value when filtering
2013-10-21 18:02:02 +00:00
Nathan Gray
788483043d Set activeFilters to match value in left/right header when binding to change so favorites pick up header values set by server 2013-10-21 17:28:08 +00:00
Nathan Gray
4002907c05 Use jQuery's Deferred to solve the deferred loading problem instead of load events. 2013-10-16 20:48:05 +00:00
Ralf Becker
3c80defe8b fixed setFilter to correctly return all current filter-values in its 1. parameter this.activeFilters 2013-10-11 09:55:12 +00:00
Nathan Gray
398a8eed25 Event handler attributes:
- default to et2_no_init so they don't get processed if not set
- remove some duplication in attributes
2013-10-10 13:17:07 +00:00
Nathan Gray
eda4d2a3f6 Some extra resize bits to make sure everything gets resized:
- Resize the grid (resizes the column headers)
- Re-initialize the dynheight, just in case something changed
2013-10-10 12:25:29 +00:00
Ralf Becker
60049dd085 fixed error stalling filemanager: can not read property _parent of undefined 2013-10-10 11:23:32 +00:00
Nathan Gray
f12ab66b07 Ok, changing nextmatch row template via ajax should work now. 2013-10-09 17:33:29 +00:00
Nathan Gray
17c933cded Better handling of binding change handlers to async loaded header templates 2013-10-09 15:14:25 +00:00
Ralf Becker
0163442f37 changed signature of on* event handlers: 1. event, 2. widget (context is DOM node), event handlers have now type "js" in attribute description and get automatic converted to a function, no more need to call et2_compileLegacyJS 2013-10-09 14:35:03 +00:00
Nathan Gray
17e8fa094d Support changing nextmatch template after initial load (ie: in get_rows callback) 2013-10-09 14:11:44 +00:00
Ralf Becker
dad39e1d8a moved all confirmation to api egw_actions and changed select_all to depend on all visible rows selected (Ctrl-A) 2013-10-03 15:30:27 +00:00
Nathan Gray
29f8a562e2 Better usage for relative column width:
- Columns with relative width specified in template are kept relative in resize
 - Columns with no width specified in template get any left over space (relative)
 - Columns with fixed width specified in template are kept fixed
These three together mean that if the user resizes the window or adds/removes columns, fixed columns don't change and any space is divided among relative columns.
2013-10-02 12:43:30 +00:00
Nathan Gray
9039200578 - Handle complicated/nested IDs in left/right headers (eg col_filter[tr_tracker])
- Handle left/right headers loaded async from server when setting up handlers
2013-09-19 20:39:17 +00:00
Nathan Gray
02c6f3b108 Remove some more references to phpgwapi/js/egw_json.js 2013-09-10 18:56:50 +00:00
Nathan Gray
c2c5337bd2 Save a little trouble by using the global egw.preferences() directly 2013-09-04 23:20:44 +00:00
Nathan Gray
4760b5f55e Keep column filters & sort of different nextmatches separate 2013-08-30 16:26:54 +00:00
Ralf Becker
ee843a5f02 can not set undefined from server side, only null, therefore allowing that as argument for id in egw_refresh 2013-08-28 12:50:49 +00:00
Ralf Becker
c12c53bcb8 support getting app from "app_something::method" get_rows method 2013-08-28 06:59:06 +00:00
Nathan Gray
36021f5d13 Drag & drop files from user's system onto nextmatch row now working with sub-grids too 2013-08-27 20:24:55 +00:00
Nathan Gray
6028ac8eca Drag & drop files from user's system onto nextmatch row uploads & links file to that row 2013-08-27 17:26:02 +00:00
Nathan Gray
3b65d807ba Better handling for disabled columns.
Disabled grid columns don't create widgets, which caused the nm issues as it expected a widget in each cell.
2013-08-26 16:42:49 +00:00
Nathan Gray
62d42c83da Some documentation, add ability to set value rather than hacking up getValue() (actions) 2013-08-20 18:49:38 +00:00
Nathan Gray
e4b158be4b Give nextmatch a real getValue() function instead of faking it all the time. 2013-08-19 20:23:26 +00:00
Nathan Gray
eec6791213 Silence some missing attribute settings warnings and fix warning about not loading app.js when it was already loaded 2013-08-14 18:01:22 +00:00
Ralf Becker
486298a7c9 optional parameter for et2_nextmatch.applyFilters(_set) to certain filters before updating the rows, eg. applyFilters({ filter: '', search: ''}); to reset filter to 'all', remove search and update the rows 2013-07-03 14:29:17 +00:00
Nathan Gray
533f141bc2 nextmatch is always valid too 2013-06-26 22:23:41 +00:00
Nathan Gray
8f2248b6ab When setting nextmatch filters, accept empty values too 2013-06-26 18:04:51 +00:00
Nathan Gray
d2b9501208 Fix up column selection pref / default / forced to update session & indicate to admin that preference has been forced 2013-06-11 22:50:05 +00:00
Nathan Gray
c8bbf8b582 Add tooltip explination to auto-refresh selectbox 2013-06-10 14:33:09 +00:00
Nathan Gray
d8fcb574a6 Implement csv_fields = false to disable export button 2013-05-28 18:16:22 +00:00
Nathan Gray
681be3af08 I guess template needs to stick around, even though it's freed 2013-05-27 23:34:14 +00:00
Nathan Gray
7c7e100842 Properly remove template so it's not still a child 2013-05-27 23:22:31 +00:00
Nathan Gray
c5c4d92d09 Make sure activeFilter gets set during init 2013-05-06 20:58:59 +00:00
Nathan Gray
5e84ddd935 Change admin column selection to allow setting / clearing / forcing column selection 2013-04-22 22:32:40 +00:00
Nathan Gray
d58a3128e7 Some checking to make sure variables are there, and avoid errors 2013-04-16 18:40:38 +00:00
Ralf Becker
e64c4fbd04 add some JSDoc so Eclipse shows an outline: @memberOf and @augments (not yet understood by Eclipse), also fixed many warnings (mostly missing semicolons) 2013-04-13 19:00:13 +00:00
Nathan Gray
b994f33825 Nextmatch onselect attribute understands app.appname.function directly, and passes nextmatch reference & list of ids 2013-04-12 10:33:29 +00:00
Nathan Gray
7f80c74b59 Add onselect attribute for nextmatch 2013-04-12 09:28:42 +00:00
Nathan Gray
c0e0982b0e Implement hide_header,header_left & header_right attributes 2013-04-10 14:09:55 +00:00
Nathan Gray
4c54745cbb Allow favorites from multiple apps to coexist 2013-04-10 08:00:31 +00:00
Nathan Gray
1f754d485b Tie egw_action system into etemplate widgets - allows actions on widgets 2013-03-26 21:19:17 +00:00
Nathan Gray
d361206090 Always send app:id or just id from nextmatch_entryheader, instead of seperated properties 2013-03-25 22:04:10 +00:00
Nathan Gray
3332eec106 Add a function getSelection() so application code can more easily find the IDs 2013-03-20 22:10:51 +00:00
Nathan Gray
fee50cec99 Fix nm refresh() not working if the ID was a number 2013-03-20 16:17:23 +00:00
Nathan Gray
562ffe972f Fix some destructors 2013-03-18 20:52:41 +00:00
Nathan Gray
3c69b26525 Add empty row placeholder 2013-03-13 18:42:03 +00:00
Nathan Gray
dee286e2e0 Move favorites js into its own widget, add support for favorites in sidebox when there is no nextmatch on the page 2013-03-12 22:57:42 +00:00
Nathan Gray
e63ea5a1e4 Favorites progress - safe names, delete confirmation, automagic sidebox favorites 2013-03-06 00:02:48 +00:00
Nathan Gray
8703b9a8e8 - Store group inside favorite preference so we know global / group favorites from user favorites
- Implement ability to delete favorites from menu
2013-03-04 23:33:58 +00:00
Nathan Gray
9a7f5102cf Add Favorite filters to nextmatch - W.I.P 2013-02-27 18:13:54 +00:00
Nathan Gray
1202ccb0d1 Fix some bugs in preference storage & refresh 2013-02-26 00:52:05 +00:00
Nathan Gray
643b120195 - Make nextmatch refresh more intelligently
- Call nextmatch refresh() from etemplate2.refresh()
- Add autorefresh preference (in column selection)
2013-02-25 20:35:17 +00:00
Ralf Becker
0142da0b5c fixed typo 2013-02-18 14:46:38 +00:00
Ralf Becker
4ab0aaab9f function signature for new nextmatch refresh method, already working clientside by calling applyFilters, but should be smarter, serverside will require row-data plugin on clientside 2013-02-18 09:47:39 +00:00
Nathan Gray
eb3665aa95 Add in dragdrop actions 2013-02-14 16:48:12 +00:00
Nathan Gray
13816aae70 Better check on global_data type before using it - null too 2013-02-08 12:26:41 +00:00
Nathan Gray
834832b87e Better check on global_data type before using it 2013-02-08 12:22:19 +00:00
Nathan Gray
aa07a243c1 Fix widget not allowed / DOM error in nextmatch-accountfilter 2013-02-08 10:38:09 +00:00
Nathan Gray
ca3536bf25 If no column display settings from app or preferences, display all columns 2013-02-07 15:46:36 +00:00
Nathan Gray
e094b35394 Get nextmatch_customfilter working 2013-02-07 14:36:19 +00:00
Nathan Gray
616e94a7b4 Add the ability to specify the client-side data cache prefix, to avoid collisions in applications where there can be more than one type of data 2013-02-06 10:49:46 +00:00
Nathan Gray
417b22e071 Make sure there's an action_var, use 'action' if not set 2013-02-05 09:34:54 +00:00
Nathan Gray
fa69637b82 Silence some warnings, mostly about attributes 2012-07-23 23:54:16 +00:00
Nathan Gray
4c41c36251 Add 'All' option to category filter if missing to match old etemplate 2012-07-11 20:10:20 +00:00
Nathan Gray
7e77eff672 More involved searching for where sel_options could be. Added nm[rows][sel_options][ID] as an option 2012-07-10 22:23:44 +00:00
Nathan Gray
f1ea3db040 Remove debug 2012-07-04 22:39:08 +00:00
Nathan Gray
4d101be606 Make filter headers resize so they are no bigger than their column 2012-06-25 17:25:11 +00:00
Nathan Gray
8a2eb38369 Use widget's getValue() instead of using val() on an attribute which might not exist 2012-06-18 22:45:21 +00:00
Nathan Gray
5732ee7033 Fix parent / hierarchy view 2012-06-18 17:43:39 +00:00
Nathan Gray
0446c2e0ea No longer need to override, should be properly set now 2012-06-13 17:37:57 +00:00
Nathan Gray
321814260f Update row's visible custom fields to match selected custom fields 2012-06-12 20:54:05 +00:00
Nathan Gray
e9abe385dc - Fix action column not being skipped
- Add nextmatch-accountfilter
2012-06-05 21:10:18 +00:00
Nathan Gray
2b3686540f Fix action column removal to handle action columns that are not the last column 2012-05-29 17:22:18 +00:00
Nathan Gray
efd5bacc7a Make sure value gets set before applying filters, or it won't stay 2012-05-08 18:02:56 +00:00
Nathan Gray
debcd059bc Remove action column - no action columns in et2 2012-05-08 17:27:38 +00:00
Nathan Gray
8c77cb1bcb Handle captions on selectboxes with no label by using the empty option 2012-05-08 17:02:06 +00:00
Nathan Gray
2f9118779b Store column width as reported by column manager 2012-05-08 16:39:17 +00:00
Nathan Gray
4684f25530 Use the widget type to prevent infinitely creating the same thing 2012-04-30 23:25:42 +00:00
Nathan Gray
afb14a532b Get nm changing selectbox options / filters working 2012-04-30 17:00:50 +00:00
Nathan Gray
b2e9b07af8 Get most submit actions working 2012-04-10 20:27:37 +00:00
Nathan Gray
cdbe049f21 Get updates to sel-options in row results working 2012-04-09 18:19:43 +00:00
Nathan Gray
8049c3d7f5 Fix updating row count when filter changes 2012-04-09 15:09:40 +00:00
Nathan Gray
a5e6dd855b Layout & spacing for nm customfield header and link widget 2012-04-05 22:30:06 +00:00
Nathan Gray
fc14dba964 Implement customfilter to work with link-entry at least 2012-04-05 20:03:43 +00:00
Nathan Gray
e88585c8e0 Implement legacy options for link-entry - lets infolog parent work 2012-04-04 20:17:38 +00:00
Nathan Gray
d5532c361d Hide customfield column if there are not custom fields 2012-04-04 19:52:28 +00:00
Nathan Gray
5dcdc58f50 Get nextmatch filters with legacy JS working 2012-03-30 20:17:53 +00:00
Andreas Stöckel
f50b880c19 Fixed selection and getSelected() function; controllers and selection managers are now hirachical 2012-03-30 14:20:11 +00:00
Ralf Becker
8874134221 setting subgrid callback and disabling use of regular data (only callback) 2012-03-30 12:17:52 +00:00
Andreas Stöckel
a8ed2af938 Added subgrid support to nm 2012-03-30 12:00:59 +00:00
Ralf Becker
cedb8e3f6c add this.form.submit() to legacy functions and use regular nextmatch filter-change, if onchange="this.form.submit()" is set, some more changes etemplate_new --> etemplate 2012-03-29 15:10:25 +00:00
Andreas Stöckel
cfa9c190bb Implemented keyboard navigation and data retrival for uids 2012-03-29 14:11:22 +00:00
Nathan Gray
47a2858f7a Add column alignment in nm 2012-03-28 19:00:12 +00:00
Andreas Stöckel
8dced05f23 nextmatch widget now loads the data that was passed to it in the settings array 2012-03-27 14:51:16 +00:00
Andreas Stöckel
83a6d40b5c Actions basically working again, do not work properly yet, as the global uid is passed to the nm_action function 2012-03-27 10:18:42 +00:00
Andreas Stöckel
34a43e8869 Various bug fixes in the grid, implemented prefetching, workaround for performance issues regarding update, removed _lastModification 2012-03-26 15:28:02 +00:00
Nathan Gray
c39b76f8a9 Prevent some warnings about attributes 2012-03-23 19:25:50 +00:00
Andreas Stöckel
1dec823e45 Implemented consolidation and extension of requests, code does currently not check which range requests are still pending 2012-03-23 16:30:29 +00:00
Andreas Stöckel
00cd1f1e2f Bugfixes for dataview 2012-03-23 13:38:30 +00:00
Andreas Stöckel
a9c1112dc1 New dataview version and integration into the nextmatch widget 2012-03-23 12:20:57 +00:00
Nathan Gray
8c161056b5 Make sure column exists before trying to access its widget 2012-03-22 23:17:00 +00:00
Nathan Gray
91f6ff4384 Override nm header input widgets' onChange to update nm filters, and if original change returned true, refresh inm data 2012-03-20 17:47:00 +00:00
Nathan Gray
67418adcbc Fix formatting / layout of nextmatch header templates 2012-03-19 22:33:40 +00:00
Nathan Gray
b89f39785d Use global visibility settings, handle skipped columns in the middle 2012-03-19 20:30:38 +00:00
Nathan Gray
e567e6d0bf Update visible custom fields 2012-03-19 19:57:02 +00:00
Nathan Gray
1257ab5e7c Fix up nextmatch column / custom field selection in header 2012-03-19 19:23:23 +00:00
Nathan Gray
f88776416c Make sure headers is defined, even if no templates specified 2012-03-15 23:16:41 +00:00
Nathan Gray
3a865977ff Pretty checkboxed multi-select widget 2012-03-15 22:57:55 +00:00
Nathan Gray
570b933331 Restructure nm header to be a real widget, add header templates - not quite right, but they're there 2012-03-14 22:57:54 +00:00
Nathan Gray
0aa4c66803 Don't proxy template, just don't load it until asked for 2012-03-14 21:27:23 +00:00
Andreas Stöckel
dc017ed889 Now again using a local etemplate2 instance on the client 2012-03-12 12:05:14 +00:00
Andreas Stöckel
c0db2e36a9 Fixed a lot of problems regarding centralized JavaScript code; et2_dataview_view_resizeable is current WIP; now building etemplate2 DOM-Tree to a DocumentFragment first, which brings a significant performance gain 2012-03-07 15:33:21 +00:00
Andreas Stöckel
69c7697e61 Fixed problem with infolog-image 'not-started' not found in grid; causes new problem with some buttons being displayed twice (caused by this.image=null in et2_widget_button.js::180) 2012-03-06 16:29:18 +00:00
Andreas Stöckel
e4ed4399cf Attempt of fixing legacy JavaScript functions, only tested for simple cases 2012-03-06 15:26:11 +00:00
Andreas Stöckel
049cbd88dc Now using the etemplate code from the root instance (etemplate2.js acts as a egw api plugin); fixed egw.json plugins; fixed problem with 'instanceof Object', which does not work when sharing code over multiple windows 2012-03-06 13:22:01 +00:00
Andreas Stöckel
d310b14ecf Client side API now supports modules which are instanciated per application or per window; removed et2_debug function from et2_core_common, now using corresponding API function. 2012-03-05 13:07:38 +00:00
Andreas Stöckel
14e6ceecb6 Integrated application specifig egw api into etemplate2 code 2012-03-02 10:44:56 +00:00
Nathan Gray
9feb7e22bf Avoid fatal error breaking nm if fields is null 2012-02-28 01:00:50 +00:00