Commit Graph

728 Commits

Author SHA1 Message Date
Morris Jobke f63915d0c8 update license headers and authors 2015-06-25 14:13:49 +02:00
Lukas Reschke 3d2ac6dbb6 Use trusted mimetype
We shall not use untrusted mimetypes in this context
2015-06-22 15:30:27 +02:00
Bjoern Schiessle b645d795d2 add occ tool to delete versions 2015-06-16 16:56:27 +02:00
Jenkins for ownCloud 3542148761 [tx-robot] updated from transifex 2015-06-07 01:55:03 -04:00
Joas Schilling bd0b9a0fe0 Add unit tests for non existing users 2015-06-05 13:23:50 +02:00
Joas Schilling 4e24486a89 Check whether the user exists before trying to set up his file system 2015-06-05 11:31:49 +02:00
Jenkins for ownCloud baca5c60c0 [tx-robot] updated from transifex 2015-06-02 01:56:23 -04:00
Vincent Petry 9a6d253af3 Abort expiration when file is gone
Sometimes a background job for versions expiration was scheduled for a
file that has been moved or deleted since.

This prevents showing useless warnings in the log and simply bail out.
2015-05-29 13:15:12 +02:00
Vincent Petry 7386257676 Merge pull request #16075 from owncloud/skeleton-copy-delay
wait with copying the skeleton untill login and setupfs are done
2015-05-20 13:52:08 +02:00
Scrutinizer Auto-Fixer fdbc21fc6c Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-05-19 11:23:06 +00:00
Robin Appelman 724f88d9ff fix tests 2015-05-18 12:11:32 +02:00
Roeland Jago Douma 7a8072e958 Move core apps from OC_Log::write to OCP\Util 2015-05-18 10:57:52 +02:00
Joas Schilling 03e26a0fbe Merge pull request #16337 from owncloud/versions-expireforowner
Use owner when expiring versions, not the logged in user
2015-05-15 15:02:26 +02:00
Vincent Petry f8a4cc0284 Added unit tests for versions storing 2015-05-15 12:24:34 +02:00
Jenkins for ownCloud 1596a1fd32 [tx-robot] updated from transifex 2015-05-14 01:54:47 -04:00
Vincent Petry 033b3dac92 Use owner when expiring versions, not the logged in user 2015-05-13 18:40:35 +02:00
Vincent Petry 20d2d8d3dd Merge pull request #15881 from owncloud/share-moveversionsproperly
Fix version rename with files and folders
2015-05-11 18:24:34 +02:00
Joas Schilling 2b092f2e93 Add a test for getting the versions of an empty path 2015-05-07 16:02:35 +02:00
Joas Schilling 05fe2006ee Do not run method when the path is empty 2015-05-07 14:31:21 +02:00
Jenkins for ownCloud b60dcd91bb [tx-robot] updated from transifex 2015-05-05 01:55:36 -04:00
Vincent Petry 972e189605 Use moveFromStorage instead of streamCopy when restoring version 2015-04-30 16:15:18 +02:00
Vincent Petry 2228faaa39 Fix version rollback to keep fileid 2015-04-30 16:15:18 +02:00
Robin Appelman be55a90323 dont use our now non existing hook 2015-04-27 14:07:15 +02:00
Vincent Petry 63e2a4a5fa Fix version rename with files and folders
- fix moving folder into another folder
- fix moving file or folder into shared folder as recipient
2015-04-27 13:17:03 +02:00
Joas Schilling 3f3f8c2f99 Fix usage of deprecated private constants 2015-04-18 10:30:02 +02:00
Jenkins for ownCloud 7f3f191ee9 [tx-robot] updated from transifex 2015-04-14 18:19:31 -04:00
Bjoern Schiessle 9a7fbbbc5a fix versions tests 2015-04-07 13:30:31 +02:00
Thomas Müller 1b42b492dc kill OC_FileProxy 💥 2015-04-07 13:30:28 +02:00
Thomas Müller 3bf269e565 Merge pull request #15229 from owncloud/response-setContentLengthHeader
Add OC_Response::setContentLengthHeader() for Apache PHP SAPI workaround...
2015-04-03 22:51:36 +02:00
Lukas Reschke c8c722bc6d Merge pull request #15129 from owncloud/version-command-bus
expire versions in a background command
2015-03-26 19:55:13 +01:00
Jan-Christoph Borchardt e3d60ee5b0 Merge pull request #14958 from owncloud/dropdown-style
popover style for apps and user dropdown menus
2015-03-26 18:07:35 +01:00
Robin Appelman 6447962f2a teardown after we're done 2015-03-26 17:30:43 +01:00
Robin Appelman 1969c8d5c8 save uid instead of user object in command 2015-03-26 17:11:34 +01:00
Robin Appelman 176fba83ea Setup the filesystem in the expire command 2015-03-26 17:07:02 +01:00
Robin Appelman 7ec8f12ad4 expire versions in a background command 2015-03-26 17:07:01 +01:00
Andreas Fischer 0f58315543 Add OC_Response::setContentLengthHeader() for Apache PHP SAPI workaround.
Do not send Content-Length headers with a value larger than PHP_INT_MAX
(2147483647) on Apache PHP SAPI 32-bit. PHP will eat them and send 2147483647
instead.

When X-Sendfile is enabled, Apache will send a correct Content-Length header,
even for files larger than 2147483647 bytes. When X-Sendfile is not enabled,
ownCloud will not send a Content-Length header. This prevents progress bars
from working, but allows the actual transfer to work properly.
2015-03-26 16:37:38 +01:00
Jan-Christoph Borchardt f0b0287333 adjust animations of Share, Versions and others to OC.menuSpeed 2015-03-26 12:21:40 +01:00
Jenkins for ownCloud b585d87d9d Update license headers 2015-03-26 11:44:36 +01:00
Morris Jobke 06aef4e8b1 Revert "Updating license headers"
This reverts commit 6a1a4880f0.
2015-02-26 11:37:37 +01:00
Thomas Müller df3c73de72 Merge pull request #14403 from owncloud/update-license-headers
Update license headers
2015-02-23 13:53:16 +01:00
Jenkins for ownCloud 6a1a4880f0 Updating license headers 2015-02-23 12:13:59 +01:00
Jenkins for ownCloud f63b09faca [tx-robot] updated from transifex 2015-02-23 01:55:10 -05:00
Lukas Reschke 602e563d99 Merge pull request #14366 from owncloud/remove-old-l10n-files
Remove some old l10n files they arent loaded anymore
2015-02-19 23:31:21 +01:00
Joas Schilling e52a63eccb Remove some old l10n files they arent loaded anymore 2015-02-19 11:58:40 +01:00
Lukas Reschke cbe31fbf57 Use `int` instead of `string` 2015-02-16 12:01:05 +01:00
Lukas Reschke a7df23ceba Manually type-case all AJAX files
This enforces proper types on POST and GET arguments where I considered it sensible. I didn't update some as I don't know what kind of values they would support 🙈

Fixes https://github.com/owncloud/core/issues/14196 for core
2015-02-13 13:33:20 +01:00
Jenkins for ownCloud 9baf7a0a3f [tx-robot] updated from transifex 2015-02-11 01:55:07 -05:00
Jenkins for ownCloud e2d4b3c123 [tx-robot] updated from transifex 2015-02-09 01:54:53 -05:00
Jenkins for ownCloud 77e9c212ed [tx-robot] updated from transifex 2015-02-04 01:55:49 -05:00
Bjoern Schiessle 15ae6b47ed replace hook with storage wrapper 2015-01-19 09:16:15 +01:00
Jenkins for ownCloud a65f666834 [tx-robot] updated from transifex 2015-01-16 01:55:51 -05:00
Vincent Petry 87f81e5926 Remove unneeded addTranslations() calls 2015-01-14 14:36:23 +01:00
Jenkins for ownCloud f367bbb49d [tx-robot] updated from transifex 2015-01-14 01:55:16 -05:00
Björn Schießle 331d73c3a3 Merge pull request #13182 from owncloud/download_versions
make versions of shared files downloadable
2015-01-12 12:03:21 +01:00
Thomas Müller b1031c6355 Merge pull request #13188 from owncloud/add-check-if-user-is-logged-in
Add check if user is logged-in
2015-01-09 16:45:53 +01:00
Bjoern Schiessle d699d31518 make versions of shared files downloadable 2015-01-09 12:46:24 +01:00
Lukas Reschke 1cfcec8684 Add check if user is logged-in
Otherwise a fatal PHP error is thrown since the filesystem is not setup:
```
( ! ) Fatal error: Call to a member function getOwner() on null in /Users/lreschke/Programming/core/lib/private/files/filesystem.php on line 817
Call Stack
1	0.0004	247792	{main}( )	../index.php:0
2	0.0946	5088776	OC::handleRequest( )	../index.php:28
3	0.1423	7491280	OC\Route\Router->match( )	../base.php:748
4	0.1664	8592152	call_user_func:{/Users/lreschke/Programming/core/lib/private/route/router.php:250} ( )	../router.php:250
5	0.1664	8592216	__lambda_func( )	../router.php:250
6	0.1665	8599064	require_once( '/Users/lreschke/Programming/core/apps/files_versions/ajax/getVersions.php' )	../route.php(135) : runtime-created function:1
7	0.1801	9061096	OCA\Files_Versions\Storage::getUidAndFilename( )	../getVersions.php:7
8	0.1801	9061144	OC\Files\Filesystem::getOwner( )	../storage.php:45
```

Furthermore this adds the CSRF check as a nice-to-have addition, the requests accessing this are done via the jQuery AJAX methods and thus the header is automatically added to all requests already.
2015-01-09 11:55:18 +01:00
Jenkins for ownCloud d4fc2f555b [tx-robot] updated from transifex 2015-01-09 01:55:22 -05:00
Jenkins for ownCloud 573be9092d [tx-robot] updated from transifex 2014-12-31 01:54:33 -05:00
Jenkins for ownCloud d8f04f5a97 [tx-robot] updated from transifex 2014-12-23 01:55:23 -05:00
Lukas Reschke a0a3322b94 Remove unused file
That file is apparently unused - introduced with 30b58f5677

I guess we can remove it...
2014-12-15 17:29:16 +01:00
Morris Jobke 0d4f0ab871 reduce OC_Preferences, OC_Config and \OCP\Config usage
* files_encryption
* files_versions
* files_trashbin
* tests
* status.php
* core
* server container
2014-12-08 22:42:37 +01:00
Thomas Müller 6daa588e1c Merge pull request #12556 from owncloud/add-route-for-versions
Add route for download of versions
2014-12-03 14:01:58 +01:00
Lukas Reschke c4e0c02526 Add route for download of versions
Otherwise on master it was not possible anymore to download older versions.

Fixes itself.
2014-12-02 17:52:31 +01:00
Joas Schilling 694003d147 Autoload lib files of versions app 2014-12-02 17:21:19 +01:00
Joas Schilling 2c39aec8cb Replace deprecated constant with new class constant 2014-11-25 16:30:21 +01:00
Jenkins for ownCloud f8421958b3 [tx-robot] updated from transifex 2014-11-21 02:54:26 -05:00
Lukas Reschke 713c8e0dac Merge pull request #12325 from owncloud/removeunneccessarylang
cleanup languages. closes #11274
2014-11-20 16:12:49 +01:00
Volkan Gezer 995fe4a176 cleanup languages. closes #11274 2014-11-20 14:46:17 +01:00
Joas Schilling 76ebd3a050 Make apps/ extend the \Test\TestCase and fix overwritten methods 2014-11-19 14:52:09 +01:00
Joas Schilling bb540722cd Use base class to reset the file mapper 2014-11-19 14:52:07 +01:00
Vincent Petry 5ca869c324 Merge pull request #9177 from owncloud/jsdocexperiment
Improved JS Docs + added build script for JS Docs
2014-11-13 11:16:08 +01:00
Björn Schießle 79b650a023 Merge pull request #11825 from owncloud/fix_rename_files_in_shared_folder
move versions if a file was renamed in a shared folder
2014-11-03 12:53:14 +01:00
Bjoern Schiessle ebe1d3df0a don't move versions if only the mount point was renamed 2014-10-31 16:42:54 +01:00
Vincent Petry 0f3e6cb50a Improved Javascript docs for JSDoc
Added namespaces so that JSDoc can find them.
Fixed a few warnings.
Improved some comments.
2014-10-31 13:43:30 +01:00
Thomas Müller f776bcd4a0 remove unnecessary require calls - the ownCloud class loader is supposed to take care of this 2014-10-30 17:20:40 +01:00
Thomas Müller 9f7c571e40 update all translation files to js and json 2014-10-29 10:13:50 +01:00
Lukas Reschke 206cb5ba63 Fix typo 2014-10-29 10:11:01 +01:00
Bjoern Schiessle 9d1be0bbaf get the source path and owner in a pre hook and the target path and owner in a
post hook
2014-10-29 10:11:01 +01:00
Vincent Petry ec1a73fab9 Added OC.L10N namespace with translation functions
Added addTranslations and fixed de.js file

Fixed de.js to use OC.L10N.register() and use to correct expected
format.

Added JS unit tests for OC.L10N class

Include translations JS script for all apps
2014-10-29 10:09:12 +01:00
Jenkins for ownCloud e75c2edba6 [tx-robot] updated from transifex 2014-10-23 01:55:51 -04:00
Thomas Müller b091394a90 introduce new app page layout
filter installed and not-installed apps properly

kill unneeded file

load category 'Installed' on page load

adding documentation links

new apps mgmt: first style adjustment

apps mgmt: only show license and preview if they exist

adding buttons

new apps mgmt: fix for mobile

use app icon if available

new apps mgmt: position enable/disable toggle to the right

new apps mgmt: proper display of icons or previews

new apps mgmt: fix loading spinner

reenable group selection for apps

new apps mgmt: position enable button normally again

new apps mgmt: clarify wording from 'Installed' to 'Enabled'

reintroduce enable/disable

Move rating image path generation to client-side

Move expression outside of l10n

fix group handling

add buttons for 'More apps' and 'Add your app' again

disable changed date of app for now

adding recommended label

style 'Recommended' app tag

fixing php warning

sort by rating

adding meta-category 'Recommended'

 Only show existing documentation links

lacy loading of screenshots

making group based app activation work again

adding support to get the app icon not only by the app name but also simply by the fixed name 'app.svg'

adding app.svg for all core apps

query string '?installed' is not longer needed

update and uninstall is back + error feedback

remove unneeded parameter

fix alignment of 'recommended' label
2014-10-15 15:21:40 +02:00
Bjoern Schiessle 8e077cf1a4 make sure that we always delete oldest first 2014-10-09 19:15:58 +02:00
Lukas Reschke 16cd749065 Add support for keys in the info.xml
This allows to have links to different doc base URLs

a.
2014-10-09 15:48:30 +02:00
MTRichards c7f936cdcb Updated info.xml with
Added description in line with other apps.
2014-10-08 21:27:40 -04:00
Jenkins for ownCloud 0dcd8079dc [tx-robot] updated from transifex 2014-09-11 01:54:41 -04:00
Jenkins for ownCloud e6e04bde4f [tx-robot] updated from transifex 2014-09-01 01:59:19 -04:00
Robin Appelman d0266c0bf8 Use public api for getting l10n 2014-08-31 10:08:22 +02:00
Jenkins for ownCloud 53f3b7ab52 [tx-robot] updated from transifex 2014-08-30 01:57:04 -04:00
Jenkins for ownCloud 1b342a70d6 [tx-robot] updated from transifex 2014-08-28 01:56:36 -04:00
Jenkins for ownCloud c733842a9a [tx-robot] updated from transifex 2014-08-26 01:56:33 -04:00
Lukas Reschke b12af9ea7f Add routing to files_versions 2014-08-19 15:25:16 +02:00
Lukas Reschke 69e0e23789 Merge pull request #10407 from owncloud/rm-obsolete-japanese
remove obsolete japanese lang code
2014-08-17 19:07:14 +02:00
Jenkins for ownCloud b1415fc4fc [tx-robot] updated from transifex 2014-08-17 01:56:22 -04:00
Volkan Gezer d1f483c9ed remove obsolete japanese lang code 2014-08-13 22:35:08 +02:00
Jenkins for ownCloud 411f6c7704 [tx-robot] updated from transifex 2014-08-11 01:54:32 -04:00
Bjoern Schiessle 785ae5dc9a add unit test to make sure getVersions returns the correct result 2014-08-05 17:26:23 +02:00
Bjoern Schiessle b7ada5da57 make sure that the versions array contains the correct path 2014-08-05 17:25:55 +02:00
Bjoern Schiessle 1a797f90bb add unit test for rename and copy operation 2014-07-30 15:14:01 +02:00
Bjoern Schiessle dba2574c52 make sure that we always find all versions 2014-07-30 15:14:01 +02:00
Bjoern Schiessle c738f71657 make the versions and encryption app aware of the copy operation 2014-07-30 15:14:01 +02:00
Jenkins for ownCloud 010732019a [tx-robot] updated from transifex 2014-07-26 01:54:40 -04:00
Jenkins for ownCloud ddc85a9871 [tx-robot] updated from transifex 2014-07-20 01:54:40 -04:00
Jenkins for ownCloud b736864e78 [tx-robot] updated from transifex 2014-07-17 01:55:09 -04:00
Robin Appelman aab33b8b0e Remove deleted versions from the cache 2014-07-10 15:19:40 +02:00
Vincent Petry b63e646053 Merge pull request #9460 from owncloud/versions-local
Dont assume local home storage for files_version
2014-07-10 10:28:24 +02:00
Georg Ehrke e5e8e28ae7 add ocsids to info.xml 2014-07-07 17:11:50 +02:00
Robin Appelman 18572b2367 Dont delete versions as local files 2014-07-07 15:49:08 +02:00
Thomas Müller 2327d41b11 Merge pull request #9269 from owncloud/fix_versions_preview
change order of registering api and capabilities to fix file version previews
2014-07-04 15:25:24 +02:00
Jan-Christoph Borchardt 7760fd4bef add ellipsizing to restore string if text is too long 2014-07-01 20:37:14 +02:00
Morris Jobke eaf9d6eccc increase width of version dropdown - fixes #9270 2014-07-01 16:17:00 +02:00
Jörn Friedrich Dreyer 12420d08e2 change order of registering api and capabilities to fix file version previews 2014-07-01 14:09:48 +02:00
Morris Jobke cc559c5b4b Merge pull request #9074 from geez0x1/master
Update the modified date in UI on file reversion
2014-06-23 23:20:04 +02:00
Bjoern Schiessle 8052d2901d initialize array 2014-06-18 13:23:53 +02:00
geez0x1 7576dde0a3 Update the modified date in UI on file reversion 2014-06-17 22:22:03 +02:00
Bjoern Schiessle f4a183e753 wwe no longer have a versions table 2014-06-10 14:47:32 +02:00
Thomas Müller a2db53b928 Merge pull request #8471 from owncloud/versioning_no_longer_track_the_size
[versioning] let the file cache track the size of the versions
2014-06-04 18:19:48 +02:00
Jenkins for ownCloud f5c4754c2b [tx-robot] updated from transifex 2014-06-04 01:57:48 -04:00
Thomas Müller 8ee15025f0 Fix merge conflict 2014-06-03 19:05:21 +02:00
Thomas Müller 2bb902d028 use OC_DB::dropTable() 2014-06-02 18:57:53 +02:00
Bjoern Schiessle 7ad0fee0b5 let file cache handle the versions size 2014-06-02 18:55:13 +02:00
Vincent Petry ef59c69dc8 Distinguish legacy file actions from regular file actions
Legacy file actions are registered by legacy apps through
window.FileActions.register(). These actions can only be used by the
main file list ("all files") because legacy apps can only deal with a
single list / container.

New file actions of compatible apps must be registered through
OCA.Files.fileActions. These will be used for other lists like the
sharing overview.

Fixed versions and sharing actions to use OCA.Files.fileActions, which
makes them available in the sharing overview list.
2014-05-30 10:06:29 +02:00
Vincent Petry 06e53b359a Added "dir" in file actions handler context and fixed versions
Added "dir" in file actions handler context so that handlers can know
what the path of the file was without having to look it up from the file
list.

Fixed versions app to use the context.dir instead of the old $('#dir')
element. This makes the versions popup work in the sharing overview.
2014-05-30 10:06:29 +02:00
Vincent Petry c64e920b4d Adjust core apps to use "requiremin" instead of "require"
Also added a few missing authors.
2014-05-27 11:54:44 +02:00
Jenkins for ownCloud 3029029afd [tx-robot] updated from transifex 2014-05-25 01:54:35 -04:00
Morris Jobke dc36d30953 Remove all occurences of @brief and @returns from PHPDoc
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Andreas Fischer 6c4b650524 Merge pull request #8585 from owncloud/phpdoc-improvements-apps
PHPDoc improvements /apps

* owncloud/phpdoc-improvements-apps:
  Fix whitespace issues
  Reduce double-space with single-space.
  Remove spaces around | operator in doc block.
  Fix more missing or broken PHPDoc
  PHPDoc fixes for user_ldap
  Fix PHPDoc in /apps
2014-05-19 14:08:42 +02:00
Jenkins for ownCloud a7509e5fd9 [tx-robot] updated from transifex 2014-05-18 01:55:01 -04:00
Robin McCorkell 6930ae22e4 Fix more missing or broken PHPDoc 2014-05-16 22:21:57 +01:00
Robin McCorkell c4f1de63a8 Fix PHPDoc in /apps 2014-05-16 22:21:57 +01:00
Thomas Müller 58857b8df5 @returns -> @return 2014-05-13 19:09:15 +01:00
Thomas Müller 4dd1a49a68 remove legacy aka deprecated code: OC_Filesystem 2014-05-12 16:20:07 +02:00
Thomas Müller 20893cc3b3 Images on public sharing get downscaled to increase use experience - this will speed up loading time
- adding keep aspect to core/ajax/preview.php
- remove duplicate method Preview::show()
- no more hard coded mimetype of preview
- remove .png from the preview urls
- keep old route preview.png for backwards compatibility
- aspect preserving previews are now cached
2014-05-02 17:02:57 +02:00
Jenkins for ownCloud 1abd9c1305 [tx-robot] updated from transifex 2014-04-19 01:56:06 -04:00
Jenkins for ownCloud 796f719548 [tx-robot] updated from transifex 2014-04-09 01:56:49 -04:00
Thomas Müller e3b951f412 Merge pull request #7724 from owncloud/mobile
[WIP] Mobile optimization for base layout and Files app
2014-03-28 10:27:15 +01:00
Robin McCorkell 50dba97bde Miscellaneous text fixes for core apps 2014-03-26 15:43:03 +00:00
Thomas Müller ea8705bac8 additional class is added to the file actions called e.g. 'action-share', 'action-rename'
in order to allow proper translations of the action's display name an additional parameter has been added to the register function
2014-03-17 20:15:10 +01:00
Jenkins for ownCloud 4b802aa7cb [tx-robot] updated from transifex 2014-03-13 17:12:37 -04:00
Georg Ehrke 9a5c2d0080 add preDelete hook for files_versions app 2014-03-11 14:17:08 +01:00
Jenkins for ownCloud b0ec38e202 [tx-robot] updated from transifex 2014-03-11 01:59:39 -04:00
Scrutinizer Auto-Fixer adaee6a5a1 Scrutinizer Auto-Fixes
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720

Enabled analysis tools:
 - PHP Analyzer
 - JSHint
 - PHP Copy/Paste Detector
 - PHP PDepend
2014-02-19 09:31:54 +01:00
Thomas Müller c6f4f85e27 Merge branch 'master' into scrutinizer_documentation_patches
Conflicts:
	lib/private/migration/content.php
2014-02-18 18:31:33 +01:00
Robin Appelman 181bbd4325 Remove usage of legacy OC_Appconfig 2014-02-13 16:28:49 +01:00
Jörn Friedrich Dreyer 2a6a9a8cef polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
Jan-Christoph Borchardt 46745895ae Merge pull request #5153 from owncloud/core-em-to-px
Cleans up Core apps for relative(em) to absolute(px) styles.
2014-01-27 02:29:47 -08:00
raghunayyar 932e8f9f58 Fixes width of the dropdown menus as per computed styles. 2014-01-26 02:59:28 +05:30
Bjoern Schiessle a567f74d86 fix array order 2014-01-22 11:13:15 +01:00
Bjoern Schiessle 8d36ddcf03 code clean-up 2014-01-22 11:10:32 +01:00
Bjoern Schiessle 0b89a45f11 fix size calculation of getAllVersions() 2014-01-22 11:10:23 +01:00