Ralf Becker
55e931871e
mtime postfix for WebDAV has to use "?download=", as our WebDAV treats everything else literal
2014-10-13 12:15:30 +00:00
Hadi Nategh
b542033f8d
Make sure the class name used as identifier has no invalid chars
2014-10-13 10:06:30 +00:00
Ralf Becker
026347ba2f
disabling immediate direct call to loadingFinished() for selected tab seems to have no recognisable impact
...
and some widgets, eg. color-picker have problems with calling doLoadingFinished twice
2014-10-13 09:07:23 +00:00
Hadi Nategh
b0e4655eff
Give widget color dialog unique class in order to identify it later for binding click handler to picker span.
...
-Fix the bug, color picker opens other colorpickers dialog which are in the same template.
2014-10-10 12:40:41 +00:00
Klaus Leithoff
e1b2df5609
pending translations from our translation server
2014-10-10 12:11:14 +00:00
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
2ca305b5cc
Remove auto refresh options for 30 seconds and 1 minute, as apparently they cause problems with mail.
...
Add auto refresh options for 15 and 30 minutes.
2014-10-08 17:27:39 +00:00
Nathan Gray
5e9676e770
Fix broken relative width calculation after r48947.
2014-10-08 17:10:58 +00:00
Ralf Becker
fcd03a54c8
refactored code to always run Nathans fix (before it was only run for ajax requests, not for initial request)
2014-10-08 12:16:13 +00:00
Ralf Becker
76dbe08207
* all apps: custom fields of type "float" allow to specify maxlength,size,min,max comma-separated in length field
2014-10-08 10:45:55 +00:00
Ralf Becker
3edc0f3080
revert r48945, as it break for some conditions
2014-10-08 09:07:01 +00:00
Ralf Becker
1c9a14159e
* Mail: allow to enter name+mail eg. "Ralf Becker <rb@stylite.de>" in compose, automatic fix unquoted commas in entered mail addresses
2014-10-08 09:01:51 +00:00
Nathan Gray
7fe36b289b
Fix relative columns width preference not saved as relative width
2014-10-07 22:59:55 +00:00
Nathan Gray
7111e0bb83
Change email regex to allow email addresses of the form "Ralf Becker <rb@stylite.de"
2014-10-07 22:27:27 +00:00
Nathan Gray
e674c5aa5b
Partially revert r48812, seems it didn't help entry widgets but it did cause problems with preferences
2014-10-07 21:16:18 +00:00
Nathan Gray
26261e080d
Fix bad logic breaking historylog
2014-10-07 20:47:54 +00:00
Hadi Nategh
f5a71a635f
Complement to commit 48899, fixes error in IE11
2014-10-07 11:39:34 +00:00
Ralf Becker
cf96d4e82d
do not convert empty values, otherwise we will get current date or 1970-01-01 instead
2014-10-07 10:19:21 +00:00
Nathan Gray
06369b922a
Fix typo resulting in all not being processed.
2014-10-06 21:31:14 +00:00
Nathan Gray
fe4cdcb1d1
Trim email addresses to avoid validation errors
2014-10-06 21:17:37 +00:00
Nathan Gray
aeefd2823a
Use a client-side setDetachedAttributes() to do needed data changes for dates.
2014-10-06 20:43:46 +00:00
Nathan Gray
e4e869953f
Save some processing by preventing API from fetching UIDs, which aren't applicable here.
2014-10-06 20:10:07 +00:00
Hadi Nategh
b7229cdcdf
Make sure options are available before getting access to its properties
2014-10-06 15:47:22 +00:00
Ralf Becker
11fefa28fa
remove debug stuff
2014-10-06 11:22:02 +00:00
Ralf Becker
1e4e044f5b
using a compiled list of timestamp column-names instead a regular expression, fixes duration columns like "info_used_time" get transformed too
2014-10-06 11:20:58 +00:00
Nathan Gray
d3cde1efb4
Check that options are there before using.
...
Hopefully fixes bug in IE11.
2014-10-03 16:48:48 +00:00
Ralf Becker
aff6248300
fixed row vanishes on refresh, eg. after editing an address in an already refreshed addressbook list, caused by row_modified no longer a timestamp when it get checked in ajax_get_rows
2014-10-02 15:00:18 +00:00
Ralf Becker
e316379373
* Mail/Calendar/eTemplate2: fix timezone problems of times in grid or lists, if server_timezone differs from php.ini date.timezone
...
- for grid this is a real fix by correctly expanding names in auto-repeated rows and therefor running widgets beforeSendToClient methods
- for nextmatch is is just a hack looking at get_rows content and converting everything "looking" like a timestamp to a "Y-m-d\TH:i:s\Z" string
2014-10-01 19:10:59 +00:00
Ralf Becker
b537c3963d
fix IDE warnings
2014-10-01 19:05:33 +00:00
Nathan Gray
b1e77ca062
Add some handling to allow ID to be different from the value source by allowing the value attribute to point to the value.
2014-10-01 17:29:22 +00:00
Nathan Gray
0eb14c1dc1
Implement comparison and alternate fields
2014-10-01 16:49:26 +00:00
Hadi Nategh
7c3683f3e8
More styling on file upload progress list
2014-10-01 15:16:13 +00:00
Hadi Nategh
561880e31d
Fix extra progress bar shown always under file name even before the uploading processes get started
2014-10-01 15:05:01 +00:00
Hadi Nategh
cc9dfd0043
Implement dropdown list style for file upload
2014-10-01 14:19:36 +00:00
Ralf Becker
c42802beea
fixed date-time_today widget broken after last commit
2014-10-01 04:40:19 +00:00
Nathan Gray
6ee7f3f219
Basics of infolog-value and tracker-value widgets
2014-09-30 22:08:57 +00:00
Nathan Gray
aa6c36ba3f
Work on app-entry widgets (contact-value)
2014-09-30 21:37:45 +00:00
Ralf Becker
1a3c6985e4
fix handling of timestamps in usertime on client-side, by using date("Y-m-d\TH:i:s\Z", ts) equivalent to PHP date function we use on server-side, fixes wrong time in alarms, if server- and user-timezone differ
2014-09-30 20:12:53 +00:00
Nathan Gray
c16bb0c647
Make sure to use correct parent ObjectManager when destroying.
...
Should fix "Action object with id ... does not exist" errors.
2014-09-30 16:52:42 +00:00
Nathan Gray
3843109dff
Avoid error if filter has no options.
2014-09-30 14:47:54 +00:00
Ralf Becker
3e12e8f2f9
* Preferences: opening forced preferences set selectboxes for not set values to first real value not "Users Choice"
...
caused by etemplate_widget_menupopup not being run, it is now run by etemplate_new::exec / etemplate_new::fix_sel_options for everything in sel_options
2014-09-30 14:27:29 +00:00
Nathan Gray
84821bef95
- Apply 'none' user selection preference (with admin consideration)
...
- Avoid potential infinite loop with no select options
2014-09-29 20:37:23 +00:00
Hadi Nategh
b4adc01f6e
Introduce new attribute to image widget in order to show image as a tooltip next to the widget with provided source
2014-09-29 16:29:17 +00:00
Nathan Gray
b6c86c2df0
Don't try to delete not-existing attribute.
...
Hopefully solves error in IE.
2014-09-29 16:05:32 +00:00
Ralf Becker
9ca870d1e7
we need to return null for no value instead of empty array, which gets overwritten by preserved value on server-side
2014-09-26 11:25:09 +00:00
Hadi Nategh
cc00102ef5
Make sure there's an app set, otherwise set it from top of the list
2014-09-26 09:22:07 +00:00
Nathan Gray
88a6114c0a
Look for old widgets that were adapted to etemplate2 but still follow old name scheme
2014-09-25 18:30:32 +00:00
Nathan Gray
5896c7e103
Use global template store directly, solves an error with loading sub-templates if they're not in the tree
2014-09-25 18:29:18 +00:00
Hadi Nategh
5c78150f9f
Give more space between toolbar buttons
2014-09-25 11:43:33 +00:00
Hadi Nategh
acd07a1f93
Adjusting toolbar widget
...
-Fix toolbar widget droppable space
-Fix toolbar widget for first time user with no preferences
2014-09-25 11:12:04 +00:00
Hadi Nategh
3f54a33fda
Make sure nm row_ids are string in order to address them as string, seems some ids are not
2014-09-25 08:45:06 +00:00
Nathan Gray
f0bb5a8957
Support multiple projects in gantt chart
2014-09-24 17:21:24 +00:00
Nathan Gray
812518f72f
Fix unwanted apps showing in link-app
2014-09-24 16:15:24 +00:00
Nathan Gray
c5d5260d8b
Drag and drop nextmatch rows to link between entries
2014-09-23 21:25:46 +00:00
Nathan Gray
eefc75369c
Add refresh(id, type) function to et2_gantt widget
2014-09-23 16:58:09 +00:00
Nathan Gray
cd19f52964
Get not loaded UIDs if select all is used.
2014-09-22 19:39:50 +00:00
Nathan Gray
c27e4f2098
Fix diff widget to better handle empty values (cleared fields)
2014-09-22 16:16:11 +00:00
Ralf Becker
2e8a353f3e
pending translations from our translation server
2014-09-22 11:57:15 +00:00
Nathan Gray
378a11f841
Also accept file names to remove.
2014-09-18 18:56:43 +00:00
Nathan Gray
cf3f99c260
Don't unregister selected rows from the selection manager, even if they're destroyed.
...
Fixes selection loses first rows when user scrolls down.
2014-09-18 02:58:52 +00:00
Nathan Gray
b7b6baaed5
Accept string without suffix as fixedWidth.
...
Fixes infolog defaults missing when changing details/no details
2014-09-18 02:29:14 +00:00
Nathan Gray
946558b559
More gantt improvements for large projects
...
- Add a further zoom level, yearly, for long projects
- Fix some scaling issues
- Turn on gantt cover while loading, so it gets a better chance to be displayed
2014-09-17 20:17:29 +00:00
Nathan Gray
60c2566bf9
Anything longer than 3 days is shown as Month + Day
2014-09-15 20:03:11 +00:00
Nathan Gray
69f6668d05
Some experimental speed changes:
...
- Make pm list load first, so others don't matter
- Add preference to limit dates in gantt
- Log timing of gantt loading
2014-09-15 19:35:29 +00:00
Ralf Becker
fad57f202b
using egw_json_response::json_encode() for GET requests too, to work agains empty windows caused eg. by wrong encoding
2014-09-10 18:25:36 +00:00
Ralf Becker
9e60cadb70
fixed date client/server protocol to always just append "Z" after seconds, so apps can compare date values
2014-09-10 10:22:55 +00:00
Ralf Becker
a4d18fdce2
trigger blur on taglist in getValue() to not loose just typed content (previous fix stoped selection of suggestions by mouse)
2014-09-10 10:02:07 +00:00
Nathan Gray
06a78f145f
Fix sub-grid column indent
2014-09-09 23:14:42 +00:00
Nathan Gray
dbbd64d66b
Make sure tab doesn't start by trying to display a hidden tab.
2014-09-09 22:19:50 +00:00
Nathan Gray
4d93470fb9
- Fix bug loading new data into gantt
...
- Setup for Stylite gantt features
2014-09-09 20:40:27 +00:00
Nathan Gray
c33a71c5f7
Add some CSS during column resize to indicate which columns are fixed and which columns will change when you resize.
2014-09-09 17:39:33 +00:00
Nathan Gray
108d3a0f40
When user changes the width of a relative width column, make sure that column stays at the set size and adjust all other relative columns to fit. Fixes relative width columns changing width again after being resized.
2014-09-09 16:58:26 +00:00
Ralf Becker
837a84b330
fixed IE 11 names almost all files "blob"
2014-09-09 16:30:00 +00:00
Nathan Gray
8cb9914d15
Change minimum characters to 4 to avoid long queries on large installs.
2014-09-09 14:13:47 +00:00
Ralf Becker
c73cc6b398
fixing the fix: now cat_id=1 got not lost with a 2nd default option set in addressbook (0=None)
2014-09-09 14:11:42 +00:00
Ralf Becker
8ecaac7dde
fixed category with cat_id=1 got lost in addressbook
2014-09-09 13:13:27 +00:00
Hadi Nategh
c651fa269a
* Filemanager: Fix not working file upload in IE
2014-09-09 12:59:06 +00:00
Ralf Becker
b1f0448b6d
fixed advanced search was always filtering by first option of custom-fields of type select or select-*
2014-09-09 08:36:34 +00:00
Ralf Becker
fd9519ccfe
fix IDE warning
2014-09-09 08:31:59 +00:00
Nathan Gray
4e6c5c3a1f
Warn about legacy function calls using too many arguments
2014-09-08 23:01:55 +00:00
Nathan Gray
4031e2b5a1
Fix customfield column size preference not used
2014-09-08 20:09:21 +00:00
Nathan Gray
ff327c30fe
Limit link search to 1000 results
2014-09-08 19:15:01 +00:00
Nathan Gray
7f291a17a6
Fix missed case of 'really need it'. See SVN r47435.
2014-09-08 18:23:34 +00:00
Ralf Becker
0404f7f272
fix IDE warning
2014-09-08 11:40:57 +00:00
Ralf Becker
f4e47c176f
* eTemplate2/all apps: fixed not displayed readonly dates outside lists (eg. created/modified dates in dialogs)
2014-09-08 11:38:02 +00:00
Ralf Becker
88a111b2c5
fixed storing same password twice in admin makes account unusable:
...
caused by tabs and callbacks added multiple times and therefor passwords beforeSendToClient method was called twice causing password to be replaced with asterisks
2014-09-06 10:00:42 +00:00
Ralf Becker
8c9854daa2
date widget has now api to set or get year, month, date, hours, minutes or time(stamp) and using that in calendar app.js for date manipulation
2014-09-05 10:34:37 +00:00
Nathan Gray
62e089c889
Add duration_unit parameter so we can reduce resolution for large time spans.
...
Prevents browser hanging while processing every minute of multi-year projects.
2014-09-04 20:53:27 +00:00
Hadi Nategh
6b62a84aae
Fix styling of freezed buttons while uploading files via file widget
2014-09-04 15:00:59 +00:00
Ralf Becker
57ab83f3b0
remove resize: none from et2_textbox, as users like to resize their textboxes
2014-09-04 14:04:54 +00:00
Ralf Becker
35f63b35d5
* Calendar: fixed freetime search to correctly read and set times from edit window
...
- fixed et2_date.set_value() to understand nummeric timestamps in usertime used on server-side (needed timezone offset)
- added new parameter-type for et2_date.set_value() string starting with + or - to add or subtract given number of seconds from current time (to not have to code that in applications)
2014-09-04 13:03:48 +00:00
Ralf Becker
e5dcceb27b
* Projectmanager/all apps: fix not working popups, eg. add existing action in elements list
...
also fixed IDE warnings
2014-09-04 08:29:02 +00:00
Ralf Becker
9e71712e2f
fix indention
2014-09-04 08:27:45 +00:00
Nathan Gray
e47cb0f3f6
Speed improvements for large gantt tasks
2014-09-03 20:11:48 +00:00
Ralf Becker
cf7f5fef7e
remove addressbook-email from app-list in link widgets
2014-09-03 12:53:43 +00:00
Nathan Gray
70d918331b
Prevent additional objectManagers.
...
Fixes separate selection problem with right clicks on sub-grids.
2014-09-02 22:29:19 +00:00
Ralf Becker
d50ccc9c21
fixed not working custom date filter
2014-09-02 16:26:37 +00:00
Ralf Becker
757a741d99
* Tracker/eTemplate: user could not empty CC field (taglist-email)
2014-09-02 12:22:31 +00:00
Klaus Leithoff
a1bf9c0d9b
allow to empty the taglist (even provided prior content is part of the preserve array), by returning null upon validation when array is empty
2014-09-02 11:39:23 +00:00
Hadi Nategh
ea57df4765
Add css class to add contact button in url-email widget, and make the icon size 16x16
2014-09-02 08:39:57 +00:00
Ralf Becker
ff626a812b
disabling my workarounds to better test Nathans fixes in action system
2014-09-02 08:30:14 +00:00
Nathan Gray
12ab21e6a4
- Propagate clearSelection() to children
...
- Fix missed change in previous commit
2014-09-01 18:44:13 +00:00
Nathan Gray
3a49e4cfec
Fix handling of missing ID (usually from empty placeholder)
2014-09-01 16:53:59 +00:00
Nathan Gray
fa8861ef38
Preserve selected egwActionObjects through to nm_action, it will extract string IDs there.
2014-09-01 16:30:31 +00:00
Hadi Nategh
312a914ce2
Bind onmouseenter event of add contact+ button on url-email set_value, as widget might be created by apps client side code, not directly loaded from xet file
2014-09-01 10:02:18 +00:00
Hadi Nategh
02453109d1
Add new attribute to url-email widget in order to be able to add contact+ button to each email address.
2014-08-29 14:56:14 +00:00
Ralf Becker
d9bcab4f58
same is true (and fixable here) for right-click in sub for actions allowing no multiple entries
2014-08-28 12:14:09 +00:00
Ralf Becker
d9fe3a5f8c
when nextmatch queries children, querying controller has no filters, so we have to use the ones from its parent
2014-08-28 12:09:08 +00:00
Ralf Becker
8e75eca579
fixing temp. fix:
...
- doubleclick does not deselect selection in other hierarchy level (eg. previous selected sub-entry in infolog) --> use _senders
- if there was a confirmation _senders array contains strings with id instead of action-objects
- empty placeholder from sub-level is selectable --> ignore its empty id
2014-08-28 09:48:27 +00:00
Nathan Gray
ff29be3197
Fix history log widget no longer working
2014-08-27 17:13:38 +00:00
Ralf Becker
df83b4dbbe
an other timezone fix for time(only) widget: this.date is on current date, changing it in get_value() to 1970-01-01, gives a time-difference, if we are currently on DST
2014-08-27 16:57:22 +00:00
Ralf Becker
f9a99637d1
temp. fix for _ids containing (wrong) selections from different hierarchy levels, fixes doubleclick on InfoLog with children, selects more then one entry to open, which obviously fails
2014-08-27 15:56:01 +00:00
Nathan Gray
6b2b686544
Fix duration parsed in wrong format if there was no choice for format.
2014-08-27 15:09:14 +00:00
Ralf Becker
fe9336896c
fixed taglist-account displays groups as id eg. "-4"
2014-08-26 09:27:33 +00:00
Hadi Nategh
d806a5bf69
Change minWidth of columns in dataview to 20px
2014-08-26 07:34:33 +00:00
Nathan Gray
f3c15f87b1
Infolog lists embedded as action can have their own separate column preferences.
2014-08-25 23:18:09 +00:00
Nathan Gray
55ae503923
Even more date fixes:
...
- Don't send a date (just 1970-01-01) with timeonly values
- Avoid infinite loop when setting timeonly with timepicker
2014-08-25 19:33:35 +00:00
Nathan Gray
5b573114b9
Remove deprecated (& internal) __proto__.
...
Fixes error in IE with calendar edit.
2014-08-25 18:52:00 +00:00
Nathan Gray
60b02ccb4b
- validate filters when getting rows
...
- run method (beforeSendToClient, validate) needs to include all sub-templates (header_left, header_right, header_row, template) or those widgets get left out.
2014-08-25 17:28:00 +00:00
Nathan Gray
299caf9807
More time fixes:
...
- Also accept string timestamps in Zulu time
- Fix change detection causing nextmatch filter to not work
2014-08-25 17:26:22 +00:00
Hadi Nategh
a450db05b8
Make sure toolbar-dropdown list stays on the top
2014-08-22 15:38:23 +00:00
Ralf Becker
868e5e0a38
adding autocomplete attribute to et2_textbox and et2_passwd and use it in email wizzard/account to stop browser from accidently filling out empty fields
2014-08-21 13:06:17 +00:00
Ralf Becker
21d3dce3e4
adding et2_appicon class
2014-08-21 09:47:30 +00:00
Nathan Gray
4d5f5677e1
Try to correctly handle timezone offset on the other side of the world
2014-08-20 14:39:42 +00:00
Nathan Gray
28d2fad14a
* Change nextmatch column size calculations so extra size is allocated better.
2014-08-19 23:33:06 +00:00
Nathan Gray
ec1471c6d2
Another attempt at resolving the browser timezone issue
2014-08-19 21:22:26 +00:00
Hadi Nategh
a512c04183
Fix F.F does not trigger resize nm column onmousedown, but after mouseup
2014-08-19 13:58:35 +00:00
Hadi Nategh
fe02eda1a7
* Etemplate/Nextmatch: Do not trigger resize event on nextmatch header columns if the clicked element is select-tag, as it may cause conflict between two click and resize handlers in some browsers.
...
- Fix clicking on selectboxes located at nm header causes to resize the column, in FireFox.
2014-08-19 12:48:22 +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
Nathan Gray
175d6b7201
- Change zoom auto level to better suit projects a day or two long
...
- Reset start/end dates when changing data
2014-08-18 22:55:54 +00:00
Nathan Gray
976c7e55ac
- Adjust default columns to exclude resolution, completion, timesheets, votes and bounties. They can still be turned on manually, just hidden by default.
...
- Set some more default column widths
2014-08-18 19:44:37 +00:00
Nathan Gray
1e5ea67595
Fix unable to have checkboxes with an unselected value that evaluates to false.
2014-08-18 17:33:43 +00:00
Nathan Gray
5b91e871de
Deal with languages helpfully adding timezones into timestamps
...
Fixes random (12, 6, 7) hours sometimes added to dates
2014-08-18 16:47:27 +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
Ralf Becker
e47db95be7
* Mail: fixed sometimes not working (un)subscribe of mailboxes, added better diagnostic and automatic (de)select children
2014-08-15 11:22:43 +00:00
Hadi Nategh
a03a69bd8e
Override padding and border for remove class in fileupload progress, seems it gets padding from et2_link:firstChild class which is not meant to be set for remove div.
...
-Fix wierd yellow box next to fileupload progress.
2014-08-15 08:55:11 +00:00
Nathan Gray
f6bca11f4f
Add an additional format to parse times in the formatY-m-dTH Ⓜ️ s for insertion into spreadsheets, fixes warning when merge printing "Unable to parse date ... left as text"
2014-08-12 23:19:39 +00:00
Nathan Gray
4944b1a1fb
Fix double encoded & in merge functions
2014-08-12 17:48:47 +00:00
Nathan Gray
694a63d1f4
Indicate merge class to use for mail, fixes infolog placeholders not known
2014-08-12 16:58:07 +00:00
Nathan Gray
cc04f0b89c
Create & use a flag 'no_actions' to disable actions for sum rows
2014-08-11 23:13:02 +00:00
Nathan Gray
0fa3ad831b
Fix no longer working 'None' category option
2014-08-11 22:50:38 +00:00
Nathan Gray
f7589316e0
Make sure options are there before looking inside, avoids a potential error in filter options
2014-08-11 20:27:56 +00:00
Ralf Becker
672297df94
fix for somehow empty etemplate request content, giving an error when (or after) sending mail
2014-08-11 15:12:34 +00:00
Hadi Nategh
ef6aed6579
Make sure we are getting the current appName
2014-07-30 15:12:05 +00:00
Nathan Gray
5b873215b0
- Fix expanding closed projects by passing parent ID
...
- Fix missing milestone icon
2014-07-29 21:51:37 +00:00
Nathan Gray
795e2cdb9c
Refine cache check conditions, rows is always empty by this point.
2014-07-29 21:46:01 +00:00
Hadi Nategh
6689ca64f7
SelectAccount with type "none" should get sel_options but it should be readonly if user has no admin access. Fix infolog delegation for admin users with selectAccount type "none" selected
2014-07-29 17:39:35 +00:00
Klaus Leithoff
235888ad88
fix typo, that prevented the correct split of TreeNodeOpenItems
2014-07-29 12:50:39 +00:00
Nathan Gray
8a70df4df8
Handle num_rows set by application:
...
- Don't overwrite num_rows setting if the application sets it for some reason
- If num_rows is 0, don't get the initial rows server side
- If num_rows is 0 and the initial rows are missing, trigger an update right away to get them asyncronously.
2014-07-28 21:00:39 +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