Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bourgeoa/solid-file-widget
Widget authorization for a Solid webapp
https://github.com/bourgeoa/solid-file-widget
solid-app
Last synced: 24 days ago
JSON representation
Widget authorization for a Solid webapp
- Host: GitHub
- URL: https://github.com/bourgeoa/solid-file-widget
- Owner: bourgeoa
- License: mit
- Created: 2019-01-16T22:55:41.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T16:41:44.000Z (almost 2 years ago)
- Last Synced: 2024-09-19T19:25:05.003Z (about 2 months ago)
- Topics: solid-app
- Language: HTML
- Homepage: https://bourgeoa.solidcommunity.net/public/solid-file-widget/
- Size: 1.79 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - bourgeoa/solid-file-widget - Widget authorization for a Solid webapp (others)
README
# solid-file-widget
![npm](https://badge.fury.io/js/solid-file-widget.svg)
--- NEW as from v1.0.0 solid-file-client is not used anymore, it is replaced by solid-auth-client ---
--- NEW an option for choosing a popup.html file has been added, it defaults to https://solidcommunity.net/common/popup.html
A ready-to-use connect/register widget for Solid webapp, as add-on library for
[node-solid-server](https://github.com/solid/node-solid-server).-- registering to be done, but all parameters are fonctional --
## Returns cookies
If 'connected to the Solid pod' and after 'checking/creating appRootUri for appRoot'
(do not check/create appFileUri) returns localStorage cookies.var uriRoot = localStorage.getItem(appRootUri);
var uriFile = localStorage.getItem(appFileUri);## Usage
```javascript
const auth = require('solid-auth-client')
const Widget = require("solid-file-widget")
```
```HTMLconst auth = solid.auth
// ...
var uriRoot = localStorage.getItem(appRoot);
var uriFile = localStorage.getItem(appFile);const widget = new Widget(solidFile, {
solidAppName : "appname",
appFolder : "/public/foldername"
});widget.attach();
// ...
```## Configuration
The widget has some configuration options to customize the behavior:
| Option | Description | Type | Default |
|---|---|---|---|
| `leaveOpen` | Keep the widget open when user clicks outside of it | Boolean | false |
| `autoCloseAfter` | Timeout after which the widget closes automatically (in milliseconds). The widget only closes when a storage is connected. | Number | 1500 |
| `skipInitial` | Don't show the initial connect hint, but show sign-in screen directly instead | Boolean | false |
| `logging` | Enable logging for debugging purposes | Boolean | false |
| `windowReload` | Browser reload on connect/disconnect | Boolean | true |
| `solidAppName` | app name registered in Solid pod TypeIndex | String | "" |
| `appFolder` | app root folder registered in Solid pod TypeIndex | String | from TypeIndex or '/public' |
| `appFile` | app file registered in Solid pod TypeIndex | String | from TypeIndex |
| `popupUri` | solidAuth popup default to : "https://solidcommunity.net/common/popup.html" | string |## Available Functions
`attach(elementID)` - Attach the widget to the DOM and display it. You can
use an optional element ID that the widget should be attached to.
Otherwise it will be attached to the body.While the `attach()` method is required for the widget to be actually
shown, the following functions are usually not needed. They allow for
fine-tuning the experience.`close()` - Close/minimize the widget to only show the icon.
`open()` - Open the widget when it is minimized.
`toggle()` - Switch between open and closed state.
## Development / Customization
Install deps:
npm install
Build, run and watch demo/test app:
npm start
The demo app will then be served at http://localhost:8008
## Acknowledgements
Many thanks for inspiration from https://github.com/remotestorage/remotestorage-widget
and from https://github.com/jeff-zucker/solid-file-client**copyright (c) 2019 Alain Bourgeois** may be freely used with MIT license