Lunar [Tue, 6 Mar 2012 23:30:26 +0000 (00:30 +0100)]
implement file format 2.0
We want to be able to write files for which we will not be sure of the size
before all its content has been written. Easiest way to achieve this is two
have two files instead of one: the first for the encrypted file content, and
the second with metadata (in clear and encrypted, as before).
StoredFile is still able to read files with format 1.0. New files will be
written using the 2.0 format.
Lunar [Tue, 28 Feb 2012 15:15:19 +0000 (16:15 +0100)]
display the README in 'get /README'
We introduce a dependency on maruku to parse Markdown and display the README.
This new (trivial) feature is spec'd in the new `spec/coquelicot/app_sec.rb`
which is the canonical file location.
We also introduce a new dependency on Capybara: its interface is so much nicer,
and ideally, most of the specs in `spec/coquelicot_spec.rb` will be rewriten
to use it instead of Rack::Test::Methods and Hpricot.
Lunar [Tue, 28 Feb 2012 15:14:11 +0000 (16:14 +0100)]
improve README
Lunar [Tue, 6 Mar 2012 21:37:32 +0000 (22:37 +0100)]
spec for different reference StoredFile with a new shiny helper
Lunar [Sat, 17 Mar 2012 11:29:37 +0000 (12:29 +0100)]
also return BadKey when OpenSSL raises a CipherError
Lunar [Mon, 12 Mar 2012 15:42:06 +0000 (16:42 +0100)]
factor out shared context for specs which needs a depot
Lunar [Tue, 6 Mar 2012 16:03:47 +0000 (17:03 +0100)]
remove links in Depot#gc! when there is a link but no associated file
Lunar [Tue, 6 Mar 2012 15:27:10 +0000 (16:27 +0100)]
cosmetic rewrite of Depot#read_link
Lunar [Tue, 6 Mar 2012 16:03:00 +0000 (17:03 +0100)]
specify and implement behaviour of Depot#get_file when there is a link with no matching file
We modify callers in Coquelicot::Application to match the new behaviour.
Lunar [Tue, 6 Mar 2012 15:41:51 +0000 (16:41 +0100)]
specify and implement behaviour of Depot#file_exists? when there is a link with no matching file
Lunar [Tue, 6 Mar 2012 15:23:11 +0000 (16:23 +0100)]
properly handle the case where we generate the same name than an already existing link
Lunar [Mon, 5 Mar 2012 18:25:23 +0000 (19:25 +0100)]
add some specs for Coquelicot::Depot
Lunar [Tue, 6 Mar 2012 16:05:34 +0000 (17:05 +0100)]
properly empty and remove files when Depot#gc! has not been called for a while
Lunar [Sat, 17 Mar 2012 10:41:41 +0000 (11:41 +0100)]
add Depot#size to get current files count
Lunar [Tue, 28 Feb 2012 11:21:31 +0000 (12:21 +0100)]
Depot#files now returns an empty array for empty depots
In a brand new depot, there will not be any `.links` file. Instead of raising
an error, let's return an empty array instead, better reflecting the current
state of the depot.
Lunar [Tue, 6 Mar 2012 10:11:31 +0000 (11:11 +0100)]
ensure that StoredFile is providing correct content for small files
Lunar [Tue, 6 Mar 2012 16:14:29 +0000 (17:14 +0100)]
properly delete file in case of errors in StoredFile.create
This means that Depot.add_file does not have to care about removing leftover
files.
Lunar [Fri, 16 Mar 2012 19:13:17 +0000 (20:13 +0100)]
display 'not found' when a bad password is given in URL
Lunar [Tue, 6 Mar 2012 09:50:45 +0000 (10:50 +0100)]
raise BadKey in StoredFile#each if file has been opened without a password
Lunar [Mon, 5 Mar 2012 16:31:12 +0000 (17:31 +0100)]
use File::EXCL|File::CREAT instead of locking when adding a new file to the depot
Lunar [Mon, 5 Mar 2012 15:52:36 +0000 (16:52 +0100)]
add specs for StoredFile
Lunar [Sat, 25 Feb 2012 09:17:53 +0000 (10:17 +0100)]
factor out spec initialization in spec_helper
This is an usual convention on how to use RSpec.
Lunar [Sun, 4 Mar 2012 09:43:43 +0000 (10:43 +0100)]
improve parsing of encrypted meta data for small files
Lunar [Sat, 17 Mar 2012 10:37:27 +0000 (11:37 +0100)]
small style adjustments in StoredFile
Lunar [Sat, 17 Mar 2012 10:26:17 +0000 (11:26 +0100)]
change StoredFile.create interface
What matters is actually how the caller will feed the file content, and not
where or how the StoredFile is written.
Lunar [Mon, 5 Mar 2012 13:56:07 +0000 (14:56 +0100)]
do not hardcode key and IV length in StoredFile.get_cipher
Lunar [Tue, 28 Feb 2012 11:26:00 +0000 (12:26 +0100)]
install 'sass' gem explicitly
As said by Haml warning:
Sass is in the process of being separated from Haml,
and will no longer be bundled at all in Haml 3.2.0.
Please install the 'sass' gem if you want to use Sass.
Lunar [Tue, 28 Feb 2012 23:27:53 +0000 (00:27 +0100)]
remove useless url setting and base_href helper
Sinatra offers an `uri` helper which is there to properly compute
URLs for the application. We now use it instead of computing the `base_href` by
hand. We also remove the `url` setting as system administrators should properly
configure their `config.ru` and proxy to allow Sinatra to compute the right URL
for the application.
Lunar [Fri, 24 Feb 2012 20:52:50 +0000 (21:52 +0100)]
Merge remote branch 'nadir/translations/de'
Lunar [Fri, 24 Feb 2012 20:49:10 +0000 (21:49 +0100)]
update main copyright in layout
Jake Santee [Fri, 24 Feb 2012 20:48:58 +0000 (21:48 +0100)]
Updated german translation
Lunar [Fri, 24 Feb 2012 20:44:29 +0000 (21:44 +0100)]
fix redirect after successful upload
Lunar [Fri, 24 Feb 2012 20:13:23 +0000 (21:13 +0100)]
improve some strings after native speakers review
Many thanks to them!
Lunar [Fri, 24 Feb 2012 19:37:46 +0000 (20:37 +0100)]
remove obsolete cruft in migrate_jyraphe
Lunar [Fri, 24 Feb 2012 19:33:16 +0000 (20:33 +0100)]
improve settings documentation
Lunar [Fri, 24 Feb 2012 19:13:00 +0000 (20:13 +0100)]
fix extra '/' appearing when using base_href
Lunar [Fri, 24 Feb 2012 18:55:03 +0000 (19:55 +0100)]
spec and document the 'url' setting
Lunar [Fri, 24 Feb 2012 18:44:12 +0000 (19:44 +0100)]
Merge remote branch 'sarava/master'
Lunar [Fri, 24 Feb 2012 18:29:28 +0000 (19:29 +0100)]
add license headers on source files
Lunar [Fri, 24 Feb 2012 18:01:41 +0000 (19:01 +0100)]
prevent password generator link from moving to another page
Lunar [Fri, 24 Feb 2012 17:58:57 +0000 (18:58 +0100)]
properly separate functions in javascript
Lunar [Fri, 24 Feb 2012 17:48:11 +0000 (18:48 +0100)]
cosmetic improvements
Lunar [Fri, 24 Feb 2012 16:25:20 +0000 (17:25 +0100)]
switch to FastGettext for translations
Using the 'po' backend of FastGettext gets us rid of having to manually build
'.mo' files upon installation.
Lunar [Fri, 24 Feb 2012 16:11:37 +0000 (17:11 +0100)]
add simple spec for translations
This does not cover all features we'd like for translations but it'll be enough
to switch to FastGettext without breaking too much.
Lunar [Fri, 24 Feb 2012 15:47:22 +0000 (16:47 +0100)]
refresh and improve translation catalog
Lunar [Fri, 24 Feb 2012 15:37:31 +0000 (16:37 +0100)]
use haml-magic-translations instead of ad-hoc and outdated solution
Lunar [Tue, 14 Feb 2012 22:38:31 +0000 (23:38 +0100)]
allow specs to work even when it's between 23:00 and 00:00
Lunar [Tue, 14 Feb 2012 22:29:28 +0000 (23:29 +0100)]
improve UI and labels regarding 'one time download' feature
Lunar [Tue, 14 Feb 2012 22:01:36 +0000 (23:01 +0100)]
only show about_text once
For the same reason as the previous commit, it is better if about_text is not
shown twice. It also reduces some clutter once authentication is done when
Javascript is enabled.
Lunar [Tue, 14 Feb 2012 21:57:35 +0000 (22:57 +0100)]
do not add an extra submit button in text browsers
Using style="display: none" for Javascript specific DOM elements leads to extra
widgets or text showing up in pure text browser. So let's use Javascript to
populate interface elements that only appear when Javascript is enabled.
Lunar [Tue, 14 Feb 2012 21:09:08 +0000 (22:09 +0100)]
use same indentation in auth views
Lunar [Tue, 14 Feb 2012 19:06:17 +0000 (20:06 +0100)]
improve user feedback for AJAX authentication
We now differenciate between bad credentials and issues arising while
performing the authentication. This allows us to properly notify users
when the IMAP server is not reachable.
Lunar [Tue, 14 Feb 2012 18:08:22 +0000 (19:08 +0100)]
rework javascript interface for authentication modules
Lunar [Tue, 14 Feb 2012 17:41:07 +0000 (18:41 +0100)]
use consistent indentation accross javascript files
Lunar [Tue, 14 Feb 2012 17:37:00 +0000 (18:37 +0100)]
Add 'thin' to development environment
To start the webapp localy using thin, one can now issue:
bin/rackup -s thin config-development.ru
Thin handles streaming when Webrick does not.
Lunar [Tue, 14 Feb 2012 17:28:17 +0000 (18:28 +0100)]
simplify parameters handling in authentication modules
Previously authentication data was either given through:
- an Hash in 'upload_token' serialized by jQuery.ajax();
- a JSON blob in 'upload_token' after the initial Javascript authentication;
- directly through POST parameters when Javascript is disabled.
We simplify all this and always pass those fields as POST paraters in those
three cases. We thus get rid of the 'upload_token' intermediate field
completely.
Form fiels are also properly reset when authentication fails.
Lunar [Tue, 14 Feb 2012 12:35:43 +0000 (13:35 +0100)]
refactor specs related to AJAX password verification
Lunar [Tue, 14 Feb 2012 11:45:20 +0000 (12:45 +0100)]
properly use Bundler in rackup files
Lunar [Tue, 14 Feb 2012 11:43:17 +0000 (12:43 +0100)]
scrap home made config system to use Sinatra::ConfigFile
This adds a dependency to sinatra-contrib (>= 1.3).
Lunar [Mon, 13 Feb 2012 19:33:52 +0000 (20:33 +0100)]
move requires where they belong
Lunar [Mon, 13 Feb 2012 19:30:01 +0000 (20:30 +0100)]
merge StoredFile app specific methods with the rest of the class definition
There is not much added value in spreading the code. Separating concerns is
nice, but there is no problem if another consumer calls these methods anyway.
Lunar [Mon, 13 Feb 2012 19:21:56 +0000 (20:21 +0100)]
move Coquelicot::Depot to its own file
Lunar [Mon, 13 Feb 2012 19:21:00 +0000 (20:21 +0100)]
move Coquelicot::StoredFile to its own file
Lunar [Mon, 13 Feb 2012 19:18:48 +0000 (20:18 +0100)]
move coquelicot_app.rb to lib/coquelicot/app.rb
Lunar [Mon, 13 Feb 2012 19:04:10 +0000 (20:04 +0100)]
add spec for imap authentication
Lunar [Mon, 13 Feb 2012 19:03:55 +0000 (20:03 +0100)]
group specs using simpleauth authentication
Lunar [Mon, 13 Feb 2012 18:43:37 +0000 (19:43 +0100)]
use app.set and not apply_configuration
Lunar [Mon, 13 Feb 2012 17:31:13 +0000 (18:31 +0100)]
use an around block instead of before/after to create temporary depot in specs
Lunar [Sun, 29 Jan 2012 17:57:42 +0000 (18:57 +0100)]
rework part of configure mechanism
We can now use `app.set :authentication_method, ...` which is useful for
tests.
Lunar [Mon, 13 Feb 2012 23:17:22 +0000 (00:17 +0100)]
implement pluggable authentication using classes instead of modules
It will be less hacky pocky and work better for testing. Otherwise, switching
from one authentication mechanism to another during the same test suite does
not really work well.
Lunar [Tue, 14 Feb 2012 11:42:03 +0000 (12:42 +0100)]
update sinatra to version 1.3
Adjustments needed:
* Update reference value for the Content-type header in specs.
Silvio Rhatto [Sun, 5 Feb 2012 16:54:43 +0000 (14:54 -0200)]
Adding missing Debian dependency on README
Silvio Rhatto [Sun, 5 Feb 2012 16:44:56 +0000 (14:44 -0200)]
Support for url config paramenter
Adds a "url" parameter to the config file to enforce a custom
address.
Lunar [Sun, 29 Jan 2012 16:47:47 +0000 (17:47 +0100)]
add some more notes about development in README
Lunar [Sun, 29 Jan 2012 16:36:46 +0000 (17:36 +0100)]
update test suite for RSpec 2.x and Bundler
Lunar [Sun, 29 Jan 2012 15:55:04 +0000 (16:55 +0100)]
move RSpec tests to more idiomatic location
Lunar [Sun, 29 Jan 2012 15:48:33 +0000 (16:48 +0100)]
reword some parts of the README
Lunar [Sun, 29 Jan 2012 15:25:00 +0000 (16:25 +0100)]
display a nicer 'Not found' message
mh [Thu, 11 Aug 2011 11:07:27 +0000 (13:07 +0200)]
fixing em vs. px problem on chrome
mh [Thu, 11 Aug 2011 10:55:14 +0000 (12:55 +0200)]
improve css to work properly on more browsers
mh [Thu, 11 Aug 2011 10:53:19 +0000 (12:53 +0200)]
ignore 3rd party layouts
mh [Wed, 10 Aug 2011 18:15:26 +0000 (20:15 +0200)]
display about text also on the js login, hide submit button for jslogin on non js browsers
mh [Wed, 10 Aug 2011 18:03:35 +0000 (20:03 +0200)]
add info that upload is forbidden
mh [Tue, 9 Aug 2011 07:32:01 +0000 (09:32 +0200)]
document gc
mh [Tue, 9 Aug 2011 07:23:50 +0000 (09:23 +0200)]
require bundle/setup so bundler gets loaded
mh [Tue, 9 Aug 2011 07:01:57 +0000 (09:01 +0200)]
make gc executable
mh [Tue, 9 Aug 2011 06:40:47 +0000 (08:40 +0200)]
json is also required
mh [Tue, 9 Aug 2011 06:38:57 +0000 (08:38 +0200)]
move jquery into the repo, depending on your os the link can be different
mh [Tue, 9 Aug 2011 06:37:43 +0000 (08:37 +0200)]
provide a development .ru and a production .ru
mh [Sun, 7 Aug 2011 14:24:28 +0000 (16:24 +0200)]
add a script to run gc in a cronjob
mh [Mon, 2 May 2011 15:57:33 +0000 (17:57 +0200)]
fix imap login
Somehow forms containing multiple input fields have the problem, that
pressing enter does not submit the form. -> Add a submit button, so
the user can click on login, but also to regain the "Press Enter"
functionality.
mh [Mon, 2 May 2011 15:54:53 +0000 (17:54 +0200)]
extend layout capailities
You can now:
* set an own clone url, without the default own
* set an additional css to be included to override/extend the basic
css
Furthermore, some css fixes have been done.
mh [Mon, 2 May 2011 14:52:24 +0000 (16:52 +0200)]
minor css fix
mh [Mon, 2 May 2011 14:06:15 +0000 (16:06 +0200)]
Add configuration mechanism
It is now possible to configure Coquelicot according to your needs
without touching any application code at all.
Examples and default configuration settings can be found in conf/
mh [Mon, 2 May 2011 11:57:04 +0000 (13:57 +0200)]
implement imap authentication
We are now able to authenticate agains an imap server. A possible
setting would look like:
authentication_method :imap, :imap_server => 'imap.example.com', \
:imap_port => 993
mh [Mon, 2 May 2011 11:28:27 +0000 (13:28 +0200)]
remove unnecessary check
If the hash is nil or false, the comparition fails anyway.
mh [Mon, 2 May 2011 11:25:33 +0000 (13:25 +0200)]
Make some methods more failsafe if some things are missing
mh [Mon, 2 May 2011 11:24:16 +0000 (13:24 +0200)]
add utf8 header
As we will send down UTF-8 encoded data we should note that in our
header, otherwise we might see funny characters.
mh [Mon, 2 May 2011 10:31:37 +0000 (12:31 +0200)]
introduce authentication mechanism framework
We can now implement additional authentication methods, to
authenticate against other authentication mechanisms.
The requirements for these authentication mechanisms and how they work
is documented in the README file.
mh [Mon, 7 Feb 2011 19:18:21 +0000 (20:18 +0100)]
add Gemfile for bundler