Skip to content

Commit

Permalink
Version 18.40
Browse files Browse the repository at this point in the history
  • Loading branch information
Ilia Rostovtsev committed Mar 21, 2017
1 parent fa0f24a commit 25331c8
Show file tree
Hide file tree
Showing 108 changed files with 1,085 additions and 374 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Before posting an issue, please search through README.md and closed/opened issues to make sure that the answer to your questions hasn't been answered/discussed already.

Please make sure that you have latest theme (18.32) and Webmin (1.830) versions installed.
Please make sure that you have latest theme (18.40) and Webmin (1.831) versions installed.

Provide the following information:
* What is your server-side OS and its version?
Expand Down
250 changes: 131 additions & 119 deletions CHANGELOG.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

77 changes: 39 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
##Contents
## Contents
* [Changelog](https://github.com/qooob/authentic-theme/blob/master/CHANGELOG.md)
* [Download (18.32)![](https://rostovtsev.ru/pub/media/icons/download-23x14.png)](https://github.com/qooob/authentic-theme/releases/download/18.32/authentic-theme-18.32.wbt.gz)
* [Download (18.40)![](https://rostovtsev.ru/pub/media/icons/download-23x14.png)](https://github.com/qooob/authentic-theme/releases/download/18.40/authentic-theme-18.40.wbt.gz)
* [About](#about)
* [FAQ](#faq)
* [Troubleshoot](#troubleshoot)
* [Development](#development)
* [Donation![](https://rostovtsev.ru/pub/media/icons/heart-23x15.png)](https://github.com/qooob/authentic-theme#license)
* [License](https://github.com/qooob/authentic-theme/blob/master/LICENSE)

##About
## About
**Authentic** is [Webmin/](https://github.com/webmin/webmin)[Usermin/](https://github.com/webmin/usermin)[Virtualmin/](https://www.virtualmin.com/)[Cloudmin](http://webmin.com/cloudmin.html) theme based on [Bootstrap](https://github.com/twbs/bootstrap) and [Font Awesome](https://github.com/FortAwesome/Font-Awesome) that is made with _love_. It uses [CodeMirror](http://codemirror.net/) to highlight config files and show line numbers, when editing manually, [CKEditor](http://ckeditor.com/) to compose comprehensive HTML based messages and [DataTables](http://www.datatables.net/) to add advanced interaction controls to modules' tables. Theme runs using latest releases of dependent software (mentioned above), supporting all in-built modules (even ancient ones) and third-party modules, including [ConfigServer Security & Firewall](http://configserver.com/cp/csf.html).

[![ScreenShot](https://raw.githubusercontent.com/qooob/authentic-theme/master/images/screenshot.png)](http://youtu.be/f_oy3qX2GXo)
![](https://rostovtsev.ru/pub/media/screenshots/screenshot-pallets-1710.png)
![](https://rostovtsev.ru/pub/media/screenshots/screenshot-content-page-18.40.png)
![](https://rostovtsev.ru/pub/media/screenshots/screenshot-content-page-18.40-final.png)

####Principles
#### Principles
* Make the theme fully support all _Webmin/Usermin_ modules
* Be as beautiful, fast, light and easy to use as possible
* Be compatible with all platforms and support mobile devices

####Features
#### Features
* Configurable theme options using _Webmin_ UI
* Top-down terminal port
* Favorites feature for any content page
Expand All @@ -33,73 +33,73 @@
* Extensive list of customizable theme options, with ability to embed user logos, styles and scripts
* Extended support for _File Manager_ and _ConfigServer Security & Firewall_ modules

####Requirements
#### Requirements
* Webmin _1.830+_ (required), Usermin _1.700+_ (optional), Virtualmin _5.00+_ (optional), Cloudmin _9.00+_ (optional)

####Recommended modules
#### Recommended modules
* Installed _Net::SSLeay_ module, to make automatic update notifications work

####Browser support
#### Browser support

######![](https://rostovtsev.ru/pub/media/icons/chrome-16.png) Chrome 24+
###### ![](https://rostovtsev.ru/pub/media/icons/chrome-16.png) Chrome 24+

######![](https://rostovtsev.ru/pub/media/icons/firefox-16.png) Firefox 5+
###### ![](https://rostovtsev.ru/pub/media/icons/firefox-16.png) Firefox 5+

######![](https://rostovtsev.ru/pub/media/icons/opera-16.png) Opera 18+
###### ![](https://rostovtsev.ru/pub/media/icons/opera-16.png) Opera 18+

######![](https://rostovtsev.ru/pub/media/icons/safari-16.png) Safari 6+
###### ![](https://rostovtsev.ru/pub/media/icons/safari-16.png) Safari 6+

######![](https://rostovtsev.ru/pub/media/icons/edge-16.png) Edge 20+
###### ![](https://rostovtsev.ru/pub/media/icons/edge-16.png) Edge 20+

######![](https://rostovtsev.ru/pub/media/icons/internet-explorer-16.png) IE 10+
###### ![](https://rostovtsev.ru/pub/media/icons/internet-explorer-16.png) IE 10+


###FAQ
####How to install _Authentic_ Theme?
### FAQ
#### How to install _Authentic_ Theme?

#####Webmin
##### Webmin

To install _Autentic_ Theme from repository, just `clone` it into your wherever _Webmin_ binary folder _(libexec)_ is. After that, you must rename `authentic-theme-master` directory to `authentic-theme` to make the theme work properly. Besides, you could just [download](https://github.com/qooob/authentic-theme/releases/download/18.32/authentic-theme-18.32.wbt.gz) the theme directly and install it using _Webmin_:
To install _Autentic_ Theme from repository, just `clone` it into your wherever _Webmin_ binary folder _(libexec)_ is. After that, you must rename `authentic-theme-master` directory to `authentic-theme` to make the theme work properly. Besides, you could just [download](https://github.com/qooob/authentic-theme/releases/download/18.40/authentic-theme-18.40.wbt.gz) the theme directly and install it using _Webmin_:

`Webmin->Webmin Configuration->Webmin Themes->Install themes->From uploaded file`

#####Usermin
##### Usermin
Use the same procedure as described above to install the theme for _Usermin_:

`Webmin->Usermin Configuration->Usermin Themes->Install themes->From uploaded file`


#####Virtualmin/Cloudmin
##### Virtualmin/Cloudmin
There is no need to take any additional actions. In case _Virtualmin_ or/and _Cloudmin_ modules are installed, it will be automatically detected and supported.

####How to update _Authentic_ Theme manually?
#### How to update _Authentic_ Theme manually?
Theme can be easily updated manually. Please make sure that you have `git` command installed on your system. Using command line, do the following:
1. Go to _Webmin_ (`cd /usr/libexec/webmin`) or _Usermin_ (`cd /usr/libexec/usermin`) directory __*__
2. Move current version of the theme to the temporary directory (`mv authentic-theme /tmp`)
3. Get latest version of the theme from the repository (`git clone https://github.com/qooob/authentic-theme.git`)
4. Restart _Webmin_/_Usermin_ after update
<br>__*__ *Binary folder might be different from `libexec` depending on the system. Run `whereis webmin` to figure out the correct path.*

####How to update _Authentic_ Theme automatically?
#### How to update _Authentic_ Theme automatically?
The theme has inbuilt feature to notify an administrative user to install updates. To enable this feature, turn `Check for Authentic Theme updates` on in theme settings.

####How do I customize the theme?
#### How do I customize the theme?
Theme has configurable options, that are located in `Webmin->Webmin Configuration->Webmin Themes`. There as well, you can upload custom _logos_ and code custom _styles.css_, _scripts.js_ and _scripts.pm_.

####How do I execute shell command using search field?
#### How do I execute shell command using search field?
Type `!` in search, followed by your command. Example: `! ls -lsaZ /root`. It's required to have _Command Shell_ module available.

####How do I make the theme load faster?
#### How do I make the theme load faster?
_Webmin_ has in-built option to compress static files. It's possible to enable this feature by going to `Webmin->Webmin Configuration->Web Server Options` and setting _Gzip compress static files_ option to _Use pre-compressed file and compress dynamically_.

Another solution would be to install used by default [_Roboto Font_](http://www.fontsquirrel.com/fonts/download/roboto "wget http://www.fontsquirrel.com/fonts/download/roboto -O roboto.zip") locally to prevent extra load from embedding it and later setting it in the theme's settings accordingly.

###Extended support for bundled/third-party modules
### Extended support for bundled/third-party modules

####_File Manager_
#### _File Manager_
Theme has great support for this module, by adding numerous mast-have features. Most noticeable are listing without page reload (using XHR requests) and full keyboard support, which enables you to use _File Manager_ just as normal desktop browser.

#####List of keyboard shortcuts
##### List of keyboard shortcuts

* `alphanumeric typing` - quick search
* `up/down, home/end` - cursor position
Expand All @@ -113,7 +113,7 @@ Theme has great support for this module, by adding numerous mast-have features.
* `+` - select all
* `-` - deselect all
* `F2` - change permissions
* `Shift+F2` - Change attributes
* `Shift+F2` - change attributes
* `F3` - change ownership
* `Shift+F3` - change security context
* `F4` - edit where possible
Expand All @@ -134,11 +134,11 @@ Theme has great support for this module, by adding numerous mast-have features.
* `Ctrl+Enter/Ctrl+Shift+Enter` - save/save and close currently edited file
* `Theme reload hotkey` - reload current directory

####_ConfigServer Security & Firewall_
#### _ConfigServer Security & Firewall_
Theme only re-renders this module and adds support for code highlight, when editing files manually.


###Troubleshoot
### Troubleshoot
1. Automatic updates notification feature doesn't work or `Can't locate Net/SSLeay.pm in ..)`<br>
This happens because _Webmin_ is trying to open a link and download the theme using _https_ protocol. `Net::SSLeay` - is high level functions for accessing web servers (by using HTTP/HTTPS). You can install it using _Perl_ module in _Webmin_ or using _command-line_. Package name is `perl-Net-SSLeay`. Besides, in case you have mentioned module installed and automatic update feature still doesn't work, you would have to also install either `LWP::Protocol::https` or `Bundle::LWP` using _CPAN_ or by package name `perl-LWP-Protocol-https` or `perl-libwww-perl` respectively;
2. Strange `Â` character is appeared in text-editor mode or other encoding issues<br>
Expand All @@ -154,27 +154,28 @@ Theme only re-renders this module and adds support for code highlight, when edit
7. Blinking navigation menu or overall jerky theme's rendering<br>
This could happen to GPU driver misconfiguration on your OS. For more details refer to [#453](https://github.com/qooob/authentic-theme/issues/453)

###Development
####Lead developer
### Development
#### Lead developer
* [Ilia Rostovtsev](https://rostovtsev.ru)[![](https://rostovtsev.ru/pub/media/icons/stackoverflow-23x15.png)](http://stackoverflow.com/users/1455661/ilia-rostovtsev)


###Contributions
### Contributions

####Translations
#### Translations
* [Richard van Laak](https://github.com/Rvanlaak) (Dutch)
* [Kjetil Elde](https://github.com/w00p) (Norwegian)
* [Michał Pawlik](https://github.com/majk-p) (Polish)
* [Michael Keck](https://github.com/mkkeck) (German)
* [Silviu-Ionut Radu](https://github.com/sealview) (Romanian)
* [Ilia Rostovtsev](https://github.com/qooob) (Russian)
* [David Canalias](https://github.com/diathesaron) (Catalan)
* [Sopor Spr](https://github.com/Sopor-) (Swedish)
* [7stars](https://github.com/7starsone) (Spanish, French, Portuguese)
* [dreista](https://github.com/Dreista) (Chinese)
* [jlndk](https://github.com/jlndk) (Danish)
* [stuchy3](https://github.com/stuchy3) (Czech)
* [David Canalias](https://github.com/diathesaron) (Catalan)

###Donation
### Donation
You can make a difference. Donations show appreciation. Your donations would help me to pay my bills and _excite future development_.

[![](https://rostovtsev.ru/pub/media/icons/yandex-175x89.png)](http://rostovtsev.ru/pub/api/donation/yandex.html)
Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
18.32
18.40
46 changes: 36 additions & 10 deletions authentic-init.pm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Authentic Theme 18.32 (https://github.com/qooob/authentic-theme)
# Authentic Theme 18.40 (https://github.com/qooob/authentic-theme)
# Copyright 2014-2017 Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE)
#
Expand Down Expand Up @@ -27,9 +27,41 @@ sub settings
}
}
sub settings_filter
{
my (%in_data) = @_;
delete @in_data{ grep( !/^config_portable_|^settings_/, keys %in_data ) };
delete @in_data{ grep( !m/^\w*$/, keys %in_data ) };
for ( values %in_data ) { s/(.*)/'$1';/ }
for ( values %in_data ) { s/\$|`*//g }
for ( values %in_data ) { s/<<//g }
for ( values %in_data ) { s/"/'/g }
for ( values %in_data ) { s/\/\//&#47;&#47;/g }
for ( values %in_data ) { s/'true'/true/g }
for ( values %in_data ) { s/'false'/false/g }
for ( values %in_data ) { s/'1'/1/g }
for ( values %in_data ) { s/'0'/0/g }
for ( values %in_data ) {
s/
\G
(
(?: ^ [^']* ' | (?!^) )
(?: [^'\\]+ | \\. )*
)
'
(?! [^']* \z )
/
$1 . "\\'"
/xseg;
}
return %in_data;
}
sub settings_default
{
my %c;
$c{'settings_window_autoscroll'} = 'true';
$c{'settings_font_family'} = '0';
$c{'settings_navigation_color'} = 'blue';
$c{'settings_background_color'} = 'gainsboro';
Expand Down Expand Up @@ -363,17 +395,11 @@ sub embed_css_content

sub embed_css_content_palette
{
if (
( length $__settings{'settings_background_color'}
&& $__settings{'settings_background_color'} ne 'undefined'
&& $__settings{'settings_background_color'} ne 'gainsboro' )
|| theme_night_mode() )
{
if ( theme_night_mode() ) {
print '<link href="'
. $gconfig{'webprefix'}
. '/unauthenticated/css/palettes/'
. ( theme_night_mode() ? 'nightrider' : lc( $__settings{'settings_background_color'} ) ) . '.'
. ( theme_mode() eq 'debug' ? 'src' : 'min' ) . '.css?'
. '/unauthenticated/css/palettes/nightrider.'
. ( theme_mode() eq 'debug' ? 'src' : 'min' ) . '.css?'
. theme_version()
. '" rel="stylesheet" data-palette>' . "\n";
}
Expand Down
44 changes: 10 additions & 34 deletions authentic-lib.pm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Authentic Theme 18.32 (https://github.com/qooob/authentic-theme)
# Authentic Theme 18.40 (https://github.com/qooob/authentic-theme)
# Copyright 2014-2017 Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE)
#
Expand Down Expand Up @@ -1479,13 +1479,11 @@ sub csf_mod
. theme_version()
. '" rel="stylesheet">' . "\n";

if ( length $__settings{'settings_background_color'}
&& $__settings{'settings_background_color'} ne 'gainsboro' )
if ( theme_night_mode() )
{
print $fh '<link href="'
. $gconfig{'webprefix'}
. '/unauthenticated/css/palettes/'
. lc( $__settings{'settings_background_color'} ) . '.'
. '/unauthenticated/css/palettes/nightrider.'
. $ext . '.css?'
. theme_version()
. '" rel="stylesheet">' . "\n";
Expand Down Expand Up @@ -2119,8 +2117,6 @@ sub _settings
'true',
'settings_right_reload',
'true',
'settings_window_autoscroll',
'true',
'settings_global_passgen_format',
'12|a-z,A-Z,0-9,#',
'__',
Expand Down Expand Up @@ -2778,30 +2774,10 @@ sub _settings
__config_dir_available();

if ( $t eq 'save' ) {

!foreign_available("webmin")
&& error( $Atext{'theme_error_access_not_root'} );

delete @in{ grep( !/^settings_/, keys %in ) };
for ( values %in ) { s/(.*)/'$1';/ }
for ( values %in ) { s/"/'/g }
for ( values %in ) { s/\/\//&#47;&#47;/g }
for ( values %in ) { s/'true'/true/g }
for ( values %in ) { s/'false'/false/g }
for ( values %in ) {
s/
\G
(
(?: ^ [^']* ' | (?!^) )
(?: [^'\\]+ | \\. )*
)
'
(?! [^']* \z )
/
$1 . "\\'"
/xseg;
}
write_file( $config_directory . "/authentic-theme/settings.js", \%in );
my %i = settings_filter(%in, $t);
write_file( $config_directory . "/authentic-theme/settings.js", \%i );
}
if ( $t eq 'restore' ) {

Expand Down Expand Up @@ -3400,7 +3376,7 @@ sub content
sub changelog()
{
my $changelog_data = ( read_file_contents( $root_directory . '/' . $current_theme . "/CHANGELOG.md" ) =~
/####Version(.*?)####Version/s )[0];
/#### Version(.*?)#### Version/s )[0];
my @changelog_version = split /\n/, $changelog_data;

$changelog_data =~ s/^[^\n]*\n/\n/s;
Expand Down Expand Up @@ -3512,14 +3488,14 @@ sub manage_theme_config
my %atconfig;

if ( $action eq 'save' ) {
delete @in{ grep( !/^config_portable_|^settings_/, keys %in ) };
&write_file( get_user_home() . "/.atconfig", \%in );
my %i = settings_filter(%in);
write_file( get_user_home() . "/.atconfig", \%i );
}
elsif ( $action eq 'load' ) {
my $atconfig_file = ( get_user_home() . "/.atconfig" );
if ( -f $atconfig_file ) {
$atconfig = &read_file_contents($atconfig_file);
%atconfig = $atconfig =~ /(.*?)=(.*)/g;
my %atconfig = ( settings( get_user_home() . "/.atconfig" ) );

delete @atconfig{ grep( !/^config_portable_/, keys %atconfig ) };
get_json( \%atconfig );
}
Expand Down
7 changes: 4 additions & 3 deletions authentic.pm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Authentic Theme 18.32 (https://github.com/qooob/authentic-theme)
# Authentic Theme 18.40 (https://github.com/qooob/authentic-theme)
# Copyright 2014-2017 Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE)
#
Expand Down Expand Up @@ -61,8 +61,9 @@ sub theme_header
. '" data-module="'
. &get_module_name()
. '" data-ovo="1"'
: undef
) . '>' . "\n";
: undef )
. ''
. ( index( get_env('request_uri'), '/config.cgi?' ) gt "-1" ? ' id="configCGI"' : '' ) . '>' . "\n";

if ( @_ > 1 && $_[1] ne 'stripped' ) {
print '<div class="container-fluid col-lg-10 col-lg-offset-1">' . "\n";
Expand Down
2 changes: 1 addition & 1 deletion buttons.pm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Authentic Theme 18.32 (https://github.com/qooob/authentic-theme)
# Authentic Theme 18.40 (https://github.com/qooob/authentic-theme)
# Copyright 2014-2017 Ilia Rostovtsev <[email protected]>
# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE)
#
Expand Down
1 change: 0 additions & 1 deletion config
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@ framed=1
cs_table=feffff
cs_header=ffffff class='thead'
cs_link=376ebd

Loading

0 comments on commit 25331c8

Please sign in to comment.