Nathan Gray
681566471a
Accept and process commands even if they're right at the beginning.
...
Fixes bug where commands at the start of content were not processed.
2014-12-03 19:58:59 +00:00
Ralf Becker
597e9b82ae
remove no longer necessary resize from (old) eTemplate, as it is done now by egw.js for all popups
2014-12-03 07:34:30 +00:00
Ralf Becker
f7610cd6d6
do not validate vfs-widgets not returning a value, as it overwrites preserved values with null
2014-12-02 19:17:03 +00:00
Ralf Becker
8a9657541d
moving egw_openWindowCentered() to egw(window).openPopup()
2014-12-01 10:45:24 +00:00
Hadi Nategh
7f4f340efd
Missing code from commit r49612
2014-11-27 17:31:03 +00:00
Ralf Becker
674fd0736a
fix PHP Fatal error: Access to undeclared static property: customfields_widget::$non_printable_fields
2014-11-19 13:24:12 +00:00
Ralf Becker
7bfa13728d
class var to enable/disable memory_usage reporting to error_log
2014-11-19 12:57:31 +00:00
Ralf Becker
c633e0033b
* all aps: lower memory requirements of insert into document by skipping HTML processing, if there are no html (custom-)fields
2014-11-19 12:20:59 +00:00
Ralf Becker
ca7bdb66a3
fix error introduced by previous commit
2014-11-19 09:22:52 +00:00
Ralf Becker
b10cf0a295
quiten permanent error_log on disabled cells and fixed IDE warnings
2014-11-19 08:53:17 +00:00
Ralf Becker
5eeac7093c
use filemanager UI as UI for sharing directories
2014-11-18 12:55:32 +00:00
Ralf Becker
be66f13885
fix unknown modifier "n" warning caused by a "/" in replacement
2014-11-18 12:28:20 +00:00
Ralf Becker
08ab6679d2
try to increase/double prce.backtrack_limit no failure to preg_replace up to 1/4 of memory_limit
...
previous code was adding max 10 time 10000 to default limit of 1000000, which increased it by 10% max, given we have now a default memory_limit of 128M
2014-11-14 19:08:18 +00:00
Ralf Becker
8f713fe2f1
fix fatal error if customfields contains widget with no validation method --> nothing to validate / return
2014-11-13 09:28:22 +00:00
Ralf Becker
1c6524cf0b
remove upper limit of number of characters at last domain-part to allow new domain-names like .hamburg
2014-10-30 13:20:04 +00:00
Ralf Becker
93bc0feb16
* Filemanager: fix since PHP 5.5.18 not longer working non-ascii chars in filenames, eg. German umlauts or accents
2014-10-18 12:17:17 +00:00
Nathan Gray
f099800b62
Prevent empty options being sent when selectbox is in a row.
...
Fixes unwanted numeric options in auto-repeat rows.
2014-10-14 16:43:47 +00:00
Ralf Becker
a1e444fdfd
fix non-fatal PHP Parse error, when $j was used eg. in onload
2014-10-13 12:21:53 +00:00
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
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
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
3edc0f3080
revert r48945, as it break for some conditions
2014-10-08 09:07:01 +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
26261e080d
Fix bad logic breaking historylog
2014-10-07 20:47:54 +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
aeefd2823a
Use a client-side setDetachedAttributes() to do needed data changes for dates.
2014-10-06 20:43:46 +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
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
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
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
88a6114c0a
Look for old widgets that were adapted to etemplate2 but still follow old name scheme
2014-09-25 18:30:32 +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
837a84b330
fixed IE 11 names almost all files "blob"
2014-09-09 16:30:00 +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
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
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
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
9e71712e2f
fix indention
2014-09-04 08:27:45 +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
Nathan Gray
ff29be3197
Fix history log widget no longer working
2014-08-27 17:13:38 +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
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
ec1471c6d2
Another attempt at resolving the browser timezone issue
2014-08-19 21:22:26 +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
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
0fa3ad831b
Fix no longer working 'None' category option
2014-08-11 22:50:38 +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
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
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
Hadi Nategh
40aa20eaa2
As we replace spaces with + for those account ids which contain spaces, therefore we need to do the same for getting request-id too.
2014-07-28 15:29:49 +00:00
Ralf Becker
1266aeb52a
quiten permanennt error_log in etemplate_widget::run, if widget is disabled, and therefore not running
2014-07-24 09:38:55 +00:00
Nathan Gray
8f0513c99e
Don't clear children if tabs attribute not provided
2014-07-22 21:33:41 +00:00
Nathan Gray
101eee1e1c
Extend run() method for tabs:
...
- Apply additional tabs once in run() before applying the method, instead of in each method
- Apply tab readonlys to disable tabs, so they can be skipped
2014-07-22 21:26:03 +00:00
Nathan Gray
bd41288788
- Add special handling for ids like something[{$row}] to only send select options once
...
- Don't need to process or send options for account, it is done client side now.
2014-07-21 16:31:10 +00:00
Ralf Becker
9712e625db
* Admin/API: remove no longer fully supported method to not "store session-id in cookie", it is the safer default anyway
2014-07-18 10:02:51 +00:00
Ralf Becker
4fc6102162
removed not used setting of application via GET parameter
2014-07-18 08:48:37 +00:00
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
Klaus Leithoff
0aa84dbaa1
use self::get_id on multiple selects and radio AND regard its output-format
2014-07-17 12:39:20 +00:00
Ralf Becker
9fa607c3bd
fixed problems reported by LFRZ
2014-07-16 12:18:04 +00:00
Nathan Gray
67390bbcfa
Add HTML5 drag support for Chrome for all files in link lists
2014-07-14 22:34:55 +00:00
Nathan Gray
94b726f883
Don't remove request from POSTs, etemplate is still active client side.
...
Fixes etemplates stop working after downloading a file (merge print, zip, etc.)
2014-07-14 12:03:04 +00:00
Ralf Becker
c54e53d405
fixed PHP Strict Standards: Declaration of etemplate_widget_*::set_attrs() should be compatible with etemplate_widget::set_attrs()
2014-07-14 10:02:47 +00:00
Ralf Becker
2a6168a1c2
* Addressbook: fixed sorting of category tree
...
fixes not displayed cat-tree and validation error introduced with r47575
2014-07-09 11:18:47 +00:00
Nathan Gray
48016d16c0
Fix category tree sorting
2014-07-08 23:15:49 +00:00
Nathan Gray
210ebb5706
- Add $$user/primary_group$$ common placeholder
...
- Add calendar_owner/<contact> sub-placeholders, including primary_group
2014-07-08 19:05:09 +00:00
Nathan Gray
b7a6e53163
* Added context menu to download all linked files in one zip file
...
As long as there are 2 or more files linked to the entry, you can download them all as a zip using the link list context menu.
2014-07-08 16:51:01 +00:00
Ralf Becker
2de7931700
* Admin: custom-fields were not loaded, account was edited from admin not addressbook
2014-07-08 15:05:20 +00:00
Nathan Gray
15ddeb2a24
- Avoid duplicate ID warning by only returning the value from the matching radio button
...
- Fix radiobuttons where the options/values were set in the template instead of sel_options
2014-07-07 16:19:37 +00:00
Nathan Gray
26f1e351f3
Apply missing font & size preferences
2014-06-30 21:28:03 +00:00
Ralf Becker
15fbd6bde8
fixed not working custom fields of type radio
2014-06-30 19:34:53 +00:00
Ralf Becker
d8b35e0a77
only join in extra table, if we really need it, to improve performance
2014-06-30 09:05:16 +00:00
Ralf Becker
ffae12e240
* all apps: custom-fields are now stored in own egw_customfields table (no more limit on number), site configurations get now JSON serialized
2014-06-23 14:35:22 +00:00
Ralf Becker
febc2f8763
re-added validation for null as it is needed/used by widget-types other then duration
2014-06-12 07:51:41 +00:00
Ralf Becker
5a32a7d622
widgets should NEVER return null (eg. for empty), as server-side $preserv will overwrite it
2014-06-11 09:14:43 +00:00
Nathan Gray
0a1c0e5135
Do disabled check before grid name expansion, so disabled=!@grid_id will work
2014-06-09 19:24:48 +00:00
Ralf Becker
a45525949b
implement clientside validation for textbox, stop complaining about $ in regular expressions of validator and fix attribute name from "preg" to "validator" on server-side
2014-06-05 15:47:23 +00:00
Nathan Gray
470cf39e94
Change validation to accept & validate numeric list IDs if include_lists is set.
2014-06-04 20:00:46 +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
ee7349f4f6
Fix missing path, prevented single selected address merge into mail from opening properly in popup
2014-06-04 15:41:24 +00:00
Nathan Gray
3b8bee4d18
Update dhtmlxTree & dhtmlMenu to latest version
2014-06-02 23:32:15 +00:00
Ralf Becker
92fddc9c51
fixed validation of private custom-fields using a different name, eg. addressbook
2014-06-02 13:29:26 +00:00
Ralf Becker
b59585cf4b
fixed IDE warnings
2014-06-02 13:25:20 +00:00
Nathan Gray
79f7a8a6cf
Use popup mail compose window if default document is an email, same as non-default documents
2014-05-29 15:33:27 +00:00
Nathan Gray
e5f1e3e473
Decode title before showing to user in list
2014-05-26 20:05:33 +00:00
Ralf Becker
9455efae32
added postSubmit=true to document actions in mime-type sub-menus, was there for all other cases already
2014-05-26 16:09:03 +00:00
Ralf Becker
090c6eb19f
only replace @ or $cont, no $row_cont as we dont know row, upload/selection of vfs attachments in mail fails otherwise
2014-05-22 12:15:11 +00:00
Ralf Becker
f203703e42
fixed changing of settings (eg. template set) did not work anymore reported by Christoph Kaulich
...
caused by always breaking reference from attribute values. Now reference is only broken, if attribute value needs expanding (because it contains @ or $)
2014-05-22 09:39:16 +00:00
Nathan Gray
ccdb54a366
Gantt chart progress
2014-05-21 22:11:36 +00:00
Ralf Becker
cbd328eb55
htmlarea-widget in mode="ascii" looses or modifies content (<, >, <tag>) by calling html::purify on it, also fixed set_attrs to expand attribute values
2014-05-21 09:55:02 +00:00
Nathan Gray
02db5d0357
Don't send blank row option for read-only selectboxes. It's not needed, and can conflict with non-readonly (nm filter vs row)
2014-05-20 19:25:48 +00:00
Ralf Becker
bdba288048
fix ide warning
2014-05-16 09:31:18 +00:00
Ralf Becker
ec667b9c41
also implement r46958 server-side: get customfield_list to respect readonlys of single fields
2014-05-16 09:29:10 +00:00
Ralf Becker
bdbc22dd98
reverted r46410 calling header explicitly before navbar, causing navbar no longer being able to add stuff to header, eg. include javascript
...
and fixing idots_framework::navbar() to still call header, if $navbar_done is set
2014-05-15 09:41:31 +00:00
Nathan Gray
e1134224fc
Move gantt css to seperate link instead of including
2014-05-13 22:24:25 +00:00
Nathan Gray
bca1696866
Tell request not to get cleaned up, something changed
2014-05-13 20:11:06 +00:00
Nathan Gray
777e1bec1e
Better handling for detached label, fixes errors if there is no label
2014-05-12 22:16:05 +00:00
Nathan Gray
3230554c01
Add a config setting 'assigned' to allow extending classes to provide assigned users in a way other than a specific entry field.
2014-05-07 20:54:53 +00:00
Nathan Gray
354c030520
Work in progress on gantt chart:
...
- Gantt widget now supports context menu
2014-05-07 14:41:15 +00:00
Ralf Becker
610e7e6e93
halfway fixed eTemplate(1) part of etemplate_widget_transformer, but then enabled old code in contact_widget again, as value is not yet handeled correctly by callback in contact_widget
2014-05-07 09:00:59 +00:00
Nathan Gray
33594b565d
Custom fields are not allowed to have a null value, since NULL is skipped by backend
...
Fixes bug where it was impossible to clear date cfs
2014-05-05 22:19:54 +00:00
Nathan Gray
4053d1a204
- Move function to find selectbox options to public, static so other widgets (read only selectAccount) can use it
...
- Fix selectAccount missing extra app-specific options
2014-05-05 17:25:01 +00:00
Ralf Becker
ed85cc3ce6
allow apps to supply own etemplate_widget_transformer extending widgets
2014-05-05 16:05:39 +00:00
Hadi Nategh
098de471cd
No need to overwrite the "beforeSendToClient" method for date widget, because we are handling date/time conversion on client side
2014-05-05 14:11:00 +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
Ralf Becker
e526c42e3d
forgot to handle empty-label value
2014-04-18 08:32:13 +00:00
Nathan Gray
dac15dbded
Fix an additional case in duplication detection.
...
Prevents doubled options in some select-account widgets
2014-04-17 21:47:13 +00:00
Ralf Becker
0b9bffc40c
fixed validation for select-account to work on actual value and attribute account_type and not on options send by server
2014-04-17 12:46:27 +00:00
Nathan Gray
22dfe2a5db
Any changed sel_options from app need to get encoded too.
...
Fixes missing 'All' option in Tracker with Firefox.
2014-04-08 17:42:19 +00:00
Ralf Becker
9532debc5d
* eTemplate/all apps: removed custom-field widget type IP again, as it caused too many problems in various modules
2014-04-08 11:59:55 +00:00
Nathan Gray
d81adb1d82
Fix bugs in server side custom field validation
...
- Multiselects were always passing required check
- Validation errors were not properly set, so weren't displayed
2014-04-02 20:12:52 +00:00
Ralf Becker
ce3c5c897f
stop server-side validation errors, if submit was with no_validation
2014-04-02 19:30:33 +00:00
Nathan Gray
d3c0314b4d
Switch AJAX upload library to Resumable for chunked uploads.
2014-04-01 20:48:40 +00:00
Ralf Becker
ba4bb53c29
fixed not working autorepeat if $row_cont was used
2014-03-28 17:32:32 +00:00
Klaus Leithoff
a9f7b3486b
silence permanent error log
2014-03-27 14:30:14 +00:00
Nathan Gray
42272cf2e2
Don't take away default action's onExecute, even if it does have children
2014-03-25 16:47:27 +00:00
Ralf Becker
1007f2ec7e
fixed idots not always loaded client-side configuration: now using egw_info[flags][nonavbar] === "popup" to let framework definitly know we dont want a navbar (need to know before navbar is called and can not use true, which is allways set by index.php)
2014-03-25 12:12:00 +00:00
Ralf Becker
dfc186f9d5
nicer formatting of apps using old eTemplate
2014-03-24 15:08:55 +00:00
Ralf Becker
dba03454fb
using $readonlys["__ALL__"] with explicit $readonlys[$name] = false was NOT working for extensions
2014-03-24 09:03:38 +00:00
Ralf Becker
05857ba73b
more changes etemplate_old --> etemplate, maybe better not started that ;-)
2014-03-23 09:36:35 +00:00
Ralf Becker
20193e6418
more changes etemplate_old --> etemplate, maybe better not started that ;-)
2014-03-23 09:34:18 +00:00
Ralf Becker
570b95f9ae
making old etemplate class available as etemplate_old, as that name was changed in a couple of files ...
2014-03-23 09:20:22 +00:00
Ralf Becker
1f0dd46118
as we use now etemplate_new for eTemplate2 and etemplate for old eTemplate class, there is no need to switch etemplate class between new and old
2014-03-23 08:41:31 +00:00
Ralf Becker
0d1deb6ca6
fixed old eTemplate apps show no navbar in idots template
2014-03-23 08:22:56 +00:00
Klaus Leithoff
bec6913567
revert changes, as the double - is needed here; needs to be fixed elsewhere
2014-03-21 14:50:53 +00:00
Klaus Leithoff
354a2ac3e8
fix ->typo<- that prevented the merge action on message/rfc822 in addressbook to function properly
2014-03-21 14:26:10 +00:00
Nathan Gray
133c4a317c
Fix bug in using knownUIDs where empty rows were left or too many removed when the count changed
2014-03-19 19:19:34 +00:00
Nathan Gray
4a5d906e48
Enable using knownUIDs and lastModification timestamp to avoid sending unchanged rows back to client
2014-03-18 22:54:14 +00:00
Nathan Gray
92e29ff0c4
Fix merge print to work with both old & new ODF spreadsheets
...
- adds support for calcext:value-type cell attribute
2014-03-18 14:13:57 +00:00
Ralf Becker
25351aa53b
fixed typeOptions were not added, if selectbox had no explicit type attribute: eg. <select-account
2014-03-18 11:39:03 +00:00
Ralf Becker
7251895690
fixed not called beforeSendToClient callbacks for added tabs, if tab has no (optional) namespace
2014-03-18 11:01:46 +00:00
Nathan Gray
b0db615411
- Fix taglist account infinite loop when looking for accounts (using link title system instead of data source)
...
- Don't search server side if there's no query string
2014-03-17 23:03:24 +00:00
Ralf Becker
2eb9352f78
fixed error "template NOT found!", if template-name contains cache-buster
2014-03-17 17:12:02 +00:00
Ralf Becker
6f099299b4
we need noPrint on td
2014-03-16 15:22:48 +00:00
Ralf Becker
3e7ba51020
fixed ReferenceError: $j is not defined in old eTemplate popups
2014-03-15 10:04:38 +00:00
Ralf Becker
184a9fa4e8
allow to use namespaced $readonlys for grids, eg. grid uses "grid" as name, you can now set $readonlys["grid"]["something"] as well as $readonlys["something"] like in eTemplate2
2014-03-14 09:36:01 +00:00
Klaus Leithoff
e4deb0f0a5
switch off talkative setElementAttribute
2014-03-12 13:44:33 +00:00
Nathan Gray
612b5bf34f
Fix searching for a space gives database error
...
(To actually search for a space, use quotes)
2014-03-11 18:26:40 +00:00