Commit Graph

278 Commits

Author SHA1 Message Date
Nathan Gray
ed6013605e If a custom field is added to the column list, invalidate known columns to get all new data back, in case app did not send custom fields in the first request. Fixes needing to reload after displaying custom fields in nextmatch 2014-07-08 04:21:02 +00:00
Nathan Gray
4c5e36500a Fix (?) the tough bug where app tab is closed, and nextmatch autorefresh generates an error after "this.getInstanceManager() is null" 2014-07-02 15:58:00 +00:00
Hadi Nategh
545b35de5b Declare a non declared variable which was messing with app global object 2014-06-24 12:40:25 +00:00
Nathan Gray
ec476a96d7 Fix column selection not saved if columnselection pref setting had 'nextmatch-' prefix already.
Fixes infolog columns not being saved
2014-06-18 18:29:52 +00:00
Nathan Gray
2e09cf1ab1 - changing column selection preference now works if 'nextmatch-' prefix is included in the columnselection_pref setting
- change column selection popup to reload every time it opens, just in case something changes in the columns
2014-06-04 18:37:58 +00:00
Nathan Gray
10d7a3f579 If a filter changed, explicitly clear the selection to prevent confusion if selected rows are in the new results 2014-05-29 16:21:41 +00:00
Nathan Gray
bff821e300 Move special path handling from nextmatch up to top level so it can work for all widgets with a namespace and their own value 2014-05-27 20:16:02 +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
Nathan Gray
c886f46122 - Listen to sub-template deferred to allow children of children to finish initializing (allows more complex sub-templates)
- Special case for sub-template filter having null value
- On sub-template input change, only update changed values instead of resetting & re-generating filters
Fixes some sub-template filters & col_filters conflicting and overwriting each other
2014-05-08 16:25:28 +00:00
Nathan Gray
d828eefaeb Fix missing column filters after loading template(s) 2014-04-29 19:05:55 +00:00
Nathan Gray
4f2f64fcbe Automatically disable custom field column if there are no custom fields 2014-04-23 20:39:22 +00:00
Nathan Gray
5720af761a Avoid warnings about not listening for deferred loadingFinished 2014-04-08 21:22:07 +00:00
Nathan Gray
76357f3451 Fix no_filter[2] nextmatch attribute not applied when set in template 2014-04-07 19:07:10 +00:00
Nathan Gray
f6f2a883f0 If UID prefix is not set by the application, set dataStorePrefix automatically once and use it, instead of calculating it (different ways) each time. 2014-04-03 15:23:05 +00:00
Nathan Gray
d5c810d5c4 If nextmatch starts hidden (or disabled) it won't size correctly.
Added a resize if enabling a disabled nextmatch so it re-calculates its size.
2014-04-02 15:16:12 +00:00
Nathan Gray
de2f05ee27 If link is for just 1 id (normal case), then don't use an array for ID 2014-03-31 18:20:54 +00:00
Nathan Gray
9d8304a70e Fix typo preventing proper display of custom field column for some templates 2014-03-31 17:26:10 +00:00
Nathan Gray
ae940d9174 Fix for nextmatch header setFilters()
- Add flag to prevent widget change events from triggering an applyFilters() call
Fixes custom date filters causing extra calls and resetting other column filters.
2014-03-31 15:49:36 +00:00
Nathan Gray
869bf62108 Improve handling of changing actions in a nextmatch response:
- Also (re)set default action on new actions
- Avoid extra actionManagers
2014-03-26 14:55:06 +00:00
Nathan Gray
2f90f3d427 Fix changed actions only partially updated, missed _actionLinks in controller 2014-03-25 18:34:00 +00:00
Nathan Gray
b16c32714a - Some documentation
- Fix bug ignoring nextmatch-sortheader's sortmode attribute
2014-03-24 19:30:29 +00:00
Nathan Gray
69f4d67d38 Test that the autorefresh timer is still going before binding, tab may have been closed 2014-03-19 20:11:03 +00:00
Nathan Gray
fe21f0fd74 Enhance nextmatch entryheader to return full value if it's anything more than a simple, single selection so we can handle it server side. 2014-03-13 18:58:59 +00:00
Nathan Gray
5f1dcfea57 Unbind handler used to toggle autorefresh 2014-03-12 17:09:56 +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
e7de92519a - Restructure nextmatch header markup
- Add new attribute header_row to place custom template inline inside nextmatch header
2014-03-11 21:54:19 +00:00
Ralf Becker
94f468095d disable favories dropdown button if not called from infolog (eg. CRM view) 2014-03-10 19:47:09 +00:00
Nathan Gray
96bc660ee3 Clear filters before applying header changes, to handle the case of nulled input, which would otherwise be skipped, and the old value filled in. 2014-03-06 22:09:40 +00:00
Nathan Gray
dbbad57f90 Fix selecting next entry when there are no others 2014-03-06 18:07:47 +00:00
Ralf Becker
99e97d2bfc fixed Selecting an InfoLog category does not show this cat but "Loading" 2014-03-04 17:27:19 +00:00
Ralf Becker
947c2f0462 not visible nextmatch will run refresh when it becomes visible again (not just ignoring it) 2014-03-04 16:05:38 +00:00
Ralf Becker
ef7c2e5faa fix IDE warnings 2014-03-04 15:08:34 +00:00
Ralf Becker
5af397132a fixed opening of addressbook entries sometimes fails after searching: caused by not detected filter change and kept, but no longer displayed selection
JSON.stringify(this.controller._filters) == JSON.stringify(this.activeFilters) seems always true, like if it is a reference and not the old state
changed code not to change activeFilters only by calling applyFilters with requested change and detecting there if we have a change
2014-03-04 13:49:33 +00:00
Nathan Gray
e6d6c3c270 Fix nextmatch sort header does not indicate sorted column after reload. 2014-03-03 21:25:00 +00:00
Nathan Gray
b7c989adf8 Use grid's deleteRow() in combination with setTotalCount().
Fixes deleted row remaining, breaking grid after update(), (first row remains after changing filter)
2014-03-03 17:32:12 +00:00
Nathan Gray
a7c306d649 Prefer custom dataStorePrefix, if set, over appname for UID 2014-02-27 19:38:30 +00:00
Nathan Gray
2a43a12492 Keep selection if applyFilters() does not actually change filters.
This happens for several refresh conditions.
2014-02-25 22:26:55 +00:00
Nathan Gray
b598a6ffcc Use controller.update() instead of refresh() for autorefresh to preserve selection & scroll 2014-02-25 19:40:31 +00:00
Nathan Gray
4cd4297299 Fix wrong row count after delete 2014-02-25 17:51:36 +00:00
Nathan Gray
bec852fed2 - Avoid error if something tries to refresh a destroy()ed nextmatch
- Fix not-cleared popup action
- Fix timing bug where nextmatch could display old data after an action
2014-02-19 22:02:09 +00:00
Nathan Gray
153c4b7e8d Fix lost focus, and remove unneeded stuff 2014-02-12 21:25:59 +00:00
Nathan Gray
3158cbf915 Only trigger immediate refresh if the tab has been hidden longer than refresh time, prevents refresh when clicking around between tabs. 2014-02-11 20:59:07 +00:00
Nathan Gray
9cd9f22026 Use framework events to stop and start autorefresh if tab is hidden or shown 2014-02-10 18:47:51 +00:00
Nathan Gray
9ef38e33dc Fix some internal UID <-> entry references not being updated when deleting.
Fixes mail splitter docking after deleting 2 rows.
2014-02-05 19:46:02 +00:00
Nathan Gray
0af573a3e1 Stop setting value.ignore flag in nm headers, it was changing it for all subsequent selectboxes, and doesn't appear needed anymore.
Fixes selectboxes in left/right headers missing values.
2014-02-05 16:33:49 +00:00
Nathan Gray
c4a01a3de9 Implement set_actions() so they can be updated from server-size assign 2014-02-03 20:05:56 +00:00
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