minimedit.git
5 years agologin/list: wrap each item to allow containment v3.4
Mischa POSLAWSKY [Sat, 7 Jul 2018 19:25:30 +0000 (21:25 +0200)]
login/list: wrap each item to allow containment

Hack to set CSS overflow fixing right-aligned date from bleading over.

5 years agologin/list: mark admins by a wrench pictograph
Mischa POSLAWSKY [Sat, 7 Jul 2018 19:23:29 +0000 (21:23 +0200)]
login/list: mark admins by a wrench pictograph

Prevent line-wraps by saving at least 5em.

5 years agologin/list: hide unvisited if ordered by seen
Mischa POSLAWSKY [Sat, 7 Jul 2018 19:27:56 +0000 (21:27 +0200)]
login/list: hide unvisited if ordered by seen

Filter out empty values which are not relevant to the requested view.

5 years agologin/admin: recent visitors summary
Mischa POSLAWSKY [Sat, 7 Jul 2018 21:03:40 +0000 (23:03 +0200)]
login/admin: recent visitors summary

Include login/list with limit and without columns.
Also links overview pages previously only mentioned privately.

5 years agologin/visits: replace login/visits script by common list
Mischa POSLAWSKY [Sat, 7 Jul 2018 21:02:02 +0000 (23:02 +0200)]
login/visits: replace login/visits script by common list

Completely subsumed.

5 years agologin/list: visit view to emulate login/visits
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:48:15 +0000 (22:48 +0200)]
login/list: visit view to emulate login/visits

Identical styling.

5 years agologin/list: option to order by seen date
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:50:59 +0000 (22:50 +0200)]
login/list: option to order by seen date

Feature parity with login/visits.

5 years agologin/list: indicate admins by suffix description
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:37:39 +0000 (22:37 +0200)]
login/list: indicate admins by suffix description

Like login/visits.

5 years agologin/list: avatar styling requires view parameter
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:41:57 +0000 (22:41 +0200)]
login/list: avatar styling requires view parameter

Default to a flat list of names.

5 years agologin/list: link users to edit page for admins
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:34:38 +0000 (22:34 +0200)]
login/list: link users to edit page for admins

Similar to login/visits.

5 years agologin/list: retrieve optional user data on demand
Mischa POSLAWSKY [Sat, 7 Jul 2018 20:27:19 +0000 (22:27 +0200)]
login/list: retrieve optional user data on demand

Generic interface to run methods for missing variables.
Provides delay and caching to prevent unnecessary disk access.

5 years agologin/list: profile class to access user data
Mischa POSLAWSKY [Sat, 7 Jul 2018 19:55:04 +0000 (21:55 +0200)]
login/list: profile class to access user data

Common object currently identical to array setup, but allowing for more complex
features such as delayed setup.

5 years agologin/list: prepare user data before display
Mischa POSLAWSKY [Sat, 7 Jul 2018 19:47:58 +0000 (21:47 +0200)]
login/list: prepare user data before display

Similar to login/visits; abstraction for upcoming options.

5 years agologin/list: rename from avatars for generic reuse
Mischa POSLAWSKY [Sat, 7 Jul 2018 21:04:54 +0000 (23:04 +0200)]
login/list: rename from avatars for generic reuse

Target to provide login/visits features.

5 years agopage: localise page variables within template includes
Mischa POSLAWSKY [Thu, 28 Jun 2018 22:03:05 +0000 (00:03 +0200)]
page: localise page variables within template includes

Clean up parameter interface:

- $Page provides containing page instead of parent script;
- $Args reserved for placeholder arguments;
- $Place inherited and joined with placeholder options.

The latter replaces GET overrides without bleeding into subsequent includes.

5 years agologin/edit: silence alter error for custom input v3.3
Mischa POSLAWSKY [Sat, 7 Jul 2018 13:04:14 +0000 (15:04 +0200)]
login/edit: silence alter error for custom input

Assume untargeted columns are handled later if input is set.
Fixes irrelevant password warning.

5 years agologin/edit: label references of tags descriptions
Mischa POSLAWSKY [Sat, 7 Jul 2018 15:53:44 +0000 (17:53 +0200)]
login/edit: label references of tags descriptions

Clickable.

5 years agologin/edit: generate checkbox input after post handling
Mischa POSLAWSKY [Sat, 7 Jul 2018 14:03:27 +0000 (16:03 +0200)]
login/edit: generate checkbox input after post handling

Generic handling of "values" attribute so form output can be updated.

5 years agologin/edit: apply tags input to target links
Mischa POSLAWSKY [Sat, 7 Jul 2018 13:30:19 +0000 (15:30 +0200)]
login/edit: apply tags input to target links

Allow admins to change user presence in listed tags.

5 years agologin/edit: list user existence in tags
Mischa POSLAWSKY [Sat, 7 Jul 2018 13:01:46 +0000 (15:01 +0200)]
login/edit: list user existence in tags

Grouping for avatars page.

5 years agoavatars: parameter selects user tags
Mischa POSLAWSKY [Thu, 28 Jun 2018 22:37:28 +0000 (00:37 +0200)]
avatars: parameter selects user tags

Users can be linked in profile/.tags/* groups.

5 years agoavatars: gallery of user images
Mischa POSLAWSKY [Thu, 28 Jun 2018 21:23:46 +0000 (23:23 +0200)]
avatars: gallery of user images

5 years agoavatars: template script to list users
Mischa POSLAWSKY [Thu, 28 Jun 2018 21:23:46 +0000 (23:23 +0200)]
avatars: template script to list users

5 years agopage: ignore undeclared placeholders in errors
Mischa POSLAWSKY [Fri, 6 Jul 2018 22:18:32 +0000 (00:18 +0200)]
page: ignore undeclared placeholders in errors

Does not yet exist pre-page called from error handlers.

5 years agothumb: catch php errors during (gd) resize
Mischa POSLAWSKY [Fri, 6 Jul 2018 22:16:26 +0000 (00:16 +0200)]
thumb: catch php errors during (gd) resize

Image response if GD fails on PHP 7, making it behave identical to exec.
Incompatible with PHP 5, where it will show a generic html error page,
regressing for convert exceptions.

5 years agothumb: prefer native GD over external convert
Mischa POSLAWSKY [Tue, 19 Jun 2018 22:17:48 +0000 (00:17 +0200)]
thumb: prefer native GD over external convert

Commonly available unlike executed command which may be disallowed
(at Xenat) or missing (at Vimexx) on shared hosting servers.

5 years agothumb: decide on cache location in mkthumb()
Mischa POSLAWSKY [Sat, 7 Jul 2018 11:28:08 +0000 (13:28 +0200)]
thumb: decide on cache location in mkthumb()

5 years agothumb: force reload with specified ?backend
Mischa POSLAWSKY [Thu, 5 Jul 2018 13:32:01 +0000 (15:32 +0200)]
thumb: force reload with specified ?backend

Option indicates development, in which case cached results should be ignored
as well.

5 years agothumb: ?backend option to override resize callback
Mischa POSLAWSKY [Thu, 5 Jul 2018 13:29:41 +0000 (15:29 +0200)]
thumb: ?backend option to override resize callback

Prepare to implement and test different mkthumb options.

5 years agothumb: show 404.png for missing requests
Mischa POSLAWSKY [Wed, 4 Jul 2018 16:56:08 +0000 (18:56 +0200)]
thumb: show 404.png for missing requests

5 years agothumb: error image also on unexpected exceptions
Mischa POSLAWSKY [Wed, 4 Jul 2018 16:53:30 +0000 (18:53 +0200)]
thumb: error image also on unexpected exceptions

Output is expected to be an image so avoid HTML responses.
Replace 501 placeholder by a common 500.png on any resize error.
Preserve message in X-Error header for debugging.

5 years agothumb: move imagemagick execution to separate function
Mischa POSLAWSKY [Wed, 4 Jul 2018 16:45:59 +0000 (18:45 +0200)]
thumb: move imagemagick execution to separate function

Code cleanup to prepare for different resizing backends.

5 years agologin/visits: styling classes for list and seen dates
Mischa POSLAWSKY [Tue, 19 Jun 2018 17:13:03 +0000 (19:13 +0200)]
login/visits: styling classes for list and seen dates

5 years agologin/edit: prepare input restriction for user names
Mischa POSLAWSKY [Tue, 19 Jun 2018 17:02:52 +0000 (19:02 +0200)]
login/edit: prepare input restriction for user names

Indicate validity even though it cannot be altered yet.

5 years agologin: replace unsupported characters in user names
Mischa POSLAWSKY [Tue, 19 Jun 2018 16:54:43 +0000 (18:54 +0200)]
login: replace unsupported characters in user names

5 years agofoto: ?blur option to disable thumbnail resizing
Mischa POSLAWSKY [Tue, 19 Jun 2018 11:10:26 +0000 (13:10 +0200)]
foto: ?blur option to disable thumbnail resizing

5 years agoedit/foto: admin option to set image as album cover
Mischa POSLAWSKY [Mon, 18 Sep 2017 16:55:37 +0000 (18:55 +0200)]
edit/foto: admin option to set image as album cover

Copied from editcover at Lijtweg commit v2.5-20-g93cfc0a122 (2017-10-13).

5 years agofoto: image album browser and control
Mischa POSLAWSKY [Mon, 18 Sep 2017 16:54:42 +0000 (18:54 +0200)]
foto: image album browser and control

Original foto.php controller and related assets copied from Lijtweg at
commit v2.5-24-ga5399c5d03 (2017-10-22).

Requires image files at data/ symlinked into albums at foto/ with prefixed
resolution attributes.  Depends on external javascript libraries [PhotoSwipe
and Flickr's Justified-Layout] at lib/ (changed from import/ at lijtweg)
installed by make rules.

5 years agothumb: return 501 image if resize is unavailable
Mischa POSLAWSKY [Mon, 18 Jun 2018 19:36:17 +0000 (21:36 +0200)]
thumb: return 501 image if resize is unavailable

Missing feature on Xenat servers causes PHP error messages resulting in
an invalid image.  Substitute a user-friendly placeholder instead.

5 years agologin/commits: increase size of subsequent pages
Mischa POSLAWSKY [Mon, 18 Jun 2018 19:11:00 +0000 (21:11 +0200)]
login/commits: increase size of subsequent pages

5 years agologin/edit: column descriptions; explain name visibility
Mischa POSLAWSKY [Mon, 18 Jun 2018 19:09:13 +0000 (21:09 +0200)]
login/edit: column descriptions; explain name visibility

5 years agoedit: button to create div containers v3.2
Mischa POSLAWSKY [Mon, 18 Jun 2018 16:54:37 +0000 (18:54 +0200)]
edit: button to create div containers

Commonly used for columns and right-aligned blocks.

5 years agocontact: generic replies for use on other sites
Mischa POSLAWSKY [Mon, 18 Jun 2018 13:04:33 +0000 (15:04 +0200)]
contact: generic replies for use on other sites

Apply updates from Lijtweg at commit v2.5-41-gdf1b219c9d (2017-11-27).

5 years agocontact: code cleanup (mailform function)
Mischa POSLAWSKY [Mon, 18 Jun 2018 13:27:56 +0000 (15:27 +0200)]
contact: code cleanup (mailform function)

5 years agocontact: reply form to send email to info@covexcelsiorleiderdorp.nl
Mischa POSLAWSKY [Fri, 16 Jan 2015 21:19:19 +0000 (22:19 +0100)]
contact: reply form to send email to info@covexcelsiorleiderdorp.nl

Copied from Excelsior at commit 2018-v1-1-gf1550a9744 (2018-04-20).

5 years agologin/edit: password input from common form option
Mischa POSLAWSKY [Sat, 16 Jun 2018 21:17:03 +0000 (23:17 +0200)]
login/edit: password input from common form option

5 years agologin/edit: build input html from prepared attributes
Mischa POSLAWSKY [Sat, 16 Jun 2018 21:30:33 +0000 (23:30 +0200)]
login/edit: build input html from prepared attributes

Same results, easier to maintain.

5 years agologin/edit: password option in label
Mischa POSLAWSKY [Sat, 16 Jun 2018 20:58:33 +0000 (22:58 +0200)]
login/edit: password option in label

5 years agologin/edit: refresh thumbnails on avatar upload
Mischa POSLAWSKY [Sat, 16 Jun 2018 19:49:57 +0000 (21:49 +0200)]
login/edit: refresh thumbnails on avatar upload

5 years agonieuws: strict year parsing, fallback to all
Mischa POSLAWSKY [Sat, 16 Jun 2018 18:11:43 +0000 (20:11 +0200)]
nieuws: strict year parsing, fallback to all

5 years agologin/edit: format form inputs as html list
Mischa POSLAWSKY [Sat, 16 Jun 2018 14:57:37 +0000 (16:57 +0200)]
login/edit: format form inputs as html list

5 years agologin/edit: set correct id for input fields
Mischa POSLAWSKY [Sat, 16 Jun 2018 13:38:12 +0000 (15:38 +0200)]
login/edit: set correct id for input fields

5 years agologin/edit: resize avatar preview image
Mischa POSLAWSKY [Sat, 16 Jun 2018 13:33:21 +0000 (15:33 +0200)]
login/edit: resize avatar preview image

5 years agothumb: prefix data path only for numeric roots
Mischa POSLAWSKY [Sat, 16 Jun 2018 13:32:49 +0000 (15:32 +0200)]
thumb: prefix data path only for numeric roots

Support other paths while retaining compatibility with /data-implied links.

5 years agologin/edit: treat avatar as jpeg images
Mischa POSLAWSKY [Sat, 16 Jun 2018 13:05:49 +0000 (15:05 +0200)]
login/edit: treat avatar as jpeg images

5 years agologin/edit: save file uploads for avatar option
Mischa POSLAWSKY [Sat, 16 Jun 2018 12:48:01 +0000 (14:48 +0200)]
login/edit: save file uploads for avatar option

5 years agothumb: dynamic image relay with resize option
Mischa POSLAWSKY [Thu, 5 Oct 2017 20:03:55 +0000 (22:03 +0200)]
thumb: dynamic image relay with resize option

Generate image with requested height from data source, which should be
bypassed by the server if target file exists.

Copied from Lijtweg at commit v2.5-58-gac5434f0af (2017-12-12).

5 years agonieuws: create article urls with dash separators v3.1
Mischa POSLAWSKY [Sat, 16 Jun 2018 03:43:12 +0000 (05:43 +0200)]
nieuws: create article urls with dash separators

Prompt for "link" to clarify purpose, and replace spaces (as most sites do).

5 years agonieuws: ignore non-numeric month requests
Mischa POSLAWSKY [Fri, 15 Jun 2018 11:26:17 +0000 (13:26 +0200)]
nieuws: ignore non-numeric month requests

Minor code cleanup to prevent PHP warnings.

5 years agoedit: omit type input from link dialog
Mischa POSLAWSKY [Fri, 15 Jun 2018 11:20:16 +0000 (13:20 +0200)]
edit: omit type input from link dialog

Simplify common usage by hiding unneeded options; specifically email
(prefer forms) and page references (rare).
Can still be entered manually if needed, but should not be advertised.

5 years agoedit: optional target upload directory
Mischa POSLAWSKY [Thu, 14 Jun 2018 16:14:07 +0000 (18:14 +0200)]
edit: optional target upload directory

Prepare for categorisation, for example supplying user paths.

5 years agoedit: prefer enhanced image plugin with alignment classes
Mischa POSLAWSKY [Thu, 14 Jun 2018 20:41:37 +0000 (22:41 +0200)]
edit: prefer enhanced image plugin with alignment classes

5 years agoedit: support ckeditor uploadUrl protocol
Mischa POSLAWSKY [Thu, 14 Jun 2018 16:33:58 +0000 (18:33 +0200)]
edit: support ckeditor uploadUrl protocol

5 years agoedit: catch upload errors
Mischa POSLAWSKY [Thu, 14 Jun 2018 16:43:22 +0000 (18:43 +0200)]
edit: catch upload errors

Prepare for messages to be included in response.

5 years agoedit: create missing image upload directories
Mischa POSLAWSKY [Thu, 14 Jun 2018 16:06:44 +0000 (18:06 +0200)]
edit: create missing image upload directories

5 years agopage: prefer dutch time zone for all users
Mischa POSLAWSKY [Thu, 14 Jun 2018 15:36:20 +0000 (17:36 +0200)]
page: prefer dutch time zone for all users

Local times [in user overviews] on foreign servers [Xenat].

5 years agologin/pass: encrypt user input in profile data
Mischa POSLAWSKY [Thu, 14 Jun 2018 15:00:15 +0000 (17:00 +0200)]
login/pass: encrypt user input in profile data

Left cleartext for debugging, but prefer at least blowfish hashing.
Assume PHP v5.5 to generate salts.

5 years agologin/members: user overview for admins
Mischa POSLAWSKY [Thu, 14 Jun 2018 10:08:57 +0000 (12:08 +0200)]
login/members: user overview for admins

Like login/visits but ordered by name, and with create link.

5 years agologin/visits: indicate admin users
Mischa POSLAWSKY [Thu, 14 Jun 2018 09:59:07 +0000 (11:59 +0200)]
login/visits: indicate admin users

5 years agologin/edit: create missing user profiles
Mischa POSLAWSKY [Thu, 14 Jun 2018 09:24:18 +0000 (11:24 +0200)]
login/edit: create missing user profiles

5 years agopage: silence php warning of undefined user
Mischa POSLAWSKY [Thu, 14 Jun 2018 09:13:42 +0000 (11:13 +0200)]
page: silence php warning of undefined user

Broken since commit v2.6-18-g297195ea7c (2018-06-09)
[page: set placeholder after page script].

5 years agologin/pass: require new password value to be confirmed
Mischa POSLAWSKY [Sat, 9 Jun 2018 07:18:58 +0000 (09:18 +0200)]
login/pass: require new password value to be confirmed

5 years agologin/edit: optional fields to change password
Mischa POSLAWSKY [Sat, 9 Jun 2018 06:41:34 +0000 (08:41 +0200)]
login/edit: optional fields to change password

Inline login/pass page.

5 years agologin/pass: separate include to parse user input
Mischa POSLAWSKY [Sat, 9 Jun 2018 06:35:51 +0000 (08:35 +0200)]
login/pass: separate include to parse user input

Allow reuse with different form input.

5 years agologin/edit: labeled fields with login and full name
Mischa POSLAWSKY [Sat, 9 Jun 2018 03:09:06 +0000 (05:09 +0200)]
login/edit: labeled fields with login and full name

5 years agologin/edit: target user data distinct from login
Mischa POSLAWSKY [Thu, 14 Jun 2018 08:59:49 +0000 (10:59 +0200)]
login/edit: target user data distinct from login

Prepare for admin control.

5 years agologin/edit: admins can access other users
Mischa POSLAWSKY [Sat, 9 Jun 2018 00:48:01 +0000 (02:48 +0200)]
login/edit: admins can access other users

5 years agologin/edit: generic column configuration
Mischa POSLAWSKY [Sat, 9 Jun 2018 02:15:01 +0000 (04:15 +0200)]
login/edit: generic column configuration

Support other fields besides email.

5 years agologin/edit: initial code cleanup to prepare for other columns
Mischa POSLAWSKY [Sat, 9 Jun 2018 01:06:14 +0000 (03:06 +0200)]
login/edit: initial code cleanup to prepare for other columns

5 years agologin/edit: rename setmail include for generic profile editor
Mischa POSLAWSKY [Sat, 9 Jun 2018 03:08:15 +0000 (05:08 +0200)]
login/edit: rename setmail include for generic profile editor

5 years agologin/visits: read and prefer configured user names
Mischa POSLAWSKY [Sat, 9 Jun 2018 00:07:48 +0000 (02:07 +0200)]
login/visits: read and prefer configured user names

5 years agologin/visits: store user data in extensible hash
Mischa POSLAWSKY [Fri, 8 Jun 2018 23:59:19 +0000 (01:59 +0200)]
login/visits: store user data in extensible hash

Prepare for other user details.

5 years agologin/visits: list users without log entry
Mischa POSLAWSKY [Sat, 9 Jun 2018 00:17:17 +0000 (02:17 +0200)]
login/visits: list users without log entry

Show unseen users as well.

5 years agopage: set placeholder after page script v3.0
Mischa POSLAWSKY [Fri, 8 Jun 2018 22:50:33 +0000 (00:50 +0200)]
page: set placeholder after page script

User may be set or changed by login.

5 years agonieuws: archive pages by year only
Mischa POSLAWSKY [Fri, 8 Jun 2018 22:05:43 +0000 (00:05 +0200)]
nieuws: archive pages by year only

5 years agonieuws: placeholder script to show articles
Mischa POSLAWSKY [Wed, 2 May 2018 15:05:18 +0000 (17:05 +0200)]
nieuws: placeholder script to show articles

Can replace homepage controller to inline latest news.

5 years agologin: replace page controllers by placeholders
Mischa POSLAWSKY [Sat, 5 May 2018 16:24:04 +0000 (18:24 +0200)]
login: replace page controllers by placeholders

5 years agopage: placeholder options
Mischa POSLAWSKY [Wed, 2 May 2018 15:23:19 +0000 (17:23 +0200)]
page: placeholder options

Target name can be followed by whitespace for additional configuration.
Syntax "name=value" will be applied to global GET (overriding user input).
Otherwise a /subpath will be appended to local page Args.

5 years agopage: include scripts from placeholders
Mischa POSLAWSKY [Wed, 2 May 2018 12:52:16 +0000 (14:52 +0200)]
page: include scripts from placeholders

5 years agopage: apply placeholder replacement to all page output
Mischa POSLAWSKY [Fri, 8 Jun 2018 16:47:55 +0000 (18:47 +0200)]
page: apply placeholder replacement to all page output

5 years agopage: include controllers from index.php
Mischa POSLAWSKY [Fri, 8 Jun 2018 15:59:51 +0000 (17:59 +0200)]
page: include controllers from index.php

Replace page code by directory handlers.  Essentially the same,
preparing for upcoming placeholder includes.

5 years agonieuws: treat years before 2000 as single page
Mischa POSLAWSKY [Fri, 20 Apr 2018 06:46:09 +0000 (08:46 +0200)]
nieuws: treat years before 2000 as single page

5 years agonieuws: support zero month for unknown dates
Mischa POSLAWSKY [Fri, 20 Apr 2018 06:30:47 +0000 (08:30 +0200)]
nieuws: support zero month for unknown dates

5 years agonieuws: parse date using single regexp
Mischa POSLAWSKY [Thu, 19 Apr 2018 16:03:33 +0000 (18:03 +0200)]
nieuws: parse date using single regexp

Equivalent but easier to maintain.

5 years agonieuws: drop prompt for article (back)date
Mischa POSLAWSKY [Thu, 19 Apr 2018 16:03:33 +0000 (18:03 +0200)]
nieuws: drop prompt for article (back)date

Much easier to use.  In rare cases where custom dates are wanted,
pages can still be created manually.

Requested-by: Arie van Marion
5 years agonieuws: port excelsior toc and year filtering
Mischa POSLAWSKY [Thu, 19 Apr 2018 16:03:33 +0000 (18:03 +0200)]
nieuws: port excelsior toc and year filtering

5 years agonieuws: dynamic article system
Mischa POSLAWSKY [Wed, 4 Oct 2017 23:04:11 +0000 (01:04 +0200)]
nieuws: dynamic article system

Copied from lijtweg site v2.4-25-g7cfaa2f8d4 (2017-10-05).
Simple js to create pages in /nieuws/year/month/day-title.html
and overview to concatenate them chronologically.

5 years agologin/visits: user details moved to /profile
Mischa POSLAWSKY [Fri, 8 Jun 2018 16:18:06 +0000 (18:18 +0200)]
login/visits: user details moved to /profile

Broken since commit v2.5-5-g6236e7cb8d (2018-04-25)
[login: store user data in /profile directory].

5 years agopage: replace missing placeholders by warning
Mischa POSLAWSKY [Wed, 2 May 2018 12:39:52 +0000 (14:39 +0200)]
page: replace missing placeholders by warning

5 years agopage: replace placeholders dynamically
Mischa POSLAWSKY [Thu, 26 Apr 2018 21:05:19 +0000 (23:05 +0200)]
page: replace placeholders dynamically

Instead of substituting known variables, search contents for placeholders
for identical results but allowing for additional options.