diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..1fb1e1b5c --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,8 @@ +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.31) and Webmin (1.820) versions installed. + +Provide the following information: +* What is your server-side OS and its version? +* What is your client-side OS, browser and its versions? +* What are the steps to reproduce the issue diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..e1fdf38f2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,823 @@ +##Changelog + +####Version 18.31 (December 09, 2016) +Fixed bugs [#592](https://github.com/qooob/authentic-theme/pull/592) [#593](https://github.com/qooob/authentic-theme/pull/593) [#594](https://github.com/qooob/authentic-theme/pull/594) [#597](https://github.com/qooob/authentic-theme/pull/597) [#599](https://github.com/qooob/authentic-theme/pull/599) [#600](https://github.com/qooob/authentic-theme/pull/600) [#601](https://github.com/qooob/authentic-theme/pull/601) [#602](https://github.com/qooob/authentic-theme/pull/602) + +####Version 18.30 (December 07, 2016)     :star2: :star2: :star2: :star2: :star2: +* Increased theme's speed and stability +* Added new drop-down _Command Shell_ port. There is no need in going to _Shell_ module to use console anymore. By default, hitting `Alt+K` anywhere in the theme will bring its accessibility immediately [#566](https://github.com/qooob/authentic-theme/issues/566) +* Added new functionality that replaces old pop-up windows with contemporary modals for file-chooser and other familiar operations [#552](https://github.com/qooob/authentic-theme/issues/552) +* Added navigation link for the servers with installed [Netdata](https://github.com/firehol/netdata) real-time monitoring tool +* Added _Dashboard_ and _Favorites_ tabs to the _Side Slider_. Hotkeys for switching tabs are available. Check theme _Side slider options_ for more details +* Added ability to change fonts in theme settings. This feature will let you as well use local _system-default_ fonts +* Added ability to disable _Virtualmin/Cloudmin_ drop-down's symbolic icons [#569](https://github.com/qooob/authentic-theme/issues/569) +* Added ability to store local configs on the server [#488](https://github.com/qooob/authentic-theme/issues/488) +* Added support for multiple hosts when using browser's storage [#523](https://github.com/qooob/authentic-theme/issues/523) +* Added support for displaying very long log files smoothly +* Added support for PAM authentication [#544](https://github.com/qooob/authentic-theme/issues/544) [#580](https://github.com/qooob/authentic-theme/issues/580) +* Added support for _SELinux_ and file _attributes_ in _File Manager_. It can be enabled in module's config (requires Webmin 1.830+) [#565](https://github.com/qooob/authentic-theme/issues/565) [#590](https://github.com/qooob/authentic-theme/issues/590) +* Added tree-view drop-down for navigation breadcrumbs in _File Manager_ [#442](https://github.com/qooob/authentic-theme/issues/442) +* Added support for overwriting files upon extraction in _File Manager_ [#589](https://github.com/qooob/authentic-theme/issues/589) +* Added ability to select/copy any text from the table to clipboard in _File Manager_ [#591](https://github.com/qooob/authentic-theme/issues/591) +* Fixed the logic of selecting/accessing objects in modules for list (icons) mode. For selecting use click/right-click; for accessing double-click [#575](https://github.com/qooob/authentic-theme/issues/575) +* Fixed missed tag at core function. Thanks to _Michael Varian_ [#576](https://github.com/qooob/authentic-theme/pull/576) +* Fixed dozens of unreported bugs +* Fixed bugs [#394](https://github.com/qooob/authentic-theme/issues/394) [#571](https://github.com/qooob/authentic-theme/issues/571) [#582](https://github.com/qooob/authentic-theme/issues/582) [#583](https://github.com/qooob/authentic-theme/issues/583) [#587](https://github.com/qooob/authentic-theme/issues/587) [#43304](https://www.virtualmin.com/node/43304) [#44156](https://www.virtualmin.com/node/44156) + +####Version 18.20 (October 29, 2016) +* Upgraded dependencies _jQuery 3.0_, latest _Bootstrap_, _DataTables_, _CodeMirror_ and other +* Optimized dependencies load [#534](https://github.com/qooob/authentic-theme/issues/534) +* Added support for _ConfigServer Security & Firewall_ v.9.20+ [#547](https://github.com/qooob/authentic-theme/issues/547) +* Added ability to disable top progress bar and its loader +* Enhanced display of _Virtualmin_ select [#466](https://github.com/qooob/authentic-theme/issues/466) +* Fixed bugs [#509](https://github.com/qooob/authentic-theme/issues/509) [#510](https://github.com/qooob/authentic-theme/issues/510) [#535](https://github.com/qooob/authentic-theme/issues/535) [#536](https://github.com/qooob/authentic-theme/issues/536) [#540](https://github.com/qooob/authentic-theme/issues/540) [#541](https://github.com/qooob/authentic-theme/issues/541) [#543](https://github.com/qooob/authentic-theme/issues/543) [#544](https://github.com/qooob/authentic-theme/issues/544) [#546](https://github.com/qooob/authentic-theme/issues/546) [#547](https://github.com/qooob/authentic-theme/issues/547) [#551](https://github.com/qooob/authentic-theme/issues/551) [#553](https://github.com/qooob/authentic-theme/issues/553) [#554](https://github.com/qooob/authentic-theme/issues/554) [#556](https://github.com/qooob/authentic-theme/issues/556) [#559](https://github.com/qooob/authentic-theme/issues/559) [#561](https://github.com/qooob/authentic-theme/issues/561) [#564](https://github.com/qooob/authentic-theme/issues/564) [#42093](https://www.virtualmin.com/node/42093) [#43096](https://www.virtualmin.com/node/43096) [#43158](https://www.virtualmin.com/node/43158) + +####Version 18.10 (August 06, 2016) +* Fixed bug [#527](https://github.com/qooob/authentic-theme/issues/527) + +####Version 18.08 (August 05, 2016) +* Added ability to embed custom _Perl_ scripts to be able to run arbitrary server-side code that survives updates. It can be edited in _Theme Extensions_ [#525](https://github.com/qooob/authentic-theme/issues/525) +* Fixed bug [#524](https://github.com/qooob/authentic-theme/issues/524) + +####Version 18.07 (August 04, 2016) +* Fixed bugs [#521](https://github.com/qooob/authentic-theme/issues/521) [#522](https://github.com/qooob/authentic-theme/issues/522) [#40515](https://www.virtualmin.com/node/40515) + +####Version 18.06 (August 01, 2016) +* Fixed bugs [#41530](https://www.virtualmin.com/node/41530) [#520](https://github.com/qooob/authentic-theme/pull/520) + +####Version 18.05 (July 29, 2016) +* Fixed bugs [#516](https://github.com/qooob/authentic-theme/issues/516) [#517](https://github.com/qooob/authentic-theme/issues/517) [#518](https://github.com/qooob/authentic-theme/issues/518) [#519](https://github.com/qooob/authentic-theme/issues/519) + +####Version 18.04 (July 23, 2016) +* Fixed bugs [#394](https://github.com/qooob/authentic-theme/issues/394) [#503](https://github.com/qooob/authentic-theme/issues/503) [#506](https://github.com/qooob/authentic-theme/issues/506) [#507](https://github.com/qooob/authentic-theme/issues/507) [#513](https://github.com/qooob/authentic-theme/issues/513) [#514](https://github.com/qooob/authentic-theme/issues/514) [#515](https://github.com/qooob/authentic-theme/issues/515) + +####Version 18.03 (June 18, 2016) +* Added _Password Generator_ feature for pages that require it. Password length and characters used can be set in theme settings [#492](https://github.com/qooob/authentic-theme/issues/492) +* Fixed bugs [#495](https://github.com/qooob/authentic-theme/issues/495) [#496](https://github.com/qooob/authentic-theme/issues/496) +* Fixed other _Webmin/Usermin_ related bugs + +####Version 18.02 (June 10, 2016) +* Fixed bugs [#470](https://github.com/qooob/authentic-theme/issues/470) [#487](https://github.com/qooob/authentic-theme/issues/487) +* Added ability to donate using _[Bitcoin](https://github.com/qooob/authentic-theme#donation)_ and _[Yandex Money](https://github.com/qooob/authentic-theme#donation)_ + +####Version 18.01 (June 09, 2016) +* Improved _UI_ of _ConfigServer Security & Firewall_ (in particular, configuration page and server outputs) +* Added ability to extract `.rpm` and `.deb` files in _File Manager_ (needed dependencies for `.rpm`: _rpm2cpio_ and _cpio_; for `.deb`: _dpkg_) +* Added ability to have user-specific tabs in _File Manager_ [#478](https://github.com/qooob/authentic-theme/issues/478) +* Added ability to open correspondent module, when clicking on charts on _System Information_ page [#480](https://github.com/qooob/authentic-theme/issues/480) +* Fixed bugs [#320](https://github.com/qooob/authentic-theme/issues/320) [#445](https://github.com/qooob/authentic-theme/issues/445) [#452](https://github.com/qooob/authentic-theme/issues/452) [#485](https://github.com/qooob/authentic-theme/issues/485) [#39576](https://www.virtualmin.com/node/39576) [#39789](https://www.virtualmin.com/node/39789) [#40686](https://www.virtualmin.com/node/40686) [#40936](https://www.virtualmin.com/node/40936) [#40988](https://www.virtualmin.com/node/40988) +* Fixed dozens of other bugs + +####Version 18.00 (May 26, 2016) :star2: +* Fixed possible security issue and removed _Security Alerts_ as they become the part of _Webmin Core_ in the near future [#467](https://github.com/qooob/authentic-theme/issues/467) +* Improved _UI_ overall +* Reworked and empowered _File Manager_ functionality: + * Increased speed load for all processes + * Added back an option to _Calculate size on spacebar_ (off by default) + * Added use of multiple, draggable tabs. New _Open in new tab_ option in _context menu_. Ability to load previously used tabs on the first load can be setup in module's options (on by default). Hotkeys are also supported for tab: + * `Ctrl+space` - New tab + * `Ctrl+Shift+space` - Close current tab + * `Ctrl+left/right` - Change tabs + * `Ctrl+1..9` - Switch to the tab number + * Added _find/replace_ functionality in search for files. It is possible now to find given string in files and replace it + * Fixed ability _sort by size_ folders/files, after _Calculate selected size_ was applied. Added a hotkey to quickly get the size of selected: + * `Ctrl+S` - Calculate selected size + * Extended notifications with proper server-response processing. Notifications now can be setup in module's options to display messages, either _All_ (default), _Informations, warnings and errors_ or _Warnings and Errors_ only. + * Extraction now supports multiple files and new formats `.7z, .bz2, .gz, .gzip, .rar, .xz` (in case needed dependencies installed) + * Background operations for compress (However, it will work for any other operation but for now, it will not provide user-friendly message after process completes on the different folder from where it was initiated) + * Fixed bug when _Change Permissions_ worked correctly only for the first operation (until reload) +* Improved client-side code performance by lightening, separation and optimization: + * Each window will only load needed dependencies + * Color palettes are now loaded on demand from separate file + * Used only needed set of icons + * Removed JavaScript _checkboxes/radios_ in favour of using pure CSS3 (great speed increase on large tables) +* Improved submit buttons. Type detection with adding icons, grouping and coloring. After submission, spinner appears and button becomes inactive to prevent accidental resubmission +* Added an option to disable to fit database table content into screen height on _MySQL/PostgreSQL_ modules. By default no scroll bars will be shown +* Fixed bugs [#422](https://github.com/qooob/authentic-theme/issues/422) [#433](https://github.com/qooob/authentic-theme/issues/433) [#455](https://github.com/qooob/authentic-theme/issues/455) [#457](https://github.com/qooob/authentic-theme/issues/457) [#460](https://github.com/qooob/authentic-theme/issues/460) [#461](https://github.com/qooob/authentic-theme/issues/461) [#462](https://github.com/qooob/authentic-theme/issues/462) [#465](https://github.com/qooob/authentic-theme/issues/465) [#40767](https://www.virtualmin.com/node/40767) [#40686](https://www.virtualmin.com/node/40686) +* Fixed dozens of other bugs + +####Version 17.84 (April 15, 2016) +* Improved and enhanced _MySQL/PostgreSQL_ functionality: + * Added ability to use background calls on diffident kind of operations (you might want to stop using _phpMyAdmin_) + * Added ability to make sure that you are not going to leave the page unsaved after entering new data + * Resizeable table's header for long tables + * Action buttons put in groups and have dynamic text based on the selection + * Confirmation buttons added for previously straightforward delete actions +* Improved _File Manager_ will return user-friendly message upon creating new archive, in case zip command is not installed [#437](https://github.com/qooob/authentic-theme/issues/437) +* Fixed missing _force charset_ option +* Fixed refresh button on navigation menu to properly refresh content page +* Fixed bugs [#425](https://github.com/qooob/authentic-theme/issues/425) [#434](https://github.com/qooob/authentic-theme/issues/434) [#436](https://github.com/qooob/authentic-theme/issues/436) [#438](https://github.com/qooob/authentic-theme/issues/438) [#439](https://github.com/qooob/authentic-theme/issues/439) [#440](https://github.com/qooob/authentic-theme/issues/440) + +####Version 17.83 (April 11, 2016) +* Fixed bugs [#432](https://github.com/qooob/authentic-theme/issues/432) [#433](https://github.com/qooob/authentic-theme/issues/433) + +####Version 17.82 (April 10, 2016) +* Enhanced support for _MySQL/PostgreSQL_ modules + +####Version 17.81 (April 09, 2016) +* Improved support for the latest _ConfigServer Security & Firewall_ +* Fixed a bug [#40293](https://www.virtualmin.com/node/40293) + +####Version 17.80 (April 08, 2016) :star: +* Improved theme's speed, up to around _20%_, depending on the module, due to large server-side code optimisation +* Improved general _UI_ +* Improved _autocomplete_ links' processing +* Improved output of _System and Server Status_ to _System Information_ page +* Improved and enhanced file editor functionality: + * Find/search/replace/replace all/jump to line + * Auto close/match brackets + * Code fold + * Scroll-bar annotations + * Match-highlight on text selection + * Highlight of the current line + * Word autocompletion (hint), based on the words found in the current window (_Ctrl+Space_) +* Improved and enhanced _File Manager_ functionality: + * Switched to using _WebminCore_ for copying/moving files (Suggested by _Joe Cooper_) + * Pasting existing file/folder in a directory with the new name [#390](https://github.com/qooob/authentic-theme/issues/390) + * Prompt for copying/replacing existing folders/files from other directory [#401](https://github.com/qooob/authentic-theme/issues/401) + * Copying path to clipboard using _context menu_ [#408](https://github.com/qooob/authentic-theme/issues/408) + * Error message for moving directory into itself + * Improved bookmarks functionality and fixed usability for wheel users.
Bookmarks control no longer in settings [#347](https://github.com/qooob/authentic-theme/issues/347) [#389](https://github.com/qooob/authentic-theme/issues/389) + * Options control was ported away from theme's settings to the module's configuration page +* Added character set notification warning for _non UTF-8_ users [#416](https://github.com/qooob/authentic-theme/issues/416) +* Added ability to save config files, that are edited manually, without reloading the page. Script will also makes sure that you are not going to leave the page unsaved.
Hotkeys are supported - _Ctrl + Enter / Ctrl + ⇧ + Enter_ - Save/Save and close currently edited file +* Added ability to prematurely unveil the page by double-clicking on the content page +* Added support for _ConfigServer Security & Firewall_ 8.19+ +* Fixed bugs [#176](https://github.com/qooob/authentic-theme/issues/176) [#386](https://github.com/qooob/authentic-theme/issues/386) [#399](https://github.com/qooob/authentic-theme/issues/399) [#403](https://github.com/qooob/authentic-theme/issues/403) [#411](https://github.com/qooob/authentic-theme/issues/411) [#412](https://github.com/qooob/authentic-theme/issues/412) [#414](https://github.com/qooob/authentic-theme/issues/414) [#417](https://github.com/qooob/authentic-theme/issues/417) [#419](https://github.com/qooob/authentic-theme/issues/419) [#424](https://github.com/qooob/authentic-theme/issues/424) [#426](https://github.com/qooob/authentic-theme/issues/426) [#39272](https://www.virtualmin.com/node/39272) [#39722](https://www.virtualmin.com/node/39722) [#39958](https://www.virtualmin.com/node/39958) [#39974](https://www.virtualmin.com/node/39974) [#39977](https://www.virtualmin.com/node/39977) [#39999](https://www.virtualmin.com/node/39999) [#40066](https://www.virtualmin.com/node/40066) + +####Version 17.72 (February 21, 2016) +* Added ability to selectively disable in-built page rendering mechanism for refractory modules [#396](https://github.com/qooob/authentic-theme/issues/396) [#397](https://github.com/qooob/authentic-theme/issues/397) +* Changed update notifications are off by default for all. You could enable it manually, in case you wish to get updates aside from Webmin [#39717](https://www.virtualmin.com/node/39717) +* Added ticking time on _System Information_ page +* Fixed _Webmin/Usermin->Configuration->User Interface_ pages not to display deprecated options +* Fixed _Usermin_ categorize modules option feature +* Fixed unauthenticated logo preview upon first upload +* Fixed filters imposed in settings are being applied properly to login page +* Fixed bugs [#398](https://github.com/qooob/authentic-theme/issues/398) [#402](https://github.com/qooob/authentic-theme/issues/402) [#39752](https://www.virtualmin.com/node/39752) + +####Version 17.71 (February 17, 2016) +* Fixed bugs + +####Version 17.70 (February 16, 2016) +* Changed overall page rendering. Switched away from old page loading mechanism. All pages now are loding using quick load, without using content page loader. It will feel faster, nicer and smoother. Enjoy. + +####Version 17.65 (February 12, 2016) +* Added ability to setup manually _Easy Pie Charts_ width and scale length [#380](https://github.com/qooob/authentic-theme/issues/380) +* Fixed bug [#384](https://github.com/qooob/authentic-theme/issues/384) + +####Version 17.64 (February 10, 2016) +* Added _on-close_ prompt for _File Manager_ editor, in case file was edited but not saved +* Added for _File Manager_ in _context menu_ new _Download_ option for files +* Fixed _File Manager_ back button to _root_ folder error +* Fixed missing _Programs_ tab on _System Information_ page, in case _Virtualmin_ is installed +* Improved _File Manager_ right click _context menu_ behaviour and added trigger by keyboard, using _menu_ key +* Fixed bugs [#374](https://github.com/qooob/authentic-theme/issues/374) [#375](https://github.com/qooob/authentic-theme/issues/375) [#376](https://github.com/qooob/authentic-theme/issues/376) [#378](https://github.com/qooob/authentic-theme/issues/378) [#380](https://github.com/qooob/authentic-theme/issues/380) [#39613](https://www.virtualmin.com/node/39613) [#39228](https://www.virtualmin.com/node/39228) + +####Version 17.63 (February 05, 2016) +* Added _File Manager_ help button for easier user-reference +* Added ability in _File Manager_ to enter path manually, by `right-clicking` on the path or using `Ctrl+L` shortcut +* Added translatable _dataTables_ entries to language file +* Improved _File Manager_ size calculation, which now supports multiple _folders/files_ from properties of _context menu_ [#350](https://github.com/qooob/authentic-theme/issues/350) +* Fixed bugs [#369](https://github.com/qooob/authentic-theme/issues/369) [#371](https://github.com/qooob/authentic-theme/issues/371) [#373](https://github.com/qooob/authentic-theme/issues/373) + +####Version 17.62 (February 01, 2016) +* Fixed bugs [#365](https://github.com/qooob/authentic-theme/issues/365) [#366](https://github.com/qooob/authentic-theme/issues/366) [#368](https://github.com/qooob/authentic-theme/issues/368) + +####Version 17.61 (January 31, 2016) +* Fixed bugs [#351](https://github.com/qooob/authentic-theme/issues/351) [#364](https://github.com/qooob/authentic-theme/issues/364) + +####Version 17.60 (January 30, 2016) +* Added ability to select virtual-server/machine in _Virtualmin/Cloudmin_ using URL queries, like `?virtualmin&domain=example.com` or `?cloudmin&server=example.com`. Shortened params like, `dom` and `serv` are also supported +* Added an option to control navigation menu's width [#353](https://github.com/qooob/authentic-theme/issues/353) +* Added an option to theme's settings to reverse switch order [#358](https://github.com/qooob/authentic-theme/issues/358) +* Added sortable/searchable table for _Webmin Servers Index_ module. Useful when there are many hosts [#39534](https://www.virtualmin.com/node/39534) +* Added redirection to login page, on background calls, in case the session is expired +* Updated dependencies. Most notable _jQuery 2.2.0_, which brings more speed and cross-browser compatibility +* Improved speed by performing code optimizations +* Improved content page loader animation +* Improved the select's drop-down in navigation menu for long lists [#358](https://github.com/qooob/authentic-theme/issues/358) +* Improved username/password preview in _Virtualmin/Cloudmin_ using nice popover [#358](https://github.com/qooob/authentic-theme/issues/358) +* Fixed incorrect sorting by size for _Edit Users_ in _Virtualmin_ [#39494](https://www.virtualmin.com/node/39494) +* Fixed bugs [#351](https://github.com/qooob/authentic-theme/issues/351) [#352](https://github.com/qooob/authentic-theme/issues/352) [#354](https://github.com/qooob/authentic-theme/issues/354 [#356](https://github.com/qooob/authentic-theme/issues/356) [#359](https://github.com/qooob/authentic-theme/issues/359) + + +####Version 17.54 (January 26, 2016) +* Added display of _symlink's_ target in _File Manager_ when hovering on the symlink-icon [#346](https://github.com/qooob/authentic-theme/issues/346) +* Added an option for _File Manager_ in theme's settings to activate toolbar's drop-down on hover or using click +* Fixed bugs [#39486](https://www.virtualmin.com/node/39486) [#350](https://github.com/qooob/authentic-theme/issues/350) + +####Version 17.53 (January 25, 2016) +* Improved _File Manager_ right click _context menu_ styling and behaviour +* Added _File Manager_ controls in theme's settings to hide toolbar (for extra lightness) and other options (the list will grow in time) +* Added ability to let user choose as the default page the list of servers/systems in _Virtualmin/Cloudmin_ [#348](https://github.com/qooob/authentic-theme/issues/348) +* Fixed a bug, when search using _autocomplete_ didn't work in _Virtualmin/Cloudmin_ for Virtual Servers/Virtual Machines group + +####Version 17.52 (January 24, 2016) +* Added _File Manager_ folder size auto-calculation on row selection +* Improved once again right click _context menu_ and modals' titles for _File Manager_ + +####Version 17.51 (January 23, 2016) +* Improved right click _context menu_ for _File Manager_, which now has all options and behaves smart +* Fixed _Elegant_ theme for _CodeMirror_ + +####Version 17.50 (January 21, 2016) +* Added right click _context menu_ for _File Manager_ for extra convenience +* Added state of the art _color_ management for the palettes, using theme's settings. It is possible now to control `grayscale, sepia, saturate, hue-rotate, invert, brightness, contrast` filters for navigation menu and `grayscale, saturate, hue-rotate` for content page. It enables you to generate hundreds of color palettes with ease +* Added _White Snow_ contrast theme, to resemble old _Virtualmin Framed Theme_ [#39344](https://www.virtualmin.com/node/39344) +* Added line numbers for _System Logs_ module +* Added ability to choose _color palettes_ for _CodeMirror_ viewer/editor +* Added _title notification counter_, to extend already existing _favicon_ counter +* Improved dynamic title output in _Virtualmin/Cloudmin_ +* Fixed login and password _autocomplete_ to be off on login page [#39271](https://www.virtualmin.com/node/39271) +* Fixed reseller account couldn't be saved, due to missing some form fields [39348](https://virtualmin.com/node/39348) +* Fixed default page for _Usermin_ in _Mail_ mode is set to _Inbox_. Default page for Usermin in _non-mail_ mode is also respected and can be set in `Webmin->Usermin Configuration->User Interface` [39324](https://www.virtualmin.com/node/39324) +* Fixed bugs [#333](https://github.com/qooob/authentic-theme/issues/333) [#334](https://github.com/qooob/authentic-theme/issues/334) [#335](https://github.com/qooob/authentic-theme/issues/335) [#336](https://github.com/qooob/authentic-theme/issues/336) [#340](https://github.com/qooob/authentic-theme/issues/340) +* Fixed dozens of other issues + +####Version 17.40 (January 10, 2016) +* Added triggers to automatically dismiss loader and perform window autoscroll in _Virtualmin/Cloudmin_ [#39237](https://www.virtualmin.com/node/39237) +* Added documentation links next to product's version on _System Information_ page. Custom documentation links set in _Virtualmin/Cloudmin_ configuration are now also supported [#39225](https://www.virtualmin.com/node/39225) +* Added sorting/filter ability for _Installed Scripts_ in _Virtualmin_ [#39237](https://www.virtualmin.com/node/39237) +* Added an option to show HTML snippet for administrators only +* Added an ability to edit `custom-lang` file from theme extensions' editor +* Changed previously removed _Virtualmin/Cloudmin_ links from _Webmin_ navigation menu from enforced to optional [#39237](https://www.virtualmin.com/node/39237) +* Fixed hardcoded strings in some _Perl_ and _JavaScript_ files +* Fixed hotkeys execution to be performed in the right context +* Fixed removed obsolete logo options in _Virtualmin/Cloudmin_ configuration page [#39225](https://www.virtualmin.com/node/39225) +* Fixed missing input field on the navigation menu, when domain display limits are imposed using _Virtualmin Configuration_ [#39219](https://www.virtualmin.com/node/39219) +* Fixed _Notification Slider_ to be unfixed disregard of visibility settings on mobile devices +* Fixed bugs [#321](https://github.com/qooob/authentic-theme/issues/321) [#322](https://github.com/qooob/authentic-theme/issues/322) [#323](https://github.com/qooob/authentic-theme/issues/323) [#326](https://github.com/qooob/authentic-theme/issues/326) [#328](https://github.com/qooob/authentic-theme/issues/328) +* Fixed other bugs + +####Version 17.31 (January 1, 2016) +* Added support for updated _File Manager_ in _Webmin_ 1.780 +* Fixed editor in _File Manager_ saving content incorrectly, when multiple files were opened at once +* Fixed bugs [#315](https://github.com/qooob/authentic-theme/issues/315) [#317](https://github.com/qooob/authentic-theme/issues/317) + +####Version 17.30 (December 25, 2015) +* Added ability to use configurable HTML snippet in navigation menu, for identification purposes. It's configurable in settings, under navigation menu options. Example of usage: `
debug:10000` +* Added ability to completely disable _Notification Slider_ using theme options [#305](https://github.com/qooob/authentic-theme/issues/305) +* Added ability to minimize/maximize editor window in _File Manager_ [#308](https://github.com/qooob/authentic-theme/issues/308) +* Added new hotkeys for _File Manager_: + * `Esc` - close active editor window + * `Ctrl+Esc` - minimize active editor window +* Added disableable _theme option_ button in navigation +* Added ability to trigger theme update from _Notification Slider_ with one click +* Added ability to _Force Update/Re-install_ the theme (on options page) +* Changed theme auto-updates notifications to be on by default +* Improved and optimized background data collection for notifications +* Fixed bugs [#288](https://github.com/qooob/authentic-theme/issues/288) [#302](https://github.com/qooob/authentic-theme/issues/302) [#306](https://github.com/qooob/authentic-theme/issues/306) [#310](https://github.com/qooob/authentic-theme/issues/310) [#311](https://github.com/qooob/authentic-theme/issues/311) +* Fixed other bugs + + +####Version 17.20 (December 17, 2015) +* Added _Notification Slider_ to store pushed system messages. At the moment you will get notifications about _system packages updates_, _theme updates_, _ConfigServer Security & Firewall_'s _updates, statuses_ and _temporary blocks_, including server's attacked IP:port. There is an option to keep the slider fixed. Slider can be toggled by hotkey (default `Alt+N`) +* Added two themes for _Notification Slider_ - _Dim Grey (default)_ and _White_ +* Added _favicon_ notification counter, which enables _Webmin_ notifications seen anytime +* Added arrows up/down navigation in autocomplete search box, through the history of previously executed shell commands +* Added an ability for modules' developers to use on `` tag `[data-pagescroll="true"]` attribute to activate theme's page autoscroll feature +* Added an ability for modules' developers to use `[data-convertible-timestamp-full="unix-timestamp"]` and `[data-convertible-timestamp-short="unix-timestamp"]` attributes on the disired container to easily display user defined dates +* Fixed bugs [#287](https://github.com/qooob/authentic-theme/issues/287) [#295](https://github.com/qooob/authentic-theme/issues/295) [#297](https://github.com/qooob/authentic-theme/issues/297) [#298](https://github.com/qooob/authentic-theme/issues/298) +* Fixed other bugs and made dozens of improvements + +####Version 17.11 (November 19, 2015) +* Changed _Orange_ color palette to _Longhorn Orange_ +* Fixed bugs [#281](https://github.com/qooob/authentic-theme/issues/281) [#282](https://github.com/qooob/authentic-theme/issues/282) + +####Version 17.10 (November 18, 2015) +* Added background _System Information_ page updates. There is no need to reload _System Information_ page anymore to see what's new. It will be done automatically, every 2 minutes (by default). This timeout value can be changed in theme's settings. Besides, you will get important notifications, even if you're away from _System Information_ page, by having blinking asterisk near _System Information_ switch or button/link. After you visit _System Information_ page, the current output will be stored, thus you will not be notified twice for the same data. The following data will trigger notification to appear: + * 1. Charts get over 85% of load + * 2. Unseen packages updates + * 3. Unseen _Authentic Theme_/_ConfigServer Security & Firewall_ pending updates (if enabled) +* Added _Orange_ color palette +* Fixed a bug [#280](https://github.com/qooob/authentic-theme/issues/280) +* Fixed dozens of other small issues + +####Version 17.04 (November 15, 2015) +* Fixed a bug [#279](https://github.com/qooob/authentic-theme/issues/279) + +####Version 17.03 (November 09, 2015) +* Added document title dynamic update, depending on the current module. It also supports _Virtualmin/Cloudmin_, appending currenty selected virtual server/machine and _File Manager_, appending currently selected path [#76](https://github.com/Real-Gecko/filemin/issues/76) + +####Version 17.02 (November 01, 2015) +* Added a feature to execute shell command from the search field. To do so, type `!` in search, followed by your command. Example: `! ls -lsaZ /root`. It's required to have _Command Shell_ module available +* Fixed user-set virtual server/machine not properly loaded on the first run + +####Version 17.01 (October 24, 2015) +* Added _Sea Green_ color palette and possibility to use custom [user palettes](https://github.com/qooob/authentic-theme#how-do-i-make-user-palettes-work) +* Fixed bugs [#269](https://github.com/qooob/authentic-theme/issues/269) [#273](https://github.com/qooob/authentic-theme/issues/273) [#274](https://github.com/qooob/authentic-theme/issues/274) + +####Version 17.00 (October 11, 2015) +* Added _10_ [predefined color palettes](https://github.com/qooob/authentic-theme/issues/264) for left navigation menu and _3_ for the right content page +* Added separate options for _Webmin_/_Usermin_ to manage security notifications +* Added quick access to theme's _extensions_ editor and _logo_ control, from _autocomplete_ menu +* Improved code highlight in _Bind_, _Dovecot_, _SSH_, _Squid_, _ProFTPD_, _Spamassassin_, _Samba_, _fail2ban_ and other modules +* Improved rendering on `Webmin->Webmin Users->Available Webmin modules` tab +* Fixed bugs [#255](https://github.com/qooob/authentic-theme/issues/255) [#256](https://github.com/qooob/authentic-theme/issues/256) [#259](https://github.com/qooob/authentic-theme/issues/259) [#261](https://github.com/qooob/authentic-theme/issues/261) +* Fixed dozens of other issues + +####Version 16.01 (September 27, 2015) +* Fixed bugs [#247](https://github.com/qooob/authentic-theme/issues/247) [#252](https://github.com/qooob/authentic-theme/issues/252) + +####Version 16.00 (September 18, 2015) +* Improved theme's _performance_ by overall code optimization (biggest in theme's history) +* Improved support for _Firefox_. _Firefox_ version 42+ will render animations very smoothly and provide, in general, same experience as _Chrome_ now +* Improved support for _ConfigServer Security & Firewall_ module +* Added smart focus on visible search fields - no need to focus manually - just start typing and the theme will automatically decide what to do +* Added support for _Edge_ browser, which now can render theme properly +* Added ability to dismiss the left spinner with `Ctrl + Esc` key combination and/or its close button, that appears after 3 seconds of spinner activity +* Fixed in _File Manager_ module, to submit all table rows, disregard of visibility (pagination) +* Fixed in _File Manager_ module looped XHR requests, which made it twice slower +* Added for _File Manager_ module extended user-friendly notifications +* Added for _File Manager_ module state of the art _keyboard navigation_ + * `alphanumeric typing` - quick search + * `up/down, home/end` - cursor position + * `enter` - descent into selected + * in case there is only one row filtered, enter on search field will perform trigger + * `spacebar` - select current row + * `backspace` - previous folder + * `*` - inverse select + * `+` - select all + * `-` - deselect all + * `F2` - change permissions + * `F3` - change ownership + * `F4` - edit where possible + * `F5/Shift+F5` - compress/decompress + * `F6` - rename + * `Shift+F4/F7` - new file/folder + * `Shift+F7` - search + * `F8/Del` - delete + * `Ctrl+X/C/V` - Cut/Copy/Paste + * `Ctrl+Enter/Ctrl+Shift+Enter` - Save/Save and close currently edited file + * `Theme reload hotkey` - reload current directory +* Deuglifed a link for switching between basic/advanced modes in _SpamAssassin->Header and Body Tests_ module +* Fixed bugs [#234](https://github.com/qooob/authentic-theme/issues/234) [#235](https://github.com/qooob/authentic-theme/issues/235) [#236](https://github.com/qooob/authentic-theme/issues/236) [#238](https://github.com/qooob/authentic-theme/issues/238) [#239](https://github.com/qooob/authentic-theme/issues/239) [#242](https://github.com/qooob/authentic-theme/issues/242) [#243](https://github.com/qooob/authentic-theme/issues/243) [#244](https://github.com/qooob/authentic-theme/issues/244) [#245](https://github.com/qooob/authentic-theme/issues/245) +* Fixed other bugs and made dozens of improvements + + +####Version 15.51 (September 1, 2015) +* Fixed initiation of the spinner, that was shown on file download in _File Manager_, while clicking on the row +* Fixed adding bookmarks in _File Manager_ no longer locks the table +* Fixed minor bugs [#228](https://github.com/qooob/authentic-theme/issues/228) [#230](https://github.com/qooob/authentic-theme/issues/230) [#231](https://github.com/qooob/authentic-theme/issues/231) + + +####Version 15.50 (August 29, 2015) +* Improved theme's _speed_ by code optimization +* Improved support for _ConfigServer Security & Firewall_ module. Editor mode and code highlights are now working flawlessly +* Added initialization of filter in _File Manager_ on plain typing (like in _Nautilus_, for example) +* Added ability to dismiss the page loader with single escape click. Attention! Be careful when you click escape key once, the loader will disappear, when you click it over again and the loader is hidden, you will interrupt the execution of the page process +* Changed theme auto-updates notifications to be off by default. This will not affect existing users +* Fixed history buttons, navigating using browser's back/forward buttons now working properly +* Fixed minor bugs [#224](https://github.com/qooob/authentic-theme/issues/224) [#226](https://github.com/qooob/authentic-theme/issues/226) [#57](https://github.com/Real-Gecko/filemin/issues/57) +* Fixed dozens of other minor bugs + +####Version 15.00 (August 23, 2015) +* Improved and optimized theme's _speed_ and _display_ options +* Added a new feature of adding any right side page to global _Favorites_ [#210](https://github.com/qooob/authentic-theme/issues/210) +* Added complete _AJAX_ support for _File Manager_ (by _Alexandr Bezenkov_), taking it to the next, absolutely new level [#222](https://github.com/qooob/authentic-theme/issues/222) +* Added emphasis on the table sub-titles [#218](https://github.com/qooob/authentic-theme/issues/218) +* Added CZ language, thanks to [stuchy3](https://github.com/stuchy3) +* Fixed sorting issue by file-size in _File Manager_ and other modules, where file-size like sorting is used +* Fixed link for _System Statistics_ in _Cloudmin_ +* Fixed multiple bugs [#213](https://github.com/qooob/authentic-theme/issues/213) [#214](https://github.com/qooob/authentic-theme/issues/214) [#220](https://github.com/qooob/authentic-theme/issues/220) [#223](https://github.com/qooob/authentic-theme/issues/223) +* Fixed and made dozens of unmentioned bugs/improvements + +####Version 14.02 (July 31, 2015) +* Fixed unrealistic bugs [#211](https://github.com/qooob/authentic-theme/issues/211) +* Fixed _dataTables_ function for sorting files correctly by size + +####Version 14.01 (July 30, 2015) +* Added _CodeMirror_ automatic mode (highlight syntax) detection for all file-editors +* Added support for [_File Manager_](https://github.com/Real-Gecko/filemin) file-editor and improved general support for this module +* Fixed multiple bugs [#205](https://github.com/qooob/authentic-theme/issues/205), [#206](https://github.com/qooob/authentic-theme/issues/206), [#207](https://github.com/qooob/authentic-theme/issues/207), [#209](https://github.com/qooob/authentic-theme/issues/209) + +####Version 14.00 (July 21, 2015) + +* Improved page spinners to use no _JavaScript_, adjusted theme colors and font-weights +* Improved code and performance by combining styles/scripts in a single package and making other custom optimizations +* Added new date-picker to replace old _JavaScript_ pop-ups +* Added ability, when editing custom styles/scripts or uploading custom logos, to update page content dynamically, without reload, to immediately display final outlook +* Added overall loading progress at the top of the page (like _YouTube_ and _Medium_). Can be enabled/disabled in theme settings +* Added _CodeMirror_ modes bundle, to be loadable on demand to support different file highlights in [_File Manager_](https://github.com/Real-Gecko/filemin/issues/21) (File manager for _Webmin_) written in _Perl_ (without use of _Java_)) +* Added locales to _TinyMCE_ +* Updated _CodeMirror_ and _TinyMCE_ +* Fixed theme HTML output to be more validator friendly +* Fixed missing status label on managed system in _Cloudmin_ (thanks to _Jamie Cameron_ for reporting it) +* Fixed _JavaScript_ history step back button in _Webmin_ +* Fixed _CodeMirror_ problem in _ConfigServer Security & Firewall_ module [#199](https://github.com/qooob/authentic-theme/issues/199) +* Fixed issues with _Server Index_ module [#182](https://github.com/qooob/authentic-theme/issues/182), [#201](https://github.com/qooob/authentic-theme/issues/201) +* Fixed an issue in _MySQL/PostgreSQL Database Server_ modules, when trying to view/edit table rows [#200](https://github.com/qooob/authentic-theme/issues/200) +* Fixed an issue to make theme properly run when using `no_frame_options=1` option [#204](https://github.com/qooob/authentic-theme/issues/204) +* Fixed dozens of other bugs + +####Version 13.10 (June 30, 2015) +* Added an option to _disable all animation_ on the left menu and on tabs [#192](https://github.com/qooob/authentic-theme/issues/192) +* Added `autofocus` on input field in _Command Shell_ module [#190](https://github.com/qooob/authentic-theme/issues/190) +* Improved the look of custom radio buttons +* Updated _Romanian_ translation +* Fixed external links issue [#182](https://github.com/qooob/authentic-theme/issues/182) +* Fixed different _Internet Explorer_ issues [#191](https://github.com/qooob/authentic-theme/issues/191) +* Fixed issue with the size of input fields in _Squid Module_ [#197](https://github.com/qooob/authentic-theme/issues/197) +* Fixed other multiple bugs + +####Version 13.05 (June 2, 2015) +* Added in settings an option to use _custom links_ for quick-switching, while using digit hotkeys from 1 to 9, i.e. `Alt+1`, `Alt+2`, `Alt+3` ... `Alt+9` [#183](https://github.com/qooob/authentic-theme/issues/183) +* Added disabled virtual servers/machines are now marked red [#184](https://github.com/qooob/authentic-theme/issues/184) +* Fixed _line-graph bars_ issues [#185](https://github.com/qooob/authentic-theme/issues/185) +* Fixed minor bugs + +####Version 13.04 (May 31, 2015) +* Added in settings an option to quick-switch, using hotkey to _System Information_ page (`Alt+I`) +* Fixed broken logo uploads [#181](https://github.com/qooob/authentic-theme/issues/181) +* Fixed go back button in _Virtualmin/Cloudmin_ +* Fixed minor bugs + +####Version 13.03 (May 30, 2015) +* Improved UI of _System Statistics Graphs_ and optimized its usage +* Fixed global issue, with generation icon-like links, when _show as_ set to _icons_ in module's settings [#180](https://github.com/qooob/authentic-theme/issues/180) +* Fixed defaults properly set for _Make all accordions expanded_ [#179](https://github.com/qooob/authentic-theme/issues/179) +* Fixed issues in _Webmin Servers Index_ module [#178](https://github.com/qooob/authentic-theme/issues/178) +* Fixed overflow problem when listing long titles in _Easy Pie Charts_ [#177](https://github.com/qooob/authentic-theme/issues/177) + +####Version 13.02 (May 27, 2015) +* Added support for old versions of Perl [#174](https://github.com/qooob/authentic-theme/issues/174) + +####Version 13.01 (May 25, 2015) +* Fixed redirection loop on Safari OSX [#173](https://github.com/qooob/authentic-theme/issues/173) +* Fixed switch-toggle in single mode [#172](https://github.com/qooob/authentic-theme/issues/172) + +####Version 13.00 (May 24, 2015) +* Improved _theme settings are now configurable using UI_. From now on, you don't need to edit settings manually. Theme configurable options located in `Webmin->Webmin Configuration->Webmin Themes` +* Improved UI of _right frame_ in great amount. Improved UI of _left menu_ and _login page_ +* Improved content _page loader_ being less annoying. Content page spinner now will only appear in case something is _really_ loading. On regular page switching it will not appear anymore. When content page starts/ends loading, it's animated to improve user experience +* Improved _line-graph bars_. Graphs now can have description and color, based on percentage. To see it in action go to `Cloudmin->Edit System->Detailed system status` +* Improved page _autoscroll_ mechanism. Now _autoscroll_ works, more like in `gnome-terminal`, i.e., when you start scrolling the page - auto-scrolling stops, when you reach the bottom of the page, using double-scroll - it restarts +* Improved _user mail_ is now searchable, using _autocomplete_ bar +* Improved _help popovers_ are now not destroyed, in case user made some text selection +* Added support for images for third party modules. Modules' developers no longer need to do workarounds +* Added table rows are now _triggerable_ using left click, _highlighted_ and _selectable_ using right mouse click +* Added in settings an option to _disable/enable customized checkboxes and radio_ buttons +* Added in settings an option to _choose default tab/page_ after logging in +* Fixed broken links when using proxy [#165](https://github.com/qooob/authentic-theme/issues/165) +* Fixed drive temperature formatting on _System Information_ page [#171](https://github.com/qooob/authentic-theme/issues/171) +* Fixed frames being way too small in _Text Login_ and _Root Shell_ modules +* Fixed missing _custom styles_ embedment on login page +* Fixed tabs being fail-safe +* Fixed hundreds of bugs +* Updated _jQuery_ and the code to be _iOS fail-safe_ +* Updated to the latest _jQuery_, _dataTables_, _CodeMirror_, _TinyMCE_ + +> __ATTENTION:__ Translations for `settings_*` and `theme_conference` is required. + +> __NOTICE:__ A chat room `authentic-theme@conference.jabbers.im` is opened for discussions. In order to join the chat room, you would need _Jabber ID_. If you don't have _Jabber ID_, you can register it for free on __jabbers.im__, using any XMPP client, that supports account registrations. + +####Version 12.00 (May 3, 2015) +* Added right page _icons_, that had been around in other themes for decades. Many people asked for it, including _Joe Cooper_. It was one of the conditions for making _Authentic Theme_ default in _Webmin_. _Icons_ that are used at the moment, are not brand new but looks good. Brand new, _SVG_ icons, are coming in the near future! It's very important to know, that all of these innovations, can be tweaked using settings. By default, _big icons_ are enabled, with _animation_ and _grayscale effect_. Using settings, you can change default icons, to small or extra small, or even completely disable them and get back to what _Authentic Theme_ has been before. Added in settings `settings_right_hide_table_icons`, `settings_right_small_table_icons`, `settings_right_xsmall_table_icons`, `settings_right_animate_table_icons`, `settings_right_grayscaled_table_icons` +* Improved general UI of the left menu +* Fixed some bugs + +####Version 11.55 (May 2, 2015) +* Added _Easy Pie Charts_ and corresponding option `settings_sysinfo_easypie_charts`, that will let you enable/disable _Charts_ on _System Information_ page + +####Version 11.50 (May 1, 2015) +* Added in settings `settings_right_iconize_header_links`, that enables you to choose between old style right-page header links or replace it with new beautiful icon links. Default is set to `true` +* Added ability to disable right-page reload upon switching between _Webmin/Virtualmin/Cloudmin_ by the following option `settings_right_reload`. The default value is set to `true` +* Added ability to choose hotkeys modifier and hotkeys values, when using it by the following options `settings_hotkey_toggle_modifier`, `settings_hotkey_toggle_key_webmin`, `settings_hotkey_toggle_key_virtualmin`, `settings_hotkey_toggle_key_cloudmin`, `settings_hotkey_toggle_key_usermin`, `settings_hotkey_toggle_key_webmail`, `settings_hotkey_focus_search` and `settings_hotkey_reload` +* Added ability to choose the custom page, when _Virtualmin/Cloudmin_ is loaded/selected by the following options `settings_right_virtualmin_default` and `settings_right_cloudmin_default`. The default value is `'sysinfo.cgi'` (System Information) +* Added `autofocus` on _username_ field, when login page is accessed +* Fixed mail being displayed in HTML, to preserve message custom formatting +* Fixed _dozens_ of bugs + +####Version 11.10 (Apr 13, 2015) +* Added ability to open new tab of _Webmin/Usermin/Virtualmin/Cloudmin/Webmail_ by clicking on the switch (top left menu's selector) by right mouse button. **Important:** You must once add _popup window exception_ in your browser to make this feature work +* Improved greatly the usage of `autocomplete` for basic _Webmin_ modules. You can test it by going to _Running Processes_ or _Perl Modules_ and start typing in search field. Same done for most inbuilt modules +* Removed a hack for _Historic System Statistics_ module, as it was fixed by the author in version 2.11 [#1](https://github.com/qooob/authentic-theme/issues/1#issuecomment-91328157) +* Fixed login screen missing for the link to _Virtualmin Password Recovery_ module, in case it's installed and set in _Webmin Configuration->Anonymous Module Access_. In that case, the reset button will act as expected and be the color of yellow [#152](https://github.com/qooob/authentic-theme/issues/152) +* Fixed _Webmin Servers Index_ module issue [#147](https://github.com/qooob/authentic-theme/issues/147) +* Fixed databases listing in editing table cells mode [#150](https://github.com/qooob/authentic-theme/issues/150) +* Fixed increased the height of `::-webkit-scrollbar` for easy access +* Fixed `.cgi` file attributes and set to be executable by default [#154](https://github.com/qooob/authentic-theme/issues/154) +* Fixed missing images in _Translator Module_ [#155](https://github.com/qooob/authentic-theme/issues/155) +* Fixed multiple small bugs + +####Version 11.01 (Mar 29, 2015) +* Fixed unclickable left menu links, when custom logo is used [#143](https://github.com/qooob/authentic-theme/issues/143) +* Fixed DHCP-server module showing no hostnames [#145](https://github.com/qooob/authentic-theme/issues/145) +* Fixed multiple small bugs + +####Version 11.00 (Mar 25, 2015) +* Added window automatic scrolling, upon page is populated from server-side.Test it and see it in action in such modules as _Fetchmail Mail Retrieval_, _Software Package Updates_ and others. Intended mouse-scroll done by user, during auto-scrolling, will make it stop. Loader will be automatically hidden upon this features is triggered. This feature can be disabled using settings +* Added in settings: `settings_security_notify_on_pre_login_request`, `settings_security_notify_on_login_request`, `settings_security_notify_on_login_success`, `settings_window_autoscroll`, `settings_sysinfo_theme_updates`, `settings_sysinfo_csf_updates`, `settings_leftmenu_button_language`, `settings_leftmenu_singlelink_icons`, `settings_leftmenu_vm_installscripts`, `settings_leftmenu_vm_webpages` and `settings_leftmenu_vm_backup_amazon` +* Added automatically stretching inputs for long text [#121](https://github.com/qooob/authentic-theme/issues/121) +* Added auto-detection/redirection to _Mailbox_ module upon logging in to _Usermin_ +* Added _Dutch_ translation by [Richard van Laak](https://github.com/Rvanlaak) +* Added _Russian_ translation +* Fixed appearing loader on changing `select`, even though it was disabled in settings [#127](https://github.com/qooob/authentic-theme/issues/127) +* Fixed text not being _wrapped_ in `pre` tag and now scrollable horizontally instead [#123](https://github.com/qooob/authentic-theme/issues/123) +* Fixed left menu output issue in uncategorised mode [#128](https://github.com/qooob/authentic-theme/issues/128) +* Fixed encoding issue [#129](https://github.com/qooob/authentic-theme/issues/129) +* Fixed stuck loader in _Virtualmin_, while using third party modules +* Fixed left menu being shown irrespectively to the right frame [#131](https://github.com/qooob/authentic-theme/issues/131) +* Fixed external custom links not being opened in new window in _Virtualmin_ module [#130](https://github.com/qooob/authentic-theme/issues/130) +* Improved UI of the right frame - dozens of improvements on fonts, tables, buttons, scrollbars and etc +* Remove all dependencies [#125](https://github.com/qooob/authentic-theme/issues/125) + +####Version 10.20 (Mar 15, 2015) +* Fixed issues with slight text flickering on the left menu +* Fixed missing table headers/borders in some modules +* Fixed compatibility mode for third-party modules + +####Version 10.12 (Mar 9, 2015) +* Fixed sub-accordions issue found by _Joe Cooper_ + +####Version 10.11 (Mar 8, 2015) +* Added in settings `settings_leftmenu_section_hide_unused_modules` +* Moved theme build to the separate directory as recommended by _Jamie Cameron_ + +####Version 10.10 (Mar 7, 2015) +* Changed left menu color to be slightly lighter +* Added in settings `settings_sysinfo_expand_all_accordions` and `settings_leftmenu_section_hide_refresh_modules` +* Fixed quota/bandwidth calculations for _System Information_ + +####Version 10.00 (Mar 4, 2015) +* Changed theme **repo location** to _GitHub_. **Attention:** It's required that your _Perl_ installation can handle _https_ connections. Make sure to have installed, either _LWP::Protocol::https_ or _Bundle::LWP_ modules to make future _automatic updates_ work +* Improved left menu design to be more flat-like _(complete page reload is required)_ +* Improved the look of old **ui_hidden** collapse, to look more like new _Bootstrap_ collapse +* Added support for **Webmail** in _Usermin_ [#104](https://github.com/qooob/authentic-theme/issues/104) +* Added **dataTables** search, in case table contains more than 10 rows +* Added **dataTables** on filesize, to properly sort columns containing filesize data [#103](https://github.com/qooob/authentic-theme/issues/103) +* Added **custom logo** support for login screen [#116](https://github.com/qooob/authentic-theme/issues/116) +* Added support for **basic settings** to control the theme (disable loaders and more) +* Added extended controls to _System Information_ page for **ConfigServer Security & Firewall** +* Added complete support for scrolling on _iPhone/iPad_ [#115](https://github.com/qooob/authentic-theme/issues/115) +* Fixed server-side search that stopped working after adding _autocomplete_ +* Fixed **select** issue in _Internet Explorer_ browser [#99](https://github.com/qooob/authentic-theme/issues/99) +* Fixed package updates showing wrong numbers on _System Information_ page [#112](https://github.com/qooob/authentic-theme/issues/112) +* Fixed **quotas charts** issue, displaying incorrect numbers in _System Information_/_Quotas_ [#110](https://github.com/qooob/authentic-theme/issues/110) +* Fixed missing left menu reload upon importing new virtual server +* Fixed stuck loader appearing in certain cases [#117](https://github.com/qooob/authentic-theme/issues/117) +* Fixed stuck loader in all third party modules, like **AWStat, Webminstat** and **OpenVPN + CA** [#106](https://github.com/qooob/authentic-theme/issues/106) +* Fixed **hotkeys triggers**, which now is executed only in case the switch is not already active [#118](https://github.com/qooob/authentic-theme/issues/118) +* Fixed fatal error happening when changing domain in _Webmin/Virtualmin_ domain owner mode +* Fixed **System Statistics** link to be shown only in administrative mode +* Fixed _Virtualmin->Administration Options->Switch To Server's Admin_ link, being opened in `__parent` window +* Fixed **WYSIWYG bar** being _lower_ than it should be from the upper border, when composing new message +* Fixed login page throwing an error to the console +* Removed screen-saver, as it was eating a lot of memory + +####Version 9.50 (Feb 8, 2015) +* Added **dataTables** to _Software Package Updates_, as it's useful to sort packages by _name/description/status/source_ +* Added font **Roboto** in the package and set as default. Font now is local, because _Google_ is blocked in some countries [#80](https://github.com/qooob/authentic-theme/issues/80) +* Added **Hotkey** - _double_ `Shift` for dismissing right side loader +* Added custom **styles** and **scripts** injector. Now you can apply custom _styles/scripts_ to the theme, which will be preserved upon updates +* Added **brand** icons for _Webmin/Virtualmin/Cloudmin_ switches (thanks to _Joe Cooper_ for it) +* Added **left menu** dependency updates, upon some triggers happening on the right frame +* Added **extended panels** on _System Information_ page, like _Quotas_, _Status_, _IP address allocation_ and et cetera +* Added Perl **error message**, explaining how to make the theme work, if it's downloaded from _GitHub_ as _.zip_ [#85](https://github.com/qooob/authentic-theme/issues/85) +* Fixed missing option **create sub-servers**, when clicking on _Create Virtual Server_ link, on theme very first load [#96](https://github.com/qooob/authentic-theme/issues/96) +* Fixed **sticking out** _long text_ in the left menu in some languages (Russian, French, Polish and some other) [#95](https://github.com/qooob/authentic-theme/issues/95) +* Fixed **stuck loader**, when going to _Webmin Scheduled Functions_ [#86](https://github.com/qooob/authentic-theme/issues/86) + +####Version 9.03 (Feb 3, 2015) +* Fixed file selector **filter broken** in some cases [#81](https://github.com/qooob/authentic-theme/issues/81) +* Fixed a general bug (not theme related), when **clicking** on _external links_ [#82](https://github.com/qooob/authentic-theme/issues/82) +* Fixed ConfigServer Security & Firewall **Firefox bug** when buttons didn't work [#83](https://github.com/qooob/authentic-theme/issues/83) + +####Version 9.02 (Feb 2, 2015) +* Fixed **loader** positioning +* Fixed **small buttons** under the menu showing _correct language link_ on toggling between _Webmin/Virtualmin/Cloudmin_ +* Fixed **menu jumps** [#76](https://github.com/qooob/authentic-theme/issues/76) +* Fixed **selects** incorrectly triggering loader in some cases [#78](https://github.com/qooob/authentic-theme/issues/78) +* Improved **mobile menu** trigger button position and some other mobile menu tweaks + +####Version 9.01 (Feb 1, 2015) +* Fixed **Firefox bug** making right frame _links not clickable_ [#74](https://github.com/qooob/authentic-theme/issues/74) +* Improved **navigation** menu auto-opening + +####Version 9.00 (Feb 1, 2015) +* Changed: Overall **UI redesign** for better experience +* Changed: Code **core** complete rewrite for both _server_ and _client-side_. Improved **speed** and **browser/plugin** compatibility +* Added support for _Virtualmin/Cloudmin_ **missing left menu**, for currently selected virtual server/machine. ***Attention:*** You need latest _Virtualmin_ installation to make it work. (For _Virtualmin_ *Pro*, minimum version requirement is 4.13 and for *GPL* users minimum is 4.14) +* Added **autocomplete** for currently **opened module** in _Webmin_, currently **selected domain** and list of all available **virtual domains/machines** in _Virtualmin/Cloudmin_ modules +* Added **complete mobile support**. Navigation menu now has absolutely _same functionality_ for both _desktop/mobile_ versions +* Added **custom logo** support +* Added **screen-saver** effect (using pure CSS) after _2 minutes_ of inactivity +* Added **shortcut** _Alt+R_ for _reloading_ right frame +* Added **Chinese translation** by [Dreista](https://github.com/Dreista) + +####Version 8.10 (Jan 9, 2015) +* Fixed script removing _text_ in rare cases, next to **radios/checkboxes**, which is actually crucial for understanding of what to select +* Changed alien Alt sign **⌥** to **Alt**, which now also only appears **onfocus** on search field (thanks to _Joe Cooper_ for advice) +* Fixed _dozens_ of UI issues, like broken borders on tables and some other visual improvements (now theme provides most accurate UI _ever_ achieved) +* Removed donation button from _System Information_ page, that was seen on everyday basis (thanks to _Joe Cooper_ for advice) + +####Version 8.00 (Jan 4, 2015) +* Added **Quick Search**. No more searching through the menus. Hit _Alt+S_ **(⌥S)** and start typing to see what you get. When you use suggestions from drop-down, you get quick access to the modules; if you just type and hit enter you get the regular search +* Added **Quick Toggle**. It lets you quickly switch between Webmin/Virtualmin/Cloudmin. To toggle use _Alt+W_ **(⌥W)** / _Alt+V_ **(⌥V)** / _Alt+C_ **(⌥C)** +* Added support for **TimePlot** for Pro versions of _Virtualmin_ to display _System Statistics_ +* Added search for **CodeMirror** files +* Added basic support for **Webminstats** module [#1](https://github.com/qooob/authentic-theme/issues/1) +* Updated **CodeMirror** to the latest version 4.10 +* Updated **DataTables** to the latest version 1.10.4 +* Fixed stray `/div` tag [#62](https://github.com/qooob/authentic-theme/issues/62) +* Fixed sticking out tables on very long content [#58](https://github.com/qooob/authentic-theme/issues/58) +* Fixed _ConfigServer Security & Firewall_ **UI bugs** +* Fixed minor **UI bugs** fixes + +####Version 7.00 (Dec 21, 2014) +* Improved overall **theme speed** - twice as fast as before +* Added scrolling to extra long **help popovers** that were going off the screen +* Added complete support for **Internet Explorer** browser +* Changed right side **body** background to draw more attention to content +* Changed **panel** top border height, to draw more attention, while being the main page header +* Changed **loader** - no more images or fonts used - pure script brings overall beauty and compatibility +* Updated **jQuery** to latest _2.1.3_ version +* Fixed problems when using **LastPass/FireBug** plugins [#6](https://github.com/qooob/authentic-theme/issues/6) +* Fixed extra width in table rows and all around the theme +* Fixed position of **dataTables** sorting images to be closer to the text [#55](https://github.com/qooob/authentic-theme/issues/55) +* Fixed **dataTables** disappear in **init** module in some cases [#55](https://github.com/qooob/authentic-theme/issues/55) +* Fixed missing **ui_hidden** when changing tabs [#56](https://github.com/qooob/authentic-theme/issues/56) +* Fixed **hundreds** of UI bugs + +####Version 6.60 (Dec 2, 2014) +* Added basic support for _Cloudmin_ module +* Added **TinyMCE** text editor for _Mail_ modules +* Fixed display issues in _Mail_ modules +* Fixed login page being displayed inside of the right frame, when session is expired +* Fixed all possible issues with missing **input** fields, in all modules, including _ProFTPd_ module [#50](https://github.com/qooob/authentic-theme/issues/50) +* Fixed minor UI bugs + +####Version 6.52 (Nov 23, 2014) +* Reverted incorrectly removed stray `div` tag at the **theme_footer** +* Added _Virtualmin Pro_ information popover and refresh license keys on _System Information_ +* Fixed minor UI bugs + +####Version 6.51 (Nov 23, 2014) +* Fixed display issues at small screen resolutions [#45](https://github.com/qooob/authentic-theme/issues/45) +* Added functionality to prevent stuck update states [#46](https://github.com/qooob/authentic-theme/issues/46) +* Removed stray `div` tag at the **theme_footer** to prevent possible page breaks + +####Version 6.50 (Nov 21, 2014) +* Fixed positioning for new **quick-access menu** and **refresh button**. Refresh button now spins on frame reload. Both buttons now work well on mobile devices +* Added _File Manager_ link on **quick-access menu** per request +* Added link behavior, for/when clicking on _hostname_ in page header +* Fixed minor UI bugs + +####Version 6.41 (Nov 20, 2014) +* Fixed missing icons on _Virtualmin_ **Bandwidth Usage** page [#41](https://github.com/qooob/authentic-theme/issues/41) + +####Version 6.40 (Nov 18, 2014) +* Added **refresh button** to refresh the page. _Attention!_ **Left click** will refresh the right frame, while **right click** will refresh the whole page +* Added **quick access menu** and **refresh button** hover effect +* Fixed missing **font-family: monospace;** on all **pre** tags + +####Version 6.30 (Nov 15, 2014) +* Added **quick access menu** for _Webmin/Usermin/Virtualmin_. It makes things easy accessible. Menu depends on the _module/user_ permissions +* Added display of **Virtualmin** version to the **System Information** +* Fixed minor UI bugs + +####Version 6.24 (Nov 14, 2014) +* Fixed history state toggle for **System Information** [#39](https://github.com/qooob/authentic-theme/issues/39) +* Added **webprefix** to the file paths [#38](https://github.com/qooob/authentic-theme/issues/38) + +####Version 6.23 (Nov 13, 2014) +* Updated to the latest _Bootstrap_ v3.3.1 +* Fixed paginations misplacement and size on _Read Mail_ module [#37](https://github.com/qooob/authentic-theme/issues/37) +* Fixed/added missing icons on _Read Mail_ module + +####Version 6.22 (Nov 9, 2014) +* Updated to _CodeMirror_ v4.7.0 +* Improved page loader +* Fixed/added missing icons on _Read Mail_ module +* Fixed stuck spinner when printing mail on _Read Mail_ module +* Fixed minor UI bugs + +####Version 6.21 (Nov 9, 2014) +* Fixed opening Webmin/Usermin at the right frame, when session is expired [#35](https://github.com/qooob/authentic-theme/issues/35) +* Fixed _Read User Mail_ module, showing a stuck spinner when performing mail download + +####Version 6.20 (Nov 7, 2014) +* Fixed opening window issue on **user switch** action [#31](https://github.com/qooob/authentic-theme/issues/31) +* Fixed missing icons on **Read Mail** module [#33](https://github.com/qooob/authentic-theme/issues/33) +* Added _Italian_, _French_, _Spanish_ translations [#26](https://github.com/qooob/authentic-theme/issues/26) + +####Version 6.10 (Nov 6, 2014) +* Fixed messed up theme automatic update [#29](https://github.com/qooob/authentic-theme/issues/29) +* Added option to refresh only system information and not packages, by clicking right mouse button on **refresh button** [#29](https://github.com/qooob/authentic-theme/issues/29) + +####Version 6.02 (Nov 6, 2014) +* Fixed upcoming bug [#28](https://github.com/qooob/authentic-theme/issues/28) + +####Version 6.01 (Nov 6, 2014) +* Fixed upcoming bug [#26](https://github.com/qooob/authentic-theme/issues/26#issuecomment-61886719) + +####Version 6.00 (Nov 6, 2014) +* Fixed **refresh button** being slow on _System Information_ page [#24](https://github.com/qooob/authentic-theme/issues/24) +* Fixed _System Information_ being displayed properly based on logged in users' privileges [#10](https://github.com/qooob/authentic-theme/issues/10) +* Changed the way **refresh button** works on _System Information_ page. No more using **recollect.cgi** or any other server-side scripts. +* Fixed dozens of small bugs + +####Version 5.10 (Oct 31, 2014) +* Added **refresh button** to _System Information_ page [#23](https://github.com/qooob/authentic-theme/issues/23) +* Added _System Information_ link to _Virtualmin_ left navigation bar + +####Version 5.00 (Oct 30, 2014) +* Added new beautiful **ui_link** buttons in replacement for old links with **|** separator +* Fixed devastating bug, that stopped the script with fatal error, as **dataTables** were called prematurely +* Fixed dozens of small bugs + +####Version 4.41 (Oct 28, 2014) +* Fixed an issue with **file chooser**, not selecting a _file/directory_ [#21](https://github.com/qooob/authentic-theme/issues/21) + +####Version 4.40 (Oct 28, 2014) +* Fixed missing numbers for _memory_ and _local disk space_ [#20](https://github.com/qooob/authentic-theme/issues/20) + +####Version 4.31 (Oct 25, 2014) +* Fixed automatic updates not working in some cases [#17](https://github.com/qooob/authentic-theme/issues/17) +* Fixed rating stars not being rendered on sub-server script installer page in Virtualmin module [#18](https://github.com/qooob/authentic-theme/issues/18) + +####Version 4.30 (Oct 24, 2014) +* Fixed general issue causing **buttons** submit a form with an empty values [#16](https://github.com/qooob/authentic-theme/issues/16) + +####Version 4.20 (Oct 23, 2014) +* Fixed general issue causing **forms** on submit return an error in some cases [#15](https://github.com/qooob/authentic-theme/issues/15) +* Fixed showing loader when clicking on **select_all/select_invert** links + +####Version 4.17 (Oct 22, 2014) +* Added _Norwegian_ translation. Special thanks to _Kjetil Elde_ [#14](https://github.com/qooob/authentic-theme/issues/14) + +####Version 4.16 (Oct 22, 2014) +* Fixed language files encoding [#13](https://github.com/qooob/authentic-theme/issues/13) + +####Version 4.15 (Oct 21, 2014) +* Added _Polish_ translation. Special thanks to _Michał Pawlik_ [#12](https://github.com/qooob/authentic-theme/pull/12) + +####Version 4.14 (Oct 20, 2014) +* Fixed general issue causing **radios** disappear in some modules, including _Linux Firewall_ [#11](https://github.com/qooob/authentic-theme/issues/11) + +####Version 4.13 (Oct 18, 2014) +* Fixed tables automatic sorting by first **th**, to keep defaults set by **Webmin/Virtualmin** [#8](https://github.com/qooob/authentic-theme/issues/8) +* Fixed minor loader issues +* Fixed false/unclickable links in Usermin +* Added CodeMirror **autofocus** on editing _textarea_ + +####Version 4.12 (Oct 15, 2014) +* Added an option, upon logging in, automatically redirect to _Virtualmin_ module, in case it's installed + +####Version 4.11 (Oct 13, 2014) +* Removed requirement for both, either using **Switch** module or **Feature** is no longer necessary. Replaced with simple **if/elsif/else** statements. Using **Switch** caused error messages on latest installations, e.g. _CentOS 7_, while using **Feature** caused errors on old installations + +####Version 4.10 (Oct 12, 2014) + +* Changed **link** named _View changelog_ in _ConfigServer Security & Firewall_ module to a **button** +* Improved loader animation and behavior +* Added many missing _input_ stylings in some modules +* Added _German_ translation. Special thanks to _Michael Keck_ [#3](https://github.com/qooob/authentic-theme/issues/3) +* Fixed **theme_ui_form_end** generator to wrap buttons in _span_ not in _td_, which enables support for lower resolutions [#4](https://github.com/qooob/authentic-theme/issues/4) +* Removed redundant _fonts_ directory + +####Version 4.00 (Oct 9, 2014) + * Fixed lost pre-login banner option + * Added support for _dataTables_. Now you can easily sort table rows based on the table header. It gets easier to manage data in such modules as _Bootup and Shutdown_, _Users and Groups_ and others, containing multi-row data. It also supports _ConfigServer Security & Firewall_, where you can also easily filter _Temporary IP Entries_ and _Listening Ports_ + * Added possibility to use automatic updates for **Authentic Theme**, with direct means of Webmin and its theme installation module - _no other server-side scripts are used_! Updates, when available, will be displayed in *System Information* tab.
*Warning!* In order to use automatic updates and check for new theme versions, your system _must have_ the following _Perl_ modules installed: _Net::SSLeay_. You should be able to install it from official repos.
See [FAQ](https://github.com/qooob/authentic-theme#troubleshoot) for more details + * Added ability to remove the page _loader_ and see what is happening before the page actually loaded/constructed or just in case of the _loader_ getting stuck. To prematurely remove the _loader_, click on it, using mouse **double-right-click** + * Removed false dependency for **virtual-server-theme/virtual-server-theme-lib.pl** + +####Version 3.01 (Oct 7, 2014) + * Fixed malfunctioning **theme_ui_checkbox**, causing some _input_ fields disappear + * Fixed few other small bugs + +####Version 3.00 (Oct 5, 2014) +* Added popover tooltip for old **window.open** to process **help.cgi** +* Added theme information version (installed/update notice) in _System Information_ (works by just comparing **VERSION.txt** files, nothing more) +* Fixed error in _default.js_ script, throwing **NS_ERROR_NOT_AVAILABLE** in Firefox and other _Gecko_ browsers +* Fixed all problems with selecting and filtering _files/user/groups_ in ***_chooser.cgi** +* Fixed loaders being shown every time when waiting for server reply +* Fixed listing of virtual-servers in Virtualmin +* Fixed **checkboxes** margins in Virtualmin +* Fixed table **vertical-align: top** for selecting hours +* Fixed dozens of small bugs + +####Version 2.01 (Oct 1, 2014) +* Fixed small bugs + +####Version 2.00 (Oct 1, 2014) +* Added support for _Virtualmin_ module +* Added support for _ConfigServer Security & Firewall_ module +* Fixed/optimized images +* Fixed _Usermin_ not loading menu +* Fixed/added support for menu on mobile devices +* Fixed dozens of small bugs + +####Version 1.10 (Sep 24, 2014) +* Added support for highlighting edited config files, with showing line numbers +* Fixed navigation menu problems, when using back (history) button +* Fixed/optimized favicons dimensions + +####Version 1.00 (Sep 21, 2014) +* Added full support for all elements: tables, forms, inputs, buttons and etc +* Added stick menu to display which module was selected +* Added optional favicons to visually distinguish Webmin/Usermin +* Fixed problem when the changes/new settings were not submitted +* Fixed missing radios/checkboxes because label tag isn't always used +* Fixed/removed old/unnessesary icons/images all over the theme diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..9e267a6f9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Ilia Rostovtsev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +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. diff --git a/README.md b/README.md new file mode 100644 index 000000000..f93ff9299 --- /dev/null +++ b/README.md @@ -0,0 +1,179 @@ +##Contents +* [Changelog](https://github.com/qooob/authentic-theme/blob/master/CHANGELOG.md) +* [Download (18.31)![](https://rostovtsev.ru/pub/media/icons/download-23x14.png)](https://github.com/qooob/authentic-theme/releases/download/18.31/authentic-theme-18.31.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 +**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) + +####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 +* Configurable theme options using _Webmin_ UI +* Top-down terminal port +* Favorites feature for any content page +* Unprecedentedly convenient and complete navigation menu for both desktop and mobile +* Notification slider for quick access to pushed system messages +* Autocomplete for quick and effective navigation with ability to execute shell commands [*](https://github.com/qooob/authentic-theme#how-do-i-execute-shell-command-using-search-filed) +* Hotkeys for quick access control +* Dynamically updated page title based on current module +* Code highlight when editing files manually +* 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 +* Webmin _1.830+_ (required), Usermin _1.700+_ (optional), Virtualmin _5.00+_ (optional), Cloudmin _9.00+_ (optional) + +####Recommended modules +* Installed _Net::SSLeay_ module, to make automatic update notifications work + +####Browser support + +######![](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/opera-16.png) Opera 18+ + +######![](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/internet-explorer-16.png) IE 10+ + + +###FAQ +####How to install _Authentic_ Theme? + +#####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.31/authentic-theme-18.31.wbt.gz) the theme directly and install it using _Webmin_: + + `Webmin->Webmin Configuration->Webmin Themes->Install themes->From uploaded file` + +#####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 +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 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? +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 make user palettes work? +_Authentic_ Theme utilizes built-in, custom color palettes, that a user can define using theme's extensions. It's possible, by using theme's _CSS_ extensions, to pass user custom selector, such as `user-palette-1`, `user-palette-2`, `user-palette-3`, `user-palette-4`, `user-palette-5`, `user-palette-6`, `user-palette-7`, `user-palette-8`, `user-palette-9` and `user-palette-10` to enable a usage of user palettes. For example, in order to use `user-palette-1`, in the theme's settings, you would need to set the option _Navigation Menu Color_ to the value of `User Palette 1`. After that, provide a custom code to the theme's _CSS_ extension, with [a pre-built template](http://codepen.io/qooob/pen/dYaPvj), corresponding with custom theme's identification. + +####How do I execute shell command using search filed? +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? +_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_. + +###Extended support for bundled/third-party modules + +####_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 + + * `alphanumeric typing` - quick search + * `up/down, home/end` - cursor position + * `enter` - descent into selected directory + * `backspace` - previous folder + * in case there is only one row filtered, enter on search field will perform trigger + * `contextmenu/right-click` - context menu + * `spacebar` or `Alt+right-click` - select current row + * `right-click on path` or `Ctrl+L` - enter path manually + * `*` - inverse select + * `+` - select all + * `-` - deselect all + * `F2` - change permissions + * `F3` - change ownership + * `F4` - edit where possible + * `Esc` - close active editor window + * `Ctrl+Esc` - minimize active editor window + * `F5/Shift+F5` - compress/decompress + * `F6` - rename + * `Shift+F4/F7` - new file/folder + * `Shift+F7` - search + * `F8/Del` - delete + * `F9/F10` - download/upload + * `Ctrl+S` - calculate selected size + * `Ctrl+space` - new tab + * `Ctrl+Shift+space` - close current tab + * `Ctrl+left/right` - change tabs + * `Ctrl+1..9` - switch to the tab number + * `Ctrl+X/C/V` - cut/copy/paste + * `Ctrl+Enter/Ctrl+Shift+Enter` - save/save and close currently edited file + * `Theme reload hotkey` - reload current directory + +####_ConfigServer Security & Firewall_ +Theme only re-renders this module and adds support for code highlight, when editing files manually. + + +###Troubleshoot +1. Automatic updates notification feature doesn't work or `Can't locate Net/SSLeay.pm in ..)`
+ 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
+ This happens because of encoding disparity. To fix this, just set language in _Webmin_ to `UTF-8` and make sure that your browser also has detected it as `UTF-8`. Pay attention, that _Webmin_ in-built module, named _Change Language and Theme_ can override global settings; +3. I get `HEAD 404 (File not found)` in console
+ That is not really an error. It happens, when theme is checking, if needed _URL_ exists and can be loaded; +4. Page loading got stuck
+ To prematurely dismiss a loader, hover on it and click loader's close button, right next to it. It is also possible to unveil currently loading content page by double clicking on it; +5. Can't toggle _checkbox_ in a row of a _table_
+ Theme provides an extended support for operations with table rows. It's easy to select current row by simply `right-clicking` on it with the mouse (on mobile device `long-tap`). Regular `click` on the row will take you to the row's main link; +6. Default tab after logging in doesn't work
+ You need to set _Authentic Theme_ as default globally. To do so, go to _Webmin->Webmin Configuration->Themes_. +7. Blinking navigation menu or overall jerky theme's rendering
+ 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 +* [Ilia Rostovtsev](https://rostovtsev.ru)[![](https://rostovtsev.ru/pub/media/icons/stackoverflow-23x15.png)](http://stackoverflow.com/users/1455661/ilia-rostovtsev) + + +###Contributions + +####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) +* [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) + +###Donation + + Overall development of this theme has already passed the stage of 2000 hours. I'm happy to provide _Authentic_ Theme for free but please know, that it would mean a World to _[me](http://rostovtsev.ru)_, if you send me a donation. It doesn't matter how big or small your donation is. I appreciate all donations. Each donation will _help me to pay my bills_, excite future development and improve your everyday experience, while working with the theme. + +[![](https://rostovtsev.ru/pub/media/icons/yandex-175x89.png)](http://rostovtsev.ru/pub/api/donation/yandex.html) +
+![](http://rostovtsev.ru/pub/media/icons/paypal-175x45.png) +
+![](https://rostovtsev.ru/pub/media/icons/bitcoin-175-207.png) + +### License + +_Authentic_ Theme is released under the [MIT License](https://github.com/qooob/authentic-theme/blob/master/LICENSE) diff --git a/VERSION.txt b/VERSION.txt new file mode 100644 index 000000000..e651d0db0 --- /dev/null +++ b/VERSION.txt @@ -0,0 +1 @@ +18.31 diff --git a/authentic-init.pm b/authentic-init.pm new file mode 100644 index 000000000..c3519b89f --- /dev/null +++ b/authentic-init.pm @@ -0,0 +1,1026 @@ +# +# Authentic Theme 18.31 (https://github.com/qooob/authentic-theme) +# Copyright 2014-2016 Ilia Rostovtsev +# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE) +# + +init_vars(); + +sub settings { + my %c; + my $f = $config_directory . "/authentic-theme/settings.js"; + if ( -r $f ) { + my $k = &read_file_contents($f); + my %k = $k =~ /(.*?)=(.*)/g; + foreach $s ( keys %k ) { + $k{$s} =~ s/^[^']*\K'|'(?=[^']*$)|;(?=[^;]*$)//g; + $k{$s} =~ s/\\'/'/g; + $c{$s} .= $k{$s}; + } + return %c; + } + else { + return %c; + } +} + +sub embed_header { + my (@args) = @_; + my $charset = + defined($main::force_charset) + ? $main::force_charset + : get_charset(); + + print '', "\n"; + print '', "\n"; + print '', "\n"; + print '', $args[0], '', "\n"; + print '', "\n"; + print '' . "\n"; + print + '' + . "\n"; + ( $args[1] && ( print( $args[1] . "\n" ) ) ); + + ( get_stripped() && return ); + + if ( $args[3] eq '1' ) { + + my @css = ( + 'bootstrap', 'bootstrap.tagsinput', + 'datepicker', 'fontawesome-animation', + 'jquery.jspanel', 'jquery.datatables', + 'fontbase', 'authentic' + ); + + my @js = ( + 'timeplot', 'jquery', + 'jquery-ui', 'jquery.jspanel', + 'jquery.scrollintoview', 'bootbox', + 'jquery.purl', 'bootstrap', + 'bootstrap.tagsinput', 'datepicker', + 'fileinput', 'jquery.datatables', + 'jquery.datatables.plugins', 'jquery.easypiechart', + 'clipboard', 'contextmenu', + 'init' + ); + + if ( $args[2] eq 'debug' ) { + foreach my $css (@css) { + print '' . "\n"; + } + embed_css_fonts(); + } + else { + embed_css_content(); + embed_css_bundle(); + } + + embed_styles(); + embed_settings(); + + if ( $args[2] eq 'debug' ) { + foreach my $js (@js) { + + if ( is_st_p() + && $js eq 'timeplot' ) + { + next; + } + + print '' . "\n"; + } + } + else { + embed_js_bundle(); + embed_js_content(); + embed_js_init(); + } + } + else { + + my @css = ( + 'bootstrap', 'fontawesome-animation', + 'jquery.scrollbar', 'jquery.autocomplete', + 'nprogress', 'messenger', + 'select2', 'fontbase', + 'authentic' + ); + + my @js = ( + 'jquery', 'jquery-ui', + 'bootstrap', 'jquery.scrollbar', + 'jquery.autocomplete', 'momentjs', + 'favico', 'select2', + 'jquery.purl', 'jquery.injectCSS', + 'transition', 'nprogress', + 'messenger', 'init' + ); + + if ( $args[2] eq 'debug' ) { + foreach my $css (@css) { + print '' . "\n"; + } + embed_css_fonts(); + } + else { + embed_css_parent(); + embed_css_bundle(); + } + + if ( length $__settings{'settings_navigation_color'} + && $__settings{'settings_navigation_color'} ne 'blue' ) + { + print '' . "\n"; + } + + embed_styles(); + embed_settings(); + + if ( $args[2] eq 'debug' ) { + foreach my $js (@js) { + print '' . "\n"; + } + } + else { + embed_js_bundle(); + embed_js_parent(); + embed_js_init(); + } + + } + embed_js_scripts(); + print '', "\n"; +} + +sub embed_settings { + + if ( -r $config_directory . "/authentic-theme/settings.js" ) { + + copy_source_dest( + $config_directory . "/authentic-theme/settings.js", + $root_directory . "/authentic-theme/unauthenticated/js" + ); + + print '' . "\n"; + } + elsif ( + -r $root_directory . "/authentic-theme/unauthenticated/js/settings.js" + && !-r $config_directory . "/authentic-theme/settings.js" ) + { + unlink $root_directory + . "/authentic-theme/unauthenticated/js/settings.js"; + } +} + +sub embed_styles { + + if ( -r $config_directory . "/authentic-theme/styles.css" ) { + if ( -s $config_directory + . "/authentic-theme/styles.css" ne -s $root_directory + . "/authentic-theme/unauthenticated/css/styles.css" ) + { + copy_source_dest( + $config_directory . "/authentic-theme/styles.css", + $root_directory . "/authentic-theme/unauthenticated/css" + ); + } + print '' . "\n"; + } + elsif ( + -r $root_directory . "/authentic-theme/unauthenticated/css/styles.css" + && !-r $config_directory . "/authentic-theme/styles.css" ) + { + unlink $root_directory + . "/authentic-theme/unauthenticated/css/styles.css"; + } +} + +sub embed_pm_scripts { + my $scripts = $config_directory . "/authentic-theme/scripts.pm"; + if ( -r $scripts ) { + require $scripts; + } +} + +sub embed_css_fonts { + if ( !$__settings{'settings_font_family'} ) { + print '' . "\n"; + } + elsif ( $__settings{'settings_font_family'} != '1' ) { + print '' . "\n"; + } +} + +sub embed_css_bundle { + print '' . "\n"; + embed_css_fonts(); +} + +sub embed_css_parent { + print '' . "\n"; +} + +sub embed_css_content { + print '' . "\n"; +} + +sub embed_js_timeplot { + print '' . "\n"; +} + +sub embed_js_bundle { + print '' . "\n"; +} + +sub embed_js_parent { + print '' . "\n"; +} + +sub embed_js_content { + print '' . "\n"; +} + +sub embed_js_init { + print '' . "\n"; +} + +sub embed_js_scripts { + + ( get_stripped() && return ); + + if ( -r $config_directory . "/authentic-theme/scripts.js" ) { + if ( -s $config_directory + . "/authentic-theme/scripts.js" ne -s $root_directory + . "/authentic-theme/unauthenticated/js/scripts.js" ) + { + copy_source_dest( + $config_directory . "/authentic-theme/scripts.js", + $root_directory . "/authentic-theme/unauthenticated/js" + ); + } + print '' . "\n"; + } + elsif ( + -r $root_directory . "/authentic-theme/unauthenticated/js/scripts.js" + && !-r $config_directory . "/authentic-theme/scripts.js" ) + { + unlink $root_directory + . "/authentic-theme/unauthenticated/js/scripts.js"; + } +} + +sub embed_footer { + my (@args) = @_; + + ( get_stripped() && return ); + + if ( get_env('script_name') ne '/session_login.cgi' + && get_env('script_name') ne '/pam_login.cgi' ) + { + + print '' + . "\n"; + + if ( $args[1] eq '1' || $args[2] eq 'stripped' ) { + print '' . "\n"; + + # Load `MySQL/PostgreSQL` specific scripts + if ( index( get_module_name(), 'mysql' ) gt '-1' + || index( get_module_name(), 'postgresql' ) gt '-1' ) + { + print '' . "\n"; + } + + # Load `File Manager` specific scripts + if ( index( get_module_name(), 'file-manager' ) gt '-1' + || index( get_module_name(), 'filemin' ) gt '-1' ) + { + print '' . "\n"; + } + } + else { + print '' . "\n"; + } + } +} + +sub is_st_p { + return ( index( $t_uri__i, '/virtual-server/history.cgi' ) == -1 + && index( $t_uri__i, '/server-manager/bwgraph.cgi' ) == -1 + && index( $t_uri__i, '/server-manager/history.cgi' ) == -1 + && index( $t_uri__i, '/server-manager/one_history.cgi' ) == -1 ) + ? 1 + : 0; +} + +sub Atext { + + my $rv = $Atext{ $_[0] }; + $rv =~ s/\$(\d+)/$1 < @_ ? $_[$1] : '$'.$1/ge; + return $rv; +} + +sub init_vars { + our $t_uri__i = get_env('request_uri'); + our %__settings = settings(); + our ( %text, %in, %gconfig, $current_theme, $root_directory, + $theme_root_directory, $t_var_switch_m, $t_var_product_m ); + + our %Atext = ( &load_language($current_theme), %Atext ); + + my $t_sysinfo = index( $t_uri__i, 'sysinfo.cgi' ); + if ( $t_sysinfo != -1 ) { + our %Atext = ( &load_language('virtual-server'), %Atext ); + our %Atext = ( &load_language('server-manager'), %Atext ); + } + + our ( $has_virtualmin, $get_user_level, $has_cloudmin ) = get_user_level(); + + our $t_uri__x = get_env('script_name'); + our $t_uri___i; + our $t_uri____i; + our $t_uri___i_virtualmin; + our $t_uri___i_cloudmin; + our $t_uri_virtualmin = index( $t_uri__i, 'virtualmin' ); + our $t_uri_cloudmin = index( $t_uri__i, 'cloudmin' ); + our $t_uri_webmail = index( $t_uri__i, 'mail' ); + our $t_uri_dashboard = index( $t_uri__i, 'dashboard' ); + + our %gaccess = &get_module_acl(); + our $title = &get_html_framed_title(); + our %cookies = get_cookies(); + + our ( $t_var_switch_m, $t_var_product_m ) = get_swith_mode(); +} + +sub usermin_available { + my ($_module) = @_; + $_module = ( $_module ? '/' . $_module : undef ); + $__usermin_root = $root_directory; + $__usermin_root =~ s/webmin/usermin/; + $__usermin_config = $config_directory; + $__usermin_config =~ s/webmin/usermin/; + + if ( !-d $__usermin_config . '/authentic-theme' ) { + mkdir( $__usermin_config . '/authentic-theme', 0755 ); + } + + if ( -r $__usermin_root . $_module + && -r $__usermin_root . '/web-lib-funcs.pl' ) + { + return 1; + } + else { + return 0; + } + +} + +sub dashboard_switch { + if ( !&foreign_available("virtual-server") + && !&foreign_available("server-manager") + && &get_product_name() ne 'usermin' ) + { + return 1; + } + else { + return 0; + } +} + +sub get_current_user_language { + return substr( + ( + $gconfig{ 'lang' . '_' . $base_remote_user } + ? $gconfig{ 'lang' . '_' . $base_remote_user } + : $gconfig{'lang'} + ), + 0, 2 + ); +} + +sub get_filters { + my ($type) = @_; + return + '-webkit-filter: grayscale(' + . $__settings{ 'settings_grayscale_level_' . $type . '' } . ') ' + . ( $type eq 'navigation' + && 'sepia(' + . $__settings{ 'settings_sepia_level_' . $type . '' } + . ')' ) + . ' saturate(' + . $__settings{ 'settings_saturate_level_' . $type . '' } + . ') hue-rotate(' + . $__settings{ 'settings_hue_level_' . $type . '' } . 'deg)' + . ( $type eq 'navigation' + && ' invert(' + . $__settings{ 'settings_invert_level_' . $type . '' } + . ') brightness(' + . $__settings{ 'settings_brightness_level_' . $type . '' } + . ') contrast(' + . $__settings{ 'settings_contrast_level_' . $type . '' } + . ')' ) + . '; filter: grayscale(' + . $__settings{ 'settings_grayscale_level_' . $type . '' } . ') ' + . ( $type eq 'navigation' + && 'sepia(' + . $__settings{ 'settings_sepia_level_' . $type . '' } + . ')' ) + . ' saturate(' + . $__settings{ 'settings_saturate_level_' . $type . '' } + . ') hue-rotate(' + . $__settings{ 'settings_hue_level_' . $type . '' } . 'deg)' + . ( $type eq 'navigation' + && ' invert(' + . $__settings{ 'settings_invert_level_' . $type . '' } + . ') brightness(' + . $__settings{ 'settings_brightness_level_' . $type . '' } + . ') contrast(' + . $__settings{ 'settings_contrast_level_' . $type . '' } + . ')' ) + . ';'; +} + +sub get_user_level { + my ( $a, $b, $c ); + $b = &foreign_available("server-manager"); + $a = &foreign_available("virtual-server"); + if ($b) { + &foreign_require( "server-manager", "server-manager-lib.pl" ); + } + if ($a) { + &foreign_require( "virtual-server", "virtual-server-lib.pl" ); + } + if ($b) { + $c = $server_manager::access{'owner'} ? 4 : 0; + } + elsif ($a) { + $c = + &virtual_server::master_admin() ? 0 + : &virtual_server::reseller_admin() ? 1 + : 2; + } + elsif ( &get_product_name() eq "usermin" ) { + $c = 3; + } + else { + $c = 0; + } + return ( $a, $c, $b ); +} + +sub get_button_style { + my ( $mod, $label ) = @_; + + my %_lang = reverse load_language($mod); + my $entry = $_lang{ "e_escape($label) }; + + my $class = "default"; + my $icon = ''; + + if ( $entry eq 'edit_createnow' || $entry eq 'edit_savenow' ) { + $icon =~ s/%icon/backup fa-1_25x/ig; + } + elsif (index( $entry, 'save' ) gt "-1" + || $entry eq 'backup_ok2' + || $entry eq 'sharedips_ok' + || $entry eq 'categories_ok' + || $entry eq 'frame_ok' + || $entry eq 'newquotas_ok' + || $entry eq 'newdynip_ok' ) + { + $class = "success "; + $icon =~ s/%icon/check-circle/ig; + } + elsif ( $entry eq 'form_ok' ) { + $class = "success "; + $icon =~ s/%icon/check-circle/ig; + } + elsif ( index( $entry, 'apply' ) gt "-1" ) { + $class = "info "; + $icon =~ s/%icon/check-circle-o/ig; + } + elsif (index( $entry, 'update' ) gt "-1" + || index( $entry, 'index_sync' ) gt "-1" ) + { + $class = "info "; + $icon =~ s/%icon/refresh/ig; + } + elsif (( index( $entry, 'delete' ) gt "-1" && $entry ne 'users_delete' ) + || index( $entry, 'wipe' ) gt "-1" + || index( $entry, 'ddrop_ok' ) gt "-1" + || index( $entry, 'dbs_dok' ) gt "-1" + || index( $entry, 'tprivs_dok' ) gt "-1" + || index( $entry, 'hosts_dok' ) gt "-1" + || index( $entry, 'cprivs_dok' ) gt "-1" + || index( $entry, 'dbase_drop' ) gt "-1" + || index( $entry, 'ddrop_title' ) gt "-1" + || index( $entry, 'dbase_delete2' ) gt "-1" + || index( $entry, 'table_drop' ) gt "-1" + || index( $entry, 'tdrop_title' ) gt "-1" + || index( $entry, 'tdrop_ok' ) gt "-1" + || index( $entry, 'index_drops' ) gt "-1" + || index( $entry, 'delq_confirm' ) gt "-1" + || index( $entry, 'umass_del2' ) gt "-1" + || index( $entry, 'index_gmass' ) gt "-1" + || $entry eq 'html_dtitle' ) + { + $class = "danger "; + + $icon =~ s/%icon/times-circle/ig; + } + elsif ( + ( + index( $entry, 'install' ) gt "-1" + || index( $entry, 'recsok' ) gt "-1" + || $entry eq 'scripts_iok' + || $entry eq 'right_upok' + ) + && index( $entry, 'uninstall' ) eq "-1" + ) + { + $class = "success "; + $icon =~ s/%icon/package-install fa-1_25x/ig; + } + elsif ( index( $entry, 'uninstall' ) gt "-1" || $entry eq 'drecs_ok' ) { + $class = "danger "; + $icon =~ s/%icon/times-circle-o/ig; + } + elsif ( index( $entry, 'upgrade' ) gt "-1" ) { + $class = "info "; + $icon =~ s/%icon/update/ig; + } + elsif ( index( $entry, 'index_srefresh' ) gt "-1" ) { + $icon =~ s/%icon/user-md/ig; + } + elsif ( index( $entry, 'quota' ) gt "-1" ) { + $icon =~ s/%icon/pie-chart/ig; + } + elsif (index( $entry, 'addboot' ) gt "-1" + || index( $entry, 'enable' ) gt "-1" + || $entry eq 'massdomains_enaok' ) + { + $icon =~ s/%icon/toggle-switch fa-1_25x/ig; + } + elsif ( index( $entry, 'shutdown' ) gt "-1" ) { + $icon =~ s/%icon/power-off/ig; + } + elsif ( index( $entry, 'docker_reg' ) gt "-1" ) { + $icon =~ s/%icon/check-circle-o/ig; + } + elsif ( $entry eq 'tmpl_nprev' || $entry eq 'wizard_prev' ) { + $icon =~ s/%icon/arrow-circle-o-left/ig; + } + elsif ($entry eq 'tmpl_nnext' + || $entry eq 'wizard_next' + || $entry eq 'tmpl_cnext' + || $entry eq 'tmpl_snext' + || $entry eq 'download_cont' ) + { + $icon =~ s/%icon/arrow-circle-o-right/ig; + } + elsif ( index( $entry, 'cancel' ) gt "-1" ) { + $icon =~ s/%icon/times-circle-o/ig; + } + elsif ( $entry eq 'ticket_submit' ) { + $icon =~ s/%icon/question-circle/ig; + } + elsif ( $entry eq 'passwd_change' ) { + $icon =~ s/%icon/key-li/ig; + } + elsif ( $entry eq 'newnotify_ok' ) { + $icon =~ s/%icon/send fa-1_25x/ig; + } + elsif ( $entry eq 'nf_seen' ) { + $icon =~ s/%icon/clear-all fa-1_25x/ig; + } + elsif ( index( $entry, 'history_ok' ) gt "-1" ) { + $icon =~ s/%icon/area-chart/ig; + } + elsif ( index( $entry, 'edit_open' ) gt "-1" ) { + $icon =~ s/%icon/files-o/ig; + } + elsif (index( $entry, 'reboot' ) gt "-1" + || $entry eq 'view_refresh' + || index( $entry, 'refreshmods_title' ) gt "-1" + || $entry eq 'index_buttinit' ) + { + if ( index( $entry, 'refreshmods_title' ) gt "-1" ) { + $class = "primary "; + } + elsif ($entry ne 'reboot_ok' && $entry ne 'index_reboot' + || $entry eq 'index_buttinit' ) + { + $class = "warning "; + } + $icon =~ s/%icon/refresh-fi fa-1_25x/ig; + } + elsif (index( $entry, 'search' ) gt "-1" + || index( $entry, 'index_broad' ) gt "-1" + || $entry eq 'scripts_findok' + || $entry eq 'kill_title' ) + { + $class = "info "; + $icon =~ s/%icon/search/ig; + } + elsif ( index( $entry, 'restart' ) gt "-1" || $entry eq 'edit_kill' ) { + $class = "warning "; + $icon =~ s/%icon/refresh/ig; + } + elsif ( $entry eq "ddrop_empty" ) { + $class = "warning "; + $icon =~ s/%icon/times-circle-o/ig; + } + elsif ( index( $entry, 'start' ) gt "-1" ) { + $class = "success "; + $icon =~ s/%icon/play/ig; + } + elsif (index( $entry, 'index_stop' ) gt "-1" + || index( $entry, 'edit_stopnow' ) gt "-1" ) + { + $class = "danger "; + $icon =~ s/%icon/stop/ig; + } + elsif ( index( $entry, 'ok_ok' ) gt "-1" ) { + $icon =~ s/%icon/check-square-o/ig; + $class = "success "; + } + elsif ( index( $entry, 'index_delboot' ) gt "-1" ) { + $class = "grey "; + $icon =~ s/%icon/toggle-switch-off fa-1_25x/ig; + } + elsif (index( $entry, 'index_refsel' ) gt "-1" + || $entry eq 'index_reset' + || $entry eq 'index_regen' + || $entry eq 'index_reload' ) + { + $class = "warning "; + $icon =~ s/%icon/refresh/ig; + } + elsif ( $entry eq 'index_script' ) { + $icon =~ s/%icon/update/ig; + } + elsif ( index( $entry, 'status' ) gt "-1" ) { + $icon =~ s/%icon/info-circle/ig; + } + elsif ( $entry eq 'index_clear' || $entry eq 'shell_clear' ) { + $icon =~ s/%icon/history/ig; + } + elsif ( $entry eq 'index_clearcmds' || $entry eq 'shell_clearcmds' ) { + $icon =~ s/%icon/broom fa-1_25x/ig; + } + elsif ($entry eq 'index_boot' + || $entry eq 'index_bootup' + || $entry eq 'index_atboot' + || $entry eq 'massdomains_disok' + || index( $entry, 'disable' ) gt "-1" ) + { + $icon =~ s/%icon/toggle-switch-off fa-1_25x/ig; + } + elsif (index( $entry, 'index_global' ) gt "-1" + || $entry eq 'umass_ok' + || $entry eq 'vars_edit' + || $entry eq 'lusers_mass' + || $entry eq 'root_ok' + || $entry eq 'index_edit' ) + { + $class = "primary "; + $icon =~ s/%icon/pencil-square-o/ig; + } + elsif ( index( $entry, 'clone' ) gt "-1" ) { + $icon =~ s/%icon/clone/ig; + } + elsif ( index( $entry, 'index_tmpls' ) gt "-1" ) { + $icon =~ s/%icon/table-edit fa-1_25x/ig; + } + elsif (index( $entry, 'index_sched' ) gt "-1" + || index( $entry, 'sched_title' ) gt "-1" ) + { + if ( index( $entry, 'sched_title' ) gt "-1" ) { + $class = "primary "; + } + $icon =~ s/%icon/clock/ig; + } + elsif ( index( $entry, 'uedit_mail' ) gt "-1" ) { + $icon =~ s/%icon/envelope/ig; + } + elsif ( index( $entry, 'uedit_swit' ) gt "-1" || $entry eq 'user_switch' ) { + $icon =~ s/%icon/webmin/ig; + } + elsif (index( $entry, 'uedit_logins' ) gt "-1" + || index( $entry, 'index_logins' ) gt "-1" + || $entry eq 'login_enable' ) + { + $icon =~ s/%icon/key/ig; + } + elsif ( index( $entry, 'index_who' ) gt "-1" ) { + $icon =~ s/%icon/sign-in/ig; + } + elsif ( $entry eq 'dbase_add' || $entry eq 'databases_import' ) { + $class = "success "; + $icon =~ s/%icon/database-plus fa-1_25x/ig; + } + elsif ( + ( + index( $entry, 'add' ) gt "-1" + && $entry ne 'dbase_addview' + && $entry ne 'edit_addinc' + ) + || ( index( $entry, 'create' ) gt "-1" + && $entry ne 'user_priv_create_view' ) + || index( $entry, 'index_crnow' ) gt "-1" + || $entry eq 'view_new' + || $entry eq 'mass_ok' + || $entry eq 'rmass_ok' + ) + { + $class = "success "; + $icon =~ s/%icon/plus-circle/ig; + } + elsif (index( $entry, 'force_title' ) gt "-1" + || index( $entry, 'index_force' ) gt "-1" ) + { + $class = "warning "; + $icon =~ + s/%icon/rotate-3d fa-1_25x margined-left--3 margined-right--3/ig; + } + elsif ( index( $entry, 'csv' ) gt "-1" ) { + $icon =~ s/%icon/export/ig; + } + elsif ($entry eq 'backup_title' + || $entry eq 'dbase_backup' + || $entry eq 'backup_ok' + || $entry eq 'backup_now' ) + { + $icon =~ s/%icon/backup fa-1_25x/ig; + } + elsif (index( $entry, 'dbase_exec' ) gt "-1" + || index( $entry, 'exec_exec' ) gt "-1" + || index( $entry, 'user_priv_execute' ) gt "-1" + || index( $entry, 'exec_title' ) gt "-1" + || index( $entry, 'exec_tabexec' ) gt "-1" ) + { + $icon =~ s/%icon/database/ig; + } + elsif (index( $entry, 'create_view' ) gt "-1" + || index( $entry, 'addview' ) gt "-1" + || $entry eq "view_title1" ) + { + $icon =~ s/%icon/list/ig; + } + elsif ( $entry eq 'table_data' ) { + $icon =~ s/%icon/database-outline/ig; + } + elsif ( $entry eq 'index_title1' || $entry eq 'table_index' ) { + $icon =~ s/%icon/key-plus fa-1_25x/ig; + } + elsif ( $entry eq 'transfer_transferok' ) { + $icon =~ s/%icon/transform fa-1_25x/ig; + } + elsif ($entry eq 'transfer_uploadok' + || $entry eq 'transfer_tabupload' + || $entry eq 'html_uploadok' ) + { + $class = "primary "; + $icon =~ s/%icon/upload/ig; + } + elsif ( $entry eq 'index_down' || $entry eq 'transfer_downloadok' ) { + $class = "primary "; + $icon =~ s/%icon/download/ig; + } + elsif ( $entry eq 'index_up' || $entry eq 'download_need' ) { + $class = "primary "; + $icon =~ s/%icon/download/ig; + } + elsif (index( $entry, 'umass_del1' ) gt "-1" + || index( $entry, 'gdel_del' ) gt "-1" + || index( $entry, 'gdel_title' ) gt "-1" + || $entry eq 'drecs_title' + || $entry eq 'rdmass_ok' ) + { + $icon =~ s/%icon/times-circle-o/ig; + } + elsif ( $entry eq 'users_dok' || $entry eq 'users_delete' ) { + $class = "danger "; + $icon =~ s/%icon/user-times/ig; + } + elsif ( $entry eq 'index_mass2' ) { + $class = "warning "; + $icon =~ s/%icon/toggle-switch fa-1_25x/ig; + } + elsif ( $entry eq 'index_mass3' ) { + $class = "success "; + $icon =~ s/%icon/toggle-switch-off fa-1_25x/ig; + } + elsif ($entry eq 'index_ok' + || $entry eq 'assignment_ok' + || $entry eq 'lang_ok' ) + { + $icon =~ s/%icon/check-circle-o/ig; + } + else { + $icon = undef; + } + + return ( $entry, $class, $icon ); +} + +sub theme_version { + my ($switch) = @_; + my $sh__ln__p___version = '18.30'; + my $sh__ln__c___version = '18.31'; + ( ( !$switch ) && ( $sh__ln__c___version =~ s/\.//ig ) ); + return $sh__ln__c___version; +} + +sub theme_mode { + return 'production'; +} + +sub get_env { + my ($key) = @_; + return $ENV{ uc($key) }; +} + +sub get_user_home { + my @my_user_info = $remote_user ? getpwnam($remote_user) : getpwuid($<); + return @my_user_info[7]; +} + +sub get_stripped { + if ( index( get_env('request_uri'), 'stripped=1' ) gt -1 ) { + return 1; + } + else { + return 0; + } +} + +sub get_raw { + if ( index( get_env('request_uri'), 'stripped=1&stripped=2' ) gt -1 ) { + return 1; + } + else { + return 0; + } +} + +sub ltrim { + my $s = shift; + $s =~ s/^\s+//; + return $s; +} + +sub rtrim { + my $s = shift; + $s =~ s/\s+$//; + return $s; +} + +sub trim { + my $s = shift; + $s =~ s/^\s+|\s+$//g; + return $s; +} + +sub replace { + my ( $from, $to, $string ) = @_; + $string =~ s/$from/$to/ig; + + return $string; +} + +1; diff --git a/authentic-lib.pm b/authentic-lib.pm new file mode 100644 index 000000000..0da7569f7 --- /dev/null +++ b/authentic-lib.pm @@ -0,0 +1,3872 @@ +# +# Authentic Theme 18.31 (https://github.com/qooob/authentic-theme) +# Copyright 2014-2016 Ilia Rostovtsev +# Licensed under MIT (https://github.com/qooob/authentic-theme/blob/master/LICENSE) +# + +our ( %in, %text, %config ); + +BEGIN { push( @INC, ".." ); } +use WebminCore; +init_type(); +init_config(); + +use lib 'authentic-theme/lib'; +use JSON qw( decode_json ); + +do "authentic-theme/authentic-init.pm"; + +sub authentic { + init(); + header($title); + content(); + footer(); +} + +sub licenses { + my ($id) = @_; + if ( &foreign_available("virtual-server") && $id eq "vm" ) { + my %virtualmin = &get_module_info("virtual-server"); + if ( $virtualmin{'version'} =~ /gpl/igs ) { + return 0; + } + else { + return 1; + } + } + elsif ( &foreign_available("server-manager") && $id eq "cm" ) { + my %cloudmin = &get_module_info("server-manager"); + if ( $cloudmin{'version'} =~ /gpl/igs ) { + return 0; + } + else { + return 1; + } + } + else { + return 0; + } +} + +sub print_category { + my ( $c, $label ) = @_; + $label = $c eq "others" ? $Atext{'left_others'} : $label; + + my %icon_table = ( + 'webmin' => 'fa-cog', + 'usermin' => 'fa-cog', + 'settings' => 'fa-cog', + 'global_setting' => 'fa-cog', + 'cat_settings' => 'fa-cog', + 'system' => 'fa-wrench', + 'cat_system' => 'fa-wrench', + 'servers' => 'fa-rocket', + 'other' => 'fa-gavel', + 'info' => 'fa-info', + 'hardware' => 'fa-hdd-o', + 'global_hardware' => 'fa-hdd-o', + 'global_storage' => 'fa-hdd-o', + 'cluster' => 'fa-power-off', + 'global_cluster' => 'fa-power-off', + 'unused' => 'fa-puzzle-piece', + 'global_unused' => 'fa-puzzle-piece', + 'mail' => 'fa-envelope', + 'global_mail' => 'fa-envelope', + 'email' => 'fa-envelope', + 'global_email' => 'fa-envelope', + 'login' => 'fa-user', + 'global_login' => 'fa-user', + 'apps' => 'fa-rocket', + 'global_apps' => 'fa-rocket', + 'custom' => 'fa-wrench', + 'global_custom' => 'fa-wrench', + 'net' => 'fa-shield', + 'ip' => 'fa-shield', + 'global_ip' => 'fa-shield', + 'check' => 'fa-user-md', + 'global_check' => 'fa-user-md', + 'add' => 'fa-plus', + 'global_add' => 'fa-plus', + 'backup' => 'fa-floppy-o', + 'global_backup' => 'fa-floppy-o', + 'global_server', => 'fa-cogs', + 'cat_server', => 'fa-cogs', + 'global_system' => 'fa-cogs', + 'global_delete' => 'fa-plug', + 'cat_delete' => 'fa-plug', + 'global_logs' => 'fa-file-text', + 'cat_logs' => 'fa-file-text', + 'global_services' => 'fa-puzzle-piece', + 'cat_services' => 'fa-puzzle-piece', + 'create_new' => 'fa-plus', + 'global_gce' => 'fa-google', + 'global_ec2' => 'fa-cubes', + 'global_hosts' => 'fa-globe', + 'global_virtualmin' => 'fa-sun-o', + 'global_owners' => 'fa-users', + 'global_monitor' => 'fa-desktop', + 'global_settings' => 'fa-cloud', + 'cat_manage' => 'fa-gavel', + 'cat_res' => 'fa-share-alt', + 'global_admin' => 'fa-key', + 'cat_admin' => 'fa-key', + 'global_power' => 'fa-power-off', + 'cat_power' => 'fa-power-off', + ); + my $icon = $icon_table{$c} || 'fa-link'; + + if ($label) { + + # Show link to close or open catgory + print '
  • ' . "\n"; + print ' ' + . $label + . '' . "\n"; + print '
  • ' . "\n"; + } +} + +sub get_swith_mode { + my ( $t_var_switch_m, $t_var_product_m ); + + if ( &get_product_name() eq 'webmin' + && &foreign_available("asterisk") ) + { + $t_var_switch_m = '2'; + $t_var_product_m = '5'; + } + elsif (&get_product_name() eq 'usermin' + && &foreign_available("mailbox") ) + { + $t_var_switch_m = '2'; + $t_var_product_m = '4'; + } + elsif (!&foreign_available("virtual-server") + && !&foreign_available("server-manager") + || &get_product_name() eq 'usermin' + || $get_user_level eq '2' ) + { + + $t_var_switch_m = '2'; + $t_var_product_m = '1'; + } + elsif (&foreign_available("virtual-server") + && &foreign_available("server-manager") ) + { + $t_var_switch_m = '3'; + $t_var_product_m = '3'; + } + elsif ( + &foreign_available("virtual-server") + || &foreign_available("server-manager") + && ( !&foreign_available("virtual-server") + || !&foreign_available("server-manager") ) + ) + { + $t_var_switch_m = '2'; + $t_var_product_m = '2'; + } + + return ( $t_var_switch_m, $t_var_product_m ); +} + +sub print_switch_webmin { + print ' + '; +} + +sub print_switch_dashboard { + print +' + '; +} + +sub print_switch_virtualmin { + print +' + '; +} + +sub print_switch_cloudmin { + print +' + '; +} + +sub print_switch_webmail { + print +' + '; +} + +sub print_switch_thirdlane { + print +' + '; +} + +sub print_switch { + my $o = ( + $__settings{'settings_switch_rdisplay'} ne 'true' + ? 'd' + : 'r' + ); + + print '
    '; + if ( $t_var_product_m eq '1' ) { + if ( $o eq 'd' ) { + if ( $get_user_level eq '2' ) { + print_switch_webmin(); + print_switch_virtualmin(); + + } + else { + print_switch_webmin(); + print_switch_dashboard(); + } + } + else { + if ( $get_user_level eq '2' ) { + print_switch_virtualmin(); + print_switch_webmin(); + + } + else { + print_switch_dashboard(); + print_switch_webmin(); + } + } + } + if ( $t_var_product_m eq '2' ) { + + if ( $o eq 'd' ) { + print_switch_webmin(); + &foreign_available("virtual-server") + ? print_switch_virtualmin() + : print_switch_cloudmin(); + + } + else { + &foreign_available("virtual-server") + ? print_switch_virtualmin() + : print_switch_cloudmin(); + print_switch_webmin(); + + } + + } + if ( $t_var_product_m eq '3' ) { + if ( $o eq 'd' ) { + print_switch_webmin(); + print_switch_virtualmin(); + print_switch_cloudmin(); + + } + else { + print_switch_cloudmin(); + print_switch_virtualmin(); + print_switch_webmin(); + + } + } + if ( $t_var_product_m eq '4' ) { + + if ( $o eq 'd' ) { + print_switch_webmail(); + print_switch_webmin(); + } + else { + print_switch_webmin(); + print_switch_webmail(); + } + + } + if ( $t_var_product_m eq '5' ) { + + if ( $o eq 'd' ) { + print_switch_webmin(); + print_switch_thirdlane(); + } + else { + print_switch_thirdlane(); + print_switch_webmin(); + } + + } + print ' +

    '; +} + +sub print_category_link { + my ( $link, $label, $state ) = @_; + print '