Commit Graph

916 Commits

Author SHA1 Message Date
Ralf Becker
f49bbab26f fix an other CSP error, caused by json-responses send eg. from get_rows method on a GET request, filemanager opened in iframe from tracker 2014-07-17 17:26:00 +00:00
Nathan Gray
9f9f5184fc If selected egwActionObject(s) contain data, use that over global data store. 2014-07-14 20:29:42 +00:00
Nathan Gray
8a36e40b10 Call applyFilters() function instead of setting directly, which skipped change detection.
Fixes selection not cleared when applying a favorite.
2014-07-14 09:59:02 +00:00
Ralf Becker
9fdd92b5ea fix resize to work with zoom at least up to 125%, by calling resize a 2. time 2014-11-28 14:01:13 +00:00
Ralf Becker
77faf475f2 have to wait for script files to be loaded, before calling egw.link_handler or any other egw method 2014-11-27 08:57:34 +00:00
Ralf Becker
10b106619a * API: report failed Ajax requests to user incl. a hint that server error-log should contain more information 2014-11-21 16:18:29 +00:00
Ralf Becker
558076686f clientside redirect ignore appname only for popups, not eg. iframes like in admin 2014-11-19 16:17:00 +00:00
Hadi Nategh
ca2b56979c * Mail: Fix mail display and compose open in full height
-commits r49335, r49336, r49339, and r49340.
2014-11-10 12:54:31 +00:00
Hadi Nategh
82d40e52c0 * Mail: Make selected email item in compose dialog editable
- Edit selected email addresses by double clicking on them (For all email fields where free entry is allowed. e.g. To, CC, and Bcc fields in compose)
- Update widget taglist and its plugin (magicsuggest)
2014-10-30 15:12:11 +00:00
Hadi Nategh
49a1d76117 Not used plugin, but included 2014-10-30 14:31:12 +00:00
Ralf Becker
6b1c36f6d3 making popup resize a bit more relyable by using an extra timeout and trigger it for every load, not just first one 2014-10-30 11:10:03 +00:00
Ralf Becker
f5783649c1 * All App: get text selection in lists working with Alt/Cmd modifier and file drag-out with Shift+Alt/Cmd modifier
r49174: Apply Ctrl+Alt keys in order to be able to distinguish between content selection and dnd for draggable actions
r49176: * All Applications: Get all drag and drop action functionality working cross platform
-Fix drag Out to desktop functionality with Command+Shift keys (for Mac) or Alt+Shift keys (for other platforms)
-Fix content selection functionality with Command key (for Mac only) or Ctrl key (for other platforms)

r49177: text and German translations for drag-n-drop modifier hints
r49178: fix IDE warnings
2014-10-24 12:57:16 +00:00
Hadi Nategh
06372a3944 Fix scrolling of content in iframes for touch devices (applied for iOS) 2014-10-23 13:45:11 +00:00
Hadi Nategh
bf3f00ed36 Fix indentation 2014-10-22 15:36:26 +00:00
Hadi Nategh
06adc041fc Set hold trigger timer to 600 milliseconds in order to popup the context menu faster for touch devices 2014-10-22 15:33:05 +00:00
Ralf Becker
017ffe5e15 fixed javascript error "undefined attribute length" 2014-07-08 14:26:15 +00:00
Nathan Gray
a3a1d500ee set_preference now accepts an additional callback parameter, passed on to jsonq 2014-07-08 03:34:05 +00:00
Nathan Gray
08c10a70aa Update Resumable from github, fixes some problems with setting et2_file value to a list of files in firefox. 2014-07-07 20:26:48 +00:00
Ralf Becker
d399e01ce8 new client-side API methods egw.dataSearchUIDs() and egw.dataRefreshUIDs() search for a given uid or regular expression and refreshing matching nextmatch rows, if somethings found 2014-07-04 08:55:37 +00:00
Ralf Becker
23cbc01e2c activating observer for admin instead of app_refresh and using it to invalidate client-side account-cache 2014-06-26 08:23:02 +00:00
Ralf Becker
d4bb8a00a9 move et2_call method to egw.js to have it always available at window scope (it is NOT et2 specific), maybe we find a better/nicer place for it 2014-06-23 08:10:40 +00:00
Ralf Becker
ff00c695ca new API method egw_framework::popup($link, $target="_blank", $popup="640x480") to open a popup independent of running a regular or a JSON request 2014-06-18 13:57:15 +00:00
Nathan Gray
715bbf9abe If a refresh of a particular UID is requested and server doesn't give it then remove it.
Fixes refresh where the row no longer match filters, but is still there.
2014-06-17 19:23:14 +00:00
Nathan Gray
2bc3ad43c0 Avoid undefined error when links is not provided 2014-06-10 15:27:11 +00:00
Ralf Becker
6d6e9d8a43 also replace p tags 2014-06-05 09:54:21 +00:00
Ralf Becker
90214935be reapplied r42638: Add a global ajax callback so the et2 widget can stay in sync with the dhtmlxtree 2014-06-03 08:56:14 +00:00
Ralf Becker
d9c9e06aad reapplied r41681: fixed event handling in tree, added tree specific onSelect and onCheck events, implemented !multiple mode and fixed dhtmlxtree to not trigger onSelect if selection is change via set_value (according to their documentation) 2014-06-03 08:54:46 +00:00
Ralf Becker
85c5468013 fixed old tree stuff to use new dhtmlx locations, allways use dhtmlxtree/codebase/dhtmlxcommon.js 2014-06-03 08:17:43 +00:00
Nathan Gray
3b8bee4d18 Update dhtmlxTree & dhtmlMenu to latest version 2014-06-02 23:32:15 +00:00
Nathan Gray
4b1fc627c4 Update dhtmlxTree & dhtmlMenu to latest version 2014-06-02 23:31:30 +00:00
Nathan Gray
07ec496a8e Decode stored favorite before parsing it, fixes missing umlauts 2014-05-27 18:52:44 +00:00
Nathan Gray
eaccfdfe1d Enhance error message to include request info 2014-05-27 14:53:34 +00:00
Ralf Becker
ddc17e8e0d allow null as well as undefined for message-type-detection 2014-05-26 15:39:21 +00:00
Ralf Becker
28b45639be to give observer method of other apps more information about what to refresh, server-side adds now links to refresh-opener and therefore observer calls 2014-05-26 13:29:35 +00:00
Ralf Becker
b1603f4fd3 support <br/> and a single <a href="...">Text</a> (no further attributes!) in egw.message() 2014-05-26 13:05:40 +00:00
Ralf Becker
ddc1b2d673 docu update about how to stop regular refresh 2014-05-23 09:20:42 +00:00
Ralf Becker
7edd12d251 run observers in main window (eg. not iframe, which might be opener!) 2014-05-23 09:19:46 +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
Hadi Nategh
b3ee7bc605 Make sure if the refresh is done, then give up not to reload the whole page 2014-05-22 11:27:29 +00:00
Nathan Gray
33f264346a Fix error deleting a favorite 2014-05-13 21:39:23 +00:00
Ralf Becker
19fc7acb7f top.egw is a function not an object 2014-05-13 08:48:27 +00:00
Ralf Becker
ac220a6e82 using egw.is_popup() which deals with situation of egw main-window having an opener (eg. bookmark) 2014-05-13 06:44:50 +00:00
Nathan Gray
9a8182480f Stop popups from re-initializing sidebox. Fixes favorites causing whole application to reload after saving a popup. 2014-05-12 20:36:18 +00:00
Ralf Becker
194606b196 public method to translate between PHP and jQuery date(Time)Picker date/time-format 2014-05-08 15:57:07 +00:00
Ralf Becker
b111f5005b fixed select-accounts show only part of users, caused by previously trying to extend now used array 2014-05-07 15:51:45 +00:00
Nathan Gray
61198e3684 Update gantt code 2014-04-30 20:24:50 +00:00
Nathan Gray
140a0746d1 Make sure top actually has app before calling it.
Fixes error in calendar where non-list views are still in an iframe, but top window has no app.js
2014-04-30 16:25:05 +00:00
Nathan Gray
4d016169e7 Precautions for iframes + sidebox
- Unbind any existing events on existing sidebox, if _init_sidebox() is called again
- Only call _init_sidebox() on top-level window's app.js, fixes some iframe issues with admin
2014-04-29 16:51:57 +00:00
Nathan Gray
5c19f99d9d Remove no longer needed AJAX call for groups, API now provides them directly to the widget 2014-04-29 16:15:23 +00:00
Nathan Gray
178fa34031 Implement action system state for trees 2014-04-28 23:11:58 +00:00
Nathan Gray
21e5eb79dd Fix bug where if no additional apps were requested, no translation was done.
Was visible in ACL edit dialog.
2014-04-28 16:17:41 +00:00
Hadi Nategh
c912849bd5 Apply favorites sortable feature to sidebox fav. menu 2014-04-25 07:37:11 +00:00
Nathan Gray
62686e4b2a Enhancement to r45442 so search options provided as a list are still filtered, but server response is accepted unfiltered.
Fixes search options provided as a static list were not being filtered.
2014-04-23 21:42:22 +00:00
Nathan Gray
48fa6611f3 Use a single client-side cache for account selection so we don't have to send it for every widget 2014-04-23 19:00:59 +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
554789e9ff 2 new message types "help" and "info" and displaying now all message types but "success" until next message or user explicitly closes them 2014-04-02 19:02:49 +00:00
Nathan Gray
d3c0314b4d Switch AJAX upload library to Resumable for chunked uploads. 2014-04-01 20:48:40 +00:00
Ralf Becker
6fdf8c98d1 open preferences and ACL in a popup (ACL still needs a little more work: use et2_dialog to add/edit instead of an other popup) 2014-04-01 15:49:08 +00:00
Ralf Becker
d28583a3a4 fix Array has no method match, if egw_framework::message() is called in GET request 2014-04-01 14:16:11 +00:00
Ralf Becker
13ad291696 need to init apps too 2014-03-28 13:15:11 +00:00
Ralf Becker
115aabf21a fixed error because using (by loading order sometimes) uninitialised class-variable instead of documented and initialies private var 2014-03-28 08:06:30 +00:00
Nathan Gray
e7fd500006 Store the jQuery jqXHR request object in the json_request, and return it from sendRequest() so caller can access it, if needed. 2014-03-26 17:53:09 +00:00
Ralf Becker
a4b27d286d * FireFox/all apps: fixed in recent FF version popups opened always in a single popup (overwritting previous opened one) 2014-03-26 10:32:17 +00:00
Ralf Becker
7d7436e54b fixed javascript errors happening if config was not loaded 2014-03-25 12:23:06 +00:00
Ralf Becker
fcc1737036 fixed error when filename included non-ascii chars (eg. German umlauts) and added a header with information about author and Github url 2014-03-21 17:11:18 +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
Nathan Gray
aa3c0ca7c0 Pass along last modification time to callback 2014-03-18 22:28:50 +00:00
Nathan Gray
53f0873583 Avoid initial request to server on creation 2014-03-18 14:51:33 +00:00
Ralf Becker
f47e38f320 wrong window was used when compiling list of already included scripts or css files, fixes missing css styles for context menu in popups (list of links) 2014-03-13 15:28:42 +00:00
Ralf Becker
2a34b88111 fixed not working referesh of ACL list 2014-03-12 13:14:23 +00:00
Nathan Gray
26eaf7e1fe Add a isDefault flag to allow changing default execution function 2014-03-11 16:25:18 +00:00
Ralf Becker
086195c0aa stop event propagation after calling setState, fixes "double sidebox" in CRM view, if called via a favorite (caused 2 identical requests to server, which both added their sidebox) 2014-03-11 08:16:52 +00:00
Hadi Nategh
96a6a7ee1a Adjust width for resized popup windows, since we are trying to use fix width for edit popups 2014-03-10 16:04:01 +00:00
Ralf Becker
79e1b5c9b8 fixed CSP error for multiple eTemplate2s (CRM view), by allways sending etemplate data via et2_container tag (instead etemplate script tag) and create an et2 object for all of them in egw.js 2014-03-10 11:58:49 +00:00
Ralf Becker
ea04a556ca added a couple more default icons similar to et2_button, and fixed actions with just a caption string where not working with toolbar 2014-03-06 18:33:27 +00:00
Stefan Reinhardt
4da2182c14 delete: font-family + font-size 2014-03-05 17:03:46 +00:00
Ralf Becker
a7251c13ed using new css class "drop-hover" for hovering over egw_action dropables and no longer any activeClass showing possible drop targets 2014-03-05 12:31:32 +00:00
Ralf Becker
97a5a41867 fix typo 2014-03-04 12:20:26 +00:00
Ralf Becker
04442bb0cf move actions stuff to api bundle, as loading just it fails with etemplate bundle split in two parts (fixes error reported on devel list) 2014-03-04 09:10:58 +00:00
Nathan Gray
6b86eb9c0f For the purposes of keyhandling, consider textareas & buttons inputs too 2014-03-03 19:00:25 +00:00
Nathan Gray
e9b5dfde4d Bind key handler to save favorite on Enter 2014-03-03 18:51:58 +00:00
Ralf Becker
11d77f3dab fixed a couple of problems with automatic switch to idots template from mobile browsers: csp-error, wrong icons 2014-03-03 17:35:48 +00:00
Nathan Gray
3b15036ce8 Add a check for select_all action, and use it if there.
Fixes Ctrl+A only selected visible nextmatch rows.
2014-02-27 23:06:27 +00:00
Ralf Becker
1ae9925cd5 removed .on("mouse(enter|leave)" (wrapping trash icon), as it stalls delete of favorites in IE11 2014-02-26 15:44:00 +00:00
Nathan Gray
56ac3577f0 Revert r45738, it broke mouse selection.
Now users have to actually select the address before clicking send
2014-02-25 22:50:30 +00:00
Ralf Becker
71d685ef9d updating jQuery to 1.11.0 and jQuery-UI to 1.10.4, seems to fix some IE 11 problems 2014-02-25 17:18:02 +00:00
Ralf Becker
b4a0a18de6 fixing wired IE11 errors ... 2014-02-25 17:16:42 +00:00
Ralf Becker
81818d2bbd fixing wired IE errors: need to clone data in set_preferences, as it gets cleaned up in IE 2014-02-25 17:05:16 +00:00
Nathan Gray
4591fa6e21 Fix TypeError: Cannot call method 'css' of undefined
Fixes blank infolog popup, timesheet index
2014-02-25 16:31:06 +00:00
Ralf Becker
e5aa97e2a0 fix IDE warnings 2014-02-25 16:03:12 +00:00
Ralf Becker
8181772025 do NOT initialise imediatly, as DOM is not yet ready (at least in IE11) 2014-02-25 16:02:46 +00:00
Ralf Becker
58b6cb3bc6 fixed tons of IDE warnings 2014-02-25 15:03:13 +00:00
Ralf Becker
589a6e2e96 fixed not working hideOnDisabled when building popup menu for multiple drop actions, also fixed tons of IDE warnings 2014-02-25 15:02:49 +00:00
Ralf Becker
308dfdadc7 allow to already use egw.refresh() instead of egw_refresh() and added todo to move code 2014-02-25 09:46:05 +00:00
Ralf Becker
2f3add4ce9 hook to allow apps to add addional domains to CSP frame-src, eg. used by sitemgr to allow access to its sites, also fixed not displayed sidebox menu of old apps 2014-02-21 17:06:11 +00:00
Ralf Becker
796663c2a6 fixed modified translations were not automatic loaded after new login 2014-02-21 11:10:11 +00:00
Ralf Becker
530ebec63f fixed not translated time-labels in datetime picker 2014-02-19 16:40:56 +00:00
Ralf Becker
b692346cce several IE11 fixes avoiding or working around javascript errors 2014-02-19 15:10:39 +00:00
Ralf Becker
bd941f3601 allow to send a redirect from server-side via client-side egw.link_handler(url, app) allowing to specify which tab to use and a top-level (ajax=true) url 2014-02-19 15:08:38 +00:00
Ralf Becker
668bec020b fix display and logging of javascript errors for IE 2014-02-18 17:05:26 +00:00
Ralf Becker
186bdbcb55 running categories and acl in iframe again. If they run top-level their admin/js/app.js objects conflict with other top-level admin/js/app.js object and only one working categories or acl tab can be opened 2014-02-17 15:11:26 +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
0fa215c9e8 fixed sometimes not deletable favorites 2014-02-14 12:46:49 +00:00
Nathan Gray
bad65780bc Register a JSON handler to show error responses as error message instead of losing them. 2014-02-13 18:47:19 +00:00
Ralf Becker
af1e70ab32 fixed javascript error, if favorite has no href AND make sure all new favorites are created with an href, like they are created server-side 2014-02-13 16:50:49 +00:00
Ralf Becker
3a5ece79a7 fixed creating or deleting favorites in calendar does not work: was caused by sidebox not initialised as not yet loaded, now calling _init_sidebox from framework, also need to add a click handler for favorites as initialising sidebox removes one installed from template 2014-02-13 15:37:49 +00:00
Nathan Gray
96e44c018f Fix bug where loss of focus from clicking on a button did not trigger blur in time.
Fixes typing an email address & clicking send does not enter address into to field
2014-02-12 23:32:56 +00:00
Nathan Gray
614736e4e3 Handle lost bar position by reverting to 50%, same as too close to edge 2014-02-12 22:51:55 +00:00
Ralf Becker
f0d7751496 removed caret from group favorites, fixed prefered favorite was not show correct initialy nor updated 2014-02-12 21:51:25 +00:00
Ralf Becker
4a7c0204a0 fixed just added favorite can NOT be used as default for dropdown button (gave alert "No default set") 2014-02-12 20:55:10 +00:00
Ralf Becker
75316761b2 added FF name 2014-02-12 18:40:01 +00:00
Nathan Gray
1ca01da9b0 Fix missing group ID when deleting group favorites, fixes unable to delete group favorites 2014-02-12 17:33:22 +00:00
Ralf Becker
17b8bfcc95 fixed javascript error "max is undefined" 2014-02-12 16:36:51 +00:00
Ralf Becker
22b66c9e3d fix javascript error when clicking on a group favorite (state.state is undefined) 2014-02-12 11:23:04 +00:00
Ralf Becker
3ec6ffe264 deal with situation that storage quota on html5 localstorage is exceeded:
- browser/user can limit quota, we then get an exception which must NOT stall EGroupware!
- we set a smaller MAX_LOGS of 200 instead of current 1000
- if currently more log items stored OR if exception.name=="QuotaExceededError" we clear whole log (trying to clear old limit of 1000 messages)
2014-02-12 10:38:39 +00:00
Ralf Becker
af0876708f reverting fix deprecated warning returnValue use preventDefault() in jquery 2014-02-12 08:17:47 +00:00
Klaus Leithoff
85e844fd9b fix deprecated warning returnValue use preventDefault() 2014-02-12 08:10:58 +00:00
Ralf Becker
ea9e2569bc fixed not working multiple account trigger after changing html::submit_button() from <input type="submit" to <button 2014-02-11 16:42:02 +00:00
Ralf Becker
a639b42222 translate calendar/timepicker on demand, works around not working call with ready in popup, fixes javascript error when doubleclick a mail 2014-02-11 15:17:43 +00:00
Ralf Becker
195c63a9d3 fixed "undefined is not a function" error originating from egw_message, because jQuery not loaded, when egw_message get initialised 2014-02-10 16:10:01 +00:00
Ralf Becker
9bfc082843 fix not opening infolog popup 2014-02-10 11:49:27 +00:00
Ralf Becker
061a1a07f2 fixed popup detection to deal with main EGw window opened with an opener from a different security context, also made is_popup() a global egw method 2014-02-10 11:21:58 +00:00
Ralf Becker
12666f0f53 fiddeling around with re-throwing event caught by global error-handler 2014-02-10 09:18:08 +00:00
Ralf Becker
1f599abaf6 fix exception for not found image / null passed 2014-02-10 09:16:18 +00:00
Ralf Becker
ca334ad13b moving egw_preferences (handler to call preferenes, acl or categories) from jsapi.js to egw_preferences.js show_preferences() method 2014-02-07 14:04:12 +00:00
Ralf Becker
d90faa7dcc fixed app-header show in wrong tab, caused by framework object being created AFTER egw 2014-02-07 09:11:30 +00:00
Nathan Gray
444d82d1c7 -Unencode favorite search, firefox leaves encoded spaces
-If adding a favorite with same name as existing favorite, old one is removed from the sidebox.
2014-02-06 17:53:29 +00:00
Ralf Becker
b13a7eefb8 calling egw.message() without or with empty argument clears message, installed click handler to hide message and also check for translation of "error" to determine unspecified type 2014-02-06 17:24:40 +00:00
Ralf Becker
6a8802fc35 move egw_(message|app_header) from jsapi.js to egw_message.js available as egw(window).message(_msg, _type) and make it usable in popups too 2014-02-06 15:42:33 +00:00
Nathan Gray
1cb3ac1111 Fix groups in add favorite popup:
- missing options for selectbox
 - saving for group wouldn't work
2014-02-06 00:30:03 +00:00
Nathan Gray
2ece0f771f Use ajax flag to load acl into div, not iframe 2014-02-05 22:39:00 +00:00
Nathan Gray
c771f2fc80 Make sure group is there before trying to set its value 2014-02-05 20:53:08 +00:00
Ralf Becker
4c2e29f960 more styling of calendar edit 2014-02-05 10:04:13 +00:00
Ralf Becker
b8aa28c055 fixed error if argument was a widget, using jQuery.extend instead not existing clone() 2014-02-03 09:59:30 +00:00
Nathan Gray
5f4f8f99fd Don't require literal search text to be in results - if server returns it, present it to user 2014-01-29 17:32:32 +00:00
Ralf Becker
48679c3e6c update timepicker to (unnamed) version from Nov. 2013 2014-01-29 13:15:38 +00:00
Ralf Becker
a659b49f51 silently fix skiped minutes or times with just one digit, as parser is quite pedantic ;-) 2014-01-29 13:10:31 +00:00
Hadi Nategh
fbccbb87a3 Fix wrong styling in egw_tail log 2014-01-28 08:33:28 +00:00
Ralf Becker
99ce5b41f9 allow to optionally specify app for redirect instead of always using current app 2014-01-27 16:28:39 +00:00
Hadi Nategh
ea20648d39 Remove inline-scripts from egw_tail. Additionally, add a new library to jsapi related to egw_tail 2014-01-27 14:29:24 +00:00
Ralf Becker
f0710fbecb fixed et2_dialog static methods like confirm did not show translations: injecting an egw object with loaded translations for current app 2014-01-23 10:52:44 +00:00
Ralf Becker
a788827c1e check if json apply needs a not yet instanciated app.js object and instanciate it in that case 2014-01-23 09:03:30 +00:00
Nathan Gray
e103145a53 Fix JSON to call callback even if server does not return anything in particular. 2014-01-22 09:30:22 +00:00
Ralf Becker
58e13743fc make local storage more robust (deal with gaps) 2014-01-21 15:09:06 +00:00
Ralf Becker
93ae56a9f2 catch exception about circular reference in JSON.stringify, try fixing object by unsetting _parent&_children and if that does not work the whole argument 2014-01-21 11:23:26 +00:00
Nathan Gray
95b51fefea Some UI for client error log, log egw.open() calls 2014-01-21 09:21:46 +00:00
Ralf Becker
658b773dc1 fixed an ide warning 2014-01-20 15:25:43 +00:00
Ralf Becker
595d2a23bf first step of a javascript error notifier and clientside log 2014-01-20 15:23:40 +00:00
Nathan Gray
e276a14be1 Make sure to copy registry settings, not use reference
Fixes mail compose always filling address
2014-01-20 09:48:17 +00:00