From 4db299f80582647d3b9ecec407833765afb3d039 Mon Sep 17 00:00:00 2001 From: paspo Date: Mon, 13 Aug 2018 10:26:08 +0200 Subject: [PATCH] added some docs --- README.md | 46 +++++++++++++++++++- images/6e20d4c0beaebeb935ffbd7d77855776.png | Bin 0 -> 5092 bytes images/760afc0cf8ee59ce9cc1b8b7f5f1f517.png | Bin 0 -> 9970 bytes 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 images/6e20d4c0beaebeb935ffbd7d77855776.png create mode 100644 images/760afc0cf8ee59ce9cc1b8b7f5f1f517.png diff --git a/README.md b/README.md index 7632789..69e2c29 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,49 @@ [![Build Status](https://drone.libreschool.org/api/badges/LibreSchool/libreschool-startpage/status.svg)](https://drone.libreschool.org/LibreSchool/libreschool-startpage) +This is a LibreSchool plugin used to force a browser start page on all clients. +On this start page you can have multiple buttons/icons acting as a link to different services. +There's a basic GUI for configuration but it lacks links configuration. -TODO + +## Usage + +Just go in the "start page" section on the server's administration interface. From here you can enable or disable the start page. + +![6e20d4c0beaebeb935ffbd7d77855776.png](./images/6e20d4c0beaebeb935ffbd7d77855776.png) + +On the "Users" tab, you can change the start page for all users. + +![760afc0cf8ee59ce9cc1b8b7f5f1f517.png](./images/760afc0cf8ee59ce9cc1b8b7f5f1f517.png) + +You can add a new link via command line (just SSH to server and issue this command) + +``` +# db startpage set link2 link enable yes title "Registro Elettronico" link "https://axioscloud.it" imagelink "https://family.axioscloud.it/Images/Image_Login.png" +``` + +Remember to regenerate the start-page after each modification: +``` +# /etc/e-smith/events/actions/startpage-refresh +``` + + + +## Advanced Usage + + +### Custom templating +There's support for templating, so you can customize your own template. Just create a new file (let's say `mytemplate.jinja2` and put it in `/usr/share/startpage/templates`). As you can imagine, [jinja2](http://jinja.pocoo.org/) is used as the templating engine. +If you need custom assets (images, css, and so on), you can put it under `/usr/share/startpage/assets`; keep in mind that this path is reachable via http on the `/startpage` URI. +To select the active template: +``` +# db startpage setprop configuration template mytemplate +``` +As usual, remember to regenerate the start-page. + +### Renaming output file +If for some reason you want to rename the output file, do like this: +``` +# db startpage setprop configuration outfile /var/www/html/index.php +``` +As usual, remember to regenerate the start-page. diff --git a/images/6e20d4c0beaebeb935ffbd7d77855776.png b/images/6e20d4c0beaebeb935ffbd7d77855776.png new file mode 100644 index 0000000000000000000000000000000000000000..08b433911210d763670ed4a0ccd363525d269ebb GIT binary patch literal 5092 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 HHj)1UWN_BD literal 0 HcmV?d00001 diff --git a/images/760afc0cf8ee59ce9cc1b8b7f5f1f517.png b/images/760afc0cf8ee59ce9cc1b8b7f5f1f517.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2497674fd710ebab7611870cf1f77f76a83635 GIT binary patch literal 9970 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