diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..980bc5b3c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.tar +*.zip +*.gzip diff --git a/LICENSE.txt b/LICENSE similarity index 100% rename from LICENSE.txt rename to LICENSE diff --git a/bin/v-activate-vesta-license b/bin/v-activate-vesta-license new file mode 100755 index 000000000..4774e9288 --- /dev/null +++ b/bin/v-activate-vesta-license @@ -0,0 +1,67 @@ +#!/bin/bash +# info: activate vesta license +# options: MODULE LICENSE +# +# The function activates and register vesta license + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +module=$(echo $1 | tr '[:lower:]' '[:upper:]') +license=$2 + +# Importing system enviroment +source /etc/profile + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking arg number +check_args '2' "$#" 'MODULE LICENSE' + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Activating license +v_host='https://vestacp.com/checkout' +answer=$(curl -s $v_host/activate.php?licence_key=$license&module=$module) +check_result $? "cant' connect to vestacp.com " $E_CONNECT + +# Checking server answer +if [[ "$answer" != '0' ]]; then + echo "Error: $module license $license is invalid" + exit $E_INVALID +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Updating vesta.conf +if [ -z "$(grep "${module}_KEY" $VESTA/conf/vesta.conf)" ]; then + echo "${module}_KEY='$license'" >> $VESTA/conf/vesta.conf +else + sed -i "s/${module}_KEY=.*/${module}_KEY='$license'/g" $VESTA/conf/vesta.conf +fi + +# Activating sftpjail +if [ "$module" = 'SFTPJAIL' ]; then + setsid $BIN/v-add-sys-sftp-jail 2>/dev/null +fi + +# Logging +log_event "$OK" "$EVENT" + +exit diff --git a/bin/v-add-fs-archive b/bin/v-add-fs-archive index 47dc0d5d7..fa4b7aa3d 100755 --- a/bin/v-add-fs-archive +++ b/bin/v-add-fs-archive @@ -1,22 +1,16 @@ #!/bin/bash # info: archive directory -# options: USER ARCHIVE DIRECTORY [DIRECTORY_N] +# options: USER ARCHIVE SOURCE # # The function creates tar archive user=$1 archive=$2 -src1=$3 -src2=$4 -src3=$5 -src4=$6 -src5=$7 -src6=$8 -src7=$9 +src=$3 # Checking arguments -if [ -z "$src1" ]; then - echo "Usage: USER ARCHIVE DIRECTORY [DIRECTORY_N]" +if [ -z "$src" ]; then + echo "Usage: USER ARCHIVE SOURCE" exit 1 fi @@ -40,19 +34,22 @@ if [ -e "$archive.tar.gz" ]; then fi # Checking source path -for src_path in $src1 $src2 $src3 $src4 $src5 $src6 $src7; do - rpath=$(readlink -f "$src_path") - if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then - echo "Error: invalid source path $src_path" - exit 1 - fi -done +rpath=$(readlink -f "$src") +if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then + echo "Error: invalid source path $src" + exit 1 +fi + +# Parsing current directory +d=$(dirname "$src") + +# Removing leading file path +f=$(echo "$src" |sed -e "s|$d/||") # Creating tar.gz archive -sudo -u $user tar -czf "$archive.tar.gz" \ - $src1 $src2 $src3 $src4 $src5 $src6 $src7 > /dev/null 2>&1 +sudo -u $user tar -czf "$archive.tar.gz" -C $d $f >/dev/null 2>&1 if [ "$?" -ne 0 ]; then -# echo "Error: archive $archive.tar.gz was not created" + echo "Error: archive $archive.tar.gz was not created" exit 3 fi diff --git a/bin/v-add-remote-dns-domain b/bin/v-add-remote-dns-domain index e84a0e3dc..758a9ebe7 100755 --- a/bin/v-add-remote-dns-domain +++ b/bin/v-add-remote-dns-domain @@ -44,7 +44,7 @@ remote_dns_health_check str=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf 2>/dev/null) if [ -z "$str" ]; then pipe="$VESTA/data/queue/dns-cluster.pipe" - queue_str=$(grep -n "$SCRIPT $1 $2 no$" $pipe |cut -f1 -d: |head -n1) + queue_str=$(grep -n "$SCRIPT $1 $2 " $pipe |cut -f1 -d: |head -n1) if [ ! -z "$queue_str" ]; then sed -i "$queue_str d" $pipe fi diff --git a/bin/v-add-sys-firewall b/bin/v-add-sys-firewall new file mode 100755 index 000000000..47676e9e8 --- /dev/null +++ b/bin/v-add-sys-firewall @@ -0,0 +1,57 @@ +#!/bin/bash +# info: add system firewall +# opions: NONE +# +# The script enables firewall + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +if [ "$FIREWALL_SYSTEM" = 'iptables' ]; then + exit +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Adding firewall directory +mkdir -p $VESTA/data/firewall/ + +# Adding default ruleset +if [ ! -e "$VESTA/data/firewall/rules.conf" ]; then + cp $VESTA/install/rhel/7/* $VESTA/data/firewall/ +fi + +# Updating FIREWAL_SYSTEM value +if [ -z "$(grep FIREWALL_SYSTEM $VESTA/conf/vesta.conf)" ]; then + echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/vesta.conf +else + sed -i "s/FIREWALL_SYSTEM.*/FIREWALL_SYSTEM='iptables'/g" \ + $VESTA/conf/vesta.conf +fi + +# Updating firewall rules +$BIN/v-update-firewall + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_event "$OK" "$EVENT" + +exit diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 8924d148d..87be95702 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -75,6 +75,9 @@ if [ ! -z "$WEB_BACKEND" ]; then fi get_domain_backend_values backend=$(get_user_value '$BACKEND_TEMPLATE') + if [ -z "$backend" ]; then + backend='default' + fi fi # Defining variables for add_config function diff --git a/bin/v-add-web-domain-backend b/bin/v-add-web-domain-backend index 66273e816..7787afbed 100755 --- a/bin/v-add-web-domain-backend +++ b/bin/v-add-web-domain-backend @@ -13,7 +13,7 @@ user=$1 domain=$2 domain_idn=$(idn -t --quiet -a "$domain") -template=$3 +template=${3-default} # Includes source $VESTA/func/main.sh diff --git a/bin/v-backup-users b/bin/v-backup-users index efac63787..a7867632a 100755 --- a/bin/v-backup-users +++ b/bin/v-backup-users @@ -22,6 +22,8 @@ source $VESTA/conf/vesta.conf # Action # #----------------------------------------------------------# +$BIN/v-check-vesta-license >/dev/null + if [ -z "$BACKUP_SYSTEM" ]; then exit fi diff --git a/bin/v-check-fs-permission b/bin/v-check-fs-permission index 59e491cf3..00e5482af 100755 --- a/bin/v-check-fs-permission +++ b/bin/v-check-fs-permission @@ -5,10 +5,10 @@ # The function opens/reads files on the file system user=$1 -src_file=$2 +src=$2 # Checking arguments -if [ -z "$src_file" ]; then +if [ -z "$src" ]; then echo "Usage: USER FILE" exit 1 fi @@ -27,27 +27,19 @@ if [ -z $homedir ]; then fi # Checking path -if [ ! -z "$src_file" ]; then - rpath=$(readlink -f "$src_file") +if [ ! -z "$src" ]; then + rpath=$(readlink -f "$src") if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then - echo "Error: invalid source path $src_file" + echo "Error: invalid source path $user $src" exit 2 fi fi -# Reading file -#sudo -u $user cat "$src_file" 2>/dev/null -#if [ $? -ne 0 ]; then -# echo "Error: file $src_file was not opened" -# exit 3 -#fi - # Checking if file has readable permission -if [[ ! -r $src_file ]] -then -# echo "File is readable" -#else - echo "Cannot read file" +sudo -u $user ls "$src" > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "Error: can't read $src" + exit 1 fi # Exiting diff --git a/bin/v-check-vesta-license b/bin/v-check-vesta-license new file mode 100755 index 000000000..74dd8327f --- /dev/null +++ b/bin/v-check-vesta-license @@ -0,0 +1,63 @@ +#!/bin/bash +# info: check vesta license +# options: [MODULE] +# +# The function activates and register vesta license + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +module=$(echo $1 | tr '[:lower:]' '[:upper:]') + +# Importing system enviroment +source /etc/profile + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Checking module +if [ -z "$module" ]; then + modules=$(grep _KEY= $VESTA/conf/vesta.conf) +else + modules=$(grep "${module}_KEY" $VESTA/conf/vesta.conf) +fi + +IFS=$'\n' +for str in $modules; do + module=$(echo "$str" |cut -f 1 -d _) + license=$(echo "$str" |cut -f 2 -d \') + if [ ! -z "$license" ]; then + v_host='https://vestacp.com/checkout' + answer=$(curl -s "$v_host/check.php?licence_key=$license&module=$module") + check_result $? "cant' connect to vestacp.com " 0 + echo "$module $license $answer" + if [[ "$answer" != '0' ]]; then + if [ "$module" = 'SFTPJAIL' ]; then + setsid $BIN/v-delete-sys-sftp-jail 2>/dev/null + fi + sed -i "s/${module}_KEY=.*/${module}_KEY=''/g" \ + $VESTA/conf/vesta.conf + fi + fi +done + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +exit diff --git a/bin/v-deactivate-vesta-license b/bin/v-deactivate-vesta-license new file mode 100755 index 000000000..4cbf0cc97 --- /dev/null +++ b/bin/v-deactivate-vesta-license @@ -0,0 +1,65 @@ +#!/bin/bash +# info: deactivate vesta license +# options: MODULE LICENSE +# +# The function activates and register vesta license + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +module=$(echo $1 | tr '[:lower:]' '[:upper:]') +license=$2 + +# Importing system enviroment +source /etc/profile + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking arg number +check_args '2' "$#" 'MODULE LICENSE' + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Activating license +v_host='https://vestacp.com/checkout' +answer=$(curl -s $v_host/cancel.php?licence_key=$license) +check_result $? "cant' connect to vestacp.com " $E_CONNECT + +# Checking server answer +if [[ "$answer" != '0' ]]; then + echo "Error: $module license $license is invalid" + exit $E_INVALID +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Updating vesta.conf +if [ ! -z "$(grep "${module}_KEY" $VESTA/conf/vesta.conf)" ]; then + sed -i "s/${module}_KEY=.*/${module}_KEY=''/g" $VESTA/conf/vesta.conf +fi + +# Deactivating sftpjail +if [ "$module" = 'SFTPJAIL' ]; then + setsid $BIN/v-delete-sys-sftp-jail 2>/dev/null +fi + +# Logging +log_event "$OK" "$EVENT" + +exit diff --git a/bin/v-delete-firewall-ban b/bin/v-delete-firewall-ban index 468b58c5b..c81dfe680 100755 --- a/bin/v-delete-firewall-ban +++ b/bin/v-delete-firewall-ban @@ -45,7 +45,8 @@ if [ -z "$check_ip" ]; then fi # Deleting ip from banlist -sed -i "/IP='$ip' CHAIN='$chain'/d" $conf +sip=$(echo "$ip"| sed "s|/|\\\/|g") +sed -i "/IP='$sip' CHAIN='$chain'/d" $conf b=$($iptables -L fail2ban-$chain --line-number -n|grep $ip|awk '{print $1}') $iptables -D fail2ban-$chain $b 2>/dev/null diff --git a/bin/v-delete-remote-dns-record b/bin/v-delete-remote-dns-record index 0c09d68cc..e6066d86f 100755 --- a/bin/v-delete-remote-dns-record +++ b/bin/v-delete-remote-dns-record @@ -55,7 +55,7 @@ for cluster in $(cat $VESTA/conf/dns-cluster.conf); do # Sync domain cluster_cmd v-delete-dns-record $DNS_USER $domain $id 'no' - check_result $? "$HOST connection failed (rebuild)" $E_CONNECT + #check_result $? "$HOST connection failed (delete)" $E_CONNECT # Rebuilding dns zone cluster_cmd v-rebuild-dns-domain $DNS_USER $domain 'yes' 'no' diff --git a/bin/v-delete-sys-firewall b/bin/v-delete-sys-firewall new file mode 100755 index 000000000..e1f512401 --- /dev/null +++ b/bin/v-delete-sys-firewall @@ -0,0 +1,48 @@ +#!/bin/bash +# info: delete system firewall +# opions: NONE +# +# The script disables firewall support + + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Includes +source $VESTA/func/main.sh +source $VESTA/conf/vesta.conf + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +if [ -z "$FIREWALL_SYSTEM" ]; then + exit +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Stopping firewall +$BIN/v-stop-firewall + +# Updating FIREWALL_SYSTEM value +if [ -z "$(grep FIREWALL_SYSTEM $VESTA/conf/vesta.conf)" ]; then + echo "FIREWALL_SYSTEM=''" >> $VESTA/conf/vesta.conf +else + sed -i "s/FIREWALL_SYSTEM=.*/FIREWALL_SYSTEM=''/g" $VESTA/conf/vesta.conf +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_event "$OK" "$EVENT" + +exit diff --git a/bin/v-delete-sys-sftp-jail b/bin/v-delete-sys-sftp-jail index ef4292ef8..3e10f9329 100755 --- a/bin/v-delete-sys-sftp-jail +++ b/bin/v-delete-sys-sftp-jail @@ -22,9 +22,9 @@ source $VESTA/conf/vesta.conf # Verifications # #----------------------------------------------------------# -if [ -z "$SFTPJAIL_KEY" ]; then - exit -fi +#if [ -z "$SFTPJAIL_KEY" ]; then +# exit +#fi #----------------------------------------------------------# diff --git a/bin/v-get-fs-file-type b/bin/v-get-fs-file-type index 04d28d343..ba2b7a660 100755 --- a/bin/v-get-fs-file-type +++ b/bin/v-get-fs-file-type @@ -34,7 +34,7 @@ if [ -z "$(echo $rpath |grep $homedir)" ]; then fi # Listing file type -sudo -u $user file -i -b $path 2>/dev/null +sudo -u $user file -i -b "$path" 2>/dev/null # Exiting exit $? diff --git a/bin/v-list-fs-directory b/bin/v-list-fs-directory index 65102888d..57a2c7c32 100755 --- a/bin/v-list-fs-directory +++ b/bin/v-list-fs-directory @@ -40,7 +40,6 @@ fi # Listing directory sudo -u $user find "$path" -maxdepth 1 \ -printf "%y|%m|%TY-%Tm-%Td|%TH:%TM|%u|%g|%s|%P\n" 2>/dev/null -# -printf "%y|%m|%TY-%Tm-%Td|%TH:%TM:%TS|%u|%g|%s|%P\n" 2>/dev/null # Exiting exit $? diff --git a/bin/v-list-sys-vesta-updates b/bin/v-list-sys-vesta-updates index 12db31ac0..fd30da9ee 100755 --- a/bin/v-list-sys-vesta-updates +++ b/bin/v-list-sys-vesta-updates @@ -42,8 +42,8 @@ else dpkg_data=$(dpkg-query -s vesta) pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta.list) ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ') - VERSION=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 1 -d \-) - RELEASE=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 2 -d \-) + VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-) + RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-) DATE=$(date -d @$pkg_date +"%F") TIME=$(date -d @$pkg_date +"%T") fi @@ -65,8 +65,8 @@ else dpkg_data=$(dpkg-query -s vesta-php) pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-php.list) ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ') - VERSION=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 1 -d \-) - RELEASE=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 2 -d \-) + VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-) + RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-) DATE=$(date -d @$pkg_date +"%F") TIME=$(date -d @$pkg_date +"%T") fi @@ -89,8 +89,8 @@ else dpkg_data=$(dpkg-query -s vesta-nginx) pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta-nginx.list) ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ') - VERSION=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 1 -d \-) - RELEASE=$(echo "$dpkg_data"|grep Version |cut -f 2 -d ' '|cut -f 2 -d \-) + VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-) + RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-) DATE=$(date -d @$pkg_date +"%F") TIME=$(date -d @$pkg_date +"%T") fi diff --git a/func/main.sh b/func/main.sh index 2dd448f78..94f64e294 100644 --- a/func/main.sh +++ b/func/main.sh @@ -341,7 +341,7 @@ search_objects() { # Get user value get_user_value() { - grep "^${1//$/}=" $USER_DATA/user.conf| cut -f 2 -d \' + grep "^${1//$/}=" $USER_DATA/user.conf |awk -F "'" '{print $2}' } # Update user value in user.conf diff --git a/install/debian/7/dovecot.tar.gz b/install/debian/7/dovecot.tar.gz index bfabaa030..91a55bc09 100644 Binary files a/install/debian/7/dovecot.tar.gz and b/install/debian/7/dovecot.tar.gz differ diff --git a/install/debian/7/fail2ban.tar.gz b/install/debian/7/fail2ban.tar.gz index 628545b6b..a2bf42b72 100644 Binary files a/install/debian/7/fail2ban.tar.gz and b/install/debian/7/fail2ban.tar.gz differ diff --git a/install/debian/7/firewall.tar.gz b/install/debian/7/firewall.tar.gz index e85560080..a98e20010 100644 Binary files a/install/debian/7/firewall.tar.gz and b/install/debian/7/firewall.tar.gz differ diff --git a/install/debian/7/packages.tar.gz b/install/debian/7/packages.tar.gz index 4b778dadc..c692568f1 100644 Binary files a/install/debian/7/packages.tar.gz and b/install/debian/7/packages.tar.gz differ diff --git a/install/debian/7/templates.tar.gz b/install/debian/7/templates.tar.gz index 1373401e3..3da0cec2c 100644 Binary files a/install/debian/7/templates.tar.gz and b/install/debian/7/templates.tar.gz differ diff --git a/install/debian/8/dovecot.tar.gz b/install/debian/8/dovecot.tar.gz index bfabaa030..91a55bc09 100644 Binary files a/install/debian/8/dovecot.tar.gz and b/install/debian/8/dovecot.tar.gz differ diff --git a/install/debian/8/fail2ban.tar.gz b/install/debian/8/fail2ban.tar.gz index 628545b6b..a2bf42b72 100644 Binary files a/install/debian/8/fail2ban.tar.gz and b/install/debian/8/fail2ban.tar.gz differ diff --git a/install/debian/8/firewall.tar.gz b/install/debian/8/firewall.tar.gz index e85560080..a98e20010 100644 Binary files a/install/debian/8/firewall.tar.gz and b/install/debian/8/firewall.tar.gz differ diff --git a/install/debian/8/packages.tar.gz b/install/debian/8/packages.tar.gz index 4b778dadc..c692568f1 100644 Binary files a/install/debian/8/packages.tar.gz and b/install/debian/8/packages.tar.gz differ diff --git a/install/debian/8/templates.tar.gz b/install/debian/8/templates.tar.gz index ce385d269..0f1c99e87 100644 Binary files a/install/debian/8/templates.tar.gz and b/install/debian/8/templates.tar.gz differ diff --git a/install/rhel/5/dovecot.tar.gz b/install/rhel/5/dovecot.tar.gz index 430dbc348..c17fafea8 100644 Binary files a/install/rhel/5/dovecot.tar.gz and b/install/rhel/5/dovecot.tar.gz differ diff --git a/install/rhel/5/fail2ban.tar.gz b/install/rhel/5/fail2ban.tar.gz index 563451b41..42dbaba59 100644 Binary files a/install/rhel/5/fail2ban.tar.gz and b/install/rhel/5/fail2ban.tar.gz differ diff --git a/install/rhel/5/firewall.tar.gz b/install/rhel/5/firewall.tar.gz index e85560080..dcef27e67 100644 Binary files a/install/rhel/5/firewall.tar.gz and b/install/rhel/5/firewall.tar.gz differ diff --git a/install/rhel/5/packages.tar.gz b/install/rhel/5/packages.tar.gz index 269d9bee0..da37c520e 100644 Binary files a/install/rhel/5/packages.tar.gz and b/install/rhel/5/packages.tar.gz differ diff --git a/install/rhel/5/templates.tar.gz b/install/rhel/5/templates.tar.gz index 6a2fd8909..a7c145d99 100644 Binary files a/install/rhel/5/templates.tar.gz and b/install/rhel/5/templates.tar.gz differ diff --git a/install/rhel/6/dovecot.tar.gz b/install/rhel/6/dovecot.tar.gz index 9efb91beb..3ce714be0 100644 Binary files a/install/rhel/6/dovecot.tar.gz and b/install/rhel/6/dovecot.tar.gz differ diff --git a/install/rhel/6/fail2ban.tar.gz b/install/rhel/6/fail2ban.tar.gz index 563451b41..42dbaba59 100644 Binary files a/install/rhel/6/fail2ban.tar.gz and b/install/rhel/6/fail2ban.tar.gz differ diff --git a/install/rhel/6/firewall.tar.gz b/install/rhel/6/firewall.tar.gz index e85560080..dcef27e67 100644 Binary files a/install/rhel/6/firewall.tar.gz and b/install/rhel/6/firewall.tar.gz differ diff --git a/install/rhel/6/packages.tar.gz b/install/rhel/6/packages.tar.gz index 815900543..da37c520e 100644 Binary files a/install/rhel/6/packages.tar.gz and b/install/rhel/6/packages.tar.gz differ diff --git a/install/rhel/6/templates.tar.gz b/install/rhel/6/templates.tar.gz index c81c85510..d1133a1fc 100644 Binary files a/install/rhel/6/templates.tar.gz and b/install/rhel/6/templates.tar.gz differ diff --git a/install/rhel/7/dovecot.tar.gz b/install/rhel/7/dovecot.tar.gz index 24182a6ad..da2560979 100644 Binary files a/install/rhel/7/dovecot.tar.gz and b/install/rhel/7/dovecot.tar.gz differ diff --git a/install/rhel/7/fail2ban.tar.gz b/install/rhel/7/fail2ban.tar.gz index 563451b41..42dbaba59 100644 Binary files a/install/rhel/7/fail2ban.tar.gz and b/install/rhel/7/fail2ban.tar.gz differ diff --git a/install/rhel/7/firewall.tar.gz b/install/rhel/7/firewall.tar.gz index e85560080..dcef27e67 100644 Binary files a/install/rhel/7/firewall.tar.gz and b/install/rhel/7/firewall.tar.gz differ diff --git a/install/rhel/7/packages.tar.gz b/install/rhel/7/packages.tar.gz index b857a5099..da37c520e 100644 Binary files a/install/rhel/7/packages.tar.gz and b/install/rhel/7/packages.tar.gz differ diff --git a/install/rhel/7/templates.tar.gz b/install/rhel/7/templates.tar.gz index fd86c5069..b569f8485 100644 Binary files a/install/rhel/7/templates.tar.gz and b/install/rhel/7/templates.tar.gz differ diff --git a/install/ubuntu/12.04/dovecot.tar.gz b/install/ubuntu/12.04/dovecot.tar.gz index bfabaa030..40d9292b2 100644 Binary files a/install/ubuntu/12.04/dovecot.tar.gz and b/install/ubuntu/12.04/dovecot.tar.gz differ diff --git a/install/ubuntu/12.04/fail2ban.tar.gz b/install/ubuntu/12.04/fail2ban.tar.gz index 628545b6b..9ea57f770 100644 Binary files a/install/ubuntu/12.04/fail2ban.tar.gz and b/install/ubuntu/12.04/fail2ban.tar.gz differ diff --git a/install/ubuntu/12.04/firewall.tar.gz b/install/ubuntu/12.04/firewall.tar.gz index e85560080..f0625580c 100644 Binary files a/install/ubuntu/12.04/firewall.tar.gz and b/install/ubuntu/12.04/firewall.tar.gz differ diff --git a/install/ubuntu/12.04/packages.tar.gz b/install/ubuntu/12.04/packages.tar.gz index 4b778dadc..15e18e836 100644 Binary files a/install/ubuntu/12.04/packages.tar.gz and b/install/ubuntu/12.04/packages.tar.gz differ diff --git a/install/ubuntu/12.04/templates.tar.gz b/install/ubuntu/12.04/templates.tar.gz index ce385d269..bdeab7f5b 100644 Binary files a/install/ubuntu/12.04/templates.tar.gz and b/install/ubuntu/12.04/templates.tar.gz differ diff --git a/install/ubuntu/12.10/dovecot.tar.gz b/install/ubuntu/12.10/dovecot.tar.gz index bfabaa030..40d9292b2 100644 Binary files a/install/ubuntu/12.10/dovecot.tar.gz and b/install/ubuntu/12.10/dovecot.tar.gz differ diff --git a/install/ubuntu/12.10/fail2ban.tar.gz b/install/ubuntu/12.10/fail2ban.tar.gz index 628545b6b..9ea57f770 100644 Binary files a/install/ubuntu/12.10/fail2ban.tar.gz and b/install/ubuntu/12.10/fail2ban.tar.gz differ diff --git a/install/ubuntu/12.10/firewall.tar.gz b/install/ubuntu/12.10/firewall.tar.gz index e85560080..dce4fe075 100644 Binary files a/install/ubuntu/12.10/firewall.tar.gz and b/install/ubuntu/12.10/firewall.tar.gz differ diff --git a/install/ubuntu/12.10/packages.tar.gz b/install/ubuntu/12.10/packages.tar.gz index 4b778dadc..d17f37f21 100644 Binary files a/install/ubuntu/12.10/packages.tar.gz and b/install/ubuntu/12.10/packages.tar.gz differ diff --git a/install/ubuntu/12.10/templates.tar.gz b/install/ubuntu/12.10/templates.tar.gz index ce385d269..dfd35e917 100644 Binary files a/install/ubuntu/12.10/templates.tar.gz and b/install/ubuntu/12.10/templates.tar.gz differ diff --git a/install/ubuntu/13.04/dovecot.tar.gz b/install/ubuntu/13.04/dovecot.tar.gz index bfabaa030..da7a32e6f 100644 Binary files a/install/ubuntu/13.04/dovecot.tar.gz and b/install/ubuntu/13.04/dovecot.tar.gz differ diff --git a/install/ubuntu/13.04/fail2ban.tar.gz b/install/ubuntu/13.04/fail2ban.tar.gz index 628545b6b..824f87948 100644 Binary files a/install/ubuntu/13.04/fail2ban.tar.gz and b/install/ubuntu/13.04/fail2ban.tar.gz differ diff --git a/install/ubuntu/13.04/firewall.tar.gz b/install/ubuntu/13.04/firewall.tar.gz index e85560080..dce4fe075 100644 Binary files a/install/ubuntu/13.04/firewall.tar.gz and b/install/ubuntu/13.04/firewall.tar.gz differ diff --git a/install/ubuntu/13.04/packages.tar.gz b/install/ubuntu/13.04/packages.tar.gz index 4b778dadc..d17f37f21 100644 Binary files a/install/ubuntu/13.04/packages.tar.gz and b/install/ubuntu/13.04/packages.tar.gz differ diff --git a/install/ubuntu/13.04/templates.tar.gz b/install/ubuntu/13.04/templates.tar.gz index ce385d269..5f61577ba 100644 Binary files a/install/ubuntu/13.04/templates.tar.gz and b/install/ubuntu/13.04/templates.tar.gz differ diff --git a/install/ubuntu/13.10/dovecot.tar.gz b/install/ubuntu/13.10/dovecot.tar.gz index bfabaa030..da7a32e6f 100644 Binary files a/install/ubuntu/13.10/dovecot.tar.gz and b/install/ubuntu/13.10/dovecot.tar.gz differ diff --git a/install/ubuntu/13.10/fail2ban.tar.gz b/install/ubuntu/13.10/fail2ban.tar.gz index 628545b6b..824f87948 100644 Binary files a/install/ubuntu/13.10/fail2ban.tar.gz and b/install/ubuntu/13.10/fail2ban.tar.gz differ diff --git a/install/ubuntu/13.10/firewall.tar.gz b/install/ubuntu/13.10/firewall.tar.gz index e85560080..dce4fe075 100644 Binary files a/install/ubuntu/13.10/firewall.tar.gz and b/install/ubuntu/13.10/firewall.tar.gz differ diff --git a/install/ubuntu/13.10/packages.tar.gz b/install/ubuntu/13.10/packages.tar.gz index 4b778dadc..d17f37f21 100644 Binary files a/install/ubuntu/13.10/packages.tar.gz and b/install/ubuntu/13.10/packages.tar.gz differ diff --git a/install/ubuntu/13.10/templates.tar.gz b/install/ubuntu/13.10/templates.tar.gz index ce385d269..82f493f2f 100644 Binary files a/install/ubuntu/13.10/templates.tar.gz and b/install/ubuntu/13.10/templates.tar.gz differ diff --git a/install/ubuntu/14.04/dovecot.tar.gz b/install/ubuntu/14.04/dovecot.tar.gz index bfabaa030..e6a75fced 100644 Binary files a/install/ubuntu/14.04/dovecot.tar.gz and b/install/ubuntu/14.04/dovecot.tar.gz differ diff --git a/install/ubuntu/14.04/fail2ban.tar.gz b/install/ubuntu/14.04/fail2ban.tar.gz index 628545b6b..5d0c7c980 100644 Binary files a/install/ubuntu/14.04/fail2ban.tar.gz and b/install/ubuntu/14.04/fail2ban.tar.gz differ diff --git a/install/ubuntu/14.04/firewall.tar.gz b/install/ubuntu/14.04/firewall.tar.gz index e85560080..3eeeb373d 100644 Binary files a/install/ubuntu/14.04/firewall.tar.gz and b/install/ubuntu/14.04/firewall.tar.gz differ diff --git a/install/ubuntu/14.04/packages.tar.gz b/install/ubuntu/14.04/packages.tar.gz index 4b778dadc..8bdafde82 100644 Binary files a/install/ubuntu/14.04/packages.tar.gz and b/install/ubuntu/14.04/packages.tar.gz differ diff --git a/install/ubuntu/14.04/templates.tar.gz b/install/ubuntu/14.04/templates.tar.gz index ce385d269..1308e254c 100644 Binary files a/install/ubuntu/14.04/templates.tar.gz and b/install/ubuntu/14.04/templates.tar.gz differ diff --git a/install/ubuntu/14.10/dovecot.tar.gz b/install/ubuntu/14.10/dovecot.tar.gz index bfabaa030..e6a75fced 100644 Binary files a/install/ubuntu/14.10/dovecot.tar.gz and b/install/ubuntu/14.10/dovecot.tar.gz differ diff --git a/install/ubuntu/14.10/fail2ban.tar.gz b/install/ubuntu/14.10/fail2ban.tar.gz index 628545b6b..5d0c7c980 100644 Binary files a/install/ubuntu/14.10/fail2ban.tar.gz and b/install/ubuntu/14.10/fail2ban.tar.gz differ diff --git a/install/ubuntu/14.10/firewall.tar.gz b/install/ubuntu/14.10/firewall.tar.gz index e85560080..3eeeb373d 100644 Binary files a/install/ubuntu/14.10/firewall.tar.gz and b/install/ubuntu/14.10/firewall.tar.gz differ diff --git a/install/ubuntu/14.10/packages.tar.gz b/install/ubuntu/14.10/packages.tar.gz index 4b778dadc..8bdafde82 100644 Binary files a/install/ubuntu/14.10/packages.tar.gz and b/install/ubuntu/14.10/packages.tar.gz differ diff --git a/install/ubuntu/14.10/templates.tar.gz b/install/ubuntu/14.10/templates.tar.gz index ce385d269..9fd8fccbc 100644 Binary files a/install/ubuntu/14.10/templates.tar.gz and b/install/ubuntu/14.10/templates.tar.gz differ diff --git a/install/ubuntu/15.04/dovecot.tar.gz b/install/ubuntu/15.04/dovecot.tar.gz index bfabaa030..e6a75fced 100644 Binary files a/install/ubuntu/15.04/dovecot.tar.gz and b/install/ubuntu/15.04/dovecot.tar.gz differ diff --git a/install/ubuntu/15.04/fail2ban.tar.gz b/install/ubuntu/15.04/fail2ban.tar.gz index 628545b6b..5d0c7c980 100644 Binary files a/install/ubuntu/15.04/fail2ban.tar.gz and b/install/ubuntu/15.04/fail2ban.tar.gz differ diff --git a/install/ubuntu/15.04/firewall.tar.gz b/install/ubuntu/15.04/firewall.tar.gz index e85560080..3eeeb373d 100644 Binary files a/install/ubuntu/15.04/firewall.tar.gz and b/install/ubuntu/15.04/firewall.tar.gz differ diff --git a/install/ubuntu/15.04/packages.tar.gz b/install/ubuntu/15.04/packages.tar.gz index 4b778dadc..8bdafde82 100644 Binary files a/install/ubuntu/15.04/packages.tar.gz and b/install/ubuntu/15.04/packages.tar.gz differ diff --git a/install/ubuntu/15.04/templates.tar.gz b/install/ubuntu/15.04/templates.tar.gz index ce385d269..0a457066c 100644 Binary files a/install/ubuntu/15.04/templates.tar.gz and b/install/ubuntu/15.04/templates.tar.gz differ diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 3baf90102..f867a654a 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1176,6 +1176,9 @@ update-rc.d vesta defaults service vesta start check_result $? "vesta start failed" +# Adding notifications +$VESTA/upd/add_notifications.sh + #----------------------------------------------------------# # Vesta Access Info # diff --git a/install/vst-install-rhel.sh b/install/vst-install-rhel.sh index 5be5787c4..058af598d 100755 --- a/install/vst-install-rhel.sh +++ b/install/vst-install-rhel.sh @@ -1245,6 +1245,9 @@ chkconfig vesta on service vesta start check_result $? "vesta start failed" +# Adding notifications +$VESTA/upd/add_notifications.sh + #----------------------------------------------------------# # Vesta Access Info # diff --git a/install/vst-install-ubuntu.sh b/install/vst-install-ubuntu.sh index ef64440c0..64306f8a5 100755 --- a/install/vst-install-ubuntu.sh +++ b/install/vst-install-ubuntu.sh @@ -1165,6 +1165,9 @@ update-rc.d vesta defaults service vesta start check_result $? "vesta start failed" +# Adding notifications +$VESTA/upd/add_notifications.sh + #----------------------------------------------------------# # Vesta Access Info # diff --git a/src/deb/nginx/control b/src/deb/nginx/control index c9aa82857..708e501f9 100644 --- a/src/deb/nginx/control +++ b/src/deb/nginx/control @@ -1,7 +1,7 @@ Source: vesta-nginx Package: vesta-nginx Priority: optional -Version: 0.9.7-3 +Version: 0.9.8-15 Section: admin Maintainer: Serghey Rodin Homepage: http://vestacp.com diff --git a/src/deb/php/control b/src/deb/php/control index 31260d5ff..6a1094e61 100644 --- a/src/deb/php/control +++ b/src/deb/php/control @@ -1,7 +1,7 @@ Source: vesta-php Package: vesta-php Priority: optional -Version: 0.9.7-3 +Version: 0.9.8-15 Section: admin Maintainer: Serghey Rodin Homepage: http://vestacp.com diff --git a/src/deb/vesta/control b/src/deb/vesta/control index 795d64dc7..d33f84677 100644 --- a/src/deb/vesta/control +++ b/src/deb/vesta/control @@ -1,7 +1,7 @@ Source: vesta Package: vesta Priority: optional -Version: 0.9.8-14 +Version: 0.9.8-15 Section: admin Maintainer: Serghey Rodin Homepage: http://vestacp.com diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index 5e102c55d..e600138cc 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -1,34 +1,13 @@ #!/bin/bash -# Run fwd_only trigger -if [ -x "/usr/local/vesta/upd/add_fwd_only.sh" ]; then - /usr/local/vesta/upd/add_fwd_only.sh -fi - -# Run exim permission fixer -if [ -x "/usr/local/vesta/upd/fix_exim_permissions.sh" ]; then - /usr/local/vesta/upd/fix_exim_permissions.sh -fi - -# Run vesta permission fixer -if [ -x "/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh" ]; then - /usr/local/vesta/upd/fix_vesta_ssl_permissions.sh -fi - -# Run MySQL autostart fixed -if [ -x "/usr/local/vesta/upd/fix_mysql_startup.sh" ]; then - /usr/local/vesta/upd/fix_mysql_startup.sh -fi - # Run SUDO trigger if [ -x "/usr/local/vesta/upd/add_sudo.sh" ]; then /usr/local/vesta/upd/add_sudo.sh fi -# Run Firewall trigger -if [ -x "/usr/local/vesta/upd/add_firewall.sh" ]; then - /usr/local/vesta/upd/add_firewall.sh +# Run Notification trigger +if [ -x "/usr/local/vesta/upd/add_notifications.sh" ]; then + /usr/local/vesta/upd/add_notifications.sh fi - exit 0 diff --git a/src/rpm/conf/php-fpm.conf b/src/rpm/conf/php-fpm.conf index deb95582e..7283dfdd2 100755 --- a/src/rpm/conf/php-fpm.conf +++ b/src/rpm/conf/php-fpm.conf @@ -490,8 +490,11 @@ env[LANG] = en_US.UTF-8 ; Default Value: nothing is defined by default except the values in php.ini and ; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M +php_flag[display_errors] = off +php_admin_value[error_log] = /usr/local/vesta/log/fpm-php.log +php_admin_flag[log_errors] = on +php_admin_value[memory_limit] = 256M +php_admin_value[post_max_size] = 512M +php_admin_value[upload_max_filesize] = 512M +php_admin_value[max_execution_time] = 600 +php_admin_value[max_input_time] = 600 diff --git a/src/rpm/specs/vesta-nginx.spec b/src/rpm/specs/vesta-nginx.spec index 944c399b7..9741d75eb 100644 --- a/src/rpm/specs/vesta-nginx.spec +++ b/src/rpm/specs/vesta-nginx.spec @@ -1,6 +1,6 @@ Name: vesta-nginx Version: 0.9.8 -Release: 3 +Release: 15 Summary: Vesta Control Panel Group: System Environment/Base License: BSD-like diff --git a/src/rpm/specs/vesta-php.spec b/src/rpm/specs/vesta-php.spec index 2d0213505..5dcfd28b4 100644 --- a/src/rpm/specs/vesta-php.spec +++ b/src/rpm/specs/vesta-php.spec @@ -1,6 +1,6 @@ Name: vesta-php Version: 0.9.8 -Release: 2 +Release: 15 Summary: Vesta Control Panel Group: System Environment/Base License: GPL diff --git a/src/rpm/specs/vesta.spec b/src/rpm/specs/vesta.spec index 62c7ec50f..38eae0b77 100644 --- a/src/rpm/specs/vesta.spec +++ b/src/rpm/specs/vesta.spec @@ -1,6 +1,6 @@ Name: vesta Version: 0.9.8 -Release: 14 +Release: 15 Summary: Vesta Control Panel Group: System Environment/Base License: GPL @@ -30,23 +30,11 @@ rm -rf %{buildroot} %post if [ $1 -ge 2 ]; then - if [ -e /usr/local/vesta/upd/convert_templates.sh ]; then - /usr/local/vesta/upd/convert_templates.sh - fi - if [ -e /usr/local/vesta/upd/convert_webip.sh ]; then - /usr/local/vesta/upd/convert_webip.sh - fi - if [ -e /usr/local/vesta/upd/add_fwd_only.sh ]; then - /usr/local/vesta/upd/add_fwd_only.sh - fi - if [ -e /usr/local/vesta/upd/fix_vesta_ssl_permissions.sh ]; then - /usr/local/vesta/upd/fix_vesta_ssl_permissions.sh - fi if [ -e /usr/local/vesta/upd/add_sudo.sh ]; then /usr/local/vesta/upd/add_sudo.sh fi - if [ -e /usr/local/vesta/upd/add_firewall.sh ]; then - /usr/local/vesta/upd/add_firewall.sh + if [ -e /usr/local/vesta/upd/add_notifications.sh ]; then + /usr/local/vesta/upd/add_notifications.sh fi fi %files @@ -62,6 +50,32 @@ fi %config(noreplace) %{_vestadir}/web/css/uploadify.css %changelog +* Fri Nov 06 2015 Serghey Rodin - 0.9.8-15 +- File Manager (commercial plugin) +- SFTP Chroot (commercial plugin) +- Monitoring Tools: top/free/df/server-status/mysql-status/etc +- New installer +- Improved PHP-FPM support +- UI: Notification center +- UI: Starred objects +- UI: Object sorting +- UI: HotKeys suport +- UI: Mail account settings JS hint +- UI: Autofocus on first input when adding/editing +- UI: Up to 8 nameserver dns support +- Core: Improved system logger, domain adding api and backup routine +- Japanese language support. Thanks to Flatta +- Polish language support. Thanks to MarPiRK +- Vietnamese language support. Thanks to Nguyen Ngoc Phuong +- Security Fix: Command Injection and XSS Thanks to Global IT +- BugFix: DNS Cluster SOA synchronization +- BugFix: Bulk Operation +- BugFix: Backup exclusions +- BugFix: Domain validation +- BugFix: FTP user name prefix +- BugFix: Fail2Ban manager +- BugFix: Service manager + * Wed Jun 03 2015 Serghey Rodin - 0.9.8-13 - New UI - PHP-FPM support diff --git a/upd/add_notifications.sh b/upd/add_notifications.sh new file mode 100755 index 000000000..ca2dc49c4 --- /dev/null +++ b/upd/add_notifications.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Add notifications + +if [ ! -e '/usr/local/vesta/data/users/admin/notifications.conf' ]; then + /usr/local/vesta/bin/v-add-user-notification admin "File Manager" "Browse, coppy, edit, view, and retrieve all of your web domain files using fully featured File Manager. Plugin is avaiable for purchase." 'filemanager' + /usr/local/vesta/bin/v-add-user-notification admin "Chroot SFTP" "If you want have SFTP accounts that will be used only to transfer files (and not to ssh), you can purchase and enable SFTP Chroot. " + /usr/local/vesta/bin/v-add-user-notification admin "Starred Objects" "Use stars to easily mark certain object as important or to indicate that you need to do something about it later." 'starred' + /usr/local/vesta/bin/v-add-user-notification admin "Monitoring Tools" "This module answers common performance, health, usage and monitoring questions. Server -> Show CPU, Memory, Disk usage" + /usr/local/vesta/bin/v-add-user-notification admin "Release 0.9.8-15" "New version is cool. A lot of work has been put in the user experience and stability. Check out release notes" +fi diff --git a/upd/add_sudo.sh b/upd/add_sudo.sh index dfe5ff2b8..92518a03e 100755 --- a/upd/add_sudo.sh +++ b/upd/add_sudo.sh @@ -1,10 +1,18 @@ #!/bin/bash +# New sudoers format -if [ ! -e /etc/sudoers.d/admin ]; then - echo "# Created by vesta update-trigger" > /etc/sudoers.d/admin - echo "# $(date)" >> /etc/sudoers.d/admin - echo "admin ALL=(ALL) ALL" >> /etc/sudoers.d/admin - echo "admin ALL=NOPASSWD:/usr/local/vesta/bin/*" >> /etc/sudoers.d/admin +if [ ! -e '/etc/sudoers.d/admin' ]; then + if [ ! -d '/etc/sudoers.d' ]; then + mkidr /etc/sudoers.d + chmod 750 /etc/sudoers.d + fi + echo '# Created by vesta update-trigger' > /etc/sudoers.d/admin + echo 'Defaults env_keep="VESTA"' >> /etc/sudoers.d/admin + echo 'Defaults:admin !syslog' >> /etc/sudoers.d/admin + echo 'Defaults:admin !requiretty' >> /etc/sudoers.d/admin + echo '' >> /etc/sudoers.d/admin + echo 'admin ALL=(ALL) ALL' >> /etc/sudoers.d/admin + echo 'admin ALL=NOPASSWD:/usr/local/vesta/bin/*' >> /etc/sudoers.d/admin chmod 440 /etc/sudoers.d/admin if [ -z "$(grep /etc/sudoers.d /etc/sudoers)" ]; then diff --git a/web/add/firewall/index.php b/web/add/firewall/index.php index 917da0671..caae650ce 100644 --- a/web/add/firewall/index.php +++ b/web/add/firewall/index.php @@ -26,7 +26,7 @@ if (!empty($_POST['ok'])) { // Check empty fields if (empty($_POST['v_action'])) $errors[] = __('action'); if (empty($_POST['v_protocol'])) $errors[] = __('protocol'); - if (empty($_POST['v_port'])) $errors[] = __('port'); + if (!isset($_POST['v_port'])) $errors[] = __('port'); if (empty($_POST['v_ip'])) $errors[] = __('ip address'); if (!empty($errors[0])) { foreach ($errors as $i => $error) { diff --git a/web/bulk/web/index.php b/web/bulk/web/index.php index d7c050077..4a661a1ff 100644 --- a/web/bulk/web/index.php +++ b/web/bulk/web/index.php @@ -35,12 +35,10 @@ if ($_SESSION['user'] == 'admin') { foreach ($domain as $value) { $value = escapeshellarg($value); - echo VESTA_CMD.$cmd." ".$user." ".$value." no"; exec (VESTA_CMD.$cmd." ".$user." ".$value." no", $output, $return_var); $restart='yes'; } - if (isset($restart)) { exec (VESTA_CMD."v-restart-web", $output, $return_var); exec (VESTA_CMD."v-restart-proxy", $output, $return_var); diff --git a/web/css/file_manager.css b/web/css/file_manager.css index c78137077..f6c364710 100644 --- a/web/css/file_manager.css +++ b/web/css/file_manager.css @@ -3,7 +3,7 @@ body { margin: 0; padding: 0; } .l-logo { background-color: #7B7B7B; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -117px -57px; background-repeat: no-repeat; border: 9px solid #7B7B7B; @@ -111,6 +111,7 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b /* .listing li .icon { background: url("/images/document.png") no-repeat scroll -2px 6px; float: left; margin-left: -17px; width: 13px; height: 24px; }*/ .listing li .icon { background: url("/images/flat_icons.png") no-repeat scroll -97px -100px; float: left; margin-left: -17px; width: 31px; height: 31px; margin-top: 1px; } .listing li .icon.filetype-dir { background: url("/images/flat_icons.png") no-repeat scroll -24px -98px; } +.listing li .icon.filetype-link { background: url("/images/flat_icons.png") no-repeat scroll -97px -121px; } .listing li .icon.filetype-tif, .listing li .icon.filetype-gif, @@ -474,7 +475,7 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b } .progress-container .progress-elm .close { - background: rgba(0, 0, 0, 0) url("/images/sprite.png") repeat scroll -428px -487px; + background: rgba(0, 0, 0, 0) url("/images/sprite.png?1446554103") repeat scroll -428px -487px; cursor: pointer; display: inline-block; float: right; @@ -505,7 +506,7 @@ ul.listing { list-style-type: none; padding: 18px 0 0; margin: -4px 0 0 -1px; b } /*W .check-label::before { - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -232px -9px; background-repeat: no-repeat; background-size: 450px auto; @@ -658,7 +659,7 @@ input[type="checkbox"] { line-height: 30px; } .shortcuts .close { - background: url("/images/sprite.png") repeat scroll -408px -469px; + background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; cursor: pointer; display: inline-block; float: right; @@ -715,7 +716,7 @@ input[type="checkbox"] { .l-icon-shortcuts { display: inline-block; vertical-align: middle; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); width: 35px; height: 35px; background-position: -122px -283px; diff --git a/web/css/file_manager_editor.css b/web/css/file_manager_editor.css index f0800e777..858d0d167 100644 --- a/web/css/file_manager_editor.css +++ b/web/css/file_manager_editor.css @@ -28,8 +28,8 @@ input.save:active { border: 1px solid #FFCC00; background-color: #FFCC00; color: .ace_gutter, .ace_scroller { padding-top: 0px; } -.ace-twilight .ace_gutter-active-line { margin-top: 10px; } +/*.ace-twilight .ace_gutter-active-line { margin-top: 10px; } */ .ace_gutter-cell { color: #777; } -.ace_editor { font-size: 19px !important; } +.ace_editor { font-size: 17px !important; font-family: "Courier New", Courier, "Lucida Console", Monaco, monospace !important; } diff --git a/web/css/styles.min.css b/web/css/styles.min.css index bb5c3b3ec..c1eddecef 100644 --- a/web/css/styles.min.css +++ b/web/css/styles.min.css @@ -629,10 +629,11 @@ a { left: 0; top: 0; display: inline-block; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-size: 450px auto; background-repeat: no-repeat; background-position: -232px -9px; + z-index: 99; } input[type="checkbox"] { @@ -655,7 +656,7 @@ input[type="checkbox"] { } .l-logo { - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -117px -7px; background-repeat: no-repeat; display: inline-block; @@ -672,7 +673,7 @@ input[type="checkbox"] { margin-bottom: 28px; position: fixed; width: 100%; - z-index: 11; + z-index: 100; } .l-header a { font-size: 12px; @@ -777,7 +778,7 @@ input[type="checkbox"] { } .l-profile__notifications { - background: url("/images/sprite.png") no-repeat scroll -129px -135px; + background: url("/images/sprite.png?1446554103") no-repeat scroll -129px -135px; border-radius: 30px; color: #fff; cursor: pointer; @@ -799,11 +800,6 @@ input[type="checkbox"] { background-color: #c4da5e; } .l-profile__notifications.updates { - background-position: -165px -135px; -} - -.l-profile__notifications.updates2 { -/* background-position: -202px -135px; */ background-position: -202px -157px; } @@ -817,35 +813,43 @@ input[type="checkbox"] { position: fixed; top: 34px; width: 351px; - z-index: 21; + z-index: 200; font-size: 12px; padding: 0; - color: #9E9E9E; + color: #7f7f7f; } +.notification-container .unseen { + color: #ABABAB; +} + + .notification-container li { border-bottom: 1px solid #555; padding: 10px 15px 24px; } .notification-container .mark-seen { - background: rgba(0, 0, 0, 0) url("/images/sprite.png") repeat scroll -427px -486px; - border: 5px solid #454545; - border-radius: 12px; + background-color: #abc04b; + border: 2px solid #454545; + border-radius: 10px; cursor: pointer; - display: inline-block; + display: none; float: right; - height: 9px; - margin-right: -8px; - margin-top: -3px; - width: 9px; + height: 7px; + margin-right: -5px; + margin-top: 0; + width: 7px; } .notification-container .mark-seen:hover { background-color: #333; - border-color: #333; + border-color: #abc04b; } .notification-container .mark-seen:active { background-color: #777; border-color: #777; } +.notification-container .unseen .mark-seen{ + display: inline-block; +} .notification-container .title { color: #9e9e9e; font-weight: bold; @@ -870,7 +874,6 @@ input[type="checkbox"] { color: #dacf2e; } - .notification-container a { color: #5ABDB5;/* #eee;*/ } @@ -881,6 +884,21 @@ input[type="checkbox"] { color: #00C0C0; } +.notification-container .icon { + display: inline-block; + width: 0; +} +.notification-container .icon.filemanager { + display: inline-block; + width: 22px; + background: url("/images/flat_icons.png") repeat scroll -31px -100px; +} +.notification-container .icon.starred { + display: inline-block; + width: 21px; + background: url("/images/sprite.png?1446554103") repeat scroll -184px 556px; +} + .l-stat { @@ -889,7 +907,7 @@ input[type="checkbox"] { margin: 34px auto; position: fixed; background-color: #fff; - z-index: 10; + z-index: 100; padding-top: 30px; } .l-stat__col { @@ -972,25 +990,25 @@ div.l-content > div.l-separator:nth-of-type(2) { margin-top: 214px; width: 100%; position: fixed; - z-index: 20; + z-index: 120; } div.l-content > div.l-separator:nth-of-type(4) { margin-top: 259px; width: 100%; position: fixed; - z-index: 5; + z-index: 100; } .l-sort { position: fixed; width: 998px; background-color: #fff; - z-index: 10; + z-index: 110; margin-top: 215px; } .l-sort__create-btn { - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -331px -107px; background-repeat: no-repeat; bottom: -23px; @@ -1058,7 +1076,7 @@ div.l-content > div.l-separator:nth-of-type(4) { padding: 12px; } .context-menu.sort-order span.name { - background: url("/images/sprite.png") no-repeat scroll -292px -361px rgba(0, 0, 0, 0); + background: url("/images/sprite.png?1446554103") no-repeat scroll -292px -361px rgba(0, 0, 0, 0); display: inline-block; padding: 12px 28px 12px 12px; width: 117px; @@ -1066,7 +1084,7 @@ div.l-content > div.l-separator:nth-of-type(4) { font-weight: bold; } .context-menu.sort-order span.up { - background: url("/images/sprite.png") no-repeat scroll -434px -417px rgba(0, 0, 0, 0); + background: url("/images/sprite.png?1446554103") no-repeat scroll -434px -417px rgba(0, 0, 0, 0); display: inline-block; padding: 12px 14px; width: 16px; @@ -1152,7 +1170,7 @@ div.l-content > div.l-separator:nth-of-type(4) { float: left; width: 30px; height: 30px; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -333px -1px; border: none; } @@ -1173,7 +1191,7 @@ div.l-content > div.l-separator:nth-of-type(4) { float: left; width: 25px; height: 25px; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -333px -37px; border: none; } @@ -1226,7 +1244,7 @@ div.l-content > div.l-separator:nth-of-type(4) { .l-select:after { pointer-events: none; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -245px -175px; width: 7px; height: 4px; @@ -1261,14 +1279,12 @@ div.l-content > div.l-separator:nth-of-type(4) { overflow: hidden; font-size: 13px; } - -.units div:last-child { - border-bottom: none !important; -} - .units .l-unit { border-bottom: 1px solid #ddd; } +.units > div:last-child { + border-bottom: none; +} @@ -1566,7 +1582,7 @@ div.l-content > div.l-separator:nth-of-type(4) { position: relative; } .actions-panel__col i { - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-repeat: no-repeat; display: inline-block; float: right; @@ -1993,7 +2009,7 @@ div.l-content > div.l-separator:nth-of-type(4) { .l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-shortcuts, .l-icon-star-orange, .l-icon-star-blue { display: inline-block; vertical-align: middle; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); } .l-icon-down-arrow { @@ -2233,7 +2249,7 @@ div.l-content > div.l-separator:nth-of-type(4) { height: 16px; overflow: hidden; padding-top: 6px; - width: 620px; + width: 593px; } .vst-ok { @@ -2328,7 +2344,7 @@ label { .vst-input:disabled, .vst-list:disabled { - background-color: #ebebeb; + background-color: #e0e0e0; } .vst-input:focus:disabled { border-color: #f1f1f1; @@ -2351,7 +2367,7 @@ label { margin: 2px 6px 0 0; min-width: 138px; padding: 8px 1px 6px 10px; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -185px -604px; width: 270px; appearance:none; @@ -2764,7 +2780,7 @@ form#vstobjects.suspended { #add-icon { width: 45px; height: 45px; - background-image: url("/images/sprite.png"); + background-image: url("/images/sprite.png?1446554103"); background-position: -378px -107px; background-repeat: no-repeat; display: inline-block; @@ -2831,13 +2847,14 @@ form#vstobjects.suspended { } .search-input { + background-color: #fff; border: 1px solid #ddd; height: 21px; line-height: 28px; padding-left: 7px; float: left; - width: 0px; - visibility: hidden; + width: 74px; +/* visibility: hidden;*/ -webkit-transition: width .2s ease-out; -moz-transition: width .2s ease-out; -o-transition: width .2s ease-out; @@ -2848,9 +2865,9 @@ form#vstobjects.suspended { visibility: visible; } .search-input:focus { - background-color: #d7f9ff; - border-color: #55c9c0; - color: #333; +// background-color: #e8fcff; +// border-color: #75c9c2; +// color: #333; } .float-left { @@ -2902,7 +2919,7 @@ form#vstobjects.suspended { letter-spacing: 3px; } .shortcuts .close { - background: url("/images/sprite.png") repeat scroll -408px -469px; + background: url("/images/sprite.png?1446554103") repeat scroll -408px -469px; cursor: pointer; display: inline-block; float: right; @@ -3001,6 +3018,10 @@ form#vstobjects.suspended { background-color: #5f9491; } +.description.cancel-success { + color: #8fac0a; + font-weight: bold; +} .description .licence { padding: 20px 0; diff --git a/web/delete/notification/index.php b/web/delete/notification/index.php new file mode 100644 index 000000000..fa3a14f10 --- /dev/null +++ b/web/delete/notification/index.php @@ -0,0 +1,30 @@ + 0 ) { - header("Location: /error/"); - exit; - } - $panel = json_decode(implode('', $output), true); -} -*/ -/* -// Check user session -if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) { + +// Check module activation +if (!$_SESSION['FILEMANAGER_KEY']) { $_SESSION['request_uri'] = $_SERVER['REQUEST_URI']; header("Location: /login/"); exit; } -*/ + +// Check login_as feature +if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { + $user=$_SESSION['look']; +} + ?> @@ -44,66 +36,37 @@ if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) { if (!empty($_REQUEST['path'])) { $content = ''; $path = $_REQUEST['path']; - if (is_readable($path)) { - $image = getimagesize($path) ? true : false; - - if ($image) { - header('Location: /view/file/?path='.$path); - exit; - } - - if (!empty($_POST['save'])) { - $fn = tempnam ('/tmp', 'vst-save-file-'); - if ($fn) { - $f = fopen ($fn, 'w+'); - fwrite($f, $_POST['contents']); - fclose($f); - - chmod($fn, 0644); - - if ($f) { - //copy($fn, $path); - exec (VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}", $output, $return_var); + if (!empty($_POST['save'])) { + $fn = tempnam ('/tmp', 'vst-save-file-'); + if ($fn) { + $contents = $_POST['contents']; + $contents = preg_replace("/\r/", "", $contents); + $f = fopen ($fn, 'w+'); + fwrite($f, $contents); + fclose($f); + chmod($fn, 0644); - $error = check_return_code($return_var, $output); - if ($return_var != 0) { - /*var_dump(VESTA_CMD . "v-copy-fs-file {$user} {$fn} {$path}"); - var_dump($path); - var_dump($output);*/ - die('

Error while saving file

');//echo '0'; - } + if ($f) { + exec (VESTA_CMD . "v-copy-fs-file {$user} {$fn} ".escapeshellarg($path), $output, $return_var); + $error = check_return_code($return_var, $output); + if ($return_var != 0) { + print('

Error while saving file

'); + exit; } - unlink($fn); } + unlink($fn); } - - // $content = file_get_contents($path); - // v-open-fs-file - - - //print file_get_contents($path); - exec (VESTA_CMD . "v-check-fs-permission {$user} {$path}", $content, $return_var); - - if ($return_var != 0) { - print 'Error while opening file'; // todo: handle this more styled - exit; - } - - - /*exec (VESTA_CMD . "v-open-fs-file {$user} {$path}", $content, $return_var); - if ($return_var != 0) { - print 'Error while opening file'; // todo: handle this more styled - exit; - } - - $content = implode("\n", $content);*/ - $content = file_get_contents($path); } - } - else { + + exec (VESTA_CMD . "v-open-fs-file {$user} ".escapeshellarg($path), $content, $return_var); + if ($return_var != 0) { + print 'Error while opening file'; // todo: handle this more styled + exit; + } + $content = implode("\n", $content)."\n"; + } else { $content = ''; } - ?>
@@ -120,9 +83,11 @@ if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) { $('.editor').ace({ theme: 'twilight', lang: 'ruby' }); var dcrt = $('#editor').data('ace'); - var editor = dcrt.editor.ace; - editor.gotoLine(0); - editor.focus(); + dcrt.editor.ace.getSession().setNewLineMode('unix'); + var aceInstance = dcrt.editor.ace; + aceInstance.gotoLine(0); + aceInstance.focus(); + var makeBackup = function() { diff --git a/web/edit/server/index.php b/web/edit/server/index.php index dde038c55..a47056991 100644 --- a/web/edit/server/index.php +++ b/web/edit/server/index.php @@ -1,8 +1,6 @@ formatFullPath($dir); - exec(VESTA_CMD . "v-get-fs-file-type {$this->user} {$dir}", $output, $return_var); - $error = self::check_return_code($return_var, $output); if (empty($error)) { return array( @@ -76,12 +74,7 @@ class FileManager { function deleteItem($dir, $item) { $dir = $this->formatFullPath($item); - if (is_dir($item)) { - exec (VESTA_CMD . "v-delete-fs-directory {$this->user} {$dir}", $output, $return_var); - } - else { - exec (VESTA_CMD . "v-delete-fs-file {$this->user} {$dir}", $output, $return_var); - } + exec (VESTA_CMD . "v-delete-fs-directory {$this->user} {$dir}", $output, $return_var); $error = self::check_return_code($return_var, $output); @@ -189,8 +182,12 @@ class FileManager { function packItem($item, $dir, $target_dir, $filename) { $item = $this->formatFullPath($item); $dst_item = $this->formatFullPath($target_dir); -//print VESTA_CMD . "v-add-fs-archive {$this->user} {$item} {$dst_item}";die(); - exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$item} {$dst_item}", $output, $return_var); + + $dst_item = str_replace('.tar.gz', '', $dst_item); + + //$item = str_replace($dir . '/', '', $item); +//var_dump(VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$item}");die(); + exec (VESTA_CMD . "v-add-fs-archive {$this->user} {$dst_item} {$item}", $output, $return_var); $error = self::check_return_code($return_var, $output); diff --git a/web/file_manager/index.php b/web/file_manager/index.php new file mode 100644 index 000000000..8df684698 --- /dev/null +++ b/web/file_manager/index.php @@ -0,0 +1,3 @@ + 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/bs.php b/web/inc/i18n/bs.php index 359731938..10c4c94db 100644 --- a/web/inc/i18n/bs.php +++ b/web/inc/i18n/bs.php @@ -582,6 +582,17 @@ $LANG['bs'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/cn.php b/web/inc/i18n/cn.php index 9a43d3653..34c321f23 100644 --- a/web/inc/i18n/cn.php +++ b/web/inc/i18n/cn.php @@ -587,6 +587,17 @@ $LANG['cn'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/cz.php b/web/inc/i18n/cz.php index dddeb1816..a8a8b078d 100644 --- a/web/inc/i18n/cz.php +++ b/web/inc/i18n/cz.php @@ -588,6 +588,17 @@ $LANG['cz'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/da.php b/web/inc/i18n/da.php index 31cf5ac3d..575448436 100644 --- a/web/inc/i18n/da.php +++ b/web/inc/i18n/da.php @@ -589,6 +589,17 @@ $LANG['da'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); diff --git a/web/inc/i18n/de.php b/web/inc/i18n/de.php index 5e9d6f09f..f86b23f9d 100644 --- a/web/inc/i18n/de.php +++ b/web/inc/i18n/de.php @@ -586,6 +586,17 @@ $LANG['de'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index 71db88ff8..068cc5595 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -588,6 +588,17 @@ $LANG['el'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/en.php b/web/inc/i18n/en.php index 7aeeef484..bd560a0d9 100644 --- a/web/inc/i18n/en.php +++ b/web/inc/i18n/en.php @@ -589,6 +589,17 @@ $LANG['en'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/es.php b/web/inc/i18n/es.php index 3812030ca..f15425a88 100644 --- a/web/inc/i18n/es.php +++ b/web/inc/i18n/es.php @@ -588,6 +588,17 @@ $LANG['es'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/fi.php b/web/inc/i18n/fi.php index fb2a3518d..75259aed5 100644 --- a/web/inc/i18n/fi.php +++ b/web/inc/i18n/fi.php @@ -591,6 +591,17 @@ $LANG['fi'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/fr.php b/web/inc/i18n/fr.php index e6fad323a..7772ba06e 100644 --- a/web/inc/i18n/fr.php +++ b/web/inc/i18n/fr.php @@ -589,6 +589,17 @@ $LANG['fr'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/hu.php b/web/inc/i18n/hu.php index 8444e3ecf..7da0338ba 100644 --- a/web/inc/i18n/hu.php +++ b/web/inc/i18n/hu.php @@ -596,6 +596,17 @@ $LANG['hu'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/id.php b/web/inc/i18n/id.php index 165614059..0a0d935a6 100644 --- a/web/inc/i18n/id.php +++ b/web/inc/i18n/id.php @@ -590,6 +590,17 @@ $LANG['id'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/it.php b/web/inc/i18n/it.php index 1ce1105fb..46fc8981f 100644 --- a/web/inc/i18n/it.php +++ b/web/inc/i18n/it.php @@ -588,6 +588,17 @@ $LANG['it'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/ja.php b/web/inc/i18n/ja.php index 7015001b7..fba1c3abe 100644 --- a/web/inc/i18n/ja.php +++ b/web/inc/i18n/ja.php @@ -587,6 +587,17 @@ $LANG['ja'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index d8c89e965..96e6ad576 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -588,6 +588,17 @@ $LANG['nl'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/no.php b/web/inc/i18n/no.php index 75e964d28..a3c8a92e2 100644 --- a/web/inc/i18n/no.php +++ b/web/inc/i18n/no.php @@ -588,6 +588,17 @@ $LANG['no'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index 3e42affac..19483d664 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -586,6 +586,17 @@ $LANG['pl'] = array( 'Append File to the Current Selection' => 'Nadpisz plik do aktualnego zaznaczenia', 'Select All Files' => 'Wybierz wszystkie pliki', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'skróty klawiszowe są zainspirowane wspaniałym managerem plików GNU Midnight Commander' + 'skróty klawiszowe są zainspirowane wspaniałym managerem plików GNU Midnight Commander', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); diff --git a/web/inc/i18n/pt.php b/web/inc/i18n/pt.php index 2789cc6e2..c9b6f5c64 100644 --- a/web/inc/i18n/pt.php +++ b/web/inc/i18n/pt.php @@ -587,6 +587,17 @@ $LANG['pt'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); diff --git a/web/inc/i18n/ro.php b/web/inc/i18n/ro.php index ebf1f1f21..7040ddf94 100644 --- a/web/inc/i18n/ro.php +++ b/web/inc/i18n/ro.php @@ -589,6 +589,17 @@ $LANG['ro'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 093b2f7cc..4e26d8e46 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -589,6 +589,17 @@ $LANG['ru'] = array( 'Append File to the Current Selection' => 'Добавить файл к выбранным', 'Select All Files' => 'Выбрать все файлы', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'горячие клавиши заимствованы из великолепного файл менеджера GNU Midnight Commander' + 'горячие клавиши заимствованы из великолепного файл менеджера GNU Midnight Commander', + + 'Licence Key' => 'Лицензионный Ключ', + 'Enter License Key' => 'Внесите Лицензионный Ключ', + 'Buy Licence' => 'Купить Лицензионный Ключ', + 'Buy Lifetime License' => 'Купить Бесконечный Лицензионный Ключ ', + 'Disable and Cancel Licence' => 'Отключить и Закрыть Лицензию', + 'Licence Activated' => 'Лицензия Активирована', + 'Licence Deactivated' => 'Лицензия Отключена', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'Это коммерческий модуль, чтобы включить его, вам необходимо приобрести лицензию.' ); \ No newline at end of file diff --git a/web/inc/i18n/se.php b/web/inc/i18n/se.php index e060b1322..70b85165b 100644 --- a/web/inc/i18n/se.php +++ b/web/inc/i18n/se.php @@ -585,6 +585,17 @@ $LANG['se'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index 0a525c1ac..51529c21b 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -496,97 +496,108 @@ $LANG['tr'] = array( 'Template Manager' => 'Şablon Yöneticisi', 'Backup Migration Manager' => 'Yedek Aktarma Yöneticisi', 'FileManager' => 'DosyaYöneticisi', - 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + 'show: CPU / MEM / NET / DISK' => 'göster: CPU / BEL / AĞ / DISK', 'sort by' => 'sıralama ölçütü', 'Date' => 'Tarih', 'Starred' => 'Yıldızlı', 'Name' => 'İsim', - 'File Manager' => 'File Manager', - 'type' => 'type', - 'size' => 'size', - 'date' => 'date', - 'name' => 'name', - 'Initializing' => 'Initializing', - 'UPLOAD' => 'UPLOAD', - 'NEW FILE' => 'NEW FILE', - 'NEW DIR' => 'NEW DIR', - 'DELETE' => 'DELETE', - 'RENAME' => 'RENAME', - 'COPY' => 'COPY', - 'ARCHIVE' => 'ARCHIVE', - 'EXTRACT' => 'EXTRACT', - 'DOWNLOAD' => 'DOWNLOAD', + 'File Manager' => 'Dosya Yöneticisi', + 'type' => 'tip', + 'size' => 'boyut', + 'date' => 'tarih', + 'name' => 'isim', + 'Initializing' => 'Başlatılıyor', + 'UPLOAD' => 'YÜKLE', + 'NEW FILE' => 'YENİ DOSYA', + 'NEW DIR' => 'YENİ KLASÖR', + 'DELETE' => 'SİL', + 'RENAME' => 'YENİDEN ADLANDIR', + 'COPY' => 'KOPYALA', + 'ARCHIVE' => 'ARŞİVLE', + 'EXTRACT' => 'ÇIKART', + 'DOWNLOAD' => 'İNDİR', 'Hit' => 'Hit', - 'to reload the page' => 'to reload the page', - 'Directory name cannot be empty' => 'Directory name cannot be empty', - 'File name cannot be empty' => 'File name cannot be empty', - 'No file selected' => 'No file selected', - 'No file or folder selected' => 'No file or folder selected', - 'File type not supported' => 'File type not supported', - 'Directory download not available in current version' => 'Directory download not available in current version', - 'Directory not available' => 'Directory not available', - 'Done' => 'Done', - 'Close' => 'Close', - 'Copy' => 'Copy', - 'Cancel' => 'Cancel', - 'Rename' => 'Rename', - 'Delete' => 'Delete', - 'Extract' => 'Extract', - 'Create' => 'Create', - 'Compress' => 'Compress', - 'OK' => 'OK', - 'Are you sure you want to copy' => 'Are you sure you want to copy', - 'Are you sure you want to delete' => 'Are you sure you want to delete', + 'to reload the page' => 'sayfayı yenilemek için', + 'Directory name cannot be empty' => 'Dizin adı boş olamaz', + 'File name cannot be empty' => 'Dosya adı boş olamaz', + 'No file selected' => 'Dosya seçilmedi', + 'No file or folder selected' => 'Dosya veya klasör seçilmedi', + 'File type not supported' => 'Dosya tipi desteklenmiyor', + 'Directory download not available in current version' => 'Dizin indirme şuanki sürümde mevcut değil', + 'Directory not available' => 'Dizin geçerli değil', + 'Done' => 'Bitti', + 'Close' => 'Kapat', + 'Copy' => 'Kopyala', + 'Cancel' => 'Vazgeç', + 'Rename' => 'Yeniden Adlandır', + 'Delete' => 'Sil', + 'Extract' => 'Çıkart', + 'Create' => 'Oluştur', + 'Compress' => 'Sıkıştır', + 'OK' => 'TAMAM', + 'Are you sure you want to copy' => 'Kopyalamak istediğinizden emin misiniz', + 'Are you sure you want to delete' => 'Silmek istediğinizden emin misiniz', 'into' => 'into', - 'existing files will be replaced' => 'existing files will be replaced', - 'Original name' => 'Original name', - 'File' => 'File', - 'already exists' => 'already exists', - 'Create file' => 'Create file', - 'Create directory' => 'Create directory', + 'existing files will be replaced' => 'varolan dosyalar değiştirilir', + 'Original name' => 'Orijinal adı', + 'File' => 'Dosya', + 'already exists' => 'zaten var', + 'Create file' => 'Dosya oluştur', + 'Create directory' => 'Dizin oluştur', - 'Add New object' => 'Add New object', - 'Save Form' => 'Save Form', - 'Cancel saving form' => 'Cancel saving form', - 'Go to USER list' => 'Go to USER list', - 'Go to WEB list' => 'Go to WEB list', - 'Go to DNS list' => 'Go to DNS list', - 'Go to MAIL list' => 'Go to MAIL list', - 'Go to DB list' => 'Go to DB list', - 'Go to CRON list' => 'Go to CRON list', - 'Go to BACKUP list' => 'Go to BACKUP list', - 'Focus on search' => 'Focus on search', - 'Display/Close shortcuts' => 'Display/Close shortcuts', - 'Move backward through top menu' => 'Move backward through top menu', - 'Move forward through top menu' => 'Move forward through top menu', - 'Enter focused element' => 'Enter focused element', + 'Add New object' => 'Yeni Nesne Ekle', + 'Save Form' => 'Formu Kaydet', + 'Cancel saving form' => 'Formu kaydetmekten vazgeç', + 'Go to USER list' => 'KULLANICI listesine git', + 'Go to WEB list' => 'WEB listesine git', + 'Go to DNS list' => 'DNS listesine git', + 'Go to MAIL list' => 'MAIL listesine git', + 'Go to DB list' => 'DB listesine git', + 'Go to CRON list' => 'CRON listesine git', + 'Go to BACKUP list' => 'YEDEK listesine git', + 'Focus on search' => 'Aramaya odaklan', + 'Display/Close shortcuts' => 'Kısayolları görüntüle/kapat', + 'Move backward through top menu' => 'Üst menüden arasında geriye doğru git', + 'Move forward through top menu' => 'Üst menüden arasında ileriye doğru git', + 'Enter focused element' => 'Odaklanmış elemanı gir', - 'Upload' => 'Upload', - 'New File' => 'New File', - 'New Folder' => 'New Folder', - 'Download' => 'Download', - 'Rename' => 'Rename', - 'Copy' => 'Copy', - 'Archive' => 'Archive', - 'Delete' => 'Delete', - 'Save File (in text editor)' => 'Save File (in text editor)', - 'Close Popup / Cancel' => 'Close Popup / Cancel', - 'Move Cursor Up' => 'Move Cursor Up', - 'Move Cursor Dow' => 'Move Cursor Dow', - 'Switch to Left Tab' => 'Switch to Left Tab', - 'Switch to Right Tab' => 'Switch to Right Tab', - 'Switch Tab' => 'Switch Tab', - 'Go to the Top of File List' => 'Go to the Top of File List', - 'Go to the Last File' => 'Go to the Last File', - 'Open File/Enter Directory' => 'Open File/Enter Directory', - 'Go to Parent Directory' => 'Go to Parent Directory', - 'Select Current File' => 'Select Current File', - 'Select Bunch of Files' => 'Select Bunch of Files', - 'Append File to the Current Selection' => 'Append File to the Current Selection', - 'Select All Files' => 'Select All Files', + 'Upload' => 'Yükle', + 'New File' => 'Yeni Dosya', + 'New Folder' => 'Yeni Klasör', + 'Download' => 'İndir', + 'Rename' => 'Yeniden Adlandır', + 'Copy' => 'Kopyala', + 'Archive' => 'Arşivle', + 'Delete' => 'Sil', + 'Save File (in text editor)' => 'Dosyayı Kaydet (metin editöründe)', + 'Close Popup / Cancel' => 'Popup Kapat / Vazgeç', + 'Move Cursor Up' => 'İmleci Yukarı Hareket Ettir', + 'Move Cursor Dow' => 'İmleci Aşağı Hareket Ettir', + 'Switch to Left Tab' => 'Sol Sekmeye geçin', + 'Switch to Right Tab' => 'Sağ Sekmeye geçin', + 'Switch Tab' => 'Sekmeye geç', + 'Go to the Top of File List' => 'Dosya Listesinin Tepesine git', + 'Go to the Last File' => 'Son Dosyaya git', + 'Open File/Enter Directory' => 'Dosya Aç/Dizin Gir', + 'Go to Parent Directory' => 'Üst Dizine Git', + 'Select Current File' => 'Şuanki Dosyayı Seç', + 'Select Bunch of Files' => 'Dosya Demetini Seç', + 'Append File to the Current Selection' => 'Şuanki Seçime Dosya Ekle', + 'Select All Files' => 'Tüm Dosyaları Seç', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'kısayollar muhteşem dosya yöneticisi Midnight Commander arayüzünden esinlenilmiştir', -); \ No newline at end of file + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' + +); diff --git a/web/inc/i18n/tw.php b/web/inc/i18n/tw.php index 3327c0ed3..0fd895c75 100644 --- a/web/inc/i18n/tw.php +++ b/web/inc/i18n/tw.php @@ -1051,5 +1051,17 @@ $LANG['tw'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' + ); \ No newline at end of file diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 3abe6a2f0..35fa19f1e 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -589,6 +589,17 @@ $LANG['ua'] = array( 'Append File to the Current Selection' => 'Append File to the Current Selection', 'Select All Files' => 'Select All Files', 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' => - 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' ); \ No newline at end of file diff --git a/web/inc/i18n/vi.php b/web/inc/i18n/vi.php index 04aecc4e8..f3f224581 100644 --- a/web/inc/i18n/vi.php +++ b/web/inc/i18n/vi.php @@ -345,6 +345,7 @@ $LANG['vi'] = array( 'Banlist' => 'Danh sách chặn', 'ranges are acceptable' => 'chấp nhận phạm vi', 'CIDR format is supported' => 'định dạng CIDR được hỗ trợ', + 'Add one more Name Server' => 'Add one more Name Server', '1 account' => '1 tài khoản', '%s accounts' => '%s tài khoản', @@ -465,4 +466,134 @@ $LANG['vi'] = array( 'RESET_CODE_SENT' => 'Mã thiết lập lại mật khẩu đã được gửi đến địa chỉ email
', 'MAIL_RESET_SUBJECT' => 'Khôi phục mật khẩu tại %s', 'PASSWORD_RESET_REQUEST' => "Để thiết lập lại mật khẩu quản trị, vui lòng truy cập vào địa chỉ:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s và nhập mã sau:\n%s\n\nNếu bạn không thực hiện khôi phục mật khẩu, vui lòng bỏ qua email này.\n\n--\nVesta Control Panel\n", + + 'Jan' => 'Jan', + 'Feb' => 'Feb', + 'Mar' => 'Mar', + 'Apr' => 'Apr', + 'May' => 'May', + 'Jun' => 'Jun', + 'Jul' => 'Jul', + 'Aug' => 'Aug', + 'Sep' => 'Sep', + 'Oct' => 'Oct', + 'Nov' => 'Nov', + 'Dec' => 'Dec', + + 'Configuring Server' => 'Configuring Server', + 'Hostname' => 'Hostname', + 'Time Zone' => 'Time Zone', + 'Default Language' => 'Default Language', + 'FileSystem Disk Quota' => 'FileSystem Disk Quota', + 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'preview' => 'preview', + 'Reseller Role' => 'Reseller Role', + 'Web Config Editor' => 'Web Config Editor', + 'Template Manager' => 'Template Manager', + 'Backup Migration Manager' => 'Backup Migration Manager', + 'FileManager' => 'FileManager', + 'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK', + + 'sort by' => 'sort by', + 'Date' => 'Date', + 'Starred' => 'Starred', + 'Name' => 'Name', + + 'File Manager' => 'File Manager', + 'type' => 'type', + 'size' => 'size', + 'date' => 'date', + 'name' => 'name', + 'Initializing' => 'Initializing', + 'UPLOAD' => 'UPLOAD', + 'NEW FILE' => 'NEW FILE', + 'NEW DIR' => 'NEW DIR', + 'DELETE' => 'DELETE', + 'RENAME' => 'RENAME', + 'COPY' => 'COPY', + 'ARCHIVE' => 'ARCHIVE', + 'EXTRACT' => 'EXTRACT', + 'DOWNLOAD' => 'DOWNLOAD', + 'Hit' => 'Hit', + 'to reload the page' => 'to reload the page', + 'Directory name cannot be empty' => 'Directory name cannot be empty', + 'File name cannot be empty' => 'File name cannot be empty', + 'No file selected' => 'No file selected', + 'No file or folder selected' => 'No file or folder selected', + 'File type not supported' => 'File type not supported', + 'Directory download not available in current version' => 'Directory download not available in current version', + 'Directory not available' => 'Directory not available', + 'Done' => 'Done', + 'Close' => 'Close', + 'Copy' => 'Copy', + 'Cancel' => 'Cancel', + 'Rename' => 'Rename', + 'Delete' => 'Delete', + 'Extract' => 'Extract', + 'Create' => 'Create', + 'Compress' => 'Compress', + 'OK' => 'OK', + 'Are you sure you want to copy' => 'Are you sure you want to copy', + 'Are you sure you want to delete' => 'Are you sure you want to delete', + 'into' => 'into', + 'existing files will be replaced' => 'existing files will be replaced', + 'Original name' => 'Original name', + 'File' => 'File', + 'already exists' => 'already exists', + 'Create file' => 'Create file', + 'Create directory' => 'Create directory', + + 'Add New object' => 'Add New object', + 'Save Form' => 'Save Form', + 'Cancel saving form' => 'Cancel saving form', + 'Go to USER list' => 'Go to USER list', + 'Go to WEB list' => 'Go to WEB list', + 'Go to DNS list' => 'Go to DNS list', + 'Go to MAIL list' => 'Go to MAIL list', + 'Go to DB list' => 'Go to DB list', + 'Go to CRON list' => 'Go to CRON list', + 'Go to BACKUP list' => 'Go to BACKUP list', + 'Focus on search' => 'Focus on search', + 'Display/Close shortcuts' => 'Display/Close shortcuts', + 'Move backward through top menu' => 'Move backward through top menu', + 'Move forward through top menu' => 'Move forward through top menu', + 'Enter focused element' => 'Enter focused element', + + 'Upload' => 'Upload', + 'New File' => 'New File', + 'New Folder' => 'New Folder', + 'Download' => 'Download', + 'Rename' => 'Rename', + 'Copy' => 'Copy', + 'Archive' => 'Archive', + 'Delete' => 'Delete', + 'Save File (in text editor)' => 'Save File (in text editor)', + 'Close Popup / Cancel' => 'Close Popup / Cancel', + 'Move Cursor Up' => 'Move Cursor Up', + 'Move Cursor Dow' => 'Move Cursor Dow', + 'Switch to Left Tab' => 'Switch to Left Tab', + 'Switch to Right Tab' => 'Switch to Right Tab', + 'Switch Tab' => 'Switch Tab', + 'Go to the Top of File List' => 'Go to the Top of File List', + 'Go to the Last File' => 'Go to the Last File', + 'Open File/Enter Directory' => 'Open File/Enter Directory', + 'Go to Parent Directory' => 'Go to Parent Directory', + 'Select Current File' => 'Select Current File', + 'Select Bunch of Files' => 'Select Bunch of Files', + 'Append File to the Current Selection' => 'Append File to the Current Selection', + 'Select All Files' => 'Select All Files', + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager' =>. + 'shortcuts are inspired by magnificent GNU Midnight Commander file manager', + + 'Licence Key' => 'Licence Key', + 'Enter License Key' => 'Enter License Key', + 'Buy Licence' => 'Buy Licence', + 'Buy Lifetime License' => 'Buy Lifetime License', + 'Disable and Cancel Licence' => 'Disable and Cancel Licence', + 'Licence Activated' => 'Licence Activated', + 'Licence Deactivated' => 'Licence Deactivated', + 'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.', + 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.', + 'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.' + ); diff --git a/web/js/app.js b/web/js/app.js index 1a3f18198..ae8883c34 100644 --- a/web/js/app.js +++ b/web/js/app.js @@ -867,7 +867,7 @@ App.Ajax.request = function(method, data, callback, onError){ callback && callback(reply); } catch(e) { - alert('GENERAL ERROR: '+e); + fb.error('GENERAL ERROR with ajax method: ' + data.request_method + ' ' + e); //App.Helpers.generalError(); } } diff --git a/web/js/events.js b/web/js/events.js index 66d793272..c038e8fdd 100644 --- a/web/js/events.js +++ b/web/js/events.js @@ -8,6 +8,7 @@ var VE = { // Vesta Events object menu_active_selector: '.l-stat__col--active' } }, // menu and element navigation functions + notifications: {}, callbacks: { // events callback functions click: {}, mouseover: {}, @@ -353,6 +354,57 @@ VE.navigation.switch_menu = function(position){ } } +VE.notifications.get_list = function(){ +/// TODO get notifications only once + $.ajax({ + url: "/list/notifications/?ajax=1", + dataType: "json" + }).done(function(data) { + var acc = []; + + $.each(data, function(i, elm){ + var tpl = Tpl.get('notification', 'WEB'); + if(elm.ACK == 'no') + tpl.set(':UNSEEN', 'unseen'); + else + tpl.set(':UNSEEN', ''); + + tpl.set(':ID', elm.ID); + tpl.set(':TYPE', elm.TYPE); + tpl.set(':TOPIC', elm.TOPIC); + tpl.set(':NOTICE', elm.NOTICE); + acc.push(tpl.finalize()); + }); + + $('.notification-container').html(acc.done()).show(); + + $('.notification-container .mark-seen').click(function(event){ + /// TODO add token + VE.notifications.mark_seen($(event.target).attr('id').replace("notification-", "")); +// VE.notifications.delete($(event.target).attr('id').replace("notification-", "")); + }); + + }); +} + + +VE.notifications.delete = function(id){ + $('#notification-'+id).parents('li').remove(); + $.ajax({ + url: "/delete/notification/?delete=1¬ification_id="+id+"&token="+$('#token').attr('token') + }); +} + +VE.notifications.mark_seen = function(id){ + $('#notification-'+id).parents('li').removeClass('unseen'); + $.ajax({ + url: "/delete/notification/?notification_id="+id+"&token="+$('#token').attr('token') + }); + if($('.notification-container .unseen').length == 0) + $('.l-profile__notifications').removeClass('updates'); +} + + VE.navigation.init = function(){ diff --git a/web/js/file_manager.js b/web/js/file_manager.js index ae3ab5df2..c551b21c2 100644 --- a/web/js/file_manager.js +++ b/web/js/file_manager.js @@ -99,6 +99,10 @@ FM.showError = function(type, message) { return; } + + if (ref.find('.results').length > 0) { + ref.find('.results').html(message); + } } else { FM.popupClose(); @@ -157,34 +161,16 @@ FM.setActive = function(index, box) { $(box + ' .active').removeClass('active'); $(box).find('li.dir:eq('+index+')').addClass('active'); - //$(box).find('li:eq('+index+')').addClass('selected'); - //var w_h = $(window).height() - 100; var w_offset = $(box).scrollTop(); var w_height = $(box).height() var pos = $(box).find('li.selected').position(); - //console.log(w_height); - //console.log(w_offset); - //console.log(pos); + var wwh = w_height - w_offset + pos.top; - //console.info(wwh); - //console.info((pos.top + w_offset) + ' > ' + w_height); - //console.log((pos.top + w_offset) > w_height); -/* if (pos.top > w_height) { - var cur_elm = $(box).find('li.selected').position(); - var cur_elm_height = $(box).find('li.selected').height(); - //$(box).scrollTo(wwh - 350); - $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2); - - } - else {*/ - var cur_elm = $(box).find('li.selected').position(); - var cur_elm_height = $(box).find('li.selected').height(); - $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2); + var cur_elm = $(box).find('li.selected').position(); + var cur_elm_height = $(box).find('li.selected').height(); - //} - - + $(box).scrollTo(w_offset + cur_elm.top - w_height/2 + cur_elm_height/2); FM['CURRENT_' + tab + '_LINE'] = index; @@ -211,7 +197,6 @@ FM.setActive = function(index, box) { } FM.setSecondInactive = function(index, box) { - //$(box + ' .active').removeClass('selected-inactive'); $(box).find('li:eq('+index+')').addClass('selected-inactive'); FM.BG_LINE = index; @@ -282,9 +267,7 @@ FM.goDown = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var index = FM['CURRENT_' + tab + '_LINE']; index += 1; - /*if (index > ($(FM.CURRENT_TAB).find('li.dir').length - 1)) { - index = 0; - }*/ + if (index > ($(FM.CURRENT_TAB).find('li.dir').length - 1)) { index = $(FM.CURRENT_TAB).find('li.dir').length - 1; } @@ -294,7 +277,7 @@ FM.goDown = function() { // reloads provided tab // reloads opposite tab if its needed -FM.openAndSync = function(dir, box, callback) { +FM.openAndSync = function(dir, box, callback, forceOppositeSync) { var tab = FM.getTabLetter(box); var opposite_tab = 'A'; @@ -308,6 +291,9 @@ FM.openAndSync = function(dir, box, callback) { oppositeSyncNeeded = true; } + if ('undefined' != typeof forceOppositeSync) { + oppositeSyncNeeded = forceOppositeSync; + } if (oppositeSyncNeeded) { FM.open(dir, FM['TAB_' + opposite_tab], callback); @@ -361,11 +347,16 @@ FM.updateTopLevelPathBar = function(box, tab, path) { path = path.replace(FM.ROOT_DIR, ''); formattedPath.push(''+FM.ROOT_DIR+''); + var fullDirPath = FM.ROOT_DIR; $.each(path.split('/'), function(i, part) { if (part.trim() == '') { return; } - formattedPath.push(''+part+''); + fullDirPath += '/' + part; + + fullDirPath = fullDirPath.replace(/\/\//g, '/'); + + formattedPath.push(''+part+''); }); $('.pwd-tab-' + tab).html(formattedPath.join(' / ')); @@ -379,6 +370,11 @@ FM.isItemDir = function(item) { return item.type == 'd'; } +FM.isItemLink = function(item) { + return item.type == 'l'; +} + + FM.getFileType = function(name) { var filetype = name.split('.').pop().toLowerCase(); return filetype.length > 6 || name.indexOf('.') <= 0 ? '' : filetype; @@ -393,7 +389,8 @@ FM.sortItems = function(items, box) { $.each(items, function(i, o) { if (i > 0) { // i == 0 means first .. element in list - if (FM.isItemFile(o)) { + if (FM.isItemFile(o) || FM.isItemLink(o)) { + o.filetype = FM.getFileType(o.name); files.push(o); } else { @@ -402,7 +399,6 @@ FM.sortItems = function(items, box) { } }); - // var sort_type = $(box).parents('.window').find('.menu').find('.sort-by-v').val(); var sort_type = FM.ORDER_TAB_A; if($(box).closest('.window').find('.menu').hasClass('menu-right')){ sort_type = FM.ORDER_TAB_B; @@ -411,7 +407,7 @@ FM.sortItems = function(items, box) { switch (sort_type) { case 'type_asc': files.sort(function (a, b) { - return a.name.localeCompare( b.name ); + return a.filetype.localeCompare( b.filetype ); }); dirs.sort(function (a, b) { return a.name.localeCompare( b.name ); @@ -420,7 +416,7 @@ FM.sortItems = function(items, box) { break; case 'type_desc': files.sort(function (a, b) { - return a.name.localeCompare( b.name ); + return b.filetype.localeCompare( a.filetype ); }); dirs.sort(function (a, b) { return a.name.localeCompare( b.name ); @@ -546,8 +542,6 @@ FM.downloadFileFromSubcontext = function(elm) { FM.openFile = function(dir, box, elm) { var tab = FM.getTabLetter(box); - //FM['TAB_'+tab+'_CURRENT_PATH'] = dir; - var elm = $(elm).hasClass('dir') ? $(elm) : $(elm).closest('.dir'); var src = $.parseJSON($(elm).find('.source').val()); @@ -595,7 +589,7 @@ FM.toggleSubContextMenu = function(ref) { FM.generate_listing = function(reply, box) { var tab = FM.getTabLetter(box); FM.IMAGES[tab] = []; - + var acc = []; if (reply.length == 0) { reply = [{ @@ -608,7 +602,7 @@ FM.generate_listing = function(reply, box) { date: '' }]; } - + var path_arr = FM['TAB_'+tab+'_CURRENT_PATH'].split('/'); path_arr = path_arr.filter(function(v){return v!==''}); path_arr.pop(); @@ -616,7 +610,7 @@ FM.generate_listing = function(reply, box) { if (back_path == FM.ROOT_DIR || path_arr.length < FM.ROOT_DIR.split('/').length) { back_path = '';//FM.ROOT_DIR; } - + reply = FM.sortItems(reply, box); $(reply).each(function(i, o) { @@ -624,7 +618,7 @@ FM.generate_listing = function(reply, box) { var cl_act = o.type == 'd' ? 'onClick="FM.open(\'' + path + '\', \'' + box + '\')"' : 'onClick="FM.openFile(\''+path+'\', \'' + box + '\', this)"'; //var cl_act = o.type == 'd' ? 'onDblClick="FM.open(\'' + path + '\', \'' + box + '\')"' : 'onDblClick="FM.openFile(\''+path+'\', \'' + box + '\', this)"'; //var cl_act = ''; - + if (o.name == '') { path = FM.formatPath(back_path); cl_act = o.type == 'd' ? 'onClick="FM.open(\'' + path + '\', \'' + box + '\')"' : 'onClick="FM.openFile(\''+path+'\', \'' + box + '\', this)"'; @@ -641,14 +635,19 @@ FM.generate_listing = function(reply, box) { var time = o.time.split('.'); time = time[0]; - + var psDate = new Date(o.date); o.full_path = path; o.filetype = FM.getFileType(o.name); if(FM.IMG_FILETYPES.indexOf(o.filetype) >= 0 && o.filetype.length > 0) { - FM.IMAGES[tab][FM.IMAGES[tab].length] = {'img': "/view/file/?path=/home/admin/"+o.name+"&raw=true", 'thumb': "/view/file/?path=/home/admin/"+o.name+"&raw=true", 'id': 'img-'+i}; + FM.IMAGES[tab][FM.IMAGES[tab].length++] = + { + 'img': "/view/file/?path="+o.full_path+"&raw=true", + 'thumb': "/view/file/?path="+o.full_path+"&raw=true", + 'id': 'img-'+i + }; cl_act = 'onClick="FM.fotoramaOpen(\'' + tab + '\', \'img-' + i +'\')"'; } @@ -678,6 +677,9 @@ FM.generate_listing = function(reply, box) { if (FM.isItemDir(o)) { tpl.set(':ITEM_TYPE', 'filetype-dir'); } + else if (FM.isItemLink(o)) { + tpl.set(':ITEM_TYPE', 'filetype-link'); + } else { tpl.set(':ITEM_TYPE', 'filetype-' + o.filetype); } @@ -717,7 +719,7 @@ FM.fotoramaOpen = function(tab, img_index) { }); $('.fotorama').on('fotorama:fullscreenexit', function (e, fotorama) { - $('.fotorama').data('fotorama').destroy(); + $('.fotorama').data('fotorama').destroy(); }); $('.fotorama').fotorama().data('fotorama').requestFullScreen(); @@ -737,7 +739,7 @@ FM.bulkOperation = function(ref) { } FM.checkBulkStatus = function(bulkStatuses, acc) { - var status = false; + var status = true; var msg = ''; if (bulkStatuses.length == acc.length) { $.each(bulkStatuses, function(i, o) { @@ -746,19 +748,22 @@ FM.checkBulkStatus = function(bulkStatuses, acc) { } }); - if (msg == '') { - status = true; + if (msg != '') { + status = false; } } if (status == true) { - $('#popup .results').html(App.Constants.FM_DONE); - $('.controls').html('

'+App.Constants.FM_DONE+'

'); + FM.popupClose(); } else { - $('#popup .results').html(msg); - $('.controls').html('

'+App.Constants.FM_DONE+'

'); + $('#popup .results').show().html(msg); + $('#popup .ok').hide(); } + + var box = FM['TAB_' + tab]; + var tab = FM.getTabLetter(FM.CURRENT_TAB); + FM.openAndSync(FM['TAB_' + tab + '_CURRENT_PATH'], box, function(){}, true); } FM.bulkPopupClose = function() { @@ -878,7 +883,7 @@ FM.bulkCopy = function() { var src = $(ref).find('.source').val(); src = $.parseJSON(src); - if (!FM.isItemPseudo(o)) { + if (!FM.isItemPseudo(src)) { cfr_html += '
'+src.name+'
'; numberOfItems++; } @@ -979,7 +984,7 @@ FM.bulkRemove = function() { var src = $(ref).find('.source').val(); src = $.parseJSON(src); - if (!FM.isItemPseudo(o)) { + if (!FM.isItemPseudo(src)) { cfr_html += '
'+src.name+'
'; numberOfItems++; } @@ -1236,7 +1241,7 @@ FM.unpackItem = function() { var tpl = Tpl.get('popup_unpack', 'FM'); tpl.set(':FILENAME', src.name); - tpl.set(':DST_DIRNAME', (dst + '/' + src.name).replace('//', '/')); + tpl.set(':DST_DIRNAME', (dst).replace('//', '/')); FM.popupOpen(tpl.finalize()); } @@ -1332,7 +1337,7 @@ FM.setTabActive = function(box, action) { FM.confirmRename = function() { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; - var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); + var selected = $(FM['TAB_' + tab] ).find('.dir.active'); if (!selected) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED @@ -1508,7 +1513,7 @@ FM.confirmUnpackItem = function () { FM.confirmPackItem = function () { var tab = FM.getTabLetter(FM.CURRENT_TAB); var box = FM['TAB_' + tab]; - var selected = $(FM['TAB_' + tab] ).find('.dir.selected'); + var selected = $(FM['TAB_' + tab] ).find('.dir.active'); if (selected.length == 0) { return FM.displayError( App.Constants.FM_NO_FILE_OR_DIRECTORY_SELECTED diff --git a/web/js/pages/add.web.js b/web/js/pages/add.web.js index 2762ba140..7a01f7460 100644 --- a/web/js/pages/add.web.js +++ b/web/js/pages/add.web.js @@ -3,11 +3,11 @@ App.Actions.WEB.update_ftp_username_hint = function(elm, hint) { $(elm).parent().find('.hint').html(''); } - //hint = hint.replace(/[^\w\d]/gi, ''); - if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) { hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length); } + hint = hint.replace(/[^\w\d]/gi, ''); + $(elm).parent().find('.v-ftp-user').val(hint); $(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint); } diff --git a/web/js/pages/edit.web.js b/web/js/pages/edit.web.js index ef20c831a..1406d9d09 100644 --- a/web/js/pages/edit.web.js +++ b/web/js/pages/edit.web.js @@ -3,11 +3,11 @@ App.Actions.WEB.update_ftp_username_hint = function(elm, hint) { $(elm).parent().find('.hint').html(''); } - //hint = hint.replace(/[^\w\d]/gi, ''); - if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) { hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length); } + hint = hint.replace(/[^\w\d]/gi, ''); + $(elm).parent().find('.v-ftp-user').val(hint); $(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint); } diff --git a/web/js/templates.js b/web/js/templates.js index b7b3d7aca..d600ddc6d 100644 --- a/web/js/templates.js +++ b/web/js/templates.js @@ -4,7 +4,14 @@ */ App.Templates.html = { WEB: { - hint: [''] + hint: [''], + notification: [ + '
  •  \ +  ~!:TOPIC~!\ + ~!:NOTICE~!\ +
  • ' + ] + }, // file manager // @@ -39,6 +46,7 @@ App.Templates.html = { '], popup_bulk_remove: ['
    + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    diff --git a/web/templates/admin/list_backup_exclusions.html b/web/templates/admin/list_backup_exclusions.html index 1c4f599cf..eea811ba7 100644 --- a/web/templates/admin/list_backup_exclusions.html +++ b/web/templates/admin/list_backup_exclusions.html @@ -11,7 +11,7 @@
    - + @@ -49,12 +49,12 @@
    - - +
    -
    +
    diff --git a/web/templates/admin/list_dns_rec.html b/web/templates/admin/list_dns_rec.html index e04033ea2..f025fdad3 100644 --- a/web/templates/admin/list_dns_rec.html +++ b/web/templates/admin/list_dns_rec.html @@ -17,9 +17,10 @@
    +
    - @@ -71,8 +72,8 @@ v_unit_id="" v_section="dns_rec">
    - - + +
    diff --git a/web/templates/admin/list_services.html b/web/templates/admin/list_services.html index 2a36447b9..fe671de68 100644 --- a/web/templates/admin/list_services.html +++ b/web/templates/admin/list_services.html @@ -133,7 +133,7 @@
    - +
    diff --git a/web/templates/admin/panel.html b/web/templates/admin/panel.html index ed55ed263..c26e050c3 100644 --- a/web/templates/admin/panel.html +++ b/web/templates/admin/panel.html @@ -1,3 +1,4 @@ + @@ -21,14 +22,16 @@
    -
    + + diff --git a/web/templates/file_manager/main.php b/web/templates/file_manager/main.php index 7fed618e5..c41355e9e 100644 --- a/web/templates/file_manager/main.php +++ b/web/templates/file_manager/main.php @@ -25,7 +25,7 @@ -
      +
        @@ -33,7 +33,7 @@ -
          +
            @@ -267,10 +267,13 @@ var src = $(item).find('.source').val(); src = $.parseJSON(src); var tab = FM.getTabLetter(FM.CURRENT_TAB); + if (FM.itemIsArchieve(src)) { - $('.menu-'+tab+' .extract-btn').show(); - } - else { + if($('.menu-'+tab+' .archive.button').first().is(':visible')) + $('.menu-'+tab+' .extract-btn').first().show(); + else + $('.menu-'+tab+' .extract-btn.small').show(); + } else { $('.menu-'+tab+' .extract-btn').hide(); } } @@ -417,4 +420,4 @@ }); - \ No newline at end of file + diff --git a/web/templates/footer.html b/web/templates/footer.html index 361b516da..f10ca8fe6 100644 --- a/web/templates/footer.html +++ b/web/templates/footer.html @@ -178,7 +178,8 @@ ); $(window).bind('keypress', function(evt) { - if (evt.charCode == 97) { + var tag = evt.target.tagName.toLowerCase(); + if (evt.charCode == 97 && tag != 'input' && tag != 'textarea' && tag != 'selectbox') { evt.preventDefault(); if (!evt.ctrlKey && !evt.shiftKey) { if ($('.l-sort__create-btn')[0]) { @@ -382,14 +383,33 @@ $('.shortcuts').toggle(); }); - $('.l-profile__notifications').click(function(){ - $('.notification-container').toggle(); - $('.l-profile__notifications').toggleClass('active'); - - left = $('.l-profile__notifications').offset().left - $('.notification-container').outerWidth() + 28; - $('.notification-container').css({left: left+'px'}); + $(document).click(function(evt){ + //close notification popup + if(!$(evt.target).hasClass('l-profile__notifications') && $(evt.target).parents('ul.notification-container').length == 0){ + $('.notification-container').hide(); + $('.l-profile__notifications').removeClass('active'); + } + }); + + + // focusing on the first input at form + if(location.href.indexOf('lead=') == -1){ + $('#vstobjects .vst-input:not([disabled]), #vstobjects .vst-list:not([disabled])').first().focus(); + } + + + $('.l-profile__notifications').click(function(){ + if(!$('.l-profile__notifications').hasClass('active')){ + VE.notifications.get_list(); + $('.l-profile__notifications').addClass('active'); + left = $('.l-profile__notifications').offset().left - $('.notification-container').outerWidth() + 28; + $('.notification-container').css({left: left+'px'}); + + } else { + $('.notification-container').hide(); + $('.l-profile__notifications').removeClass('active'); + } }); - VE.navigation.init(); @@ -420,12 +440,20 @@ } } }); + $('table').on('mousedown', 'td', function(e) { if (e.ctrlKey) { e.preventDefault(); } }); } + + // + $('form#objects').bind('submit', function(evt) { + $('.l-unit.selected').find('.ch-toggle').attr('checked', true); + }); + + }); diff --git a/web/templates/header.html b/web/templates/header.html index 83696d9c4..67de30c49 100644 --- a/web/templates/header.html +++ b/web/templates/header.html @@ -4,14 +4,14 @@ Vesta - <?="$TAB"?> - + - - - - - - + + + + + + - - + + diff --git a/web/templates/user/list_cron.html b/web/templates/user/list_cron.html index a91caafc2..d6493d3ed 100644 --- a/web/templates/user/list_cron.html +++ b/web/templates/user/list_cron.html @@ -41,8 +41,6 @@ '.__('turn off notifications').''; ?> '.__('turn on notifications').''; ?> - -
            @@ -91,15 +89,6 @@ sort-date="" sort-nam
            -
            diff --git a/web/templates/user/list_db.html b/web/templates/user/list_db.html index dff13d0dd..4c3d4ec9f 100644 --- a/web/templates/user/list_db.html +++ b/web/templates/user/list_db.html @@ -23,13 +23,13 @@ if ($data[$key]['TYPE'] == 'mysql'){ $mysql = 1; - $db_admin_link = "http://".$http_host."/phpmyadmin/"; + $db_myadmin_link = "http://".$http_host."/phpmyadmin/"; if (!empty($_SESSION['DB_PMA_URL'])) $db_myadmin_link = $_SESSION['DB_PMA_URL']; } if ($data[$key]['TYPE'] == 'pgsql'){ $pgsql = 1; - $db_admin_link = "http://".$http_host."/phppgadmin/"; + $db_pgadmin_link = "http://".$http_host."/phppgadmin/"; if (!empty($_SESSION['DB_PGA_URL'])) $db_pgadmin_link = $_SESSION['DB_PGA_URL']; } @@ -41,6 +41,7 @@ echo 'phpPgAdmin'; } ?> + @@ -61,8 +62,6 @@
            @@ -121,15 +120,6 @@ sort-user="" sort-server="" so
            - -
            diff --git a/web/templates/user/list_dns_rec.html b/web/templates/user/list_dns_rec.html index ecb6f8027..754acb8d4 100644 --- a/web/templates/user/list_dns_rec.html +++ b/web/templates/user/list_dns_rec.html @@ -17,12 +17,11 @@ +
            - - -
            @@ -71,8 +70,8 @@ v_unit_id="" v_section="dns_rec">
            - - + +
            -
            diff --git a/web/templates/user/list_mail_acc.html b/web/templates/user/list_mail_acc.html index 3840b7ad4..ed563f628 100644 --- a/web/templates/user/list_mail_acc.html +++ b/web/templates/user/list_mail_acc.html @@ -38,8 +38,6 @@
            @@ -95,15 +93,6 @@ sort-star="
            -
            diff --git a/web/templates/user/list_web.html b/web/templates/user/list_web.html index 9a5602d30..226f8aecf 100644 --- a/web/templates/user/list_web.html +++ b/web/templates/user/list_web.html @@ -32,8 +32,6 @@
            @@ -140,15 +138,6 @@ sort-bandwidth="" sort-disk="
            -
            diff --git a/web/templates/user/panel.html b/web/templates/user/panel.html index c39c3143c..2d3afc45b 100644 --- a/web/templates/user/panel.html +++ b/web/templates/user/panel.html @@ -1,3 +1,4 @@ + diff --git a/web/upload/UploadHandler.php b/web/upload/UploadHandler.php index f26387eab..7db8bc414 100755 --- a/web/upload/UploadHandler.php +++ b/web/upload/UploadHandler.php @@ -4,19 +4,12 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); -//$user = $_SESSION['user']; - -if (empty($panel)) { - $command = VESTA_CMD."v-list-user '".$user."' 'json'"; - exec ($command, $output, $return_var); - if ( $return_var > 0 ) { - header("Location: /error/"); - exit; - } - $panel = json_decode(implode('', $output), true); +// Check login_as feature +$user = $_SESSION['user']; +if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { + $user=$_SESSION['look']; } -$user = array_keys($panel); -$user = $user[0]; + define('USERNAME', $user); @@ -478,7 +471,9 @@ class UploadHandler } protected function sanitizeFileName($file) { - $file = preg_replace("/[^a-z0-9\._-]+/", '', $file); + // (|\\?*<\":>+[]/') + // \|\\\?\*\<\"\'\:\>\+\[\] + $file = preg_replace("/'/", '', $file); return $file; } @@ -1140,11 +1135,11 @@ class UploadHandler // $this->handle_image_file($file_path, $file); //} } else { - $file->size = $file_size; - if (!$content_range && $this->options['discard_aborted_uploads']) { - unlink($file_path); - $file->error = $this->get_error_message('abort'); - } + //$file->size = $file_size; + //if (!$content_range && $this->options['discard_aborted_uploads']) { + // unlink($file_path); + // $file->error = $this->get_error_message('abort'); + //} } $this->set_additional_file_properties($file); } diff --git a/web/view/file/index.php b/web/view/file/index.php index 2e8fd58f7..6605607c6 100644 --- a/web/view/file/index.php +++ b/web/view/file/index.php @@ -2,18 +2,21 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); +if ((!isset($_SESSION['FILEMANAGER_KEY'])) || (empty($_SESSION['FILEMANAGER_KEY']))) { + header("Location: /login/"); + exit; +} + +$user = $_SESSION['user']; +if (($_SESSION['user'] == 'admin') && (!empty($_SESSION['look']))) { + $user=$_SESSION['look']; +} + if (!empty($_REQUEST['path'])) { $path = $_REQUEST['path']; - if (is_readable($path) && !empty($_REQUEST['raw'])) { - //print file_get_contents($path); - exec (VESTA_CMD . "v-check-fs-permission {$user} {$path}", $content, $return_var); - - if ($return_var != 0) { - print 'Error while opening file'; // todo: handle this more styled - exit; - } - header('content-type: image/jpeg'); - print file_get_contents($path); + if (!empty($_REQUEST['raw'])) { + header('content-type: image/jpeg'); + passthru (VESTA_CMD . "v-open-fs-file " . $user . " " . escapeshellarg($_REQUEST['path'])); exit; } } diff --git a/web/view/file/index_new.php b/web/view/file/index_new.php deleted file mode 100644 index ee2349cf6..000000000 --- a/web/view/file/index_new.php +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - fotorama - - - - - -
            - -
            - - diff --git a/web/view/file/index_old.php b/web/view/file/index_old.php deleted file mode 100644 index 6fa369710..000000000 --- a/web/view/file/index_old.php +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - iviewer - - - - - - - - - -

            iviewer

            - -
            - - + - - - fit - orig - update - -
            -
            - -