selenia/platform

An extensible application base, built on Electro

Installs: 2 005

Dependents: 5

Suggesters: 0

Security: 0

Stars: 0

Watchers: 8

Forks: 1

Open Issues: 3

Type:electro-plugin

0.10.28 2021-01-08 00:31 UTC

README

An extensible application base, built on Electro

This package is meant to be installed on an Electro framework blank application.

Features

This plugin provides:

Design
  1. Administration layouts based on Twitter Bootstrap 3.
  • A main menu for your app.
  • Breadcrumb navigation.
  • Custom UI components.
  • Custom styling for the standard widgets.
  • Overridable templates for every bundled page.
Users and Authentication
  1. User management with roles support.
  • A form for editing the logged-in user's profile.
  • Automatic login form and logout action.
  • A default implementation of the User and Authentication APIs.
Translations support
  1. A fully translatable interface.
  • Translations management.
Forms
  • Multi-language forms.
  • Predefined actions for handling form submissions and automatically creating, updating and deleting records.

Bundled UI components

Administration / Generic App layouts
Sub-layouts
Widgets

Installation

To install this plugin on your application, using the terminal, cd to your app's directory and type:

workman module:install-plugin selenia/selenia

For correct operation, do not install this package directly with Composer.

Required configuration settings

The default bundled administration pages require some settings to be configured.

If you don't use these pages on your app, you don't need to set these settings.

  • languages = [ array of language definitions ]
  • requireLogin = true
  • globalSessions (optional)

The admin interface is multilingual (even if you use just one language on your app), and this plugin enables translation support by default.

If you have overriden that setting on your app's configuration, you'll need to enable it or create a sub-configuration to enable it for the chosen URI prefix.

You'll need to define, at least, one language on the app's configuration and select a default language on the .env file.

Example

On private/config/application.ini.php

return [
  'main' => [
    'languages'           => [
      'en:en-US:English:en_US|en_US.UTF-8|us',
      'pt:pt-PT:Português:pt_PT|pt_PT.UTF-8|ptg',
    ],
    'globalSessions'      => false, // share the session between the application and its sub-applications?
    'requireLogin'        => true,  // require login for this application?
  ]
];

On .env

APP_DEFAULT_LANG  = en

Usage

This plugin integrates into your application's main menu. The bundled pages will appear automatically on it.

If the app does not display the menu, you'll need to navigate manually to the provided URLs to see one of the bundled administration pages.

Relative URL for the user administration page: admin/users

If you want pages on your app to inherit the bundled administration graphical layout and default functionality, you'll need to:

  1. make your controller classes inherit from Selenia\Controllers\SeleniaController
  2. include on each of your views, as root tag, one of the bundled layout templates (ex: <Selenia>).

See the bundled administration pages' source code for concrete examples.

Plugin development

If you need to perform modifications on this plugin's assets, you'll need to rebuild it before commiting those changes.

Installing the development tools

cd private/plugins/selenia/platform
npm install
bower install

Rebuilding the plugin

cd private/plugins/selenia/platform
npm run build

License

The Selenia Platform is open-source software licensed under the MIT license.

Selenia Platform - Copyright © Cláudio Silva and Impactwave, Lda.