The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .all-contributorsrc
├── .deepsource.toml
├── .github
    ├── stale.yml
    └── workflows
    │   ├── codeql-analysis.yml
    │   ├── install-ajenti.yml
    │   └── release.yml
├── .gitignore
├── CHANGELOG.txt
├── LICENSE
├── Makefile
├── README.md
├── ajenti-core
    ├── .gitignore
    ├── MANIFEST.in
    ├── aj
    │   ├── __init__.py
    │   ├── api
    │   │   ├── __init__.py
    │   │   ├── endpoint.py
    │   │   ├── http.py
    │   │   └── mail.py
    │   ├── auth.py
    │   ├── compat.py
    │   ├── config.py
    │   ├── core.py
    │   ├── entry.py
    │   ├── gate
    │   │   ├── __init__.py
    │   │   ├── gate.py
    │   │   ├── middleware.py
    │   │   ├── session.py
    │   │   ├── stream.py
    │   │   └── worker.py
    │   ├── http.py
    │   ├── https_redirect.py
    │   ├── log.py
    │   ├── plugins.py
    │   ├── routing.py
    │   ├── security
    │   │   ├── __init__.py
    │   │   ├── pwreset.py
    │   │   ├── totp.py
    │   │   └── verifier.py
    │   ├── static
    │   │   ├── emails
    │   │   │   └── reset_email.html
    │   │   └── images
    │   │   │   ├── Logo.png
    │   │   │   └── error.jpeg
    │   ├── util
    │   │   ├── __init__.py
    │   │   ├── broadcast_queue.py
    │   │   ├── lazy.py
    │   │   ├── misc.py
    │   │   ├── pidfile.py
    │   │   ├── public.py
    │   │   └── strings.py
    │   └── wsgi.py
    ├── requirements.txt
    ├── setup.cfg
    └── setup.py
├── ajenti-panel
    ├── aj
    ├── ajenti-client-ssl-gen
    ├── ajenti-panel
    ├── ajenti-ssl-gen
    ├── ajenti-upgrade
    ├── config.yml
    ├── packaging
    │   └── files
    │   │   ├── .placeholder
    │   │   ├── ajenti
    │   │   ├── ajenti-bsd
    │   │   └── ajenti.service
    ├── setup.cfg
    └── setup.py
├── debian
    ├── scripts
    │   └── postinstall.sh
    └── systemd
    │   └── ajenti2.service
├── docs
    ├── CHANGELOG
    ├── COPYRIGHT
    ├── LICENSE
    ├── Makefile
    ├── img
    │   ├── Logo.png
    │   ├── rd-check_cert-add.png
    │   ├── rd-check_cert-list.png
    │   ├── rd-cron-add.png
    │   ├── rd-cron-list.png
    │   ├── rd-dashboard.png
    │   ├── rd-date.png
    │   ├── rd-docker-containers.png
    │   ├── rd-docker-images.png
    │   ├── rd-filemanager-permissions.png
    │   ├── rd-filemanager-properties.png
    │   ├── rd-filemanager.png
    │   ├── rd-fstab-file.png
    │   ├── rd-fstab-mount.png
    │   ├── rd-login.png
    │   ├── rd-network.png
    │   ├── rd-notepad.png
    │   ├── rd-packages.png
    │   ├── rd-plugins.png
    │   ├── rd-power.png
    │   ├── rd-pwreset.png
    │   ├── rd-sessions.png
    │   ├── rd-settings-general.png
    │   ├── rd-settings-security.png
    │   ├── rd-settings-smtp.png
    │   ├── rd-settings.png
    │   ├── rd-softraid.png
    │   ├── rd-systemd.png
    │   ├── rd-terminal.png
    │   ├── rd-users-list.png
    │   └── rd-users-properties.png
    └── source
    │   ├── _static
    │       └── style.css
    │   ├── _templates
    │       ├── layout.html
    │       └── page.html
    │   ├── conf.py
    │   ├── dev
    │       ├── about.rst
    │       ├── dash-widgets.rst
    │       ├── http.rst
    │       ├── intro-core.rst
    │       ├── intro.rst
    │       ├── multitool.rst
    │       ├── resources.rst
    │       └── ui.rst
    │   ├── index.rst
    │   ├── man
    │       ├── config.rst
    │       ├── contributing.rst
    │       ├── install.rst
    │       ├── run.rst
    │       └── security.rst
    │   ├── plugins
    │       ├── check_certificates.rst
    │       ├── core.rst
    │       ├── cron.rst
    │       ├── dashboard.rst
    │       ├── datetime.rst
    │       ├── docker.rst
    │       ├── filemanager.rst
    │       ├── fstab.rst
    │       ├── network.rst
    │       ├── notepad.rst
    │       ├── packages.rst
    │       ├── plugins.rst
    │       ├── power.rst
    │       ├── services.rst
    │       ├── session_list.rst
    │       ├── settings.rst
    │       ├── terminal.rst
    │       └── users.rst
    │   ├── ref
    │       ├── aj.api.endpoint.rst
    │       ├── aj.api.http.rst
    │       ├── aj.config.rst
    │       ├── aj.core.rst
    │       ├── aj.entry.rst
    │       ├── aj.http.rst
    │       ├── aj.plugins.augeas.api.rst
    │       ├── aj.plugins.auth-users.api.rst
    │       ├── aj.plugins.check_certificates.api.rst
    │       ├── aj.plugins.core.api.push.rst
    │       ├── aj.plugins.core.api.sidebar.rst
    │       ├── aj.plugins.core.api.tasks.rst
    │       ├── aj.plugins.dashboard.api.rst
    │       ├── aj.plugins.datetime.api.rst
    │       ├── aj.plugins.network.api.rst
    │       ├── aj.plugins.packages.api.rst
    │       ├── aj.plugins.power.api.rst
    │       ├── aj.plugins.rst
    │       ├── aj.plugins.services.api.rst
    │       ├── aj.rst
    │       └── jadi.rst
    │   └── refjs
    │       ├── ace.rst
    │       ├── augeas.rst
    │       ├── core.rst
    │       ├── filesystem.rst
    │       ├── passwd.rst
    │       ├── services.rst
    │       └── terminal.rst
├── e2e
    ├── .gitignore
    ├── conf.coffee
    ├── package.json
    ├── run
    └── specs
    │   ├── filemanager.coffee
    │   ├── notepad.coffee
    │   ├── pre.coffee
    │   └── terminal.coffee
├── official_plugins.json
├── package.json
├── plugins
    ├── .gitignore
    ├── ace
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   └── resources
    │   │   ├── css
    │   │       └── ace.less
    │   │   └── js
    │   │       ├── directives
    │   │           └── ace.es
    │   │       └── module.es
    ├── augeas
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   └── js
    │   │   │   ├── module.es
    │   │   │   └── services
    │   │   │       ├── aug.service.es
    │   │   │       └── augeas.service.es
    │   └── views.py
    ├── auth_users
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── users.service.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── check_certificates
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── index.controller.coffee
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   └── widget.html
    │   ├── views.py
    │   └── widget.py
    ├── core
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api
    │   │   ├── __init__.py
    │   │   ├── navbox.py
    │   │   ├── push.py
    │   │   ├── sidebar.py
    │   │   └── tasks.py
    │   ├── bower.json
    │   ├── content
    │   │   └── pages
    │   │   │   └── index.html
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── css
    │   │   │   ├── animations.less
    │   │   │   ├── app.less
    │   │   │   ├── bootstrap
    │   │   │   │   ├── bootstrap.less
    │   │   │   │   └── variables.less
    │   │   │   ├── colors.less
    │   │   │   ├── overrides.less
    │   │   │   └── responsive.less
    │   │   ├── extra-vendor
    │   │   │   └── socket.io.js
    │   │   ├── images
    │   │   │   └── icon.png
    │   │   ├── js
    │   │   │   ├── app.es
    │   │   │   ├── babel.js
    │   │   │   ├── core
    │   │   │   │   ├── controllers
    │   │   │   │   │   ├── error.controller.es
    │   │   │   │   │   ├── index.controller.es
    │   │   │   │   │   ├── login.controller.es
    │   │   │   │   │   ├── navbox.controller.es
    │   │   │   │   │   ├── pwreset.controller.es
    │   │   │   │   │   ├── root.controller.es
    │   │   │   │   │   ├── tasks.controller.es
    │   │   │   │   │   └── totp.controller.es
    │   │   │   │   ├── directives
    │   │   │   │   │   ├── autofocus.es
    │   │   │   │   │   ├── checkbox.es
    │   │   │   │   │   ├── datePickerFix.es
    │   │   │   │   │   ├── dialog.es
    │   │   │   │   │   ├── fitToParent.es
    │   │   │   │   │   ├── floatingToolbar.es
    │   │   │   │   │   ├── keyboardFocus.es
    │   │   │   │   │   ├── messageboxContainer.es
    │   │   │   │   │   ├── ngEnter.es
    │   │   │   │   │   ├── progressSpinner.es
    │   │   │   │   │   ├── rootAccess.es
    │   │   │   │   │   ├── sidebar.es
    │   │   │   │   │   └── smartProgress.es
    │   │   │   │   ├── filters.es
    │   │   │   │   ├── interceptors.es
    │   │   │   │   ├── module.es
    │   │   │   │   ├── routing.es
    │   │   │   │   └── services
    │   │   │   │   │   ├── config.service.es
    │   │   │   │   │   ├── core.service.es
    │   │   │   │   │   ├── customization.service.es
    │   │   │   │   │   ├── favicon.service.es
    │   │   │   │   │   ├── gettext.service.es
    │   │   │   │   │   ├── hotkeys.service.es
    │   │   │   │   │   ├── identity.service.es
    │   │   │   │   │   ├── messagebox.service.es
    │   │   │   │   │   ├── notify.service.es
    │   │   │   │   │   ├── pageTitle.service.es
    │   │   │   │   │   ├── push.service.es
    │   │   │   │   │   ├── socket.service.es
    │   │   │   │   │   └── tasks.service.es
    │   │   │   └── js_extensions.es
    │   │   └── partial
    │   │   │   ├── 404.html
    │   │   │   ├── index.html
    │   │   │   ├── login.html
    │   │   │   ├── reset_password.html
    │   │   │   ├── reset_password_send.html
    │   │   │   ├── serverErrorMessage.html
    │   │   │   ├── sidebarItem.html
    │   │   │   ├── sidebarTasks.html
    │   │   │   └── totp.html
    │   └── views
    │   │   ├── __init__.py
    │   │   ├── api.py
    │   │   ├── config.py
    │   │   ├── main.py
    │   │   ├── push.py
    │   │   ├── resource_server.py
    │   │   └── tasks.py
    ├── cron
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── dashboard
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── css
    │   │   │   └── styles.less
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── cpuWidget.controller.es
    │   │   │   │   ├── hostnameWidget.controller.es
    │   │   │   │   ├── index.controller.es
    │   │   │   │   ├── loadAverageWidget.controller.es
    │   │   │   │   ├── memoryWidget.controller.es
    │   │   │   │   └── uptimeWidget.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── dashboard.service.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   ├── widget.html
    │   │   │   └── widgets
    │   │   │       ├── cpu.html
    │   │   │       ├── hostname.html
    │   │   │       ├── loadavg.html
    │   │   │       ├── memory.html
    │   │   │       └── uptime.html
    │   ├── views.py
    │   └── widgets
    │   │   ├── __init__.py
    │   │   ├── cpu.py
    │   │   ├── hostname.py
    │   │   ├── loadavg.py
    │   │   ├── memory.py
    │   │   └── uptime.py
    ├── datetime
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── managers
    │   │   ├── __init__.py
    │   │   ├── centos_manager.py
    │   │   └── debian_manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── datetime.service.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── dns_api
    │   ├── .gitignore
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── manager.py
    │   ├── plugin.yml
    │   ├── providers
    │   │   ├── __init__.py
    │   │   └── gandi.py
    │   ├── record.py
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── docker
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── filemanager
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   └── resources
    │   │   ├── js
    │   │       ├── controllers
    │   │       │   ├── index.controller.es
    │   │       │   └── properties.controller.es
    │   │       ├── module.es
    │   │       └── routing.es
    │   │   └── partial
    │   │       ├── index.html
    │   │       └── properties.html
    ├── filesystem
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── directives
    │   │   │   │   ├── fileDialog.es
    │   │   │   │   ├── fileDialog.html
    │   │   │   │   └── pathSelector.es
    │   │   │   ├── module.es
    │   │   │   └── services
    │   │   │   │   └── filesystem.service.es
    │   │   └── partial
    │   │   │   ├── widget.config.html
    │   │   │   └── widget.html
    │   ├── tasks.py
    │   ├── views.py
    │   └── widget.py
    ├── fstab
    │   ├── .gitignore
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── iptables
    │   ├── .gitignore
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── network
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── aug.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── managers
    │   │   ├── __init__.py
    │   │   ├── centos_manager.py
    │   │   ├── debian_manager.py
    │   │   ├── gentoo_manager.py
    │   │   ├── ifconfig.py
    │   │   ├── ip.py
    │   │   └── ubuntu_manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── dns.controller.es
    │   │   │   │   ├── hosts.controller.es
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── network.service.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── notepad
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   └── resources
    │   │   ├── js
    │   │       ├── controllers
    │   │       │   └── index.controller.es
    │   │       ├── module.es
    │   │       └── routing.es
    │   │   └── partial
    │   │       └── index.html
    ├── packages
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── managers
    │   │   ├── __init__.py
    │   │   ├── apt_manager.py
    │   │   ├── pip_manager.py
    │   │   └── yum_manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── packages.service.es
    │   │   └── partial
    │   │   │   └── index.html
    │   ├── tasks.py
    │   └── views.py
    ├── passwd
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   └── js
    │   │   │   ├── module.es
    │   │   │   └── services
    │   │   │       └── passwd.service.es
    │   └── views.py
    ├── plugins
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   └── module.es
    │   │   └── partial
    │   │   │   └── index.html
    │   ├── tasks.py
    │   └── views.py
    ├── power
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── index.controller.es
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── power.service.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   └── widget.html
    │   ├── views.py
    │   └── widget.py
    ├── services
    │   ├── README.md
    │   ├── __init__.py
    │   ├── api.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── managers
    │   │   ├── __init__.py
    │   │   ├── systemd_manager.py
    │   │   └── sysv_manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── index.controller.es
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── services.service.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   ├── systemd_status.modal.html
    │   │   │   ├── widget.config.html
    │   │   │   └── widget.html
    │   ├── views.py
    │   └── widget.py
    ├── session_list
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── index.controller.coffee
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   └── widget.html
    │   ├── views.py
    │   └── widget.py
    ├── settings
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── views.py
    ├── softraid
    │   ├── .gitignore
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   ├── softraid.py
    │   └── views.py
    ├── supervisor
    │   ├── __init__.py
    │   ├── api.py
    │   ├── aug.py
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   └── index.controller.es
    │   │   │   ├── module.es
    │   │   │   └── routing.es
    │   │   └── partial
    │   │   │   └── index.html
    │   └── supervisor.aug
    ├── terminal
    │   ├── README.md
    │   ├── __init__.py
    │   ├── bower.json
    │   ├── locale
    │   │   ├── af
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── app.pot
    │   │   ├── ar
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── be
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bg
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bn
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── bs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ca
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── cs
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── da
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── de
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── el
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── en
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── eo
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── es-ES
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── et
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fa
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── fy-NL
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── he
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── hu
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── id
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── it
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ja
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ka
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ko
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lt
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── lv
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── my
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── nl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── no
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-BR
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── pt-PT
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ro
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── ru
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr-CS
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sv-SE
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── sw
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── th
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tlh-AA
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tr
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── tzl
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── uk
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── vi
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   ├── zh-CN
    │   │   │   └── LC_MESSAGES
    │   │   │   │   └── app.po
    │   │   └── zh-TW
    │   │   │   └── LC_MESSAGES
    │   │   │       └── app.po
    │   ├── main.py
    │   ├── manager.py
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │   │   ├── css
    │   │   │   └── terminal.less
    │   │   ├── js
    │   │   │   ├── controllers
    │   │   │   │   ├── index.controller.es
    │   │   │   │   ├── view.controller.es
    │   │   │   │   └── widget.controller.es
    │   │   │   ├── directives
    │   │   │   │   └── terminal.es
    │   │   │   ├── module.es
    │   │   │   ├── routing.es
    │   │   │   └── services
    │   │   │   │   └── terminals.service.es
    │   │   └── partial
    │   │   │   ├── index.html
    │   │   │   ├── view.html
    │   │   │   ├── widget.config.html
    │   │   │   └── widget.html
    │   ├── terminal.py
    │   ├── views.py
    │   └── widget.py
    └── traffic
    │   ├── README.md
    │   ├── __init__.py
    │   ├── locale
    │       ├── af
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── app.pot
    │       ├── ar
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── be
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── bg
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── bn
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── bs
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ca
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── cs
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── da
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── de
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── el
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── en
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── eo
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── es-ES
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── et
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── fa
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── fi
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── fr
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── fy-NL
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── he
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── hr
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── hu
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── id
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── it
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ja
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ka
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ko
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── lt
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── lv
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── my
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── nl
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── no
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── pl
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── pt-BR
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── pt-PT
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ro
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── ru
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sk
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sl
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sr-CS
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sr
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sv-SE
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── sw
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── th
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── tlh-AA
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── tr
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── tzl
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── uk
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── vi
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       ├── zh-CN
    │       │   └── LC_MESSAGES
    │       │   │   └── app.po
    │       └── zh-TW
    │       │   └── LC_MESSAGES
    │       │       └── app.po
    │   ├── plugin.yml
    │   ├── requirements.txt
    │   ├── resources
    │       ├── js
    │       │   ├── controllers
    │       │   │   └── widget.controller.es
    │       │   └── module.es
    │       └── partial
    │       │   ├── widget.config.html
    │       │   └── widget.html
    │   ├── views.py
    │   └── widget.py
├── pylama.ini
├── requirements-rtd.txt
├── scripts
    ├── ajenti.conf
    ├── build_deb.sh
    ├── ci-setup.sh
    ├── ci.sh
    ├── install-dev.sh
    ├── install-venv.sh
    └── install.sh
├── setup.cfg
├── tests-karma
    ├── .gitignore
    ├── karma.conf.coffee
    ├── package.json
    ├── test-extras.coffee
    ├── test-main.coffee
    └── tests
    │   ├── augeas.service.coffee
    │   └── core
    │       ├── core.service.coffee
    │       ├── filters
    │           ├── bytes.coffee
    │           ├── ordinal.coffee
    │           ├── page.coffee
    │           ├── rankMatch.coffee
    │           └── time.coffee
    │       ├── identity.service.coffee
    │       ├── interceptors.coffee
    │       ├── notify.service.coffee
    │       ├── pageTitle.service.coffee
    │       ├── push.service.coffee
    │       ├── socket.service.coffee
    │       └── tasks.service.coffee
└── tests-pytest
    ├── ajenti-test-instance.py
    └── tests
        ├── __init__.py
        └── test_base.py


/.deepsource.toml:
--------------------------------------------------------------------------------
 1 | version = 1
 2 | 
 3 | test_patterns = [
 4 |     "tests-karma/**",
 5 |     "tests-nose/**"
 6 | ]
 7 | 
 8 | exclude_patterns = []
 9 | 
10 | [[analyzers]]
11 | name = "python"
12 | enabled = true
13 | 
14 |   [analyzers.meta]
15 |   runtime_version = "3.x.x"
16 |   additional_builtins = ["_"]
17 | 


--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
 1 | ---
 2 | name: "tagged-release"
 3 | 
 4 | on:
 5 |   push:
 6 |     tags:
 7 |       - "v*"
 8 | 
 9 | jobs:
10 |   tagged-release:
11 |     name: "Tagged Release"
12 |     runs-on: "ubuntu-latest"
13 | 
14 |     steps:
15 |       - uses: "marvinpinto/action-automatic-releases@latest"
16 |         with:
17 |           repo_token: "${{ secrets.GITHUB_TOKEN }}"
18 |           prerelease: false
19 |           draft: true
20 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
 1 | /**/.DS_Store
 2 | /**/bower_components
 3 | /**/node_modules
 4 | /**/.idea
 5 | *.sublime-*
 6 | .~lock.*
 7 | *~
 8 | *.deb
 9 | *.pyc
10 | *.gz
11 | *.whl
12 | *.egg*
13 | *.asc
14 | .last-upload
15 | plugins/demo*
16 | /**/build
17 | *.mo
18 | .idea*
19 | .crowdin.key
20 | .crowdin.token
21 | .mypy_cache
22 | 


--------------------------------------------------------------------------------
/ajenti-core/.gitignore:
--------------------------------------------------------------------------------
1 | build/*
2 | 
3 | 


--------------------------------------------------------------------------------
/ajenti-core/MANIFEST.in:
--------------------------------------------------------------------------------
1 | recursive-include aj * *.*
2 | recursive-exclude aj *~ *.pyc
3 | include Makefile
4 | include requirements.txt
5 | 


--------------------------------------------------------------------------------
/ajenti-core/aj/api/__init__.py:
--------------------------------------------------------------------------------
 1 | from jadi import interface, component, service, Context, NoImplementationError
 2 | 
 3 | 
 4 | __all__ = [
 5 |     'interface',
 6 |     'component',
 7 |     'service',
 8 |     'Context',
 9 |     'NoImplementationError',
10 | ]
11 | 


--------------------------------------------------------------------------------
/ajenti-core/aj/gate/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/ajenti-core/aj/gate/__init__.py


--------------------------------------------------------------------------------
/ajenti-core/aj/security/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/ajenti-core/aj/security/__init__.py


--------------------------------------------------------------------------------
/ajenti-core/aj/static/images/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/ajenti-core/aj/static/images/Logo.png


--------------------------------------------------------------------------------
/ajenti-core/aj/static/images/error.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/ajenti-core/aj/static/images/error.jpeg


--------------------------------------------------------------------------------
/ajenti-core/aj/util/__init__.py:
--------------------------------------------------------------------------------
 1 | from aj.util.broadcast_queue import BroadcastQueue
 2 | from aj.util.public import public
 3 | from aj.util.strings import str_fsize
 4 | from aj.util.misc import make_report, platform_select
 5 | from aj.util.lazy import LazyModule
 6 | 
 7 | __all__ = [
 8 |     'BroadcastQueue',
 9 |     'public',
10 |     'str_fsize',
11 |     'make_report',
12 |     'platform_select',
13 |     'LazyModule',
14 | ]


--------------------------------------------------------------------------------
/ajenti-core/aj/util/broadcast_queue.py:
--------------------------------------------------------------------------------
 1 | import weakref
 2 | from gevent.queue import Queue
 3 | 
 4 | 
 5 | class BroadcastQueue():
 6 |     def __init__(self):
 7 |         self._queues = []
 8 | 
 9 |     def register(self):
10 |         q = Queue()
11 |         self._queues.append(weakref.ref(q))
12 |         return q
13 | 
14 |     def broadcast(self, val):
15 |         for q in list(self._queues):
16 |             if q():
17 |                 q().put(val)
18 |             else:
19 |                 self._queues.remove(q)
20 | 


--------------------------------------------------------------------------------
/ajenti-core/aj/util/public.py:
--------------------------------------------------------------------------------
 1 | import sys
 2 | 
 3 | 
 4 | def public(f):
 5 |     """"
 6 |     Use a decorator to avoid retyping function/class names.
 7 | 
 8 |     Based on an idea by Duncan Booth:
 9 |     http://groups.google.com/group/comp.lang.python/msg/11cbb03e09611b8a
10 | 
11 |     Improved via a suggestion by Dave Angel:
12 |     http://groups.google.com/group/comp.lang.python/msg/3d400fb22d8a42e1
13 | 
14 |     """
15 |     _all = sys.modules[f.__module__].__dict__.setdefault('__all__', [])
16 |     if f.__name__ not in _all:  # Prevent duplicates if run from an IDE.
17 |         _all.append(f.__name__)
18 |     return f
19 | 


--------------------------------------------------------------------------------
/ajenti-core/aj/util/strings.py:
--------------------------------------------------------------------------------
 1 | def str_fsize(sz):
 2 |     """
 3 |     Formats file size as string (i.e., 1.2 Mb)
 4 |     """
 5 |     if sz < 1024:
 6 |         return f'{sz:.1f} bytes'
 7 |     sz /= 1024.0
 8 |     if sz < 1024:
 9 |         return f'{sz:.1f} KB'
10 |     sz /= 1024.0
11 |     if sz < 1024:
12 |         return f'{sz:.1f} MB'
13 |     sz /= 1024.0
14 |     if sz < 1024:
15 |         return f'{sz:.1f} GB'
16 |     sz /= 1024.0
17 |     return f'{sz:.1f} TB'
18 | 
19 | 
20 | 


--------------------------------------------------------------------------------
/ajenti-core/requirements.txt:
--------------------------------------------------------------------------------
 1 | # core
 2 | arrow
 3 | bs4
 4 | cookies
 5 | cryptography
 6 | distro
 7 | greenlet>=2.0.2
 8 | gevent>=23.9.1
 9 | gevent-websocket
10 | gipc==1.8.0
11 | itsdangerous
12 | jadi>=1.0.3
13 | jinja2
14 | lxml>=2.2.4
15 | passlib
16 | pexpect
17 | psutil>=2.2.1
18 | pyOpenSSL
19 | pyotp
20 | python-daemon
21 | python-socketio==5.8.0
22 | python-engineio==4.4.1
23 | pyyaml
24 | qrcode
25 | reconfigure
26 | requests>=2
27 | setproctitle
28 | simplejson
29 | six>=1.9.0
30 | termcolor
31 | pip>=20
32 | setuptools>=41
33 | 


--------------------------------------------------------------------------------
/ajenti-core/setup.cfg:
--------------------------------------------------------------------------------
1 | [bdist_wheel]
2 | universal = 1
3 | 


--------------------------------------------------------------------------------
/ajenti-panel/aj:
--------------------------------------------------------------------------------
1 | ../ajenti-core/aj


--------------------------------------------------------------------------------
/ajenti-panel/packaging/files/.placeholder:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/ajenti-panel/packaging/files/.placeholder


--------------------------------------------------------------------------------
/ajenti-panel/packaging/files/ajenti-bsd:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | 
 3 | # PROVIDE: ajenti
 4 | # REQUIRE: netif
 5 | # KEYWORD: nojail
 6 | 
 7 | . /etc/rc.subr
 8 | 
 9 | name="ajenti"
10 | command="/usr/local/bin/ajenti-panel"
11 | start_cmd="/usr/local/bin/ajenti-panel -d"
12 | procname="/usr/local/bin/ajenti-panel"
13 | command_interpreter=`readlink -f /usr/local/bin/python`
14 | 
15 | load_rc_config $name
16 | run_rc_command "$1"


--------------------------------------------------------------------------------
/ajenti-panel/packaging/files/ajenti.service:
--------------------------------------------------------------------------------
 1 | [Unit]
 2 | Description=Ajenti - an easy server administration frontend
 3 | 
 4 | [Service]
 5 | Type=forking
 6 | PIDFile=/var/run/ajenti.pid
 7 | ExecStart=/usr/bin/ajenti-panel -d
 8 | 
 9 | [Install]
10 | WantedBy=multi-user.target
11 | 


--------------------------------------------------------------------------------
/ajenti-panel/setup.cfg:
--------------------------------------------------------------------------------
1 | [bdist_wheel]
2 | universal = 1
3 | 


--------------------------------------------------------------------------------
/debian/systemd/ajenti2.service:
--------------------------------------------------------------------------------
 1 | [Unit]
 2 | Description=Ajenti panel
 3 | After=network.target
 4 | 
 5 | [Service]
 6 | Type=forking
 7 | PIDFile=/var/run/ajenti.pid
 8 | ExecStart=/usr/bin/python3 /usr/local/bin/ajenti-panel -d
 9 | ExecStartPost=/bin/sleep 5
10 | 
11 | [Install]
12 | WantedBy=multi-user.target
13 | 


--------------------------------------------------------------------------------
/docs/CHANGELOG:
--------------------------------------------------------------------------------
1 | ajenti (__VERSION__) UNRELEASED; urgency=low
2 | 
3 |   * Initial pre-release.
4 | 
5 |  -- Eugeny Pankov <e@ajenti.org>  __DATE__
6 | 


--------------------------------------------------------------------------------
/docs/img/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/Logo.png


--------------------------------------------------------------------------------
/docs/img/rd-check_cert-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-check_cert-add.png


--------------------------------------------------------------------------------
/docs/img/rd-check_cert-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-check_cert-list.png


--------------------------------------------------------------------------------
/docs/img/rd-cron-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-cron-add.png


--------------------------------------------------------------------------------
/docs/img/rd-cron-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-cron-list.png


--------------------------------------------------------------------------------
/docs/img/rd-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-dashboard.png


--------------------------------------------------------------------------------
/docs/img/rd-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-date.png


--------------------------------------------------------------------------------
/docs/img/rd-docker-containers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-docker-containers.png


--------------------------------------------------------------------------------
/docs/img/rd-docker-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-docker-images.png


--------------------------------------------------------------------------------
/docs/img/rd-filemanager-permissions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-filemanager-permissions.png


--------------------------------------------------------------------------------
/docs/img/rd-filemanager-properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-filemanager-properties.png


--------------------------------------------------------------------------------
/docs/img/rd-filemanager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-filemanager.png


--------------------------------------------------------------------------------
/docs/img/rd-fstab-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-fstab-file.png


--------------------------------------------------------------------------------
/docs/img/rd-fstab-mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-fstab-mount.png


--------------------------------------------------------------------------------
/docs/img/rd-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-login.png


--------------------------------------------------------------------------------
/docs/img/rd-network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-network.png


--------------------------------------------------------------------------------
/docs/img/rd-notepad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-notepad.png


--------------------------------------------------------------------------------
/docs/img/rd-packages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-packages.png


--------------------------------------------------------------------------------
/docs/img/rd-plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-plugins.png


--------------------------------------------------------------------------------
/docs/img/rd-power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-power.png


--------------------------------------------------------------------------------
/docs/img/rd-pwreset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-pwreset.png


--------------------------------------------------------------------------------
/docs/img/rd-sessions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-sessions.png


--------------------------------------------------------------------------------
/docs/img/rd-settings-general.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-settings-general.png


--------------------------------------------------------------------------------
/docs/img/rd-settings-security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-settings-security.png


--------------------------------------------------------------------------------
/docs/img/rd-settings-smtp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-settings-smtp.png


--------------------------------------------------------------------------------
/docs/img/rd-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-settings.png


--------------------------------------------------------------------------------
/docs/img/rd-softraid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-softraid.png


--------------------------------------------------------------------------------
/docs/img/rd-systemd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-systemd.png


--------------------------------------------------------------------------------
/docs/img/rd-terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-terminal.png


--------------------------------------------------------------------------------
/docs/img/rd-users-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-users-list.png


--------------------------------------------------------------------------------
/docs/img/rd-users-properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/docs/img/rd-users-properties.png


--------------------------------------------------------------------------------
/docs/source/_static/style.css:
--------------------------------------------------------------------------------
1 | body {
2 |     font-family: 'PT Sans', Lato, proxima-nova, 'Helvetica Neue', Arial, sans-serif;
3 | }
4 | 
5 | h1,h2,h3,h4,h5,h6 {
6 |     font-family: 'PT Sans', Lato, proxima-nova, 'Helvetica Neue', Arial, sans-serif;
7 | } 


--------------------------------------------------------------------------------
/docs/source/_templates/layout.html:
--------------------------------------------------------------------------------
1 | {% extends "!layout.html" %}
2 | {% set css_files = css_files + ['https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700italic,700', '_static/style.css'] %}


--------------------------------------------------------------------------------
/docs/source/plugins/cron.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_cron:
 2 | 
 3 | Plugin cron
 4 | ***********
 5 | 
 6 | This plugin allows to handle all entries in a personal ``cron`` file.
 7 | 
 8 | .. image:: ../../img/rd-cron-list.png
 9 | 
10 | This is quite equivalent as running ``crontab -l -u USER`` to manage your own cronjobs.
11 | 
12 | With this plugin, you can:
13 | 
14 |  * add jobs,
15 |  * remove jobs,
16 |  * edit jobs,
17 |  * edit special entries ( @yearly, etc ... ),
18 |  * set environment variables,
19 |  * add comments.
20 | 
21 | .. image:: ../../img/rd-cron-add.png
22 | 


--------------------------------------------------------------------------------
/docs/source/plugins/datetime.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_datetime:
 2 | 
 3 | Plugin datetime
 4 | ***************
 5 | 
 6 | This plugin displays the current time zone used, and time and date set on the server.
 7 | 
 8 | .. image:: ../../img/rd-date.png
 9 | 
10 | It's possible to:
11 | 
12 |  * change the time zone used,
13 |  * set the time on the server,
14 |  * synchronize time using ``NTP`` (package ``ntpdate`` is for this necessary).


--------------------------------------------------------------------------------
/docs/source/plugins/docker.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_docker:
 2 | 
 3 | Plugin docker
 4 | *************
 5 | 
 6 | This plugin allows to show all running containers and images from a locally docker instance.
 7 | 
 8 | .. image:: ../../img/rd-docker-containers.png
 9 | 
10 | The default tab shows all containers, with their names and id, and you can:
11 | 
12 |  * start/stop a container,
13 |  * remove a container,
14 |  * see memory usage, cpu usage and network I/O
15 | 
16 | On the second tab, you will see the stored images with their sizes.
17 | 
18 | You can easily choose which one you want to delete.
19 | 
20 | .. image:: ../../img/rd-docker-images.png
21 | 


--------------------------------------------------------------------------------
/docs/source/plugins/notepad.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_notepad:
 2 | 
 3 | Plugin notepad
 4 | **************
 5 | 
 6 | Based on the `ACE editor <https://ace.c9.io>`_, you can:
 7 | 
 8 |  * edit all plain text files,
 9 |  * create a new file,
10 |  * save an existing file in another location,
11 |  * manage all of these files with tabs.
12 | 
13 | Hotkey:
14 | 
15 |  * Ctrl + O : open file
16 |  * Ctrl + N : new file
17 |  * Ctrl + S : save file
18 | 
19 | .. image:: ../../img/rd-notepad.png


--------------------------------------------------------------------------------
/docs/source/plugins/plugins.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_plugins:
 2 | 
 3 | Plugin plugins
 4 | **************
 5 | 
 6 | ``Ajenti`` is pretty flexible and allow anyone to write its own plugin (backend ``Python`` and frontend ``AngularJS``).
 7 | 
 8 | In order to manage all plugins and their versions, the plugin ``plugins`` lists all available plugins, shows if they are installed, or if an update if published.
 9 | 
10 | The main plugin ``core`` can not be uninstalled, because ``Ajenti`` can not run without it, but you can check whenever a new version is available.
11 | 
12 | Updating or removing a plugin is this way pretty easy.
13 | 
14 | .. image:: ../../img/rd-plugins.png
15 | 


--------------------------------------------------------------------------------
/docs/source/plugins/power.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_power:
 2 | 
 3 | Plugin power
 4 | ************
 5 | 
 6 | Basically handle all around power management on your server.
 7 | 
 8 | Uptime appears, and you can also reboot or shutdown the server if needed.
 9 | 
10 | .. image:: ../../img/rd-power.png
11 | 
12 | 


--------------------------------------------------------------------------------
/docs/source/plugins/services.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_services:
 2 | 
 3 | Plugin services
 4 | ***************
 5 | 
 6 | The plugin ``services`` shows the status of services in ``systemd`` or in ``system V init``.
 7 | 
 8 | .. image:: ../../img/rd-systemd.png
 9 | 
10 | For the ``systemd`` unit services, you can:
11 | 
12 |  * start/stop/restart the service,
13 |  * enable/disable the service, if not static.
14 | 
15 | For the ``system V init`` services, you can:
16 | 
17 |  * start/stop/restart the service,
18 |  * kill a running service.
19 | 
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/docs/source/plugins/session_list.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_session_list:
 2 | 
 3 | Plugin session_list
 4 | *******************
 5 | 
 6 | this plugin displays the logged users, their ip and the timeout.
 7 | 
 8 | .. image:: ../../img/rd-sessions.png
 9 | 
10 | 


--------------------------------------------------------------------------------
/docs/source/plugins/terminal.rst:
--------------------------------------------------------------------------------
 1 | .. _plugin_terminal:
 2 | 
 3 | Plugin terminal
 4 | ***************
 5 | 
 6 | It would be really cool to have an terminal access on the server. That's exactly what this plugin does!
 7 | 
 8 | You have the possibility to launch a command (and naturally see the result) or to open a whole terminal on the server. You will get the same environment as your user on the system.
 9 | 
10 | Type exit or Ctrl + D to come back to the terminal list.
11 | 
12 | Hotkeys
13 | =======
14 | 
15 |  * Ctrl + C : copy
16 |  * Ctrl + V : paste
17 |  * Ctrl + D : exit
18 | 
19 | .. image:: ../../img/rd-terminal.png
20 | 
21 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.api.endpoint.rst:
--------------------------------------------------------------------------------
1 | API: aj.api.endpoint
2 | ********************
3 | 
4 | .. automodule:: aj.api.endpoint
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.api.http.rst:
--------------------------------------------------------------------------------
1 | API: aj.api.http
2 | ****************
3 | 
4 | .. automodule:: aj.api.http
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.config.rst:
--------------------------------------------------------------------------------
1 | API: aj.config
2 | **************
3 | 
4 | .. automodule:: aj.config
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.core.rst:
--------------------------------------------------------------------------------
1 | API: aj.core
2 | ************
3 | 
4 | .. automodule:: aj.core
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.entry.rst:
--------------------------------------------------------------------------------
1 | API: aj.entry
2 | *************
3 | 
4 | .. automodule:: aj.entry
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.http.rst:
--------------------------------------------------------------------------------
1 | API: aj.http
2 | ************
3 | 
4 | .. automodule:: aj.http
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.augeas.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.augeas.api
2 | *****************************
3 | 
4 | .. automodule:: aj.plugins.augeas.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.auth-users.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.auth-users.api
2 | *********************************
3 | 
4 | .. automodule:: aj.plugins.auth-users.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.check_certificates.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.check_certificates.api
2 | ******************************************
3 | 
4 | .. automodule:: aj.plugins.check_certificates.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.core.api.push.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.core.api.push
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.core.api.push
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.core.api.sidebar.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.core.api.sidebar
2 | ***********************************
3 | 
4 | .. automodule:: aj.plugins.core.api.sidebar
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.core.api.tasks.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.core.api.tasks
2 | *********************************
3 | 
4 | .. automodule:: aj.plugins.core.api.tasks
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.dashboard.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.dashboard.api
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.dashboard.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.datetime.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.datetime.api
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.datetime.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.network.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.network.api
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.network.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.packages.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.packages.api
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.packages.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.power.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.power.api
2 | ********************************
3 | 
4 | .. automodule:: aj.plugins.power.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.rst:
--------------------------------------------------------------------------------
1 | API: aj.plugins
2 | ***************
3 | 
4 | .. automodule:: aj.plugins
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.plugins.services.api.rst:
--------------------------------------------------------------------------------
1 | Plugin: aj.plugins.services.api
2 | *******************************
3 | 
4 | .. automodule:: aj.plugins.services.api
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/aj.rst:
--------------------------------------------------------------------------------
1 | API: aj
2 | *******
3 | 
4 | .. automodule:: aj
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/ref/jadi.rst:
--------------------------------------------------------------------------------
1 | API: jadi
2 | *********
3 | 
4 | .. automodule:: jadi
5 |    :members:
6 |    :undoc-members:
7 | 


--------------------------------------------------------------------------------
/docs/source/refjs/ace.rst:
--------------------------------------------------------------------------------
 1 | Angular: ajenti.ace
 2 | *******************
 3 | 
 4 | ACE code editor integration
 5 | 
 6 | Directives
 7 | ==========
 8 | 
 9 | .. js:function:: ace-editor
10 | 
11 |     :param binding ngModel:
12 |     :param object aceOptions: (optional) options for ace.setOptions()
13 | 
14 | 


--------------------------------------------------------------------------------
/docs/source/refjs/passwd.rst:
--------------------------------------------------------------------------------
 1 | Angular: ajenti.passwd
 2 | **********************
 3 | 
 4 | Services
 5 | ========
 6 | 
 7 | .. js:class:: passwd
 8 | 
 9 |     .. js:function:: list()
10 | 
11 |         :returns: promise → array of the users registered in the system
12 | 


--------------------------------------------------------------------------------
/e2e/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | 
3 | 


--------------------------------------------------------------------------------
/e2e/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "devDependencies": {
3 |     "coffee-script": "~1.8.0",
4 |     "jasmine-spec-reporter": "^1.1.1",
5 |     "protractor": "4.0.10"
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/e2e/run:
--------------------------------------------------------------------------------
 1 | #!/bin/bash
 2 | #webdriver-manager start &
 3 | #PID=$!
 4 | 
 5 | #sleep 3
 6 | 
 7 | #function finish {
 8 | #    kill -TERM -$PID
 9 | #    sleep 1
10 | #}
11 | 
12 | #trap finish TERM INT EXIT
13 | 
14 | node_modules/protractor/bin/protractor --verbose --stackTrace --baseUrl http://localhost:8000 conf.coffee
15 | 
16 | 


--------------------------------------------------------------------------------
/e2e/specs/pre.coffee:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/e2e/specs/pre.coffee


--------------------------------------------------------------------------------
/official_plugins.json:
--------------------------------------------------------------------------------
1 | {"plugins":["ace","augeas","auth_users","check_certificates","core","cron","dashboard","datetime","docker","filemanager","filesystem","fstab","network","notepad","packages","passwd","plugins","power","services","session_list","settings","softraid","supervisor","terminal","traffic"]}


--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "coffeelintConfig": {
 3 |     "indentation": {
 4 |       "level": "error",
 5 |       "value": 4
 6 |     },
 7 |     "max_line_length": {
 8 |       "level": "error",
 9 |       "value": 999
10 |     }
11 |   },
12 |   "devDependencies": {
13 |     "babel-cli": "^6.16.0",
14 |     "babel-plugin-external-helpers": "^6.22.0",
15 |     "babel-preset-es2015": "^6.16.0"
16 |   },
17 |   "dependencies": {}
18 | }
19 | 


--------------------------------------------------------------------------------
/plugins/.gitignore:
--------------------------------------------------------------------------------
 1 | *.pyc
 2 | *.sublime-*
 3 | .~lock.*
 4 | .bowerrc
 5 | resources/build
 6 | resources/vendor
 7 | */resources/build
 8 | */resources/vendor
 9 | */locale/*/LC_MESSAGES/app.js
10 | 


--------------------------------------------------------------------------------
/plugins/ace/README.md:
--------------------------------------------------------------------------------
1 | # Ace plugin
2 | 
3 | Register a angular directive to use the ace editor on the frontend.
4 | This plugin has no Python method.
5 | 


--------------------------------------------------------------------------------
/plugins/ace/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/ace/__init__.py


--------------------------------------------------------------------------------
/plugins/ace/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |     "angular-ui-ace": "0.2.3"
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/af/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: af\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Afrikaans\n"
13 | "Language: af_ZA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/app.pot:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Content-Type: text/plain; charset=UTF-8\n"
4 | "Content-Transfer-Encoding: 8bit\n"
5 | "Project-Id-Version: \n"
6 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ar/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ar\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Arabic\n"
13 | "Language: ar_SA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/be/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n%100>=11 && n%100<=14 ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: be\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Belarusian\n"
13 | "Language: be_BY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/bg/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bg\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Bulgarian\n"
13 | "Language: bg_BG\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/bn/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bn\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Bengali\n"
13 | "Language: bn_BD\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/bs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bs\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Bosnian\n"
13 | "Language: bs_BA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ca/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ca\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Catalan\n"
13 | "Language: ca_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/cs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: cs\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Czech\n"
13 | "Language: cs_CZ\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/da/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: da\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Danish\n"
13 | "Language: da_DK\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/de/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: de\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: German\n"
13 | "Language: de_DE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/el/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: el\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Greek\n"
13 | "Language: el_GR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/en/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "Content-Type: text/plain; charset=UTF-8\n"
5 | "Content-Transfer-Encoding: 8bit\n"
6 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/eo/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: eo\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Esperanto\n"
13 | "Language: eo_UY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/es-ES/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: es-ES\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Spanish\n"
13 | "Language: es_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/et/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: et\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Estonian\n"
13 | "Language: et_EE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/fa/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fa\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Persian\n"
13 | "Language: fa_IR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/fi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fi\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Finnish\n"
13 | "Language: fi_FI\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/fr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fr\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: French\n"
13 | "Language: fr_FR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/fy-NL/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fy-NL\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Frisian\n"
13 | "Language: fy_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/he/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: he\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Hebrew\n"
13 | "Language: he_IL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/hr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hr\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Croatian\n"
13 | "Language: hr_HR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/hu/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hu\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Hungarian\n"
13 | "Language: hu_HU\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/id/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: id\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Indonesian\n"
13 | "Language: id_ID\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/it/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: it\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Italian\n"
13 | "Language: it_IT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ja/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ja\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Japanese\n"
13 | "Language: ja_JP\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ka/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ka\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Georgian\n"
13 | "Language: ka_GE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ko/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ko\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Korean\n"
13 | "Language: ko_KR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/lt/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lt\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Lithuanian\n"
13 | "Language: lt_LT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/lv/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==0 ? 0 : n%10==1 && n%100!=11 ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lv\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Latvian\n"
13 | "Language: lv_LV\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/my/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: my\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Burmese\n"
13 | "Language: my_MM\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/nl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: nl\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Dutch\n"
13 | "Language: nl_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/no/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: no\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Norwegian\n"
13 | "Language: no_NO\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/pl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pl\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Polish\n"
13 | "Language: pl_PL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/pt-BR/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-BR\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Portuguese, Brazilian\n"
13 | "Language: pt_BR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/pt-PT/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-PT\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Portuguese\n"
13 | "Language: pt_PT\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ro/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ro\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Romanian\n"
13 | "Language: ro_RO\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/ru/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ru\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Russian\n"
13 | "Language: ru_RU\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sk/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sk\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Slovak\n"
13 | "Language: sk_SK\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sl\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Slovenian\n"
13 | "Language: sl_SI\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sr-CS/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr-CS\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Serbian (Latin)\n"
13 | "Language: sr_CS\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Serbian (Cyrillic)\n"
13 | "Language: sr_SP\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sv-SE/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sv-SE\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Swedish\n"
13 | "Language: sv_SE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/sw/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sw\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Swahili\n"
13 | "Language: sw_KE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/th/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: th\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Thai\n"
13 | "Language: th_TH\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/tlh-AA/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tlh-AA\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Klingon\n"
13 | "Language: tlh_AA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/tr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tr\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Turkish\n"
13 | "Language: tr_TR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/tzl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tzl\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Talossan\n"
13 | "Language: tzl_TZL\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/uk/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: uk\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Ukrainian\n"
13 | "Language: uk_UA\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/vi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: vi\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Vietnamese\n"
13 | "Language: vi_VN\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/zh-CN/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-CN\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Chinese Simplified\n"
13 | "Language: zh_CN\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/locale/zh-TW/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-TW\n"
10 | "X-Crowdin-File: /2.0/ace.po\n"
11 | "X-Crowdin-File-ID: 23\n"
12 | "Language-Team: Chinese Traditional\n"
13 | "Language: zh_TW\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/ace/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/ace/resources/css/ace.less:
--------------------------------------------------------------------------------
 1 | ace-editor {
 2 |     border-top: 10px solid #002B36;
 3 |     border-bottom: 10px solid #002B36;
 4 | 
 5 |     &.full-screen > div {
 6 |         min-height: 100vh;
 7 |     }
 8 | }
 9 | 
10 | .ace_gutter {
11 |     padding-right: 10px;
12 | }
13 | 
14 | 


--------------------------------------------------------------------------------
/plugins/ace/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.ace', [
2 |     'core',
3 |     'ui.ace',
4 | ]);
5 | 


--------------------------------------------------------------------------------
/plugins/augeas/README.md:
--------------------------------------------------------------------------------
1 | # Augeas plugin
2 | 
3 | Contains wrapper classes to facilitate the use of augeas in other plugins.
4 | 


--------------------------------------------------------------------------------
/plugins/augeas/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .api import *
3 | from .views import *
4 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/af/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: af\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Afrikaans\n"
13 | "Language: af_ZA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/app.pot:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Content-Type: text/plain; charset=UTF-8\n"
4 | "Content-Transfer-Encoding: 8bit\n"
5 | "Project-Id-Version: \n"
6 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ar/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ar\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Arabic\n"
13 | "Language: ar_SA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/be/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n%100>=11 && n%100<=14 ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: be\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Belarusian\n"
13 | "Language: be_BY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/bg/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bg\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Bulgarian\n"
13 | "Language: bg_BG\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/bn/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bn\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Bengali\n"
13 | "Language: bn_BD\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/bs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bs\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Bosnian\n"
13 | "Language: bs_BA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ca/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ca\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Catalan\n"
13 | "Language: ca_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/cs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: cs\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Czech\n"
13 | "Language: cs_CZ\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/da/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: da\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Danish\n"
13 | "Language: da_DK\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/de/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: de\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: German\n"
13 | "Language: de_DE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/el/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: el\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Greek\n"
13 | "Language: el_GR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/en/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "Content-Type: text/plain; charset=UTF-8\n"
5 | "Content-Transfer-Encoding: 8bit\n"
6 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/eo/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: eo\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Esperanto\n"
13 | "Language: eo_UY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/es-ES/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: es-ES\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Spanish\n"
13 | "Language: es_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/et/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: et\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Estonian\n"
13 | "Language: et_EE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/fa/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fa\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Persian\n"
13 | "Language: fa_IR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/fi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fi\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Finnish\n"
13 | "Language: fi_FI\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/fr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fr\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: French\n"
13 | "Language: fr_FR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/fy-NL/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fy-NL\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Frisian\n"
13 | "Language: fy_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/he/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: he\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Hebrew\n"
13 | "Language: he_IL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/hr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hr\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Croatian\n"
13 | "Language: hr_HR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/hu/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hu\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Hungarian\n"
13 | "Language: hu_HU\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/id/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: id\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Indonesian\n"
13 | "Language: id_ID\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/it/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: it\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Italian\n"
13 | "Language: it_IT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ja/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ja\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Japanese\n"
13 | "Language: ja_JP\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ka/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ka\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Georgian\n"
13 | "Language: ka_GE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ko/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ko\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Korean\n"
13 | "Language: ko_KR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/lt/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lt\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Lithuanian\n"
13 | "Language: lt_LT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/lv/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==0 ? 0 : n%10==1 && n%100!=11 ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lv\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Latvian\n"
13 | "Language: lv_LV\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/my/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: my\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Burmese\n"
13 | "Language: my_MM\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/nl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: nl\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Dutch\n"
13 | "Language: nl_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/no/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: no\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Norwegian\n"
13 | "Language: no_NO\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/pl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pl\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Polish\n"
13 | "Language: pl_PL\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/pt-BR/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-BR\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Portuguese, Brazilian\n"
13 | "Language: pt_BR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/pt-PT/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-PT\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Portuguese\n"
13 | "Language: pt_PT\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/ro/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ro\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Romanian\n"
13 | "Language: ro_RO\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sk/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sk\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Slovak\n"
13 | "Language: sk_SK\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sl\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Slovenian\n"
13 | "Language: sl_SI\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sr-CS/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr-CS\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Serbian (Latin)\n"
13 | "Language: sr_CS\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Serbian (Cyrillic)\n"
13 | "Language: sr_SP\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sv-SE/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sv-SE\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Swedish\n"
13 | "Language: sv_SE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/sw/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sw\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Swahili\n"
13 | "Language: sw_KE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/th/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: th\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Thai\n"
13 | "Language: th_TH\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/tlh-AA/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tlh-AA\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Klingon\n"
13 | "Language: tlh_AA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/tr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tr\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Turkish\n"
13 | "Language: tr_TR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/tzl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tzl\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Talossan\n"
13 | "Language: tzl_TZL\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/vi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: vi\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Vietnamese\n"
13 | "Language: vi_VN\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/zh-CN/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-CN\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Chinese Simplified\n"
13 | "Language: zh_CN\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/locale/zh-TW/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-TW\n"
10 | "X-Crowdin-File: /2.0/augeas.po\n"
11 | "X-Crowdin-File-ID: 24\n"
12 | "Language-Team: Chinese Traditional\n"
13 | "Language: zh_TW\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/augeas/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: augeas
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | version: '0.20'
 6 | title: 'Augeas API'
 7 | icon: cog
 8 | dependencies:
 9 |     - !PluginDependency { plugin_name: core }
10 | resources:
11 |     - resources/js/module.es
12 |     - resources/js/services/augeas.service.es
13 |     - resources/js/services/aug.service.es
14 |     - ng:ajenti.augeas
15 | 


--------------------------------------------------------------------------------
/plugins/augeas/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | python-augeas
4 | 


--------------------------------------------------------------------------------
/plugins/augeas/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.augeas', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/augeas/resources/js/services/augeas.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.augeas').service('augeas', function($http, $q, AugeasConfig) {
 2 |     this.get = (endpoint) => {
 3 |         return $http.get(`/api/augeas/endpoint/${endpoint}`).then(response => AugeasConfig.get(response.data))
 4 |     };
 5 | 
 6 |     this.set = (endpoint, config) => {
 7 |         return $http.post(`/api/augeas/endpoint/${endpoint}`, config.serialize()).then(response => response.data)
 8 |     };
 9 | 
10 |     return this;
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/auth_users/README.md:
--------------------------------------------------------------------------------
1 | # Auth user plugin
2 | 
3 | Authentication mechanism based on ajenti config file, and permissions management.
4 | 


--------------------------------------------------------------------------------
/plugins/auth_users/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .api import *
3 | from .main import *
4 | from .views import *
5 | 


--------------------------------------------------------------------------------
/plugins/auth_users/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         self.context = context
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:general',
15 |                 'id': 'auth_users',
16 |                 'name': _('Users'),
17 |                 'icon': 'users',
18 |                 'url': '/view/auth-users',
19 |                 'children': [],
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/auth_users/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: auth_users
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/users.html
 6 | version: '0.33'
 7 | title: 'Custom users authentication'
 8 | icon: users
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 | resources:
12 |     - resources/js/module.es
13 |     - resources/js/routing.es
14 |     - resources/js/controllers/index.controller.es
15 |     - resources/js/services/users.service.es
16 |     - resources/partial/index.html
17 |     - ng:ajenti.auth.users
18 | 


--------------------------------------------------------------------------------
/plugins/auth_users/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.settings
4 | scrypt
5 | 


--------------------------------------------------------------------------------
/plugins/auth_users/resources/js/module.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.auth.users', [
 2 |     'core',
 3 | ]);
 4 | 
 5 | angular.module('ajenti.auth.users').run((customization) => {
 6 |     customization.plugins.auth_users = {
 7 |         forceUID: null
 8 |     };
 9 | });
10 | 


--------------------------------------------------------------------------------
/plugins/auth_users/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider => {
2 |     $routeProvider.when('/view/auth-users', {
3 |         templateUrl: '/auth_users:resources/partial/index.html',
4 |         controller: 'AuthUsersIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/auth_users/resources/js/services/users.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.auth.users').service('users', function($http, $q) {
 2 |     this.load = () => $http.get("/api/auth-users/config").then(response => this.data = response.data);
 3 | 
 4 |     this.save = () =>
 5 |         $http.post("/api/auth-users/config", this.data)
 6 | 
 7 |     this.getPermissions = (config) =>
 8 |         $http.post("/api/auth-users/permissions", config).then(response => response.data);
 9 | 
10 |     this.data = {};
11 | 
12 |     return this;
13 | });
14 | 


--------------------------------------------------------------------------------
/plugins/check_certificates/README.md:
--------------------------------------------------------------------------------
1 | # Check certificates plugin
2 | 
3 | Test if some certificates are still valid. Usefull when you have to monitor a lot of certificates renew.
4 | 


--------------------------------------------------------------------------------
/plugins/check_certificates/__init__.py:
--------------------------------------------------------------------------------
1 | from .main import ItemProvider
2 | from .views import Handler
3 | 
4 | def init(plugin_manager):
5 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
6 |         from .widget import CertWidget


--------------------------------------------------------------------------------
/plugins/check_certificates/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/check_certificates/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.check_certificates', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/check_certificates/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.check_certificates').config($routeProvider => {
2 |     $routeProvider.when('/view/check_cert/certificates', {
3 |         templateUrl: '/check_certificates:resources/partial/index.html',
4 |         controller: 'CertIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/core/README.md:
--------------------------------------------------------------------------------
 1 | # Core plugin
 2 | 
 3 | This plugin defines all necessary core elements to allow Ajenti to run properly:
 4 | 
 5 | * Default template
 6 | * Angular services identity, config, gettext, ...
 7 | * Angular directives messagebox, sidebar, dialog, smartprogress, ...
 8 | * Angular controllers login, root, navbox, ...
 9 | * Default routing and authentication methods
10 | * Load Ajenti config file
11 | * Build resources and template
12 | 


--------------------------------------------------------------------------------
/plugins/core/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | from .views.api import *
4 | from .views.config import *
5 | from .views.main import *
6 | from .views.resource_server import *
7 | from .views.push import *
8 | from .views.tasks import *
9 | 


--------------------------------------------------------------------------------
/plugins/core/api/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/core/api/__init__.py


--------------------------------------------------------------------------------
/plugins/core/api/push.py:
--------------------------------------------------------------------------------
 1 | from jadi import service
 2 | from aj.util import BroadcastQueue
 3 | 
 4 | 
 5 | @service
 6 | class Push():
 7 |     """
 8 |     A service providing push messages to the client.
 9 |     """
10 |     def __init__(self, context):
11 |         self.q = BroadcastQueue()
12 | 
13 |     def register(self):
14 |         return self.q.register()
15 | 
16 |     def push(self, plugin, msg):
17 |         """
18 |         Sends a push message to the client.
19 | 
20 |         :param plugin: routing ID
21 |         :param msg: message
22 |         """
23 |         self.q.broadcast((plugin, msg))
24 | 


--------------------------------------------------------------------------------
/plugins/core/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | setproctitle
3 | 


--------------------------------------------------------------------------------
/plugins/core/resources/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/core/resources/images/icon.png


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/controllers/error.controller.es:
--------------------------------------------------------------------------------
1 | angular.module('core').controller('CoreError404', function($scope, $location) {
2 |     $scope.url = $location.$absUrl;
3 | });
4 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/controllers/index.controller.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').controller('CoreIndexController', function($scope, $location, customization, identity, urlPrefix) {
 2 |     $location.path(customization.plugins.core.startupURL || '/view/dashboard');
 3 | 
 4 |     identity.promise.then(() => {
 5 |         if (!identity.user) {
 6 |             location.assign(`${urlPrefix}/view/login/normal`);
 7 |         }
 8 |     });
 9 | });
10 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/controllers/tasks.controller.es:
--------------------------------------------------------------------------------
1 | angular.module('core').controller('CoreTasksController', ($scope, socket, tasks, identity) => {
2 |     $scope.tasks = tasks
3 | });
4 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/autofocus.es:
--------------------------------------------------------------------------------
1 | angular.module('core').directive('autofocus', ($timeout) => {
2 |     return {
3 |         restrict: 'A',
4 |         link(scope, element) {
5 |             $timeout(() => element[0].focus());
6 |         }
7 |     }
8 | });
9 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/datePickerFix.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').directive('datepickerPopup', () =>
 2 |     ({
 3 |         restrict: 'EAC',
 4 |         require: 'ngModel',
 5 |         link(scope, element, attr, controller) {
 6 |             controller.$formatters.shift();
 7 |         }
 8 |     })
 9 | );
10 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/fitToParent.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').directive('fitToParent', () =>
 2 |     ($scope, element, attrs) => {
 3 |         let parent = element.parent();
 4 | 
 5 |         $(window).resize(() => {
 6 |             if (angular.isDefined(attrs.fitWidth)) {
 7 |                 element.width(1);
 8 |                 element.width(parent.width());
 9 |             }
10 |             if (angular.isDefined(attrs.fitHeight)) {
11 |                 element.height(1);
12 |                 element.height(parent.height());
13 |             }
14 |         });
15 |     }
16 | );
17 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/keyboardFocus.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').directive('keyboardFocus', () =>
 2 |     ($scope, element, attrs) =>
 3 |         element.bind('keydown', (event) => {
 4 |             if (event.keyCode === 40) {
 5 |                 element.find('*:focus').first().next().focus();
 6 |                 event.preventDefault();
 7 |             }
 8 |             if (event.keyCode === 38) {
 9 |                 element.find('*:focus').first().prev().focus();
10 |                 event.preventDefault();
11 |             }
12 |         })
13 | );
14 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/ngEnter.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').directive('ngEnter', () =>
 2 |     ($scope, element, attrs) =>
 3 |         element.bind('keydown keypress', (event) => {
 4 |             if (event.which === 13) {
 5 |                 $scope.$apply(() => $scope.$eval(attrs.ngEnter));
 6 |                 event.preventDefault();
 7 |             }
 8 |         })
 9 | );
10 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/directives/progressSpinner.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').directive('progressSpinner', () =>
 2 |     ({
 3 |         restrict: 'E',
 4 |         template: `
 5 |             <div>
 6 |                 <div class="one"></div>
 7 |                 <div class="two"></div>
 8 |             </div>`,
 9 |     })
10 | );
11 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/services/customization.service.es:
--------------------------------------------------------------------------------
1 | angular.module('core').service('customization', function() {
2 |     this.plugins = {core: {
3 |         extraProfileMenuItems: []
4 |     }};
5 |     return this;
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/services/notify.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').service('notify', function($location, toaster) {
 2 |     window.toaster = toaster;
 3 |     this.info = (title, text) => toaster.pop('info', title, text);
 4 | 
 5 |     this.success = (title, text) => toaster.pop('success', title, text);
 6 | 
 7 |     this.warning = (title, text) => toaster.pop('warning', title, text);
 8 | 
 9 |     this.error = (title, text) => toaster.pop('error', title, text);
10 | 
11 |     this.custom = (style, title, text, url) =>
12 |         toaster.pop(style, title, text, 5000, 'trustedHtml', () => $location.path(url));
13 | 
14 |     return this;
15 | });
16 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/services/pageTitle.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').service('pageTitle', function($rootScope) {
 2 |     this.set = (expr, scope) => {
 3 |         if (!scope) {
 4 |             $rootScope.pageTitle = expr;
 5 |         } else {
 6 |             let refresh = () => {
 7 |                 let title = scope.$eval(expr);
 8 |                 if (angular.isDefined(title)) {
 9 |                     $rootScope.pageTitle = title;
10 |                 }
11 |             };
12 | 
13 |             scope.$watch(expr, () => refresh());
14 |             refresh();
15 |         }
16 |     };
17 | 
18 |     return this;
19 | });
20 | 


--------------------------------------------------------------------------------
/plugins/core/resources/js/core/services/push.service.es:
--------------------------------------------------------------------------------
1 | angular.module('core').service('push', function($rootScope, $q, $log, $http, socket) {
2 |     $rootScope.$on('socket:push', ($event, msg) => {
3 |         $log.debug('Push message from', msg.plugin, msg.message);
4 |         $rootScope.$broadcast(`push:${msg.plugin}`, msg.message);
5 |     });
6 | 
7 |     return this;
8 | });
9 | 


--------------------------------------------------------------------------------
/plugins/core/resources/partial/404.html:
--------------------------------------------------------------------------------
 1 | <div class="container">
 2 |     <div class="row" id="404">
 3 |         <div>
 4 |             <h1 translate>
 5 |                 404 - Page not found
 6 |             </h1>
 7 |             <p class="alert alert-danger" translate>
 8 |                 <span>
 9 |                     <i class="fa fa-exclamation-triangle" style="color:red;"></i>
10 |                 </span>
11 |                 The URL {{url}} was not found on this server.
12 |             </p>
13 |         </div>
14 |     </div>
15 | </div>
16 | 


--------------------------------------------------------------------------------
/plugins/core/resources/partial/sidebarTasks.html:
--------------------------------------------------------------------------------
 1 | <div ng:controller="CoreTasksController">
 2 |     <div class="task-status animate-list" ng:repeat="task in tasks.tasks">
 3 |         <div>
 4 |             <div class="pull-left">
 5 |                 <progress-spinner></progress-spinner>
 6 |             </div>
 7 |             <h5>{{task.name|translate}}</h5>
 8 |             <smart-progress
 9 |                 animate="true"
10 |                 max="task.progress.total"
11 |                 value="task.progress.done"
12 |                 text="(task.progress.message|translate) || '...'"
13 |             ></smart-progress>
14 |         </div>
15 |     </div>
16 | </div>


--------------------------------------------------------------------------------
/plugins/core/views/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/core/views/__init__.py


--------------------------------------------------------------------------------
/plugins/cron/README.md:
--------------------------------------------------------------------------------
1 | # Crontab plugin
2 | 
3 | This plugin manages user crontab files.
4 | 


--------------------------------------------------------------------------------
/plugins/cron/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | 
5 | logging.info('extra_crontab.__init__.py: extra_crontab loaded')
6 | 


--------------------------------------------------------------------------------
/plugins/cron/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: cron
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/cron.html
 6 | version: '0.7'
 7 | title: 'Cron'
 8 | icon: 'clock-o'
 9 | dependencies:
10 |     - !PluginDependency {
11 |         plugin_name: core
12 |     }
13 | resources:
14 |     - 'resources/js/module.es'
15 |     - 'resources/js/routing.es'
16 |     - 'resources/js/controllers/index.controller.es'
17 |     - 'resources/partial/index.html'
18 |     - 'ng:ajenti.cron'
19 | 


--------------------------------------------------------------------------------
/plugins/cron/requirements.txt:
--------------------------------------------------------------------------------
1 | reconfigure
2 | 


--------------------------------------------------------------------------------
/plugins/cron/resources/js/module.es:
--------------------------------------------------------------------------------
1 | // the module should depend on 'core' to use the stock services & components
2 | angular.module('ajenti.cron', [
3 |     'core',
4 | ]);
5 | 
6 | 


--------------------------------------------------------------------------------
/plugins/cron/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.cron').config(($routeProvider) => {
2 |     $routeProvider.when('/view/cron', {
3 |         templateUrl: '/cron:resources/partial/index.html',
4 |         controller: 'CronIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/dashboard/README.md:
--------------------------------------------------------------------------------
1 | # Dashboard plugin
2 | 
3 | This plugin manages and displays all available widgets registered in the plugins.
4 | It defines a widget interface Widget in order to facilitate the definition and integration of a new widget.
5 | 


--------------------------------------------------------------------------------
/plugins/dashboard/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .api import *
 3 | from .main import *
 4 | from .views import *
 5 | from .widgets.cpu import *
 6 | from .widgets.hostname import *
 7 | from .widgets.loadavg import *
 8 | from .widgets.memory import *
 9 | from .widgets.uptime import *
10 | 


--------------------------------------------------------------------------------
/plugins/dashboard/api.py:
--------------------------------------------------------------------------------
 1 | from jadi import interface
 2 | 
 3 | 
 4 | @interface
 5 | class Widget():
 6 |     """
 7 |     Base interface for dashboard widgets.
 8 |     """
 9 |     id = None
10 | 
11 |     name = None
12 |     """Display name"""
13 | 
14 |     template = None
15 |     """Angular view template URL"""
16 | 
17 |     config_template = None
18 |     """Configuration dialog template URL"""
19 | 
20 |     def __init__(self, context):
21 |         self.context = context
22 | 
23 |     def get_value(self, config):
24 |         """
25 |         Override this to return the widget value for the given config dict.
26 |         """
27 |         raise NotImplementedError
28 | 


--------------------------------------------------------------------------------
/plugins/dashboard/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/dashboard/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider (SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:general',
15 |                 'name': _('Dashboard'),
16 |                 'icon': 'bar-chart',
17 |                 'url': '/view/dashboard',
18 |                 'children': [
19 |                 ]
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/dashboard/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.settings
4 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/controllers/hostnameWidget.controller.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.dashboard').controller('HostnameWidgetController', $scope => {
2 |     $scope.$on('widget-update', ($event, id, data) => {
3 |         if (id !== $scope.widget.id) {
4 |             return;
5 |         }
6 |         $scope.hostname = data;
7 |     })
8 | });
9 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/controllers/loadAverageWidget.controller.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.dashboard').controller('LoadAverageWidgetController', ($scope) => {
2 |     $scope.$on('widget-update', ($event, id, data) => {
3 |         if (id !== $scope.widget.id) {
4 |             return;
5 |         }
6 |         $scope.load = data;
7 |     })
8 | });
9 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/controllers/memoryWidget.controller.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.dashboard').controller('MemoryWidgetController', ($scope) => {
 2 |     $scope.$on('widget-update', ($event, id, data) => {
 3 |         if (id !== $scope.widget.id) {
 4 |             return;
 5 |         }
 6 |         $scope.used = data.used;
 7 |         $scope.total = data.total;
 8 |         $scope.usage = Math.floor((100 * $scope.used) / $scope.total);
 9 |     })
10 | });
11 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/controllers/uptimeWidget.controller.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.dashboard').controller('UptimeWidgetController', ($scope) => {
2 |     $scope.$on('widget-update', ($event, id, data) => {
3 |         if (id !== $scope.widget.id) {
4 |             return;
5 |         }
6 |         $scope.uptime = data;
7 |     })
8 | });
9 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider => {
2 |     $routeProvider.when('/view/dashboard', {
3 |         templateUrl: '/dashboard:resources/partial/index.html',
4 |         controller: 'DashboardIndexController'
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/js/services/dashboard.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.dashboard').service('dashboard', function($http, $q) {
 2 |     this.getAvailableWidgets = () => {
 3 |         return $http.get("/api/dashboard/widgets").then(response => response.data)
 4 |     };
 5 | 
 6 |     this.getValues = function(data) {
 7 |         return $http.post("/api/dashboard/widgets-values", data, {ignoreLoadingBar: true}).then(response => response.data)
 8 |     };
 9 | 
10 |     return this;
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/partial/widgets/hostname.html:
--------------------------------------------------------------------------------
1 | <div ng:controller="HostnameWidgetController">
2 |     <div class="widget-header" translate>
3 |         Hostname
4 |     </div>
5 |     <div class="widget-value">
6 |         {{hostname}}
7 |     </div>
8 | </div>
9 | 


--------------------------------------------------------------------------------
/plugins/dashboard/resources/partial/widgets/uptime.html:
--------------------------------------------------------------------------------
1 | <div ng:controller="UptimeWidgetController">
2 |     <div class="widget-header" translate>
3 |         Uptime
4 |     </div>
5 |     <div class="widget-value">
6 |         {{uptime|time}}
7 |     </div>
8 | </div>
9 | 


--------------------------------------------------------------------------------
/plugins/dashboard/widgets/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/dashboard/widgets/__init__.py


--------------------------------------------------------------------------------
/plugins/dashboard/widgets/cpu.py:
--------------------------------------------------------------------------------
 1 | import psutil
 2 | from jadi import component
 3 | 
 4 | from aj.plugins.dashboard.api import Widget
 5 | 
 6 | 
 7 | @component(Widget)
 8 | class CPUWidget(Widget):
 9 |     id = 'cpu'
10 |     name = _('CPU usage')
11 |     template = '/dashboard:resources/partial/widgets/cpu.html'
12 | 
13 |     def __init__(self, context):
14 |         Widget.__init__(self, context)
15 | 
16 |     def get_value(self, config):
17 |         return [x / 100.0 for x in psutil.cpu_percent(interval=0, percpu=True)]
18 | 


--------------------------------------------------------------------------------
/plugins/dashboard/widgets/hostname.py:
--------------------------------------------------------------------------------
 1 | import platform
 2 | from jadi import component
 3 | 
 4 | from aj.plugins.dashboard.api import Widget
 5 | 
 6 | 
 7 | @component(Widget)
 8 | class HostnameWidget(Widget):
 9 |     id = 'hostname'
10 |     name = _('Hostname')
11 |     template = '/dashboard:resources/partial/widgets/hostname.html'
12 | 
13 |     def __init__(self, context):
14 |         Widget.__init__(self, context)
15 | 
16 |     def get_value(self, config):
17 |         return platform.node()
18 | 


--------------------------------------------------------------------------------
/plugins/dashboard/widgets/memory.py:
--------------------------------------------------------------------------------
 1 | import psutil
 2 | from jadi import component
 3 | 
 4 | from aj.plugins.dashboard.api import Widget
 5 | 
 6 | 
 7 | @component(Widget)
 8 | class MemoryWidget(Widget):
 9 |     id = 'memory'
10 |     name = _('Memory usage')
11 |     template = '/dashboard:resources/partial/widgets/memory.html'
12 | 
13 |     def __init__(self, context):
14 |         Widget.__init__(self, context)
15 | 
16 |     def get_value(self, config):
17 |         v = psutil.virtual_memory()
18 |         return {
19 |             'used': v.total - v.available,
20 |             'free': v.available,
21 |             'total': v.total
22 |         }
23 | 


--------------------------------------------------------------------------------
/plugins/dashboard/widgets/uptime.py:
--------------------------------------------------------------------------------
 1 | import psutil
 2 | import time
 3 | from jadi import component
 4 | 
 5 | from aj.plugins.dashboard.api import Widget
 6 | 
 7 | 
 8 | @component(Widget)
 9 | class UptimeWidget(Widget):
10 |     id = 'uptime'
11 |     name = _('Uptime')
12 |     template = '/dashboard:resources/partial/widgets/uptime.html'
13 | 
14 |     def __init__(self, context):
15 |         Widget.__init__(self, context)
16 | 
17 |     def get_value(self, config):
18 |         return time.time() - psutil.boot_time()
19 | 


--------------------------------------------------------------------------------
/plugins/datetime/README.md:
--------------------------------------------------------------------------------
1 | # Datetime plugin
2 | 
3 | Manage time zones and time on the server.
4 | 


--------------------------------------------------------------------------------
/plugins/datetime/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .api import *
 3 | from .managers.centos_manager import *
 4 | from .managers.debian_manager import *
 5 | 
 6 | 
 7 | def init(plugin_manager):
 8 |     import aj
 9 |     api.TZManager.any(aj.context)
10 | 
11 |     from .main import ItemProvider # skipcq: PYL-W0611
12 |     from .views import Handler # skipcq: PYL-W0611
13 | 


--------------------------------------------------------------------------------
/plugins/datetime/managers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/datetime/managers/__init__.py


--------------------------------------------------------------------------------
/plugins/datetime/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: datetime
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/datetime.html
 6 | version: '0.42'
 7 | title: 'Date & time'
 8 | icon: clock-o
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 | resources:
12 |     - resources/js/module.es
13 |     - resources/js/routing.es
14 |     - resources/js/controllers/index.controller.es
15 |     - resources/js/services/datetime.service.es
16 |     - resources/partial/index.html
17 |     - ng:ajenti.datetime
18 | 


--------------------------------------------------------------------------------
/plugins/datetime/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | pytz


--------------------------------------------------------------------------------
/plugins/datetime/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider => {
2 |     $routeProvider.when('/view/datetime', {
3 |         templateUrl: '/datetime:resources/partial/index.html',
4 |         controller: 'DateTimeIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/dns_api/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | from .providers.gandi import *
5 | 
6 | 
7 | logging.info('dns_api.__init__.py: dns_api loaded')
8 | 


--------------------------------------------------------------------------------
/plugins/dns_api/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: dns_api
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | version: '0.3'
 6 | title: 'External DNS'
 7 | icon: globe
 8 | dependencies:
 9 |     - !PluginDependency {
10 |         plugin_name: core
11 |     }
12 | resources:
13 |     - 'resources/js/module.es'
14 |     - 'resources/js/routing.es'
15 |     - 'resources/js/controllers/index.controller.es'
16 |     - 'resources/partial/index.html'
17 |     - 'ng:ajenti.dns_api'
18 | 


--------------------------------------------------------------------------------
/plugins/dns_api/providers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/dns_api/providers/__init__.py


--------------------------------------------------------------------------------
/plugins/dns_api/record.py:
--------------------------------------------------------------------------------
1 | from dataclasses import dataclass
2 | 
3 | 
4 | @dataclass
5 | class Record:
6 |     name: str
7 |     ttl: int
8 |     type: str
9 |     values: list


--------------------------------------------------------------------------------
/plugins/dns_api/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/dns_api/requirements.txt


--------------------------------------------------------------------------------
/plugins/dns_api/resources/js/module.es:
--------------------------------------------------------------------------------
1 | // the module should depend on 'core' to use the stock services & components
2 | angular.module('ajenti.dns_api', [
3 |     'core',
4 | ]);
5 | 
6 | 


--------------------------------------------------------------------------------
/plugins/dns_api/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.dns_api').config(($routeProvider) => {
2 |     $routeProvider.when('/view/dns_api', {
3 |         templateUrl: '/dns_api:resources/partial/index.html',
4 |         controller: 'DnsAPIIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/docker/README.md:
--------------------------------------------------------------------------------
1 | # Docker plugin
2 | 
3 | This plugin manages some informations from container and images on a docker host.
4 | 


--------------------------------------------------------------------------------
/plugins/docker/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | 
5 | logging.info('docker.__init__.py: docker loaded')
6 | 


--------------------------------------------------------------------------------
/plugins/docker/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: docker
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/docker.html
 6 | version: '0.6'
 7 | title: 'Docker'
 8 | icon: 'fab fa-docker'
 9 | dependencies:
10 |     - !PluginDependency {
11 |         plugin_name: core
12 |     }
13 | resources:
14 |     - 'resources/js/module.es'
15 |     - 'resources/js/routing.es'
16 |     - 'resources/js/controllers/index.controller.es'
17 |     - 'resources/partial/index.html'
18 |     - 'ng:ajenti.docker'
19 | 


--------------------------------------------------------------------------------
/plugins/docker/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/docker/requirements.txt


--------------------------------------------------------------------------------
/plugins/docker/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.docker', [
2 |     'core',
3 | ]);
4 | 
5 | 


--------------------------------------------------------------------------------
/plugins/docker/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.docker').config(($routeProvider) => {
2 |     $routeProvider.when('/view/docker', {
3 |         templateUrl: '/docker:resources/partial/index.html',
4 |         controller: 'DockerIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/filemanager/README.md:
--------------------------------------------------------------------------------
1 | # Filemanager plugin
2 | 
3 | Plugin to navigate on the server directory tree.
4 | This plugin uses the api of the filesystem plugin.
5 | 


--------------------------------------------------------------------------------
/plugins/filemanager/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | 


--------------------------------------------------------------------------------
/plugins/filemanager/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/filemanager/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:tools',
15 |                 'name': _('File Manager'),
16 |                 'icon': 'folder-o',
17 |                 'url': '/view/filemanager/',
18 |                 'children': [
19 |                 ]
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/filemanager/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.filesystem
4 | 


--------------------------------------------------------------------------------
/plugins/filemanager/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.filemanager', [
2 |     'core',
3 |     'flow',
4 |     'ajenti.filesystem',
5 | ]);
6 | 


--------------------------------------------------------------------------------
/plugins/filesystem/README.md:
--------------------------------------------------------------------------------
1 | # Filesystem plugin
2 | 
3 | Provide tools to manage files, directories, upload, ... on the filesystem, and deliver some useful informations about it.
4 | 


--------------------------------------------------------------------------------
/plugins/filesystem/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .main import *
 3 | from .tasks import *
 4 | from .views import *
 5 | 
 6 | 
 7 | def init(plugin_manager):
 8 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
 9 |         from .widget import DiskWidget
10 | 


--------------------------------------------------------------------------------
/plugins/filesystem/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |     "ng-flow": "~2"
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/plugins/filesystem/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.auth import PermissionProvider
 4 | 
 5 | 
 6 | @component(PermissionProvider)
 7 | class Permissions (PermissionProvider):
 8 |     def provide(self):
 9 |         return [
10 |             {
11 |                 'id': 'filesystem:read',
12 |                 'name': _('Read from the filesystem'),
13 |                 'default': True,
14 |             },
15 |             {
16 |                 'id': 'filesystem:write',
17 |                 'name': _('Write to the filesystem'),
18 |                 'default': True,
19 |             },
20 |         ]
21 | 


--------------------------------------------------------------------------------
/plugins/filesystem/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/filesystem/resources/js/controllers/widget.controller.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.filesystem').controller('DiskWidgetController', $scope =>
 2 |     $scope.$on('widget-update', function($event, id, data) {
 3 |         if (id !== $scope.widget.id) {
 4 |             return;
 5 |         }
 6 |         return $scope.service = data;
 7 |     }
 8 |     )
 9 | 
10 | );
11 | 
12 | 
13 | angular.module('ajenti.filesystem').controller('DiskWidgetConfigController', function($scope, filesystem) {
14 |     $scope.services = [];
15 | 
16 |     return filesystem.mountpoints().then(data => $scope.mountpoints = data);
17 | }
18 | );
19 | 


--------------------------------------------------------------------------------
/plugins/filesystem/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.filesystem', [
2 |     'core',
3 |     'flow',
4 | ]);
5 | 


--------------------------------------------------------------------------------
/plugins/filesystem/resources/partial/widget.config.html:
--------------------------------------------------------------------------------
1 | <div ng:controller="DiskWidgetConfigController">
2 |     <div>
3 |         <label translate>Filesystem</label>
4 |         <select ng:model="configuredWidget.config.mountpoint" ng:options="x for x in mountpoints" class="form-control">
5 |             <option value="" translate>All combined</option>
6 |         </select>
7 |     </div>
8 | </div>
9 | 


--------------------------------------------------------------------------------
/plugins/fstab/README.md:
--------------------------------------------------------------------------------
1 | # Fstab plugin 
2 | 
3 | Manipulate the fstab file and show mounted devices.
4 | 


--------------------------------------------------------------------------------
/plugins/fstab/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | 
5 | logging.info('fstab.__init__.py: fstab loaded')
6 | 


--------------------------------------------------------------------------------
/plugins/fstab/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: fstab
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/fstab.html
 6 | version: '0.5'
 7 | title: 'Fstab'
 8 | icon: hdd
 9 | 
10 | dependencies:
11 |     - !PluginDependency {
12 |         plugin_name: core
13 |     }
14 | resources:
15 |     - 'resources/js/module.es'
16 |     - 'resources/js/routing.es'
17 |     - 'resources/js/controllers/index.controller.es'
18 |     - 'resources/partial/index.html'
19 |     - 'ng:ajenti.fstab'
20 | 


--------------------------------------------------------------------------------
/plugins/fstab/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/fstab/requirements.txt


--------------------------------------------------------------------------------
/plugins/fstab/resources/js/module.es:
--------------------------------------------------------------------------------
1 | // the module should depend on 'core' to use the stock services & components
2 | angular.module('ajenti.fstab', [
3 |     'core',
4 | ]);
5 | 
6 | 


--------------------------------------------------------------------------------
/plugins/fstab/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.fstab').config(($routeProvider) => {
2 |     $routeProvider.when('/view/fstab', {
3 |         templateUrl: '/fstab:resources/partial/index.html',
4 |         controller: 'FstabIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/iptables/README.md:
--------------------------------------------------------------------------------
1 | # Ajenti plugin Iptables
2 | 
3 | This plugin list the chains and displays the rules of each, with the possibility to delete some rules (may be useful to unban IPs from `fail2ban`).
4 | 


--------------------------------------------------------------------------------
/plugins/iptables/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | 
5 | logging.info('iptables.__init__.py: iptables loaded')
6 | 


--------------------------------------------------------------------------------
/plugins/iptables/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:software',
15 |                 'name': 'Iptables',
16 |                 'icon': 'ban',
17 |                 'url': '/view/iptables',
18 |                 'children': []
19 |             }
20 |         ]
21 | 


--------------------------------------------------------------------------------
/plugins/iptables/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: iptables
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: http://ajenti.org
 5 | version: '0.2'
 6 | title: 'iptables'
 7 | icon:
 8 | dependencies:
 9 |     - !PluginDependency {
10 |         plugin_name: core
11 |     }
12 | resources:
13 |     - 'resources/js/module.es'
14 |     - 'resources/js/routing.es'
15 |     - 'resources/js/controllers/index.controller.es'
16 |     - 'resources/partial/index.html'
17 |     - 'ng:ajenti.iptables'
18 | 


--------------------------------------------------------------------------------
/plugins/iptables/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/iptables/requirements.txt


--------------------------------------------------------------------------------
/plugins/iptables/resources/js/module.es:
--------------------------------------------------------------------------------
1 | // the module should depend on 'core' to use the stock services & components
2 | angular.module('ajenti.iptables', [
3 |     'core',
4 | ]);
5 | 
6 | 


--------------------------------------------------------------------------------
/plugins/iptables/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.iptables').config(($routeProvider) => {
2 |     $routeProvider.when('/view/iptables', {
3 |         templateUrl: '/iptables:resources/partial/index.html',
4 |         controller: 'IptablesIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/network/README.md:
--------------------------------------------------------------------------------
1 | # Network plugin
2 | 
3 | Plugin to get and set network interfaces informations on the system.
4 | 


--------------------------------------------------------------------------------
/plugins/network/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .api import *
 3 | from .managers.centos_manager import *
 4 | from .managers.debian_manager import *
 5 | from .managers.gentoo_manager import *
 6 | from .managers.ubuntu_manager import *
 7 | 
 8 | def init(plugin_manager):
 9 |     import aj
10 |     api.NetworkManager.any(aj.context)
11 | 
12 |     from .aug import ResolvConfEndpoint # skipcq: PYL-W0611
13 |     from .main import ItemProvider # skipcq: PYL-W0611
14 |     from .views import Handler # skipcq: PYL-W0611
15 | 


--------------------------------------------------------------------------------
/plugins/network/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/network/managers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/network/managers/__init__.py


--------------------------------------------------------------------------------
/plugins/network/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.augeas
4 | 


--------------------------------------------------------------------------------
/plugins/network/resources/js/controllers/dns.controller.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.network').controller('NetworkDNSController', function($scope, notify, augeas, gettext) {
 2 |     augeas.get('resolv').then(config => $scope.config = config);
 3 | 
 4 |     $scope.addNameserver = () => {
 5 |         $scope.config.insert('nameserver', $scope.newNameserver);
 6 |         $scope.newNameserver = '';
 7 |     };
 8 | 
 9 |     $scope.save = () =>
10 |         augeas.set('resolv', $scope.config).then(() => {
11 |             notify.success(gettext('Saved'))
12 |         }, e => {
13 |             notify.error(gettext('Could not save'), e.message)
14 |         });
15 | });
16 | 


--------------------------------------------------------------------------------
/plugins/network/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.network', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/network/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider => {
2 |     $routeProvider.when('/view/network', {
3 |         templateUrl: '/network:resources/partial/index.html',
4 |         controller: 'NetworkIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/notepad/README.md:
--------------------------------------------------------------------------------
1 | # Notepad plugin
2 | 
3 | Provides a frontend to ace editor and permit to edit new or specific files.
4 | File management is done through the plugin filesystem.
5 | 


--------------------------------------------------------------------------------
/plugins/notepad/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | 


--------------------------------------------------------------------------------
/plugins/notepad/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/notepad/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:tools',
15 |                 'name': _('Notepad'),
16 |                 'icon': 'pencil',
17 |                 'url': '/view/notepad',
18 |                 'children': [
19 |                 ]
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/notepad/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: notepad
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/notepad.html
 6 | version: '0.30'
 7 | title: 'Notepad'
 8 | icon: pencil
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 |     - !PluginDependency { plugin_name: ace }
12 |     - !PluginDependency { plugin_name: filesystem }
13 | resources:
14 |     - resources/js/module.es
15 |     - resources/js/routing.es
16 |     - resources/js/controllers/index.controller.es
17 |     - resources/partial/index.html
18 |     - ng:ajenti.notepad
19 | 


--------------------------------------------------------------------------------
/plugins/notepad/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.ace
3 | ajenti.plugin.core
4 | ajenti.plugin.filesystem
5 | 


--------------------------------------------------------------------------------
/plugins/notepad/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.notepad', [
2 |     'core',
3 |     'ajenti.filesystem',
4 |     'ajenti.ace',
5 | ]);
6 | 


--------------------------------------------------------------------------------
/plugins/notepad/resources/js/routing.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').config(($routeProvider) => {
 2 |     $routeProvider.when('/view/notepad', {
 3 |         templateUrl: '/notepad:resources/partial/index.html',
 4 |         controller: 'NotepadIndexController'
 5 |     });
 6 | 
 7 |     $routeProvider.when('/view/notepad/:path*', {
 8 |         templateUrl: '/notepad:resources/partial/index.html',
 9 |         controller: 'NotepadIndexController'
10 |     });
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/packages/README.md:
--------------------------------------------------------------------------------
1 | # Packages plugin
2 | 
3 | Manage the packages installed on the system with various managers (apt, yum, pip).
4 | 


--------------------------------------------------------------------------------
/plugins/packages/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .api import *
 3 | from .main import *
 4 | from .views import *
 5 | from .tasks import *
 6 | 
 7 | try:
 8 |     from .managers.apt_manager import *
 9 | except ImportError:
10 |     pass
11 | 
12 | try:
13 |     from .managers.yum_manager import *
14 | except ImportError:
15 |     pass
16 | 
17 | from .managers.pip_manager import *
18 | 


--------------------------------------------------------------------------------
/plugins/packages/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/packages/managers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/packages/managers/__init__.py


--------------------------------------------------------------------------------
/plugins/packages/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: packages
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/packages.html
 6 | version: '0.36'
 7 | title: 'Packages'
 8 | icon: gift
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 |     - !PluginDependency { plugin_name: terminal }
12 | resources:
13 |     - resources/js/module.es
14 |     - resources/js/routing.es
15 |     - resources/js/controllers/index.controller.es
16 |     - resources/js/services/packages.service.es
17 |     - resources/partial/index.html
18 |     - ng:ajenti.packages
19 | 


--------------------------------------------------------------------------------
/plugins/packages/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.terminal
4 | jadi>=1.0.3
5 | bs4
6 | requests


--------------------------------------------------------------------------------
/plugins/packages/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.packages', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/packages/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider => {
2 |     $routeProvider.when('/view/packages/:managerId', {
3 |         templateUrl: '/packages:resources/partial/index.html',
4 |         controller: 'PackagesIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/passwd/README.md:
--------------------------------------------------------------------------------
1 | # Passwd plugin
2 | 
3 | Manage user and passwords stored in /etc/shadow.
4 | 


--------------------------------------------------------------------------------
/plugins/passwd/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .views import *
3 | 


--------------------------------------------------------------------------------
/plugins/passwd/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/af/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: af\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Afrikaans\n"
13 | "Language: af_ZA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/app.pot:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Content-Type: text/plain; charset=UTF-8\n"
4 | "Content-Transfer-Encoding: 8bit\n"
5 | "Project-Id-Version: \n"
6 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ar/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ar\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Arabic\n"
13 | "Language: ar_SA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/be/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n%100>=11 && n%100<=14 ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: be\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Belarusian\n"
13 | "Language: be_BY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/bg/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bg\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Bulgarian\n"
13 | "Language: bg_BG\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/bn/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bn\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Bengali\n"
13 | "Language: bn_BD\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/bs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: bs\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Bosnian\n"
13 | "Language: bs_BA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ca/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ca\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Catalan\n"
13 | "Language: ca_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/cs/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: cs\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Czech\n"
13 | "Language: cs_CZ\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/da/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: da\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Danish\n"
13 | "Language: da_DK\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/de/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: de\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: German\n"
13 | "Language: de_DE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/el/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: el\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Greek\n"
13 | "Language: el_GR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/en/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "Content-Type: text/plain; charset=UTF-8\n"
5 | "Content-Transfer-Encoding: 8bit\n"
6 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/eo/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: eo\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Esperanto\n"
13 | "Language: eo_UY\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/es-ES/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: es-ES\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Spanish\n"
13 | "Language: es_ES\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/et/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: et\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Estonian\n"
13 | "Language: et_EE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/fa/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fa\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Persian\n"
13 | "Language: fa_IR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/fi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fi\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Finnish\n"
13 | "Language: fi_FI\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/fr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fr\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: French\n"
13 | "Language: fr_FR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/fy-NL/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: fy-NL\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Frisian\n"
13 | "Language: fy_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/he/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: he\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Hebrew\n"
13 | "Language: he_IL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/hr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hr\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Croatian\n"
13 | "Language: hr_HR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/hu/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: hu\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Hungarian\n"
13 | "Language: hu_HU\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/id/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: id\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Indonesian\n"
13 | "Language: id_ID\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/it/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: it\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Italian\n"
13 | "Language: it_IT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ja/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ja\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Japanese\n"
13 | "Language: ja_JP\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ka/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ka\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Georgian\n"
13 | "Language: ka_GE\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ko/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ko\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Korean\n"
13 | "Language: ko_KR\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/lt/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lt\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Lithuanian\n"
13 | "Language: lt_LT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/lv/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==0 ? 0 : n%10==1 && n%100!=11 ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: lv\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Latvian\n"
13 | "Language: lv_LV\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/my/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: my\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Burmese\n"
13 | "Language: my_MM\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/nl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: nl\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Dutch\n"
13 | "Language: nl_NL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/no/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: no\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Norwegian\n"
13 | "Language: no_NO\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/pl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pl\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Polish\n"
13 | "Language: pl_PL\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/pt-BR/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-BR\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Portuguese, Brazilian\n"
13 | "Language: pt_BR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/pt-PT/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: pt-PT\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Portuguese\n"
13 | "Language: pt_PT\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/ro/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: ro\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Romanian\n"
13 | "Language: ro_RO\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sk/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sk\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Slovak\n"
13 | "Language: sk_SK\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sl\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Slovenian\n"
13 | "Language: sl_SI\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sr-CS/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr-CS\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Serbian (Latin)\n"
13 | "Language: sr_CS\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sr\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Serbian (Cyrillic)\n"
13 | "Language: sr_SP\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sv-SE/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sv-SE\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Swedish\n"
13 | "Language: sv_SE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/sw/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: sw\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Swahili\n"
13 | "Language: sw_KE\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/th/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: th\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Thai\n"
13 | "Language: th_TH\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/tlh-AA/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tlh-AA\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Klingon\n"
13 | "Language: tlh_AA\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/tr/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tr\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Turkish\n"
13 | "Language: tr_TR\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/tzl/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: tzl\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Talossan\n"
13 | "Language: tzl_TZL\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/vi/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: vi\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Vietnamese\n"
13 | "Language: vi_VN\n"
14 | "PO-Revision-Date: 2023-05-07 10:30\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/zh-CN/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-CN\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Chinese Simplified\n"
13 | "Language: zh_CN\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/locale/zh-TW/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Content-Type: text/plain; charset=UTF-8\n"
 4 | "Content-Transfer-Encoding: 8bit\n"
 5 | "Project-Id-Version: ajenti\n"
 6 | "Plural-Forms: nplurals=1; plural=0;\n"
 7 | "X-Crowdin-Project: ajenti\n"
 8 | "X-Crowdin-Project-ID: 18127\n"
 9 | "X-Crowdin-Language: zh-TW\n"
10 | "X-Crowdin-File: /2.0/passwd.po\n"
11 | "X-Crowdin-File-ID: 34\n"
12 | "Language-Team: Chinese Traditional\n"
13 | "Language: zh_TW\n"
14 | "PO-Revision-Date: 2023-05-07 10:29\n"
15 | 
16 | 


--------------------------------------------------------------------------------
/plugins/passwd/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: passwd
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | version: '0.27'
 6 | title: 'User DB API'
 7 | icon: cog
 8 | dependencies:
 9 |     - !PluginDependency { plugin_name: core }
10 | resources:
11 |     - resources/js/module.es
12 |     - resources/js/services/passwd.service.es
13 |     - ng:ajenti.passwd
14 | 


--------------------------------------------------------------------------------
/plugins/passwd/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/passwd/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.passwd', [
2 |     'core'
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/passwd/resources/js/services/passwd.service.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.passwd').service('passwd', function($http, $q) {
 2 |     this.list = () => {
 3 |         return $http.get("/api/passwds").then(response => response.data)
 4 |     };
 5 | 
 6 |     this.set = (user, password) => {
 7 |         return $http.post("/api/passwd", {user, password}).then(response => response.data)
 8 |     };
 9 | 
10 |     return this;
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/plugins/README.md:
--------------------------------------------------------------------------------
1 | # Plugins plugin
2 | 
3 | Manage ajenti-panel and all ajenti plugins ( install, remove, upgrade ).
4 | 


--------------------------------------------------------------------------------
/plugins/plugins/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | from .tasks import *
4 | from .views import *
5 | 


--------------------------------------------------------------------------------
/plugins/plugins/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/plugins/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:general',
15 |                 'name': _('Plugins'),
16 |                 'icon': 'th-large',
17 |                 'url': '/view/plugins',
18 |                 'children': [
19 |                 ]
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/plugins/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: plugins
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/plugins.html
 6 | version: '0.52'
 7 | title: 'Plugins'
 8 | icon: th-large
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 | resources:
12 |     - resources/js/module.es
13 |     - resources/js/controllers/index.controller.es
14 |     - resources/partial/index.html
15 |     - ng:ajenti.plugins
16 | 


--------------------------------------------------------------------------------
/plugins/plugins/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/plugins/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.plugins', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/power/README.md:
--------------------------------------------------------------------------------
1 | # Power plugin
2 | 
3 | Plugin to manage power on the system.
4 | 


--------------------------------------------------------------------------------
/plugins/power/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | from .views import *
4 | 
5 | 
6 | def init(plugin_manager):
7 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
8 |         from .widget import PowerWidget
9 | 


--------------------------------------------------------------------------------
/plugins/power/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.dashboard
4 | 


--------------------------------------------------------------------------------
/plugins/power/resources/js/controllers/widget.controller.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.power').controller('PowerWidgetController', ($scope, services) => {
 2 |     $scope.$on('widget-update', ($event, id, data) => {
 3 |         if (id !== $scope.widget.id) {
 4 |             return;
 5 |         }
 6 |         $scope.batteries = data.batteries;
 7 |         $scope.adapters = data.adapters;
 8 |     })
 9 | });
10 | 


--------------------------------------------------------------------------------
/plugins/power/resources/js/module.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.power', [
 2 |     'core',
 3 | ]);
 4 | 
 5 | angular.module('ajenti.power').run((customization) => {
 6 |     customization.plugins.power = {};
 7 |     customization.plugins.power.hideBatteries = false;
 8 |     customization.plugins.power.hideAdapters = false;
 9 | });
10 | 


--------------------------------------------------------------------------------
/plugins/power/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider =>
2 |     $routeProvider.when('/view/power', {
3 |         templateUrl: '/power:resources/partial/index.html',
4 |         controller: 'PowerIndexController'
5 |     })
6 | );
7 | 


--------------------------------------------------------------------------------
/plugins/power/widget.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | from aj.plugins.dashboard.api import Widget
 3 | from aj.plugins.power.api import PowerManager
 4 | 
 5 | 
 6 | @component(Widget)
 7 | class PowerWidget(Widget):
 8 |     id = 'power'
 9 |     name = _('Power state')
10 |     template = '/power:resources/partial/widget.html'
11 | 
12 |     def __init__(self, context):
13 |         Widget.__init__(self, context)
14 |         self.manager = PowerManager.get(self.context)
15 | 
16 |     def get_value(self, config):
17 |         return {
18 |             'batteries': self.manager.get_batteries(),
19 |             'adapters': self.manager.get_adapters(),
20 |         }
21 | 


--------------------------------------------------------------------------------
/plugins/services/README.md:
--------------------------------------------------------------------------------
1 | # Services plugin
2 | 
3 | Provide some basic actions (start, restart, ...) on init services like systemd and allow to list all services.
4 | 


--------------------------------------------------------------------------------
/plugins/services/__init__.py:
--------------------------------------------------------------------------------
 1 | # pyflakes: disable-all
 2 | from .api import *
 3 | from .managers.systemd_manager import *
 4 | 
 5 | from .managers.sysv_manager import *
 6 | from .main import *
 7 | from .views import *
 8 | 
 9 | 
10 | def init(plugin_manager):
11 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
12 |         from .widget import ServiceWidget
13 | 


--------------------------------------------------------------------------------
/plugins/services/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/services/managers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/services/managers/__init__.py


--------------------------------------------------------------------------------
/plugins/services/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.dashboard
4 | 


--------------------------------------------------------------------------------
/plugins/services/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.services', [
2 |     'core'
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/services/resources/js/routing.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').config(($routeProvider) => {
 2 |     $routeProvider.when('/view/services', {
 3 |         templateUrl: '/services:resources/partial/index.html',
 4 |         controller: 'ServicesIndexController'
 5 |     });
 6 | 
 7 |     $routeProvider.when('/view/services/:managerId', {
 8 |         templateUrl: '/services:resources/partial/index.html',
 9 |         controller: 'ServicesIndexController'
10 |     });
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/services/resources/partial/systemd_status.modal.html:
--------------------------------------------------------------------------------
1 | <div class="modal-header">
2 |     <h4>{{service.name}}</h4>
3 | </div>
4 | <div class="modal-body">
5 |     <pre>{{status}}</pre>
6 | </div>
7 | <div class="modal-footer">
8 |     <a ng:click="close()" class="btn btn-default btn-flat" translate>Close</a>
9 | </div>


--------------------------------------------------------------------------------
/plugins/session_list/README.md:
--------------------------------------------------------------------------------
1 | # Session list plugin
2 | 
3 | Update the session list of connected users to show it with details on the frontend.
4 | 


--------------------------------------------------------------------------------
/plugins/session_list/__init__.py:
--------------------------------------------------------------------------------
1 | from .main import ItemProvider
2 | from .views import Handler
3 | 
4 | def init(plugin_manager):
5 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
6 |         from .widget import SessionWidget


--------------------------------------------------------------------------------
/plugins/session_list/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: session_list
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/session_list.html
 6 | version: '0.7'
 7 | title: 'Session list'
 8 | icon: network-wired
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 | resources:
12 |     - resources/js/module.es
13 |     - resources/js/routing.es
14 |     - resources/js/controllers/index.controller.coffee
15 |     - resources/js/controllers/widget.controller.es
16 |     - resources/partial/index.html
17 |     - resources/partial/widget.html
18 |     - ng:ajenti.session_list
19 | 


--------------------------------------------------------------------------------
/plugins/session_list/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | 


--------------------------------------------------------------------------------
/plugins/session_list/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.session_list', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/session_list/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.session_list').config($routeProvider => {
2 |     $routeProvider.when('/view/session_list', {
3 |         templateUrl: '/session_list:resources/partial/index.html',
4 |         controller: 'SessionListIndexController'
5 |     })
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/session_list/resources/partial/widget.html:
--------------------------------------------------------------------------------
 1 | <div ng:controller="SessionWidgetController">
 2 |     <div class="widget-header">
 3 |         <p translate>Authenticated users</p>
 4 |         <div>
 5 |             <p ng:repeat="session in sessions" class="text-primary">
 6 |                 {{session.identity}}
 7 |                 <span class="pull-right">{{session.client_info.address}}</span>
 8 |             </p>
 9 |         </div>
10 |     </div>
11 | </div>
12 | 


--------------------------------------------------------------------------------
/plugins/settings/README.md:
--------------------------------------------------------------------------------
1 | # Settings plugin
2 | 
3 | This plugin allows to configure ajenti options and certificates.
4 | 


--------------------------------------------------------------------------------
/plugins/settings/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | from .views import *
4 | 


--------------------------------------------------------------------------------
/plugins/settings/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/settings/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:general',
15 |                 'name': _('Settings'),
16 |                 'icon': 'cog',
17 |                 'url': '/view/settings',
18 |                 'children': [
19 |                 ]
20 |             }
21 |         ]
22 | 


--------------------------------------------------------------------------------
/plugins/settings/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: settings
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | docs: https://docs.ajenti.org/en/latest/plugins/settings.html
 6 | version: '0.34'
 7 | title: 'Settings'
 8 | icon: wrench
 9 | dependencies:
10 |     - !PluginDependency { plugin_name: core }
11 |     - !PluginDependency { plugin_name: filesystem }
12 |     - !PluginDependency { plugin_name: passwd }
13 | resources:
14 |     - 'resources/js/module.es'
15 |     - 'resources/js/routing.es'
16 |     - 'resources/js/controllers/index.controller.es'
17 |     - 'resources/partial/index.html'
18 |     - 'ng:ajenti.settings'
19 | 


--------------------------------------------------------------------------------
/plugins/settings/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.filesystem
4 | ajenti.plugin.passwd
5 | 


--------------------------------------------------------------------------------
/plugins/settings/resources/js/module.es:
--------------------------------------------------------------------------------
 1 | angular.module('ajenti.settings', [
 2 |     'core',
 3 |     'ajenti.filesystem',
 4 |     'ajenti.passwd',
 5 | ]);
 6 | 
 7 | angular.module('ajenti.settings').run(customization =>
 8 |     customization.plugins.settings = {}
 9 | );
10 | 


--------------------------------------------------------------------------------
/plugins/settings/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider =>
2 |     $routeProvider.when('/view/settings', {
3 |         templateUrl: '/settings:resources/partial/index.html',
4 |         controller: 'SettingsIndexController'
5 |     })
6 | );
7 | 


--------------------------------------------------------------------------------
/plugins/softraid/README.md:
--------------------------------------------------------------------------------
1 | # Softraid plugin
2 | 
3 | Read and parse the content of /proc/mdstat in order to show the details on the frontend.
4 | 
5 | 


--------------------------------------------------------------------------------
/plugins/softraid/__init__.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from .main import ItemProvider
3 | from .views import Handler
4 | 
5 | logging.info('softraid.__init__.py: softraid loaded')
6 | 


--------------------------------------------------------------------------------
/plugins/softraid/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | 
 3 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 4 | 
 5 | 
 6 | @component(SidebarItemProvider)
 7 | class ItemProvider(SidebarItemProvider):
 8 |     def __init__(self, context):
 9 |         pass
10 | 
11 |     def provide(self):
12 |         return [
13 |             {
14 |                 'attach': 'category:system',
15 |                 'name': 'Softraid',
16 |                 'icon': 'hdd',
17 |                 'url': '/view/softraid',
18 |                 'children': []
19 |             }
20 |         ]
21 | 
22 | 


--------------------------------------------------------------------------------
/plugins/softraid/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: softraid
 2 | author: Arnaud Kientz
 3 | email: arnaud@linuxmuster.net
 4 | url: https://ajenti.org
 5 | version: '0.4'
 6 | title: 'Softraid'
 7 | icon: hdd
 8 | dependencies:
 9 |     - !PluginDependency {
10 |         plugin_name: core
11 |     }
12 | resources:
13 |     - 'resources/js/module.es'
14 |     - 'resources/js/routing.es'
15 |     - 'resources/js/controllers/index.controller.es'
16 |     - 'resources/partial/index.html'
17 |     - 'ng:ajenti.softraid'
18 | 


--------------------------------------------------------------------------------
/plugins/softraid/requirements.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/plugins/softraid/requirements.txt


--------------------------------------------------------------------------------
/plugins/softraid/resources/js/module.es:
--------------------------------------------------------------------------------
1 | // the module should depend on 'core' to use the stock services & components
2 | angular.module('ajenti.softraid', [
3 |     'core',
4 | ]);
5 | 
6 | 


--------------------------------------------------------------------------------
/plugins/softraid/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.softraid').config(($routeProvider) => {
2 |     $routeProvider.when('/view/softraid', {
3 |         templateUrl: '/softraid:resources/partial/index.html',
4 |         controller: 'SoftraidIndexController',
5 |     });
6 | });
7 | 


--------------------------------------------------------------------------------
/plugins/supervisor/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .api import *
3 | from .aug import *
4 | from .main import *
5 | 


--------------------------------------------------------------------------------
/plugins/supervisor/main.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | from aj.plugins.core.api.sidebar import SidebarItemProvider
 3 | 
 4 | 
 5 | @component(SidebarItemProvider)
 6 | class ItemProvider(SidebarItemProvider):
 7 |     def __init__(self, context):
 8 |         self.context = context
 9 | 
10 |     def provide(self):
11 |         return [
12 |             {
13 |                 'attach': 'category:software',
14 |                 'id': 'supervisor',
15 |                 'name': _('Supervisor'),
16 |                 'icon': 'play',
17 |                 'url': '/view/supervisor',
18 |                 'children': [],
19 |             }
20 |         ]
21 | 


--------------------------------------------------------------------------------
/plugins/supervisor/requirements.txt:
--------------------------------------------------------------------------------
1 | aj
2 | ajenti.plugin.core
3 | ajenti.plugin.augeas
4 | ajenti.plugin.services
5 | ajenti.plugin.passwd
6 | pytz


--------------------------------------------------------------------------------
/plugins/supervisor/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.supervisor', [
2 |     'core',
3 |     'ajenti.augeas',
4 |     'ajenti.services',
5 |     'ajenti.passwd',
6 | ]);
7 | 


--------------------------------------------------------------------------------
/plugins/supervisor/resources/js/routing.es:
--------------------------------------------------------------------------------
1 | angular.module('core').config($routeProvider =>
2 |     $routeProvider.when('/view/supervisor', {
3 |         templateUrl: '/supervisor:resources/partial/index.html',
4 |         controller: 'SupervisorIndexController'
5 |     })
6 | );
7 | 


--------------------------------------------------------------------------------
/plugins/terminal/README.md:
--------------------------------------------------------------------------------
1 | # Terminal plugin
2 | 
3 | Terminal emulator for ajenti.
4 | 


--------------------------------------------------------------------------------
/plugins/terminal/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .main import *
3 | from .views import *
4 | 
5 | 
6 | def init(plugin_manager):
7 |     if 'dashboard' in plugin_manager and plugin_manager['dashboard']['imported']:
8 |         from .widget import ScriptWidget
9 | 


--------------------------------------------------------------------------------
/plugins/terminal/bower.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "plugin",
3 |   "private": true,
4 |   "dependencies": {
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/plugins/terminal/requirements.txt:
--------------------------------------------------------------------------------
1 | pyte==0.8.0 # Use dicts instead of lists 
2 | Pillow
3 | aj
4 | ajenti.plugin.core
5 | ajenti.plugin.ace
6 | 


--------------------------------------------------------------------------------
/plugins/terminal/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.terminal', [
2 |     'core',
3 |     'ajenti.ace'
4 | ]);
5 | 


--------------------------------------------------------------------------------
/plugins/terminal/resources/js/routing.es:
--------------------------------------------------------------------------------
 1 | angular.module('core').config(($routeProvider) => {
 2 |     $routeProvider.when('/view/terminal', {
 3 |         templateUrl: '/terminal:resources/partial/index.html',
 4 |         controller: 'TerminalIndexController'
 5 |     });
 6 | 
 7 |     return $routeProvider.when('/view/terminal/:id', {
 8 |         templateUrl: '/terminal:resources/partial/view.html',
 9 |         controller: 'TerminalViewController'
10 |     });
11 | });
12 | 


--------------------------------------------------------------------------------
/plugins/terminal/resources/partial/widget.html:
--------------------------------------------------------------------------------
 1 | <div ng:controller="ScriptWidgetController">
 2 |     <div class="widget-header" translate>
 3 |         Script
 4 |     </div>
 5 |     <div class="pull-right">
 6 |         <a ng:click="run(widget.config)" class="btn btn-default">
 7 |             <i class="fa fa-play"></i> <span translate>Run</span>
 8 |         </a>
 9 |     </div>
10 |     <div class="widget-value">
11 |         {{widget.config.name}}
12 |     </div>
13 | </div>
14 | 


--------------------------------------------------------------------------------
/plugins/terminal/widget.py:
--------------------------------------------------------------------------------
 1 | from jadi import component
 2 | from aj.plugins.dashboard.api import Widget
 3 | 
 4 | 
 5 | @component(Widget)
 6 | class ScriptWidget(Widget):
 7 |     id = 'script'
 8 |     name = _('Script')
 9 |     template = '/terminal:resources/partial/widget.html'
10 |     config_template = '/terminal:resources/partial/widget.config.html'
11 | 
12 |     def __init__(self, context):
13 |         Widget.__init__(self, context)
14 | 
15 |     def get_value(self, config):
16 |         pass
17 | 


--------------------------------------------------------------------------------
/plugins/traffic/README.md:
--------------------------------------------------------------------------------
1 | # Traffic plugin
2 | 
3 | Displays I/O stats for all network interfaces, basically use for the widget on the dashboard.
4 | 


--------------------------------------------------------------------------------
/plugins/traffic/__init__.py:
--------------------------------------------------------------------------------
1 | # pyflakes: disable-all
2 | from .views import *
3 | from .widget import *
4 | 


--------------------------------------------------------------------------------
/plugins/traffic/locale/en/LC_MESSAGES/app.po:
--------------------------------------------------------------------------------
 1 | msgid ""
 2 | msgstr ""
 3 | "Project-Id-Version: \n"
 4 | "Report-Msgid-Bugs-To: \n"
 5 | "POT-Creation-Date: 2015-09-18 15:51+0200\n"
 6 | "Content-Type: text/plain; charset=UTF-8\n"
 7 | "Content-Transfer-Encoding: 8bit\n"
 8 | 
 9 | #: plugins/traffic/resources/partial/widget.html:11
10 | #: plugins/traffic/resources/partial/widget.html:22
11 | msgid "/s"
12 | msgstr ""
13 | 
14 | #: plugins/traffic/resources/partial/widget.config.html:3
15 | msgid "Interface"
16 | msgstr ""
17 | 
18 | #: plugins/traffic/widget.py:11
19 | msgid "Traffic"
20 | msgstr ""
21 | 


--------------------------------------------------------------------------------
/plugins/traffic/plugin.yml:
--------------------------------------------------------------------------------
 1 | name: traffic
 2 | author: Ajenti project
 3 | email: e@ajenti.org
 4 | url: https://ajenti.org
 5 | version: '0.18'
 6 | title: 'Traffic Widget'
 7 | icon: exchange
 8 | dependencies:
 9 |     - !PluginDependency { plugin_name: core }
10 |     - !PluginDependency { plugin_name: dashboard }
11 | resources:
12 |     - 'resources/js/module.es'
13 |     - 'resources/js/controllers/widget.controller.es'
14 |     - 'resources/partial/widget.html'
15 |     - 'resources/partial/widget.config.html'
16 |     - 'ng:ajenti.traffic'
17 | 


--------------------------------------------------------------------------------
/plugins/traffic/requirements.txt:
--------------------------------------------------------------------------------
1 | upstart-new
2 | aj
3 | ajenti.plugin.core
4 | ajenti.plugin.dashboard
5 | 


--------------------------------------------------------------------------------
/plugins/traffic/resources/js/module.es:
--------------------------------------------------------------------------------
1 | angular.module('ajenti.traffic', [
2 |     'core',
3 | ]);
4 | 


--------------------------------------------------------------------------------
/plugins/traffic/resources/partial/widget.config.html:
--------------------------------------------------------------------------------
1 | <div ng:controller="TrafficWidgetConfigController">
2 |     <div>
3 |         <label translate>Interface</label>
4 |         <select ng:model="configuredWidget.config.interface" ng:options="interface for interface in interfaces" class="form-control"></select>
5 |     </div>
6 | </div>


--------------------------------------------------------------------------------
/pylama.ini:
--------------------------------------------------------------------------------
1 | [pylama]
2 | ignore=E501,D103,C901
3 | skip = apps/*/migrations/*,apps/events/*,apps/webapi/*
4 | 


--------------------------------------------------------------------------------
/requirements-rtd.txt:
--------------------------------------------------------------------------------
 1 | cookies
 2 | jadi>=1.0.0
 3 | passlib
 4 | python-catcher
 5 | python-daemon
 6 | python-exconsole>=0.1.5
 7 | requests>=0.12.0
 8 | reconfigure>=0.1.41
 9 | pyOpenSSL
10 | pyte
11 | pytz
12 | termcolor
13 | pyyaml
14 | 


--------------------------------------------------------------------------------
/scripts/ajenti.conf:
--------------------------------------------------------------------------------
 1 | # Fail2Ban basic filter for ajenti
 2 | #
 3 | # Author : Arnaud Kientz
 4 | 
 5 | [Definition]
 6 | 
 7 | failregex = ^.* WARNING : Failed login from \w+ at IP : <HOST>
 8 | 
 9 | ignoreregex = 
10 | 
11 | [Init]
12 | 
13 | maxlines = 1
14 | 


--------------------------------------------------------------------------------
/scripts/ci-setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | echo -en 'travis_fold:start:deps.apt\r'
3 |     echo Installing packages
4 |     sudo python3 -m pip install wheel setuptools
5 |     #sudo apt-get install -y python-lxml python-dbus python-lxml python-augeas
6 | echo -en 'travis_fold:end:deps.apt\r'
7 | 


--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
 1 | [bumpversion]
 2 | current_version = 2.2.10
 3 | commit = True
 4 | tag = True
 5 | 
 6 | [bumpversion:file:ajenti-core/aj/__init__.py]
 7 | search = __version__ = '{current_version}'
 8 | replace = __version__ = '{new_version}'
 9 | 
10 | [bumpversion:file:ajenti-core/setup.py]
11 | search = {current_version}
12 | replace = {new_version}
13 | 
14 | [bumpversion:file:ajenti-panel/setup.py]
15 | search = {current_version}
16 | replace = {new_version}
17 | 


--------------------------------------------------------------------------------
/tests-karma/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | coverage
3 | 
4 | 


--------------------------------------------------------------------------------
/tests-karma/test-main.coffee:
--------------------------------------------------------------------------------
1 | window.__ngModules = [
2 |   'core'
3 |   'ajenti.augeas'
4 | ]
5 | 


--------------------------------------------------------------------------------
/tests-karma/tests/core/pageTitle.service.coffee:
--------------------------------------------------------------------------------
 1 | describe 'pageTitle service', () ->
 2 |     it "sets", () ->
 3 |         inject ($rootScope, pageTitle) ->
 4 |             pageTitle.set('Test')
 5 |             $rootScope.$digest()
 6 |             expect($rootScope.pageTitle).to.equal('Test')
 7 | 
 8 |     it "sets from scope", () ->
 9 |         inject ($rootScope, pageTitle) ->
10 |             scope = $rootScope.$new()
11 |             scope.fx = () -> 'tes'
12 |             pageTitle.set('fx() + "t"', scope)
13 |             $rootScope.$digest()
14 |             expect($rootScope.pageTitle).to.equal('test')
15 | 


--------------------------------------------------------------------------------
/tests-karma/tests/core/push.service.coffee:
--------------------------------------------------------------------------------
1 | describe 'push service', () ->
2 |     it 'works', () ->
3 |         inject ($rootScope, push) ->
4 |             @sinon.spy($rootScope, '$broadcast')
5 |             msg = {plugin: 'test', message: {}}
6 |             $rootScope.$broadcast 'socket:push', msg
7 |             $rootScope.$digest()
8 |             $rootScope.$broadcast.should.have.been.calledWith('push:test', msg.message)
9 | 


--------------------------------------------------------------------------------
/tests-karma/tests/core/socket.service.coffee:
--------------------------------------------------------------------------------
1 | describe 'socket service', () ->
2 |     it 'sends', () ->
3 |         inject ($rootScope, socket) ->
4 |             @sinon.stub(socket.socket, 'emit')
5 |             data = {}
6 |             socket.send('test', data)
7 |             $rootScope.$digest()
8 |             socket.socket.emit.should.have.been.calledWith('message', {plugin: 'test', data: data})
9 | 


--------------------------------------------------------------------------------
/tests-pytest/tests/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ajenti/ajenti/33f5fd63af07406b9752d99ac65788ecde70c916/tests-pytest/tests/__init__.py


--------------------------------------------------------------------------------