]>
git.p6c8.net - jirafeau_project.git/log
Jerome Jutteau [Tue, 19 Sep 2017 16:58:57 +0000 (18:58 +0200)]
[BUGFIX] Propely set page title during transfer
closes #142
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Fri, 8 Sep 2017 14:25:46 +0000 (16:25 +0200)]
Jirafeau version 3.3.0
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Fri, 8 Sep 2017 14:16:15 +0000 (16:16 +0200)]
[TASK] complete CONTRIBUTING.md
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 21:02:59 +0000 (23:02 +0200)]
[TASK] Small README.md update
- fix intro
- add https link to jirafeau.net
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 20:57:19 +0000 (22:57 +0200)]
[TASK] Add documentation about var folder protection with lighttpd
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 22:10:34 +0000 (00:10 +0200)]
[BUGFIX] Remove template error in translations
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 22:06:52 +0000 (00:06 +0200)]
[TASK] Add missing french translation
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 22:02:51 +0000 (00:02 +0200)]
[BUGFIX] Delete links using POST
closes #136
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 22:24:08 +0000 (00:24 +0200)]
[TASK] Remove Alias support
Some time ago, this was a weird idea.
It's useless to keep this, it's just dead garbage code.
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 19:31:42 +0000 (21:31 +0200)]
[FEATURE] Add docker image support
closes #114
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Mon, 4 Sep 2017 06:56:13 +0000 (08:56 +0200)]
[TASK] Remove dev.sh script file
Not usefull anymore as there is now a docker directory with better
configuration.
Signed-off-by: Jerome Jutteau <mojo@couak.net>
Jerome Jutteau [Sun, 9 Jul 2017 14:48:32 +0000 (16:48 +0200)]
[FEATURE] Add a copy button next to links
closes #129
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Jerome Jutteau [Sun, 9 Jul 2017 11:55:46 +0000 (13:55 +0200)]
[BUGFIX] Prevent object ProgressEvent Error
This is done by removing unnecessary usage of web_root URL.
closes #127
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Igor Posledov [Wed, 14 Jun 2017 12:56:45 +0000 (15:56 +0300)]
tiny style fix of the upload_image_email
Jerome Jutteau [Mon, 19 Jun 2017 07:04:32 +0000 (09:04 +0200)]
Add a note about https configuration.
Check issue #125
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Jerome Jutteau [Wed, 14 Jun 2017 11:43:30 +0000 (11:43 +0000)]
[FEATURE] Add portuguese translation (and brazil)
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Guilherme Andrade [Tue, 16 May 2017 13:59:53 +0000 (13:59 +0000)]
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (112 of 112 strings)
Guilherme Andrade [Tue, 16 May 2017 13:38:26 +0000 (13:38 +0000)]
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (112 of 112 strings)
Guilherme Andrade [Tue, 16 May 2017 12:03:45 +0000 (12:03 +0000)]
Added translation using Weblate (Portuguese (Brazil))
Jerome Jutteau [Wed, 14 Jun 2017 11:33:28 +0000 (11:33 +0000)]
[BUGFIX] repair email image
(thanks Igor Posledov)
closes #123
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Jerome Jutteau [Wed, 14 Jun 2017 11:26:06 +0000 (11:26 +0000)]
Jirafeau version 3.2.1
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
R.W [Mon, 24 Apr 2017 16:32:31 +0000 (16:32 +0000)]
fix elementid for expiration date
Jerome Jutteau [Tue, 2 May 2017 20:28:56 +0000 (20:28 +0000)]
Jirafeau version 3.2.0
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Jerome Jutteau [Fri, 21 Apr 2017 16:43:26 +0000 (16:43 +0000)]
[BUGFIX] Empty admin password should not generate hash
During installation, a empty admin password should put an empty
password in configuration so admin interface is disabled.
Before this fix, a empty password would be a valid password
without disabling the admin interface.
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Dan Untenzu [Thu, 30 Mar 2017 13:56:09 +0000 (15:56 +0200)]
[FEATURE] Styles: Set IDs for upload result links
Set IDs for all links shown after successfull upload.
This way admins may show/hide these links with CSS only.
Refs #93
Dan Untenzu [Thu, 30 Mar 2017 13:55:34 +0000 (15:55 +0200)]
[FEATURE] Styles: Add classes to forms
Enable better styling for classes.
Jerome Jutteau [Fri, 24 Mar 2017 12:10:34 +0000 (12:10 +0000)]
[FEATURE] Add turkish translation
closes #112
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Jérôme Jutteau [Thu, 23 Mar 2017 14:00:44 +0000 (14:00 +0000)]
Added translation using Weblate (Tibetan)
Jérôme Jutteau [Thu, 23 Mar 2017 14:00:25 +0000 (14:00 +0000)]
Added translation using Weblate (Thai)
Jérôme Jutteau [Thu, 23 Mar 2017 14:00:13 +0000 (14:00 +0000)]
Added translation using Weblate (Tamil)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:59 +0000 (13:59 +0000)]
Added translation using Weblate (Swedish)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:49 +0000 (13:59 +0000)]
Added translation using Weblate (Slovenian)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:38 +0000 (13:59 +0000)]
Added translation using Weblate (Serbo-Croatian)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:27 +0000 (13:59 +0000)]
Added translation using Weblate (Pushto)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:17 +0000 (13:59 +0000)]
Added translation using Weblate (Morisyen)
Jérôme Jutteau [Thu, 23 Mar 2017 13:59:06 +0000 (13:59 +0000)]
Added translation using Weblate (Malay)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:55 +0000 (13:58 +0000)]
Added translation using Weblate (Kurdish)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:45 +0000 (13:58 +0000)]
Added translation using Weblate (Indonesian)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:33 +0000 (13:58 +0000)]
Added translation using Weblate (Hebrew)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:23 +0000 (13:58 +0000)]
Added translation using Weblate (Estonian)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:12 +0000 (13:58 +0000)]
Added translation using Weblate (Danish)
Jérôme Jutteau [Thu, 23 Mar 2017 13:58:01 +0000 (13:58 +0000)]
Added translation using Weblate (Catalan)
Jérôme Jutteau [Thu, 23 Mar 2017 13:57:51 +0000 (13:57 +0000)]
Added translation using Weblate (Belarusian)
Jérôme Jutteau [Thu, 23 Mar 2017 13:57:35 +0000 (13:57 +0000)]
Added translation using Weblate (Albanian)
Weblate [Wed, 22 Mar 2017 09:33:52 +0000 (10:33 +0100)]
Merge remote-tracking branch 'origin/master'
Jerome Jutteau [Wed, 22 Mar 2017 09:32:33 +0000 (09:32 +0000)]
Jirafeau version 3.1.0
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Weblate [Wed, 22 Mar 2017 09:23:13 +0000 (10:23 +0100)]
Merge remote-tracking branch 'origin/master'
Dan Untenzu [Fri, 17 Mar 2017 16:28:56 +0000 (17:28 +0100)]
[BUGFIX] Remove false IP challenge to allow uploads again
The upload form currently has a broken IP check
which dissallows all uploads even if no IP restrictions
are configured in the config.
Replace the wrong check and add some code comments
to make this authorization more readable.
Refs #113 #107 #111
Dan Untenzu [Fri, 17 Mar 2017 15:52:28 +0000 (16:52 +0100)]
[FEATURE] Move fatal error method
Move fatal error method to functions lib to use
it in other scripts than install.php as well.
Dan Untenzu [Fri, 17 Mar 2017 15:08:30 +0000 (16:08 +0100)]
[FEATURE] Ignore "custom" theme folder
Support the creation of custom themes: let Git ignore
the theme if it is named "custom". This way the admin may keep
the jirafau git repo and force an update without conflicts.
Dan Untenzu [Fri, 17 Mar 2017 14:57:29 +0000 (15:57 +0100)]
[FEATURE] Style: Wrap divider in footer
Wrap footer divider to allow better styling.
Dan Untenzu [Fri, 17 Mar 2017 14:54:22 +0000 (15:54 +0100)]
[FEATURE] Enable custom favicons
Enable integrators to add custom favicons by
including it from the media folder (themes).
Cem [Wed, 15 Mar 2017 13:40:15 +0000 (13:40 +0000)]
Translated using Weblate (Turkish)
Currently translated at 100.0% (112 of 112 strings)
Cem [Wed, 15 Mar 2017 11:17:36 +0000 (11:17 +0000)]
Added translation using Weblate (Turkish)
Jerome Jutteau [Thu, 9 Mar 2017 18:04:59 +0000 (18:04 +0000)]
[BUGFIX] fix broken password auth and deny access
ref #107
closes #111
Stefano Mortellaro [Fri, 3 Mar 2017 10:35:01 +0000 (10:35 +0000)]
Translated using Weblate (Italian)
Currently translated at 100.0% (110 of 110 strings)
Weblate [Thu, 23 Feb 2017 17:46:46 +0000 (18:46 +0100)]
Merge remote-tracking branch 'origin/master'
Jerome Jutteau [Thu, 23 Feb 2017 17:46:08 +0000 (18:46 +0100)]
[DOC] Fix feature list of 3.0.0
Integrating missed bits of Dan Untenzu
Signed-off-by: Jerome Jutteau <jerome.jutteau@outscale.com>
Weblate [Thu, 23 Feb 2017 17:34:39 +0000 (18:34 +0100)]
Merge remote-tracking branch 'origin/master'
Jerome Jutteau [Thu, 23 Feb 2017 17:31:38 +0000 (18:31 +0100)]
Jirafeau version 3.0.0
Signed-off-by: Jerome Jutteau <jerome.jutteau@outscale.com>
Dan Untenzu [Thu, 23 Feb 2017 15:30:15 +0000 (16:30 +0100)]
[FEATURE] Docs: Note steps to prepare new releases
Write down all required steps for new releases.
Refs #104 #109
Dan Untenzu [Thu, 23 Feb 2017 15:19:03 +0000 (16:19 +0100)]
[FEATURE] Add walktrough to create merge requests
Explain a bit how merge requests are made on Gitlab
to easen the hurdle for new contributors.
Refs #104
Dan Untenzu [Thu, 23 Feb 2017 14:46:07 +0000 (15:46 +0100)]
[BUGFIX] Prevent bouncing fileupload field
After a file is selected in the first step of an upload,
the options are shown and the fileupload field is resized
to a much smaller field. In Chrome and other browsers
this field bounces to an area above the form.
Use relative positioning and fixed heights to prevent this
UI glitch.
Refs #71
Dan Untenzu [Thu, 23 Feb 2017 14:40:24 +0000 (15:40 +0100)]
[BUGFIX] Fix UI glitch in admin table
Enlarge file table in admin view, to prevent that the
surrounding border is smaler than the automatically resized table.
Refs #71
Dan Untenzu [Thu, 23 Feb 2017 11:42:11 +0000 (12:42 +0100)]
[FEATURE] Convert UTC dates to clients timezone
Convert all dates & times in UTC to the clients timezone.
This requires several custom JavaScripts, as this conversion
is not possible with the Date object in all recent browsers
(latest Firefox, Chrome, Opera, Edge accept UTC date & time,
all Internet Explorer accept UTC date only).
Refs #59 #106
Dan Untenzu [Thu, 23 Feb 2017 11:05:23 +0000 (12:05 +0100)]
[FEATURE] Show readable date format
Whenever date objects in PHP or JavaScript are converted
to strings, it depends on the servers/clients settings and
timezone which locale and format is used.
This may lead to situation where the date is in english,
but all other texts of Jirafeau service are in another language.
Depending on unser language it may be not possible to localise
the date, since we would need to have a list of all existing
date formats. In both PHP and JavaScript.
To avoid these translation obstacles we may use the following
fallback:
* Always use UTC timezone in PHP and render dates with UTC only
* Use the rather international format »YYYY-MM-DD hh:mm«
Refs #59 #106 #73
Dan Untenzu [Thu, 23 Feb 2017 08:46:53 +0000 (09:46 +0100)]
[FEATURE] Upload Script: Refactor datefield setter
Reduce method calls in upload script to prepare
upcoming date format changes.
Dan Untenzu [Wed, 22 Feb 2017 15:45:06 +0000 (16:45 +0100)]
[FEATURE] Set default timezone
Set UTC as default timezone for all date/time functions.
Dont rely on the servers timezone, since this timezone may
change on cloud hosts or may nit be set at all.
Using UTC is a best practice to avoid timezone issues etc.
Refs #73
Dan Untenzu [Mon, 20 Feb 2017 15:18:19 +0000 (16:18 +0100)]
[BUGFIX] Admin page: Prefix path to download links
The download links in the admin page have no
path prefix and therefore all installations with within
a subdirectory create no-working links.
Prefix the JIRAFEAU_ABSPREFIX to create working URLs.
Refs #108
Dan Untenzu [Mon, 20 Feb 2017 15:15:17 +0000 (16:15 +0100)]
[FEATURE] Follow up: Remove further form targets
Follow up for commit
a12b04d2670d2916008e53b4f5a2cc5f158cb998 .
Remove further form action targets, if these forms should be send
to the same page anyway. In this case we may safely omnit the
action attribute and safe some path constructions.
Marc Hauswirth [Mon, 13 Feb 2017 21:55:25 +0000 (22:55 +0100)]
ip or password (see issue 107)
Dan Untenzu [Fri, 27 Jan 2017 09:23:50 +0000 (10:23 +0100)]
[BUGFIX] Catch errors in upload form
The upload forms failed to catch errors due to a
never matching condition. Failing uploads (eg. because of
filesize limit etc.) still tried to render non-existing
download links instead of showing the error.
Fix the condition by testing if the return string
starts with "Error" instead of equals "Error".
Refs #96
Dan Untenzu [Thu, 26 Jan 2017 16:38:19 +0000 (17:38 +0100)]
[FEATURE] Readme: Add CI badges
Add status badge of latest CI run to the readme file.
Dan Untenzu [Thu, 26 Jan 2017 16:20:09 +0000 (17:20 +0100)]
[FEATURE] Docs: Add system requirements
Note that PHP >= 5.6 is a system requirement.
refs #72
Dan Untenzu [Thu, 26 Jan 2017 12:25:09 +0000 (13:25 +0100)]
[FEATURE] Contribution Guide: Declare PSR-2 Coding Style
All PHP code should now follow PSR-2.
Dan Untenzu [Tue, 24 Jan 2017 12:08:59 +0000 (13:08 +0100)]
[FEATURE] Switch to PSR-2
Convert all PHP files to PSR-2, which defined
a basic Coding Style Guide for PHP projects.
Using the awesome friendsofphp/php-cs-fixer tool,
running with the @PSR2 ruleset.
1) script.php (no_spaces_after_function_name, braces)
2) f.php (indentation_type, no_spaces_after_function_name, braces)
3) install.php (indentation_type, function_declaration, elseif, no_spaces_after_function_name, braces)
4) lib/functions.php (no_spaces_inside_parenthesis, method_argument_space, function_declaration, elseif, no_spaces_after_function_name, lowercase_constants, lowercase_keywords, braces, single_blank_line_at_eof)
5) lib/functions.js.php (no_spaces_after_function_name)
6) lib/lang.php (function_declaration, no_spaces_after_function_name, lowercase_constants, no_closing_tag, braces, single_blank_line_at_eof)
7) lib/template/footer.php (braces)
8) lib/config.local.bak.php (method_argument_space, no_spaces_after_function_name, no_closing_tag, single_blank_line_at_eof)
9) lib/config.original.php (no_spaces_after_function_name, no_closing_tag, single_blank_line_at_eof)
0) lib/settings.php (indentation_type, no_spaces_after_function_name, braces)
1) lib/config.local.php (no_spaces_after_function_name, single_blank_line_at_eof)
2) index.php (indentation_type, no_spaces_after_function_name, braces)
3) admin.php (no_spaces_after_function_name, braces)
4) tos.php (no_spaces_after_function_name, no_closing_tag, single_blank_line_at_eof)
Refs #103
Dan Untenzu [Tue, 24 Jan 2017 15:57:32 +0000 (16:57 +0100)]
[TASK] Rename license short identifier
The official short identifier for
"GNU Affero General Public License v3.0" is "AGPL-3.0"
(see https://spdx.org/licenses/ → https://spdx.org/licenses/AGPL-3.0.html)
Dan Untenzu [Tue, 24 Jan 2017 09:51:19 +0000 (10:51 +0100)]
[FEATURE] Docs: Explain branches
Explain master and next-release branch.
Master should always be a live version only,
unless the version is changed to something like "2.0.0-dev".
Refs #
Dan Untenzu [Tue, 24 Jan 2017 09:40:29 +0000 (10:40 +0100)]
[TASK] CGL: Remove trailing whitespaces
Remove all trailing whitespaces
Dan Untenzu [Tue, 24 Jan 2017 09:18:22 +0000 (10:18 +0100)]
[TASK] CGL: Fix line endings
All line endings are LF (Unix) now.
(bash command to convert all files: http://stackoverflow.com/a/
37846265 /
3894752 )
Dan Untenzu [Fri, 20 Jan 2017 16:31:35 +0000 (17:31 +0100)]
[FEATURE] Contribution guide: Revise structure
* Add description of new files
* Explain file system a bit further
* Fix some typos
Dan Untenzu [Fri, 20 Jan 2017 15:47:19 +0000 (16:47 +0100)]
[FEATURE] Readme: Add points to changelog
Dan Untenzu [Wed, 18 Jan 2017 18:41:14 +0000 (19:41 +0100)]
[FEATURE] Replace all domain depended links
Replace all occurences of "web_root" (domain depended links)
with "JIRAFEAU_ABSPREFIX" (absolute links to the root level).
Links like "https://example.com/foo/functions.js" are replaced
with "/foo/functions.js".
Refs #79
Dan Untenzu [Wed, 18 Jan 2017 18:32:37 +0000 (19:32 +0100)]
[FEATURE] Autogenerate prefix for absolute links
Add a helping variable to build absolute links to
the root of the domain without handling the URL scheme.
This way all links could get rid of the host & domain part,
and just build absolute links to the root instead.
(Replace "[https://example.com/foo/] + [functions.js]" with
"[/foo/] + [functions.js]")
Refs #79
Dan Untenzu [Wed, 18 Jan 2017 18:00:44 +0000 (19:00 +0100)]
[FEATURE] Installer: Remove (unknown) form target URL
The domain on which Jirafeau is running, is not yet
defined while installing the project. In order to build valid
action links for the form, the script generated a possible URL
using the request header. This method may fail for proxies
or while using HTTPS or due to spoofing or…
In HTML5 we can safely omnit the action attribute (see
http://stackoverflow.com/a/
9678030 ), which will cause the browser
to send the request to the exact same URL again.
This way we can avoid the URL guessing during the installation.
Refs #79
Dan Untenzu [Wed, 18 Jan 2017 17:11:23 +0000 (18:11 +0100)]
[FEATURE] Remove redundant constants
Remove some redundant settings
Dan Untenzu [Wed, 18 Jan 2017 17:01:14 +0000 (18:01 +0100)]
[BUGFIX] Remove redundant header variable
By removing the XHTML doctype it is not neccessary
anymore to tell proxys that the content type may change.
So this header is redunant now.
Dan Untenzu [Wed, 18 Jan 2017 16:56:49 +0000 (17:56 +0100)]
[BUGFIX] Remove redundant style fallback
Remove condition for an existing theme,
since a default configuration is always set.
Even if this would not be the case, would
the current fallback try to load a non-existing
theme called "default".
So remove this whole block.
pixelbrackets [Tue, 17 Jan 2017 21:21:47 +0000 (22:21 +0100)]
[!!][FEATURE] Remove XHTML doctype
The project uses a HTML5 doctype, but switches
to XHTML if a condition says that the clients browser
can handle XHTML. As this is the case for nearly any
browser which also supports HTML5, the condition causes
the script to *always* render the XHTML doctype.
We remove the whole condition and the XHTML doctype
in favour of a HTML5 doctype only.
Note: This may be considered as breaking change,
since HTML5 may not be working in ancient versions of IE.
Refs #97
Dan Untenzu [Wed, 18 Jan 2017 12:07:18 +0000 (13:07 +0100)]
[FEATURE] Docs: Revice upgrade instructions
* Rewrite general upgrade instructions
* Better explaination for breaking changes in
each version and how to fix them
Weblate [Fri, 27 Jan 2017 08:19:09 +0000 (09:19 +0100)]
Merge remote-tracking branch 'origin/master'
Dan Untenzu [Thu, 26 Jan 2017 10:15:59 +0000 (11:15 +0100)]
[FEATURE] Add Gitlab CI
Make use of the fantastic Gitlab CI to run some
tests automatically after each push.
First test: test for PHP errors in different versions.
Jerome Jutteau [Sun, 22 Jan 2017 12:59:17 +0000 (13:59 +0100)]
Simpler docker dev env
Note: ._* files are created due to docker file system sync, ignore them
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Weblate [Thu, 19 Jan 2017 19:36:45 +0000 (20:36 +0100)]
Merge remote-tracking branch 'origin/master'
Jerome Jutteau [Thu, 19 Jan 2017 19:35:19 +0000 (19:35 +0000)]
Jirafeau version 2.0.0
Signed-off-by: Jerome Jutteau <j.jutteau@gmail.com>
Weblate [Thu, 19 Jan 2017 19:09:40 +0000 (20:09 +0100)]
Merge remote-tracking branch 'origin/master'
Dan Untenzu [Tue, 17 Jan 2017 15:55:57 +0000 (16:55 +0100)]
[FEATURE] Styles: Add padding
Dan Untenzu [Tue, 17 Jan 2017 15:36:54 +0000 (16:36 +0100)]
[FEATURE] Docs: Explain how to obey the AGPLv3 license
This project uses the AGPLv3 license. If an admin decides
to make some adaptions to the source code, and run a service with
these changes incorporated, the admin is required to offer
the servers users a download of the source code of his version.
Describe in the README how to do that conveniently with the ToS page.
Closes #95
Dan Untenzu [Tue, 17 Jan 2017 15:15:49 +0000 (16:15 +0100)]
[BUGFIX] Translations: Rename ToS
Rename ToS label to plural
Dan Untenzu [Tue, 17 Jan 2017 15:12:07 +0000 (16:12 +0100)]
[FEATURE] Footer: Nicer project title
patrick-canterino.de