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
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
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
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
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
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.
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
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 #
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
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
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
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.
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
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
Let the admin overwrite the content of the
"Terms of Service" page by copying the original ToS
template and creating a local file (same procedure as
for the configuration). This file is not versionized.
Note: This is a breaking change, since the existing
tos textfile is moved. This should be mentioned
in the update comments.
* ToS text file changed → move file from "/tos_text.php"
to "/lib/tos.local.txt" and remove all HTML und PHP Tags,
leaving a regular text file.
Refs #95
Simplify the generation of the local configuration file
by replacing various loops with shorter PHP standard methods.
This will cause the local configuration to have a slightly
different style, but it is still an array therefore is
readable and changeable by PHP developers.
Move the include of the original and the local
configuration file into the settings file to reduce one
includes in each file, have all settings in one place
and remove unneccessary code from the config file
(which makes it easier to copy and change it).
Add some comments to enhance the readabillity in the
installation script.
Reduce footer includes and send all fatal errors
to one function instead.
Remove includes of installation depenend variables
in the footer, if the installation script is not
done yet.
Move settings include to the top (this may help
for future configuration tests).