New, simpler WEB UI
3
data/templates/web/apache_default.descr
Normal file
@ -0,0 +1,3 @@
|
||||
# Default template with basic php module restrictions.
|
||||
# Best performance. Not recomended for shared hosting.
|
||||
PHP='module' CGI='yes' ELOG='no'
|
49
data/templates/web/apache_default.stpl
Normal file
@ -0,0 +1,49 @@
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_value upload_tmp_dir %home%/%user%/tmp
|
||||
php_admin_value upload_max_filesize 10M
|
||||
php_admin_value max_execution_time 20
|
||||
php_admin_value post_max_size 8M
|
||||
php_admin_value memory_limit 32M
|
||||
php_admin_flag mysql.allow_persistent off
|
||||
php_admin_flag safe_mode off
|
||||
php_admin_value session.save_path %home%/%user%/tmp
|
||||
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir %home%/%user%/web:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
Include %home%/%user%/conf/shttpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
43
data/templates/web/apache_default.tpl
Normal file
@ -0,0 +1,43 @@
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_value upload_tmp_dir %home%/%user%/tmp
|
||||
php_admin_value upload_max_filesize 10M
|
||||
php_admin_value max_execution_time 20
|
||||
php_admin_value post_max_size 8M
|
||||
php_admin_value memory_limit 32M
|
||||
php_admin_flag mysql.allow_persistent off
|
||||
php_admin_flag safe_mode off
|
||||
php_admin_value session.save_path %home%/%user%/tmp
|
||||
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir %home%/%user%/web:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
Include %home%/%user%/conf/httpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
3
data/templates/web/apache_phpcgi.descr
Normal file
@ -0,0 +1,3 @@
|
||||
# Template with php as cgi for better security.
|
||||
# (it use post instal script)
|
||||
PHP='cgi' CGI='yes' ELOG='no'
|
16
data/templates/web/apache_phpcgi.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
# Adding php wrapper
|
||||
user="$1"
|
||||
domain="$2"
|
||||
ip="$3"
|
||||
home_dir="$4"
|
||||
docroot="$5"
|
||||
|
||||
wrapper_script='#!/usr/bin/php-cgi -cphp5-cgi.ini'
|
||||
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/php"
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file
|
||||
chown $user:$user $wrapper_file
|
||||
chmod -f 751 $wrapper_file
|
||||
|
||||
exit 0
|
35
data/templates/web/apache_phpcgi.stpl
Normal file
@ -0,0 +1,35 @@
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_flag engine off
|
||||
Action phpcgi-script /cgi-bin/php
|
||||
AddHandler phpcgi-script .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir %home%/%user%/web:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
|
||||
Include %home%/%user%/conf/shttpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
27
data/templates/web/apache_phpcgi.tpl
Normal file
@ -0,0 +1,27 @@
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_flag engine off
|
||||
Action phpcgi-script /cgi-bin/php
|
||||
AddHandler phpcgi-script .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
Include %home%/%user%/conf/httpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
3
data/templates/web/apache_phpfcgid.descr
Normal file
@ -0,0 +1,3 @@
|
||||
# Template with php as FastCGI for best performance and security.
|
||||
# (it use post instal script)
|
||||
PHP='fcgid' CGI='yes' ELOG='no'
|
22
data/templates/web/apache_phpfcgid.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# Adding php wrapper
|
||||
user="$1"
|
||||
domain="$2"
|
||||
ip="$3"
|
||||
home_dir="$4"
|
||||
docroot="$5"
|
||||
|
||||
wrapper_script="#!/bin/sh
|
||||
PHPRC=/etc/
|
||||
export PHPRC
|
||||
export PHP_FCGI_MAX_REQUESTS=1000
|
||||
export PHP_FCGI_CHILDREN=8
|
||||
exec /usr/bin/php-cgi
|
||||
"
|
||||
wrapper_file="$home_dir/$user/web/$domain/cgi-bin/fcgi-starter"
|
||||
|
||||
echo "$wrapper_script" > $wrapper_file
|
||||
chown $user:$user $wrapper_file
|
||||
chmod -f 751 $wrapper_file
|
||||
|
||||
exit 0
|
35
data/templates/web/apache_phpfcgid.stpl
Normal file
@ -0,0 +1,35 @@
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_flag engine off
|
||||
AddHandler fcgid-script .php
|
||||
FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir %home%/%user%/web:%home%/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
|
||||
Include %home%/%user%/conf/shttpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
27
data/templates/web/apache_phpfcgid.tpl
Normal file
@ -0,0 +1,27 @@
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride AuthConfig FileInfo Indexes Limit
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_flag engine off
|
||||
AddHandler fcgid-script .php
|
||||
FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
Include %home%/%user%/conf/httpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
2
data/templates/web/apache_unlim.descr
Normal file
@ -0,0 +1,2 @@
|
||||
# Almost unlimited php options and vhost configuration.
|
||||
PHP='module' CGI='yes' ELOG='yes'
|
50
data/templates/web/apache_unlim.stpl
Normal file
@ -0,0 +1,50 @@
|
||||
<VirtualHost %ip%:%web_ssl_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride All
|
||||
SSLRequireSSL
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_value upload_tmp_dir %home%/%user%/tmp
|
||||
php_admin_value upload_max_filesize 60M
|
||||
php_admin_value max_execution_time 60
|
||||
php_admin_value post_max_size 60M
|
||||
php_admin_value memory_limit 60M
|
||||
php_admin_flag mysql.allow_persistent off
|
||||
php_admin_flag safe_mode off
|
||||
php_admin_value session.save_path %home%/%user%/tmp
|
||||
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir none
|
||||
SSLEngine on
|
||||
SSLVerifyClient none
|
||||
SSLCertificateFile %ssl_crt%
|
||||
SSLCertificateKeyFile %ssl_key%
|
||||
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
|
||||
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
Include %home%/%user%/conf/shttpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
44
data/templates/web/apache_unlim.tpl
Normal file
@ -0,0 +1,44 @@
|
||||
<VirtualHost %ip%:%web_port%>
|
||||
|
||||
ServerName %domain_idn%
|
||||
%alias_string%
|
||||
ServerAdmin %email%
|
||||
%docroot_string%
|
||||
%cgi%ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
|
||||
Alias /vstats/ %home%/%user%/web/%domain%/stats/
|
||||
Alias /error/ %home%/%user%/web/%domain%/document_errors/
|
||||
SuexecUserGroup %user% %group%
|
||||
CustomLog /var/log/httpd/domains/%domain%.bytes bytes
|
||||
CustomLog /var/log/httpd/domains/%domain%.log combined
|
||||
%elog%ErrorLog /var/log/httpd/domains/%domain%.error.log
|
||||
<Directory %docroot%>
|
||||
AllowOverride All
|
||||
Options +Includes -Indexes %cgi_option%
|
||||
php_admin_value upload_tmp_dir %home%/%user%/tmp
|
||||
php_admin_value upload_max_filesize 60M
|
||||
php_admin_value max_execution_time 60
|
||||
php_admin_value post_max_size 60M
|
||||
php_admin_value memory_limit 60M
|
||||
php_admin_flag mysql.allow_persistent off
|
||||
php_admin_flag safe_mode off
|
||||
php_admin_value session.save_path %home%/%user%/tmp
|
||||
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'
|
||||
</Directory>
|
||||
<Directory %home%/%user%/web/%domain%/stats>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
php_admin_value open_basedir none
|
||||
|
||||
<IfModule mod_ruid2.c>
|
||||
RMode config
|
||||
RUidGid %user% %group%
|
||||
RGroups apache
|
||||
</IfModule>
|
||||
<IfModule itk.c>
|
||||
AssignUserID %user% %group%
|
||||
</IfModule>
|
||||
|
||||
Include %home%/%user%/conf/httpd.%domain%.conf*
|
||||
|
||||
</VirtualHost>
|
||||
|
133
data/templates/web/awstats.tpl
Normal file
@ -0,0 +1,133 @@
|
||||
LogFile="/var/log/httpd/domains/%domain%.log"
|
||||
LogType=W
|
||||
LogFormat=1
|
||||
LogSeparator=" "
|
||||
SiteDomain="%domain_idn%"
|
||||
HostAliases="%alias_idn%"
|
||||
DirData="%home%/%user%/web/%domain%/stats"
|
||||
DirCgi="/stats"
|
||||
DirIcons="/stats/icon"
|
||||
AllowToUpdateStatsFromBrowser=0
|
||||
AllowFullYearView=2
|
||||
EnableLockForUpdate=1
|
||||
DNSStaticCacheFile="dnscache.txt"
|
||||
DNSLastUpdateCacheFile="dnscachelastupdate.txt"
|
||||
SkipDNSLookupFor=""
|
||||
AllowAccessFromWebToAuthenticatedUsersOnly=0
|
||||
AllowAccessFromWebToFollowingAuthenticatedUsers=""
|
||||
AllowAccessFromWebToFollowingIPAddresses=""
|
||||
CreateDirDataIfNotExists=0
|
||||
BuildHistoryFormat=text
|
||||
BuildReportFormat=html
|
||||
SaveDatabaseFilesWithPermissionsForEveryone=0
|
||||
PurgeLogFile=0
|
||||
ArchiveLogRecords=0
|
||||
KeepBackupOfHistoricFiles=1
|
||||
DefaultFile="index.php index.html"
|
||||
SkipHosts="127.0.0.1
|
||||
SkipUserAgents=""
|
||||
SkipFiles=""
|
||||
SkipReferrersBlackList=""
|
||||
OnlyHosts=""
|
||||
OnlyUserAgents=""
|
||||
OnlyUsers=""
|
||||
OnlyFiles=""
|
||||
NotPageList="css js class gif jpg jpeg png bmp ico rss xml swf"
|
||||
ValidHTTPCodes="200 304"
|
||||
ValidSMTPCodes="1 250"
|
||||
AuthenticatedUsersNotCaseSensitive=0
|
||||
URLNotCaseSensitive=0
|
||||
URLWithAnchor=0
|
||||
URLQuerySeparators="?;"
|
||||
URLWithQuery=0
|
||||
URLWithQueryWithOnlyFollowingParameters=""
|
||||
URLWithQueryWithoutFollowingParameters=""
|
||||
URLReferrerWithQuery=0
|
||||
WarningMessages=1
|
||||
ErrorMessages=""
|
||||
DebugMessages=0
|
||||
NbOfLinesForCorruptedLog=50
|
||||
WrapperScript=""
|
||||
DecodeUA=0
|
||||
MiscTrackerUrl="/js/awstats_misc_tracker.js"
|
||||
UseFramesWhenCGI=1
|
||||
DetailedReportsOnNewWindows=1
|
||||
Expires=3600
|
||||
MaxRowsInHTMLOutput=1000
|
||||
Lang="auto"
|
||||
DirLang="./lang"
|
||||
ShowMenu=1
|
||||
ShowSummary=UVPHB
|
||||
ShowMonthStats=UVPHB
|
||||
ShowDaysOfMonthStats=VPHB
|
||||
ShowDaysOfWeekStats=PHB
|
||||
ShowHoursStats=PHB
|
||||
ShowDomainsStats=PHB
|
||||
ShowHostsStats=PHBL
|
||||
ShowAuthenticatedUsers=0
|
||||
ShowRobotsStats=HBL
|
||||
ShowWormsStats=0
|
||||
ShowEMailSenders=0
|
||||
ShowEMailReceivers=0
|
||||
ShowSessionsStats=1
|
||||
ShowPagesStats=PBEX
|
||||
ShowFileTypesStats=HB
|
||||
ShowFileSizesStats=0
|
||||
ShowDownloadsStats=HB
|
||||
ShowOSStats=1
|
||||
ShowBrowsersStats=1
|
||||
ShowScreenSizeStats=0
|
||||
ShowOriginStats=PH
|
||||
ShowKeyphrasesStats=1
|
||||
ShowKeywordsStats=1
|
||||
ShowMiscStats=a
|
||||
ShowHTTPErrorsStats=1
|
||||
ShowSMTPErrorsStats=0
|
||||
ShowClusterStats=0
|
||||
AddDataArrayMonthStats=1
|
||||
AddDataArrayShowDaysOfMonthStats=1
|
||||
AddDataArrayShowDaysOfWeekStats=1
|
||||
AddDataArrayShowHoursStats=1
|
||||
IncludeInternalLinksInOriginSection=0
|
||||
MaxNbOfDomain = 10
|
||||
MinHitDomain = 1
|
||||
MaxNbOfHostsShown = 10
|
||||
MinHitHost = 1
|
||||
MaxNbOfLoginShown = 10
|
||||
MinHitLogin = 1
|
||||
MaxNbOfRobotShown = 10
|
||||
MinHitRobot = 1
|
||||
MaxNbOfDownloadsShown = 10
|
||||
MinHitDownloads = 1
|
||||
MaxNbOfPageShown = 10
|
||||
MinHitFile = 1
|
||||
MaxNbOfOsShown = 10
|
||||
MinHitOs = 1
|
||||
MaxNbOfBrowsersShown = 10
|
||||
MinHitBrowser = 1
|
||||
MaxNbOfScreenSizesShown = 5
|
||||
MinHitScreenSize = 1
|
||||
MaxNbOfWindowSizesShown = 5
|
||||
MinHitWindowSize = 1
|
||||
MaxNbOfRefererShown = 10
|
||||
MinHitRefer = 1
|
||||
MaxNbOfKeyphrasesShown = 10
|
||||
MinHitKeyphrase = 1
|
||||
MaxNbOfKeywordsShown = 10
|
||||
MinHitKeyword = 1
|
||||
MaxNbOfEMailsShown = 20
|
||||
MinHitEMail = 1
|
||||
FirstDayOfWeek=0
|
||||
ShowFlagLinks=""
|
||||
ShowLinksOnUrl=1
|
||||
UseHTTPSLinkForUrl=""
|
||||
MaxLengthOfShownURL=64
|
||||
HTMLHeadSection=""
|
||||
HTMLEndSection=""
|
||||
MetaRobot=0
|
||||
Logo="awstats_logo6.png"
|
||||
LogoLink="http://awstats.sourceforge.net"
|
||||
BarWidth = 260
|
||||
BarHeight = 90
|
||||
StyleSheet=""
|
||||
ExtraTrackedRowsLimit=500
|
10
data/templates/web/awstats_index.tpl
Normal file
@ -0,0 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Awstats log analyzer </title>
|
||||
</head>
|
||||
<frameset rows="48,*" cols="*">
|
||||
<frame src="nav.html" name="nav" scrolling="no" noresize>
|
||||
<frame src="%month%/index.html" name="stats">
|
||||
</frameset>
|
||||
</html>
|
23
data/templates/web/awstats_nav.tpl
Normal file
@ -0,0 +1,23 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Awstats navigation</title>
|
||||
<script language="javascript">
|
||||
function change() {
|
||||
top.stats.location= document.period.select.value + '/';
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><img src="http://vestacp.com/i/logo.png" alt="vesta"></td>
|
||||
<td><form name="period" action="" method="get">
|
||||
<select name="select" ONCHANGE="change()">
|
||||
%select_month%
|
||||
</select>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
25
data/templates/web/email_reset_password.tpl
Normal file
@ -0,0 +1,25 @@
|
||||
<div lang="en" style="background-color:#fff;color:#222">
|
||||
<a target="_blank" href="" style="color:#FFF">
|
||||
<img width="81" height="22" style="display:block;border:0" src="http://vestacp.com/i/logo.png" alt="Twitter">
|
||||
</a>
|
||||
<div style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;font-size:13px;margin:14px">
|
||||
<h2 style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;margin:0 0 16px;font-size:18px;font-weight:normal">
|
||||
Vesta received a request to reset the password for your account %FIRSTNAME% %LASTNAME% (%LOGIN%)?
|
||||
</h2>
|
||||
<p>
|
||||
If you want to reset your password, click on the link below (or copy and paste the URL into your browser):<br>
|
||||
<a target="_blank" href="%LINK%"></a>
|
||||
</p>
|
||||
<p>
|
||||
If you don't want to reset your password, please ignore this message.
|
||||
Your password will not be reset.
|
||||
If you have any concerns, please contact us at support@vestacp.com.
|
||||
</p>
|
||||
<p style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;font-size:13px;line-height:18px;border-bottom:1px solid rgb(238, 238, 238);padding-bottom:10px;margin:0 0 10px">
|
||||
<span style="font:italic 13px Georgia,serif;color:rgb(102, 102, 102)">VestaCP</span>
|
||||
</p>
|
||||
<p style="font-family:'Helvetica Neue', Arial, Helvetica, sans-serif;margin-top:5px;font-size:10px;color:#888888">
|
||||
Please do not reply to this message; it was sent from an unmonitored email address.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
9
data/templates/web/ngingx_ip.tpl
Normal file
@ -0,0 +1,9 @@
|
||||
server {
|
||||
listen %ip%:%proxy_port% default;
|
||||
server_name _;
|
||||
#access_log /var/log/nginx/%ip%.log main;
|
||||
location / {
|
||||
proxy_pass http://%ip%:%web_port%;
|
||||
}
|
||||
}
|
||||
|
2
data/templates/web/ngingx_vhost_default.descr
Normal file
@ -0,0 +1,2 @@
|
||||
# Default template for static content speed optimization.
|
||||
# Best in most cases.
|
36
data/templates/web/ngingx_vhost_default.stpl
Normal file
@ -0,0 +1,36 @@
|
||||
server {
|
||||
listen %ip%:%proxy_ssl_port%;
|
||||
server_name %domain_idn% %alias_idn%;
|
||||
ssl on;
|
||||
ssl_certificate %ssl_pem%;
|
||||
ssl_certificate_key %ssl_key%;
|
||||
%elog%error_log /var/log/httpd/domains/%domain%.error.log error;
|
||||
|
||||
location / {
|
||||
%proxy_string%
|
||||
location ~* ^.+\.(%nginx_extentions%)$ {
|
||||
root %docroot%;
|
||||
access_log /var/log/httpd/domains/%domain%.log combined;
|
||||
access_log /var/log/httpd/domains/%domain%.bytes bytes;
|
||||
expires max;
|
||||
try_files $uri @fallback;
|
||||
}
|
||||
}
|
||||
|
||||
location /error/ {
|
||||
alias %home%/%user%/web/%domain%/document_errors/;
|
||||
}
|
||||
|
||||
location @fallback {
|
||||
proxy_pass https://%ip%:%web_ssl_port%;
|
||||
}
|
||||
|
||||
location ~ /\.ht {return 404;}
|
||||
location ~ /\.svn/ {return 404;}
|
||||
location ~ /\.git/ {return 404;}
|
||||
location ~ /\.hg/ {return 404;}
|
||||
location ~ /\.bzr/ {return 404;}
|
||||
|
||||
include %home%/%user%/conf/snginx.%domain%.conf*;
|
||||
}
|
||||
|
33
data/templates/web/ngingx_vhost_default.tpl
Normal file
@ -0,0 +1,33 @@
|
||||
server {
|
||||
listen %ip%:%proxy_port%;
|
||||
server_name %domain_idn% %alias_idn%;
|
||||
%elog%error_log /var/log/httpd/domains/%domain%.error.log error;
|
||||
|
||||
location / {
|
||||
%proxy_string%
|
||||
location ~* ^.+\.(%nginx_extentions%)$ {
|
||||
root %docroot%;
|
||||
access_log /var/log/httpd/domains/%domain%.log combined;
|
||||
access_log /var/log/httpd/domains/%domain%.bytes bytes;
|
||||
expires max;
|
||||
try_files $uri @fallback;
|
||||
}
|
||||
}
|
||||
|
||||
location /error/ {
|
||||
alias %home%/%user%/web/%domain%/document_errors/;
|
||||
}
|
||||
|
||||
location @fallback {
|
||||
proxy_pass http://%ip%:%web_port%;
|
||||
}
|
||||
|
||||
location ~ /\.ht {return 404;}
|
||||
location ~ /\.svn/ {return 404;}
|
||||
location ~ /\.git/ {return 404;}
|
||||
location ~ /\.hg/ {return 404;}
|
||||
location ~ /\.bzr/ {return 404;}
|
||||
|
||||
include %home%/%user%/conf/nginx.%domain%.conf*;
|
||||
}
|
||||
|
29
data/templates/web/skel/document_errors/403.html
Normal file
@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||
<title>403 — Forbidden</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="description" content="You do not have permission to view this"/>
|
||||
<style type="text/css">
|
||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||
h1 {font-size:180px; color:#333333; margin: 70px 0 0 0;}
|
||||
h2 {color: #ED6C42; font-family: georgia; font-size: 20px; font-style: italic; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||
a:link {color: #28A0CB;}
|
||||
a:visited {color: #28A0CB;}
|
||||
a:active {color: #BCBA30;}
|
||||
a:hover {color: #BCBA30;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p><a href="http://%domain%/">%domain%</a></p>
|
||||
|
||||
<h1>403</h1>
|
||||
<h2>Forbidden</h2>
|
||||
<div>
|
||||
Unfortunately, you do not have permission to view this
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
28
data/templates/web/skel/document_errors/404.html
Normal file
@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||
<title>404 — Not Found</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="description" content="Sorry, page not found"/>
|
||||
<style type="text/css">
|
||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||
h1 {font-size:180px; color:#333333; margin: 70px 0 0 0;}
|
||||
h2 {color: #ED6C42; font-family: georgia; font-size: 20px; font-style: italic; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||
a:link {color: #28A0CB;}
|
||||
a:visited {color: #28A0CB;}
|
||||
a:active {color: #BCBA30;}
|
||||
a:hover {color: #BCBA30;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p><a href="http://%domain%/">%domain%</a></p>
|
||||
<h1>404</h1>
|
||||
<h2>Page Not Found</h2>
|
||||
<div>
|
||||
It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved.
|
||||
You can start again from the <a href="http://%domain%/">home</a> or go back to <a href="javascript:%20history.go(-1)">previous page</a>.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
29
data/templates/web/skel/document_errors/50x.html
Normal file
@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||
<title>500 — Internal Sever Error</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="description" content="Sorry, something went wrong. Internal Server Error"/>
|
||||
<style type="text/css">
|
||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||
h1 {font-size:180px; color:#333333; margin: 70px 0 0 0;}
|
||||
h2 {color: #ED6C42; font-family: georgia; font-size: 20px; font-style: italic; font-weight: bold; letter-spacing: -1px; margin: -3px 0 39px;}
|
||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||
a:link {color: #28A0CB;}
|
||||
a:visited {color: #28A0CB;}
|
||||
a:active {color: #BCBA30;}
|
||||
a:hover {color: #BCBA30;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p><a href="http://%domain%/">%domain%</a></p>
|
||||
|
||||
<h1>500</h1>
|
||||
<h2>Internal Sever Error</h2>
|
||||
<div>
|
||||
Sorry, something went wrong :(
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
29
data/templates/web/skel/public_html/index.html
Normal file
@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||
<title>%domain% — Coming Soon</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="description" content="This is a default index page for a new domain."/>
|
||||
<style type="text/css">
|
||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||
h1 {font-size:64px; color:#333333; margin: 70px 0 50px 0;}
|
||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||
a:link {color: #28A0CB;}
|
||||
a:visited {color: #28A0CB;}
|
||||
a:active {color: #BCBA30;}
|
||||
a:hover {color: #BCBA30;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>%domain%</h1>
|
||||
<div>
|
||||
<a href="http://httpd.apache.org/">apache</a> +
|
||||
<a href="http://nginx.com/">nginx</a> +
|
||||
<a href="http://www.percona.com/">percona</a> +
|
||||
<a href="http://vestacp.com/">vesta</a>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
3
data/templates/web/skel/public_html/robots.txt
Normal file
@ -0,0 +1,3 @@
|
||||
# vestacp autogenerated robots.txt
|
||||
User-agent: *
|
||||
Crawl-delay: 10
|
29
data/templates/web/skel/public_shtml/index.html
Normal file
@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||
<title>%domain% — Coming Soon</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="description" content="This is a default index page for a new domain."/>
|
||||
<style type="text/css">
|
||||
body {font-size:14px; color:#777777; font-family:arial; text-align:center;}
|
||||
h1 {font-size:64px; color:#333333; margin: 70px 0 50px 0;}
|
||||
p {width:320px; text-align:center; margin-left:auto;margin-right:auto; margin-top: 30px }
|
||||
div {width:320px; text-align:center; margin-left:auto;margin-right:auto;}
|
||||
a:link {color: #28A0CB;}
|
||||
a:visited {color: #28A0CB;}
|
||||
a:active {color: #BCBA30;}
|
||||
a:hover {color: #BCBA30;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>%domain%</h1>
|
||||
<div>
|
||||
<a href="http://httpd.apache.org/">apache</a> +
|
||||
<a href="http://nginx.com/">nginx</a> +
|
||||
<a href="http://www.percona.com/">percona</a> +
|
||||
<a href="http://vestacp.com/">vesta</a>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
3
data/templates/web/skel/public_shtml/robots.txt
Normal file
@ -0,0 +1,3 @@
|
||||
# vestacp autogenerated robots.txt
|
||||
User-agent: *
|
||||
Crawl-delay: 10
|
110
data/templates/web/webalizer.tpl
Normal file
@ -0,0 +1,110 @@
|
||||
HostName %domain_idn%
|
||||
LogFile /var/log/httpd/domains/%domain%.log
|
||||
OutputDir %home%/%user%/web/%domain%/stats
|
||||
HistoryName %home%/%user%/web/%domain%/stats/%domain%.hist
|
||||
Incremental yes
|
||||
IncrementalName %home%/%user%/web/%domain%/stats/%domain%.current
|
||||
PageType htm*
|
||||
PageType cgi
|
||||
PageType php
|
||||
PageType shtml
|
||||
DNSCache /var/lib/webalizer/dns_cache.db
|
||||
DNSChildren 10
|
||||
Quiet yes
|
||||
FoldSeqErr yes
|
||||
IndexAlias index.php
|
||||
HideURL *.gif
|
||||
HideURL *.GIF
|
||||
HideURL *.jpg
|
||||
HideURL *.JPG
|
||||
HideURL *.png
|
||||
HideURL *.PNG
|
||||
HideURL *.ra
|
||||
SearchEngine abcsearch. terms=
|
||||
SearchEngine alexa. q=
|
||||
SearchEngine alltheweb. q=
|
||||
SearchEngine alltheweb. query=
|
||||
SearchEngine alot. q=
|
||||
SearchEngine altavista. q=
|
||||
SearchEngine aolsearch. query=
|
||||
SearchEngine aport.ru r=
|
||||
SearchEngine ask. q=
|
||||
SearchEngine atlas.cz q=
|
||||
SearchEngine bbc. q=
|
||||
SearchEngine bing. q=
|
||||
SearchEngine blingo. q=
|
||||
SearchEngine blogs.yandex.ru text=
|
||||
SearchEngine btopenworld query=
|
||||
SearchEngine buscador.ya.com q=
|
||||
SearchEngine busca. q=
|
||||
SearchEngine business. query=
|
||||
SearchEngine centrum.cz q=
|
||||
SearchEngine chiff. q=
|
||||
SearchEngine clusty. query=
|
||||
SearchEngine comcast. q=
|
||||
SearchEngine crawler. q=
|
||||
SearchEngine cuil. q=
|
||||
SearchEngine dmoz. search=
|
||||
SearchEngine dogpile.com q=
|
||||
SearchEngine dpxml qkw=
|
||||
SearchEngine eureka. searchword=
|
||||
SearchEngine euroseek. string=
|
||||
SearchEngine exalead. q=
|
||||
SearchEngine excite search=
|
||||
SearchEngine ezilon. q=
|
||||
SearchEngine fastbrowsersearch. q=
|
||||
SearchEngine feedster.com q=
|
||||
SearchEngine fireball.de q=
|
||||
SearchEngine fireball. keyword=
|
||||
SearchEngine freeserve. q=
|
||||
SearchEngine gigablast. q=
|
||||
SearchEngine gogo.ru q=
|
||||
SearchEngine go.mail.ru q=
|
||||
SearchEngine google. q=
|
||||
SearchEngine hakia. q=
|
||||
SearchEngine hotbot. query=
|
||||
SearchEngine infoseek. qt=
|
||||
SearchEngine iwon searchfor=
|
||||
SearchEngine ixquick.com query=
|
||||
SearchEngine joeant. keywords=
|
||||
SearchEngine jyxo.cz s=
|
||||
SearchEngine looksmart. key=
|
||||
SearchEngine lycos. query=
|
||||
SearchEngine mamma. q=
|
||||
SearchEngine metacrawler q=
|
||||
SearchEngine msn. MT=
|
||||
SearchEngine msxml qkw=
|
||||
SearchEngine mysearch. searchfor=
|
||||
SearchEngine mywebsearch. searchfor=
|
||||
SearchEngine netscape. q=
|
||||
SearchEngine nigma.ru q=
|
||||
SearchEngine northernlight. qr=
|
||||
SearchEngine ntlworld. q=
|
||||
SearchEngine orange. q=
|
||||
SearchEngine overture. Keywords=
|
||||
SearchEngine punto.ru text=
|
||||
SearchEngine rambler. keyword=
|
||||
SearchEngine search.aol. q=
|
||||
SearchEngine search.babylon. q=
|
||||
SearchEngine search.centrum. phrase=
|
||||
SearchEngine search.conduit. q=
|
||||
SearchEngine search.earthlink q=
|
||||
SearchEngine search.icq. q=
|
||||
SearchEngine search.live.com q=
|
||||
SearchEngine search.rambler.ru words=
|
||||
SearchEngine search.winamp. q=
|
||||
SearchEngine searchy. q=
|
||||
SearchEngine seznam.cz w=
|
||||
SearchEngine snap. query=
|
||||
SearchEngine teoma. q=
|
||||
SearchEngine teradex.com q=
|
||||
SearchEngine ukplus key=
|
||||
SearchEngine verizon. q=
|
||||
SearchEngine virginmedia. q=
|
||||
SearchEngine voila. rdata=
|
||||
SearchEngine webcrawler searchText=
|
||||
SearchEngine web.search.naver. query=
|
||||
SearchEngine wisenut q=
|
||||
SearchEngine yahoo. p=
|
||||
SearchEngine yandex. text=
|
||||
SearchEngine yodao. q=
|
@ -1,14 +0,0 @@
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
SYSTEM REQUIREMENTS
|
||||
-------------------
|
||||
|
||||
DEVELOPMENT VERSIONS
|
||||
--------------------
|
||||
|
||||
CONFIGURING THE INCLUDE PATH
|
||||
----------------------------
|
||||
|
||||
GETTING STARTED
|
||||
---------------
|
@ -1,27 +0,0 @@
|
||||
Copyright (c) 2005-2010, http://www.vestacp.com
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of XXX xxx USA, Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@ -1,22 +0,0 @@
|
||||
RELEASE INFORMATION
|
||||
---------------
|
||||
|
||||
NEW FEATURES
|
||||
------------
|
||||
|
||||
SYSTEM REQUIREMENTS
|
||||
-------------------
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
Please see INSTALL.txt.
|
||||
|
||||
QUESTIONS AND FEEDBACK
|
||||
----------------------
|
||||
|
||||
LICENSE
|
||||
-------
|
||||
You can find a copy of this license in LICENSE.txt.
|
||||
|
||||
ACKNOWLEDGEMENTS
|
||||
----------------
|
36
web/add/user/index.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
// Init
|
||||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'USER';
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Data
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
if (!empty($_POST['cancel'])) {
|
||||
echo $_POST['cancel'];
|
||||
header("Location: /list/user/");
|
||||
}
|
||||
if (!empty($_POST['ok'])) {
|
||||
echo $_POST['vusername'];
|
||||
echo $_POST['vpassword'];
|
||||
}
|
||||
|
||||
exec (VESTA_CMD."v_list_user_packages json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/menu_add_user.html');
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_user.html');
|
||||
}
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
@ -1,94 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'VestaSession.class.php';
|
||||
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'Config.class.php';
|
||||
|
||||
define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR);
|
||||
|
||||
class Captcha
|
||||
{
|
||||
protected $width = 200;
|
||||
protected $image = null;
|
||||
protected $color1 = null;
|
||||
protected $color2 = null;
|
||||
protected $color3 = null;
|
||||
protected $keyword = '';
|
||||
public $key_len = 7;
|
||||
protected $chars = 'qw1e2r3ty5u678p97as9d3o87f6gh3j2k73z5x7c8v3b75n77812356789';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
VestaSession::start();
|
||||
//var_dump(Config::get('session_dirname'));die();
|
||||
$this->image = imagecreatetruecolor($this->width, 50);
|
||||
$this->color1 = imagecolorallocate($this->image, 57, 58, 52);
|
||||
$this->color2 = imagecolorallocate($this->image, 45, 44, 40);
|
||||
$this->color3 = imagecolorallocate($this->image, 255, 255, 255);
|
||||
imagefilledrectangle($this->image, 0, 0, 249, 249, $this->color1);
|
||||
}
|
||||
|
||||
|
||||
public function generateImage($offset = 0)
|
||||
{
|
||||
$values = array(
|
||||
$offset, 15,
|
||||
$offset, 40,
|
||||
$offset + 14, 32,
|
||||
$offset + 14, 8,
|
||||
$offset, 15,
|
||||
$offset, 15
|
||||
);
|
||||
|
||||
imagefilledpolygon($this->image, $values, 6, $this->color2);
|
||||
}
|
||||
|
||||
public function draw()
|
||||
{
|
||||
$this->generateKeyword();
|
||||
for ($i = 0; $i < strlen($this->keyword) -1; $i++) {
|
||||
$this->generateImage($i * 15);
|
||||
}
|
||||
|
||||
$font_file = dirname(__FILE__).DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR.'arialbd.ttf';
|
||||
imagefttext($this->image, 17, 0, 2, 31, $this->color3, $font_file, $this->keyword);
|
||||
$this->slice();
|
||||
}
|
||||
|
||||
public function slice()
|
||||
{
|
||||
$width = 15;
|
||||
$height = 50;
|
||||
$dest = imagecreatetruecolor(15 * $this->key_len + 2 * $this->key_len + 8, $height);
|
||||
imagefilledrectangle($dest, 0, 0, 249, 249, $this->color1);
|
||||
|
||||
for ($i = 0; $i < $this->key_len; $i++) {
|
||||
$dest_x = $i == 0 ? $i * 15 : $i * 15 + $i * 4;
|
||||
imagecopy($dest, $this->image, $dest_x, 0, $i * 15, 0, $width, $height);
|
||||
}
|
||||
|
||||
header('Content-type: image/jpeg');
|
||||
imagepng($dest);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected function generateKeyword()
|
||||
{
|
||||
$this->keyword = '';
|
||||
for ($i = 0; $i < $this->key_len; $i++) {
|
||||
$this->keyword .= $this->chars[rand(0, strlen($this->chars)-1)];
|
||||
}
|
||||
|
||||
$_SESSION['captcha_key'] = $this->keyword;
|
||||
return $this->keyword;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$c = new Captcha();
|
||||
$c->draw();
|
||||
|
||||
|
||||
|
||||
?>
|
@ -1,222 +0,0 @@
|
||||
<?php
|
||||
|
||||
|
||||
define('VESTA_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR);
|
||||
define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta' . DIRECTORY_SEPARATOR);
|
||||
|
||||
require_once V_ROOT_DIR . 'config/Config.class.php';
|
||||
require_once V_ROOT_DIR . 'core/utils/Utils.class.php';
|
||||
require_once V_ROOT_DIR . 'core/VestaSession.class.php';
|
||||
require_once V_ROOT_DIR . 'core/Vesta.class.php';
|
||||
require_once V_ROOT_DIR . 'core/exceptions/SystemException.class.php';
|
||||
require_once V_ROOT_DIR . 'core/exceptions/ProtectionException.class.php';
|
||||
require_once V_ROOT_DIR . 'core/utils/Message.class.php';
|
||||
require_once V_ROOT_DIR . 'core/Request.class.php';
|
||||
require_once V_ROOT_DIR . 'api/AjaxHandler.php';
|
||||
require_once V_ROOT_DIR . 'api/MAIN.class.php';
|
||||
|
||||
|
||||
class ChangePassword
|
||||
{
|
||||
|
||||
public function dispatch()
|
||||
{
|
||||
if (empty($_GET['v'])) {
|
||||
return $this->renderError('General error');
|
||||
}
|
||||
|
||||
$key = addslashes(htmlspecialchars($_GET['v']));
|
||||
|
||||
$cmd = Config::get('sudo_path')." ".Config::get('vesta_functions_path').Vesta::V_LIST_SYS_USERS." 'json'";
|
||||
exec($cmd, $output, $return);
|
||||
|
||||
$users = json_decode(implode('', $output), true);
|
||||
|
||||
$email_matched_count = array();
|
||||
|
||||
foreach ($users as $username => $user) {
|
||||
if ($user['RKEY'] == trim($key)) {
|
||||
$email_matched_count[] = array_merge(array('USERNAME' => $username), $user);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'change') {
|
||||
return $this->doChangePassword($email_matched_count);
|
||||
}
|
||||
|
||||
return $this->showResetForm();
|
||||
}
|
||||
|
||||
protected function doChangePassword($users)
|
||||
{
|
||||
if ($_POST['secret_code'] != $_POST['confirm_secret_code']) {
|
||||
return $this->showResetForm('Passwords don\'t match');
|
||||
}
|
||||
|
||||
if (strlen($_POST['secret_code']) < 6) {
|
||||
return $this->showResetForm('Passwords is too short');
|
||||
}
|
||||
|
||||
if (strlen($_POST['secret_code']) > 255) {
|
||||
return $this->showResetForm('Passwords is too long');
|
||||
}
|
||||
|
||||
$success = true;
|
||||
foreach ($users as $user) {
|
||||
$cmd = Config::get('sudo_path')." ".Config::get('vesta_functions_path').Vesta::V_CHANGE_SYS_USER_PASSWORD." ".$user['USERNAME']." ".$_POST['secret_code'];
|
||||
exec($cmd, $output, $return);
|
||||
|
||||
if (!$return) {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$success) {
|
||||
$main = new MAIN();
|
||||
$about = json_decode($main->aboutExecute(), TRUE);
|
||||
|
||||
return $this->showResetForm('Something went wrong. Please contact support: '.$about['data']['company_email']);
|
||||
}
|
||||
|
||||
return $this->showSuccessTpl();
|
||||
}
|
||||
|
||||
public function showSuccessTpl()
|
||||
{
|
||||
$main = new MAIN();
|
||||
$about = json_decode($main->aboutExecute(), TRUE);
|
||||
$current_year = date("Y");
|
||||
|
||||
print <<<HTML
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
|
||||
<head>
|
||||
<title>Vesta Control Panel</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="imagetoolbar" content="false" />
|
||||
|
||||
<link rel="shortcut icon" href="images/fav.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/reset2.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/main.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/vesta-login-form.css" />
|
||||
|
||||
<!--[if lt IE 8]>
|
||||
<link rel="stylesheet" type="text/css" href="http://dl.dropbox.com/u/1750887/projects/vesta2/css/ie.css" />
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body class="page-auth">
|
||||
<div id="change-psw-block" class="page2">
|
||||
<div class="b-auth-form">
|
||||
<div class="b-auth-form-wrap">
|
||||
<img width="72" height="24" alt="" src="/images/vesta-logo-2011-12-14.png" class="vesta-logo">
|
||||
<span style="color: #5E696B; float: right; margin-top: -48px;">{$about['data']['version_name']}</span>
|
||||
<div class="b-client-title">
|
||||
<span class="client-title-wrap">Control Panel<i class="planets"> </i></span>
|
||||
</div>
|
||||
<form id="change_psw-form" method="post" action="" class="auth">
|
||||
<input type="hidden" value="change" name="action">
|
||||
|
||||
<div class="success-box" id="change-psw-success">Password successfully changed.</div>
|
||||
|
||||
</form>
|
||||
<p class="forgot-pwd"><a href="/" class="forgot-pwd-url">Back to login?</a></p>
|
||||
<div class="footnotes cc">
|
||||
<p class="additional-info">For questions please contact <a href="mailto:{$about['data']['company_email']}" class="questions-url">{$about['data']['company_email']}</a></p>
|
||||
<address class="imprint">© {$current_year} Vesta Control Panel</address>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
HTML;
|
||||
|
||||
}
|
||||
|
||||
public function showResetForm($error_msg = '')
|
||||
{
|
||||
if (!empty($error_msg)) {
|
||||
$error_msg = '<div class="error-box" id="auth-error">'.$error_msg.'</div>';
|
||||
}
|
||||
|
||||
$main = new MAIN();
|
||||
$about = json_decode($main->aboutExecute(), TRUE);
|
||||
|
||||
$current_year = date("Y");
|
||||
|
||||
print <<<HTML
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
|
||||
<head>
|
||||
<title>Vesta Control Panel</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="imagetoolbar" content="false" />
|
||||
|
||||
<link rel="shortcut icon" href="images/fav.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/reset2.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/main.css" />
|
||||
<link rel="stylesheet" media="all" type="text/css" href="css/vesta-login-form.css" />
|
||||
|
||||
<!--[if lt IE 8]>
|
||||
<link rel="stylesheet" type="text/css" href="http://dl.dropbox.com/u/1750887/projects/vesta2/css/ie.css" />
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body class="page-auth">
|
||||
<div id="change-psw-block" class="page2">
|
||||
<div class="b-auth-form">
|
||||
<div class="b-auth-form-wrap">
|
||||
<a href="/">
|
||||
<img width="72" height="24" alt="" src="/images/vesta-logo-2011-12-14.png" class="vesta-logo">
|
||||
</a>
|
||||
<span style="color: #5E696B; float: right; margin-top: -48px;">{$about['data']['version_name']}</span>
|
||||
<div class="b-client-title">
|
||||
<span class="client-title-wrap">Control Panel<i class="planets"> </i></span>
|
||||
</div>
|
||||
<form id="change_psw-form" method="post" action="" class="auth">
|
||||
<input type="hidden" value="change" name="action">
|
||||
|
||||
<div class="form-row cc">
|
||||
<label for="password" class="field-label">New Password</label>
|
||||
<input type="password" tabindex="1" id="password" class="field-text" name="secret_code">
|
||||
</div>
|
||||
|
||||
<div class="form-row cc">
|
||||
<label for="confirm_password" class="field-label">ONE MORE TIME</label>
|
||||
<input type="password" tabindex="1" id="confirm_password" class="field-text" name="confirm_secret_code">
|
||||
</div>
|
||||
{$error_msg}
|
||||
<div class="form-row cc last-row">
|
||||
<input type="submit" tabindex="4" value="Change Password" class="sumbit-btn">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p class="forgot-pwd"><a href="/" class="forgot-pwd-url">Back to login?</a></p>\
|
||||
|
||||
<div class="footnotes cc">
|
||||
<p class="additional-info">For questions please contact <a href="mailto:{$about['data']['company_email']}" class="questions-url">{$about['data']['company_email']}</a></p>
|
||||
<address class="imprint">© {$current_year} Vesta Control Panel</address>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
HTML;
|
||||
}
|
||||
|
||||
public function renderError($message)
|
||||
{
|
||||
print <<<HTML
|
||||
{$message}
|
||||
HTML;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$changePassword = new ChangePassword();
|
||||
$changePassword->dispatch();
|
||||
|
||||
?>
|
548
web/css/jquery-custom-dialogs.css
Normal file
@ -0,0 +1,548 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
||||
.ui-helper-clearfix:after { clear: both; }
|
||||
.ui-helper-clearfix { zoom: 1; }
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial, Helvetica, sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; }
|
||||
.ui-widget .ui-widget { font-size: 10pt; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; }
|
||||
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
||||
.ui-widget-content a { color: #222222; }
|
||||
.ui-widget-header { border: 1px solid #d6d4c9; background: #ebe9dc; color: #777777; font-size: 10pt; font-weight: bold;}
|
||||
.ui-widget-header a { color: #222222; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
|
||||
* jQuery UI Resizable 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Resizable#theming
|
||||
*/
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
|
||||
* jQuery UI Selectable 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Selectable#theming
|
||||
*/
|
||||
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
||||
/*!
|
||||
* jQuery UI Accordion 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Accordion#theming
|
||||
*/
|
||||
/* IE/Win - Fix animation bug - #4615 */
|
||||
.ui-accordion { width: 100%; }
|
||||
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||
.ui-accordion .ui-accordion-header a { display: block; font-size: 10pt; padding: .5em .5em .5em .7em; }
|
||||
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
||||
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||
.ui-accordion .ui-accordion-content { padding: 10pt 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-content-active { display: block; }
|
||||
/*!
|
||||
* jQuery UI Autocomplete 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Autocomplete#theming
|
||||
*/
|
||||
.ui-autocomplete { position: absolute; cursor: default; }
|
||||
|
||||
/* workarounds */
|
||||
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||
|
||||
/*
|
||||
* jQuery UI Menu 1.8.20
|
||||
*
|
||||
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Menu#theming
|
||||
*/
|
||||
.ui-menu {
|
||||
list-style:none;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
display:block;
|
||||
float: left;
|
||||
}
|
||||
.ui-menu .ui-menu {
|
||||
margin-top: -3px;
|
||||
}
|
||||
.ui-menu .ui-menu-item {
|
||||
margin:0;
|
||||
padding: 0;
|
||||
zoom: 1;
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-menu .ui-menu-item a {
|
||||
text-decoration:none;
|
||||
display:block;
|
||||
padding:.2em .4em;
|
||||
line-height:1.5;
|
||||
zoom:1;
|
||||
}
|
||||
.ui-menu .ui-menu-item a.ui-state-hover,
|
||||
.ui-menu .ui-menu-item a.ui-state-active {
|
||||
font-weight: normal;
|
||||
margin: -1px;
|
||||
}
|
||||
/*!
|
||||
* jQuery UI Button 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Button#theming
|
||||
*/
|
||||
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .10pt; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
||||
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||
.ui-button-icons-only { width: 3.4em; }
|
||||
button.ui-button-icons-only { width: 3.7em; }
|
||||
|
||||
/*button text element */
|
||||
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||
.ui-button-text-only .ui-button-text { padding: .4em 10pt; }
|
||||
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 10pt .4em 2.10pt; }
|
||||
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.10pt .4em 10pt; }
|
||||
.ui-button-text-icons .ui-button-text { padding-left: 2.10pt; padding-right: 2.10pt; }
|
||||
/* no icon support for input elements, provide padding by default */
|
||||
input.ui-button { padding: .4em 10pt; }
|
||||
|
||||
/*button icon element(s) */
|
||||
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
||||
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
||||
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||
|
||||
/*button sets*/
|
||||
.ui-buttonset { margin-right: 7px; }
|
||||
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
||||
|
||||
/* workarounds */
|
||||
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||
/*!
|
||||
* jQuery UI Dialog 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Dialog#theming
|
||||
*/
|
||||
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
||||
.ui-dialog .ui-dialog-titlebar { padding: .4em 10pt; position: relative; }
|
||||
.ui-dialog .ui-dialog-title { float: left; margin: .10pt 16px .10pt 0; }
|
||||
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 10pt; background: none; overflow: auto; zoom: 1; }
|
||||
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 10pt .5em .4em; }
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
||||
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||
/*!
|
||||
* jQuery UI Slider 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Slider#theming
|
||||
*/
|
||||
.ui-slider { position: relative; text-align: left; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
||||
|
||||
.ui-slider-horizontal { height: .8em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||
|
||||
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
|
||||
* jQuery UI Tabs 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Tabs#theming
|
||||
*/
|
||||
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 10pt; text-decoration: none; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 10pt 1.4em; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
/*!
|
||||
* jQuery UI Datepicker 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Datepicker#theming
|
||||
*/
|
||||
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
||||
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||
.ui-datepicker .ui-datepicker-title select { font-size:10pt; margin:1px 0; }
|
||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||
.ui-datepicker td { border: 0; padding: 1px; }
|
||||
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||
|
||||
/* with multiple calendars */
|
||||
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
||||
|
||||
/* RTL support */
|
||||
.ui-datepicker-rtl { direction: rtl; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
|
||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||
.ui-datepicker-cover {
|
||||
display: none; /*sorry for IE5*/
|
||||
display/**/: block; /*sorry for IE5*/
|
||||
position: absolute; /*must have*/
|
||||
z-index: -1; /*must have*/
|
||||
filter: mask(); /*must have*/
|
||||
top: -4px; /*must have*/
|
||||
left: -4px; /*must have*/
|
||||
width: 200px; /*must have*/
|
||||
height: 200px; /*must have*/
|
||||
}/*!
|
||||
* jQuery UI Progressbar 1.8.20
|
||||
*
|
||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Progressbar#theming
|
||||
*/
|
||||
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
||||
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
3340
web/css/main.css
@ -1,85 +0,0 @@
|
||||
/* Styles for popups */
|
||||
.d-popup{
|
||||
position:absolute;
|
||||
top:100px;
|
||||
left:0;
|
||||
z-index:100;
|
||||
background-color:#ccc;
|
||||
background:url(../images/info-popup-bg-2.png) repeat;
|
||||
|
||||
width:250px;
|
||||
|
||||
border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
}
|
||||
.d-popup-inner{
|
||||
padding:20px;
|
||||
color:#fff;
|
||||
}
|
||||
.d-popup .close{
|
||||
position:absolute;
|
||||
top:10px;
|
||||
right:10px;
|
||||
|
||||
display:block;
|
||||
width:14px;
|
||||
height:14px;
|
||||
background:url(../images/info-popup-sprite.png) no-repeat 0 -1px;
|
||||
cursor:pointer;
|
||||
font-size:0;
|
||||
line-height:0;
|
||||
text-indent:-9999px;
|
||||
}
|
||||
.d-popup span.close:hover{
|
||||
background-position:0 -17px;
|
||||
}
|
||||
.d-popup span.close:active{
|
||||
background-position:0 -33px;
|
||||
}
|
||||
.d-popup-title{
|
||||
font-size:11px;
|
||||
text-transform:uppercase;
|
||||
text-align:center;
|
||||
color:#fffaba;
|
||||
margin:5px 0 16px;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
.d-popup-items{
|
||||
font-size:12px;
|
||||
color:#fff;
|
||||
}
|
||||
.d-popup-items .item{
|
||||
margin:0 0 9px;
|
||||
}
|
||||
.d-popup-items a{
|
||||
color:#aaa;
|
||||
padding-right:5px;
|
||||
}
|
||||
.d-popup .prop-box{
|
||||
display:block;
|
||||
}
|
||||
.d-popup .prop-title{
|
||||
color:#bbb;
|
||||
}
|
||||
.d-popup .prop-value{
|
||||
color:#fff;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.d-popup-content{
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.d-popup-content li{
|
||||
margin-bottom: 5px;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
}
|
||||
.d-popup-content li strong{
|
||||
color: #BDB9AE;
|
||||
text-transfom: uppercese;
|
||||
font-weight: normal;
|
||||
font-size: 10px;
|
||||
margin-right: 7px;
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
background: transparent;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
/* remember to define focus styles! */
|
||||
:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* remember to highlight inserts somehow! */
|
||||
ins {
|
||||
text-decoration: none;
|
||||
}
|
||||
del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* tables still need 'cellspacing="0"' in the markup */
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
@ -1,212 +0,0 @@
|
||||
/* Page specific styles */
|
||||
.page-auth{
|
||||
background:url(../images/auth/auth-bg.png) repeat;
|
||||
}
|
||||
.cc:after{
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
*html .cc{
|
||||
zoom:1;
|
||||
}
|
||||
+html .cc{
|
||||
zoom:1;
|
||||
}
|
||||
.page-auth .b-auth-form{}
|
||||
|
||||
.page-auth .b-auth-form{
|
||||
width:525px;
|
||||
margin:7% auto 0;
|
||||
padding:20px 20px 0;
|
||||
background:url(../images/auth/form-bg.png) repeat;
|
||||
|
||||
-webkit-border-radius:15px;
|
||||
-moz-border-radius:15px;
|
||||
border-radius:15px;
|
||||
behavior: url(js/PIE.htc);
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.page-auth .b-auth-form-wrap{
|
||||
position:relative;
|
||||
padding-top:30px;
|
||||
}
|
||||
.page-auth .vesta-logo{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
display:block;
|
||||
}
|
||||
.page-auth .b-client-title{
|
||||
margin:0 0 45px;
|
||||
padding-left:130px;
|
||||
font-size:35px;
|
||||
background:url(../images/auth/planet-1.png) no-repeat 85px 27px;
|
||||
color:#fff;
|
||||
}
|
||||
.client-title-wrap{
|
||||
position:relative;
|
||||
text-transform: uppercase;
|
||||
font-size:24px;
|
||||
}
|
||||
.client-title-wrap .planets{
|
||||
display:block;
|
||||
width:91px;
|
||||
height:7px;
|
||||
position:absolute;
|
||||
top:40%;
|
||||
right:-121px;
|
||||
background:url(../images/auth/planet-2.png) no-repeat scroll 0 -1px;
|
||||
}
|
||||
.page-auth .form-row{
|
||||
margin:0 0 15px;
|
||||
}
|
||||
.page-auth .last-row{
|
||||
padding:27px 90px 0 133px;
|
||||
}
|
||||
.page-auth .field-label{
|
||||
float:left;
|
||||
width:101px;
|
||||
padding-left:15px;
|
||||
padding-right:17px;
|
||||
color:#e3d785;
|
||||
font-size:12px;
|
||||
font-weight:bold;
|
||||
line-height:34px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
text-transform:uppercase;
|
||||
text-align:right;
|
||||
/*letter-spacing:-.5px;*/
|
||||
}
|
||||
.page-auth .field-text{
|
||||
width:290px;
|
||||
padding:4px 5px;
|
||||
font-size:20px;
|
||||
border:2px solid #0c6c9c;
|
||||
background:#2d2c28;
|
||||
color:#fff;
|
||||
}
|
||||
.page-auth .field-text:focus{
|
||||
-moz-box-shadow:0 0 8px rgba(76, 147, 189, 0.7);
|
||||
-webkit-box-shadow:0 0 8px rgba(76, 147, 189, 0.7);
|
||||
border-color:rgba(76, 147, 189, 0.85) !important;
|
||||
}
|
||||
|
||||
.page-auth .b-remember{
|
||||
float:left;
|
||||
padding-top:5px;
|
||||
}
|
||||
.page-auth .remember-label{
|
||||
cursor:pointer;
|
||||
padding:2px 2px 2px 8px;
|
||||
color:#747975;
|
||||
font-size:12px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
}
|
||||
span.ui-checkbox{
|
||||
display: block;
|
||||
float: left;
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
/* background:url(icon_checkbox.png) 0 -40px no-repeat;*/
|
||||
background:url(../images/auth/checkboxes.png) no-repeat;
|
||||
}
|
||||
.ui-helper-hidden-accessible{
|
||||
display: none;
|
||||
}
|
||||
span.ui-checkbox-state-hover{
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
span.ui-checkbox-state-checked,
|
||||
span.ui-checkbox-state-checked-hover{
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
|
||||
.page-auth .sumbit-btn{
|
||||
float:right;
|
||||
overflow:visible;
|
||||
height:30px;
|
||||
padding:0 40px;
|
||||
-webkit-border-radius:9px;
|
||||
-moz-border-radius:9px;
|
||||
border-radius:9px;
|
||||
behavior: url(js/PIE.htc);
|
||||
|
||||
border:2px solid #2C2C10;
|
||||
background-color:#BBBF45;
|
||||
color:#ffffdf;
|
||||
font-size:13px;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-weight:bold;
|
||||
line-height:27px;
|
||||
text-transform:uppercase;
|
||||
cursor:pointer;
|
||||
}
|
||||
.page-auth .sumbit-btn:focus{
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
.page-auth .sumbit-btn:hover{
|
||||
background-color:#ffcc00;
|
||||
color:#483600;
|
||||
border-color:#000;
|
||||
}
|
||||
.page-auth .sumbit-btn:active{
|
||||
top:0;
|
||||
background-color:#96A332;
|
||||
color:#FFFFFF;
|
||||
border-color:#2C2C10;
|
||||
}
|
||||
|
||||
.page-auth .forgot-pwd{
|
||||
padding:60px 0 10px 137px;
|
||||
font-size:13px;
|
||||
}
|
||||
.page-auth .forgot-pwd-url{
|
||||
color:#6f7571;
|
||||
}
|
||||
.page-auth a.forgot-pwd-url:hover{
|
||||
color:#849e54;
|
||||
}
|
||||
.page-auth a.forgot-pwd-url:active{
|
||||
color:#edca38;
|
||||
}
|
||||
|
||||
.page-auth .error-box{
|
||||
border-top:1px dashed #f16d6b;
|
||||
padding:10px 0 21px 131px;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
color:#f16d6b;
|
||||
}
|
||||
|
||||
.page-auth .footnotes{
|
||||
margin:0 -20px;
|
||||
padding:15px 20px;
|
||||
font-size:14px;
|
||||
border-top:1px solid #34352f;
|
||||
color:#5a5e5d;
|
||||
}
|
||||
.page-auth .footnotes .additional-info{
|
||||
float:left;
|
||||
font-size:12px;
|
||||
font-family:Georgia, "Times New Roman", Times, serif;
|
||||
font-style:italic;
|
||||
}
|
||||
.page-auth .footnotes .questions-url{
|
||||
color:#5a5e5d;
|
||||
}
|
||||
.page-auth .footnotes a.questions-url:hover{
|
||||
color:#849e54;
|
||||
}
|
||||
.page-auth .footnotes a.questions-url:active{
|
||||
color:#edca38;
|
||||
}
|
||||
.page-auth .footnotes .imprint{
|
||||
float:right;
|
||||
font-style:normal;
|
||||
font-size:11px;
|
||||
padding-top:1px;
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
date_default_timezone_set('Europe/Moscow');
|
||||
|
||||
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/core/utils/error_logger.php';
|
||||
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/app.init.php';
|
||||
|
||||
?>
|
Before ![]() (image error) Size: 193 KiB |
Before (image error) Size: 1.1 KiB |
Before ![]() (image error) Size: 62 B |
BIN
web/images/add.png
Normal file
After ![]() (image error) Size: 175 B |
Before ![]() (image error) Size: 958 B |
Before ![]() (image error) Size: 252 B |
Before ![]() (image error) Size: 948 B |
Before ![]() (image error) Size: 1.5 KiB |
Before ![]() (image error) Size: 933 B |
Before ![]() (image error) Size: 2.7 KiB |
Before ![]() (image error) Size: 1.0 KiB |
Before ![]() (image error) Size: 1.1 KiB |
Before ![]() (image error) Size: 874 B |
Before ![]() (image error) Size: 1.8 KiB |
Before ![]() (image error) Size: 249 B |
BIN
web/images/b.png
Normal file
After ![]() (image error) Size: 4.5 KiB |
BIN
web/images/b1.png
Normal file
After ![]() (image error) Size: 6.3 KiB |
BIN
web/images/b2.png
Normal file
After ![]() (image error) Size: 6.3 KiB |
Before ![]() (image error) Size: 1.2 KiB |
Before ![]() (image error) Size: 1.1 KiB |
Before ![]() (image error) Size: 1015 B |
Before ![]() (image error) Size: 1.5 KiB |
Before ![]() (image error) Size: 1.0 KiB |
Before ![]() (image error) Size: 1.1 KiB |
Before ![]() (image error) Size: 1.7 KiB |
Before ![]() (image error) Size: 2.1 KiB |
Before ![]() (image error) Size: 941 B |
Before ![]() (image error) Size: 205 B |
Before ![]() (image error) Size: 205 B |
Before ![]() (image error) Size: 99 B |
Before ![]() (image error) Size: 365 B |
Before ![]() (image error) Size: 377 B |
Before ![]() (image error) Size: 536 B |
Before ![]() (image error) Size: 1.2 KiB |
Before ![]() (image error) Size: 1.5 KiB |
Before ![]() (image error) Size: 1.1 KiB |
Before ![]() (image error) Size: 483 B |
Before ![]() (image error) Size: 5.8 KiB |
Before ![]() (image error) Size: 2.9 KiB |
Before ![]() (image error) Size: 396 B |
Before ![]() (image error) Size: 121 B |
Before ![]() (image error) Size: 161 B |
Before ![]() (image error) Size: 175 B |
Before ![]() (image error) Size: 1.3 KiB |
Before ![]() (image error) Size: 1.0 KiB |
Before ![]() (image error) Size: 267 B |
Before ![]() (image error) Size: 175 B |
Before ![]() (image error) Size: 175 B |
Before ![]() (image error) Size: 175 B |
Before ![]() (image error) Size: 778 B |
BIN
web/images/delete.png
Normal file
After ![]() (image error) Size: 229 B |
Before ![]() (image error) Size: 44 B |
BIN
web/images/download.png
Normal file
After ![]() (image error) Size: 2.8 KiB |
BIN
web/images/edit.png
Normal file
After ![]() (image error) Size: 225 B |
Before ![]() (image error) Size: 216 B |
Before ![]() (image error) Size: 421 B |