diff --git a/README.md b/README.md index a9d069b..30aaf44 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,28 @@ -# Skeleton -- a Kanboard plugin template +# TweakDrag -- board drag, touch and column-gap tweaks -A minimal, working Kanboard plugin that you copy and rename as the starting point for a -real plugin. By itself it does only one trivial thing: it renders the word "Skeleton" at -the top of every page. It changes no data and runs no database migration. +A Kanboard plugin that groups board dragging and spacing tweaks. This first version +provides two options, both configurable under "Settings -> Tweak Drag": -## What it demonstrates +- **Drag the board background to scroll** (desktop) -- click and drag on the empty board + background to scroll the columns sideways, like the Trello board canvas. +- **Widen the gap between columns** -- spread the columns further apart, easier to tell + apart and to touch. -- A complete `Plugin.php` registration class with all the metadata Kanboard shows in - Settings -> Plugins (name, description, author, version, homepage, compatible version). -- A template hook (`template:layout:top`) that injects a template into the page. -- Asset hooks (`template:layout:css` and `template:layout:js`) that load a stylesheet and - a script. They are empty for now but prove the injection path works -- handy when a real - plugin needs custom CSS or JS. -- The standard plugin directory layout, with stub folders (`Controller/`, `Model/`, - `Schema/`, `Locale/`, `Test/`) ready to grow into. +These options were originally part of the ShrinkVertically plugin and moved here so that +drag/touch behaviour can grow on its own (planned: mobile drag-to-move cards, and a drag +movement threshold so ending a drag does not open the task) without bloating that plugin. + +## How it works + +- **Drag to scroll**: a small script (`Asset/js/drag-scroll.js`, loaded only when the + option is on) starts a horizontal pan on `#board-container` only when the press lands on + empty background -- pressing a task card, a drag handle or any control is ignored, so + Kanboard's own card and column drag-and-drop keep working unchanged. +- **Column gap**: the board is a table, so the gap is set with `border-spacing` (injected + in the page head from `Template/layout/variable.php` only when the option is on), sized + by the `--td-column-gap` CSS variable. This spreads the columns without shrinking the + cards and keeps each column header aligned with its list. It also adds some spacing at + the left and right edges of the board. ## Requirements @@ -21,45 +30,19 @@ the top of every page. It changes no data and runs no database migration. ## Installation -No build step and no dependencies. +Copy this folder into your Kanboard installation as `plugins/TweakDrag/`. The directory +name must be exactly `TweakDrag` (Kanboard derives the plugin namespace from the folder +name). No build step and no database migration. -1. Copy this folder into your Kanboard installation as `plugins/Skeleton/`. -2. Reload any page. The word "Skeleton" appears at the top. -3. Confirm it under Settings -> Plugins. +## Settings -To uninstall, delete `plugins/Skeleton/`. Nothing else is left behind. +These settings are global (per Kanboard instance) and admin-only. Go to +"Settings -> Tweak Drag": -## Directory layout - -``` -Skeleton/ - Plugin.php Registration and hook wiring (the only required file). - README.md - LICENSE AGPL-3.0. - Template/ - layout/header.php The visible "Skeleton" word. - Asset/ - css/skeleton.css Loaded via template:layout:css. - js/skeleton.js Loaded via template:layout:js. - Controller/ Stub for future request handlers. - Model/ Stub for future business logic / DB access. - Schema/ Stub for future database migrations. - Locale/ Stub for future translations (e.g. pt_BR/, fr_FR/). - Test/ Stub for future unit tests. -``` - -## How to fork this into a new plugin - -1. Copy the folder and rename it, e.g. `plugins/MyPlugin/`. The folder name must match the - namespace and start with a capital letter. -2. In `Plugin.php`, change the namespace from `Kanboard\Plugin\Skeleton` to - `Kanboard\Plugin\MyPlugin`. -3. Update the metadata methods (`getPluginName`, `getPluginDescription`, `getPluginAuthor`, - `getPluginVersion`, `getPluginHomepage`, `getCompatibleVersion`). -4. Update the hook target paths: the lowercase prefix in `'skeleton:layout/header'` and the - `plugins/Skeleton/Asset/...` asset paths must match the new plugin name. -5. Replace `Template/layout/header.php` with your real template, or attach to a different - hook. See the Kanboard plugin hooks documentation for the full list of hook points. +- **Column gap in pixels** -- width of the column gap (`--td-column-gap`). Default: 25. +- **Widen the gap between columns** -- toggles the wider gap. Default: on. +- **Drag the board background to scroll horizontally** -- toggles the Trello-style + click-and-drag panning. Desktop (mouse) for now. Default: on. ## License