a07f847b by Nitesh

For gitignore file

1 parent 9103ffcc
Showing 104 changed files with 825 additions and 10829 deletions
APP_ENV=local
APP_DEBUG=true
APP_ADMIN_DEBUG=true
APP_LOG_LEVEL=error
APP_KEY=LEynnBaQoqsLncOWZwgdtfxxWU2hEyfp
APP_PROTOCOL=http://
APP_KEY=base64:FzLEKoceiXE5/bBtPxlLyFOk4qtK3hmSyh+AZ1y2+LE=
APP_PROTOCOL=https://
app_name=Flexydial
app_title=Flexydial
app_domain=localhost:8000
web_domain=localhost:8000
app_ip=localhost
app_domain=fullerton.flexydial
web_domain=fullerton.flexydial
app_ip=192.168.3.242
central_ip=192.168.3.242
didnumber=-8
asterisk_slaves=192.168.3.242:1001:2000:1:240
asterisk_manager=192.168.3.242
asterisk_extensions=31330,_X!
sip_dialstr=SIP/GATEWAY/
APP_Multiple_Logins=yes
kDialer_keeplocalconf=1
kstych_viewportMeta=responsive:1:1
DB_HOST=192.168.3.234
DB_HOST=localhost
DB_DATABASE=fullerton
DB_USERNAME=root
DB_PASSWORD=yb9738z
CACHE_DRIVER=database
CACHE_DRIVER=file
SESSION_DRIVER=database
SESSION_LIFEMin=43200
QUEUE_DRIVER=sync
#MAIL_DRIVER=smtp
#MAIL_HOST=localhost
#MAIL_PORT=587
#MAIL_USERNAME=mail
#MAIL_PASSWORD=mail
#[email protected]
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_USERNAME=mail
MAIL_PASSWORD=mail
[email protected]
AWS_KEY=
AWS_Secret=
......@@ -56,4 +57,3 @@ xssGlobal=tag,hent
xssGlobalIgnoreKeys=content,pdata,courseintroductiondiv,coursecoverphoto,data,rlog,rstring
MobileTitle=Flexydial
......
......@@ -1333,7 +1333,7 @@ class DialerController extends Controller
{
$wakka = new KHRMSLib();
$client = Input::get("client", "");
Log::info("APP_Test:" + env('app_ip'));
// Log::info("APP_Test:" + env('app_ip'));
$roclientstr = array();
$didlinesstr = array();
if (Auth::user()->exten != "") $didlinesstr[] = Auth::user()->exten;
......@@ -1360,7 +1360,7 @@ class DialerController extends Controller
if ($limit > 0) {
$tusers = $wakka->getPersons("status='New' and mobile!='' and $roclientstr order by dialer_lastcall asc limit $limit");
$tusers = $wakka->getPersons("status IN ('Called','Incall') and mobile!='' and $roclientstr order by dialer_lastcall asc limit $limit");
foreach ($tusers as $tuser) if (!isset($users[$tuser['id']])) $users[$tuser['id']] = $tuser;
$limit = $limit - sizeof($tusers);
}
......
<?php
namespace App\Http\Controllers;
use Auth;
use DB;
use Input;
use Log;
use Response;
class PromiseClass {
private $callbacks = array();
private $last_return;
function promise($users = null,$crmcall = null,$promise) {
if (get_class($promise) == 'Promise') {
return $promise;
} else if (is_callable($promise)) {
$this->then($promise);
return $this;
}
}
public function then (callable $callback) {
$this->callbacks[] = $callback;
return $this;
}
public function resolve () {
$callback = array_shift($this->callbacks);
if (is_callable($callback)) {
$this->last_return = $callback($this->last_return);
}
if (count($this->callbacks) > 0) {
$this->resolve();
}
}
}
?>
\ No newline at end of file
php artisan config:cache
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan optimize
composer dump-autoload
#!/bin/bash
####################################################################################
##### (c) Siddharth Upmanyu #############################################
##### (c) Flexydial #############################################
##### Install Instructions #############################################
##### Fedora 23/24 (64 bit) #############################################
##### Copy Code to /home and configure details in custom/.env ############
......@@ -189,7 +189,7 @@ function astFilesSetup
sed -i "s/REPLACEMANAGER/$asterisk_manager/g" /etc/asterisk/manager.conf
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/asterisk/rtp.conf
cp -f $app_path/application/public/assets/extras/data/asterisk/asterisk.service /etc/systemd/system/
# cp -f $app_path/application/public/assets/extras/data/asterisk/asterisk.service /etc/systemd/system/
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
......@@ -280,14 +280,14 @@ function restartServices
}
function generalSetup
{
#hostname localhost
hostname localhost
ulimit -n 65000
swapoff -a
timedatectl set-timezone UTC
timedatectl set-ntp yes
grep -q -F 'Storage=none' /etc/systemd/journald.conf || echo 'Storage=none' >> /etc/systemd/journald.conf
#chmod -R 777 $app_path/application/storage
chmod -R 777 $app_path/application/storage
chmod -R 777 $app_path/custom/app
}
function mysqlSetup
......@@ -323,24 +323,20 @@ function dailyTasks
if [ $nowtime -eq "000" ]
then
##rm -f $app_path/application/storage/logs/laravel-*.log
rm -f $app_path/application/storage/logs/laravel-*.log
touch $app_path/application/storage/logs/laravel-$(date +%Y-%m-%d).log
chmod -R 777 $app_path/application/storage
chmod -R 777 $app_path/custom/app
#### Asterisk Date-wise Call Recording Folder creation START ######
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/inb
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/out
chown asterisk.asterisk -R /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/inb
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/out
chown asterisk.asterisk -R /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)
#### Asterisk Date-wise Call Recording Folder creation END ######
mkdir -p $app_path/custom/db
chmod -R 777 $app_path/custom/db
##### SIPxml Event log folder creation START ###############################
mkdir -p $app_path/application/storage/logs/sipmlevents/$(date +%Y-%m-%d)/
chmod -R 777 $app_path/application/storage/logs/sipmlevents/$(date +%Y-%m-%d)/
############################################################################
mkdir -p $app_path/custom/db
chmod -R 777 $app_path/custom/db
mysqldump -u$DB_USERNAME -p$DB_PASSWORD --single-transaction $DB_DATABASE | gzip > $app_path/custom/db/$DB_DATABASE.sql.gz
fi
}
......@@ -352,7 +348,7 @@ function astPAMICheck
IFS=':' read -r -a ServerArr <<< "$server"
if ! screen -list | grep -q "AMI_$app_domain${ServerArr[0]}"; then
/usr/bin/screen -d -L -m -S AMI_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan KstychPAMI ${ServerArr[0]}"
/usr/bin/screen -d -m -S AMI_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan KstychPAMI ${ServerArr[0]}"
fi
done
}
......@@ -365,7 +361,7 @@ function createCall
IFS=':' read -r -a ServerArr <<< "$server"
if ! screen -list | grep -q "CreateCall_$app_domain${ServerArr[0]}"; then
/usr/bin/screen -d -L -m -S CreateCall_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan CreateCall"
/usr/bin/screen -d -m -S CreateCall_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan CreateCall"
fi
done
}
......@@ -420,8 +416,8 @@ fi
########################################################################
######################################################################## Main Script
waitForLock
if [ "$OSNAME" == "Fedora" ] && [ $OSVER -gt 21 ] ; then
#waitForLock
#if [ "$OSNAME" == "Fedora" ] && [ $OSVER -gt 21 ] ; then
pgrep httpd
if [ $? -ne 0 ] || [ "$1" == "server" ] ; then
......@@ -436,7 +432,7 @@ if [ "$OSNAME" == "Fedora" ] && [ $OSVER -gt 21 ] ; then
mysqlSetup
restartServices
# schemaSetup
#schemaSetup
fi
sshdCheck
......@@ -444,7 +440,7 @@ if [ "$OSNAME" == "Fedora" ] && [ $OSVER -gt 21 ] ; then
astPAMICheck
createCall
hangUpCall
fi
clearLock
#fi
#clearLock
cd $app_path/application;php artisan schedule:run
########################################################################
......
#!/bin/bash
####################################################################################
##### (c) Siddharth Upmanyu #############################################
##### Install Instructions #############################################
##### Fedora 23/24 (64 bit) #############################################
##### Copy Code to /home and configure details in custom/.env ############
# >_ dnf -y update ; reboot ############
# >_ ./cron.sh server ############
####################################################################################
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
cwd=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd $cwd ; cd ..
app_path=`pwd`
if [ ! -f custom/.env ]; then
echo "ERROR : .env file not found"
exit
fi
source custom/.env
#Defs
if [ -z "$asterisk_extensions" ]; then asterisk_extensions="31331,_X!"; fi
if [ -z "$asterisk_manager" ]; then asterisk_manager="$app_ip"; fi
if [ -z "$asterisk_slaves" ]; then asterisk_slaves="$app_ip:1001:2000:1:30"; fi
if [ -z "$app_sslcertfile" ]; then app_sslcertfile="SSLCertificateFile /etc/pki/tls/certs/localhost.crt"; fi
if [ -z "$app_sslcertkeyfile" ]; then app_sslcertkeyfile="SSLCertificateKeyFile /etc/pki/tls/private/localhost.key"; fi
if [ -z "$app_sslcertchainfile" ]; then app_sslcertchainfile=""; fi
#####
for file in /etc/*-release; do
while IFS="=" read -r key value; do
case "$key" in
"NAME") OSNAME="$value" ;;
"VERSION_ID") OSVER="$value" ;;
esac
done < "$file"
done
OSARCH=$(uname -m | sed 's/x86_//;s/i[3-6]86/32/')
echo "Running from : $app_path"
echo "$OSNAME $OSARCH $OSVER"
######################################################################## Functions
function checkInstallDeps
{
rpm -qa | grep -qw rpmfusion-nonfree-release || dnf install --nogpgcheck -y http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
checkErrorExit
rpm -qa | grep -qw rpmfusion-free-release || dnf install --nogpgcheck -y http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
checkErrorExit
array=( php-xml ImageMagick php php-gd php-mbstring php-mcrypt php-imap php-mysql php-pear php-xml php-xmlrpc php-process curl perl-libwww-perl libxml2 ncurses screen sox mariadb mariadb-server ntp php-pecl-memcache httpd mod_ssl mod_perl tar perl wget python-boto python-pip cockpit iptables-services libreoffice libreoffice-headless git ffmpeg swftools libmad libid3tag id3v2 libquicktime system-config-network resiprocate-turn-server asterisk asterisk-sip dahdi-tools asterisk-dahdi libpri make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel certbot php-opcache nload iftop redhat-lsb-core zip )
for i in "${array[@]}"
do
if ! rpm -qa | grep -qw $i ; then
echo "Installing : $i"
echo ""
dnf install --nogpgcheck -y $i
checkErrorExit
fi
done
}
function installDahdi
{
if [-d cd $app_path/custom/extras/dahdi-linux-complete ]; then
cd $app_path/custom/extras/dahdi-linux-complete
echo "Making Dahdi.."
make
checkErrorExit
echo ""
echo "Installing Dahdi.."
make install
checkErrorExit
make config
checkErrorExit
## /etc/modprobe.d/dahdi.conf << options wcte13xp default_linemode=e1
## modprobe wcte13xp default_linemode=e1
service dahdi restart
checkErrorExit
dahdi_genconf -v
dahdi_cfg -v
fi
}
function checkErrorExit
{
if [ $? -ne 0 ]; then
echo "============== ERROR ================"
exit
fi
}
function schemaSetup
{
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*8849732369915B4FCF3EF1C8BC04CEB9A23C8D88' WITH GRANT OPTION;";
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "CREATE DATABASE IF NOT EXISTS $DB_DATABASE;";
cd $app_path/application/;php $app_path/application/artisan migrate
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "update diallines set status='Free',conf='',channel='',server='';" $DB_DATABASE
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "update sipids set status=0,user=0,ready=0,confup=0,clients='',server='';" $DB_DATABASE
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "update users set presence=0;" $DB_DATABASE
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
do
IFS=':' read -r -a ServerArr <<< "$server"
if [ "${ServerArr[0]}" != "" ] ; then
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "update diallines set status='Free',conf='',channel='',server='${ServerArr[0]}' where id>=${ServerArr[3]} and id<=${ServerArr[4]};" $DB_DATABASE
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "update sipids set status=0,user=0,ready=0,confup=0,server='${ServerArr[0]}' where id>=${ServerArr[1]} and id<=${ServerArr[2]};" $DB_DATABASE
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "delete from kqueues where status='New' and type='SIP_${ServerArr[0]}';" $DB_DATABASE
fi
done
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "SET GLOBAL max_allowed_packet = 524288000;";
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "SET GLOBAL query_cache_size = 524288000;";
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "SET GLOBAL query_cache_limit = 10485760;";
mysql -u$DB_USERNAME -p$DB_PASSWORD -e "SET GLOBAL query_cache_type = 1;";
}
function vhostSetup
{
# Setup updates pre-startup
echo "<Directory $app_path>" > /etc/httpd/conf.d/$app_domain.conf
echo "Order allow,deny" >> /etc/httpd/conf.d/$app_domain.conf
echo "Allow from all" >> /etc/httpd/conf.d/$app_domain.conf
echo "AllowOverride all" >> /etc/httpd/conf.d/$app_domain.conf
echo "Require all granted" >> /etc/httpd/conf.d/$app_domain.conf
echo "</Directory>" >> /etc/httpd/conf.d/$app_domain.conf
echo "ServerAdmin contact@$app_domain" >> /etc/httpd/conf.d/$app_domain.conf
echo "<VirtualHost *:80>" >> /etc/httpd/conf.d/$app_domain.conf
echo "ServerName $app_domain" >> /etc/httpd/conf.d/$app_domain.conf
echo "DocumentRoot $app_path/application/public" >> /etc/httpd/conf.d/$app_domain.conf
echo "CustomLog /var/log/httpd/$app_domain.log combined" >> /etc/httpd/conf.d/$app_domain.conf
echo "ErrorLog /var/log/httpd/$app_domain-error.log" >> /etc/httpd/conf.d/$app_domain.conf
echo "LogLevel emerg" >> /etc/httpd/conf.d/$app_domain.conf
echo "</VirtualHost>" >> /etc/httpd/conf.d/$app_domain.conf
echo "<VirtualHost *:443>" >> /etc/httpd/conf.d/$app_domain.conf
echo "ServerName $app_domain" >> /etc/httpd/conf.d/$app_domain.conf
echo "DocumentRoot $app_path/application/public" >> /etc/httpd/conf.d/$app_domain.conf
echo "CustomLog /var/log/httpd/ssl-$app_domain.log combined" >> /etc/httpd/conf.d/$app_domain.conf
echo "ErrorLog /var/log/httpd/ssl-$app_domain-error.log" >> /etc/httpd/conf.d/$app_domain.conf
echo "LogLevel emerg" >> /etc/httpd/conf.d/$app_domain.conf
echo "SSLEngine on" >> /etc/httpd/conf.d/$app_domain.conf
echo $app_sslcertfile >> /etc/httpd/conf.d/$app_domain.conf
echo $app_sslcertkeyfile >> /etc/httpd/conf.d/$app_domain.conf
echo $app_sslcertchainfile >> /etc/httpd/conf.d/$app_domain.conf
echo "</VirtualHost>" >> /etc/httpd/conf.d/$app_domain.conf
}
function cronSetup
{
ccentry="* * * * * $app_path/application/cron.sh > /var/log/kcron_$app_domain.log 2>&1"
crontab -l > tcb.txt
grep -Fq "$ccentry" tcb.txt || echo "$ccentry" >> tcb.txt
crontab tcb.txt
rm -f tcb.txt
}
function astAGISetup
{
echo "#!/bin/bash" > /etc/asterisk/kstych-$app_domain.sh
echo "cd $app_path/application" >> /etc/asterisk/kstych-$app_domain.sh
echo "php artisan KstychPAGI" >> /etc/asterisk/kstych-$app_domain.sh
chmod +x /etc/asterisk/kstych-$app_domain.sh
echo "" > /etc/asterisk/kstych-$app_domain.conf
AstExts=$(echo $asterisk_extensions | tr "," "\n")
for exten in $AstExts
do
echo "exten => $exten,1,AGI(/etc/asterisk/kstych-$app_domain.sh)" >> /etc/asterisk/kstych-$app_domain.conf
echo "exten => $exten,2,Hangup" >> /etc/asterisk/kstych-$app_domain.conf
done
}
function astFilesSetup
{
mkdir -p -m 777 /etc/asterisk/keys
#dtlscert.sh -C asterisk.kstych.com -O "KstychPvtLtd" -d /etc/asterisk/keys
cp -f $app_path/application/public/assets/extras/data/asterisk/*.conf /etc/asterisk/
cp -f $app_path/application/public/assets/extras/data/asterisk/keys/* /etc/asterisk/keys/
cp -n $app_path/application/public/assets/extras/data/dahdi/chan_dahdi.conf /etc/asterisk/
cp -n $app_path/application/public/assets/extras/data/dahdi/dahdi-channels.conf /etc/asterisk/
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/asterisk/sip.conf
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/asterisk/manager.conf
sed -i "s/REPLACEMANAGER/$asterisk_manager/g" /etc/asterisk/manager.conf
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/asterisk/rtp.conf
cp -f $app_path/application/public/assets/extras/data/asterisk/asterisk.service /etc/systemd/system/
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
do
IFS=':' read -r -a ServerArr <<< "$server"
if [ "${ServerArr[0]}" == "$app_ip" ] ; then
echo "" > /etc/asterisk/users-$app_domain.conf
for (( c=${ServerArr[1]}; c<=${ServerArr[2]}; c++ ))
do
echo "[$c]" >> /etc/asterisk/users-$app_domain.conf
done
fi
done
chmod +r /etc/asterisk/keys/*
chown -R asterisk:asterisk /etc/asterisk
chmod +r /etc/pki/tls/certs/localhost.crt
chmod +r /etc/pki/tls/private/localhost.key
}
function phpiniSetup
{
sed -e '/^[^;]*max_execution_time/s/=.*$/= 3600/' -i /etc/php.ini
sed -e '/^[^;]*max_input_time/s/=.*$/= 3600/' -i /etc/php.ini
sed -e '/^[^;]*memory_limit/s/=.*$/= 4096M/' -i /etc/php.ini
sed -e '/^[^;]*post_max_size/s/=.*$/= 64M/' -i /etc/php.ini
sed -e '/^[^;]*upload_max_filesize/s/=.*$/= 1024M/' -i /etc/php.ini
}
function reTurnSetup
{
cp -f $app_path/application/public/assets/extras/data/reTurn/* /etc/reTurn/
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/reTurn/users.txt
sed -i "s/REPLACESERVERIP/$app_ip/g" /etc/reTurn/reTurnServer.config
}
function selinuxSetup
{
sed -e '/^[^#]*SELINUX/s/=.*$/=disabled/' -i /etc/selinux/config
sed -e '/^[^#]*SELINUX/s/=.*$/=disabled/' -i /etc/sysconfig/selinux
}
function restartServices
{
systemctl disable httpd.service
systemctl disable mariadb.service
systemctl disable ntpd.service
systemctl disable iptables.service
systemctl disable ip6tables.service
systemctl disable firewalld.service
systemctl disable cockpit.socket
systemctl disable asterisk.service
systemctl disable resiprocate-turn-server.service
systemctl stop httpd.service
systemctl stop mariadb.service
systemctl stop ntpd.service
systemctl stop iptables.service
systemctl stop ip6tables.service
systemctl stop firewalld.service
systemctl stop cockpit.socket
systemctl stop asterisk.service
systemctl stop resiprocate-turn-server.service
systemctl start httpd.service
systemctl start ntpd.service
systemctl start mariadb.service
systemctl start cockpit.socket
systemctl start resiprocate-turn-server.service
systemctl start asterisk.service
systemctl start iptables.service
systemctl start ip6tables.service
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 1935 -j ACCEPT
iptables -A INPUT -p tcp --dport 3478 -j ACCEPT
iptables -A INPUT -p tcp --dport 5038 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p tcp --dport 8089 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 10000:20000 -j ACCEPT
iptables -A INPUT -p udp --dport 3478 -j ACCEPT
iptables -A INPUT -p udp --match multiport --dports 10000:60000 -j ACCEPT
iptables -I OUTPUT -j ACCEPT
}
function generalSetup
{
#hostname localhost
ulimit -n 65000
swapoff -a
timedatectl set-timezone UTC
timedatectl set-ntp yes
grep -q -F 'Storage=none' /etc/systemd/journald.conf || echo 'Storage=none' >> /etc/systemd/journald.conf
#chmod -R 777 $app_path/application/storage
chmod -R 777 $app_path/custom/app
}
function mysqlSetup
{
systemctl start mariadb.service
if ! mysql -u$DB_USERNAME -p$DB_PASSWORD -e ";" ; then
systemctl stop mariadb.service
mysqld_safe --skip-grant-tables &
sleep 10
mysql -u root -e "update user set password=PASSWORD('$DB_PASSWORD') where User='$DB_USERNAME';flush privileges;" mysql
pkill mysqld_safe
pkill mysqld
systemctl restart mariadb.service
fi
}
function sshdCheck
{
pgrep sshd
if [ $? -ne 0 ] && [ "$runLevelVar" -ge 3 ] ; then
service sshd restart;
fi
}
function dailyTasks
{
####################################################################################
# Daily Script
####################################################################################
nowtime=$(date +%k%M)
if [ $nowtime -eq "000" ]
then
##rm -f $app_path/application/storage/logs/laravel-*.log
touch $app_path/application/storage/logs/laravel-$(date +%Y-%m-%d).log
chmod -R 777 $app_path/application/storage
chmod -R 777 $app_path/custom/app
#### Asterisk Date-wise Call Recording Folder creation START ######
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/inb
mkdir -p /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)/out
chown asterisk.asterisk -R /var/spool/asterisk/astrec/$(date +%Y)/$(date +%m)/$(date +%d)
#### Asterisk Date-wise Call Recording Folder creation END ######
mkdir -p $app_path/custom/db
chmod -R 777 $app_path/custom/db
##### SIPxml Event log folder creation START ###############################
mkdir -p $app_path/application/storage/logs/sipmlevents/$(date +%Y-%m-%d)/
chmod -R 777 $app_path/application/storage/logs/sipmlevents/$(date +%Y-%m-%d)/
############################################################################
mysqldump -u$DB_USERNAME -p$DB_PASSWORD --single-transaction $DB_DATABASE | gzip > $app_path/custom/db/$DB_DATABASE.sql.gz
fi
}
function astPAMICheck
{
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
do
IFS=':' read -r -a ServerArr <<< "$server"
if ! screen -list | grep -q "AMI_$app_domain${ServerArr[0]}"; then
/usr/bin/screen -d -L -m -S AMI_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan KstychPAMI ${ServerArr[0]}"
fi
done
}
function createCall
{
echo "create"
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
do
IFS=':' read -r -a ServerArr <<< "$server"
if ! screen -list | grep -q "CreateCall_$app_domain${ServerArr[0]}"; then
/usr/bin/screen -d -L -m -S CreateCall_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan CreateCall"
fi
done
}
function hangUpCall
{
echo "hang"
AsteriskServers=$(echo $asterisk_slaves | tr "," "\n")
for server in $AsteriskServers
do
IFS=':' read -r -a ServerArr <<< "$server"
if ! screen -list | grep -q "HangUpCall_$app_domain${ServerArr[0]}"; then
/usr/bin/screen -d -m -S HangUpCall_$app_domain${ServerArr[0]} bash -c "cd $app_path/application/;php $app_path/application/artisan PredictiveCallHangUp"
fi
done
}
function waitForLock
{
if [ ! -f /tmp/cronsh-$app_domain.lock ]; then
touch /tmp/cronsh-$app_domain.lock
else
exit
fi
while : ; do
if [ ! -f /tmp/cronsh.lock ]; then
touch /tmp/cronsh.lock
break
fi
sleep 1
done
}
function clearLock
{
rm -f /tmp/cronsh.lock
rm -f /tmp/cronsh-$app_domain.lock
}
########################################################################
######################################################################## Direct Commands
if [ "$1" == "packages" ] ; then
checkInstallDeps
exit
fi
if [ "$1" == "dahdi" ] ; then
installDahdi
exit
fi
if [ "$1" == "schema" ] ; then
schemaSetup
exit
fi
########################################################################
######################################################################## Main Script
waitForLock
if [ "$OSNAME" == "Fedora" ] && [ $OSVER -gt 21 ] ; then
pgrep httpd
if [ $? -ne 0 ] || [ "$1" == "server" ] ; then
generalSetup
vhostSetup
cronSetup
astAGISetup
astFilesSetup
reTurnSetup
phpiniSetup
selinuxSetup
mysqlSetup
restartServices
# schemaSetup
fi
sshdCheck
dailyTasks
astPAMICheck
createCall
hangUpCall
fi
clearLock
cd $app_path/application;php artisan schedule:run
########################################################################
1587367592s:26:"errorInternal Server Error";
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1587446284s:26:"errorInternal Server Error";
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
1587446252s:54141:"The stream or file "/home/fullerton/application/storage/logs/laravel-2020-04-20.log" could not be opened: failed to open stream: Permission denied[{"file":"\/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php","line":88,"function":"write","class":"Monolog\\Handler\\StreamHandler","type":"-\u003E","args":[{"message":"exception 'UnexpectedValueException' with message 'The stream or file \"\/home\/fullerton\/application\/storage\/logs\/laravel-2020-04-20.log\" could not be opened: failed to open stream: Permission denied' in \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/StreamHandler.php:97\nStack trace:\n#0 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php(88): Monolog\\Handler\\StreamHandler-\u003Ewrite(Array)\n#1 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler-\u003Ewrite(Array)\n#2 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(336): Monolog\\Handler\\AbstractProcessingHandler-\u003Ehandle(Array)\n#3 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(615): Monolog\\Logger-\u003EaddRecord(400, Object(UnexpectedValueException), Array)\n#4 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(202): Monolog\\Logger-\u003Eerror(Object(UnexpectedValueException), Array)\n#5 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(113): Illuminate\\Log\\Writer-\u003EwriteLog('error', Object(UnexpectedValueException), Array)\n#6 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php(57): Illuminate\\Log\\Writer-\u003Eerror(Object(UnexpectedValueException))\n#7 \/home\/fullerton\/application\/app\/Exceptions\/Handler.php(81): Illuminate\\Foundation\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#8 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(78): App\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#9 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(34): Illuminate\\Routing\\Pipeline-\u003EhandleException(Object(Illuminate\\Http\\Request), Object(UnexpectedValueException))\n#10 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/View\/Middleware\/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#11 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#12 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#13 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#14 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#15 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php(62): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#16 [internal function]: Illuminate\\Session\\Middleware\\StartSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#17 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#18 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#20 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#21 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#22 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#23 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#24 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#25 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#26 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#27 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#28 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#30 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#31 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#32 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(726): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#33 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(699): Illuminate\\Routing\\Router-\u003ErunRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#34 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(675): Illuminate\\Routing\\Router-\u003EdispatchToRoute(Object(Illuminate\\Http\\Request))\n#35 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(246): Illuminate\\Routing\\Router-\u003Edispatch(Object(Illuminate\\Http\\Request))\n#36 [internal function]: Illuminate\\Foundation\\Http\\Kernel-\u003EIlluminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#37 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#38 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(44): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#39 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#40 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#41 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#42 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#43 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#44 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#45 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(132): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#46 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel-\u003EsendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#47 \/home\/fullerton\/application\/public\/index.php(53): Illuminate\\Foundation\\Http\\Kernel-\u003Ehandle(Object(Illuminate\\Http\\Request))\n#48 {main}","context":[],"level":400,"level_name":"ERROR","channel":"local","datetime":{"date":"2020-04-20 05:17:32.094965","timezone_type":3,"timezone":"UTC"},"extra":[],"formatted":"[2020-04-20 05:17:32] local.ERROR: exception 'UnexpectedValueException' with message 'The stream or file \"\/home\/fullerton\/application\/storage\/logs\/laravel-2020-04-20.log\" could not be opened: failed to open stream: Permission denied' in \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/StreamHandler.php:97\nStack trace:\n#0 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php(88): Monolog\\Handler\\StreamHandler-\u003Ewrite(Array)\n#1 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler-\u003Ewrite(Array)\n#2 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(336): Monolog\\Handler\\AbstractProcessingHandler-\u003Ehandle(Array)\n#3 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(615): Monolog\\Logger-\u003EaddRecord(400, Object(UnexpectedValueException), Array)\n#4 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(202): Monolog\\Logger-\u003Eerror(Object(UnexpectedValueException), Array)\n#5 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(113): Illuminate\\Log\\Writer-\u003EwriteLog('error', Object(UnexpectedValueException), Array)\n#6 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php(57): Illuminate\\Log\\Writer-\u003Eerror(Object(UnexpectedValueException))\n#7 \/home\/fullerton\/application\/app\/Exceptions\/Handler.php(81): Illuminate\\Foundation\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#8 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(78): App\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#9 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(34): Illuminate\\Routing\\Pipeline-\u003EhandleException(Object(Illuminate\\Http\\Request), Object(UnexpectedValueException))\n#10 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/View\/Middleware\/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#11 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#12 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#13 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#14 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#15 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php(62): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#16 [internal function]: Illuminate\\Session\\Middleware\\StartSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#17 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#18 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#20 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#21 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#22 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#23 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#24 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#25 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#26 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#27 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#28 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#30 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#31 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#32 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(726): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#33 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(699): Illuminate\\Routing\\Router-\u003ErunRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#34 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(675): Illuminate\\Routing\\Router-\u003EdispatchToRoute(Object(Illuminate\\Http\\Request))\n#35 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(246): Illuminate\\Routing\\Router-\u003Edispatch(Object(Illuminate\\Http\\Request))\n#36 [internal function]: Illuminate\\Foundation\\Http\\Kernel-\u003EIlluminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#37 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#38 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(44): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#39 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#40 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#41 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#42 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#43 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#44 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#45 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(132): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#46 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel-\u003EsendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#47 \/home\/fullerton\/application\/public\/index.php(53): Illuminate\\Foundation\\Http\\Kernel-\u003Ehandle(Object(Illuminate\\Http\\Request))\n#48 {main} \n"}]},{"file":"\/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php","line":37,"function":"write","class":"Monolog\\Handler\\RotatingFileHandler","type":"-\u003E","args":[{"message":"exception 'UnexpectedValueException' with message 'The stream or file \"\/home\/fullerton\/application\/storage\/logs\/laravel-2020-04-20.log\" could not be opened: failed to open stream: Permission denied' in \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/StreamHandler.php:97\nStack trace:\n#0 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php(88): Monolog\\Handler\\StreamHandler-\u003Ewrite(Array)\n#1 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler-\u003Ewrite(Array)\n#2 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(336): Monolog\\Handler\\AbstractProcessingHandler-\u003Ehandle(Array)\n#3 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(615): Monolog\\Logger-\u003EaddRecord(400, Object(UnexpectedValueException), Array)\n#4 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(202): Monolog\\Logger-\u003Eerror(Object(UnexpectedValueException), Array)\n#5 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(113): Illuminate\\Log\\Writer-\u003EwriteLog('error', Object(UnexpectedValueException), Array)\n#6 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php(57): Illuminate\\Log\\Writer-\u003Eerror(Object(UnexpectedValueException))\n#7 \/home\/fullerton\/application\/app\/Exceptions\/Handler.php(81): Illuminate\\Foundation\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#8 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(78): App\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#9 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(34): Illuminate\\Routing\\Pipeline-\u003EhandleException(Object(Illuminate\\Http\\Request), Object(UnexpectedValueException))\n#10 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/View\/Middleware\/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#11 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#12 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#13 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#14 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#15 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php(62): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#16 [internal function]: Illuminate\\Session\\Middleware\\StartSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#17 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#18 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#20 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#21 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#22 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#23 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#24 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#25 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#26 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#27 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#28 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#30 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#31 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#32 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(726): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#33 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(699): Illuminate\\Routing\\Router-\u003ErunRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#34 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(675): Illuminate\\Routing\\Router-\u003EdispatchToRoute(Object(Illuminate\\Http\\Request))\n#35 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(246): Illuminate\\Routing\\Router-\u003Edispatch(Object(Illuminate\\Http\\Request))\n#36 [internal function]: Illuminate\\Foundation\\Http\\Kernel-\u003EIlluminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#37 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#38 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(44): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#39 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#40 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#41 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#42 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#43 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#44 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#45 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(132): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#46 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel-\u003EsendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#47 \/home\/fullerton\/application\/public\/index.php(53): Illuminate\\Foundation\\Http\\Kernel-\u003Ehandle(Object(Illuminate\\Http\\Request))\n#48 {main}","context":[],"level":400,"level_name":"ERROR","channel":"local","datetime":{"date":"2020-04-20 05:17:32.094965","timezone_type":3,"timezone":"UTC"},"extra":[],"formatted":"[2020-04-20 05:17:32] local.ERROR: exception 'UnexpectedValueException' with message 'The stream or file \"\/home\/fullerton\/application\/storage\/logs\/laravel-2020-04-20.log\" could not be opened: failed to open stream: Permission denied' in \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/StreamHandler.php:97\nStack trace:\n#0 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php(88): Monolog\\Handler\\StreamHandler-\u003Ewrite(Array)\n#1 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler-\u003Ewrite(Array)\n#2 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(336): Monolog\\Handler\\AbstractProcessingHandler-\u003Ehandle(Array)\n#3 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(615): Monolog\\Logger-\u003EaddRecord(400, Object(UnexpectedValueException), Array)\n#4 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(202): Monolog\\Logger-\u003Eerror(Object(UnexpectedValueException), Array)\n#5 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(113): Illuminate\\Log\\Writer-\u003EwriteLog('error', Object(UnexpectedValueException), Array)\n#6 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php(57): Illuminate\\Log\\Writer-\u003Eerror(Object(UnexpectedValueException))\n#7 \/home\/fullerton\/application\/app\/Exceptions\/Handler.php(81): Illuminate\\Foundation\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#8 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(78): App\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#9 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(34): Illuminate\\Routing\\Pipeline-\u003EhandleException(Object(Illuminate\\Http\\Request), Object(UnexpectedValueException))\n#10 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/View\/Middleware\/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#11 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#12 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#13 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#14 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#15 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php(62): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#16 [internal function]: Illuminate\\Session\\Middleware\\StartSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#17 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#18 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#20 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#21 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#22 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#23 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#24 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#25 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#26 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#27 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#28 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#30 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#31 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#32 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(726): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#33 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(699): Illuminate\\Routing\\Router-\u003ErunRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#34 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(675): Illuminate\\Routing\\Router-\u003EdispatchToRoute(Object(Illuminate\\Http\\Request))\n#35 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(246): Illuminate\\Routing\\Router-\u003Edispatch(Object(Illuminate\\Http\\Request))\n#36 [internal function]: Illuminate\\Foundation\\Http\\Kernel-\u003EIlluminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#37 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#38 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(44): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#39 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#40 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#41 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#42 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#43 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#44 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#45 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(132): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#46 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel-\u003EsendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#47 \/home\/fullerton\/application\/public\/index.php(53): Illuminate\\Foundation\\Http\\Kernel-\u003Ehandle(Object(Illuminate\\Http\\Request))\n#48 {main} \n"}]},{"file":"\/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php","line":336,"function":"handle","class":"Monolog\\Handler\\AbstractProcessingHandler","type":"-\u003E","args":[{"message":"exception 'UnexpectedValueException' with message 'The stream or file \"\/home\/fullerton\/application\/storage\/logs\/laravel-2020-04-20.log\" could not be opened: failed to open stream: Permission denied' in \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/StreamHandler.php:97\nStack trace:\n#0 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/RotatingFileHandler.php(88): Monolog\\Handler\\StreamHandler-\u003Ewrite(Array)\n#1 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Handler\/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler-\u003Ewrite(Array)\n#2 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(336): Monolog\\Handler\\AbstractProcessingHandler-\u003Ehandle(Array)\n#3 \/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php(615): Monolog\\Logger-\u003EaddRecord(400, Object(UnexpectedValueException), Array)\n#4 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(202): Monolog\\Logger-\u003Eerror(Object(UnexpectedValueException), Array)\n#5 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php(113): Illuminate\\Log\\Writer-\u003EwriteLog('error', Object(UnexpectedValueException), Array)\n#6 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php(57): Illuminate\\Log\\Writer-\u003Eerror(Object(UnexpectedValueException))\n#7 \/home\/fullerton\/application\/app\/Exceptions\/Handler.php(81): Illuminate\\Foundation\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#8 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(78): App\\Exceptions\\Handler-\u003Ereport(Object(UnexpectedValueException))\n#9 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(34): Illuminate\\Routing\\Pipeline-\u003EhandleException(Object(Illuminate\\Http\\Request), Object(UnexpectedValueException))\n#10 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/View\/Middleware\/ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#11 [internal function]: Illuminate\\View\\Middleware\\ShareErrorsFromSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#12 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#13 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#14 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#15 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php(62): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#16 [internal function]: Illuminate\\Session\\Middleware\\StartSession-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#17 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#18 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#20 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#21 [internal function]: Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#22 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#23 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#24 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#25 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php(59): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#26 [internal function]: Illuminate\\Cookie\\Middleware\\EncryptCookies-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#27 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#28 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#30 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#31 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#32 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(726): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#33 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(699): Illuminate\\Routing\\Router-\u003ErunRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#34 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(675): Illuminate\\Routing\\Router-\u003EdispatchToRoute(Object(Illuminate\\Http\\Request))\n#35 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(246): Illuminate\\Routing\\Router-\u003Edispatch(Object(Illuminate\\Http\\Request))\n#36 [internal function]: Illuminate\\Foundation\\Http\\Kernel-\u003EIlluminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#37 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#38 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(44): Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#39 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode-\u003Ehandle(Object(Illuminate\\Http\\Request), Object(Closure))\n#40 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(136): call_user_func_array(Array, Array)\n#41 [internal function]: Illuminate\\Pipeline\\Pipeline-\u003EIlluminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#42 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#43 [internal function]: Illuminate\\Routing\\Pipeline-\u003EIlluminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#44 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))\n#45 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(132): Illuminate\\Pipeline\\Pipeline-\u003Ethen(Object(Closure))\n#46 \/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel-\u003EsendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#47 \/home\/fullerton\/application\/public\/index.php(53): Illuminate\\Foundation\\Http\\Kernel-\u003Ehandle(Object(Illuminate\\Http\\Request))\n#48 {main}","context":[],"level":400,"level_name":"ERROR","channel":"local","datetime":{"date":"2020-04-20 05:17:32.094965","timezone_type":3,"timezone":"UTC"},"extra":[]}]},{"file":"\/home\/fullerton\/application\/vendor\/monolog\/monolog\/src\/Monolog\/Logger.php","line":615,"function":"addRecord","class":"Monolog\\Logger","type":"-\u003E","args":[400,{},[]]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php","line":202,"function":"error","class":"Monolog\\Logger","type":"-\u003E","args":[{},[]]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Log\/Writer.php","line":113,"function":"writeLog","class":"Illuminate\\Log\\Writer","type":"-\u003E","args":["error",{},[]]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Exceptions\/Handler.php","line":57,"function":"error","class":"Illuminate\\Log\\Writer","type":"-\u003E","args":[{}]},{"file":"\/home\/fullerton\/application\/app\/Exceptions\/Handler.php","line":81,"function":"report","class":"Illuminate\\Foundation\\Exceptions\\Handler","type":"-\u003E","args":[{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":78,"function":"report","class":"App\\Exceptions\\Handler","type":"-\u003E","args":[{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":34,"function":"handleException","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Session\/Middleware\/StartSession.php","line":62,"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"handle","class":"Illuminate\\Session\\Middleware\\StartSession","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":136,"function":"call_user_func_array","args":[[{},"handle"],[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]]},{"function":"Illuminate\\Pipeline\\{closure}","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":32,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/AddQueuedCookiesToResponse.php","line":37,"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"handle","class":"Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":136,"function":"call_user_func_array","args":[[{},"handle"],[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]]},{"function":"Illuminate\\Pipeline\\{closure}","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":32,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Cookie\/Middleware\/EncryptCookies.php","line":59,"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"handle","class":"Illuminate\\Cookie\\Middleware\\EncryptCookies","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":136,"function":"call_user_func_array","args":[[{},"handle"],[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]]},{"function":"Illuminate\\Pipeline\\{closure}","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":32,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":103,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php","line":726,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php","line":699,"function":"runRouteWithinStack","class":"Illuminate\\Routing\\Router","type":"-\u003E","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php","line":675,"function":"dispatchToRoute","class":"Illuminate\\Routing\\Router","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php","line":246,"function":"dispatch","class":"Illuminate\\Routing\\Router","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"Illuminate\\Foundation\\Http\\{closure}","class":"Illuminate\\Foundation\\Http\\Kernel","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":52,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php","line":44,"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":136,"function":"call_user_func_array","args":[[{},"handle"],[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}},{}]]},{"function":"Illuminate\\Pipeline\\{closure}","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php","line":32,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"function":"Illuminate\\Routing\\{closure}","class":"Illuminate\\Routing\\Pipeline","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php","line":103,"function":"call_user_func","args":[{},{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php","line":132,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"-\u003E","args":[{}]},{"file":"\/home\/fullerton\/application\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php","line":99,"function":"sendRequestThroughRouter","class":"Illuminate\\Foundation\\Http\\Kernel","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]},{"file":"\/home\/fullerton\/application\/public\/index.php","line":53,"function":"handle","class":"Illuminate\\Foundation\\Http\\Kernel","type":"-\u003E","args":[{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}]}]";
\ No newline at end of file
1587277912s:30:"syntax error, unexpected ';'[]";
\ No newline at end of file
1587277920s:30:"syntax error, unexpected ';'[]";
\ No newline at end of file
<style>
.password_alert {
padding: 12px;
background-color: #f44336;
color: white;
font-weight: bold;
font-size: 15px;
margin-bottom: 8px;
display: none;
}
.closebtn {
margin-left: 15px;
color: white;
font-weight: bold;
float: right;
font-size: 22px;
line-height: 20px;
cursor: pointer;
transition: 0.3s;
}
.closebtn:hover {
color: black;
}
</style>
<div class="layout-app">
<div class="row row-app margin-none">
<div class="col-md-2 col-sm-3 border-none">
<div class="col-separator box col-separator-first reset-components">
<?php echo $__env->make('layout.module.social.indexareaphoto', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div class="col-separator-h box"></div>
<ul class="list-group list-group-1 margin-none">
<!-- <li class="list-group-item active"><a href="#" onclick='menuAction("profile");return false;'><i class="fa fa-user"></i> Profile</a></li> -->
</ul>
<!-- <div class="col-separator-h box"></div> -->
</div>
</div>
<div class="col-md-10 col-sm-9">
<div class="col-separator box">
<div class="widget-body">
<div class="tab-content">
<div id="tabAccount" class="tab-pane active widget-body-regular padding-none border-none reset-components">
<div class="widget widget-tabs border-bottom-none">
<div class="widget-head">
<ul>
<li class="active profile_tab_menu"><a class="glyphicons edit" href="#account-details" data-toggle="tab"><i></i>Personal details</a></li>
<li class="profile_tab_menu"><a class="glyphicons settings" href="#account-settings" data-toggle="tab"><i></i>Account settings</a></li>
<li class="profile_tab_menu"><a class="glyphicons info" href="#account-promotional" onclick="" data-toggle="tab"><i></i>Feedbacks</a></li>
<li class="profile_tab_menu" id="change_password"><a class="glyphicons pencil" href="#account-contenttags" onclick="" data-toggle="tab"><i></i>Password</a></li>
</ul>
</div>
<div class="widget-body">
<form class="form-horizontal">
<div class="tab-content">
<div class="tab-pane" id="account-contenttags">
<form class="form-horizontal innerT " role="form">
<div class="password_alert">
<span class="closebtn" onclick="this.parentElement.style.display='none';">&times;</span>
<strong>Expiry!</strong> Please change your password.
</div>
<div class="form-group">
<label for="account_cpass" class="col-sm-2 control-label">Current Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" id="account_cpass" placeholder="Type here">
</div>
</div>
<div class="form-group">
<label for="account_npass" class="col-sm-2 control-label">New Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" id="account_npass" placeholder="Type here">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="button" id="account_savenpass" class="btn btn-primary" onclick='profileChangePassword();'>Save Changes <i class="fa fa-check"></i></button>
</div>
</div>
</form>
</div>
<div class="tab-pane active profile_tab_menu" id="account-details">
<div class="row">
<div class="col-md-6">
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">First name</label>
<div class="col-md-9">
<div class="input-group">
<input type="text" id="account_fname" value="<?php if(isset($data['personal']['fname'])) echo $data['personal']['fname']; ?>" class="form-control" />
<span class="input-group-addon" data-toggle="tooltip" data-container="body" data-placement="top" data-original-title="First name is mandatory"><i class="fa fa-question-circle"></i></span>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Last name</label>
<div class="col-md-9">
<div class="input-group">
<input type="text" id="account_lname" value="<?php if(isset($data['personal']['lname'])) echo $data['personal']['lname']; ?>" class="form-control" />
<span class="input-group-addon" data-toggle="tooltip" data-container="body" data-placement="top" data-original-title="Last name is mandatory"><i class="fa fa-question-circle"></i></span>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Date of birth</label>
<div class="col-md-9">
<div class="input-group">
<input type="text" id="account_dob" class="form-control datepicker_mn" value="<?php if(isset($data['personal']['dob'])) echo $data['personal']['dob']; ?>" />
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Gender</label>
<div class="col-md-9">
<select id="account_gender" class="form-control">
<option value='<?php if(isset($data['personal']['gender'])) echo $data['personal']['gender']; ?>'><?php if(isset($data['personal']['gender'])) echo $data['personal']['gender']; ?></option>
<option value='Male'>Male</option>
<option value='Female'>Female</option>
</select>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">City</label>
<div class="col-md-9">
<input type="text" id="account_location" value="<?php if(isset($data['personal']['location'])) echo $data['personal']['location']; ?>" class="form-control" />
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Location</label>
<div class="col-md-9">
<input type="text" id="account_sublocation" value="<?php if(isset($data['personal']['sublocation'])) echo $data['personal']['sublocation']; ?>" class="form-control" />
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Country</label>
<div class="col-md-9">
<select id="account_country" class="form-control" >
<option value='<?php if(isset($data['personal']['country'])) echo $data['personal']['country']; ?>'><?php if(isset($data['personal']['country'])) echo $data['personal']['country']; ?></option>
<?php
$countries=array("Afganistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antigua &amp; Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bonaire","Bosnia &amp; Herzegovina","Botswana","Brazil","British Indian Ocean Ter","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Canary Islands","Cape Verde","Cayman Islands","Central African Republic","Chad","Channel Islands","Chile","China","Christmas Island","Cocos Island","Colombia","Comoros","Congo","Cook Islands","Costa Rica","Cote DIvoire","Croatia","Cuba","Curaco","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","East Timor","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Ter","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Great Britain","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guinea","Guyana","Haiti","Hawaii","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Korea North","Korea Sout","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malaysia","Malawi","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Midway Islands","Moldova","Monaco","Mongolia","Montserrat","Morocco","Mozambique","Myanmar","Nambia","Nauru","Nepal","Netherland Antilles","Netherlands","Nevis","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Norway","Oman","Pakistan","Palau Island","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Phillipines","Pitcairn Island","Poland","Portugal","Puerto Rico","Qatar","Republic of Montenegro","Republic of Serbia","Reunion","Romania","Russia","Rwanda","St Barthelemy","St Eustatius","St Helena","St Kitts-Nevis","St Lucia","St Maarten","St Pierre &amp; Miquelon","St Vincent &amp; Grenadines","Saipan","Samoa","Samoa American","San Marino","Sao Tome &amp; Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","Spain","Sri Lanka","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Tahiti","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Tokelau","Tonga","Trinidad &amp; Tobago","Tunisia","Turkey","Turkmenistan","Turks &amp; Caicos Is","Tuvalu","Uganda","Ukraine","United Arab Erimates","United Kingdom","United States of America","Uraguay","Uzbekistan","Vanuatu","Vatican City State","Venezuela","Vietnam","Virgin Islands (Brit)","Virgin Islands (USA)","Wake Island","Wallis &amp; Futana Is","Yemen","Zaire","Zambia","Zimbabwe");
foreach($countries as $country)echo "<option value='$country'>$country</option>";
?>
</select>
</div>
</div>
<input type=hidden id=mytheme value=layout>
<!-- <div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Theme</label>
<div class="col-md-9">
<select id="mytheme" class="form-control">
<option value='<?php if(isset($data['mytheme'])) echo $data['mytheme']; else echo "layout";?>'><?php if(isset($data['mytheme']))if($data['mytheme']=='layout')echo "Flat";else echo "Squomorphic" ?></option>
<option value='layout'>Flat</option>
<option value='layout'>Squomorphic</option>
</select>
</div>
</div>-->
</div>
<div class="col-md-6">
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label"></label><h4><?php echo Config::get("app.name"); ?> Details</h4><hr>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Email</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php echo $email; ?></b>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Date of Joining</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php if(isset($data['personal']['doj'])) echo $data['personal']['doj'];else echo "NA"; ?></b>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Employee Level</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php if(isset($data['personal']['level'])) echo $data['personal']['level'];else echo "NA"; ?></b>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Department</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php if(isset($data['personal']['department'])) echo $data['personal']['department'];else echo "NA"; ?></b>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Function</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php if(isset($data['personal']['function'])) echo $data['personal']['function'];else echo "NA"; ?></b>
</div>
</div>
</div>
<hr>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">Supervisor</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php echo Auth::user()->supervisor; ?></b>
</div>
</div>
</div>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">L-Team</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b><?php echo Auth::user()->lteam." / ".Auth::user()->lteam2; ?></b>
</div>
</div>
</div>
<hr>
<div class="form-group margin-none innerB">
<label class="col-md-3 control-label">General Info</label>
<div class="col-md-9">
<div class="input-group" style="padding-top: 8px;">
<b>
<?php if(isset($data['personal']['entity'])) echo $data['personal']['entity'];else echo ""; ?>/
<?php if(isset($data['personal']['category'])) echo $data['personal']['category'];else echo ""; ?>/
<?php if(isset($data['personal']['section'])) echo $data['personal']['section'];else echo ""; ?>/
<?php if(isset($data['personal']['lob'])) echo $data['personal']['lob'];else echo ""; ?>
</b>
</div>
</div>
</div>
</div>
</div>
<div class="separator line bottom"></div>
<div class="widget row widget-heading-simple widget-body-gray">
<div class="widget-head"><h4 class="heading">About You</h4></div>
<div class="widget-body"><textarea id="account_aboutme" class="form-control" rows="5" placeholder='Write something about you'><?php if(isset($data['personal']['aboutme'])) echo $data['personal']['aboutme']; ?></textarea>
</div>
</div>
<div class="separator line bottom"></div>
<div class="widget row widget-heading-simple widget-body-gray">
<div class="widget-head"><h4 class="heading">Private Notes</h4></div>
<div class="widget-body"><textarea id="account_interests" class="form-control" rows="5" placeholder=''><?php if(isset($data['personal']['interests'])) echo $data['personal']['interests']; ?></textarea></div>
</div>
<div class="separator top">
<button type="button" onclick="profileUpdate();return false;" class="btn btn-primary"><i class="fa fa-fw fa-check-square-o"></i> Save changes</button>
<button type="button" id="account_cancelpersonal" class="btn btn-default"><i class="fa fa-fw fa-times"></i> Cancel</button>
</div>
</div>
<div class="tab-pane profile_tab_menu" id="account-settings">
<div class="row">
<div class="col-md-9">
<label for="inputUsername">Username</label>
<div class="input-group">
<input type="text" id="inputUsername" class="form-control" value="<?php echo $username; ?>" disabled="disabled" />
<span class="input-group-addon" data-toggle="tooltip" data-placement="top" data-container="body" data-original-title="Username can't be changed"><i class="fa fa-question-sign"></i></span>
</div>
</div>
<div class="separator line bottom"></div>
<div class="row">
<div class="col-md-3">
<strong>Contact details</strong>
<p class="muted">Contact details and settings.</p>
</div>
<div class="col-md-9">
<div class="row">
<div class="col-md-6">
<label for="account_phone">Phone</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-phone"></i></span>
<input type="text" value="<?php if(isset($data['personal']['phone'])) echo $data['personal']['phone']; ?>" id="account_phone" class="form-control" placeholder="01234567897" />
</div>
<div class="separator bottom"></div>
<label for="account_email">E-mail</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="text" value="<?php if(isset($data['personal']['email'])) echo $data['personal']['email']; ?>" id="account_email" class="form-control" placeholder="[email protected]" />
</div>
<div class="separator bottom"></div>
<label for="account_website">Website</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-link"></i></span>
<input type="text" value="<?php if(isset($data['personal']['website'])) echo $data['personal']['website']; ?>" id="account_website" class="form-control" placeholder="http://www.website.com" />
</div>
<div class="separator bottom"></div>
</div>
<div class="col-md-6">
<label for="account_facebook">Facebook</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-facebook"></i></span>
<input type="text" value="<?php if(isset($data['personal']['facebook'])) echo $data['personal']['facebook']; ?>" id="account_facebook" class="form-control" placeholder="facebook id" />
</div>
<div class="separator bottom"></div>
<label for="account_twitter">Twitter</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-twitter"></i></span>
<input type="text" value="<?php if(isset($data['personal']['twitter'])) echo $data['personal']['twitter']; ?>" id="account_twitter" class="form-control" placeholder="twitter handle" />
</div>
<div class="separator bottom"></div>
<label for="account_skype">Skype ID</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-skype"></i></span>
<input type="text" value="<?php if(isset($data['personal']['skype'])) echo $data['personal']['skype']; ?>" id="account_skype" class="form-control" placeholder="mySkypeID" />
</div>
<div class="separator bottom"></div>
<label for="account_google">Google</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-google-plus"></i></span>
<input type="text" value="<?php if(isset($data['personal']['google'])) echo $data['personal']['google']; ?>" id="account_google" class="form-control" placeholder="google ID" />
</div>
<div class="separator bottom"></div>
</div>
</div>
</div>
</div>
<div class="form-actions" style="margin: 0;">
<button type="button" onclick="profileUpdate();return false;" class="btn btn-primary"><i class="fa fa-fw fa-check-square-o"></i> Save changes</button>
</div>
</div>
</div>
</form>
<div class="tab-pane profile_tab_menu" id="account-promotional">
<?php
use App\Jobs\KHRMSLib;
$wakka=new KHRMSLib();
?>
<h2>Admin Feedbacks</h2>
<div style='width:100%;max-height:300px;overflow:auto'>
<?php
if(is_array($wakka->GetBBBUserData("userfeedbacks")))
{
$userfeedbacks=array_reverse($wakka->GetBBBUserData("userfeedbacks"));
foreach($userfeedbacks as $feedback)
{
echo "<p><b>[".$feedback['datetime']."] ".$feedback['user']."</b><br>".$feedback['data']."<hr style='margin:3px'></p>";
}
}
?>
</div>
<div id="promotional-gallery" class="col-sm-7">
</div>
<!--
<div id="promotional-upload-form" class="col-sm-5">
<div class="widget row widget-heading-simple widget-body-white">
<div class="widget-head">
<h4 class="heading">Link External Videos( Youtube or Vimeo only )</h4>
</div>
<div style="border: 1px solid #EFEFEF;">
<div class="widget-body">
<div class="input-group">
<input id="ext_upl_link" class="form-control" type="text" placeholder="Paste link here...">
<div class="input-group-btn">
<button class="btn btn-default" type="button" onclick="upload_ext_promo($('#ext_upl_link').val());"><i class="fa fa-link"></i> Link</button>
</div>
</div>
</div>
</div>
</div>
<div class="separator bottom" /> <div class="separator bottom" />
<a href="#modal_promotional" data-toggle="modal" class="btn btn-primary pull-right">
<i class="fa fa-2x fa-cloud-upload"></i><span style="font-size:14px;font-weight:600;"> Upload From Disk</span>
</a>
</div>
</div>
-->
</div>
</div>
</div>
</div>
<!--<div id="tabPassword" class="tab-pane innerAll">
<h4 class="innerTB">Change your Password</h4>
<form class="form-horizontal innerT " role="form">
<div class="form-group">
<label for="account_cpass" class="col-sm-2 control-label">Current Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" id="account_cpass" placeholder="Type here">
</div>
</div>
<div class="form-group">
<label for="account_npass" class="col-sm-2 control-label">New Password</label>
<div class="col-sm-6">
<input type="password" class="form-control" id="account_npass" placeholder="Type here">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="button" id="account_savenpass" class="btn btn-primary" onclick='editPasswdForm();return false;'>Save Changes <i class="fa fa-check"></i></button>
</div>
</div>
</form>
<script>
function editPasswdForm()
{
var putdata="stype=edit_passwd";
putdata+="&account_cpass="+$("#account_cpass").val();
putdata+="&account_npass="+$("#account_npass").val();
doAjax('profile',putdata,'','ajax_profile_update','singlefail','POST');
}
</script>
</div>-->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function profileUpdate()
{
var data = new Array();
var key;
data["account_aboutme"] = encodeURIComponent($("#account_aboutme").val());
data["account_dob"] = $("#account_dob").val();
data["account_email"] = $("#account_email").val();
data["account_facebook"] = $("#account_facebook").val();
data["account_fname"] = $("#account_fname").val();
data["account_gender"] = $("#account_gender").val();
data["account_google"] = $("#account_google").val();
data["account_lname"] = $("#account_lname").val();
data["account_location"] = $("#account_location").val();
data["account_sublocation"] = $("#account_sublocation").val();
data["account_country"] = $("#account_country").val();
data["account_phone"] = $("#account_phone").val();
data["account_skype"] = $("#account_skype").val();
data["account_twitter"] = $("#account_twitter").val();
data["account_website"] = $("#account_website").val();
data["account_interests"] = encodeURIComponent($("#account_interests").val());
data["mytheme"]=$("#mytheme").val();
var varstr = "stype=saveaccount_info";
for(key in data)
{
varstr+= "&"+key+"="+data[key];
}
doAjax('profile',varstr,'','ajax_profile_update','singlefail','POST');
}
<?php if(isset($displaymsg)): ?>
simpleNotification("<?php echo $displaymsg['type']; ?>","topRight","<?php echo $displaymsg['text']; ?>");
<?php endif; ?>
function profileChangePassword()
{
var putdata="stype=password_update&";
putdata+="&password="+$("#account_npass").val();
putdata+="&oldpassword="+$("#account_cpass").val();
doAjax('profile',putdata,'','ajax_profile_update','singlefail','POST');
}
redirect_to_password_expiry_check();
function redirect_to_password_expiry_check()
{
var action = "password_expiry_check";
$.ajax({
type: "GET",
url: action,
success: function(result)
{
if (result=='True') {
password_tab();
}
}
});
}
function password_tab()
{
$('.profile_tab_menu').removeClass('active');
$('#change_password').addClass('active');
$('#account-contenttags').addClass('active');
$('.password_alert').css("display", "block");
}
</script>
<iframe name=fileupload_social id=fileupload_social style='height:0px;width:0px;overflow:none' src='about:blank'></iframe>
<?php
use App\Jobs\KHRMSLib;
$wakka = new KHRMSLib();
$userdata = $wakka->loadAllDBUsers($tuser->username);
$clientslist = $wakka->GetExBBBUserData($userdata["name"], "clientslist");
$clientsownerlist = $wakka->GetExBBBUserData($userdata["name"], "clientsownerlist");
$roclientsownerlist = $wakka->GetExBBBUserData($userdata["name"], "roclientsownerlist");
$accclientsownerlist = $wakka->GetExBBBUserData($userdata["name"], "accclientsownerlist");
$recclientsownerlist = $wakka->GetExBBBUserData($userdata["name"], "recclientsownerlist");
$bdmclientsownerlist = $wakka->GetExBBBUserData($userdata["name"], "bdmclientsownerlist");
$readotherdata = $wakka->GetExBBBUserData($userdata["name"], "readotherdata");
if (Input::get('feedbacktxt') != '') {
$feedbacks = $wakka->GetExBBBUserData($tuser->username, "userfeedbacks");
$feedbacks[] = array("datetime" => date("Y-m-d H:i"), "user" => $wakka->GetUserName(), "data" => Input::get('feedbacktxt'));
$wakka->SetExBBBUserData($tuser->username, "userfeedbacks", $feedbacks);
$result = $wakka->createMailQueue("System", array($wakka->GetExBBBUserData($tuser->username, "email")), "Innovation : User Feedback Added", "Hi,<br><br>\n\n" . $wakka->GetUserName() . " has added a new User Feedback for you, You may check the same in your Profile.");
}
$role = $tuser->role();
$data = $tuser->data();
if (empty($data['personal'])) {
$data['personal'] = array();
}
if (empty($data['personal']['fname'])) {
$data['personal']['fname'] = "";
}
if (empty($data['personal']['lname'])) {
$data['personal']['lname'] = "";
}
?>
<!-- Heading -->
<h5 class="innerAll margin-none bg-primary">
<i class="fa fa-fw fa-pencil"></i> Edit User
<a href="#" class="btn btn-sm btn-inverse pull-right btn-xs" style="margin-top: -5px;" onclick="return false">
<i class="fa fa-user fa-fw"></i>
<?php echo $tuser->dispname(); ?>
</a>
</h5>
<?php
$title = $tuser->dispname();
$url = "";
// $desc=substr(strip_tags($tuser->dataval2('personal','aboutme')),0,50);
$imageurl = array(Auth::user()->fetchphotothumb($tuser->id));
$interests = array_unique(array_filter(explode(",", $tuser->dataval2('personal', 'interestcategories'))));
?>
<div class="media innerAll">
<div class=pull-right>
<button class="pull-right btn btn-primary btn-stroke btn-xs" onclick='dbhashlink("#p-<?php echo $tuser->id; ?>")'><i class="fa fa-arrow-right"></i></button><div style='clear:both;margin-bottom:7px'></div>
<button class="pull-right btn btn-primary btn-xs" onclick='dashboardfollow(<?php echo $tuser->id; ?>)'> Follow </button>
</div>
<img src="<?php echo $imageurl[0]; ?>" alt="" width="35" class="pull-left thumb">
<div class="media-body">
<h5 class="media-heading strong"><?php echo $title; ?></h5>
<ul class="list-unstyled text-faded">
<li><i class="fa fa-gear"></i> <?php echo $tuser->usertype; ?> <?php echo $tuser->dataval2('personal','location'); ?> - <?php echo $tuser->dataval2('personal','country'); ?></li>
<li><?php if (!empty($interests)) {
foreach ($interests as $interest) {?><span class="badge badge-primary"><small><?php echo $interest; ?></small></span><?php }
}
?></li>
</ul>
</div>
</div>
<div class="col-separator-h box"></div>
<form class="innerAll">
<fieldset>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Username</label>
<div class="col-md-8 controls">
<input class="form-control" id="username" type="text" value="<?php echo $tuser->username; ?>" disabled=disabled />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="password">Password</label>
<div class="col-md-8 controls">
<input class="form-control" id="password" type="password" value="" placeholder=unchanged />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Full Name</label>
<div class="col-md-8 controls">
<input class="form-control" id="fullname" type="text" value="<?php echo $data['personal']['fname']; ?> <?php echo $data['personal']['lname']; ?>" required=required />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-8 controls">
<input class="form-control" id="email" type="email" value="<?php echo $tuser->email; ?>" required=required />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="userstatus">Status</label>
<div class="col-md-8 controls">
<select id="userstatus" required=required class=form-control>
<option value="<?php echo $tuser->status; ?>"><?php echo $tuser->status; ?></option>
<option value="Active">Active</option>
<option value="Disabled">Disabled</option>
<option value="Unverified">Unverified</option>
<option value="Blocked">Blocked</option>
</select>
</div>
</div>
<!-- <div class="control-group">
<label class="col-md-4 control-label" for="organization">Organization</label>
<div class="col-md-8 controls">
<select id="organization" required=required class=form-control>
<option value="<?php echo $tuser->organization; ?>" selected><?php echo $tuser->organization; ?></option>
<?php foreach(Auth::user()->getAccessList("group",true,false,false,true) as $tgrp): ?>
<option value="<?php echo $tgrp; ?>"><?php echo $tgrp; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>-->
<div class="control-group">
<label class="col-md-4 control-label" for="organization">User Type</label>
<div class="col-md-8 controls">
<select id="usertype" required=required class="form-control">
<option value="<?php echo $tuser->usertype; ?>"><?php echo $tuser->usertype; ?></option>
<?php
$roles = \App\Models\Role::where('status', '=', 'Active')->get();
foreach ($roles as $trole) {
echo "<option value='" . $trole->rolename . "'>" . $trole->rolename . "</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="usergroup">Group</label>
<div class="col-md-8 controls">
<select id="usergroup" required=required class=form-control>
<option value="<?php echo $tuser->group; ?>" selected><?php echo $tuser->group; ?></option>
<?php foreach(Auth::user()->getAccessList("group",true,false,false,true) as $tgrp): ?>
<option value="<?php echo $tgrp; ?>"><?php echo $tgrp; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<!-- <div class="control-group">
<label class="col-md-4 control-label" for="usergroup">Chat/Voice Enabled</label>
<div class="col-md-8 controls">
<select id="uservoice" required=required class=form-control>
<option value="<?php echo $data['uservoice']; ?>" selected><?php echo $data['uservoice']; ?></option>
<option value="Active">Active</option>
<option value="InActive">InActive</option>
</select>
</div>
</div>-->
<hr><h2 style='padding-left:10%'>Modules Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="">Read+Write+Admin</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_modules') as $tmod => $tmodarr) {
if (strstr("," . $role->modulerwa . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="modulerw">Read+Write</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_modules') as $tmod => $tmodarr) {
if (strstr("," . $role->modulerw . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="moduler">Read</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_modules') as $tmod => $tmodarr) {
if (strstr("," . $role->moduler . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div><div style='clear:both'></div>
<hr><h2 style='padding-left:10%'>Groups Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprwa">Read+Write+Admin</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_groups') as $tmod) {
if (strstr("," . $role->grouprwa . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprw">Read+Write</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_groups') as $tmod) {
if (strstr("," . $role->grouprw . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Read</label>
<div class="col-md-8 controls">
<?php foreach (Config::get('app.app_groups') as $tmod) {
if (strstr("," . $role->groupr . ",", ",$tmod,")) {
echo $tmod . ", ";
}
}
?>
</div>
</div>
<div style='clear:both'></div>
<hr style='margin-bottom:20px'>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Edit Client List</label>
<div class="col-md-8 controls">
<select id="clientslist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $clientslist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Owner Client List</label>
<div class="col-md-8 controls">
<select id="clientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $clientsownerlist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Readonly Client List</label>
<div class="col-md-8 controls">
<select id="roclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $roclientsownerlist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Read Other Data</label>
<div class="col-md-8 controls">
<select id="readotherdata" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<option value="Yes" <?php if ($readotherdata == 'Yes') {
echo 'selected=selected';
}
?> >Yes</option>
<option value="No" <?php if ($readotherdata == 'No') {
echo 'selected=selected';
}
?> >No</option>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Account Owner</label>
<div class="col-md-8 controls">
<select id="accclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $accclientsownerlist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Recruitment Owner</label>
<div class="col-md-8 controls">
<select id="recclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $recclientsownerlist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">BDM Owner</label>
<div class="col-md-8 controls">
<select id="bdmclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr = $wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach ($companyarr as $tcompany) {
$seltxt = '';
if (strstr("," . $bdmclientsownerlist . ",", ",$tcompany[mkey],")) {
$seltxt = 'selected="selected"';
}
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div style='clear:both'></div>
<br><hr><br>
<div class="control-group">
<label class="col-md-4 control-label" for="username">L-Team</label>
<div class="col-md-8 controls">
<input class="form-control" id="lteam" type="text" value="<?php echo $tuser->lteam; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">One Down L-Team</label>
<div class="col-md-8 controls">
<input class="form-control" id="lteam2" type="text" value="<?php echo $tuser->lteam2; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Supervisor</label>
<div class="col-md-8 controls">
<input class="form-control" id="supervisor" type="text" value="<?php echo $tuser->supervisor; ?>" />
</div>
</div>
<div style='clear:both'></div>
<br><hr><br>
<?php
if (!isset($data['personal']['doj'])) {
$data['personal']['doj'] = '';
}
if (!isset($data['personal']['level'])) {
$data['personal']['level'] = '';
}
if (!isset($data['personal']['department'])) {
$data['personal']['department'] = '';
}
if (!isset($data['personal']['function'])) {
$data['personal']['function'] = '';
}
if (!isset($data['personal']['domainid'])) {
$data['personal']['domainid'] = '';
}
if (!isset($data['personal']['entity'])) {
$data['personal']['entity'] = '';
}
if (!isset($data['personal']['category'])) {
$data['personal']['category'] = '';
}
if (!isset($data['personal']['country'])) {
$data['personal']['country'] = '';
}
if (!isset($data['personal']['location'])) {
$data['personal']['location'] = '';
}
if (!isset($data['personal']['sublocation'])) {
$data['personal']['sublocation'] = '';
}
if (!isset($data['personal']['section'])) {
$data['personal']['section'] = '';
}
if (!isset($data['personal']['lob'])) {
$data['personal']['lob'] = '';
}
if (!isset($data['personal']['gender'])) {
$data['personal']['gender'] = '';
}
if (!isset($data['subscriptioncredits'])) {
$data['subscriptioncredits'] = '';
}
?>
<div class="control-group">
<label class="col-md-4 control-label" for="username">DOJ</label>
<div class="col-md-8 controls">
<input class="form-control" id="doj" type="text" value="<?php echo $data['personal']['doj']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Level</label>
<div class="col-md-8 controls">
<input class="form-control" id="level" type="text" value="<?php echo $data['personal']['level']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Department</label>
<div class="col-md-8 controls">
<input class="form-control" id="department" type="text" value="<?php echo $data['personal']['department']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Function</label>
<div class="col-md-8 controls">
<input class="form-control" id="function" type="text" value="<?php echo $data['personal']['function']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Domain ID</label>
<div class="col-md-8 controls">
<input class="form-control" id="domainid" type="text" value="<?php echo $data['personal']['domainid']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Entity</label>
<div class="col-md-8 controls">
<input class="form-control" id="entity" type="text" value="<?php echo $data['personal']['entity']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Category</label>
<div class="col-md-8 controls">
<input class="form-control" id="category" type="text" value="<?php echo $data['personal']['category']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Country</label>
<div class="col-md-8 controls">
<input class="form-control" id="country" type="text" value="<?php echo $data['personal']['country']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Location</label>
<div class="col-md-8 controls">
<input class="form-control" id="location" type="text" value="<?php echo $data['personal']['location']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Sub Location</label>
<div class="col-md-8 controls">
<input class="form-control" id="sublocation" type="text" value="<?php echo $data['personal']['sublocation']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Extension</label>
<div class="col-md-8 controls">
<input class="form-control" id="exten" type="text" value="<?php echo $tuser->exten; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">MAgent Number</label>
<div class="col-md-8 controls">
<input class="form-control" id="phone" type="text" value="<?php echo $tuser->phone; ?>" />
</div>
</div>
<?php /*?>
<div class="control-group">
<label class="col-md-4 control-label" for="username">MAgent Campaign</label>
<div class="col-md-8 controls">
<input class="form-control" id="campaign" type="text" value="{!!$tuser->campaign!!}" />
</div>
</div>
<?php */?>
<div class="control-group">
<label class="col-md-4 control-label" for="sessiontype">Login Type</label>
<div class="col-md-8 controls">
<select id="sessiontype" name="sessiontype" data-rel="chosen" style='width:100%' class=select2multi>
<option value='0' <?php echo ($tuser->sessiontype == '0') ? 'selected="selected"' : '' ?>>WebRTC</option>
<option value='1' <?php echo ($tuser->sessiontype == '1') ? 'selected="selected"' : '' ?>>PSTNWeb</option>
<?php /*?>
<option value='2' <?php echo ($tuser->sessiontype == '2') ? 'selected="selected"' : '' ?>>MAgent Missed Call</option>
<option value='3' <?php echo ($tuser->sessiontype == '3') ? 'selected="selected"' : '' ?>>MAgent Outbound</option>
<?php */?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Section</label>
<div class="col-md-8 controls">
<input class="form-control" id="section" type="text" value="<?php echo $data['personal']['section']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">LOB</label>
<div class="col-md-8 controls">
<input class="form-control" id="lob" type="text" value="<?php echo $data['personal']['lob']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Gender</label>
<div class="col-md-8 controls">
<input class="form-control" id="gender" type="text" value="<?php echo $data['personal']['gender']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Credits</label>
<div class="col-md-8 controls">
<input class="form-control" id="subscriptioncredits" type="text" value="<?php echo $data['subscriptioncredits']; ?>" />
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" onclick='editUserForm();return false;'>Save changes</button>
</div>
</fieldset>
</form>
<div class="col-separator-h box"></div>
<div class=innerAll>
<form method=post enctype="multipart/form-data" target="userfilepost" action="user">
<input type=hidden name=user value='<?php echo $tuser->id; ?>' />
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="action" value="userbusyfile" />
<div class="control-group">
<label class="col-md-4 control-label" for="">Busy Message <span></span></label>
<div class="col-md-8 controls">
<input class="form-control" name="busyfile" type="file" value="" />
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Save File</button>
</div>
</form>
<iframe name=userfilepost id=userfilepost style='height:0px;width:0px;overflow:none;display:none' src='about:blank'></iframe>
</div>
<script>
<?php if(isset($displaymsg)): ?>
simpleNotification("<?php echo $displaymsg['type']; ?>","topRight","<?php echo $displaymsg['text']; ?>");
<?php endif; ?>
function editUserForm()
{
var putdata="csrftoken=<?php echo Session::token(); ?>";
putdata+="&username="+$("#username").val();
putdata+="&password="+$("#password").val();
putdata+="&fullname="+$("#fullname").val();
putdata+="&usertype="+$("#usertype").val();
putdata+="&email="+$("#email").val();
putdata+="&userstatus="+$("#userstatus").val();
// putdata+="&organization="+$("#organization").val();
putdata+="&usergroup="+$("#usergroup").val();
putdata+="&uservoice=";//+$("#uservoice").val();
putdata+="&modulerwa="+$("#modulerwa").val();
putdata+="&modulerw="+$("#modulerw").val();
putdata+="&moduler="+$("#moduler").val();
putdata+="&grouprwa="+$("#grouprwa").val();
putdata+="&grouprw="+$("#grouprw").val();
putdata+="&groupr="+$("#groupr").val();
putdata+="&clientslist="+$("#clientslist").val();
putdata+="&clientsownerlist="+$("#clientsownerlist").val();
putdata+="&roclientsownerlist="+$("#roclientsownerlist").val();
putdata+="&readotherdata="+$("#readotherdata").val();
putdata+="&accclientsownerlist="+$("#accclientsownerlist").val();
putdata+="&recclientsownerlist="+$("#recclientsownerlist").val();
putdata+="&bdmclientsownerlist="+$("#bdmclientsownerlist").val();
putdata+="&feedbacktxt="+$("#feedbacktxt").val();
putdata+="&exten="+$("#exten").val();
putdata += "&phone=" + $("#phone").val();
putdata += "&campaign=" + $("#campaign").val();
putdata+="&sessiontype="+$("#sessiontype").val();
putdata+="&lteam="+$("#lteam").val();
putdata+="&lteam2="+$("#lteam2").val();
putdata+="&supervisor="+$("#supervisor").val();
putdata+="&doj="+$("#doj").val();
putdata+="&level="+$("#level").val();
putdata+="&department="+$("#department").val();
putdata+="&function="+$("#function").val();
putdata+="&domainid="+$("#domainid").val();
putdata+="&entity="+$("#entity").val();
putdata+="&category="+$("#category").val();
putdata+="&country="+$("#country").val();
putdata+="&location="+$("#location").val();
putdata+="&sublocation="+$("#sublocation").val();
putdata+="&section="+$("#section").val();
putdata+="&lob="+$("#lob").val();
putdata+="&gender="+$("#gender").val();
putdata+="&subscriptioncredits="+$("#subscriptioncredits").val();
doAjax('user/<?php echo $tuser->id; ?>',putdata,'userformdiv','ajax_users_update','singlethis','PUT');
}
</script>
<?php
use App\Models\CRMCallArchive;
use App\Models\CRMCall;
use App\Models\User;
use App\Jobs\KHRMSLib;
$wakka = new KHRMSLib();
$dashboarduser=Auth::user();
if(Input::get("getCallRec")=="1")
{
$calllog=CRMCallArchive::find(Input::get("calllog"));
$tdata=json_decode($calllog->data,true);
if(Auth::user()->usertype == "Telecaller")
{
echo '<audio controls src="dialer/playrecfile?calllog='.$calllog->id.'" controlsList="nodownload"/>';
}
else
{
echo '<audio controls src="dialer/playrecfile?calllog='.$calllog->id.'" />';
}
return;
}
if(isset($_GET['logdate']))$logdate=strtotime($_GET['logdate']." 00:00:00");
else $logdate=strtotime(date('Y-m-d')." 00:00:00");
if(isset($_GET['logtodate']))$logtodate=strtotime($_GET['logtodate']." 20:00:00");
else $logtodate=strtotime(date('Y-m-d')." 20:00:00");
$alist=CRMCallArchive::where('created_at','>=',date("Y-m-d H:i:s",$logdate))->where('created_at','<=',date("Y-m-d H:i:s",$logtodate));
if($dashboarduser->usertype != 'Admin')
{
$uidlist=array($dashboarduser->id);
$allusers=User::where(function ($query) use($dashboarduser) {
$query->where('supervisor','=',$dashboarduser->username)
->orWhere('lteam2','=',$dashboarduser->username)
->orWhere('lteam','=',$dashboarduser->username);
})->get();
// ->where(function ($query) {
// $query->where('status', '=', 'Active');
// })->get();
foreach($allusers as $tuser)$uidlist[]=$tuser->id;
$roclientstr=array();$didlinesstr=array();
if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten;
$oclientlst=$wakka->clientsReadAccess();
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
$roclientstr[]="$tclnt";
$mastersdata=$wakka->getCompanyMaster($tclnt);
if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
}
$alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){
$query//->orWhereIn('client',$roclientstr)
->orWhereIn('user_id',$uidlist)
->orWhereIn('did',$didlinesstr);
});
}
if(Input::get('sort')=='cpu')$alist=$alist->orderBy("callSec","DESC");
else $alist=$alist->orderBy("id","DESC");
$alist=$alist->get();
$userarr=array();
$i=sizeof($alist);if(!empty($_GET['sort']))$i=1;
$totaltime=0;$ttlovr10=0;$ttlovr5=0;$ttlovr1=0;$ttlovr0=0;$outstr="";$usrcnt=0;
$totaltimeIn=0;$ttlovr10In=0;$ttlovr5In=0;$ttlovr1In=0;$ttlovr0In=0;$usrcntIn=0;
$actionarr=array();$actionarrIn=array();
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "CSV";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.csv");
$baseRow = 3;
$tcol=0;$fieldsarr=array();$extrahdrarr=array();
$fieldsarr[$tcol++]='#';
$fieldsarr[$tcol++]='LAN';
$fieldsarr[$tcol++]='Start';
$fieldsarr[$tcol++]='Length';
$fieldsarr[$tcol++]='User';
$fieldsarr[$tcol++]='Name';
$fieldsarr[$tcol++]='Number';
$fieldsarr[$tcol++]='Data';
$fieldsarr[$tcol++]='Type';
$fieldsarr[$tcol++]='Dialline';
$fieldsarr[$tcol++]='Statuscode';
$fieldsarr[$tcol++]='Status';
$fieldsarr[$tcol++]='Substatus';
$fieldsarr[$tcol++]='Resultcode';
$fieldsarr[$tcol++]='WaitSec';
$fieldsarr[$tcol++]='CallSec';
$fieldsarr[$tcol++]='TalkSec';
$fieldsarr[$tcol++]='DispoSec';
$highestColumn = sizeof($fieldsarr);
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $fieldsarr[$head]);
}
$ii=1;
foreach($alist as $aline)
{
$row = $baseRow++; $col = 0;
$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)-($dashboarduser->timezone*60));
$talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec;
$length=round(($aline->waitSec+$aline->callSec+$talktime+$aline->dispoSec)/1000,2);
if(!isset($userarr[$aline->user_id])&&$aline->user_id>0)$userarr[$aline->user_id]=User::find($aline->user_id);
$dispname="";if(isset($userarr[$aline->user_id]))$dispname=$userarr[$aline->user_id]->dispname();
$username="";if(isset($userarr[$aline->user_id]))$username=$userarr[$aline->user_id]->username;
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($ii++);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->lan);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($fulldate);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($length);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($username);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($dispname);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->number);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->client);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->type);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->dialline_id);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->statuscode);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->status);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->substatus);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit($aline->resultCode);
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit(round($aline->waitSec/1000,2));
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit(round($aline->callSec/1000,2));
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit(round($talktime/1000,2));
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow($col++,$row)->setValueExplicit(round($aline->dispoSec/1000,2));
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="CallLog.csv"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
$exit = 1;
foreach($alist as $aline)
{
$clientcode="";
if($aline->crm_id>0)
{
$user=$wakka->getPerson($aline->crm_id);
$clientcode=$user["peopledata"]["clientcode"];
}
$tpostdata=json_decode($aline->data,true);
$fulldate=date("Y-m-d H:i:s",strtotime($aline->created_at)-($dashboarduser->timezone*60));
$talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec;
$length=round(($aline->waitSec+$aline->callSec+$talktime+$aline->dispoSec)/1000,2);
if(!isset($userarr[$aline->user_id])&&$aline->user_id>0)$userarr[$aline->user_id]=User::find($aline->user_id);
$dispname="";if(isset($userarr[$aline->user_id]))$dispname=$userarr[$aline->user_id]->dispname();
$username="";if(isset($userarr[$aline->user_id]))$username=$userarr[$aline->user_id]->username;
$recstr='';
if($dashboarduser->moduleACL("Dialer",false,false,true))
{
if(Auth::user()->usertype == "Telecaller")
{
if(isset($tpostdata['recFolder']))$recstr.="<a href=# onclick='getCallRec(".$aline->id.");return false;' title='Size : ".round($aline->recsize/1024,0)." KB'><i class='fa fa-play-circle'></i> &nbsp;</a><span id='recspan_".$aline->id."'</span>";
}
else
{
if(isset($tpostdata['recFolder']))
{
$recstr.="<a href=# onclick='getCallRec(".$aline->id.");return false;' title='Size : ".round($aline->recsize/1024,0)." KB'><i class='fa fa-play-circle'></i> &nbsp;</a>";
$recstr.="<a href='dialer/playrecfile?calllog=$aline->id&out=wav' title='' target='_blank'><i class='fa fa-download'></i> &nbsp;</a><span id='recspan_".$aline->id."'</span>";
}
}
}
$outstr.="<tr><td>".$i."</td>
<td>".$aline->lan."</td>
<td title='$fulldate'>".explode(" ",$fulldate)[1]."</td>
<td>$length</td>
<td>".$username."</td>
<td>".$dispname."</td>
<td>".$aline->number."</td>
<td>".$aline->client."</td>
<td>".$aline->type."</td>
<td>".$aline->dialline_id."</td>
<td>".$aline->statuscode."</td>
<td>".$aline->status."</td>
<td>".$aline->substatus."</td>
<td>".$aline->resultCode."</td>
<td>".round($aline->waitSec/1000,2)."</td>
<td>".round($aline->callSec/1000,2)."</td>
<td>".round($talktime/1000,2)."</td>
<td>".round($aline->dispoSec/1000,2)."</td>
<td>$recstr</td>
</tr>";
if(!empty($_GET['sort']))$i++;else $i--;
if($exit=="1000")break;
$exit++;
}
?>
<div class=innerAll>
<style>#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}</style>
<script>
function showExtraPost(varstr)
{
doAjax("hr?action=LiveUsers","getpostdata="+varstr,"dialoglog");
$('#dialoglog').dialog('open');
return false;
}
$(document).ready(function()
{
if(!$('#dialoglog').hasClass('ui-dialog-content'))
{
$('#dialoglog').dialog({
autoOpen: false,
width: '70%',
buttons: {
"Ok": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
}
waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logtable') },"2000");
$('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
});
</script>
<div style="float:left;width:50%">
Search <input id=filter name="filter" type="text">
Date : <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='callLogReloadFun("");' />
To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logtodate); ?>' onchange='callLogReloadFun("");' />
</div>
<div style="float:left;width:50%">
<button class="pull-right btn btn-sm btn-default" onclick='dlCalllogXls();return false;' title='Download' style='margin-top:-8px'><i class='fa fa-download'></i> Download</button>
</div>
<div style="clear:both"></div>
<hr>
<?php
$categories=array();$avgarr=array();$cntarr=array();
foreach($actionarr as $act=>$actarr)
{
if($actarr['cnt']>sizeof($alist)/150)
{
$categories[]="'$act'";
$avgarr[]=-round($actarr['time']/$actarr['cnt'],2);
$cntarr[]=$actarr['cnt'];
}
}
array_multisort($cntarr,$avgarr,$categories);
$categoriesIn=array();$avgarrIn=array();$cntarrIn=array();
foreach($actionarrIn as $act=>$actarr)
{
if($actarr['cnt']>sizeof($alist)/150)
{
$categoriesIn[]="'$act'";
$avgarrIn[]=-round($actarr['time']/$actarr['cnt'],2);
$cntarrIn[]=$actarr['cnt'];
}
}
array_multisort($cntarrIn,$avgarrIn,$categoriesIn);
?>
<script>
function callLogReloadFun(sortby)
{
var sortstr='';if(sortby!="")sortstr="&sort="+sortby
doAjax('dialer/calllog?logdate='+$("#modfrom").val()+'&logtodate='+$("#modto").val()+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
}
function getCallRec(id)
{
doAjax("dialer/calllog","getCallRec=1&calllog="+id,'recspan_'+id,'rec_ajax','singlefail','GET');
}
function dlCalllogXls()
{
window.open('dialer/calllog?dllogxls=1&logdate='+$("#modfrom").val()+'&logtodate='+$("#modto").val());return false;
}
</script>
<br/>
<div style='clear:both'></div>
<div style='overflow:auto'>
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px'>
<thead>
<tr>
<th>#</th>
<th>LAN</th>
<th>Start</th>
<th onclick='callLogReloadFun("");return false;'>Length</th>
<th>User</th>
<th>Name</th>
<th style='width:120px'>Number</th>
<th>Campaign</th>
<th>Type</th>
<th>Dialline</th>
<th>Statuscode</th>
<th>Status</th>
<th>Substatus</th>
<th>Result Code</th>
<th>WaitSec</th>
<th>CallSec</th>
<th>TalkSec</th>
<th>DispoSec</th>
<th>Recording</th>
</tr>
</thead>
<?php echo $outstr; ?>
</table>
</div>
<?php
function convert($size)
{
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
echo "<br>".convert(memory_get_peak_usage(true)); // 123 kb
?>
<div id=dialoglog></div>
</div>
<style>
#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}
.select2-container-multi{height: 90px; overflow-y: auto;border: 1px solid #efefef;border-radius: 3px !important;}
.select2-container-active{height: 90px; overflow-y: auto;border: 1px solid #5897fb;border-radius: 3px !important;}
.select2-container-multi.select2-container-active.select2-choices{border:none !important; box-shadow: none !important;}
.select2-choices{border:none !important; box-shadow: none !important;}
.select2-drop,.select2-drop-active{border-color: #5897fb;margin-top: -9px;}
</style>
<div class=innerAll>
<h4 style="float:left;width:50%;margin:10px 0;"><?php echo e($reportTitle); ?></h4>
<div style="float:right;width:50%" id="download_btn">
<button class="pull-right btn btn-sm btn-default" onclick='dlAgentlogXls();return false;' title='Download'><i class='fa fa-download'></i> Download</button>
</div>
<div style="clear:both"></div>
<hr style="margin-bottom: 5px;">
<div>
Search <input id=filter name="filter" type="text" style="border:1px solid #efefef; padding: 2px 10px;">&nbsp;&nbsp;
Date: From <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='statusLogReloadFun("");' />
<select id="modtime" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
<?php
foreach (range(0,23) as $hour) {
$selected = ($hour == $logtime) ? "selected" : "";
echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
}
?></select>
To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logdateto); ?>' onchange='statusLogReloadFun("");' />
<select id="modtimeto" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
<?php
foreach (range(0,23) as $hour) {
$selected = ($hour == $logtimeto) ? "selected" : "";
echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
}
?></select>&nbsp;&nbsp;
<button class="pull-right btn btn-sm btn-default" onclick='$("#advance").toggle();' title='Advance Search'><i class='fa fa-search'></i> Advance Search</button>
<div style="clear:both"></div>
<div style="margin-top: 5px; display:<?php echo e($displayAdv); ?>;" id="advance">
<div style="width: 25%;" class="pull-left">
Campaign<br />
<select id="campaignbox" multiple="multiple" style="width:96%" class=select2multi>
<?php foreach($clientlist as $c)
{ $s="";
if(in_array($c, $campaign))$s='selected';
echo "<option value='$c' $s>$c</option>";
}?>
</select>
</div>
<div style="width: 25%;" class="pull-left">
State<br />
<select id="statebox" multiple="multiple" style="width:96%" class=select2multi>
<?php foreach($statelist as $c)
{ $s="";
if(in_array($c, $state))$s='selected';
echo "<option value='$c' $s>$c</option>";
} ?>
</select>
</div>
<div style="width: 25%;" class="pull-left">
Product<br />
<select id="productbox" multiple="multiple" style="width:96%" class=select2multi>
<?php foreach($productlist as $c)
{ $s="";
if(in_array($c, $product))$s='selected';
echo "<option value='$c' $s>$c</option>";
}?>
</select>
</div>
<div style="width: 25%;" class="pull-left">
Bucket<br />
<select id="bucketbox" multiple="multiple" style="width:96%" class=select2multi>
<?php foreach($bucketlist as $c)
{ $s="";
if(in_array($c, $bucket))$s='selected';
echo "<option value='$c' $s>$c</option>";
} ?>
</select>
</div>
<div style="margin-top: 5px;" class="pull-left">
<button class="pull-right btn btn-sm btn-default" onclick='statusLogReloadFun("");' title='Search'><i class='fa fa-search'></i> Search</button>
</div>
</div>
</div>
<div style="clear:both"></div>
<hr style="margin:5px;">
<script>
$(document).ready(function() {
waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logtable') },"2000");
$('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
});
function dataString()
{
var campaignStr = '';
$('#campaignbox :selected') .each(function(i, sel){
if(campaignStr != '') campaignStr = campaignStr + '||' + $(sel).val();
else campaignStr = $(sel).val();
});
var stateStr = '';
$('#statebox :selected') .each(function(i, sel){
if(stateStr != '') stateStr = stateStr + '||' + $(sel).val();
else stateStr = $(sel).val();
});
var productStr = '';
$('#productbox :selected') .each(function(i, sel){
if(productStr != '') productStr = productStr + '||' + $(sel).val();
else productStr = $(sel).val();
});
var bucketStr = '';
$('#bucketbox :selected') .each(function(i, sel){
if(bucketStr != '') bucketStr = bucketStr + '||' + $(sel).val();
else bucketStr = $(sel).val();
});
return 'logdate='+$("#modfrom").val()+'&logtime='+$("#modtime").val()+'&logdateto='+$("#modto").val()+'&logtimeto='+$("#modtimeto").val()+'&campaign='+campaignStr+'&state='+stateStr+'&product='+productStr+'&bucket='+bucketStr;
}
function statusLogReloadFun(sortby)
{
var sortstr='';if(sortby!="")sortstr="&sort="+sortby
var searchStr = dataString();
doAjax('dialer/<?php echo e($returnblade); ?>?'+searchStr+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
}
function dlAgentlogXls()
{
var searchStr = dataString();
window.open('dialer/<?php echo e($returnblade); ?>?dllogxls=1&'+searchStr);
return false;
}
function breakupXls(report,userId,column)
{
var searchStr = dataString();
window.open('dialer/breakupxls?report='+report+'&userId='+userId+'&column='+column+'&'+searchStr);
return false;
}
function displayMode(mode) {
if(mode == 'percent') {
$(".summation").hide();
$(".percent").show();
}
else {
$(".percent").hide();
$(".summation").show();
}
}
</script>
\ No newline at end of file
<?php
ini_set("precision", 15);
include_once app_path() . '/lib/phpexcel/PHPExcel.php';
if (isset($format) && $format == 'dataUpload') {
if (isset($format) && $format == 'dataUpload') {
$dataColumns = ['username' => 'Username', 'phone' => 'Phone', 'sessiontype' => 'webrtc/mobile',];
$PHPExcelObj = new PHPExcel();
$head = 0;
foreach ($dataColumns as $key => $value) {
$colstr = PHPExcel_Cell::stringFromColumnIndex($head);
$PHPExcelObj->getActiveSheet()->setCellValue($colstr . "1", $key);
$PHPExcelObj->getActiveSheet()->setCellValue($colstr . "2", $value);
$head++;
}
$objWriter = PHPExcel_IOFactory::createWriter($PHPExcelObj, 'Excel5');
$objWriter->save('php://output');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="DataUploadFormat.xls"');
header('Cache-Control: max-age=0');
return;
}
} else if ($_SERVER["REQUEST_METHOD"] == "POST") {
$errorMsg = "";
$successMsg = "";
$successCount = 0;
if ($_FILES['file']['tmp_name']) {
if ($_FILES['file']['type'] == "application/vnd.ms-excel") {
$fileUploadLimit = 52428800; // files size is in bytes
if ($_FILES['file']['size'] < $fileUploadLimit) {
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['file']['tmp_name']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestColumn = PHPExcel_Cell::columnIndexFromString($objPHPExcel->getActiveSheet()->getHighestColumn());
$highestrow = $objPHPExcel->getActiveSheet()->getHighestRow();
$excelarray = [];
$keys = [];
$listId = time();
for ($i = 1; $i <= $highestrow; $i++) {
$excelarray[$i] = [];
for ($head = 0; $head < $highestColumn; $head++) {
if ($i == 1) {
$keys[$head] = trim($objWorksheet->getCellByColumnAndRow($head, $i)->getValue());
} else {
$excelarray[$i][$keys[$head]] = trim($objWorksheet->getCellByColumnAndRow($head, $i)->getValue());
}
}
}
for ($i = 3; $i <= $highestrow; $i++) {
$excelarray[$i]['sessiontype'] = ($excelarray[$i]['sessiontype'] == 'webrtc' ? 0 : 1);
// print_r($excelarray[$i]);die;
DB::table('users')->where('username', $excelarray[$i]['username'])->update($excelarray[$i]);
// die;
$successMsg .= $excelarray[$i]["username"] . ",";
$successCount++;
}
} else {
$errorMsg .= "File size too large, Please check file size should be less then " . ($fileUploadLimit / (1024 * 1024)) . "mb.";
}
} else {
$errorMsg .= "File format not valid, Please attach Excel file (.xls) and try upload again.";
}
@unlink($_FILES['file']);
} else {
$errorMsg .= "File not found, Please attach file and try upload again.";
}
$success = "Data Uploaded ($successCount): " . $successMsg;
$errFlag = 'success';
if (isset($successMsg) && $successMsg != "") {
$msg = $success;
}
if (isset($errorMsg) && $errorMsg != "") {
$errFlag = 'failure';
$msg = $errorMsg;
}
echo json_encode(['msg' => $msg, 'status' => $errFlag]);
?>
<?php
die;
}
?>
<div class="row">
<div class="col-sm-12">
<div class="panel-group" role="tablist" aria-multiselectable="true">
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingOne" role="button">
<strong><i class="fa fa-upload"></i> Data Upload</strong>
</div>
<div role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<div class="tab_generic">
<!-- <p><span style="color:#f00;"><strong>Instruction</strong></span> (Works only if you have 'Write access" to the records) Please create an Excel-2003 format file with header as field-keys and rows containing record data. Extream Care is should be taken during bulk upload as previous values will be overwritten and lost.</p> -->
<hr style="margin-bottom: 10px;" />
<div class="row">
<div class="col-sm-3">
<p><strong>Get Format</strong></p>
<button type="submit" class="btn btn-success" onclick="getDataFormat();return false;"><i class="fa fa-download"></i> Get Format</button>
</div>
<div class="col-sm-9">
<p><strong>Upload File</strong></p>
<form method="POST" enctype="multipart/form-data" target="resultArea" action="import_excel" class="form-inline" id="upload_form">
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<div class="form-group">
<input type="file" class="form-control" name="file" required="required" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-success"><i class="fa fa-upload"></i> Upload</button>
<p>
<iframe name=resultArea id="resultArea" style='width:0px;height:0px;display:none'></iframe>
</p>
</div>
</form>
<div id=ebulkuploadresult></div>
<div id=loadImg></div>
<div id=showsuccessmsg></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function getDataFormat() {
window.open('getImportExcelFormat');
return false;
}
</script>
<script>
$(document).ready(function() {
// $('#instruction').popover({ title: "<b>Note</b>", content: '(Works only if you have "<b>Write access</b>" to the records)<br>Please create an <b>Excel 2007-2013</b> format file with header as field-keys and rows containing record data.<br><span style="color: #fb6e52;">Extream Care is should be taken during bulk upload as previous values will be overwritten and lost</span>', html: true, placement: "right", trigger: 'hover' });
// $('.reason').popover({ content: 'Click To Download Rejected Reasons', placement: "left", trigger: 'hover' });
$('#upload_form').on('submit', function(event) {
event.preventDefault();
$.ajax({
url: "import_excel",
method: "POST",
data: new FormData(this),
// dataType: 'JSON',
contentType: false,
cache: false,
processData: false,
beforeSend: function() {
$("#loadImg").prepend("<img src='assets/images/loading.gif' class='doajax_spinner' style='position:fixed;left:50%;top:50%;margin-left:-32px;margin-top:-32px;border:0;z-index:5000' width=64px height=64px border=0>");
},
success: function(data) {
data = $.parseJSON(data);
if (data.status == 'failure') {
simpleNotification('error', 'topRight', data.msg);
} else {
simpleNotification('success', 'topRight', data.msg);
}
$("#loadImg").html("");
document.getElementById("upload_form").reset();
},
})
});
$('#fileSummaryTable').DataTable({
"paging": false,
"info": false,
"searching": false
});
});
</script>
\ No newline at end of file
<div id="content">
<div class="layout-app" style="visibility: visible; display: block;">
<div class="row">
<div class="col-sm-12">
<div class="col-separator col-separator-first box col-unscrollable">
<div class="tab_generic" style="padding: 10px;">
<h4>Settings</h4>
<hr style="margin-bottom: 10px;">
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#settingThemeArea" aria-controls="settingThemeArea" role="tab" data-toggle="tab">Themes</a>
</li>
<?php if(Auth::user()->username == 'admin'): ?>
<li role="presentation">
<a href="#settingSeatCount" aria-controls="settingSeatCount" role="tab" data-toggle="tab">Seat Count</a>
</li>
<?php endif; ?>
<!-- <li role="presentation">
<a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a>
</li>
<li role="presentation">
<a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a>
</li>
<li role="presentation">
<a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a>
</li> -->
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="settingThemeArea">
<?php echo $__env->make('layout.module.setting.theme', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
</div>
<?php if(Auth::user()->username == 'admin'): ?>
<div role="tabpanel" class="tab-pane active" id="settingSeatCount">
<?php echo $__env->make('layout.module.setting.seatCount', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
</div>
<?php endif; ?>
<!-- <div role="tabpanel" class="tab-pane" id="profile">
</div>
<div role="tabpanel" class="tab-pane" id="messages">
</div>
<div role="tabpanel" class="tab-pane" id="settings">
</div> -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php
use App\Models\CRMCall;
use App\Models\CRMCallArchive;
use App\Models\User;
use App\Models\UserLog;
use App\Jobs\KHRMSLib;
$wakka = new KHRMSLib();
$dashboarduser=Auth::user();
$timeoffset = $dashboarduser->timezone; //-330; //$dashboarduser->timezone;
$timeoffset = $timeoffset*60;
$logtime =(isset($_GET['logtime'])) ? $_GET['logtime'] :9;
$logtimeto =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20;
$logdate =(isset($_GET['logdate'])) ? strtotime($_GET['logdate']." ".$logtime.":00:00")
: strtotime(date("Y-m-d")." 09:00:00");
$logdateto =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00")
: strtotime(date("Y-m-d")." 20:00:00");
$campaign =(isset($_GET['campaign'])) ? $_GET['campaign'] : "All";
$alist=CRMCallArchive::where('user_id','!=',0)->where('created_at','>=',date("Y-m-d H:i:s",$logdate+$timeoffset))->where('created_at','<=',date("Y-m-d H:i:s",$logdateto+$timeoffset));
$alist->orderBy('user_id', 'ASC')->orderBy('ts_Close', 'ASC');
$userlog=UserLog::where('created_at','>=',date("Y-m-d H:i:s",$logdate+$timeoffset))->where('created_at','<=',date("Y-m-d H:i:s",$logdateto+$timeoffset));
if($campaign != 'All') $alist->where('client','=',$campaign);
$period = date_range($_GET['logdate'],$_GET['logdateto']);
$alistmain=array();
$secreportarray=array();
$userarr=array();
$allusers = DB::table('users as u1')->leftjoin('users AS u2', 'u2.username', '=', 'u1.supervisor')
->select('u1.id','u1.username','u1.fullname AS telecaller', 'u2.fullname AS sepervisor')
->where('u1.status','=','Active');
$roclientstr=array();$didlinesstr=array();
if($dashboarduser->exten!="")$didlinesstr[]=$dashboarduser->exten;
$oclientlst=$wakka->clientsReadAccess(); sort($oclientlst); $oclientlst[0] = 'All';
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
$roclientstr[]="$tclnt";
$mastersdata=$wakka->getCompanyMaster($tclnt);
if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
}
$breaks=array("Paused","AgentBriefing","TeamMeeting","QualityFeedback","LunchBreak","TeaBreak","UtilityBreak","FloorAnnouncements","DownTime");
$reporthead=array_merge(array("#","Telecaller","TelecallerID","Supervisor","Signin","Signout","Count","Duration","Total","Preview","Wait","Call","Talk","Dispo"),$breaks);
$reportarray=array();
$i=1;
if($dashboarduser->usertype != 'Admin')
{
$uidlist=array($dashboarduser->id);
$allusers=$allusers->where(function ($query) use($dashboarduser) {
$query->where('u1.supervisor','=',$dashboarduser->username)
->orWhere('u1.lteam2','=',$dashboarduser->username)
->orWhere('u1.lteam','=',$dashboarduser->username);
})->get();
foreach($allusers as $tuser)
{
$uidlist[]=$tuser->id;
$reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor);
$secreportarray[$user->id];
}
$reportarray[$dashboarduser->id]=array("#"=>$i++,"Telecaller"=>$dashboarduser->fullname,"TelecallerID"=>$dashboarduser->username,"Supervisor"=>$dashboarduser->supervisor);
$alist=$alist->whereIn('user_id',$uidlist);
/*$alist=$alist->where(function ($query) use($roclientstr,$uidlist,$didlinesstr){
$query->orWhereIn('client',$roclientstr)
->orWhereIn('did',$didlinesstr);
});*/
$userlog=$userlog->whereIn('user_id',$uidlist);
}else{
$allusers=$allusers->get();
foreach($allusers as $tuser)
{
$secreportarray[$user->id];
$reportarray[$tuser->id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor);
}
}
if(Input::has("dllogxls"))
{
foreach($allusers as $tuser)
{
foreach ($period as $per) {
$alistmain=CRMCallArchive::where('user_id','=',$tuser->id)->where('created_at','>=',date('Y-m-d H:i:s',(strtotime($per." ".$logtime.":00:00")+$timeoffset)))->where('created_at','<=',date('Y-m-d H:i:s',(strtotime($per." ".$logtimeto.":00:00")+$timeoffset)));
// $alistmain=CRMCallArchive::where('user_id','=',$tuser->id)->where(DB::raw('DATE(created_at)'),'=',$per);
$alistmain->orderBy('user_id', 'ASC')->orderBy('ts_Close', 'ASC');
if($campaign != 'All') $alistmain->where('client','=',$campaign);
$alistmain=$alistmain->get();
foreach ($alistmain as $alistm) {
if($prev_user != $alistm->user_id || $prev_close <= $alistm->ts_Wait)
{
$talktime1=$alistm->talkSec+$alistm->recstartSec+$alistm->recendSec;
$totaltime1=$alistm->callSec+$talktime1+$alistm->dispoSec;
$secreportarray[$tuser->id][$per]["oncall"]+=$totaltime1/1000;
if($alistm->type == 'Progressive')
{
$secreportarray[$tuser->id][$per]["Preview"]+=$alistm->waitSec/1000;
}
if($alistm->type == 'Auto')
{
$secreportarray[$tuser->id][$per]["Pred_wait"]+=$alistm->waitSec/1000;
}
$secreportarray[$tuser->id][$per]["Call"]+=$alistm->callSec/1000;
$secreportarray[$tuser->id][$per]["Talk"]+=$talktime1/1000;
$secreportarray[$tuser->id][$per]["Dispo"]+=$alistm->dispoSec/1000;
}
$secreportarray[$tuser->id][$per]["Count"]++;
$prev_close = $alistm->ts_Close;//-ts_Wait
$prev_user = $alistm->user_id;//-ts_Wait
}
$usergroup=UserLog::where('user_id','=',$tuser->id)->where('created_at','>=',date('Y-m-d H:i:s',(strtotime($per." ".$logtime.":00:00")+$timeoffset)))->where('created_at','<=',date('Y-m-d H:i:s',(strtotime($per." ".$logtimeto.":00:00")+$timeoffset)));
// $usergroup=UserLog::where('user_id','=',$tuser->id)->where(DB::raw('DATE(created_at)'),'=',$per);
$usergroup=$usergroup->get();
$userLogingrp=array();
foreach ($usergroup as $ugroup) {
$data1=json_decode($ugroup->data,true);
$sdts =strtotime($ugroup->startdate." ".$logtimeto.":00:00")+$timeoffset;
$data = array();
foreach ($data1 as $datavalue) {
$dts = round(($datavalue['ts'])/1000);
if($sdts > $dts){
array_push($data, $datavalue);
}
}
usort($data, "cmp");
$lastSip = end($data);
if(!empty($data)){
$starttime = strtotime($ugroup->startdate.' '.$ugroup->starttime);
$endtime = round($lastSip['ts']/1000);
$userLogingrp[$ugroup->user_id]['duration'] += ($endtime-$starttime);
$userLogingrp[$ugroup->user_id]['start'][] = $starttime;
$userLogingrp[$ugroup->user_id]['end'][] = $endtime;
$prets=strtotime($ugroup->startdate." ".$ugroup->starttime)*1000;
$previous="Paused-Paused";
foreach($data as $sdata)
{
$pts=$sdata['ts'];
if(isset($sdata['states']))
{
foreach($sdata['states'] as $ts=>$states)
{
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) {
$previous = 'Paused';
}
$secreportarray[$ugroup->user_id][$per][$previous]+=round($ts-$prets,2)/1000;
//echo $previous . " == " . $reportarray[$ulog->user_id][$previous] . " == " . $pts . '-' . $prets . ':::' . round($pts-$prets,2)/1000 . "<br />";
$prets=$ts;
$previous=$states[0].'-'.$states[1];
}
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
$secreportarray[$ugroup->user_id][$per][$previous]+=round($pts-$prets,2)/1000;
$prets=$pts;
}
}
}
}
if(count($userLogingrp)) foreach ($userLogingrp as $userid => $value)
{
$break_time=0;
foreach ($breaks as $break) {
$break_time+=$secreportarray[$userid][$per][$break];
}
$secreportarray[$userid][$per]["Signin"]=date("Y-m-d H:i:s", min($value['start'])-$timeoffset);
$secreportarray[$userid][$per]["Signout"]=date("Y-m-d H:i:s", max($value['end'])-$timeoffset);
$secreportarray[$userid][$per]["Duration"]=$value['duration'];
$secreportarray[$userid][$per]["Total"]=$value['duration']-$break_time;
$secreportarray[$userid][$per]["Wait"]=$secreportarray[$userid][$per]["Pred_wait"];
}
}
foreach ($secreportarray as $secreportarr => $value) {
$reportarray[$tuser->id]["report"] = $value;
}
$secreportarray=array();
}
}
$alist=$alist->get();
$userlog=$userlog->get();
$prev_close = 0;
foreach($alist as $aline)
{
if($prev_user != $aline->user_id || $prev_close <= $aline->ts_Wait)
{
$userid=$aline->user_id;
$talktime=$aline->talkSec+$aline->recstartSec+$aline->recendSec;
$totaltime=$aline->callSec+$talktime+$aline->dispoSec;
$reportarray[$userid]["oncall"]+=$totaltime/1000;
if($aline->type == 'Progressive')
{
$reportarray[$userid]["Preview"]+=$aline->waitSec/1000;
}
if($aline->type == 'Auto')
{
$reportarray[$userid]["Pred_wait"]+=$aline->waitSec/1000;
}
$reportarray[$userid]["Call"]+=$aline->callSec/1000;
$reportarray[$userid]["Talk"]+=$talktime/1000;
$reportarray[$userid]["Dispo"]+=$aline->dispoSec/1000;
}
$reportarray[$userid]["Count"]++;
$prev_close = $aline->ts_Close;//-ts_Wait
$prev_user = $aline->user_id;//-ts_Wait
}
function cmp($a, $b) {
return $a["ts"] - $b["ts"];
}
$userLogin=array();
foreach($userlog as $ulog)
{
$data1=json_decode($ulog->data,true);
$sdts =$logdateto+$timeoffset;
$data = array();
foreach ($data1 as $datavalue) {
$dts = round(($datavalue['ts'])/1000);
if($sdts > $dts){
array_push($data, $datavalue);
}
}
usort($data, "cmp");
if(!empty($data)){
$lastSip = end($data);
$starttime = strtotime($ulog->startdate.' '.$ulog->starttime);
$endtime = round($lastSip['ts']/1000);
$userLogin[$ulog->user_id]['duration'] += ($endtime-$starttime);
$userLogin[$ulog->user_id]['start'][] = $starttime;
$userLogin[$ulog->user_id]['end'][] = $endtime;
$prets=strtotime($ulog->startdate." ".$ulog->starttime)*1000;
$previous="Paused-Paused";
foreach($data as $sdata)
{
$pts=$sdata['ts'];
if(isset($sdata['states']))
{
foreach($sdata['states'] as $ts=>$states)
{
//if($ulog->user_id=="55"){print_r($previous);echo "<br>";}
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) {
$previous = 'Paused';
}
$reportarray[$ulog->user_id][$previous]+=round($ts-$prets,2)/1000;
//echo $previous . " == " . $reportarray[$ulog->user_id][$previous] . " == " . $pts . '-' . $prets . ':::' . round($pts-$prets,2)/1000 . "<br />";
$prets=$ts;
$previous=$states[0].'-'.$states[1];
}
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
$reportarray[$ulog->user_id][$previous]+=round($pts-$prets,2)/1000;
$prets=$pts;
}
}
}
}
if(count($userLogin)) foreach ($userLogin as $userid => $value)
{
$break_time=0;
foreach ($breaks as $break) {
$break_time+=$reportarray[$userid][$break];
}
$reportarray[$userid]["Signin"]=date("Y-m-d H:i:s", min($value['start'])-$timeoffset);
$reportarray[$userid]["Signout"]=date("Y-m-d H:i:s", max($value['end'])-$timeoffset);
$reportarray[$userid]["Duration"]=$value['duration'];
$reportarray[$userid]["Total"]=$value['duration']-$break_time;
$reportarray[$userid]["Wait"]=$reportarray[$userid]["Pred_wait"];
}
$highestColumn = sizeof($reporthead);
if(count($reportarray)) {
$outhead="<tr>";$outstr="";
for ($head = 0; $head < $highestColumn; $head++){
if($reporthead[$head] == '#') {
$mode_str = "<a onclick='displayMode(".'"summation"'.");return false;' href='#'><i class='fa fa-plus-square-o'></i></a> / <a onclick='displayMode(".'"percent"'.");return false;' href='#'>%</a>";
$outhead.="<td>".$mode_str."</td>";
}
else {
$outhead.="<td>".$reporthead[$head]."</td>";
}
}
$outhead.="</tr>";
$utotalarr = array("Telecaller"=>'Total');
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
if($head < 6) {
$data_str = $uarr[$reporthead[$head]];
}
elseif($head < 7) {
$data_str = $uarr[$reporthead[$head]];
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
else {
$data_str = secToDuration(round($uarr[$reporthead[$head]]));
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
// $outstr.="<td>".$data_str."</td>";
$outstr.="<td style='background-color:#fff'>".$data_str."</td>";
}
$outstr.="</tr>";
if($uarr["report"]){
foreach ($uarr["report"] as $repo=>$repovalue) {
$outstr.="<tr>";
for ($head=0; $head < $highestColumn ; $head++) {
if($head < 4){
$data_str = "";
}
elseif($head < 6){
$data_str = $repovalue[$reporthead[$head]];
}
elseif($head < 7) {
$data_str = $repovalue[$reporthead[$head]];
// $utotalarr[$reporthead[$head]] += $repovalue[$reporthead[$head]];
}
else {
$data_str = secToDuration(round($repovalue[$reporthead[$head]]));
// $utotalarr[$reporthead[$head]] += $repovalue[$reporthead[$head]];
}
$outstr.="<td style='background-color:#efefef'>".$data_str."</td>";
}
$outstr.="</tr>";
}
}
}
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++)
{
if($head < 7) {
$data_str = $utotalarr[$reporthead[$head]];
}
else {
$data_str = secToDuration($utotalarr[$reporthead[$head]]);
}
$outstr.="<td>".$data_str."</td>";
}
$outstr.="</tr>";
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 2;
$highestColumn = sizeof($reporthead);
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]);
}
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$col = 0;
for ($head = 0; $head < $highestColumn; $head++){
$excelval = ($head < 7) ? $uarr[$reporthead[$head]] : secToDuration(round($uarr[$reporthead[$head]]));
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval);
}
if($uarr["report"]){
foreach($uarr["report"] as $repo=>$repovalue)
{
$row = $baseRow++;
$col = 0;
for ($head = 0; $head < $highestColumn; $head++){
if($head < 4){
$excelval = "";
}
elseif($head < 7){
$excelval = $repovalue[$reporthead[$head]];
}
else{
$excelval = secToDuration(round($repovalue[$reporthead[$head]]));
}
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval)->getStyle($colstr.$row)->applyFromArray(
array(
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array('rgb' => 'efefef')
)
)
);
}
}
}
}
$row++;
for ($head = 0; $head < $highestColumn; $head++){
$excelval = ($head < 7) ? $utotalarr[$reporthead[$head]] : secToDuration(round($utotalarr[$reporthead[$head]]));
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $excelval);
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="AgentTime.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
function secToDuration($sec) {
return sprintf("%02d%s%02d%s%02d", floor($sec/3600), ':', ($sec/60)%60, ':', $sec%60);
}
function date_range($first, $last, $step = '+1 day', $output_format = 'Y-m-d' ) {
$dates = array();
$current = strtotime($first);
$last = strtotime($last);
while( $current <= $last ) {
$dates[] = date($output_format, $current);
$current = strtotime($step, $current);
}
return $dates;
}
?>
<style>#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}</style>
<div class=innerAll>
<h4 style="float:left;width:50%;margin:10px 0;">Agent Time Report</h4>
<div style="float:right;width:50%">
<button class='pull-right btn btn-sm btn-default' onclick='dlAgentlogXls();return false;' title='Download'><i class='fa fa-download'></i> Download</button>
</div>
<div style="clear:both"></div>
<hr style="margin-bottom: 5px;">
<div>
Search <input id=filter name="filter" type="text" style="border:1px solid #efefef; padding: 2px 10px;">&nbsp;&nbsp;
Date: From <input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d",$logdate); ?>' onchange='statusLogReloadFun("");' />
<select id="modtime" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
<?php
foreach (range(0,23) as $hour) {
$selected = ($hour == $logtime) ? "selected" : "";
echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
}
?></select>
To <input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d",$logdateto); ?>' onchange='statusLogReloadFun("");' />
<select id="modtimeto" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
<?php
foreach (range(0,23) as $hour) {
$selected = ($hour == $logtimeto) ? "selected" : "";
echo "<option value='$hour' $selected>".str_pad($hour, 2, "0", STR_PAD_LEFT) . ":00</option>";
}
?></select>&nbsp;&nbsp;
Campaign
<select id="campaign" style="border:1px solid #efefef;" onchange='statusLogReloadFun("");'>
<?php foreach($oclientlst as $c){$s="";if($c==$campaign)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
</select>
</div>
<div style="clear:both"></div>
<hr style="margin:5px;">
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
<div id=dialoglog></div>
</div>
<script>
$(document).ready(function() {
if(!$('#dialoglog').hasClass('ui-dialog-content'))
{
$('#dialoglog').dialog({
autoOpen: false,
width: '70%',
buttons: {
"Ok": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
}
waitKeyUpRun("filter",function() { filter2(document.getElementById('filter'), 'logtable') },"2000");
$('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
});
function dataString()
{
return 'logdate='+$("#modfrom").val()+'&logtime='+$("#modtime").val()+'&logdateto='+$("#modto").val()+'&logtimeto='+$("#modtimeto").val()+'&campaign='+$("#campaign").val();
}
function statusLogReloadFun(sortby)
{
var sortstr='';if(sortby!="")sortstr="&sort="+sortby
var searchStr = dataString();
doAjax('dialer/agenttime?'+searchStr+sortstr,'','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
}
function dlAgentlogXls()
{
var searchStr = dataString();
window.open('dialer/agenttime?dllogxls=1&'+searchStr);
return false;
}
function reportExp($id)
{
doAjax('dialer/repExp?isrptsubmit=0&start_date='+$("#modfrom").val()+'&end_date='+encodeURIComponent($("#modto").val())+'&userId='+$id+'&campaign='+encodeURIComponent($("#campaign").val())+'&modtime='+encodeURIComponent($("#modtime").val())+'&modtimeto='+encodeURIComponent($("#modtimeto").val()),'','repExp','ajax_dialer_reports','singlethis','GET');
}
</script>
<div class="layout-app">
<div class="row error">
<div class="col-md-4 col-md-offset-1 pull-left">
<div class="center">
<img src="assets/images/error-icon-bucket.png " class="img-responsive error-icon"/>
</div>
</div>
<div class="col-md-5 content pull-left" style='margin-top:10%'>
<h1 class="strong">Oops!</h1>
<h4 class="innerB">No Access!!</h4>
<div class="well">You dont have access to view this page. (<?php echo $value; ?>).</div>
</div>
</div>
</div>
<style>
.heading-buttons h4{
line-height:20px;
}
</style>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-12">
<!-- col-separator.box -->
<div class="col-separator col-separator-first col-unscrollable box">
<!-- col-table -->
<div class="col-table" id=authorworkspacediv>
<!-- Search Bar -->
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for Users..." id=adminu_Search>
<span class="input-group-btn">
<button class="btn btn-primary rounded-none" type="button" onclick="adminSearchUser();return false"><i class="fa fa-search"></i></button>
</span>
</div>
<div class="col-separator-h"></div>
<!-- End Search Bar -->
<div class="col-table-row">
<div class="col-app col-unscrollable">
<div class="col-app">
<div class="row-app">
<div class="col-md-6">
<div class="col-separator">
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick="doAjax('user/create','','userformdiv','ajax_users_create','singlethis','GET');return false"><i class="fa fa-plus fa-fw"></i> New User</a>
<h4 class="innerTB margin-bottom-none">Users</h4>
<div class="clearfix"></div>
</div>
<!-- End Category Heading -->
<?php echo $userlist->render(); ?>
<?php foreach ($userlist as $tuser)
{
$tphoto=$tuser->fetchphotothumb();
?>
<!-- Category Listing -->
<div class="row innerAll half border-bottom bg-gray-hover">
<div class="col-sm-6 col-xs-8">
<ul class="media-list margin-none">
<li class="media">
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span>
</a>
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>','','userformdiv','ajax_users_delete','singlethis','DELETE');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-trash-o"></i></span>
</a>
<div class="media-body">
<div class="innerAll">
<h5 class=""><a href="#" class="media-heading text-primary">Modules</a></h5>
<div class="clearfix"></div>
<small class="margin-none label label-inverse">Social</small>
<small class="margin-none label label-inverse">HR</small>
<small class="margin-none label label-inverse">Reports</small>
<small class="margin-none label label-inverse">CRM</small>
</div>
</div>
</li>
</ul>
</div>
<div class="col-sm-3 col-xs-4">
<div class="text-center">
<p class="strong">Tasks</p>
<span class="badge badge-primary" data-toggle="tooltip" data-title="Published" data-placement="left" data-container="body">0</span>
<span class="badge badge-primary badge-stroke" data-toggle="tooltip" data-title="Subscribed" data-placement="right" data-container="body">0</span>
</div>
</div>
<div class="col-sm-3 col-xs-hidden">
<div class="innerAll">
<div class="media">
<a href="#" class="pull-left">
<img src="<?php echo $tphoto; ?>" class="media-object" width=35px />
</a>
<div class="media-body">
<a href="#" class="text-small" title='<?php echo $tuser->id; ?> - <?php echo $tuser->created_at; ?>' onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;"><?php echo $tuser->dispname(); ?></a>
<div class="clearfix"></div>
<small>
<?php if($tuser->status=="Active"): ?>
<span class="label label-success"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Disabled"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Unverified"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Blocked"): ?>
<span class="label label-important"><?php echo $tuser->status; ?></span>
<?php endif; ?>
</small>
</div>
</div>
</div>
</div>
</div>
<!-- // END Category Listing -->
<?php } ?>
<?php echo $userlist->render(); ?>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-6">
<!-- col-separator -->
<div class="col-separator col-separator-last" id=userformdiv>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
</div>
<!-- // END row-app -->
</div>
<script>
$(".pagination a").click(function(e){
e.preventDefault();
var url=$(this).attr("href");
var res = url.split("page=");
menuAction("user?page="+res[1]);
return false;
});
function adminSearchUser()
{
doAjax('user?search='+$('#adminu_Search').val(),'','content','ajax_users_create','singlethis','GET');
}
</script>
\ No newline at end of file
<?php
$data=Auth::user()->dataval('personal');
if(empty($data['location']))$data['location']="";
?>
<div class="bg-white">
<div class="profile-avatar">
<div class="text-center">
<img src="<?php echo $myphoto; ?>" width="380" class="img-responsive thumb" onmouseover="photobuttonselect(0);" onmouseout="photobuttonselect(1);" />
<div class="btn-avatar btn-group btn-group-xs" id=mypotochangebutton style='visibility:hidden' onmouseover="photobuttonselect(0);">
<!--<a href="#" class="btn"><i class="fa fa-pencil"></i> change</a>-->
<form method=post enctype="multipart/form-data" target=fileupload_social id=photoform action=social?stype=photo>
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<div class="fileupload fileupload-new margin-none" data-provides="fileupload">
<span class="btn btn-default btn-file" style='padding:0px 4px 2px 4px;'><i class="fa fa-pencil"></i>
<span class="fileupload-new">change</span><span class="fileupload-exists">Change</span>
<input type="file" class="margin-none" name=photo onchange='simpleNotification("warning","topRight","Uploading photo please wait..");$("#photoform").submit();return false;' id=social_photo />
</span>
<span class="fileupload-preview" style='display:none'></span>
<a href="#" class="close fileupload-exists" data-dismiss="fileupload" style="float: none;display:none">&times;</a>
</div>
</form>
<!-- <a href="#" class="btn"><i class="fa fa-cog"></i></a> -->
</div>
</div>
</div>
<div class="innerAll">
<h4><!--<?php echo $displayname; ?> <span class=pull-right>--><!--<i class="fa fa-flag"></i>-->
<!-- <i class="fa fa-square text-primary" style='font-size:8px'></i>
<i class="fa fa-square text-primary" style='font-size:12px'></i>
<i class="fa fa-square text-primary" style='font-size:16px'></i> <?php echo Auth::user()->getedupoints(); ?>--><!--</span>-->
<!--
<div class="dropdown pull-right dropdown-icons dropdown-icons-xs">
<a data-toggle="dropdown" href="#" class="btn btn-default btn-stroke btn-circle dropdown-toggle"><i class="fa fa-circle text-success"></i></a>
<ul class="dropdown-menu">
<li data-toggle="tooltip" data-title="Online" data-placement="left" data-container="body"><a href="#" onclick='return false;'><i class="fa fa-circle text-success"></i></a></li>
<li data-toggle="tooltip" data-title="Offline" data-placement="left" data-container="body"><a href="#" onclick='return false;'><i class="fa fa-circle text-error"></i></a></li>
</ul>
</div>
-->
</h4>
<!-- <p class="margin-none textCapitialize pull-right"><?php echo Auth::user()->usertype; ?>, <?php echo $data['location']; ?> </p> -->
<div class="clearfix"></div>
</div>
</div>
<iframe name=fileupload_social id=fileupload_social style='height:0px;width:0px;overflow:none;display:none' src='about:blank'></iframe>
<script>
function photobuttonselect(state)
{
if(state==0)
{
$('#mypotochangebutton').css({'visibility':'visible'});
}
if(state==1)
{
$('#mypotochangebutton').css({'visibility':'hidden'});
}
}
</script>
\ No newline at end of file
<?php echo $__env->make('layout.header', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php echo $__env->yieldContent('main_menu'); ?>
<?php echo $__env->yieldContent('top_menu'); ?>
<!-- Main Container Fluid -->
<div class="container-fluid">
<div id='absolutedivcontent' style='z-index:1;position:absolute;display:none'></div>
<div id="content">
<?php echo $__env->yieldContent('main_content'); ?>
</div>
<div class="clearfix"></div>
<div id="footer" class="hidden-print" style='display:none'>
<div class="copy">v<?php echo Config::get('app.app_version'); ?></div>
</div>
<!-- // Footer END -->
</div>
<!-- // Main Container Fluid END -->
<?php echo $__env->make('layout.footer', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php
use App\Jobs\KHRMSLib;
$wakka=new KHRMSLib();
$userdata=$wakka->loadAllDBUsers($tuser->username);
$clientslist=$wakka->GetExBBBUserData($userdata["name"],"clientslist");
$clientsownerlist=$wakka->GetExBBBUserData($userdata["name"],"clientsownerlist");
$roclientsownerlist=$wakka->GetExBBBUserData($userdata["name"],"roclientsownerlist");
$accclientsownerlist=$wakka->GetExBBBUserData($userdata["name"],"accclientsownerlist");
$recclientsownerlist=$wakka->GetExBBBUserData($userdata["name"],"recclientsownerlist");
$bdmclientsownerlist=$wakka->GetExBBBUserData($userdata["name"],"bdmclientsownerlist");
$readotherdata=$wakka->GetExBBBUserData($userdata["name"],"readotherdata");
if(Input::get('feedbacktxt')!='')
{
$feedbacks=$wakka->GetExBBBUserData($tuser->username,"userfeedbacks");
$feedbacks[]=array("datetime"=>date("Y-m-d H:i"),"user"=>$wakka->GetUserName(),"data"=>Input::get('feedbacktxt'));
$wakka->SetExBBBUserData($tuser->username,"userfeedbacks",$feedbacks);
$result=$wakka->createMailQueue("System",array($wakka->GetExBBBUserData($tuser->username,"email")),"Innovation : User Feedback Added","Hi,<br><br>\n\n".$wakka->GetUserName()." has added a new User Feedback for you, You may check the same in your Profile.");
}
$role=$tuser->role();
$data=$tuser->data();
if(empty($data['personal']))$data['personal']=array();
if(empty($data['personal']['fname']))$data['personal']['fname']="";
if(empty($data['personal']['lname']))$data['personal']['lname']="";
?>
<!-- Heading -->
<h5 class="innerAll margin-none bg-primary">
<i class="fa fa-fw fa-pencil"></i> Edit User
<a href="#" class="btn btn-sm btn-inverse pull-right btn-xs" style="margin-top: -5px;" onclick="return false">
<i class="fa fa-user fa-fw"></i>
<?php echo $tuser->dispname(); ?>
</a>
</h5>
<?php
$title=$tuser->dispname();
$url="";
// $desc=substr(strip_tags($tuser->dataval2('personal','aboutme')),0,50);
$imageurl=array(Auth::user()->fetchphotothumb($tuser->id));
$interests=array_unique(array_filter(explode(",",$tuser->dataval2('personal','interestcategories'))));
?>
<div class="media innerAll">
<div class=pull-right>
<button class="pull-right btn btn-primary btn-stroke btn-xs" onclick='dbhashlink("#p-<?php echo $tuser->id; ?>")'><i class="fa fa-arrow-right"></i></button><div style='clear:both;margin-bottom:7px'></div>
<button class="pull-right btn btn-primary btn-xs" onclick='dashboardfollow(<?php echo $tuser->id; ?>)'> Follow </button>
</div>
<img src="<?php echo $imageurl[0]; ?>" alt="" width="35" class="pull-left thumb">
<div class="media-body">
<h5 class="media-heading strong"><?php echo $title; ?></h5>
<ul class="list-unstyled text-faded">
<li><i class="fa fa-gear"></i> <?php echo $tuser->usertype; ?> <?php echo $tuser->dataval2('personal','location'); ?> - <?php echo $tuser->dataval2('personal','country'); ?></li>
<li><?php if(!empty($interests))foreach($interests as $interest){ ?><span class="badge badge-primary"><small><?php echo $interest; ?></small></span><?php } ?></li>
</ul>
</div>
</div>
<div class="col-separator-h box"></div>
<form class="innerAll">
<fieldset>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Username</label>
<div class="col-md-8 controls">
<input class="form-control" id="username" type="text" value="<?php echo $tuser->username; ?>" disabled=disabled />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="password">Password</label>
<div class="col-md-8 controls">
<input class="form-control" id="password" type="password" value="" placeholder=unchanged />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Full Name</label>
<div class="col-md-8 controls">
<input class="form-control" id="fullname" type="text" value="<?php echo $data['personal']['fname']; ?> <?php echo $data['personal']['lname']; ?>" required=required />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-8 controls">
<input class="form-control" id="email" type="email" value="<?php echo $tuser->email; ?>" required=required />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="userstatus">Status</label>
<div class="col-md-8 controls">
<select id="userstatus" required=required class=form-control>
<option value="<?php echo $tuser->status; ?>"><?php echo $tuser->status; ?></option>
<option value="Active">Active</option>
<option value="Disabled">Disabled</option>
<option value="Unverified">Unverified</option>
<option value="Blocked">Blocked</option>
</select>
</div>
</div>
<!-- <div class="control-group">
<label class="col-md-4 control-label" for="organization">Organization</label>
<div class="col-md-8 controls">
<select id="organization" required=required class=form-control>
<option value="<?php echo $tuser->organization; ?>" selected><?php echo $tuser->organization; ?></option>
<?php foreach(Auth::user()->getAccessList("group",true,false,false,true) as $tgrp): ?>
<option value="<?php echo $tgrp; ?>"><?php echo $tgrp; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>-->
<div class="control-group">
<label class="col-md-4 control-label" for="organization">User Type</label>
<div class="col-md-8 controls">
<select id="usertype" required=required class="form-control">
<option value="<?php echo $tuser->usertype; ?>"><?php echo $tuser->usertype; ?></option>
<?php
$roles=\App\Models\Role::where('status','=','Active')->get();
foreach($roles as $trole)echo "<option value='".$trole->rolename."'>".$trole->rolename."</option>";
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="usergroup">Group</label>
<div class="col-md-8 controls">
<select id="usergroup" required=required class=form-control>
<option value="<?php echo $tuser->group; ?>" selected><?php echo $tuser->group; ?></option>
<?php foreach(Auth::user()->getAccessList("group",true,false,false,true) as $tgrp): ?>
<option value="<?php echo $tgrp; ?>"><?php echo $tgrp; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<!-- <div class="control-group">
<label class="col-md-4 control-label" for="usergroup">Chat/Voice Enabled</label>
<div class="col-md-8 controls">
<select id="uservoice" required=required class=form-control>
<option value="<?php echo $data['uservoice']; ?>" selected><?php echo $data['uservoice']; ?></option>
<option value="Active">Active</option>
<option value="InActive">InActive</option>
</select>
</div>
</div>-->
<hr><h2 style='padding-left:10%'>Modules Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="">Read+Write+Admin</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_modules') as $tmod=>$tmodarr)if(strstr(",".$role->modulerwa.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="modulerw">Read+Write</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_modules') as $tmod=>$tmodarr)if(strstr(",".$role->modulerw.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="moduler">Read</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_modules') as $tmod=>$tmodarr)if(strstr(",".$role->moduler.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div><div style='clear:both'></div>
<hr><h2 style='padding-left:10%'>Groups Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprwa">Read+Write+Admin</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_groups') as $tmod)if(strstr(",".$role->grouprwa.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprw">Read+Write</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_groups') as $tmod)if(strstr(",".$role->grouprw.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div><div style='clear:both'></div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Read</label>
<div class="col-md-8 controls">
<?php foreach(Config::get('app.app_groups') as $tmod)if(strstr(",".$role->groupr.",",",$tmod,"))echo $tmod.", "; ?>
</div>
</div>
<div style='clear:both'></div>
<hr style='margin-bottom:20px'>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Edit Client List</label>
<div class="col-md-8 controls">
<select id="clientslist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$clientslist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Owner Client List</label>
<div class="col-md-8 controls">
<select id="clientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$clientsownerlist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Readonly Client List</label>
<div class="col-md-8 controls">
<select id="roclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$roclientsownerlist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Read Other Data</label>
<div class="col-md-8 controls">
<select id="readotherdata" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<option value="Yes" <?php if($readotherdata=='Yes')echo 'selected=selected'; ?> >Yes</option>
<option value="No" <?php if($readotherdata=='No')echo 'selected=selected'; ?> >No</option>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Account Owner</label>
<div class="col-md-8 controls">
<select id="accclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$accclientsownerlist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Recruitment Owner</label>
<div class="col-md-8 controls">
<select id="recclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$recclientsownerlist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">BDM Owner</label>
<div class="col-md-8 controls">
<select id="bdmclientsownerlist" multiple="" data-rel="chosen" style='width:100%' class=select2multi>
<?php
$companyarr=$wakka->LoadAll("select * from hrms_masters where mtype='company'");
foreach($companyarr as $tcompany)
{
$seltxt='';
if(strstr(",".$bdmclientsownerlist.",",",$tcompany[mkey],"))$seltxt='selected="selected"';
echo "<option value='$tcompany[mkey]' $seltxt>$tcompany[mkey]</option>";
}
?>
</select>
</div>
</div>
<div style='clear:both'></div>
<br><hr><br>
<div class="control-group">
<label class="col-md-4 control-label" for="username">L-Team</label>
<div class="col-md-8 controls">
<input class="form-control" id="lteam" type="text" value="<?php echo $tuser->lteam; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">One Down L-Team</label>
<div class="col-md-8 controls">
<input class="form-control" id="lteam2" type="text" value="<?php echo $tuser->lteam2; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Supervisor</label>
<div class="col-md-8 controls">
<input class="form-control" id="supervisor" type="text" value="<?php echo $tuser->supervisor; ?>" />
</div>
</div>
<div style='clear:both'></div>
<br><hr><br>
<?php
if(!isset($data['personal']['doj']))$data['personal']['doj']='';
if(!isset($data['personal']['level']))$data['personal']['level']='';
if(!isset($data['personal']['department']))$data['personal']['department']='';
if(!isset($data['personal']['function']))$data['personal']['function']='';
if(!isset($data['personal']['domainid']))$data['personal']['domainid']='';
if(!isset($data['personal']['entity']))$data['personal']['entity']='';
if(!isset($data['personal']['category']))$data['personal']['category']='';
if(!isset($data['personal']['country']))$data['personal']['country']='';
if(!isset($data['personal']['location']))$data['personal']['location']='';
if(!isset($data['personal']['sublocation']))$data['personal']['sublocation']='';
if(!isset($data['personal']['section']))$data['personal']['section']='';
if(!isset($data['personal']['lob']))$data['personal']['lob']='';
if(!isset($data['personal']['gender']))$data['personal']['gender']='';
if(!isset($data['subscriptioncredits']))$data['subscriptioncredits']='';
?>
<div class="control-group">
<label class="col-md-4 control-label" for="username">DOJ</label>
<div class="col-md-8 controls">
<input class="form-control" id="doj" type="text" value="<?php echo $data['personal']['doj']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Level</label>
<div class="col-md-8 controls">
<input class="form-control" id="level" type="text" value="<?php echo $data['personal']['level']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Department</label>
<div class="col-md-8 controls">
<input class="form-control" id="department" type="text" value="<?php echo $data['personal']['department']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Function</label>
<div class="col-md-8 controls">
<input class="form-control" id="function" type="text" value="<?php echo $data['personal']['function']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Domain ID</label>
<div class="col-md-8 controls">
<input class="form-control" id="domainid" type="text" value="<?php echo $data['personal']['domainid']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Entity</label>
<div class="col-md-8 controls">
<input class="form-control" id="entity" type="text" value="<?php echo $data['personal']['entity']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Category</label>
<div class="col-md-8 controls">
<input class="form-control" id="category" type="text" value="<?php echo $data['personal']['category']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Country</label>
<div class="col-md-8 controls">
<input class="form-control" id="country" type="text" value="<?php echo $data['personal']['country']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Location</label>
<div class="col-md-8 controls">
<input class="form-control" id="location" type="text" value="<?php echo $data['personal']['location']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Sub Location</label>
<div class="col-md-8 controls">
<input class="form-control" id="sublocation" type="text" value="<?php echo $data['personal']['sublocation']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Extension</label>
<div class="col-md-8 controls">
<input class="form-control" id="exten" type="text" value="<?php echo $tuser->exten; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Section</label>
<div class="col-md-8 controls">
<input class="form-control" id="section" type="text" value="<?php echo $data['personal']['section']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">LOB</label>
<div class="col-md-8 controls">
<input class="form-control" id="lob" type="text" value="<?php echo $data['personal']['lob']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Gender</label>
<div class="col-md-8 controls">
<input class="form-control" id="gender" type="text" value="<?php echo $data['personal']['gender']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="username">Credits</label>
<div class="col-md-8 controls">
<input class="form-control" id="subscriptioncredits" type="text" value="<?php echo $data['subscriptioncredits']; ?>" />
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="sessiontype">Login Type</label>
<div class="col-md-8 controls">
<select id="sessiontype" name="sessiontype" data-rel="chosen" style='width:100%' class=select2multi>
<option value='0' <?php echo ($tuser->sessiontype == '0') ? 'selected="selected"' : ''?>>WebRTC</option>
<option value='1' <?php echo ($tuser->sessiontype == '1') ? 'selected="selected"' : ''?>>PSTNWeb</option>
<option value='2' <?php echo ($tuser->sessiontype == '2') ? 'selected="selected"' : ''?>>MAgent Missed Call</option>
<option value='3' <?php echo ($tuser->sessiontype == '3') ? 'selected="selected"' : ''?>>MAgent Outbound</option>
</select>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" onclick='editUserForm();return false;'>Save changes</button>
</div>
</fieldset>
</form>
<div class="col-separator-h box"></div>
<div class=innerAll>
<form method=post enctype="multipart/form-data" target="userfilepost" action="user">
<input type=hidden name=user value='<?php echo $tuser->id; ?>' />
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="action" value="userbusyfile" />
<div class="control-group">
<label class="col-md-4 control-label" for="">Busy Message <span></span></label>
<div class="col-md-8 controls">
<input class="form-control" name="busyfile" type="file" value="" />
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Save File</button>
</div>
</form>
<iframe name=userfilepost id=userfilepost style='height:0px;width:0px;overflow:none;display:none' src='about:blank'></iframe>
</div>
<script>
<?php if(isset($displaymsg)): ?>
simpleNotification("<?php echo $displaymsg['type']; ?>","topRight","<?php echo $displaymsg['text']; ?>");
<?php endif; ?>
function editUserForm()
{
var putdata="csrftoken=<?php echo Session::token(); ?>";
putdata+="&username="+$("#username").val();
putdata+="&password="+$("#password").val();
putdata+="&fullname="+$("#fullname").val();
putdata+="&usertype="+$("#usertype").val();
putdata+="&email="+$("#email").val();
putdata+="&userstatus="+$("#userstatus").val();
// putdata+="&organization="+$("#organization").val();
putdata+="&usergroup="+$("#usergroup").val();
putdata+="&uservoice=";//+$("#uservoice").val();
putdata+="&modulerwa="+$("#modulerwa").val();
putdata+="&modulerw="+$("#modulerw").val();
putdata+="&moduler="+$("#moduler").val();
putdata+="&grouprwa="+$("#grouprwa").val();
putdata+="&grouprw="+$("#grouprw").val();
putdata+="&groupr="+$("#groupr").val();
putdata+="&clientslist="+$("#clientslist").val();
putdata+="&clientsownerlist="+$("#clientsownerlist").val();
putdata+="&roclientsownerlist="+$("#roclientsownerlist").val();
putdata+="&readotherdata="+$("#readotherdata").val();
putdata+="&accclientsownerlist="+$("#accclientsownerlist").val();
putdata+="&recclientsownerlist="+$("#recclientsownerlist").val();
putdata+="&bdmclientsownerlist="+$("#bdmclientsownerlist").val();
putdata+="&feedbacktxt="+$("#feedbacktxt").val();
putdata+="&exten="+$("#exten").val();
putdata+="&lteam="+$("#lteam").val();
putdata+="&lteam2="+$("#lteam2").val();
putdata+="&supervisor="+$("#supervisor").val();
putdata+="&doj="+$("#doj").val();
putdata+="&level="+$("#level").val();
putdata+="&department="+$("#department").val();
putdata+="&function="+$("#function").val();
putdata+="&domainid="+$("#domainid").val();
putdata+="&entity="+$("#entity").val();
putdata+="&category="+$("#category").val();
putdata+="&country="+$("#country").val();
putdata+="&location="+$("#location").val();
putdata+="&sublocation="+$("#sublocation").val();
putdata+="&section="+$("#section").val();
putdata+="&lob="+$("#lob").val();
putdata+="&gender="+$("#gender").val();
putdata+="&subscriptioncredits="+$("#subscriptioncredits").val();
putdata+="&sessiontype="+$("#sessiontype").val();
doAjax('user/<?php echo $tuser->id; ?>',putdata,'userformdiv','ajax_users_update','singlethis','PUT');
}
</script>
<?php echo $__env->make('layout.header', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<!-- col-separator.box -->
<div class="col-separator col-unscrollable box">
<!-- col-table -->
<div class="col-table">
<h4 class="innerAll margin-none border-bottom text-center"><i class="fa fa-lock"></i></h4>
<!-- col-table-row -->
<div class="col-table-row">
<!-- col-app -->
<div class="col-app col-unscrollable">
<!-- col-app -->
<div class="col-app">
<div class="login">
<div class="panel panel-default col-sm-6 col-sm-offset-3">
<div class="panel-body">
<div id='alertdiv'>
<?php
$class="warning";
$type="Idle";
$msg="Application is Idle";
?>
<!-- Alert -->
<div class="alert alert-<?php echo $class; ?>">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong><?php echo $type; ?></strong> <?php echo $msg; ?>
</div>
<!-- // Alert END -->
</div>
<button type="submit" class="btn btn-primary btn-block" onclick='document.location="login";'>Back To Application</button>
</div>
<!-- <div class="col-sm-2 col-sm-4 col-sm-offset-4 text-center">
<a href="signup" class="btn btn-info">Create a new account? <i class="fa fa-pencil"></i> </a>
</div>-->
</div>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app.col-unscrollable -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END row-app -->
</body>
</html>
<div class="layout-app">
<div class="row error">
<div class="col-md-4 col-md-offset-1 pull-left">
<div class="center">
<img src="assets/images/error-icon-bucket.png " class="img-responsive error-icon"/>
</div>
</div>
<div class="col-md-5 content pull-left" style='margin-top:10%'>
<h1 class="strong">Oops!</h1>
<h4 class="innerB">Not Found!!</h4>
<div class="well">The path you are trying to visit does not exist...</div>
</div>
</div>
</div>
<?php $user=Auth::user(); ?>
<style>
.label label-small pull-right{float: right;width: 20px;text-align: center;color: #fff;border-radius: 50%;line-height: 20px;font-size: 10px;font-weight: 900;}
.label label-small pull-right a{color: #fff !important;}
.notify_alert{height:25px;}
.wgt{background: none repeat scroll 0 0 #ffffff;border: 1px solid #f6f7fb;margin: 0 auto 10px;position: relative;}
.wgt-head{background: none repeat scroll 0 0 #f6f7fb;border-bottom: 1px solid #f6f7fb;height: 35px;line-height: 35px;overflow: hidden;padding: 0 10px 0 0;position: relative;}
.wgt .wgt-body{padding: 10px;}
.wgt p{font-size:12px;color:#656d78;}
.wgt label{font-weight:600;color:#5d9cec;}
.wgt a{color: #656d78;}
.wgt a:hover{color:#434a54;}
.list_n{font-size:12px}
.list_n li{padding:3px 0;}
.list_n li a{color: #656d78;}
.list_n li a:hover{color:#434a54;}
.tab_generic{background: none repeat scroll 0 0 #ffffff;border-radius: 5px;margin: 0 0 10px;padding: 10px 5px;position: relative;}
.tab_bar_new{border: 1px solid #EFEFEF;height: 39px;margin: 0 0 10px;overflow: hidden;position: relative;}
.tab_bar_new ul{list-style: none outside none;margin: 0;padding: 0;background:#ed5564;}
.tab_bar_new ul li{border: medium none;height: 39px;padding: 0;display: block;float: left;}
.tab_bar_new ul li a{background: none repeat scroll 0 0 rgba(0, 0, 0, 0);height: 39px;line-height: 39px;display: block;padding: 0 15px;text-decoration: none;color:#fff;}
.tab_bar_new ul li.active{background: none repeat scroll 0 0 #fff;}
.tab_bar_new ul li.active a{color:#ed5564;}
.legend_notify{float: right;font-size: 12px;font-weight: 600;margin-right: 20px;}
.legend_notify a{background-color: #ed5564;color: #fff;border-radius: 20px;padding: 5px 10px;margin-left: 5px;cursor:default;}
.task_numberx a{color:#fff;background:#fff;font-size: 10px;padding: 5px 10px;border-radius: 20px;font-weight:900;}
.task_numberx a:hover{background:#ed5564;color:#f6f7fb;}
.hasDatepicker{width: 20%;}
.progress{height:10px;}
</style>
<div class="layout-app">
<div class="row row-app">
<div class="col-md-12">
<div class="col-separator col-separator-first col-unscrollable box">
<div class="">
<div class="relativeWrap" >
<div class="tab_generic" style='padding:0px;margin:0px;min-height:500px;'>
<?php
$firstdash="";$dashcnt=0;$headerstr="";
$modules=array();$active="active";
foreach(Config::get("app.app_modules") as $mname=>$module)
{
if($user->moduleACL($mname,true,false,false))
{
if($module['dash']!="")
{
$modules[$mname]=$module;
$headerstr.="<li class='$active'><a href='#DashletT-$mname' onclick='dashReload(\"$mname\");' data-toggle='tab'>$module[dash]</a></li>";
$active="";$dashcnt++;if($firstdash=="")$firstdash=$mname;
}
}
}
?>
<div class="tab_bar_new tabsbar-2" style='<?php if($dashcnt<=1)echo "display:none"; ?>'>
<ul class="row row-merge" style='background:#9CBFFF'>
<?php echo $headerstr; ?>
</ul>
</div>
<div class="tab-content">
<?php
$active="active";
foreach($modules as $mname=>$module)
{
if($user->moduleACL($mname,true,false,false))
{
?>
<div class="tab-pane <?php echo $active; ?> innerAll" id=DashletT-<?php echo $mname; ?>></div>
<?php
$active="";
}
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function dashReload(dashlet)
{
doAjax("dashboard/dashlet?module="+dashlet,"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET");
}
dashReload('<?php echo $firstdash; ?>');
</script>
\ No newline at end of file
<div id="content">
<div class="layout-app" style="visibility: visible; display: block;">
<div class="row">
<div class="col-sm-12">
<div class="col-separator col-separator-first box col-unscrollable">
<div class="tab_generic" style="padding: 10px;">
<h4>Settings</h4>
<hr style="margin-bottom: 10px;">
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#settingThemeArea" aria-controls="settingThemeArea" role="tab" data-toggle="tab">Themes</a>
</li>
<?php if(Auth::user()->username == 'admin'): ?>
<li role="presentation">
<a href="#settingSeatCount" aria-controls="settingSeatCount" role="tab" data-toggle="tab">Seat Count</a>
</li>
<?php endif; ?>
<!-- <li role="presentation">
<a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a>
</li>
<li role="presentation">
<a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a>
</li>
<li role="presentation">
<a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a>
</li> -->
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="settingThemeArea">
<?php echo $__env->make('layout.module.setting.theme', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
</div>
<?php if(Auth::user()->username == 'admin'): ?>
<div role="tabpanel" class="tab-pane active" id="settingSeatCount">
<?php echo $__env->make('layout.module.setting.seatCount', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
</div>
<?php endif; ?>
<!-- <div role="tabpanel" class="tab-pane" id="profile">
</div>
<div role="tabpanel" class="tab-pane" id="messages">
</div>
<div role="tabpanel" class="tab-pane" id="settings">
</div> -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php
$themes = explode(",",env('themes'));
if($userCurrentTheme != ""){
if(!in_array($userCurrentTheme, $themes)){$userCurrentTheme = "Default";}
}else{ $userCurrentTheme = "Default"; }
?>
<?php if(isset($response)): ?>
<script>
simpleNotification("<?php echo e($response['type']); ?>","topRight","<?php echo e($response['message']); ?>");
<?php if($response['type'] == "success"): ?>
setTimeout(function(){ window.location.reload(); }, 1000);
<?php endif; ?>
</script>
<?php endif; ?>
<h4>Select Theme <span class="pull-right"><small>Current Theme - </small><?php echo e($userCurrentTheme); ?></span></h4>
<hr style="margin-bottom: 10px;">
<div class="row">
<?php foreach($themes as $theme): ?>
<div class="col-sm-3">
<div class="themeBox" style="<?php echo e($theme == $userCurrentTheme ? 'border:1px solid #f30;background-color: #ffe9e9' : ''); ?>">
<h4><?php echo e($theme); ?>
<?php if($theme == $userCurrentTheme): ?>
<span class="pull-right label label-primary btn-xs">Current Theme</span>
<?php else: ?>
<button class="pull-right btn btn-success btn-xs" onclick="changeTheme('<?php echo e($theme); ?>');return false;">Select Theme</button>
<?php endif; ?>
</h4>
<hr style="margin-top: 10px;margin-bottom: 5px;">
<div class="text-center">
<img src="<?php echo e(URL::to('assets/themes/'.$theme.'.png')); ?>" class="img-responsive" alt="" />
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<style>
.themeBox{margin: 10px;padding: 10px !important;border:1px solid #eee;border-radius: 5px;}
.themeBox:hover{background-color: #eee;}
</style>
<script type="text/javascript">
function changeTheme(value){
doAjax('setting/theme?name='+value,'','settingThemeArea','','singlethis','GET');
}
</script>
\ No newline at end of file
<?php $user=Auth::user(); ?>
<style>
.label label-small pull-right{float: right;width: 20px;text-align: center;color: #fff;border-radius: 50%;line-height: 20px;font-size: 10px;font-weight: 900;}
.label label-small pull-right a{color: #fff !important;}
.notify_alert{height:25px;}
.wgt{background: none repeat scroll 0 0 #ffffff;border: 1px solid #f6f7fb;margin: 0 auto 10px;position: relative;}
.wgt-head{background: none repeat scroll 0 0 #f6f7fb;border-bottom: 1px solid #f6f7fb;height: 35px;line-height: 35px;overflow: hidden;padding: 0 10px 0 0;position: relative;}
.wgt .wgt-body{padding: 10px;}
.wgt p{font-size:12px;color:#656d78;}
.wgt label{font-weight:600;color:#5d9cec;}
.wgt a{color: #656d78;}
.wgt a:hover{color:#434a54;}
.list_n{font-size:12px}
.list_n li{padding:3px 0;}
.list_n li a{color: #656d78;}
.list_n li a:hover{color:#434a54;}
.tab_generic{background: none repeat scroll 0 0 #ffffff;border-radius: 5px;margin: 0 0 10px;padding: 10px 5px;position: relative;}
.tab_bar_new{border: 1px solid #EFEFEF;height: 39px;margin: 0 0 10px;overflow: hidden;position: relative;}
.tab_bar_new ul{list-style: none outside none;margin: 0;padding: 0;background:#ed5564;}
.tab_bar_new ul li{border: medium none;height: 39px;padding: 0;display: block;float: left;}
.tab_bar_new ul li a{background: none repeat scroll 0 0 rgba(0, 0, 0, 0);height: 39px;line-height: 39px;display: block;padding: 0 15px;text-decoration: none;color:#fff;}
.tab_bar_new ul li.active{background: none repeat scroll 0 0 #fff;}
.tab_bar_new ul li.active a{color:#ed5564;}
.legend_notify{float: right;font-size: 12px;font-weight: 600;margin-right: 20px;}
.legend_notify a{background-color: #ed5564;color: #fff;border-radius: 20px;padding: 5px 10px;margin-left: 5px;cursor:default;}
.task_numberx a{color:#fff;background:#fff;font-size: 10px;padding: 5px 10px;border-radius: 20px;font-weight:900;}
.task_numberx a:hover{background:#ed5564;color:#f6f7fb;}
.hasDatepicker{width: 20%;}
.progress{height:10px;}
</style>
<div class="layout-app">
<div class="row row-app">
<div class="col-md-12">
<div class="col-separator col-separator-first col-unscrollable box">
<div class="">
<div class="relativeWrap" >
<div class="tab_generic" style='padding:0px;margin:0px;min-height:500px;'>
<?php
$firstdash="";$dashcnt=0;$headerstr="";
$modules=array();$active="active";
foreach(Config::get("app.app_modules") as $mname=>$module)
{
if($user->moduleACL($mname,true,false,false))
{
if($module['dash']!="")
{
$modules[$mname]=$module;
$headerstr.="<li class='$active'><a href='#DashletT-$mname' onclick='dashReload(\"$mname\");' data-toggle='tab'>$module[dash]</a></li>";
$active="";$dashcnt++;if($firstdash=="")$firstdash=$mname;
}
}
}
?>
<div class="tab_bar_new tabsbar-2" style='<?php if($dashcnt<=1)echo "display:none"; ?>'>
<ul class="row row-merge" style='background:#9CBFFF'>
<?php echo $headerstr; ?>
</ul>
</div>
<div class="tab-content">
<?php
$active="active";
foreach($modules as $mname=>$module)
{
if($user->moduleACL($mname,true,false,false))
{
?>
<div class="tab-pane <?php echo $active; ?> innerAll" id=DashletT-<?php echo $mname; ?>></div>
<?php
$active="";
}
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function dashReload(dashlet)
{
doAjax("dashboard/dashlet?module="+dashlet,"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET");
}
dashReload('<?php echo $firstdash; ?>');
</script>
\ No newline at end of file
<?php
$reportTitle = 'Productivity Report';
$returnblade = 'productivity';
$view_path = Config::get('view.paths');
include_once($view_path[0].'/layout/module/dialer/reporthead.blade.php');
$alist=$alist->get();
$i=1;
$reporthead=array("#","Telecaller","TelecallerID","Supervisor","Customers","Total");
$reportarray=array();
foreach($alist as $aline)
{
$tuser=$userarr[$aline->user_id];
if(!isset($reportarray[$aline->user_id]))$reportarray[$aline->user_id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor,"Customers"=>0,"Total"=>0,"Customer_lists"=>array());
if(!is_null($aline->lan)) {
$reportarray[$aline->user_id]["Customer_lists"][] = $aline->lan;
}
$reportarray[$aline->user_id]["Customers"] = count(array_unique($reportarray[$aline->user_id]["Customer_lists"]));
$reportarray[$aline->user_id]["Total"]++;
//$ststr=$aline->userstatus."-".$aline->usersubstatus;
$ststr=$aline->resultCode;
if(!in_array($ststr,$reporthead))$reporthead[]=$ststr;
$reportarray[$aline->user_id][$ststr]++;
if($aline->userstatus == 'Contacted' && trim($ststr) != '') {
$reportarray[$aline->user_id]['Contacted']++;
}
}
$highestColumn = sizeof($reporthead);
if(count($reportarray)) {
$outhead="<tr>";$outstr="";
for ($head = 0; $head < $highestColumn; $head++){
if($reporthead[$head] == '#' && false) {
$mode_str = "<a onclick='displayMode(".'"summation"'.");return false;' href='#'><i class='fa fa-plus-square-o'></i></a> / <a onclick='displayMode(".'"percent"'.");return false;' href='#'>%</a>";
$outhead.="<td>".$mode_str."</td>";
}
else {
$outhead.="<td>".$reporthead[$head]."</td>";
}
}
$outhead.="</tr>";
$utotalarr = array("Telecaller"=>'Total');
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
if($head < 4) {
$data_str = $uarr[$reporthead[$head]];
}
elseif($head < 5) {
$data_str = $uarr[$reporthead[$head]];
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
else {
$total_val = ($reporthead[$head] != 'PTP') ? $uarr['Total'] : $uarr['Contacted'];
$data_str = '<span class="summation" style="display:block;">'.$uarr[$reporthead[$head]].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($uarr[$reporthead[$head]]/$total_val) * 100).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'productivity\',\''.$uid.'\',\''.$reporthead[$head].'\')">' . $data_str . '</a>';
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
$outstr.="<td>".$data_str."</td>";
}
$outstr.="</tr>";
}
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++)
{
if($head < 5) {
$data_str = $utotalarr[$reporthead[$head]];
}
else {
$data_str = '<span class="summation" style="display:block;">'.$utotalarr[$reporthead[$head]].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($utotalarr[$reporthead[$head]]/$utotalarr['Total']) * 100).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'productivity\',\'All\',\''.$reporthead[$head].'\')">' . $data_str . '</a>';
}
$outstr.="<td>".$data_str."</td>";
}
$outstr.="</tr>";
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 2;
$highestColumn = sizeof($reporthead);
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]);
}
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$col = 0;
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$reporthead[$head]]);
}
}
$row++;
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $utotalarr[$reporthead[$head]]);
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Productivity.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
//charts
$cat1=array();
$cat1arr=array();
foreach($reportarray as $uid=>$uarr)
{
$cat1[]="'$uarr[Telecaller]'";
for ($head = 6; $head < $highestColumn; $head++){
if(!isset($cat1arr[$reporthead[$head]]))$cat1arr[$reporthead[$head]]=array();
$cat1arr[$reporthead[$head]][$uarr["#"]]=round($uarr[$reporthead[$head]],1);
if(empty($cat1arr[$reporthead[$head]][$uarr["#"]]))$cat1arr[$reporthead[$head]][$uarr["#"]]=0;
}
}
$cat1arrstr="";
foreach($cat1arr as $name=>$data)
{
$extra="";if($name=="InboundDROP-InboundDROP")$extra=",visible: false";
$cat1arrstr.="{ name: '$name',\ndata : [";
$cat1arrstr.=implode(",",$data);
$cat1arrstr.="] $extra },\n";
}
$cat2=array();
foreach($reportarray as $uid=>$uarr)
{
for ($head = 6; $head < $highestColumn; $head++){
$cat2["'".$reporthead[$head]."'"]+=round($uarr[$reporthead[$head]],1);
}
}
?>
<?php echo $__env->make('layout.module.dialer.searchform', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart1 style='min-height:250px;width:100%'></div>
</div>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart2 style='min-height:250px;width:100%'></div>
</div>
<div style='clear:both'></div>
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
</div>
<script>
$(function () {
$('#userlogschart1').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Userwise result count',
style: {
fontSize: '14px'
}
},
xAxis: {
labels:{
rotation: -45,
enabled:true//default is true
},
categories: [<?php echo implode(",",$cat1); ?>]
},
yAxis: {
min: 0,
title: {
text: ''
},
stackLabels: {
enabled: false,
}
},
tooltip: {
headerFormat: '<b>{point.x}</b><br/>',
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: false,
}
}
},
series: [<?php echo $cat1arrstr; ?>]
});
});
$(function () {
$('#userlogschart2').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Resultwise count',
style: {
fontSize: '14px'
}
},
subtitle: {
text: ''
},
xAxis: {
categories: [<?php echo implode(",",array_keys($cat2)); ?>],
crosshair: true,
labels:{
enabled:true//default is true
},
},
yAxis: {
min: 0,
title: {
text: ''
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y}</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Count',
data: [<?php echo implode(",",array_values($cat2)); ?>]
},]
});
});
</script>
\ No newline at end of file
<?php
use App\Models\User;
//if(!Session::has("adminmonitordate"))Session::put("adminmonitordate","2000-01-01 00:00:00");
//$lastdate=Session::get('adminmonitordate');
$onlineusers=User::where("presence","=","1")->orderBy("updated_at","DESC")->take(500)->get();
$posts=array();//Post::where('status','!=','deleted')->where("updated_at",">",$lastdate)->orderBy("updated_at","DESC")->take(100)->get();
$lastdate="";
//Session::put("adminmonitordate",date("Y-m-d H:i:s"));
?>
<style>
.heading-buttons h4{
line-height:20px;
}
</style>
<!-- col -->
<div class="col-md-12">
<!-- col-separator.box -->
<div class="col-separator col-separator-first col-unscrollable box">
<!-- col-table -->
<div class="col-table" id=authorworkspacediv>
<!-- Search Bar -->
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for Users/ Group / Courses...">
<span class="input-group-btn">
<button class="btn btn-primary rounded-none" type="button"><i class="fa fa-search"></i></button>
</span>
</div>
<div class="col-separator-h"></div>
<!-- End Search Bar -->
<div class="col-table-row">
<div class="col-app col-unscrollable">
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick='return false;' style='margin-right:5px'><i class="fa fa-user fa-fw"></i> <?php echo sizeof($onlineusers); ?> User</a>
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick='adminlogoutall();return false;' style='margin-right:5px'><i class="fa fa-user fa-fw"></i> Logout All</a>
<h4 class="innerTB margin-bottom-none">Online Users</h4>
</div>
<!-- End Category Heading -->
<div class=innerAll>
<ul class="list-group list-group-1 borders-none margin-none">
<?php
$i=0;
foreach($onlineusers as $tuser)
{
echo "<a data-toggle='image-preview' data-title='".$tuser->dispname()."' data-content='<small></small>' data-image-preview='".$tuser->fetchphotothumb()."' width='100' href='#' class='innerAll half border-none' onclick='tchatbox(\"chatpop_".$tuser->id."\",\"".$tuser->dispname()."\");return false;' style='padding:0 !important'><img src='".$tuser->fetchphotothumb()."' alt='photo' width='22'></a>";
if($i++>200)break;
}
?>
</ul>
</div>
<div class="col-separator-h"></div>
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<!-- <a href="#" class="btn btn-sm btn-inverse pull-right"><i class="fa fa-plus fa-fw"></i> New Group</a> -->
<h4 class="innerTB margin-bottom-none">Admin Actions</h4>
</div>
<!-- End Category Heading -->
<div class=innerAll>
<div class=col-md-6>
<button class="btn btn-primary" onclick='window.open("admin?dlemp=all&nodebug=1")'>Download All Employees</button> <button class="btn btn-primary" onclick='window.open("admin?dlemp=empty&nodebug=1")'>Download Empty Employees</button><br>
</div>
<div class=col-md-6>
<form method=post enctype="multipart/form-data" action='admin?action=mmtbulkupload' target='empblkuploaddiv'>
<input type=hidden name=_token value=<?php echo csrf_token(); ?>>
<input type=hidden name=empbulkaction value='upload'>
<div class="fileupload fileupload-new margin-none" data-provides="fileupload">
<div class="input-group">
<div class="form-control col-md-3"><i class="fa fa-file fileupload-exists"></i> <span class="fileupload-preview"></span></div>
<span class="input-group-btn">
<span class="btn btn-default btn-file"><span class="fileupload-new">Select file</span><span class="fileupload-exists">Change</span><input type="file" name=empbulkfile id=empbulkfile class="margin-none"></span><a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a><span class="btn btn-default" onclick='document.forms[0].submit();'>Upload</span>
</span>
</div>
</div>
</form>
<iframe id='empblkuploaddiv' name='empblkuploaddiv' style='width:1px;height:1px;visibility:hidden;display:none'></iframe>
</div><div style='clear:both'></div>
</div>
<div class="col-separator-h"></div>
<div class=innerAll>
<button class="btn btn-primary" onclick='window.open("web/monthdashboard?sdate=<?php echo date("Y-m"); ?>-01&edate=<?php echo date("Y-m"); ?>-31")'>Monthly Report</button>
<button class="btn btn-primary" onclick='window.open("admin/dllogfile")'>App Logs</button>
</div>
<!-- // END col-separator -->
<div class="col-separator-h"></div>
<!-- Heading -->
<h5 class="innerAll margin-none bg-primary">
<i class="fa fa-fw fa-book"></i> Application Stats
<!-- <a href="#" class="btn btn-sm btn-inverse pull-right btn-xs" style="margin-top: -5px;"><i class="fa fa-plus fa-fw"></i>Add New</a> -->
</h5>
<!-- Listing -->
<div class="bg-gray-hover innerAll border-bottom">
<div class="media">
<div style="height:39px; width:39px; overflow:hidden" class="pull-left">
<a href="#" class="pull-left">
<img src="assets/images/people/avatar.jpg" class="media-object" width="39"/>
</a>
</div>
<a class="pull-right innerAll" href="#">
<!-- <span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span> -->
</a>
<div class="media-body">
<?php $totalusers=User::where('status','!=','Disabled')->count();$totalactive=\App\Models\User::where('status','=','Active')->where('usertype','!=','')->count();$totalactivemtd=\App\Models\User::where('status','=','Active')->where('usertype','!=','')->where('updated_at','>',date('Y-m-01 00:00:00'))->count(); ?>
<h5>Users <?php echo $totalactivemtd; ?> MTD/<?php echo $totalactive; ?> Active</h5>
<div class="media-body" title="<?php echo $totalactivemtd; ?>/<?php echo $totalactive; ?> MTD Active/Total Active, <?php echo round($totalactivemtd*100/$totalactive,1); ?>%">
<div class="progress progress-small margin-none">
<div class="progress-bar progress-bar-primary" style="width: <?php echo round($totalactivemtd*100/$totalactive,1); ?>%"></div>
</div>
</div>
</div>
</div>
</div>
<!-- Listing ends-->
<!-- Listing -->
<div class="bg-gray-hover innerAll border-bottom">
<div class="media">
<div style="height:39px; width:39px; overflow:hidden" class="pull-left">
<a href="#" class="pull-left">
<img src="assets/images/people/avatar.jpg" class="media-object" width="39"/>
</a>
</div>
<a class="pull-right innerAll" href="#">
<!-- <span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span> -->
</a>
<div class="media-body">
<h5>Total Users <?php echo $totalactivemtd; ?>/<?php echo $totalactive; ?>/<?php echo $totalusers; ?></h5>
<div class="media-body" title="<?php echo $totalactive; ?>/<?php echo $totalusers; ?> Active/Total , <?php echo round($totalactive*100/$totalusers,1); ?>%">
<div class="progress progress-small margin-none">
<div class="progress-bar progress-bar-primary" style="width: <?php echo round($totalactive*100/$totalusers,1); ?>%"></div>
</div>
</div>
</div>
</div>
</div>
<!-- Listing ends-->
<!-- Listing -->
<div class="bg-gray-hover innerAll border-bottom">
<div class="media">
<div style="height:39px; width:39px; overflow:hidden" class="pull-left">
<a href="#" class="pull-left">
<img src="assets/images/people/author_file.jpg" class="media-object" width="39"/>
</a>
</div>
<a class="pull-right innerAll" href="#">
<!-- <span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span> -->
</a>
<div class="media-body">
<?php $spaceuse=round(User::sum('diskuse')/1024/1024,1); $allowedspace=1024*100; ?>
<h5><?php echo $spaceuse; ?> MB Space Usages</h5>
<div class="media-body" title='<?php echo round($allowedspace/1024,1); ?> GB Limit'>
<div class="progress progress-small margin-none">
<div class="progress-bar progress-bar-primary" style="width: <?php echo round($spaceuse*100/$allowedspace,1)<0.5?0.5:round($spaceuse*100/$allowedspace,1); ?>%"></div>
</div>
</div>
</div>
</div>
</div>
<!-- Listing ends-->
<!-- Listing -->
<div class="bg-gray-hover innerAll border-bottom">
<div class="media">
<div style="height:39px; width:39px; overflow:hidden" class="pull-left">
<a href="#" class="pull-left">
<img src="assets/images/people/author_content.jpg" class="media-object" width="39"/>
</a>
</div>
<a class="pull-right innerAll" href="#">
<!-- <span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span> -->
</a>
<div class="media-body">
</div>
</div>
</div>
<!-- Listing ends-->
<!-- // END col-table -->
<div class="col-separator-h"></div>
</div>
<!-- // END col-separator.box -->
</div>
<script>
function adminlogoutall()
{
doAjax('admin?action=userlogoutall','','','ajax_users_logout','singlethis','POST');
}
</script>
</div>
</div>
</div>
<!DOCTYPE html>
<html class="app">
<head>
<title><?php echo Config::get("app.name"); ?> - <?php echo Config::get('app.app_title'); ?></title>
<meta charset="UTF-8" />
<?php
$v=Config::get('app.app_version');
$vieportopt=explode(":",Config::get("app.kstych_viewportMeta"));
if(!isset($vieportopt[1]))$vieportopt[1]="1";
if(!isset($vieportopt[2]))$vieportopt[2]="1";
if($vieportopt[0]=="responsive"){ ?>
<meta name="viewport" content="width=device-width, initial-scale=<?php echo $vieportopt[1]; ?>, maximum-scale=<?php echo $vieportopt[2]; ?>">
<?php } ?>
<meta name="author" content="Buzzworks">
<?php if(isset($logo_s))$fico=$logo_s;else $fico="favicon.png"; ?>
<link rel="icon" href="<?php echo url('/'); ?>/custom/<?php echo $fico; ?>" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo url('/'); ?>/custom/<?php echo $fico; ?>" type="image/x-icon" />
<link rel="stylesheet" href="<?php echo url('/'); ?>/style?v=<?php echo $v; ?>" />
<script type="text/javascript" src="<?php echo url('/'); ?>/jshead?v=<?php echo $v; ?>"></script>
</head>
<body class="">
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-2 col-sm-3">
<!-- col-separator -->
<div class="col-separator col-separator-first box col-unscrollable">
<!-- col-table -->
<div class="col-table" style='padding-left: 13px;padding-right: 13px;'>
<h4 class="innerAll margin-none border-bottom" style='background: #fff;'>Dialer Reports</h4>
<!-- col-table-row -->
<div class="col-table-row">
<!-- col-app -->
<div class="col-app col-unscrollable">
<!-- col-app -->
<div class="col-app">
<ul class="list-group list-group-1 margin-none borders-none dreports" style='padding-right: 26px;'>
<?php if(Auth::user()->moduleACL("Dialer",true,true,true)){ ?>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/liveusers','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Live</a>
</li>
<?php } ?>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/contactability','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Contactability</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/productivity','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Productivity</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/productivity_mis','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>TC Productivity MIS</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/nextaction','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Next Action</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/agenttime','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Agent Time</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/ic4trails','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>IC4 Trails</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/calllog','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Call</a>
</li>
<?php if(Auth::user()->usertype != "Telecaller"): ?>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/searchrecordings','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Recordings</a>
</li>
<?php endif; ?>
<?php if(Auth::user()->usertype == 'Admin'): ?>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/resourcehygiene','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>All server reports</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/agentperformance','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Agent Performance</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/campaignlevel','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Campaign Level</a>
</li>
<li class="list-group-item w170p">
<a href="#" onclick="doAjax('dialer/demo_agentperformance','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Demo Agent Performance</a>
</li>
<?php endif; ?>
<!-- <li class="list-group-item">
<a href="#" onclick="doAjax('dialer/agentreport','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Login</a>
</li>
<li class="list-group-item">
<a href="#" onclick="doAjax('dialer/campreport','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Time</a>
</li>
<li class="list-group-item">
<a href="#" onclick="doAjax('dialer/statusreport','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i>Status</a>
</li> -->
</ul>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-10 col-sm-9" style='border-right:13px solid #eaeaea'>
<!-- col-separator.box -->
<div class="col-separator col-unscrollable box">
<!-- col-table -->
<div class="col-table">
<!-- <h4 class="innerAll margin-none border-bottom">My Sessions</h4> -->
<!-- col-table-row -->
<div class="col-table-row" style='background: #fff;'>
<!-- col-app -->
<div class="col-app col-unscrollable">
<!-- col-app -->
<div class="col-app" style='position:relative'>
<div class="" id=rightmainreportdiv>
<script>
<?php if(Auth::user()->moduleACL("Dialer",true,true,true)){ ?>
doAjax('dialer/liveusers','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
<?php }else { ?>
doAjax('dialer/calllog','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
<?php } ?>
</script>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php
$reportTitle = 'Contactability Report';
$returnblade = 'contactability';
$userstatus_array = array("Contacted", "Not Contacted", "FORCEDCLOSE");
foreach($userstatus_array AS $userstatus) {
$userstatus_array1[$userstatus] = array($userstatus);
$userstatus_array2[$userstatus] = array();
}
$view_path = Config::get('view.paths');
include_once($view_path[0].'/layout/module/dialer/reporthead.blade.php');
$alist=$alist->whereIn('userstatus', array_merge($userstatus_array, array("REDIAL")) );
$alist=$alist->get();
$i=1;
$reporthead=array("#","Telecaller","TelecallerID","Supervisor","Customers","Total");
$reporthead=array_merge($reporthead, $userstatus_array,$userstatus_array1);
$reportarray=array();
foreach($alist as $aline)
{
$tuser=$userarr[$aline->user_id];
$aline->userstatus = ($aline->userstatus != 'REDIAL') ? $aline->userstatus : 'Not Contacted';
if(!isset($reportarray[$aline->user_id])) {
$reportarray[$aline->user_id]=array_merge( array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor,"Customers"=>0,"Total"=>0),$userstatus_array2,array("Customer_lists"=>array()));
}
if(!is_null($aline->lan)) {
$reportarray[$aline->user_id]["Customer_lists"][] = $aline->lan;
}
$reportarray[$aline->user_id]["Customers"] = count(array_unique($reportarray[$aline->user_id]["Customer_lists"]));
$reportarray[$aline->user_id]["Total"]++;
$ststr=$aline->action_code;
if(!in_array($ststr,$reporthead[$aline->userstatus]))$reporthead[$aline->userstatus][]=$ststr;
$reportarray[$aline->user_id][$aline->userstatus][$aline->userstatus]++;
$reportarray[$aline->user_id][$aline->userstatus][$aline->action_code]++;
}
$highestColumn = sizeof($reporthead);
if(count($reportarray)) {
$outhead="<tr>";$outstr="";$outsubhead="<tr>";
foreach ($reporthead as $head => $headval){
if($reporthead[$head] == '#') {
$mode_str = "<a onclick='displayMode(".'"summation"'.");return false;' href='#'><i class='fa fa-plus-square-o'></i></a> / <a onclick='displayMode(".'"percent"'.");return false;' href='#'>%</a>";
$outhead.="<td rowspan=2>".$mode_str."</td>";
}
else {
if(!is_array($headval)) {
if(array_key_exists($headval, $reporthead)) {
$outhead.="<td colspan=".count($reporthead[$headval]).">".$headval."</td>";
foreach ($reporthead[$headval] as $subhead) {
$outsubhead.="<td>".$subhead."</td>";
}
}
else {
$outhead.="<td rowspan=2>".$headval."</td>";
}
}
}
}
$outsubhead.="</tr>";
$outhead.="</tr>".$outsubhead;
$utotalarr = array("Telecaller"=>'Total');
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
if($head < 4) {
$data_str = $uarr[$reporthead[$head]];
$outstr.="<td>".$data_str."</td>";
}
elseif($head < 5) {
$data_str = $uarr[$reporthead[$head]];
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
$outstr.="<td>".$data_str."</td>";
}
elseif($head < 6) {
$data_str1 = $uarr[$reporthead[$head]];
$utotalarr[$reporthead[$head]] += $data_str1;
$data_str = '<span class="summation" style="display:block;">'.$data_str1.'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($data_str1/$uarr['Total']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'contactability\',\''.$uid.'\',\''.$reporthead[$head].'\')">' . $data_str . '</a>';
$outstr.="<td>".$data_str."</td>";
}
else {
if(is_array($uarr[$reporthead[$head]])) {
foreach($reporthead[$reporthead[$head]] AS $subval) {
$data_str1 = $uarr[$reporthead[$head]][$subval];
$utotalarr[$subval] += $data_str1;
$data_str = '<span class="summation" style="display:block;">'.$data_str1.'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($data_str1/$uarr['Total']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'contactability\',\''. $uid.'\',\''.$reporthead[$head] .'||'.$subval.'\')">' . $data_str . '</a>';
$outstr.="<td>".$data_str."</td>";
}
}
}
}
$outstr.="</tr>";
}
$outstr.="<tr>";
foreach ($reporthead as $head => $headval){
if(is_int($head) && $head < 5) {
@($data_str = $utotalarr[$headval]);
$outstr.="<td>".$data_str."</td>";
}
elseif(is_int($head) && $head < 6) {
$data_str = '<span class="summation" style="display:block;">'.$utotalarr[$headval].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($utotalarr[$headval]/$utotalarr['Total']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'contactability\',\'All\',\''.$headval.'\')">' . $data_str . '</a>';
$outstr.="<td>".$data_str."</td>";
}
else {
if(!is_array($headval)) {
if(array_key_exists($headval, $reporthead)) {
foreach ($reporthead[$headval] as $subhead) {
$data_str = '<span class="summation" style="display:block;">'.$utotalarr[$subhead].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($utotalarr[$subhead]/$utotalarr['Total']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'contactability\',\'All\',\''.$headval.'||'.$subhead.'\')">' . $data_str . '</a>';
$outstr.="<td>".$data_str."</td>";
}
}
}
}
}
$outstr.="</tr>";
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 2;
$index_count = 0;
foreach ($reporthead as $head => $headval){
if(!is_array($headval)) {
if(array_key_exists($headval, $reporthead)) {
foreach ($reporthead[$headval] as $subhead) {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $subhead);
$index_count++;
}
}
else {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $headval);
$index_count++;
}
}
}
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$index_count = 0;
foreach ($reporthead as $head => $headval){
if(!is_array($headval)) {
if(array_key_exists($headval, $reporthead)) {
foreach ($reporthead[$headval] as $subhead) {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$headval][$subhead]);
$index_count++;
}
}
else {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$headval]);
$index_count++;
}
}
}
}
$row++; $index_count = 0;
foreach ($reporthead as $head => $headval){
if(!is_array($headval)) {
if(array_key_exists($headval, $reporthead)) {
foreach ($reporthead[$headval] as $subhead) {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $utotalarr[$subhead]);
$index_count++;
}
}
else {
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $utotalarr[$headval]);
$index_count++;
}
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="contactability.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
//charts
$cat1=array();
$cat1arr=array();
foreach($reportarray as $uid=>$uarr)
{
$cat1[]="'$uarr[Telecaller]'";
foreach ($userstatus_array as $value) {
$cat1arr[$value][$uarr["#"]]=round($uarr[$value][$value],1);
if(empty($cat1arr[$value][$uarr["#"]]))$cat1arr[$value][$uarr["#"]]=0;
}
}
$cat1arrstr="";
foreach($cat1arr as $name=>$data)
{
$cat1arrstr.="{ name: '$name',\ndata : [";
$cat1arrstr.=implode(",",$data);
$cat1arrstr.="] $extra },\n";
}
$cat2=array();
foreach($reportarray as $uid=>$uarr)
{
foreach ($userstatus_array as $value) {
$cat2["'".$value."'"]+=round($uarr[$value][$value],1);
}
}
?>
<?php echo $__env->make('layout.module.dialer.searchform', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart1 style='min-height:250px;width:100%'></div>
</div>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart2 style='min-height:250px;width:100%'></div>
</div>
<div style='clear:both'></div>
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
</div>
<script>
$(function () {
$('#userlogschart1').highcharts({
chart: {
type: 'column'
},
title: {
text: 'User Contactability Status',
style: {
fontSize: '14px'
}
},
xAxis: {
labels:{
rotation: -45,
enabled:true//default is true
},
categories: [<?php echo implode(",",$cat1); ?>]
},
yAxis: {
min: 0,
title: {
text: ''
},
stackLabels: {
enabled: false,
}
},
tooltip: {
headerFormat: '<b>{point.x}</b><br/>',
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: false,
}
}
},
series: [<?php echo $cat1arrstr; ?>]
});
});
$(function () {
$('#userlogschart2').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Contactability Status',
style: {
fontSize: '14px'
}
},
subtitle: {
text: ''
},
xAxis: {
categories: [<?php echo implode(",",array_keys($cat2)); ?>],
crosshair: true,
labels:{
enabled:true//default is true
},
},
yAxis: {
min: 0,
title: {
text: ''
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y}</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Count',
data: [<?php echo implode(",",array_values($cat2)); ?>]
},]
});
});
</script>
\ No newline at end of file
<?php
$reportTitle = 'IC4 Trails';
$returnblade = 'ic4trails';
$view_path = Config::get('view.paths');
include_once($view_path[0].'/layout/module/dialer/reporthead.blade.php');
$alist=$alist->select(DB::raw("c.id, c.lan, c.number, c.user_id, c.created_at, c.action_code, c.resultCode, c.rfd, c.nextActionCode, c.nextActionDateTime, c.userremarks, c.upi, c.designation, c.adhar, c.data, c.recsize"));
$alist=$alist->get();
$i=1;
$reporthead=array("Account No.","Number","User Id","Action Date","Action Code","Result Code","RFD","Next Action","Next Action Date & Time","Remarks","UPI","Designation","Adhar");
$reportarray=array();
if (count($alist))
foreach($alist as $aline)
{
$tuser=$userarr[$aline->user_id];
$userData=json_decode($aline->data,true);
$recordingFolder = $userData['recFolder'];
$reportarray[$aline->id]=array(
"Account No."=>$aline->lan,
"Number"=>$aline->number,
"User Id"=>$tuser->username,
"Action Date"=>date('d.m.Y H:i',strtotime($aline->created_at)+(5*60*60)+(30*60)),
"Action Code"=>$aline->action_code,
"Next Action"=>$aline->nextActionCode,
"Result Code"=>$aline->resultCode,
"RFD"=>$aline->rfd,
"Next Action Date & Time"=> ($aline->nextActionDateTime != '0000-00-00 00:00:00') ? date('d.m.Y H:i',strtotime($aline->nextActionDateTime)) : '',
"Remarks" =>$aline->userremarks,
"UPI" =>$aline->upi,
"Designation" =>$aline->designation,
"Adhar" =>$aline->adhar,
"Recording ID"=>$aline->id,
"Recording Folder"=>$recordingFolder,
"Recording Size"=>$aline->recsize
);
}
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "CSV";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.csv");
$baseRow = 2;
$exporthead = array_merge($reporthead, array("Promise Date 1","Promise Amount 1","Promise Date 2","Promise Amount 2","Promise Date 3","Promise Amount 3","Promise Date 4","Promise Amount 4","Promise Date 5","Promise Amount 5") );
$highestColumn = sizeof($exporthead);
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $exporthead[$head]);
}
$highestColumn = sizeof($reporthead);
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$col = 0;
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$reporthead[$head]]);
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="ic4trails.csv"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
$highestColumn = sizeof($reporthead);
$exit = 1;
if(count($reportarray)) {
$outhead="<tr>";$outstr="";
for ($head = 0; $head < $highestColumn; $head++){
$outhead.="<td>".$reporthead[$head]."</td>";
}
$outhead.="</tr>";
$utotalarr = array("Telecaller"=>'Total');
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
$outstr.="<td>".$uarr[$reporthead[$head]]."</td>";
}
$recstr='';
if($dashboarduser->moduleACL("Dialer",false,false,true))
{
if(isset($uarr['Recording Folder']))$recstr="<a href=# onclick='getCallRec(".$uarr['Recording ID'].");return false;' title='Size : ".round($uarr['Recording Size']/1024,0)." KB'><i class='fa fa-play-circle'></i> &nbsp;</a> ";
if(Auth::user()->usertype != "Telecaller" && isset($uarr['Recording Folder']))
$recstr.="<a href='dialer/playrecfile?calllog=".$uarr['Recording ID']."&out=wav' title=''><i class='fa fa-download'></i> &nbsp;</a><span id='recspan_".$uarr['Recording ID']."'</span>";
}
$outstr.="<td>$recstr</td>";
$outstr.="</tr>";
if($exit=="1000")break;
$exit++;
}
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
?>
<?php echo $__env->make('layout.module.dialer.searchform', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
</div>
<script>
function getCallRec(id)
{
doAjax("dialer/calllog","getCallRec=1&calllog="+id,'recspan_'+id,'rec_ajax','singlefail','GET');
}
</script>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="robots" content="noindex,nofollow" />
<style>
html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
html { background: #eee; padding: 10px }
img { border: 0; }
#sf-resetcontent { width:970px; margin:0 auto; }
.sf-reset { font: 11px Verdana, Arial, sans-serif; color: #333 }
.sf-reset .clear { clear:both; height:0; font-size:0; line-height:0; }
.sf-reset .clear_fix:after { display:block; height:0; clear:both; visibility:hidden; }
.sf-reset .clear_fix { display:inline-block; }
.sf-reset * html .clear_fix { height:1%; }
.sf-reset .clear_fix { display:block; }
.sf-reset, .sf-reset .block { margin: auto }
.sf-reset abbr { border-bottom: 1px dotted #000; cursor: help; }
.sf-reset p { font-size:14px; line-height:20px; color:#868686; padding-bottom:20px }
.sf-reset strong { font-weight:bold; }
.sf-reset a { color:#6c6159; }
.sf-reset a img { border:none; }
.sf-reset a:hover { text-decoration:underline; }
.sf-reset em { font-style:italic; }
.sf-reset h1, .sf-reset h2 { font: 20px Georgia, "Times New Roman", Times, serif }
.sf-reset h2 span { background-color: #fff; color: #333; padding: 6px; float: left; margin-right: 10px; }
.sf-reset .traces li { font-size:12px; padding: 2px 4px; list-style-type:decimal; margin-left:20px; }
.sf-reset .block { background-color:#FFFFFF; padding:10px 28px; margin-bottom:20px;
-webkit-border-bottom-right-radius: 16px;
-webkit-border-bottom-left-radius: 16px;
-moz-border-radius-bottomright: 16px;
-moz-border-radius-bottomleft: 16px;
border-bottom-right-radius: 16px;
border-bottom-left-radius: 16px;
border-bottom:1px solid #ccc;
border-right:1px solid #ccc;
border-left:1px solid #ccc;
}
.sf-reset .block_exception { background-color:#ddd; color: #333; padding:20px;
-webkit-border-top-left-radius: 16px;
-webkit-border-top-right-radius: 16px;
-moz-border-radius-topleft: 16px;
-moz-border-radius-topright: 16px;
border-top-left-radius: 16px;
border-top-right-radius: 16px;
border-top:1px solid #ccc;
border-right:1px solid #ccc;
border-left:1px solid #ccc;
overflow: hidden;
word-wrap: break-word;
}
.sf-reset li a { background:none; color:#868686; text-decoration:none; }
.sf-reset li a:hover { background:none; color:#313131; text-decoration:underline; }
.sf-reset ol { padding: 10px 0; }
.sf-reset h1 { background-color:#FFFFFF; padding: 15px 28px; margin-bottom: 20px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="sf-resetcontent" class="sf-reset">
<h1>Whoops, looks like something went wrong.</h1>
<div style='display:none'>___Kstych___x___Exception___</div>
</div>
</body>
</html>
<?php
use App\Jobs\KHRMSLib;
use \App\Models\User;
function gitVersion(){
exec('git describe --always',$version_mini_hash);
exec('git rev-list HEAD | wc -l',$version_number);
exec('git log -1',$line);
$version['short'] = "v0.".trim($version_number[0]);
$version['full'] = "v0.".trim($version_number[0]).".$version_mini_hash[0] (".str_replace('commit ','',$line[0]).")";
$version['date'] = $line[3];
return $version;
}
// $version = gitVersion();
if(Input::get('sendotp')=="1")
{
$otpuser=trim(Input::get('otpuser'));
$user=User::where('username','=',$otpuser)->first();
if($user)
{
$otpemail=$user->email;
$otp=rand(100000, 999999);
$user->password=Hash::make($otp);
$meta=$user->meta();
if(!isset($meta['otp_array']))$meta['otp_array']=array();
if(!isset($meta['otp_array'][date('Ymd')])){$meta['otp_array']=array();$meta['otp_array'][date('Ymd')]=0;}
$meta['otp_array'][date('Ymd')]++;
if($meta['otp_array'][date('Ymd')]<=3)
{
$user->meta=json_encode($meta);
$user->save();
Mail::send('emails.notification',
array(
'heloname'=>'',
'line1'=>'Your OTP for Login : '.$otp.' ',
'line2'=>'Please visit <a href="'.URL::to('/').'"><b>'.Config::get("app.name").' </b></a> and You can login using this OTP.',
'line3'=>'',
'notifytype'=>'OTP'), function($message) use ($otpemail)
{
$message->to($otpemail,$otpemail);
$message->subject(Config::get("app.name")." OTP for Login");
});
echo "$(\"#alertdiv\").html('<div class=\"alert alert-success\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Success</strong> OTP Sent to ($otpemail)</div>');";
}
else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Too many reuests ($otpemail), please try after 24 hrs</div>');";
}
else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Invalid User </div>');";
}
else
{
?>
<?php echo $__env->make('layout.header', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<style>
body {
background: url(assets/images/main.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.layout-app .col-separator{
background: url(assets/images/main.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
html.app .layout-app .col-separator{
margin:0px !important;
}
.blur_bg{
}
html.app .layout-app{
top: 0px;
bottom: 0px;
}
.login{
background: #fff;
border-radius: 2px;
top: 15%;
-webkit-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
-moz-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
}
.login_head{
background: #fff;
border-radius: 2px 2px 0px 0;
margin: 0 -5px;
}
.login_head img{
margin: 0 auto;
display: block;
padding: 20px 0px 0px;
border: 0px;
/*height:70px;*/
}
.login_head span{
color: #505050;
display: block;
text-align: center;
margin-top: 10px;
font-size: 15px;
text-transform: uppercase;
font-weight: 600;
}
.login_head p{
font-family: 'Open-Sans', sans-serif;
font-weight: 400;
line-height: 30px;
font-size: 15px;
color: #505050;
-webkit-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
-moz-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
}
.panel{
background: transparent;
border: 0px;
box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
-webkit-box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
}
.form-control::-webkit-input-placeholder {
color: #5F5F5F;
}
.form-control:-moz-placeholder {
color: #5F5F5F;
}
.form-control::-moz-placeholder {
color: #5F5F5F;
}
.form-control:-ms-input-placeholder {
color: #5F5F5F;
}
.form-control{
background: transparent;
border: 0px;
border-bottom: 1px solid #5F5F5F !important;
font-weight: 600;
}
input[type="text"]:focus, input[type="text"]:active, input[type="text"]:hover{
background: transparent;
font-weight: 900;
}
input[type="text"], input[type="password"], select, textarea{
color: #5F5F5F;
}
.login_btn{
margin-top: 40px;
border-radius: 0px;
background: #4B9DD8;
border: 0px;
padding: 10px;
font-weight: 600;
text-transform: uppercase;
color: #fff;
}
.login_btn:hover, .login_btn:active, .login_btn:focus{
background: #8DC4EA;
color: #fff
}
.login_otp{
width: 30%;
border-radius: 0px;
background: #5F5F5F;
border: 0px;
padding: 10px;
font-weight: 600;
text-transform: uppercase;
color: #FFFFFF;
font-size: 12px;
}
.login_otp:hover, .login_otp:active, .login_otp:focus{
border:1px solid #5F5F5F;
color: #5F5F5F;
padding:9px 10px;
}
.alternate_login{
margin-top: 30px;
}
/* .alternate_login label{
background: #89ceff;
padding: 10px 20px;
border-radius: 2px;
}*/
.alternate_login label a{
color: #4B9DD8;
}
.alternate_login label a:hover{
color:#5B86A5;
}
.or_div{
line-height: 0.5;
text-align: center;
width: 100%;
margin-top: 20px;
}
.or_div p{
display: inline-block;
position: relative;
color: #505050;
font-weight: 600;
border: 1px solid #505050;
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 50%;
}
.or_div p:before, .or_div p:after{
content: "";
position: absolute;
height: 5px;
border-bottom: 1px solid #7D7D7D;
top: 15px;
width: 130px;
}
.or_div p:before{
right: 100%;
}
.or_div p:after{
left: 100%;
}
.alert.alert-danger {
background: none repeat scroll 0 0 #F95B5B;
border-color: #F95B5B;
color: #ffffff;
border-radius: 0;
padding: 10px;
}
.alert.alert-warning{
background: none repeat scroll 0 0 #FFA84F;
border-color: #FFA84F;
color: #ffffff;
border-radius: 0;
padding: 10px;
}
</style>
<div class="layout-app" style="height: 100%;"><!-- row-app -->
<div class="row row-app" style="height: 100%;">
<!-- col -->
<!-- col-separator.box -->
<div class="col-separator col-unscrollable box" style="height: 100%;">
<!-- col-table -->
<div class="col-table blur_bg" style="height: 100%;">
<!-- col-table-row -->
<div class="col-table-row" style="height: 100%;">
<!-- col-app -->
<div class="col-app col-unscrollable" style="height: 100%;">
<!-- col-app -->
<div class="col-app" style="height: 100%;">
<div class="login col-sm-4 col-sm-offset-4">
<div class="login_head">
<div class="row">
<div class="col-xs-1"></div>
<div class="col-xs-10">
<img src="custom/logo.png" class="pull-left">
<img src="custom/flexydial-logo-small.png" class="pull-right">
</div>
</div>
<p class="innerAll margin-none text-center hidden-xs">Login to your account</p>
</div>
<div class="panel panel-default col-sm-12">
<div class="panel-body">
<div id='alertdiv'>
<?php
$class="";
$type="";
$msg="";
if(isset($error))
{
if($error=="activationsuccess"){$class="success";$type="Verified!";$msg="Congratulations, your account is now active, please login to continue.";}
else if($error=="authfailed"){$class="danger";$type="Login Failed!";$msg="Incorrect Email id or password.";}
else if($error=="Unverified"){$class="danger";$type="Verification Required!";$msg="We have sent a verification mail to your email id, please follow instructions in the mail.";}
else if($error=="alreadyverified"){$class="warning";$type="Already Verified!";$msg="You have already verified your account.";}
else if($error=="msie"){$class="info";$type="Internet Explorer Detected!";$msg="This application doesnot work with MS Internet explorer, please download <a href='http://firefox.com' target=_BLANK>Mozilla Firefox</a> or <a href='http://google.com/chrome' target=_BLANK>Google Chrome</a> to use.";}
else if($error=="forgotpassword"){$class="info";$type="Password Reminder Sent";$msg="Please check your email for instructions to login to your account. Thankyou";}
else if($error=="passwordchanged"){$class="success";$type="Password Changed successfully";$msg="You can now login with your new password below!";}
else if($error=="resetexpired"){$class="danger";$type="Link Expired";$msg="The Link You used is now Expired!";}
else if($error=="Disabled"){$class="danger";$type="Disabled";$msg="This user account has been disabled, please contact Support!";}
else if($error=="cutoff"){$class="danger";$type="Login";$msg="It disable for today";}
else {$class="danger";$type="Failed!";$msg="Unknown Error. Method not found";}
?>
<!-- Alert -->
<div class="alert alert-<?php echo $class; ?>">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong><?php echo $type; ?></strong> <?php echo $msg; ?>
</div>
<!-- // Alert END -->
<?php } ?>
</div>
<form role="form" action="login" method=post id=owaform>
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<div class="form-group">
<!-- <label for="exampleInputEmail1">Login ID <?php if(Config::get("app.extAuth")=="owa")echo "(Domain Login)"; ?></label> -->
<input type="text" class="form-control" id="exampleInputEmail1" name=username placeholder="Login ID">
</div>
<div class="form-group">
<!-- <label for="exampleInputPassword1">Password</label> -->
<input type="password" class="form-control" id="exampleInputPassword1" name=password placeholder="Password">
</div>
<button type="submit" class="btn btn-primary btn-block login_btn">Login</button>
<!-- <button type="button" onclick='document.location="signup";' class="btn btn-primary btn-block">Signup</button> -->
<!-- <div class="or_div"><p>OR</p></div> -->
<!-- Changes start - Commented below code for remove extra content from login screen - by YASHWANT on 10042017 -->
<!--
<div class="alternate_login">
<label class="pull-left"><a href='#' onclick='$("#owaform").hide();$("#otpform").show();return false;'>Alternate login via OTP</a></label>
<label class="pull-right"><a href='mailto:<?php echo Config::get("app.email"); ?>' class='pull-right'>Contact Support</a></label>
</div>
-->
<!-- Changes end - Commented below code for remove extra content from login screen - by YASHWANT on 10042017 -->
</form>
<form role="form" action="login" method=post id=otpform style='display:none'>
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="otplogin" value="true" />
<div class="form-group">
<input type="text" class="form-control" style="width:70%;float: left;margin-top: 3px;" id="exampleInputEmail2" name="username" placeholder="UserName">
<button type="button" class="btn btn-primary btn-block login_otp" onclick='getOTP();return false;'>Get OTP</button>
</div>
<div class="form-group">
<!-- <label for="exampleInputPassword2">Enter OTP</label>-->
<input type="password" class="form-control" id="exampleInputPassword2" name=password placeholder="Enter otp">
</div>
<button type="submit" class="btn btn-primary btn-block login_btn">Login</button>
<!-- <button type="button" onclick='document.location="signup";' class="btn btn-primary btn-block">Signup</button> -->
<div class="alternate_login">
<label>
<a href='#' onclick='$("#owaform").show();$("#otpform").hide();return false;'>Back to Login</a>
</label>
</div>
</form>
</div>
</div>
<p class="text-center"><?php /* $version['short'] }}{{ $version['date'] ? " - ".$version['date'] : "" */ ?></p>
<!-- <div class="col-sm-2 col-sm-4 col-sm-offset-4 text-center">
<a href="signup" class="btn btn-info">Create a new account? <i class="fa fa-pencil"></i> </a>
</div>-->
</div>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app.col-unscrollable -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END row-app -->
<script>
function getOTP()
{
var username=$("#exampleInputEmail2").val();
$("#alertdiv").html('<div class="alert alert-warning"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Please Wait..</strong> Sending OTP for User ('+username+')</div>');
doAjax('login?sendotp=1&otpuser='+username,'','','ajax_login_otp','singlefail','GET',function(){
});
}
</script>
<?php echo $__env->make('layout.footer', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php
}
?>
<?php
use App\Models\User;
$data = Auth::user()->data();
$meta = Auth::user()->meta();
if (!isset($data['personal'])) $data['personal'] = array();
?>
<script>
function openwelcomewizard() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET');
$("#welcome_wizard").modal('show');
}
$("#topuserdropmenu > li").hover(function() {
$(this).addClass('active');
},
function() {
$(this).removeClass('active');
});
</script>
<script>
var wel_usertype = '<?php echo Auth::user()->usertype; ?>';
var wel_accounttype = '<?php if (Auth::user()->usertype != '') echo Auth::user()->usertype;
else echo "learner"; ?>';
var wel_catagory = '<?php if (isset($data['personal']['interestcategories'])) echo $data['personal']['interestcategories']; ?>';
//var wel_subcatagory='';
var wel_fname = '<?php if (isset($data['personal']['fname'])) echo $data['personal']['fname']; ?>';
var wel_lname = '<?php if (isset($data['personal']['lname'])) echo $data['personal']['lname']; ?>';
var wel_gender = '<?php if (isset($data['personal']['gender'])) echo $data['personal']['gender']; ?>';
var wel_city = '<?php if (isset($data['personal']['location'])) echo $data['personal']['location']; ?>';
var wel_country = '<?php if (isset($data['personal']['country'])) echo $data['personal']['country']; ?>';
var wel_invites = '';
var wel_buycredits = '';
var wel_buysubscription = '';
var wel_themeselected = '';
$(document).ready(function() {
if (wel_usertype == '' || wel_catagory == '' || wel_fname == "" || wel_gender == "" || wel_city == "" || wel_country == "") {
//doAjax('social/<?php echo Auth::user()->id; ?>','show=wizard','welcome_wizard_body','ajax_wizard_show','singlefail','GET');
}
});
function hrmsSearch() {
createSearchRecordDiv("hrms_search_modald_body");
$("#hrms_search_modal").modal('show');
$("#maintextsearch_1_txt").focus();
}
function kDialerModel() {
updateDialerState();
$("#kDialer_modal").modal('show');
if ('<?php echo Auth::user()->sessiontype; ?>' == '1') {
$("#dialerQuickControlDiv").show();
kDialerConnected();
}
}
function welcomepayment() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard&payment=1', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET');
$("#welcome_wizard").modal('show');
}
function welcomeinvite() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard&welcomeinvite=1', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET', function() {
//setTimeout(function(){$("#inviteemailids").not('.kstych_init').addClass('kstych_init').select2({tags:[]});}, 1000);
});
$("#welcome_wizard").modal('show');
}
var currentsearchdivid = "";
function createSearchRecordDiv(divid) {
if (currentsearchdivid != "") $("#" + currentsearchdivid).html("");
currentsearchdivid = divid;
var searchRecordDivHTMLLI = "ID,FirstName,LastName,Client,Mobile,Email,Passport,IBAN,Status,ClientCode,InternalID,PersonalID".split(",");
searchRecordPreselectList = ["", "ID", "FirstName", "Mobile", "Email"];
var searchRecordDivHTML = "";
for (i = 1; i <= 4; i++) {
searchRecordDivHTML += "<div class=col-md-3>";
searchRecordDivHTML += "<div class='widget row widget-heading-simple widget-body-gray' >";
searchRecordDivHTML += "<div class='widget-body'><div class='input-group'>";
searchRecordDivHTML += "<div class='input-group-btn'>";
searchRecordDivHTML += "<div class='dropdown'>";
searchRecordDivHTML += "<button class='btn btn-default dropdown-toggle rounded-left' data-toggle='dropdown'><span id=maintextsearch_" + i + "_span>" + searchRecordPreselectList[i] + "</span> <span class='caret'></span></button>";
searchRecordDivHTML += "<ul class='dropdown-menu pull-left'>";
for (j = 0; j < searchRecordDivHTMLLI.length; j++) searchRecordDivHTML += "<li><a href='#' onclick='$(\"#maintextsearch_" + i + "_span\").html($(this).html());return false;'>" + searchRecordDivHTMLLI[j] + "</a></li>";
searchRecordDivHTML += "</ul>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "<input class='form-control' id='maintextsearch_" + i + "_txt' type='text' onkeyup='mainTextSearchStart();' />";
searchRecordDivHTML += "</div></div>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "</div>";
}
searchRecordDivHTML += "<div style='clear:both'></div>";
searchRecordDivHTML += "<div id=searchresults></div>";
$("#" + divid).html(searchRecordDivHTML);
}
</script>
<div class="modal" id="welcome_wizard">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Welcome to <?php echo Config::get("app.name"); ?></h4>
</div>
<div class="modal-body" id=welcome_wizard_body></div>
</div>
</div>
</div>
<div class="modal" id="hrms_search_modal">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"><?php echo Config::get("app.name"); ?> Search Record</h4>
</div>
<div class="modal-body" id=hrms_search_modald_body>
<!-- <input class='form-control' type="text" id=maintextsearch name="maintextsearch" value="Search..." onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size=20 /> -->
</div>
</div>
</div>
</div>
<div class="modal" id="kDialer_modal">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<div id=dialerQuickControlDiv class='col-md-12' style='display:none;'>
<div class=col-md-6>
<div class="input-group" style='width:350px;float:left' id=dialerstate_div>
<div class="input-group-btn">
<div class="dropdown">
<button class="btn btn-info dropdown-toggle rounded-left" data-toggle="dropdown" style='width:135px'><span id=dialerstate_btn>Paused</span> <span class="caret"></span></button>
<ul class="dropdown-menu pull-left" id='dialer_mode'>
<li><a href="#" onclick='pauseDialerState("dialer","mDialerState","Progressive");savedialermode();return false;'><b>Progressive</b></a></li>
<?php if (Auth::user()->group == 'ManualAllowed' || Auth::user()->group == 'Digital' || Auth::user()->usertype == 'Admin') { ?>
<li id=dialerManualAllowLI><a href="#" onclick='pauseDialerState("dialer","mDialerState","Manual");savedialermode("Manual");return false;'><b>Manual</b></a></li>
<?php } ?>
<li style='background:#68cc9e'><a href="#" onclick='pauseDialerState("dialer","mDialerState","Ready","mDialerSubState","Predictive");savedialermode("Predictive");return false;'><b>Predictive</b></a></li>
<li><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","Paused");savedialermode();return false;'><b>Pause</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","AgentBriefing");savedialermode();return false;'><b>AgentBriefing</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","TeamMeeting");savedialermode();return false;'><b>TeamMeeting</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","QualityFeedback");savedialermode();return false;'><b>QualityFeedback</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","LunchBreak");savedialermode();return false;'><b>LunchBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","TeaBreak");savedialermode();return false;'><b>TeaBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","UtilityBreak");savedialermode();return false;'><b>UtilityBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","FloorAnnouncements");savedialermode();return false;'><b>FloorAnnouncements</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","DownTime");savedialermode();return false;'><b>DownTime</b></a></li>
</ul>
</div>
</div>
<input class="form-control" id="manualdialnumber_txt" style='width:200px' type="text" />
<span class="input-group-addon btn btn-default" id=manualdial_btn dialaction=dialnext onclick='updateDialerState("action",$(this).attr("dialaction"),$("#manualdialnumber_txt").val());'></span>
</div>
<div class=pull-right>
<a href='#' onclick='return false;' class='btn btn-default' id=dialertimes1>
<i class='fa fa-fw fa-clock-o'></i> <span id=spandialer_ts></span>
</a>
</div>
</div>
<div class=col-md-6>
<div class=pull-left>
<a href='#' onclick='return false;' class='btn btn-default' id=dialertimes2 style='display:none'>
<i class='fa fa-fw fa-phone'></i> <span id=spandialer_num onclick=''></span>
<!-- onclick='dialerDispNumberClick(); -->
</a>
</div>
<div class=pull-left>
<a href='#' onclick='dialerDispNumberClick();return false;' style='display:none' class='btn btn-default' id=dialertimes3>
<i class='fa fa-fw fa-phone'></i>
</a>
</div>
<div id=dialerToggleViewDiv style='float:right;margin-right:20px;'>
<button class="btn btn-circle btn-default"><i class="fa fa-phone"></i></button>
<i class="fa fa-long-arrow-left"></i>
<div class="dropdown dropdown-icons" id=connections_div_u>
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-primary btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_u_a><i class="fa fa-chain-broken" id=conficon_u_i></i> </a>
<ul class="dropdown-menu">
<li data-toggle="tooltip" data-title="MuteSpeaker" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-volume-off"></i></a></li>
<li data-toggle="tooltip" data-title="MuteMic" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-microphone-slash"></i></a></li>
<li data-toggle="tooltip" data-title="Hangup" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-times-circle"></i></a></li>
<li data-toggle="tooltip" data-title="Hold" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-pause"></i></a></li>
</ul>
</div>
<div class="dropdown dropdown-icons" id=connections_div_c>
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-primary btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_c0_a><i class="fa fa-chain-broken" id=conficon_c0_i></i> </a>
<ul class="dropdown-menu">
<li data-toggle="tooltip" data-title="MuteSpeaker" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-volume-off"></i></a></li>
<li data-toggle="tooltip" data-title="MuteMic" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-microphone-slash"></i></a></li>
<li data-toggle="tooltip" data-title="Hangup" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-times-circle"></i></a></li>
<li data-toggle="tooltip" data-title="Hold" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-pause"></i></a></li>
</ul>
</div>
<i class="fa fa-long-arrow-right"></i>
<div class="dropdown dropdown-icons">
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-default btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_c_mn><i class="fa fa-user" id=conficon_c_mi></i> </a>
<ul class="dropdown-menu">
<li><a href="#" onclick='$("#topdialerconfcall").toggle();return false;'><i class="fa fa-plus"></i></a></li>
</ul>
</div>
<div id=topdialerconfcall style='display:none'>
<input type=text class='form-control' style='width: 130px;float: left;' size=10 id=topaddconfcalltxt><a href=# class='btn btn-default' onclick='dialertopaddconf();return false;'><i class='fa fa-phone'></i></a>
</div>
<script>
function dialertopaddconf() {
var confnumber = $("#topaddconfcalltxt").val();
if (confnumber == '' || confnumber.length < 2) {
simpleNotification('error', 'topRight', "Empty Number");
return;
}
if (!kcallHasConnection(kstychCall['callnumber']) || kstychCall['ts_Dispo'] > 1) {
simpleNotification('error', 'topRight', "No call to conference");
return;
}
var datastr = "kstychCall=" + JSON.stringify(kstychCall);
datastr += "&kstychDialer=" + JSON.stringify(kstychDialer);
kcallNewConnection(confnumber);
doAjax('dialer?action=addconfcall&confnumber=' + confnumber, datastr, '__fake__div__', 'ajax_confdial', 'singlefail', 'POST', function(retstr) {
if (retstr.responseText.indexOf('Error') < 0) {
kcallSetConnection(confnumber, 'callid', retstr.responseText);
kcallSetConnection(confnumber, 'ts_Call', getNowTS());
updateDialerState();
} else {
simpleNotification('error', 'topRight', retstr.responseText);
}
});
$("#topdialerconfcall").hide();
}
</script>
</div>
</div>
</div>
<div style='clear:both'></div>
</div>
<div class="modal-body" id=kDialer_modal_body>
<div id=dialerToggleViewMainDiv style=''>
<div id=dialerSearchDiv>
<div id=dialersearchbox></div>
<div id=dialersearchresults></div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
This diff could not be displayed because it is too large.
<?php $__env->startSection('main_menu'); ?>
<?php echo $__env->make('layout.main_menu', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('top_menu'); ?>
<?php echo $__env->make('layout.top_menu', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('main_content'); ?>
<script>
$(document).ready(function(){
if(document.location.hash=="")doAjax("dashboard?tz="+(new Date()).getTimezoneOffset()+'&d=<?php echo Input::get("d"); ?>','','content','ajax_dashboard','singlethis','GET',function(){try{}catch(e){}});
else kstychHashFunction();
<?php if(Config::get("app.extAuth")!=""){ ?>doAjax("dashboard/r",'','','ajax_dashboard_r','singlethis','GET');<?php } ?>
if ($.browser.msie)document.location="msie";
if (typeof kDesktopNotification === 'function')kDesktopNotification("","","",10);
incomingPresense("","","");
});
if (navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS/i))
{
$("#menu-top").css({'padding-top':'20px','height':'60px'});
$("#content").css({'margin-top':'60px'});
}
document.addEventListener('deviceready', function() {
$(document).on('click', 'a[target="_system"],a[target="_blank"]', function (e) {
e.preventDefault();
var url = this.href;
if(navigator.app)navigator.app.loadUrl(url, { openExternal:true });
else if(innappbrowser)cordova.exec(function(){}, function(){}, "InAppBrowser", "open", [url, "_system", null]);
else window.open(url,"_system");
//$("#welcome_wizard_body").html("<iframe style='width:100%;min-height:400px;height:100%' src='"+url+"'></iframe>");
//$("#welcome_wizard").modal('show');
});
});
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layout.layout', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
\ No newline at end of file
<?php
use App\Jobs\KHRMSLib;
use \App\Models\User;
function gitVersion(){
exec('git describe --always',$version_mini_hash);
exec('git rev-list HEAD | wc -l',$version_number);
exec('git log -1',$line);
$version['short'] = "v0.".trim($version_number[0]);
$version['full'] = "v0.".trim($version_number[0]).".$version_mini_hash[0] (".str_replace('commit ','',$line[0]).")";
$version['date'] = $line[3];
return $version;
}
// $version = gitVersion();
if(Input::get('sendotp')=="1")
{
$otpuser=trim(Input::get('otpuser'));
$user=User::where('username','=',$otpuser)->first();
if($user)
{
$otpemail=$user->email;
$otp=rand(100000, 999999);
$user->password=Hash::make($otp);
$meta=$user->meta();
if(!isset($meta['otp_array']))$meta['otp_array']=array();
if(!isset($meta['otp_array'][date('Ymd')])){$meta['otp_array']=array();$meta['otp_array'][date('Ymd')]=0;}
$meta['otp_array'][date('Ymd')]++;
if($meta['otp_array'][date('Ymd')]<=3)
{
$user->meta=json_encode($meta);
$user->save();
Mail::send('emails.notification',
array(
'heloname'=>'',
'line1'=>'Your OTP for Login : '.$otp.' ',
'line2'=>'Please visit <a href="'.URL::to('/').'"><b>'.Config::get("app.name").' </b></a> and You can login using this OTP.',
'line3'=>'',
'notifytype'=>'OTP'), function($message) use ($otpemail)
{
$message->to($otpemail,$otpemail);
$message->subject(Config::get("app.name")." OTP for Login");
});
echo "$(\"#alertdiv\").html('<div class=\"alert alert-success\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Success</strong> OTP Sent to ($otpemail)</div>');";
}
else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Too many reuests ($otpemail), please try after 24 hrs</div>');";
}
else echo "$(\"#alertdiv\").html('<div class=\"alert alert-danger\"><button type=button class=close data-dismiss=alert>&times;</button><strong>Failed</strong> Invalid User </div>');";
}
else
{
?>
<?php echo $__env->make('layout.header', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<style>
body {
background: url(assets/images/main.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.layout-app .col-separator{
background: url(assets/images/main.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
html.app .layout-app .col-separator{
margin:0px !important;
}
.blur_bg{
}
html.app .layout-app{
top: 0px;
bottom: 0px;
}
.login{
background: #fff;
border-radius: 2px;
top: 15%;
-webkit-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
-moz-box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
box-shadow: 0px 7px 22px 0px rgb(131, 151, 167);
}
.login_head{
background: #fff;
border-radius: 2px 2px 0px 0;
margin: 0 -5px;
}
.login_head img{
margin: 0 auto;
display: block;
padding: 20px 0px 0px;
border: 0px;
/*height:70px;*/
}
.login_head span{
color: #505050;
display: block;
text-align: center;
margin-top: 10px;
font-size: 15px;
text-transform: uppercase;
font-weight: 600;
}
.login_head p{
font-family: 'Open-Sans', sans-serif;
font-weight: 400;
line-height: 30px;
font-size: 15px;
color: #505050;
-webkit-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
-moz-box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
box-shadow: inset 0px -2px 10px -8px rgba(20,20,20,1);
}
.panel{
background: transparent;
border: 0px;
box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
-webkit-box-shadow: 0 0px 0px rgba(0, 0, 0, 0.05);
}
.form-control::-webkit-input-placeholder {
color: #5F5F5F;
}
.form-control:-moz-placeholder {
color: #5F5F5F;
}
.form-control::-moz-placeholder {
color: #5F5F5F;
}
.form-control:-ms-input-placeholder {
color: #5F5F5F;
}
.form-control{
background: transparent;
border: 0px;
border-bottom: 1px solid #5F5F5F !important;
font-weight: 600;
}
input[type="text"]:focus, input[type="text"]:active, input[type="text"]:hover{
background: transparent;
font-weight: 900;
}
input[type="text"], input[type="password"], select, textarea{
color: #5F5F5F;
}
.login_btn{
margin-top: 40px;
border-radius: 0px;
background: #4B9DD8;
border: 0px;
padding: 10px;
font-weight: 600;
text-transform: uppercase;
color: #fff;
}
.login_btn:hover, .login_btn:active, .login_btn:focus{
background: #8DC4EA;
color: #fff
}
.login_otp{
width: 30%;
border-radius: 0px;
background: #5F5F5F;
border: 0px;
padding: 10px;
font-weight: 600;
text-transform: uppercase;
color: #FFFFFF;
font-size: 12px;
}
.login_otp:hover, .login_otp:active, .login_otp:focus{
border:1px solid #5F5F5F;
color: #5F5F5F;
padding:9px 10px;
}
.alternate_login{
margin-top: 30px;
}
/* .alternate_login label{
background: #89ceff;
padding: 10px 20px;
border-radius: 2px;
}*/
.alternate_login label a{
color: #4B9DD8;
}
.alternate_login label a:hover{
color:#5B86A5;
}
.or_div{
line-height: 0.5;
text-align: center;
width: 100%;
margin-top: 20px;
}
.or_div p{
display: inline-block;
position: relative;
color: #505050;
font-weight: 600;
border: 1px solid #505050;
width: 40px;
height: 40px;
line-height: 40px;
border-radius: 50%;
}
.or_div p:before, .or_div p:after{
content: "";
position: absolute;
height: 5px;
border-bottom: 1px solid #7D7D7D;
top: 15px;
width: 130px;
}
.or_div p:before{
right: 100%;
}
.or_div p:after{
left: 100%;
}
.alert.alert-danger {
background: none repeat scroll 0 0 #F95B5B;
border-color: #F95B5B;
color: #ffffff;
border-radius: 0;
padding: 10px;
}
.alert.alert-warning{
background: none repeat scroll 0 0 #FFA84F;
border-color: #FFA84F;
color: #ffffff;
border-radius: 0;
padding: 10px;
}
</style>
<div class="layout-app" style="height: 100%;"><!-- row-app -->
<div class="row row-app" style="height: 100%;">
<!-- col -->
<!-- col-separator.box -->
<div class="col-separator col-unscrollable box" style="height: 100%;">
<!-- col-table -->
<div class="col-table blur_bg" style="height: 100%;">
<!-- col-table-row -->
<div class="col-table-row" style="height: 100%;">
<!-- col-app -->
<div class="col-app col-unscrollable" style="height: 100%;">
<!-- col-app -->
<div class="col-app" style="height: 100%;">
<div class="login col-sm-4 col-sm-offset-4">
<div class="login_head">
<div class="row">
<div class="col-xs-1"></div>
<div class="col-xs-10">
<img src="custom/logo.png" class="pull-left">
<img src="custom/flexydial-logo-small.png" class="pull-right">
</div>
</div>
<p class="innerAll margin-none text-center hidden-xs">Login to your account</p>
</div>
<div class="panel panel-default col-sm-12">
<div class="panel-body">
<div id='alertdiv'>
<?php
$class="";
$type="";
$msg="";
if(isset($error))
{
if($error=="activationsuccess"){$class="success";$type="Verified!";$msg="Congratulations, your account is now active, please login to continue.";}
else if($error=="authfailed"){$class="danger";$type="Login Failed!";$msg="Incorrect Email id or password.";}
else if($error=="Unverified"){$class="danger";$type="Verification Required!";$msg="We have sent a verification mail to your email id, please follow instructions in the mail.";}
else if($error=="alreadyverified"){$class="warning";$type="Already Verified!";$msg="You have already verified your account.";}
else if($error=="msie"){$class="info";$type="Internet Explorer Detected!";$msg="This application doesnot work with MS Internet explorer, please download <a href='http://firefox.com' target=_BLANK>Mozilla Firefox</a> or <a href='http://google.com/chrome' target=_BLANK>Google Chrome</a> to use.";}
else if($error=="forgotpassword"){$class="info";$type="Password Reminder Sent";$msg="Please check your email for instructions to login to your account. Thankyou";}
else if($error=="passwordchanged"){$class="success";$type="Password Changed successfully";$msg="You can now login with your new password below!";}
else if($error=="resetexpired"){$class="danger";$type="Link Expired";$msg="The Link You used is now Expired!";}
else if($error=="Disabled"){$class="danger";$type="Disabled";$msg="This user account has been disabled, please contact Support!";}
else if($error=="cutoff"){$class="danger";$type="Login";$msg="It disable for today";}
else {$class="danger";$type="Failed!";$msg="Unknown Error. Method not found";}
?>
<!-- Alert -->
<div class="alert alert-<?php echo $class; ?>">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong><?php echo $type; ?></strong> <?php echo $msg; ?>
</div>
<!-- // Alert END -->
<?php } ?>
</div>
<form role="form" action="login" method=post id=owaform>
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<div class="form-group">
<!-- <label for="exampleInputEmail1">Login ID <?php if(Config::get("app.extAuth")=="owa")echo "(Domain Login)"; ?></label> -->
<input type="text" class="form-control" id="exampleInputEmail1" name=username placeholder="Login ID">
</div>
<div class="form-group">
<!-- <label for="exampleInputPassword1">Password</label> -->
<input type="password" class="form-control" id="exampleInputPassword1" name=password placeholder="Password">
</div>
<button type="submit" class="btn btn-primary btn-block login_btn">Login</button>
<!-- <button type="button" onclick='document.location="signup";' class="btn btn-primary btn-block">Signup</button> -->
<!-- <div class="or_div"><p>OR</p></div> -->
<!-- Changes start - Commented below code for remove extra content from login screen - by YASHWANT on 10042017 -->
<!--
<div class="alternate_login">
<label class="pull-left"><a href='#' onclick='$("#owaform").hide();$("#otpform").show();return false;'>Alternate login via OTP</a></label>
<label class="pull-right"><a href='mailto:<?php echo Config::get("app.email"); ?>' class='pull-right'>Contact Support</a></label>
</div>
-->
<!-- Changes end - Commented below code for remove extra content from login screen - by YASHWANT on 10042017 -->
</form>
<form role="form" action="login" method=post id=otpform style='display:none'>
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="otplogin" value="true" />
<div class="form-group">
<input type="text" class="form-control" style="width:70%;float: left;margin-top: 3px;" id="exampleInputEmail2" name="username" placeholder="UserName">
<button type="button" class="btn btn-primary btn-block login_otp" onclick='getOTP();return false;'>Get OTP</button>
</div>
<div class="form-group">
<!-- <label for="exampleInputPassword2">Enter OTP</label>-->
<input type="password" class="form-control" id="exampleInputPassword2" name=password placeholder="Enter otp">
</div>
<button type="submit" class="btn btn-primary btn-block login_btn">Login</button>
<!-- <button type="button" onclick='document.location="signup";' class="btn btn-primary btn-block">Signup</button> -->
<div class="alternate_login">
<label>
<a href='#' onclick='$("#owaform").show();$("#otpform").hide();return false;'>Back to Login</a>
</label>
</div>
</form>
</div>
</div>
<p class="text-center"><?php /* $version['short'] }}{{ $version['date'] ? " - ".$version['date'] : "" */ ?></p>
<!-- <div class="col-sm-2 col-sm-4 col-sm-offset-4 text-center">
<a href="signup" class="btn btn-info">Create a new account? <i class="fa fa-pencil"></i> </a>
</div>-->
</div>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app.col-unscrollable -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END row-app -->
<script>
function getOTP()
{
var username=$("#exampleInputEmail2").val();
$("#alertdiv").html('<div class="alert alert-warning"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Please Wait..</strong> Sending OTP for User ('+username+')</div>');
doAjax('login?sendotp=1&otpuser='+username,'','','ajax_login_otp','singlefail','GET',function(){
});
}
</script>
<?php echo $__env->make('layout.footer', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php
}
?>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-2 col-sm-3">
<!-- col-separator -->
<div class="col-separator col-separator-first box col-unscrollable">
<!-- col-table -->
<div class="col-table" style='padding-left: 13px;padding-right: 13px;'>
<h4 class="innerAll margin-none border-bottom" style='background: #fff;'>Admin Dashboard</h4>
<!-- col-table-row -->
<div class="col-table-row">
<!-- col-app -->
<div class="col-app col-unscrollable">
<!-- col-app -->
<div class="col-app">
<ul class="list-group list-group-1 margin-none borders-none" style='padding-right: 26px;'>
<li class="list-group-item">
<a href="#" onclick="doAjax('admin/main','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> Main</a>
</li>
<li class="list-group-item">
<a href="#" onclick="doAjax('admin/agentreport','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> Login</a>
</li>
<li class="list-group-item">
<a href="#" onclick="doAjax('admin/liveusers','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> Live</a>
</li>
<!-- <li class="list-group-item">
<a href="#" onclick="doAjax('admin/recarchive','','rightmainreportdiv','ajax_dialer_reports','singlethis','GET');return false"><i class="fa fa-circle-o"></i> Recordings</a>
</li>-->
</ul>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-10 col-sm-9" style='border-right:13px solid #eaeaea'>
<!-- col-separator.box -->
<div class="col-separator col-unscrollable box">
<!-- col-table -->
<div class="col-table">
<!-- <h4 class="innerAll margin-none border-bottom">My Sessions</h4> -->
<!-- col-table-row -->
<div class="col-table-row" style='background: #fff;'>
<!-- col-app -->
<div class="col-app col-unscrollable">
<!-- col-app -->
<div class="col-app" style='position:relative'>
<div class="" id=rightmainreportdiv>
<script>
doAjax('admin/main','','rightmainreportdiv','ajax_admin_reports','singlethis','GET');
</script>
</div>
</div>
<!-- // END col-app -->
</div>
<!-- // END col-app.col-unscrollable -->
</div>
<!-- // END col-table-row -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
</div>
<!-- // END row-app -->
</div>
<?php
$client=Input::get("client");
$monthworkdays=base64_encode(Input::get("monthworkdays"));
$agencyfeesvalue=base64_encode(Input::get("agencyfeesvalue"));
$agencyfeefunction=base64_encode(Input::get("agencyfeefunction"));
$contractstartdate=base64_encode(Input::get("contractstartdate"));
$contractenddate=base64_encode(Input::get("contractenddate"));
$insurancerequired=base64_encode(Input::get("insurancerequired"));
$servicedby=base64_encode(Input::get("servicedby"));
$contactname=base64_encode(Input::get("contactname"));
$contactemail=base64_encode(Input::get("contactemail"));
$contactphone=base64_encode(Input::get("contactphone"));
$hrsendfiles=base64_encode(Input::get("hrsendfiles"));
$contactnameacct=base64_encode(Input::get("contactnameacct"));
$contactemailacct=base64_encode(Input::get("contactemailacct"));
$contactphoneacct=base64_encode(Input::get("contactphoneacct"));
$offerletter=base64_encode($_POST["offerletter"]);
$confirmationletter=base64_encode($_POST["confirmationletter"]);
$promotionletter=base64_encode($_POST["promotionletter"]);
$appraisalletter=base64_encode($_POST["appraisalletter"]);
$warningletter=base64_encode($_POST["warningletter"]);
$terminationletter=base64_encode($_POST["terminationletter"]);
$nocletter=base64_encode($_POST["nocletter"]);
$experienceletter=base64_encode($_POST["experienceletter"]);
$endofserviceletter=base64_encode($_POST["endofserviceletter"]);
$yrmeternityleaves=base64_encode(Input::get("yrmeternityleaves"));
$yrsickleaves=base64_encode(Input::get("yrsickleaves"));
$yrannualleaves=base64_encode(Input::get("yrannualleaves"));
$yemaxcarryleaves=base64_encode(Input::get("yemaxcarryleaves"));
$trackerfields=base64_encode(Input::get("trackerfields"));
$campaignscript=base64_encode(Input::get("campaignscript"));
$did='';
$autodial='';
$voiceblaster='';
if(Input::get("dialer_did"))
$did="DialerDID=".Input::get("dialer_did");
if(Input::get("autodial_pacing"))
$autodial="autodialercampaign=".Input::get("autodial_pacing");
if(Input::get("vb_pacing"))
$voiceblaster="vbpace=".Input::get("vb_pacing");
else
$voiceblaster="vbpace=1";
$textmessage="textmessage=".Input::get("textmessage");
$mergedeveloperparam = $did."\n".$autodial."\n".$voiceblaster."\n".$textmessage;
$developerparam=base64_encode($mergedeveloperparam);
//$developerparam=base64_encode(str_replace('\n',"\n",Input::get("developerparam")));
$campaigncrmfields=Input::get("campaigncrmfields");
// code start - calling mode assign campaign wise functionality - by YASHWANT on 11042017
$campaignCallingMode=base64_encode(Input::get("campaignCallingMode"));
// code end - calling mode assign campaign wise functionality - by YASHWANT on 11042017
$mvalue ="monthworkdays~$monthworkdays|";
$mvalue.="agencyfeesvalue~$agencyfeesvalue|";
$mvalue.="agencyfeefunction~$agencyfeefunction|";
$mvalue.="contractstartdate~$contractstartdate|";
$mvalue.="contractenddate~$contractenddate|";
$mvalue.="insurancerequired~$insurancerequired|";
$mvalue.="servicedby~$servicedby|";
$mvalue.="contactname~$contactname|";
$mvalue.="contactemail~$contactemail|";
$mvalue.="contactphone~$contactphone|";
$mvalue.="hrsendfiles~$hrsendfiles|";
$mvalue.="contactnameacct~$contactnameacct|";
$mvalue.="contactemailacct~$contactemailacct|";
$mvalue.="contactphoneacct~$contactphoneacct|";
$mvalue.="offerletter~$offerletter|";
$mvalue.="confirmationletter~$confirmationletter|";
$mvalue.="promotionletter~$promotionletter|";
$mvalue.="appraisalletter~$appraisalletter|";
$mvalue.="warningletter~$warningletter|";
$mvalue.="terminationletter~$terminationletter|";
$mvalue.="nocletter~$nocletter|";
$mvalue.="experienceletter~$experienceletter|";
$mvalue.="endofserviceletter~$endofserviceletter|";
$mvalue.="yrmeternityleaves~$yrmeternityleaves|";
$mvalue.="yrsickleaves~$yrsickleaves|";
$mvalue.="yrannualleaves~$yrannualleaves|";
$mvalue.="yemaxcarryleaves~$yemaxcarryleaves|";
$mvalue.="developerparam~$developerparam|";
$mvalue.="trackerfields~$trackerfields|";
$mvalue.="campaignscript~$campaignscript|";
// code start - calling mode assign campaign wise functionality - by YASHWANT on 11042017
$mvalue.="campaignCallingMode~$campaignCallingMode|";
// code end - calling mode assign campaign wise functionality - by YASHWANT on 11042017
if($wakka->getCount("hrms_masters","mkey='$client' and mtype='company'")==0)$companyarr=$wakka->Query("insert into hrms_masters set mvalue='',mkey='$client',mtype='company';");
$companyarr=$wakka->Query("update hrms_masters set mvalue='$mvalue' where mkey='$client' and mtype='company';");
if($wakka->getCount("hrms_masters","mkey='$client' and mtype='coreconfig'")==0)
$companyarr=$wakka->Query("insert into hrms_masters set mvalue='',mkey='$client',mtype='coreconfig';");
$companyarr=$wakka->Query("update hrms_masters set mvalue='$campaigncrmfields' where mkey='$client' and mtype='coreconfig';");
//if(!Auth::user()->moduleACL("Admin",true,true,true))$wakka->createMailQueue("system",$wakka->getEmailIdsFromList('HRManagerUsers'),Config::get("app.name").": Client Master Changed","[".$wakka->GetUserName()."] Has changed Clients [$client] Master Data");
echo "<div class='message success close'><h2>Success!</h2><p>Data Saved</p></div>";
echo "<script>simpleNotification('success','topRight','Saves Successfully');</script>";
?>
<style>
.heading-buttons h4{
line-height:20px;
}
</style>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-12">
<!-- col-separator.box -->
<div class="col-separator col-separator-first col-unscrollable box">
<!-- col-table -->
<div class="col-table" id=authorworkspacediv>
<!-- Search Bar -->
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for Users..." id=adminu_Search>
<span class="input-group-btn">
<button class="btn btn-primary rounded-none" type="button" onclick="adminSearchUser();return false"><i class="fa fa-search"></i></button>
</span>
</div>
<div class="col-separator-h"></div>
<!-- End Search Bar -->
<div class="col-table-row">
<div class="col-app col-unscrollable">
<div class="col-app">
<div class="row-app">
<div class="col-md-6">
<div class="col-separator">
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick="doAjax('user/create','','userformdiv','ajax_users_create','singlethis','GET');return false"><i class="fa fa-plus fa-fw"></i> New User</a>
<h4 class="innerTB margin-bottom-none">Users</h4>
<div class="clearfix"></div>
</div>
<!-- End Category Heading -->
<?php echo $userlist->render(); ?>
<?php foreach ($userlist as $tuser)
{
$tphoto=$tuser->fetchphotothumb();
?>
<!-- Category Listing -->
<div class="row innerAll half border-bottom bg-gray-hover">
<div class="col-sm-6 col-xs-8">
<ul class="media-list margin-none">
<li class="media">
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span>
</a>
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>','','userformdiv','ajax_users_delete','singlethis','DELETE');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-trash-o"></i></span>
</a>
<div class="media-body">
<div class="innerAll">
<h5 class=""><a href="#" class="media-heading text-primary">Modules</a></h5>
<div class="clearfix"></div>
<small class="margin-none label label-inverse">Social</small>
<small class="margin-none label label-inverse">HR</small>
<small class="margin-none label label-inverse">Reports</small>
<small class="margin-none label label-inverse">CRM</small>
</div>
</div>
</li>
</ul>
</div>
<div class="col-sm-3 col-xs-4">
<div class="text-center">
<p class="strong">Tasks</p>
<span class="badge badge-primary" data-toggle="tooltip" data-title="Published" data-placement="left" data-container="body">0</span>
<span class="badge badge-primary badge-stroke" data-toggle="tooltip" data-title="Subscribed" data-placement="right" data-container="body">0</span>
</div>
</div>
<div class="col-sm-3 col-xs-hidden">
<div class="innerAll">
<div class="media">
<a href="#" class="pull-left">
<img src="<?php echo $tphoto; ?>" class="media-object" width=35px />
</a>
<div class="media-body">
<a href="#" class="text-small" title='<?php echo $tuser->id; ?> - <?php echo $tuser->created_at; ?>' onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;"><?php echo $tuser->dispname(); ?></a>
<div class="clearfix"></div>
<small>
<?php if($tuser->status=="Active"): ?>
<span class="label label-success"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Disabled"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Unverified"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Blocked"): ?>
<span class="label label-important"><?php echo $tuser->status; ?></span>
<?php endif; ?>
</small>
</div>
</div>
</div>
</div>
</div>
<!-- // END Category Listing -->
<?php } ?>
<?php echo $userlist->render(); ?>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-6">
<!-- col-separator -->
<div class="col-separator col-separator-last" id=userformdiv>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
</div>
<!-- // END row-app -->
</div>
<script>
$(".pagination a").click(function(e){
e.preventDefault();
var url=$(this).attr("href");
var res = url.split("page=");
menuAction("user?page="+res[1]);
return false;
});
function adminSearchUser()
{
doAjax('user?search='+$('#adminu_Search').val(),'','content','ajax_users_create','singlethis','GET');
}
</script>
\ No newline at end of file
<?php echo $__env->make('layout.header', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php echo $__env->yieldContent('main_menu'); ?>
<?php echo $__env->yieldContent('top_menu'); ?>
<!-- Main Container Fluid -->
<div class="container-fluid">
<div id='absolutedivcontent' style='z-index:1;position:absolute;display:none'></div>
<div id="content">
<?php echo $__env->yieldContent('main_content'); ?>
</div>
<div class="clearfix"></div>
<div id="footer" class="hidden-print" style='display:none'>
<div class="copy">v<?php echo Config::get('app.app_version'); ?></div>
</div>
<!-- // Footer END -->
</div>
<!-- // Main Container Fluid END -->
<?php echo $__env->make('layout.footer', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<style type="text/css">
.marquee {
color: red;
white-space: nowrap;
overflow: hidden;
box-sizing: border-box;
}
.marquee p {
display: inline-block;
padding-left: 100%;
animation: marquee 15s linear infinite;
}
.label{
font-size: 100%;
}
@keyframes marquee {
0% { transform: translate(0, 0); }
100% { transform: translate(-100%, 0); }
}
</style>
<?php
use App\Jobs\KHRMSLib;
use App\Models\CRMCall;
use App\Models\UserLog;
$dashboarduser=Auth::user();
$timeoffset = $dashboarduser->timezone;
$timeoffset = $timeoffset*60;
$logtime =(isset($_GET['logtime'])) ? $_GET['logtime'] :9;
$logtimeto =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20;
$logdate =(isset($_GET['logdate'])) ? strtotime($_GET['logdate']." ".$logtime.":00:00")
: strtotime(date("Y-m-d")." 09:00:00");
$logdateto =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00"): strtotime(date("Y-m-d")." 20:00:00");
$breaks=array("Paused","AgentBriefing","TeamMeeting","QualityFeedback","LunchBreak","TeaBreak","UtilityBreak","FloorAnnouncements","DownTime");
$reporthead=array_merge(array("#","Telecaller","TelecallerID","Supervisor","Signin","Signout","Count","Duration","Total","Preview","Wait","Call","Talk","Dispo"),$breaks);
$alist_user=CRMCall::where('user_id','=',Auth::user()->id)->where('created_at','like','%' . date("Y-m-d") .'%')->where('created_at','like','%'.date("Y-m-d").'%')->get();
$userlog=UserLog::where('user_id','=',Auth::user()->id)->where('created_at','like','%' . date("Y-m-d") .'%')->where('created_at','like','%'.date("Y-m-d").'%')->get();
$reportarray=array();
$prev_close = 0;
$progTs_Wait=0;
$prev_user =0;
$predTs_Wait=0;
$uniquelanarray=array();
foreach ($alist_user as $row)
{
if($prev_user != $row->user_id || $prev_close <= $row->ts_Wait)
{
if($row->type == 'Progressive')
{
$progTs_Wait = $row->waitSec;
}
if($row->type == 'Auto')
{
$predTs_Wait = $row->waitSec;
}
$talktime1=$row->talkSec+$row->recstartSec+$row->recendSec;
$totaltime1=$row->callSec+$talktime1+$row->dispoSec+$progTs_Wait+$predTs_Wait;
if(!array_key_exists($row->user_id, $reportarray)) {
$reportarray[$row->user_id] = array();
$reportarray[$row->user_id]['oncall']=0;
$reportarray[$row->user_id]['Lan']=0;
}
$reportarray[$row->user_id]["oncall"]+=$totaltime1/1000;
if (!in_array($row->lan, $uniquelanarray)) $uniquelanarray[]=$row->lan;
$reportarray[$row->user_id]["Lan"] = count($uniquelanarray);
}
$prev_close = $row->ts_Close;
$prev_user = $row->user_id;
}
$userLogin=array();
foreach($userlog as $ulog)
{
$data1=json_decode($ulog->data,true);
$sdts =$logdateto+$timeoffset;
$data = array();
foreach ($data1 as $datavalue) {
$dts = round(($datavalue['ts'])/1000);
if($sdts > $dts){
array_push($data, $datavalue);
}
}
usort($data, "cmp");
if(!empty($data)){
$lastSip = end($data);
$starttime = strtotime($ulog->startdate.' '.$ulog->starttime);
$endtime = round($lastSip['ts']/1000);
if(!array_key_exists($ulog->user_id, $userLogin)) {
$userLogin[$ulog->user_id] = array();
$userLogin[$ulog->user_id]['duration']=0;
}
$userLogin[$ulog->user_id]['duration'] += ($endtime-$starttime);
$userLogin[$ulog->user_id]['start'][] = $starttime;
$userLogin[$ulog->user_id]['end'][] = $endtime;
$prets=strtotime($ulog->startdate." ".$ulog->starttime)*1000;
$previous="Paused-Paused";
foreach($data as $sdata)
{
$pts=$sdata['ts'];
if(isset($sdata['states']))
{
foreach($sdata['states'] as $ts=>$states)
{
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) {
$previous = 'Paused';
}
if(!array_key_exists($ulog->user_id, $reportarray))
{
$reportarray[$ulog->user_id] = array();
}
if(!array_key_exists($previous, $reportarray[$ulog->user_id]))
{
$reportarray[$ulog->user_id][$previous]=0;
}
$reportarray[$ulog->user_id][$previous]+=round($ts-$prets,2)/1000;
$prets=$ts;
$previous=$states[0].'-'.$states[1];
}
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!array_key_exists($ulog->user_id, $reportarray))
{
$reportarray[$ulog->user_id] = array();
}
if(!array_key_exists($previous, $reportarray[$ulog->user_id]))
{
$reportarray[$ulog->user_id][$previous]=0;
}
$reportarray[$ulog->user_id][$previous]+=round($pts-$prets,2)/1000;
$prets=$pts;
}
}
}
}
if(count($userLogin)) foreach ($userLogin as $userid => $value)
{
$break_time=0;
foreach ($breaks as $break) {
if(!array_key_exists($break, $reportarray[$userid]))
{
$reportarray[$userid][$break]=0;
}
$break_time+=$reportarray[$userid][$break];
}
$reportarray[$userid]["Signin"]=date("H:i:s", min($value['start'])-$timeoffset);
$reportarray[$userid]["Signout"]=date("H:i:s", max($value['end'])-$timeoffset);
$reportarray[$userid]["Duration"]=$value['duration'];
$reportarray[$userid]["Total"]=$value['duration']-$break_time;
$reportarray[$userid]["Break"]=$break_time;
}
function cmp($a, $b) {
return $a["ts"] - $b["ts"];
}
function secToDuration($sec) {
return sprintf("%02d%s%02d%s%02d", floor($sec/3600), ':', ($sec/60)%60, ':', $sec%60);
}
$campSel = Session::get('campSel');
$wakka=new KHRMSLib();
$dispoclassarr=array('NC'=>array(0,array()),'CC'=>array(0,array()),'CB'=>array(0,array()),'NA'=>array(0,array()));
$owclientstr=array();
$oclientlst=$wakka->clientsOwnerRWAccess();
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
$owclientstr[]="'$tclnt'";
if($client=="")$client=$tclnt;
}
if(!empty($owclientstr))$owclientstr="and client in (".implode(",",$owclientstr).")";else $owclientstr="";
if($client!="")$owclientstr="client='$client' and";
$roclientstr=array();$didlinesstr=array();if(Auth::user()->exten!="")$didlinesstr[]=Auth::user()->exten;
$roclientlst=$wakka->clientsReadAccess();
if(!empty($roclientlst))foreach($roclientlst as $tclnt)if($tclnt!="")
{
$roclientstr[]="'$tclnt'";
if($client=="")$client=$tclnt;
$mastersdata=$wakka->getCompanyMaster($tclnt);
if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
if(empty($mastersdata['dialerDispoList']))$mastersdata['dialerDispoList']=$wakka->HRCoreVars['dialerDispoList'];
$dispoarr=explode("~",$mastersdata['dialerDispoList']);
foreach($dispoarr as $dispo)
{
if(!empty($dispo))
{
$dispoprts=explode("|",$dispo);
if(sizeof($dispoprts)>=3)
{
if(isset($dispoclassarr[$dispoprts[0]]))
{
$dispoclassarr[$dispoprts[0]][1][]=$dispoprts[1];
}
}
}
}
}
foreach($didlinesstr as $k=>$dids)
{
$didarr=explode(":",$dids);
$didlinesstr[$k]=$didarr[0];
}
if(!empty($roclientstr))$roclientstr="and client in (".implode(",",$roclientstr).")";else $roclientstr="";
if($client!="")$roclientstr="and client='$client'";
$dispoarr=$wakka->LoadAll("select count(*) as cnt,currentstatus,legalstatus,dialer_status from records where $owclientstr 1=1 group by currentstatus,legalstatus,dialer_status");
$counts= DB::table('records')
->select(DB::raw("count(*) as cnt,status"))
->where('client', '=', $client)
->groupBy('status')->get();
$totalCnt = 0;
foreach ($counts as $key => $count)
{
$status = $count->status;
$$status = $count->cnt;
$totalCnt+=$count->cnt;
}
//$TotalData=$New + $Called + $Incall;
$TotalData= $totalCnt;
$NotCalled=$New;
$TotalCalled=$Called;
$MissedCalls=0;
$mc=CRMCall::where('userstatus','=','InboundDROP')->where('created_at','>',date('Y-m-d H:i:s',time()-(7*24*60*60)));
$mc=$mc->where(function ($query) use($roclientlst,$didlinesstr){
$query->orWhereIn('client',$roclientlst)->orWhereIn('did',$didlinesstr);
});
$mc=$mc->get();
$number_list=array();
foreach($mc as $key=>$tcall){
$number_list[] = $tcall->number;
}
if(count($number_list) > 0) {
$lcalls=DB::select("SELECT * FROM crmcalls where id in (SELECT max(id) FROM crmcalls WHERE number IN ('" . implode("','", $number_list). "') GROUP BY number )");
foreach($lcalls as $lcall)
{
if($lcall->userstatus=="InboundDROP")
{
$MissedCalls++;
}
}
}
$callstoday=CRMCall::where("created_at",">=",date("Y-m-d 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$callsmonth=CRMCall::where("created_at",">=",date("Y-m-01 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$recstoday=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-d 00:00:00")."'");
$recsmonth=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-01 00:00:00")."'");
?>
<div class=col-md-3>
<div class=col-md-11>
<?php if(sizeof($roclientlst)>0){ ?>
<h5>Campaign
<select class='form-control pull-right' id=tcampaign_select onchange='campaignSelect();' style='width:50%'>
<?php foreach($roclientlst as $c){$s="";if($c==$client)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
</select>
</h5>
<br/>
<?php } ?>
<input type="hidden" id=groupname value="<?php echo Auth::user()->group; ?>">
<br/>
<h5>Buckets
<span class='label label-small label-default pull-right'>
<a href=# onclick="dialerLoadData('CallsMonth','','',1,'','');return false;" style='color:#fff;font-size:12px'>
Month: <?php echo $recsmonth; ?> / <?php echo $callsmonth; ?>
</a>
</span>
<span class='label label-small label-default pull-right' style='margin-right:5px'>
<a href=# onclick="dialerLoadData('CallsToday','','',1,'','');return false;" style='color:#fff;font-size:12px'>
Today: <?php echo $recstoday; ?> / <?php echo $callstoday; ?>
</a>
</span>
</h5>
<br/>
<div style='clear:both'></div>
<ul style="list-style:none">
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('CurrentQueue','','',1,'','');return false;">CurrentQueue</a></span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('MissedCalls','','',1,'','');return false;">MissedCalls</a></span>
<span class="label label-small label-primary pull-right" >
<?php echo $MissedCalls; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('TotalData','','',1,'','');return false;">TotalData</a></span>
<span class="label label-small label-default pull-right" >
<?php echo $TotalData; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('NotCalled','','',1,'','');return false;">NotCalled</a></span>
<span class="label label-small label-default pull-right" >
<?php echo $NotCalled; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('Called','','',1,'','');return false;">Called</a></span>
<span class="label label-small label-success pull-right" >
<?php echo $TotalCalled; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="return false;">Contacted</a></span>
<span class="label label-small label-success pull-right" id=contactedcnt_span>
0
</span>
</li>
<hr><br>
<?php
foreach($dispoarr as $disp) {
foreach($dispoclassarr as $dclass=>$darr)
{
if(in_array($disp['dialer_status'],$darr[1]))
{
$dispoclassarr[$dclass][0]+=$disp['cnt'];
}
}
$class=str_replace(" ","_","CLS_".$disp['currentstatus'].$disp['legalstatus']);
?>
<li class="notify_alert bucketliitem <?php echo $class; ?>">
<span><a href=# onclick="dialerLoadData('<?php echo $disp['dialer_status']; ?>','<?php echo $disp['currentstatus']; ?>','<?php echo $disp['legalstatus']; ?>',1,'','');return false;"><?php echo $disp['dialer_status']==''?'------':$disp['dialer_status']; ?></a></span>
<span class="label label-small label-success pull-right" >
<?php echo $disp['cnt']; ?>
</span>
</li>
<?php
}
$contacted=$dispoclassarr['CC'][0]+$dispoclassarr['CB'][0]+$dispoclassarr['NC'][0];
echo "<script>$('#contactedcnt_span').html('$contacted');</script>";
?>
</ul>
</div>
</div>
<div style="float: right;font-size:16px!important">
<?php $login= $reportarray ? $reportarray[Auth::user()->id]["Signin"] : '00:00:00'; ?>
<?php $logout= $reportarray ? $reportarray[Auth::user()->id]["Signout"] : '00:00:00'; ?>
<?php $Lan= $reportarray ? $reportarray[Auth::user()->id]["Lan"] : '00'; ?>
login:&nbsp;&nbsp;<span class="label label-default" ><?php echo $login; ?></span>
logout:&nbsp;&nbsp;<span class="label label-default"><?php echo $logout; ?></span>
<!-- Handle:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["oncall"])?></span> -->
Lan:&nbsp;&nbsp;<span class="label label-default"><?php echo $Lan; ?></span>
Total:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Total"])?></span>
<!-- Break:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Break"])?></span> -->
Duration:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Duration"])?></span>
</div>
<div class=col-md-9 id=bucketlistdiv></div>
<div style='clear:both'></div>
<script>
function campaignSelect()
{
var dashlet="Dialer";
client = $('#tcampaign_select').val();
doAjax("dashboard/dashlet?module="+dashlet+"&client="+client,"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET");
/*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/
callingModeChange();
savedialermode();
}
// code start - function for change calling mode assign, campaign wise - by YASHWANT on 11042017
function callingModeChange()
{
var action = "callingmode";
$.ajax({
type: "GET",
url: action,
data: "client="+$("#tcampaign_select").val(),
success: function(nextRecord)
{
var elementsLI = document.getElementById("dialer_mode").getElementsByTagName('li');
var length = document.getElementById("dialer_mode").getElementsByTagName('li').length;
if(nextRecord)
{
for(var i = 0; i <= length - 10 ; ++i)
{
if(nextRecord != elementsLI[i].innerText)
{
elementsLI[i].style.display = "none";
} else {
elementsLI[i].style.display = "block";
}
}
}
else
{
for(var i = 0; i <= length - 10 ; ++i){
if(nextRecord != elementsLI[i].innerText)
elementsLI[i].style.display = "block";
}
}
}
});
}
// code end - function for change calling mode assign, campaign wise - by YASHWANT on 11042017
function bucketSelect()
{
var activeclass='CLS_'+$('#currentstatus_select').val()+$('#legalstatus_select').val();
$('.bucketliitem').hide();
$('.'+activeclass).show();
}
bucketSelect();
callingModeChange();
function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt)
{
client = $('#tcampaign_select').val();
doAjax("dialer/bucketdata","client=<?php echo $client; ?>&bucket="+listname+"&currentstatus="+currentstatus+"&legalstatus="+legalstatus+'&page='+page+'&skey='+skey+'&stxt='+stxt,"bucketlistdiv","ajax_dialer_list","singlefail","GET",function(argument) {
$(document).ready(function(){
$('#dashboardTable').DataTable(
{
"paging": false,
"info": false,
"searching": false
});
});
});
/*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/
savedialermode();
}
dialerLoadData('CurrentQueue','','',1,'','');
redirect_to_password_reset();
</script>
<?php
if(Input::has('addcompany'))
{
$company=trim(Input::get("addcompany"));
if($company!="")
{
$companyarr=$wakka->LoadSingle("select * from hrms_masters where mtype='company' and mkey='$company'");
if(!$companyarr)
{
$wakka->Query("insert into hrms_masters set mvalue='',mkey='$company',mtype='company';");
}
}
return;
}
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$client=Input::get("client");
$snedmailsarr=array();
$workflowarr=$wakka->LoadAll("select * from hrms_masters where mtype='workflow';");
foreach($workflowarr as $wfline)
{
$workflow=explode("~~~",$wfline['mvalue']);
$controls=explode("|",$workflow[0]);
$tasks=explode("_EOF_",$workflow[1]);//$tasks=explode("\n",$workflow[1]);
foreach($tasks as $task)
{
if(trim($task)!='')
{
$taskVals=explode("|",$task);$taskVals[0]=trim($taskVals[0]);
if($taskVals[0]=="{{clientcontact}}")
{
$snedmailsarr[]=$controls[0];
}
}
}
}
if($client!="")
{
$mastersdata=$wakka->getCompanyMaster($client);
echo "<p><label class='label-small_new' style='width:15%'>Script</label><textarea rows=8 id='campaignscript' style='font-size:12px;width:85%'>".($mastersdata["campaignscript"])."</textarea></p>";
echo "<div class='row'><label class='label-small_new col-md-1'>DID</label><div class='col-md-3'><input class='form-control' rows=8 id='dialer_did' style='font-size:12px;' value='".($mastersdata["DialerDID"])."''></div>";
echo "<label class='label-small_new col-md-1' style='margin-left:10px'>Autodial</label><div class='col-md-3'><input class='form-control' rows=8 id='autodial_pacing' style='font-size:12px;' value='".($mastersdata["autodialercampaign"])."'></div></div><br>";
$checkStr='';
if($mastersdata["textmessage"]=='1')$checkStr='checked';
echo "<div class='row'><span class='col-md-1'><input type='checkbox' id='vbcheck'></span><label class='label-small_new col-md-1'>Voice Blaster (Default is 1)</label><div class='col-md-3'><input class='form-control' rows=8 id='vb_pacing' style='font-size:12px;' value='".($mastersdata["vbpace"])."' disabled></div><div class='col-md-2'><input type='checkbox' id='withoutTM' disabled ".$checkStr.">Without Text Message<input type=hidden id='checkTmVal' value='".($mastersdata["textmessage"])."'></div></div><br>";
echo "<p><label class='label-small_new' style='width:15%'>CRM Fields</label><textarea id='campaigncrmfields' style='font-size:12px;width:85%;height:300px'>".($mastersdata["campaigncrmfields"])."</textarea></p>";
// code start - calling mode assign campaign wise functionality - by YASHWANT on 11042017
echo "<p><label class='label-small_new' style='width:15%'>Calling Mode</label><select class='form_hrm_select' id='campaignCallingMode'><option value>User able select</option><option value='Progressive' ".($mastersdata["campaignCallingMode"]=="Progressive"?"selected":"").">Progressive</option><option value='Manual' ".($mastersdata["campaignCallingMode"]=="Manual"?"selected":"").">Manual</option><option value='Incoming' ".($mastersdata["campaignCallingMode"]=="Incoming"?"selected":"").">Incoming</option><option value='Predictive' ".($mastersdata["campaignCallingMode"]=="Predictive"?"selected":"").">Predictive</option></select></p>";
// code end - calling mode assign campaign wise functionality - by YASHWANT on 11042017
if(!isset($mastersdata["trackerfields"]))$mastersdata["trackerfields"]="";
$trackerfieldsarr=array_unique(array_filter(explode(",",$mastersdata["trackerfields"])));
$toarr=array();
$optionsstr="";
$fileids=explode(",",$kformlib->HRFiledsStr);
foreach($fileids as $fileid)
{
if(trim($fileid)!='')
{
if(strstr($kformlib->HRFileFieldsStr,$fileid))$ftype='File';
else if(strstr($kformlib->HRDateFilds,$fileid))$ftype='Date';
else if(strstr($kformlib->HRDropFilds,$fileid))$ftype='Dropdown';
else $ftype='Text';
$toarr[$fileid]=$kformlib->HRFieldNames[$fileid]." ($ftype)";
}
}
asort($toarr);
foreach($trackerfieldsarr as $key)$optionsstr.="<option value='$key' selected>$toarr[$key]</option>";
foreach($toarr as $key=>$opts)$optionsstr.="<option value='$key'>$opts</option>";
?>
<script>
$(document).ready(function(){
$('#vbcheck').change(function() {
if(this.checked) {
$('#vb_pacing').removeAttr('disabled');
$('#withoutTM').removeAttr('disabled');
}
else
{
$('#vb_pacing').attr('disabled', 'disabled');
$('#withoutTM').attr('disabled', 'disabled');
}
});
$('#withoutTM').change(function() {
if(this.checked) {
$('#checkTmVal').val(1);
}
else
{
$('#checkTmVal').val(0);
}
});
});
</script>
<?php
}
?>
<style type="text/css">
.marquee {
color: red;
white-space: nowrap;
overflow: hidden;
box-sizing: border-box;
}
.marquee p {
display: inline-block;
padding-left: 100%;
animation: marquee 15s linear infinite;
}
.label{
font-size: 100%;
}
@keyframes marquee {
0% { transform: translate(0, 0); }
100% { transform: translate(-100%, 0); }
}
</style>
<?php
use App\Jobs\KHRMSLib;
use App\Models\CRMCall;
use App\Models\UserLog;
$dashboarduser=Auth::user();
$timeoffset = $dashboarduser->timezone;
$timeoffset = $timeoffset*60;
$logtime =(isset($_GET['logtime'])) ? $_GET['logtime'] :9;
$logtimeto =(isset($_GET['logtimeto']))? $_GET['logtimeto']:20;
$logdate =(isset($_GET['logdate'])) ? strtotime($_GET['logdate']." ".$logtime.":00:00")
: strtotime(date("Y-m-d")." 09:00:00");
$logdateto =(isset($_GET['logdateto']))? strtotime($_GET['logdateto']." ".$logtimeto.":00:00"): strtotime(date("Y-m-d")." 20:00:00");
$breaks=array("Paused","AgentBriefing","TeamMeeting","QualityFeedback","LunchBreak","TeaBreak","UtilityBreak","FloorAnnouncements","DownTime");
$reporthead=array_merge(array("#","Telecaller","TelecallerID","Supervisor","Signin","Signout","Count","Duration","Total","Preview","Wait","Call","Talk","Dispo"),$breaks);
$alist_user=CRMCall::where('user_id','=',Auth::user()->id)->where('created_at','like','%' . date("Y-m-d") .'%')->where('created_at','like','%'.date("Y-m-d").'%')->get();
$userlog=UserLog::where('user_id','=',Auth::user()->id)->where('created_at','like','%' . date("Y-m-d") .'%')->where('created_at','like','%'.date("Y-m-d").'%')->get();
$reportarray=array();
$prev_close = 0;
$progTs_Wait=0;
$prev_user =0;
$predTs_Wait=0;
$uniquelanarray=array();
foreach ($alist_user as $row)
{
if($prev_user != $row->user_id || $prev_close <= $row->ts_Wait)
{
if($row->type == 'Progressive')
{
$progTs_Wait = $row->waitSec;
}
if($row->type == 'Auto')
{
$predTs_Wait = $row->waitSec;
}
$talktime1=$row->talkSec+$row->recstartSec+$row->recendSec;
$totaltime1=$row->callSec+$talktime1+$row->dispoSec+$progTs_Wait+$predTs_Wait;
if(!array_key_exists($row->user_id, $reportarray)) {
$reportarray[$row->user_id] = array();
$reportarray[$row->user_id]['oncall']=0;
$reportarray[$row->user_id]['Lan']=0;
}
$reportarray[$row->user_id]["oncall"]+=$totaltime1/1000;
if (!in_array($row->lan, $uniquelanarray)) $uniquelanarray[]=$row->lan;
$reportarray[$row->user_id]["Lan"] = count($uniquelanarray);
}
$prev_close = $row->ts_Close;
$prev_user = $row->user_id;
}
$userLogin=array();
foreach($userlog as $ulog)
{
$data1=json_decode($ulog->data,true);
$sdts =$logdateto+$timeoffset;
$data = array();
foreach ($data1 as $datavalue) {
$dts = round(($datavalue['ts'])/1000);
if($sdts > $dts){
array_push($data, $datavalue);
}
}
usort($data, "cmp");
if(!empty($data)){
$lastSip = end($data);
$starttime = strtotime($ulog->startdate.' '.$ulog->starttime);
$endtime = round($lastSip['ts']/1000);
if(!array_key_exists($ulog->user_id, $userLogin)) {
$userLogin[$ulog->user_id] = array();
$userLogin[$ulog->user_id]['duration']=0;
}
$userLogin[$ulog->user_id]['duration'] += ($endtime-$starttime);
$userLogin[$ulog->user_id]['start'][] = $starttime;
$userLogin[$ulog->user_id]['end'][] = $endtime;
$prets=strtotime($ulog->startdate." ".$ulog->starttime)*1000;
$previous="Paused-Paused";
foreach($data as $sdata)
{
$pts=$sdata['ts'];
if(isset($sdata['states']))
{
foreach($sdata['states'] as $ts=>$states)
{
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!in_array($previous,$reporthead) && !in_array($previous,array('Progressive-','Manual-','Ready-Incoming','Ready-Predictive','DialNext-','Paused-WRAPUP'))) {
$previous = 'Paused';
}
if(!array_key_exists($ulog->user_id, $reportarray))
{
$reportarray[$ulog->user_id] = array();
}
if(!array_key_exists($previous, $reportarray[$ulog->user_id]))
{
$reportarray[$ulog->user_id][$previous]=0;
}
$reportarray[$ulog->user_id][$previous]+=round($ts-$prets,2)/1000;
$prets=$ts;
$previous=$states[0].'-'.$states[1];
}
if($previous != "Paused-WRAPUP")$previous = str_replace('Paused-', '', $previous);
if(!array_key_exists($ulog->user_id, $reportarray))
{
$reportarray[$ulog->user_id] = array();
}
if(!array_key_exists($previous, $reportarray[$ulog->user_id]))
{
$reportarray[$ulog->user_id][$previous]=0;
}
$reportarray[$ulog->user_id][$previous]+=round($pts-$prets,2)/1000;
$prets=$pts;
}
}
}
}
if(count($userLogin)) foreach ($userLogin as $userid => $value)
{
$break_time=0;
foreach ($breaks as $break) {
if(!array_key_exists($break, $reportarray[$userid]))
{
$reportarray[$userid][$break]=0;
}
$break_time+=$reportarray[$userid][$break];
}
$reportarray[$userid]["Signin"]=date("H:i:s", min($value['start'])-$timeoffset);
$reportarray[$userid]["Signout"]=date("H:i:s", max($value['end'])-$timeoffset);
$reportarray[$userid]["Duration"]=$value['duration'];
$reportarray[$userid]["Total"]=$value['duration']-$break_time;
$reportarray[$userid]["Break"]=$break_time;
}
function cmp($a, $b) {
return $a["ts"] - $b["ts"];
}
function secToDuration($sec) {
return sprintf("%02d%s%02d%s%02d", floor($sec/3600), ':', ($sec/60)%60, ':', $sec%60);
}
$campSel = Session::get('campSel');
$wakka=new KHRMSLib();
$dispoclassarr=array('NC'=>array(0,array()),'CC'=>array(0,array()),'CB'=>array(0,array()),'NA'=>array(0,array()));
$owclientstr=array();
$oclientlst=$wakka->clientsOwnerRWAccess();
if(!empty($oclientlst))foreach($oclientlst as $tclnt)if($tclnt!="")
{
$owclientstr[]="'$tclnt'";
if($client=="")$client=$tclnt;
}
if(!empty($owclientstr))$owclientstr="and client in (".implode(",",$owclientstr).")";else $owclientstr="";
if($client!="")$owclientstr="client='$client' and";
$roclientstr=array();$didlinesstr=array();if(Auth::user()->exten!="")$didlinesstr[]=Auth::user()->exten;
$roclientlst=$wakka->clientsReadAccess();
if(!empty($roclientlst))foreach($roclientlst as $tclnt)if($tclnt!="")
{
$roclientstr[]="'$tclnt'";
if($client=="")$client=$tclnt;
$mastersdata=$wakka->getCompanyMaster($tclnt);
if(!empty($mastersdata["DialerDID"]))$didlinesstr[]=$mastersdata["DialerDID"];
if(empty($mastersdata['dialerDispoList']))$mastersdata['dialerDispoList']=$wakka->HRCoreVars['dialerDispoList'];
$dispoarr=explode("~",$mastersdata['dialerDispoList']);
foreach($dispoarr as $dispo)
{
if(!empty($dispo))
{
$dispoprts=explode("|",$dispo);
if(sizeof($dispoprts)>=3)
{
if(isset($dispoclassarr[$dispoprts[0]]))
{
$dispoclassarr[$dispoprts[0]][1][]=$dispoprts[1];
}
}
}
}
}
foreach($didlinesstr as $k=>$dids)
{
$didarr=explode(":",$dids);
$didlinesstr[$k]=$didarr[0];
}
if(!empty($roclientstr))$roclientstr="and client in (".implode(",",$roclientstr).")";else $roclientstr="";
if($client!="")$roclientstr="and client='$client'";
$dispoarr=$wakka->LoadAll("select count(*) as cnt,currentstatus,legalstatus,dialer_status from records where $owclientstr 1=1 group by currentstatus,legalstatus,dialer_status");
$counts= DB::table('records')
->select(DB::raw("count(*) as cnt,status"))
->where('client', '=', $client)
->groupBy('status')->get();
$totalCnt = 0;
foreach ($counts as $key => $count)
{
$status = $count->status;
$$status = $count->cnt;
$totalCnt+=$count->cnt;
}
//$TotalData=$New + $Called + $Incall;
$TotalData= $totalCnt;
$NotCalled=$New;
$TotalCalled=$Called;
$MissedCalls=0;
$mc=CRMCall::where('userstatus','=','InboundDROP')->where('created_at','>',date('Y-m-d H:i:s',time()-(7*24*60*60)));
$mc=$mc->where(function ($query) use($roclientlst,$didlinesstr){
$query->orWhereIn('client',$roclientlst)->orWhereIn('did',$didlinesstr);
});
$mc=$mc->get();
$number_list=array();
foreach($mc as $key=>$tcall){
$number_list[] = $tcall->number;
}
if(count($number_list) > 0) {
$lcalls=DB::select("SELECT * FROM crmcalls where id in (SELECT max(id) FROM crmcalls WHERE number IN ('" . implode("','", $number_list). "') GROUP BY number )");
foreach($lcalls as $lcall)
{
if($lcall->userstatus=="InboundDROP")
{
$MissedCalls++;
}
}
}
$callstoday=CRMCall::where("created_at",">=",date("Y-m-d 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$callsmonth=CRMCall::where("created_at",">=",date("Y-m-01 00:00:00"))->where("user_id","=",Auth::user()->id)->count();
$recstoday=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-d 00:00:00")."'");
$recsmonth=$wakka->getCount("records","$owclientstr dialer_lastcall>='".date("Y-m-01 00:00:00")."'");
?>
<div class=col-md-3>
<div class=col-md-11>
<?php if(sizeof($roclientlst)>0){ ?>
<h5>Campaign
<select class='form-control pull-right' id=tcampaign_select onchange='campaignSelect();' style='width:50%'>
<?php foreach($roclientlst as $c){$s="";if($c==$client)$s='selected';echo "<option value='$c' $s>$c</option>";} ?>
</select>
</h5>
<br/>
<?php } ?>
<input type="hidden" id=groupname value="<?php echo Auth::user()->group; ?>">
<br/>
<h5>Buckets
<span class='label label-small label-default pull-right'>
<a href=# onclick="dialerLoadData('CallsMonth','','',1,'','');return false;" style='color:#fff;font-size:12px'>
Month: <?php echo $recsmonth; ?> / <?php echo $callsmonth; ?>
</a>
</span>
<span class='label label-small label-default pull-right' style='margin-right:5px'>
<a href=# onclick="dialerLoadData('CallsToday','','',1,'','');return false;" style='color:#fff;font-size:12px'>
Today: <?php echo $recstoday; ?> / <?php echo $callstoday; ?>
</a>
</span>
</h5>
<br/>
<div style='clear:both'></div>
<ul style="list-style:none">
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('CurrentQueue','','',1,'','');return false;">CurrentQueue</a></span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('MissedCalls','','',1,'','');return false;">MissedCalls</a></span>
<span class="label label-small label-primary pull-right" >
<?php echo $MissedCalls; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('TotalData','','',1,'','');return false;">TotalData</a></span>
<span class="label label-small label-default pull-right" >
<?php echo $TotalData; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('NotCalled','','',1,'','');return false;">NotCalled</a></span>
<span class="label label-small label-default pull-right" >
<?php echo $NotCalled; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="dialerLoadData('Called','','',1,'','');return false;">Called</a></span>
<span class="label label-small label-success pull-right" >
<?php echo $TotalCalled; ?>
</span>
</li>
<li class="notify_alert">
<span><a href=# onclick="return false;">Contacted</a></span>
<span class="label label-small label-success pull-right" id=contactedcnt_span>
0
</span>
</li>
<hr><br>
<?php
foreach($dispoarr as $disp) {
foreach($dispoclassarr as $dclass=>$darr)
{
if(in_array($disp['dialer_status'],$darr[1]))
{
$dispoclassarr[$dclass][0]+=$disp['cnt'];
}
}
$class=str_replace(" ","_","CLS_".$disp['currentstatus'].$disp['legalstatus']);
?>
<li class="notify_alert bucketliitem <?php echo $class; ?>">
<span><a href=# onclick="dialerLoadData('<?php echo $disp['dialer_status']; ?>','<?php echo $disp['currentstatus']; ?>','<?php echo $disp['legalstatus']; ?>',1,'','');return false;"><?php echo $disp['dialer_status']==''?'------':$disp['dialer_status']; ?></a></span>
<span class="label label-small label-success pull-right" >
<?php echo $disp['cnt']; ?>
</span>
</li>
<?php
}
$contacted=$dispoclassarr['CC'][0]+$dispoclassarr['CB'][0]+$dispoclassarr['NC'][0];
echo "<script>$('#contactedcnt_span').html('$contacted');</script>";
?>
</ul>
</div>
</div>
<div style="float: right;font-size:16px!important">
<?php $login= $reportarray ? $reportarray[Auth::user()->id]["Signin"] : '00:00:00'; ?>
<?php $logout= $reportarray ? $reportarray[Auth::user()->id]["Signout"] : '00:00:00'; ?>
<?php $Lan= $reportarray ? $reportarray[Auth::user()->id]["Lan"] : '00'; ?>
login:&nbsp;&nbsp;<span class="label label-default" ><?php echo $login; ?></span>
logout:&nbsp;&nbsp;<span class="label label-default"><?php echo $logout; ?></span>
<!-- Handle:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["oncall"])?></span> -->
Lan:&nbsp;&nbsp;<span class="label label-default"><?php echo $Lan; ?></span>
Total:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Total"])?></span>
<!-- Break:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Break"])?></span> -->
Duration:&nbsp;&nbsp;<span class="label label-default"><?php echo secToDuration($reportarray[Auth::user()->id]["Duration"])?></span>
</div>
<div class=col-md-9 id=bucketlistdiv></div>
<div style='clear:both'></div>
<script>
function campaignSelect()
{
var dashlet="Dialer";
client = $('#tcampaign_select').val();
doAjax("dashboard/dashlet?module="+dashlet+"&client="+client,"","DashletT-"+dashlet,"ajax_dashlet_"+dashlet,"singlefail","GET");
/*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/
callingModeChange();
savedialermode();
}
// code start - function for change calling mode assign, campaign wise - by YASHWANT on 11042017
function callingModeChange()
{
var action = "callingmode";
$.ajax({
type: "GET",
url: action,
data: "client="+$("#tcampaign_select").val(),
success: function(nextRecord)
{
var elementsLI = document.getElementById("dialer_mode").getElementsByTagName('li');
var length = document.getElementById("dialer_mode").getElementsByTagName('li').length;
if(nextRecord)
{
for(var i = 0; i <= length - 10 ; ++i)
{
if(nextRecord != elementsLI[i].innerText)
{
elementsLI[i].style.display = "none";
} else {
elementsLI[i].style.display = "block";
}
}
}
else
{
for(var i = 0; i <= length - 10 ; ++i){
if(nextRecord != elementsLI[i].innerText)
elementsLI[i].style.display = "block";
}
}
}
});
}
// code end - function for change calling mode assign, campaign wise - by YASHWANT on 11042017
function bucketSelect()
{
var activeclass='CLS_'+$('#currentstatus_select').val()+$('#legalstatus_select').val();
$('.bucketliitem').hide();
$('.'+activeclass).show();
}
bucketSelect();
callingModeChange();
function dialerLoadData(listname,currentstatus,legalstatus,page,skey,stxt)
{
client = $('#tcampaign_select').val();
doAjax("dialer/bucketdata","client=<?php echo $client; ?>&bucket="+listname+"&currentstatus="+currentstatus+"&legalstatus="+legalstatus+'&page='+page+'&skey='+skey+'&stxt='+stxt,"bucketlistdiv","ajax_dialer_list","singlefail","GET",function(argument) {
$(document).ready(function(){
$('#dashboardTable').DataTable(
{
"paging": false,
"info": false,
"searching": false
});
});
});
/*doAjax("autodial/autodialmode?client="+$("#tcampaign_select").val(),"","","","singlefail","GET");*/
savedialermode();
}
dialerLoadData('CurrentQueue','','',1,'','');
redirect_to_password_reset();
</script>
<style>
.heading-buttons h4{
line-height:20px;
}
</style>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-12">
<!-- col-separator.box -->
<div class="col-separator col-separator-first col-unscrollable box">
<!-- col-table -->
<div class="col-table" id=authorworkspacediv>
<!-- Search Bar -->
<div class="input-group">
<input type="text" class="form-control" placeholder="Search for Users..." id=adminu_Search>
<span class="input-group-btn">
<button class="btn btn-primary rounded-none" type="button" onclick="adminSearchUser();return false"><i class="fa fa-search"></i></button>
</span>
</div>
<div class="col-separator-h"></div>
<!-- End Search Bar -->
<div class="col-table-row">
<div class="col-app col-unscrollable">
<div class="col-app">
<div class="row-app">
<div class="col-md-6">
<div class="col-separator">
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick="doAjax('user/create','','userformdiv','ajax_users_create','singlethis','GET');return false"><i class="fa fa-plus fa-fw"></i> New User</a>
<h4 class="innerTB margin-bottom-none">Users</h4>
<div class="clearfix"></div>
</div>
<!-- End Category Heading -->
<?php echo $userlist->render(); ?>
<?php foreach ($userlist as $tuser)
{
$tphoto=$tuser->fetchphotothumb();
?>
<!-- Category Listing -->
<div class="row innerAll half border-bottom bg-gray-hover">
<div class="col-sm-6 col-xs-8">
<ul class="media-list margin-none">
<li class="media">
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span>
</a>
<a class="pull-left innerAll" href="#" onclick="doAjax('user/<?php echo $tuser->id; ?>','','userformdiv','ajax_users_delete','singlethis','DELETE');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-trash-o"></i></span>
</a>
<div class="media-body">
<div class="innerAll">
<h5 class=""><a href="#" class="media-heading text-primary">Modules</a></h5>
<div class="clearfix"></div>
<small class="margin-none label label-inverse">Social</small>
<small class="margin-none label label-inverse">HR</small>
<small class="margin-none label label-inverse">Reports</small>
<small class="margin-none label label-inverse">CRM</small>
</div>
</div>
</li>
</ul>
</div>
<div class="col-sm-3 col-xs-4">
<div class="text-center">
<p class="strong">Tasks</p>
<span class="badge badge-primary" data-toggle="tooltip" data-title="Published" data-placement="left" data-container="body">0</span>
<span class="badge badge-primary badge-stroke" data-toggle="tooltip" data-title="Subscribed" data-placement="right" data-container="body">0</span>
</div>
</div>
<div class="col-sm-3 col-xs-hidden">
<div class="innerAll">
<div class="media">
<a href="#" class="pull-left">
<img src="<?php echo $tphoto; ?>" class="media-object" width=35px />
</a>
<div class="media-body">
<a href="#" class="text-small" title='<?php echo $tuser->id; ?> - <?php echo $tuser->created_at; ?>' onclick="doAjax('user/<?php echo $tuser->id; ?>/edit','','userformdiv','ajax_users_create','singlethis','GET');return false;"><?php echo $tuser->dispname(); ?></a>
<div class="clearfix"></div>
<small>
<?php if($tuser->status=="Active"): ?>
<span class="label label-success"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Disabled"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Unverified"): ?>
<span class="label label-warning"><?php echo $tuser->status; ?></span>
<?php elseif($tuser->status=="Blocked"): ?>
<span class="label label-important"><?php echo $tuser->status; ?></span>
<?php endif; ?>
</small>
</div>
</div>
</div>
</div>
</div>
<!-- // END Category Listing -->
<?php } ?>
<?php echo $userlist->render(); ?>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-6">
<!-- col-separator -->
<div class="col-separator col-separator-last" id=userformdiv>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
</div>
<!-- // END row-app -->
</div>
<script>
$(".pagination a").click(function(e){
e.preventDefault();
var url=$(this).attr("href");
var res = url.split("page=");
menuAction("user?page="+res[1]);
return false;
});
function adminSearchUser()
{
doAjax('user?search='+$('#adminu_Search').val(),'','content','ajax_users_create','singlethis','GET');
}
</script>
\ No newline at end of file
<!-- Heading -->
<h5 class="innerAll margin-none bg-primary">
<i class="fa fa-fw fa-pencil"></i> Add Role
<a href="#" class="btn btn-sm btn-inverse pull-right btn-xs" style="margin-top: -5px;" onclick="return false">
<i class="fa fa-user fa-fw"></i>
</a>
</h5>
<form class="innerAll">
<fieldset>
<div class="control-role">
<label class="col-md-4 control-label" for="rolename">RoleName</label>
<div class="col-md-8 controls">
<input class="form-control" id="rolename" type="text" value="<?php echo $trole->rolename; ?>" />
</div>
</div>
<div class="control-role">
<label class="col-md-4 control-label" for="rolestatus">Status</label>
<div class="col-md-8 controls">
<select id="rolestatus" class="form-control">
<option value='<?php echo $trole->status; ?>'><?php echo $trole->status; ?></option>
<option value="Active">Active</option>
<option value="Disabled">Disabled</option>
</select>
</div>
</div>
<hr>
<div class="control-group">
<label class="col-md-4 control-label" for="rolegroup">Group</label>
<div class="col-md-8 controls">
<select id="rolegroup" required=required class="form-control">
<?php foreach(Auth::user()->getAccessList("group",true,false,false,true) as $tgrp)
{
$seltext='';if($tgrp==$trole->rolegroup)$seltext='selected';
echo "<option value='$tgrp' $seltext>$tgrp</option>";
}
?>
</select>
</div>
</div>
<!-- <div class="control-group">
<label class="col-md-4 control-label" for="rolegroup">Chat/Voice Enabled</label>
<div class="col-md-8 controls">
<select id="uservoice" required=required class="form-control">
<option value="Active">Active</option>
<option value="InActive">InActive</option>
</select>
</div>
</div>-->
<hr><h2 style='padding-left:10%'>Modules Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="modulerwa">Read+Write+Admin</label>
<div class="col-md-8 controls">
<select id="modulerwa" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php
$tmodarr=array();
if(Auth::user()->moduleACL("Admin",true,true,true))foreach(Config::get("app.app_modules") as $entry=>$entryarr)$tmodarr[]=$entry;
else $tmodarr=Auth::user()->getAccessList("module",false,false,true,true);
foreach($tmodarr as $tmod){
$seltext='';if(strstr($trole->modulerwa,$tmod))$seltext='selected';
echo "<option value='$tmod' $seltext>$tmod</option>";
} ?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="modulerw">Read+Write</label>
<div class="col-md-8 controls">
<select id="modulerw" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php
$tmodarr=array();
if(Auth::user()->moduleACL("Admin",true,true,true))foreach(Config::get("app.app_modules") as $entry=>$entryarr)$tmodarr[]=$entry;
else $tmodarr=Auth::user()->getAccessList("module",false,true,false,true);
foreach($tmodarr as $tmod){
$seltext='';if(strstr($trole->modulerw,$tmod))$seltext='selected';
echo "<option value='$tmod' $seltext>$tmod</option>";
} ?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="moduler">Read</label>
<div class="col-md-8 controls">
<select id="moduler" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php
$tmodarr=array();
if(Auth::user()->moduleACL("Admin",true,true,true))foreach(Config::get("app.app_modules") as $entry=>$entryarr)$tmodarr[]=$entry;
else $tmodarr=Auth::user()->getAccessList("module",true,false,false,true);
foreach($tmodarr as $tmod){
$seltext='';if(strstr($trole->moduler,$tmod))$seltext='selected';
echo "<option value='$tmod' $seltext>$tmod</option>";
} ?>
</select>
</div>
</div>
<?php
$activegrps=\App\Models\Group::where('status','=','Active')->get(array('group'));
foreach($activegrps as $tgrp)$grparr[]=$tgrp->group;
?>
<hr><h2 style='padding-left:10%'>Groups Access</h2>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprwa">Read+Write+Admin</label>
<div class="col-md-8 controls">
<select id="grouprwa" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php foreach($grparr as $tgrp){
$seltext='';if(strstr($trole->grouprwa,$tgrp))$seltext='selected';
echo "<option value='$tgrp' $seltext>$tgrp</option>";
} ?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="grouprw">Read+Write</label>
<div class="col-md-8 controls">
<select id="grouprw" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php foreach($grparr as $tgrp){
$seltext='';if(strstr($trole->grouprw,$tgrp))$seltext='selected';
echo "<option value='$tgrp' $seltext>$tgrp</option>";
} ?>
</select>
</div>
</div>
<div class="control-group">
<label class="col-md-4 control-label" for="groupr">Read</label>
<div class="col-md-8 controls">
<select id="groupr" multiple="" data-rel="chosen" style='width:100%' class="select2multi">
<?php foreach($grparr as $tgrp){
$seltext='';if(strstr($trole->groupr,$tgrp))$seltext='selected';
echo "<option value='$tgrp' $seltext>$tgrp</option>";
} ?>
</select>
</div>
</div>
<div class="control-role">
<label class="col-md-4 control-label" for="rolestatus">Default</label>
<div class="col-md-8 controls">
<select id="roledefault" class="form-control">
<option value='<?php echo $trole->default; ?>'><?php echo $trole->default; ?></option>
<option value="0">0</option>
<option value="1">1</option>
</select>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary" onclick='createRoleForm();return false;'>Save changes</button>
</div>
</fieldset>
</form>
<script>
function createRoleForm()
{
var putdata="";
putdata+="&rolename="+$("#rolename").val();
putdata+="&rolestatus="+$("#rolestatus").val();
putdata+="&rolegroup="+$("#rolegroup").val();
putdata+="&modulerwa="+$("#modulerwa").val();
putdata+="&modulerw="+$("#modulerw").val();
putdata+="&moduler="+$("#moduler").val();
putdata+="&grouprwa="+$("#grouprwa").val();
putdata+="&grouprw="+$("#grouprw").val();
putdata+="&groupr="+$("#groupr").val();
putdata+="&roledefault="+$("#roledefault").val();
doAjax('role/<?php echo $trole->id; ?>',putdata,'roleformdiv','ajax_role_create','singlethis','PUT');
}
</script>
<?php
$themes = explode(",",env('themes'));
if($userCurrentTheme != ""){
if(!in_array($userCurrentTheme, $themes)){$userCurrentTheme = "Default";}
}else{ $userCurrentTheme = "Default"; }
?>
<?php if(isset($response)): ?>
<script>
simpleNotification("<?php echo e($response['type']); ?>","topRight","<?php echo e($response['message']); ?>");
<?php if($response['type'] == "success"): ?>
setTimeout(function(){ window.location.reload(); }, 1000);
<?php endif; ?>
</script>
<?php endif; ?>
<h4>Select Theme <span class="pull-right"><small>Current Theme - </small><?php echo e($userCurrentTheme); ?></span></h4>
<hr style="margin-bottom: 10px;">
<div class="row">
<?php foreach($themes as $theme): ?>
<div class="col-sm-3">
<div class="themeBox" style="<?php echo e($theme == $userCurrentTheme ? 'border:1px solid #f30;background-color: #ffe9e9' : ''); ?>">
<h4><?php echo e($theme); ?>
<?php if($theme == $userCurrentTheme): ?>
<span class="pull-right label label-primary btn-xs">Current Theme</span>
<?php else: ?>
<button class="pull-right btn btn-success btn-xs" onclick="changeTheme('<?php echo e($theme); ?>');return false;">Select Theme</button>
<?php endif; ?>
</h4>
<hr style="margin-top: 10px;margin-bottom: 5px;">
<div class="text-center">
<img src="<?php echo e(URL::to('assets/themes/'.$theme.'.png')); ?>" class="img-responsive" alt="" />
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<style>
.themeBox{margin: 10px;padding: 10px !important;border:1px solid #eee;border-radius: 5px;}
.themeBox:hover{background-color: #eee;}
</style>
<script type="text/javascript">
function changeTheme(value){
doAjax('setting/theme?name='+value,'','settingThemeArea','','singlethis','GET');
}
</script>
\ No newline at end of file
<style>
.heading-buttons h4{
line-height:20px;
}
</style>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<!-- col -->
<div class="col-md-12">
<!-- col-separator.box -->
<div class="col-separator col-separator-first col-unscrollable box">
<!-- col-table -->
<div class="col-table" id=authorworkspacediv>
<!-- Search Bar -->
<!-- <div class="input-role">
<input type="text" class="form-control" placeholder="Search for Role...">
<span class="input-role-btn">
<button class="btn btn-primary rounded-none" type="button"><i class="fa fa-search"></i></button>
</span>
</div>-->
<div class="col-separator-h"></div>
<!-- End Search Bar -->
<div class="col-table-row">
<div class="col-app col-unscrollable">
<div class="col-app">
<div class="row-app">
<div class="col-md-6">
<div class="col-separator">
<!-- Category Heading -->
<div class="heading-buttons bg-gray border-bottom innerR half">
<a href="#" class="btn btn-sm btn-inverse pull-right" onclick="doAjax('role/create','','roleformdiv','ajax_role_create','singlethis','GET');return false"><i class="fa fa-plus fa-fw"></i> New Role</a>
<h4 class="innerTB margin-bottom-none">Roles</h4>
<div class="clearfix"></div>
</div>
<!-- End Category Heading -->
<?php echo $rolelist->render(); ?>
<?php foreach ($rolelist as $trole)
{
$tphoto="assets/images/people/avatar.jpg";
?>
<!-- Category Listing -->
<div class="row innerAll half border-bottom bg-gray-hover">
<div class="col-sm-6 col-xs-5">
<ul class="media-list margin-none">
<li class="media">
<a class="pull-left innerAll" style="padding: 8px!important;" href="#" onclick="doAjax('role/<?php echo $trole->id; ?>/edit','','roleformdiv','ajax_role_create','singlethis','GET');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></span>
</a>
<a class="pull-left innerAll" style="padding: 8px!important;" href="#" onclick="doAjax('role/<?php echo $trole->id; ?>','','roleformdiv','ajax_role_delete','singlethis','DELETE');return false;">
<span class="btn btn-primary btn-xs"><i class="fa fa-trash-o"></i></span>
</a>
<div class="media-body">
<div class="innerAll">
<h5 class=""><a href="#" class="media-heading text-primary">Created : <?php echo $trole->created_at; ?></a></h5>
<div class="clearfix"></div>
<!-- <small class="margin-none label label-inverse">Social</small>
<small class="margin-none label label-inverse">Learn</small>
<small class="margin-none label label-inverse">Author</small>
<small class="margin-none label label-inverse">Library</small> -->
</div>
</div>
</li>
</ul>
</div>
<div class="col-sm-3 col-xs-3">
<div class="text-center">
<p class="strong">Courses</p>
<span class="badge badge-primary" data-toggle="tooltip" data-title="Published" data-placement="left" data-container="body">0</span>
<span class="badge badge-primary badge-stroke" data-toggle="tooltip" data-title="Subscribed" data-placement="right" data-container="body">5</span>
</div>
</div>
<div class="col-sm-3 col-xs-hidden">
<div class="innerAll">
<div class="media">
<a href="#" class="pull-left">
<img src="<?php echo $tphoto; ?>" class="media-object" width=35px />
</a>
<div class="media-body">
<a href="#" class="text-small" title='<?php echo $trole->created_at; ?>' onclick="doAjax('role/<?php echo $trole->id; ?>/edit','','roleformdiv','ajax_role_create','singlethis','GET');return false;"><?php echo $trole->rolename; ?></a>
<div class="clearfix"></div>
<small>
<?php if($trole->status=="Active"): ?>
<span class="label label-success"><?php echo $trole->status; ?></span>
<?php elseif($trole->status=="Disabled"): ?>
<span class="label label-warning"><?php echo $trole->status; ?></span>
<?php elseif($trole->status=="Unverified"): ?>
<span class="label label-warning"><?php echo $trole->status; ?></span>
<?php elseif($trole->status=="Blocked"): ?>
<span class="label label-important"><?php echo $trole->status; ?></span>
<?php endif; ?>
</small>
</div>
</div>
</div>
</div>
</div>
<!-- // END Category Listing -->
<?php } ?>
<?php echo $rolelist->render(); ?>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col -->
<!-- col -->
<div class="col-md-6">
<!-- col-separator -->
<div class="col-separator col-separator-last" id=roleformdiv>
</div>
<!-- // END col-separator -->
</div>
<!-- // END col-table -->
</div>
<!-- // END col-separator.box -->
</div>
<!-- // END col -->
</div>
<!-- // END row-app -->
</div>
<script>
$(".pagination a").click(function(e){
e.preventDefault();
var url=$(this).attr("href");
var res = url.split("page=");
menuAction("role?page="+res[1]);
return false;
});
</script>
\ No newline at end of file
<!DOCTYPE html>
<html class="app">
<head>
<title><?php echo Config::get("app.name"); ?> - <?php echo Config::get('app.app_title'); ?></title>
<meta charset="UTF-8" />
<?php
$v=Config::get('app.app_version');
$vieportopt=explode(":",Config::get("app.kstych_viewportMeta"));
if(!isset($vieportopt[1]))$vieportopt[1]="1";
if(!isset($vieportopt[2]))$vieportopt[2]="1";
if($vieportopt[0]=="responsive"){ ?>
<meta name="viewport" content="width=device-width, initial-scale=<?php echo $vieportopt[1]; ?>, maximum-scale=<?php echo $vieportopt[2]; ?>">
<?php } ?>
<meta name="author" content="Buzzworks">
<?php if(isset($logo_s))$fico=$logo_s;else $fico="favicon.png"; ?>
<link rel="icon" href="<?php echo url('/'); ?>/custom/<?php echo $fico; ?>" type="image/x-icon" />
<link rel="shortcut icon" href="<?php echo url('/'); ?>/custom/<?php echo $fico; ?>" type="image/x-icon" />
<link rel="stylesheet" href="<?php echo url('/'); ?>/style?v=<?php echo $v; ?>" />
<script type="text/javascript" src="<?php echo url('/'); ?>/jshead?v=<?php echo $v; ?>"></script>
</head>
<body class="">
<?php
if(Input::has("dllogxls"))
{
if(isset($_GET['logdate']))$logdate=strtotime($_GET['logdate']." 00:00:00");
else $logdate=strtotime(date('Y-m-d')." 00:00:00");
if(isset($_GET['logtodate']))$logtodate=strtotime($_GET['logtodate']." 23:59:59");
else $logtodate=strtotime(date('Y-m-d')." 23:59:59");
$ulists=DB::select(DB::raw("SELECT MONTH(crmcalls_archive.created_at) AS month, users.username, users.usertype, users.status, COUNT(DISTINCT EXTRACT(DAY FROM crmcalls_archive.created_at)) AS Number_of_Days, COUNT(DISTINCT crmcalls_archive.created_at) AS Number_of_calls FROM `users` INNER JOIN crmcalls_archive on users.id=crmcalls_archive.user_id WHERE crmcalls_archive.created_at >= '".date("Y-m-d H:i:s",$logdate)."' AND crmcalls_archive.created_at < '".date("Y-m-d H:i:s",$logtodate)."' GROUP BY users.id, MONTH(crmcalls_archive.created_at) ORDER BY MONTH(crmcalls_archive.created_at) DESC"));
$reportArr = array();
foreach($ulists as $ulist)
{
$reportArr[] = (array)$ulist;
}
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="seatcount.csv";');
header('Cache-Control: max-age=0');
$headers = ['month','username','usertype','status','Number_of_Days','Number_of_calls'];
$f = fopen('php://output','w');
fputcsv($f, $headers);
foreach($reportArr as $arr)
{
fputcsv($f, $arr);
}
return ;
}
else
{
?>
<div class="row">
<div class="col-md-12">
<div class=innerAll>
<fieldset style='margin-bottom:2%'>
<label>From:</label>
<input size=10 id='modfrom' name='modfrom' type='text' value='<?php echo date("Y-m-d"); ?>' onchange='callLogReloadFun("");' />
<label>To:</label>
<input size=10 id='modto' name='modto' type='text' value='<?php echo date("Y-m-d"); ?>' onchange='callLogReloadFun("");' />
</fieldset>
<fieldset style='margin-bottom:2%'>
<span style="color: #fb6e52;">To Download seat count click on following button.</span><br><br>
<input type=button class='btn btn-green' onclick="sendReq();" value="Download">
<div style='clear:both;height: 10px;'></div>
</fieldset>
</div>
</div>
<div style='clear:both;'></div>
</div>
<script>
$('#modfrom').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#modto').datepicker({dateFormat: 'yy-mm-dd',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
function sendReq()
{
// var postdata="dwnld=download";
// doAjax("record?action=seatcount",postdata,"employeeresult","esajaxMutex","esvarajax");
window.open('setting/seatcount?dllogxls=1&logdate='+$("#modfrom").val()+'&logtodate='+$("#modto").val());return false;
// window.open('record/seatcount?dwnld=download');
// return false;
}
</script>
<?php
}
<?php
readfile("assets/components/modules/admin/isotope/isotope.pkgd.js");echo "\n\n";
readfile("assets/components/library/bootstrap/js/bootstrap.min.js");echo "\n\n";
readfile("assets/components/modules/admin/tour/bootstrap-tour.js");echo "\n\n";
readfile("assets/components/library/modernizr/modernizr.js");echo "\n\n";
readfile("assets/components/plugins/holder/holder.js");echo "\n\n";
readfile("assets/components/plugins/nicescroll/jquery.nicescroll.min.js");echo "\n\n";
readfile("assets/components/plugins/slimscroll/jquery.slimscroll.js");echo "\n\n";
readfile("assets/components/plugins/image-preview/image-preview.js");echo "\n\n";
readfile("assets/components/core/js/animations.init.js");echo "\n\n";
readfile("assets/components/plugins/responsive-calendar/responsive-calendar.min.js");echo "\n\n";
readfile("assets/components/modules/admin/widgets/widget-collapsible/assets/widget-collapsible.init.js");echo "\n\n";
readfile("assets/components/modules/admin/gallery/gridalicious/assets/lib/jquery.gridalicious.min.js");echo "\n\n";
// readfile("assets/components/modules/admin/chat/jquery.ui.chatbox.js");echo "\n\n";
// readfile("assets/components/modules/admin/chat/chatboxmanager.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/jasny-fileupload/assets/js/bootstrap-fileupload.js");echo "\n\n";
readfile("assets/components/modules/admin/charts/easy-pie/assets/lib/js/jquery.easy-pie-chart.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/editors/wysihtml5/assets/lib/js/wysihtml5-0.3.0_rc2.min.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/editors/wysihtml5/assets/lib/js/bootstrap-wysihtml5-0.0.2.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-datepicker/assets/lib/js/bootstrap-datepicker.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-datepicker/assets/custom/js/bootstrap-datepicker.init.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-datetimepicker/moment-with-locales.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-datetimepicker/bootstrap-datetimepicker.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/select2/assets/lib/js/select2.js");echo "\n\n";
readfile("assets/components/modules/admin/sliders/bootstrap-slider/bootstrap-slider.js");echo "\n\n";
readfile("assets/components/modules/admin/notifications/notyfy/assets/lib/js/jquery.notyfy.js");echo "\n\n";
readfile("assets/components/modules/admin/notifications/gritter/assets/lib/js/jquery.gritter.min.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-switch/assets/lib/js/bootstrap-switch.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/elements/bootstrap-select/assets/lib/js/bootstrap-select.js");echo "\n\n";
readfile("assets/components/plugins/cookie/jquery.cookie.js");echo "\n\n";
readfile("assets/components/core/js/core.init.js");echo "\n\n";
readfile("assets/components/plugins/owl-carousel/owl.carousel.min.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/file_manager/dropzone/assets/lib/js/dropzone.min.js");echo "\n\n";
readfile("assets/components/modules/admin/gallery/prettyphoto/assets/lib/js/jquery.prettyPhoto.js");echo "\n\n";
readfile("assets/components/modules/admin/titlealert/titlealert.js");echo "\n\n";
readfile("assets/components/modules/admin/forms/wizards/assets/lib/jquery.bootstrap.wizard.js");echo "\n\n";
readfile("assets/components/modules/admin/ui/sortable/jquery.sortable.js");echo "\n\n";
readfile("assets/components/modules/admin/tables/datatables/assets/lib/js/jquery.dataTables.min.js");echo "\n\n";
readfile("assets/components/modules/admin/tables/datatables/assets/custom/js/DT_bootstrap.js");echo "\n\n";
readfile("assets/components/modules/admin/easytooltip/easytooltip.js");echo "\n\n";
readfile("assets/components/plugins/jquery-knob/jquery.knob.min.js");echo "\n\n";
readfile("assets/components/modules/admin/pushy/pushy.js");echo "\n\n";
readfile("assets/components/modules/admin/waves/waves.js");echo "\n\n";
// readfile("assets/js/paintweb/paintweb.src.js");echo "\n\n";
//
// readfile("assets/js/highchart/highcharts.js");echo "\n\n";
//
// readfile("assets/js/ckeditor/ckeditor.js");echo "\n\n";
//readfile("assets/js/sip.js");echo "\n\n";
//readfile("assets/js/dialer.js");echo "\n\n";
//readfile("assets/js/kstych.js");echo "\n\n";
//readfile("assets/js/datatable.js");echo "\n\n";
<?php
use App\Models\User;
$data = Auth::user()->data();
$meta = Auth::user()->meta();
if (!isset($data['personal'])) $data['personal'] = array();
$user = Auth::user();
$tmodules = $modules;
$modules = array();
$dispnames = array();
foreach ($tmodules as $mname => $marr) {
if (!isset($modules[$mname])) {
if (!in_array($marr['disp'], array_values($dispnames))) {
$modules[$mname] = $marr;
$dispnames[$mname] = $marr['disp'];
} else {
$key = array_search($marr['disp'], $dispnames);
$modules[$key]['submenu'] = array_merge($modules[$key]['submenu'], $marr['submenu']);
}
}
}
?>
<!-- panel left -->
<div class="pushy pushy-left">
<div class="desc_imgdiv">
<div class="pushy-user-desc">
<img src="<?php echo $user->fetchphoto(); ?>">
<h4><?php echo $user->dispname(); ?></h4>
<span><i class="fa fa-pencil-square-o"></i></span>
<div style="clear:both"></div>
<p><?php echo $user->email; ?></p>
</div>
</div>
<?php $active = "active";
foreach ($modules as $mname => $marr) {
if (isset($marr['submenu'])) {
?>
<div class=wave-btn style='width:100%'>
<div class=pushy-submenu>
<i class="fa fa-fw fa-<?php echo $marr['icon']; ?>"></i>
<h5><?php echo $marr['disp']; ?></h5>
<ul>
<?php
foreach ($marr['submenu'] as $submenu => $submenuarr) {
$p = 1;
if (isset($submenuarr[1])) {
$p = 0;
if (Auth::user()->moduleACL($mname, true, true, false) && $submenuarr[1] == "W") $p = 1;
if (Auth::user()->moduleACL($mname, true, true, true) && $submenuarr[1] == "A") $p = 1;
}
if ($p == 1) {
?>
<li class="pushy-link"><a href="#" data-ajax='false' onclick="<?php echo $submenuarr[0]; ?>return false;"><?php echo $submenu; ?></a></li>
<?php
}
}
?>
</ul>
</div>
</div>
<?php
} else if ($marr['onclick'] != "") {
?>
<div class=wave-btn style='width:100%'>
<div class="pushy-menu">
<i class="fa fa-fw fa-<?php echo $marr['icon']; ?>"></i>
<h5 class="pushy-link" onclick="<?php echo $marr['onclick']; ?>return false;"><?php echo $marr['disp']; ?></h5>
</div>
</div>
<?php }
$active = "";
} ?>
<div class="pushy-menu">
<i class="fa fa-fw fa-power-off"></i>
<h5 class="pushy-link" onclick="doLogout(0);return false;">Logout</h5>
</div>
</div>
<div class='pushy-site-overlay'></div>
<!-- /panel left -->
<div id="menu-top">
<div class=navbar>
<img src="custom/logo_s.png" class=border-none height=30px style='float:left'>
<div class="user-action pull-left wave-btn" style='height:40px;padding-top:0px;margin-top:0px;'>
<div class="dropdown username" style='padding-top:5px;margin-top:5px;'><a class="dropdown-toggle " href="#" onclick='menuAction("dashboard");$(this).blur();return false;'><b><?php echo Config::get("app.name"); ?> </b></a></div>
</div>
<ul class="main pull-left" id=topmainmenureturn style='display:none'>
<li onclick='returnMenuClick("dashboard");return false;'><a href="#"> Home </a></li>
</ul>
<ul class="main pull-left hidden-xs hidden-sm" id=topmainmenu>
<?php $active = "active";
foreach ($modules as $mname => $marr) { //TODO hidden-xs
if (isset($marr['submenu'])) {
?>
<li class='homemenu dropdown <?php echo $active; ?>' onclick='' id=mainmenu<?php echo $marr['disp']; ?>><a href="#" data-toggle="dropdown"> <?php echo $marr['disp']; ?> </a>
<ul class="dropdown-menu">
<?php
foreach ($marr['submenu'] as $submenu => $submenuarr) {
$p = 1;
if (isset($submenuarr[1])) {
$p = 0;
if (Auth::user()->moduleACL($mname, true, true, false) && $submenuarr[1] == "W") $p = 1;
if (Auth::user()->moduleACL($mname, true, true, true) && $submenuarr[1] == "A") $p = 1;
}
if ($p == 1) {
?>
<li><a href="#" onclick="<?php echo $submenuarr[0]; ?>return false;"><?php echo $submenu; ?></a></li>
<?php
}
}
?>
</ul>
</li>
<?php
} else if ($marr['onclick'] != "") {
?>
<li class='homemenu <?php echo $active; ?>' onclick="<?php echo $marr['onclick']; ?>return false;" id=mainmenu<?php echo $marr['disp']; ?>>
<a href="#"><?php echo $marr['disp']; ?></a>
</li>
<?php }
$active = "";
} ?>
<!-- change start code -->
<li style="color: #626771;font-weight: 600;height: 40px;line-height: 40px;padding: 0 10px;text-decoration: none;display: block;">
<div id="countdown">&nbsp;</div>
</li>
<!-- change end code -->
</ul>
<div class="user-action pull-right" id=topmainusermenu>
<?php
$acctype = Auth::user()->usertype;
if ($data["subscription"] == "Free") {
$datapercent = "100";
$subscstr = "Free Subscription";
$subscstr2 = "You are using a Free subscription <b>$acctype</b> account, there is no expiry";
} else if ($data["subscription"] == "Trial") {
$daysleft = intval(($data["subscriptiondata"][$acctype]['expiry'] - time()) / (24 * 60 * 60));
if ($daysleft < 0) $daysleft = 0;
$origdays = intval(($data["subscriptiondata"][$acctype]['expiry'] - $data["subscriptiondata"][$acctype]['created']) / (24 * 60 * 60));
$datapercent = round($daysleft * 100 / $origdays, 0);
$subscstr = "Trial Subscription";
$subscstr2 = "You are using a trial <b>$acctype</b> account, expiring in <b>$daysleft</b> days, after expiry this account will be converted to free learner account";
} else if ($data["subscription"] == "Expired") {
$datapercent = "0";
$subscstr = "Subscription Expired";
$subscstr2 = "You are using an expired <b>$acctype</b> account, please renew your subscription to use full features";
} else {
$daysleft = intval(($data["subscriptiondata"][$acctype]['expiry'] - time()) / (24 * 60 * 60));
if ($daysleft < 0) $daysleft = 0;
$origdays = intval(($data["subscriptiondata"][$acctype]['expiry'] - $data["subscriptiondata"][$acctype]['created']) / (24 * 60 * 60));
$datapercent = round($daysleft * 100 / $origdays, 0);
$subscstr = $data["subscription"] . " Subscription";
$subscstr2 = "You are using an active <b>$acctype</b> account, expiring in <b>$daysleft</b> days, after expiry this account will be converted to free learner account";
}
?>
<ul class="colors pull-right visible-xs visible-sm wave-btn" style='margin-top:-3px;'>
<li class="dropdown">
<a href="#" class="menu-btn"><i class='fa fa-bars' style='font-size:20px'></i></a>
</li>
</ul>
<div class="dropdown username hidden-xs" style='float:right'>
<a class="dropdown-toggle" data-toggle="dropdown" href="#" onclick=''><?php echo $displayname; ?> <span class="caret"></span> </a>
<ul class="dropdown-menu pull-right" id=topuserdropmenu>
<li><a href="#" class="glyphicons user" onclick='menuAction("profile");return false;'><i></i> Profile</a></li>
<!--<li><a href="#" class="glyphicons list" onclick='menuAction("admin");return false;'><i></i> Timeline</a></li>-->
<li><a href="#" class="glyphicons book" onclick='menuAction("dashboard");return false;'><i></i> Dashboard</a></li>
<?php if (Auth::user()->moduleACL("Admin", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("admin");return false;'><i></i><?php echo Config::get("app.name"); ?> Admin</a></li>
<?php } ?>
<?php if (Auth::user()->moduleACL("User", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("user");return false;'><i></i> Manage Users</a></li>
<?php }
if (Auth::user()->moduleACL("Group", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("group");return false;'><i></i> Manage Groups</a></li>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("role");return false;'><i></i> Manage Roles</a></li>
<?php } ?>
<?php if (Auth::user()->moduleACL("ImportExcel", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("import_excel");return false;'><i></i> Import Excel</a></li>
<?php } ?>
<li><a href="#" class="glyphicons circle_question_mark" onclick="dindexmenu('help&page=helpintroduction',this);return false;"><i></i> Help</a></li>
<li><a href="#" class="glyphicons cogwheels" onclick="menuAction('setting');return false;"><i></i>Settings</a></li>
<li><a href="#" class="glyphicons exit" onclick="doLogout(0);return false;"><i></i> Logout</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<script type="text/javascript">
redirect_to_password_reset();
function redirect_to_password_reset() {
var action = "password_expiry_check";
$.ajax({
type: "GET",
url: action,
success: function(result) {
console.log(result);
if (result == 'True') {
menuAction("profile");
}
}
});
}
</script>
\ No newline at end of file
<?php
use App\Models\CRMCall;
use App\Models\Dialline;
use App\Models\Sipid;
use App\Models\User;
use App\Models\UserLog;
use App\Models\Kqueue;
use App\Jobs\KHRMSLib;
$wakka = new KHRMSLib();
$dashboarduser=Auth::user();
$nowts=time();
$chart=array('ts'=>date('H:i:s',time()-($dashboarduser->timezone*60)),'Online'=>0,'NoCall'=>0,'InCall'=>0,'CallWait'=>0,'CmdList'=>0);
if($dashboarduser->usertype != 'Admin')
//if(!$dashboarduser->moduleACL("Dialer",false,false,true))
{
$allusers=User::where(function ($query) use($dashboarduser) {
$query->where('supervisor','=',$dashboarduser->username)
->orWhere('lteam2','=',$dashboarduser->username)
->orWhere('lteam','=',$dashboarduser->username)
->orWhere('id','=',$dashboarduser->id);
})
->where(function ($query) {
$query->where('status', '=', 'Active');
})->get();
}
else
{
$allusers=User::where("status","=","Active")->get();
}
$loginUsers = DB::table('sessions')->where('user_id','!=','Null')->groupBy('user_id')->get();
foreach($loginUsers as $user)$loginUserList[]=$user->user_id;
foreach($allusers as $tuser)if(in_array($tuser->id,$loginUserList))$uidlist[]=$tuser->id;
$newcalls=Dialline::where('status','!=','Free')->where('conf','=','')->orderBy('updated_at')->get();
$acalls=Dialline::where('status','!=','Free')->where('conf','!=','')->orderBy('updated_at')->get();
$sipids=Sipid::whereIn("user",$uidlist)->where("status","=","1")->get();
$alist=array();
$sipidsfound=array();
$userarr=array();$i=1;
//$reporthead=array("#","ID","User","Name","Campaign","Station","Status","CRMId","Number","Type","State","Duration");
$reporthead=array("#","ID","User","Name","Campaign","Station","Status");
$reportarray=array();
foreach($newcalls as $newcall)
{
$tcall=CRMCall::where('dialline_id','=',$newcall->id)->orderBy('id','DESC')->first();
$un="";$uid="";$us="";
if($tcall->user_id>0)
{
$tuser=User::find($tcall->user_id);
$un=$tuser->username;
$uname=$tuser->fullname;
$uid=userchatbox($tuser).$tuser->id;
$userlog=UserLog::where('user_id','=',$tuser->id)->orderBy("id","DESC")->first();
$stend=$userlog->getLastStatus();
$us="$stend[0]-$stend[1]";
$chart['Online']++;
$chart['InCall']++;
}
else $chart['CallWait']++;
if($tcall->state == 'DialEnd')
{
$us = "Talk";
}
$obj=array();
$obj["#"]='';//$i++;
$obj["ID"]=$uid;
$obj["User"]=$un;
$obj["Name"]=$uname;
$obj["Campaign"]=$tcall->client;
$obj["Station"]=$tcall->sipid_id.userSpyStr($tcall->sipid_id);
$obj["Status"]=$us;
$obj["CRMId"]=$tcall->crm_id;
$obj["Number"]=$tcall->number;
$obj["Type"]=$tcall->type;
$obj["State"]=$tcall->state;
$obj["Duration"]=$nowts-strtotime($tcall->created_at);
//$reportarray[$newcall->id]=$obj;
if(!empty($tcall->sipid_id))$sipidsfound[]=$tcall->sipid_id;
}
foreach($acalls as $acall)
{
$tcall=CRMCall::where('dialline_id','=',$acall->id)->orderBy('id','DESC')->first();
$tsipid=substr($acall->conf,4);
$tsip=Sipid::find($tsipid);
$clidata=json_decode($tsip->clients,true);
$tuser=User::find($tsip->user);
$userlog=UserLog::where('user_id','=',$tuser->id)->orderBy("id","DESC")->first();
$stend=$userlog->getLastStatus();
$obj=array();
$obj["#"]='';//$i++;
$obj["ID"]=userchatbox($tuser).$tsip->user;
$obj["User"]=$tuser->username;
$obj["Name"]=$tuser->fullname;
$obj["Campaign"]=substr($clidata['r'],0,20);
$obj["Station"]=$tsip->id.userSpyStr($tsip->id);
$obj["Status"]="$stend[0]-$stend[1]";
$obj["CRMId"]=$tcall->crm_id;
$obj["Number"]=$tcall->number;
$obj["Type"]=$tcall->type;
$obj["State"]=$tcall->state;
$obj["Duration"]=$nowts-strtotime($tcall->created_at);
//$reportarray[$acall->id]=$obj;
$sipidsfound[]=$tsipid;
$chart['Online']++;
$chart['InCall']++;
}
foreach($sipids as $sipid)
{
/*if(in_array($sipid->id,$sipidsfound))
{*/
$clidata=json_decode($sipid->clients,true);
$tuser=User::find($sipid->user);
$userlog=UserLog::where('user_id','=',$tuser->id)->orderBy("id","DESC")->first();
$stend=$userlog->getLastStatus();
$obj=array();
$obj["#"]=$i++;
$obj["ID"]=userchatbox($tuser).$sipid->user;
$obj["User"]=$tuser->username;
$obj["Name"]=$tuser->fullname;
$obj["Campaign"]=substr($clidata['r'],0,20);
$obj["Station"]=$sipid->id.userSpyStr($sipid->id);
$obj["Status"]="$stend[0]-$stend[1]";
$obj["CRMId"]="";
$obj["Number"]="";
$obj["Type"]="";
$obj["State"]="";
$obj["Duration"]="";
$reportarray[]=$obj;
$chart['Online']++;
$chart['NoCall']++;
/*}*/
}
$chart['CmdList']=-1*Kqueue::count();
if(Input::get('chartvals')==1)
{
echo json_encode($chart);
return;
}
$highestColumn = sizeof($reporthead);
$outhead="<tr>";$outstr="";
for ($head = 0; $head < $highestColumn; $head++){
$outhead.="<td>".$reporthead[$head]."</td>";
}
$outhead.="</tr>";
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
$outstr.="<td>".$uarr[$reporthead[$head]]."</td>";
}
$outstr.="</tr>";
}
function userchatbox($tuser){
return "<a data-toggle='image-preview' data-title='".$tuser->dispname()."' data-content='<small></small>' data-image-preview='".$tuser->fetchphotothumb()."' width='100' href='#' class='innerAll half border-none' onclick='tchatbox(\"chatpop_".$tuser->id."\",\"".$tuser->dispname()."\");return false;' style='padding:0 !important'><img src='".$tuser->fetchphotothumb()."' alt='photo' width='22'></a> ";
}
function userSpyStr($sipid){
if(!empty($sipid))return "&nbsp;&nbsp;&nbsp;<a href=# onclick='kDialerSpy(\"$sipid\",\"L\");return false;'>L</a> <a href=# onclick='kDialerSpy(\"$sipid\",\"B\");return false;'>B</a> <a href=# onclick='kDialerSpy(\"$sipid\",\"W\");return false;'>W</a>";
}
?>
<div class=innerAll>
<style>#logtable.td{vertical-align:top;}#logtable.tr{height:28px;overflow-y:hidden;}</style>
<script>
$(document).ready(function(){
if(!$('#dialoglog').hasClass('ui-dialog-content')){
$('#dialoglog').dialog({
autoOpen: false,
width: '70%',
buttons: {
"Ok": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
}
});
</script>
<div style="float:left;width:50%">
<h5>Dialer : Live</h5>
</div>
<div style="float:left;width:50%">
<button class="pull-right btn btn-sm btn-default" onclick='liveLogReloadFun(10);return false;' title='Reload' style='margin-top:-8px'><i class='fa fa-refresh'></i> Reload</button>
</div>
<div style="clear:both"></div>
<hr/>
<div class=col-md-12>
<div id=liveuserlogschart1<?php echo $nowts; ?> style='min-height:300px;width:100%'></div>
<script>
var livechart001='';
$(function () {
livechart001=$('#liveuserlogschart1<?php echo $nowts; ?>').highcharts({
title: {
text: '', x: -20 //center
},
subtitle: {
text: '', x: -20
},
xAxis: {
categories: [<?php $ccc=array();for($c=60;$c>0;$c--){echo "'",date('H:i:s',time()-($c*10)-($dashboarduser->timezone*60))."',";$ccc[]="0";}$ccc="[".implode(",",$ccc)."]"; ?>],
labels:{
enabled:false//default is true
},
},
yAxis: {
title: {
text: ''
},
plotLines: [{
value: 0, width: 1, color: '#808080'
}]
},
tooltip: {
valueSuffix: ''
},
legend: {
},
series: [{
name: 'Online', data: <?php echo Input::get('Online',$ccc); ?>
}, {
name: 'NoCall', data: <?php echo Input::get('NoCall',$ccc); ?>
}, {
name: 'InCall', data: <?php echo Input::get('InCall',$ccc); ?>
}, {
name: 'CallWait', data: <?php echo Input::get('CallWait',$ccc); ?>
}, {
name: 'CmdList',visible: false, data: <?php echo Input::get('CmdList',$ccc); ?>
}]
});
});
function liveLogReloadFun(delay)
{
var tchart=livechart001.highcharts();
var sdata='';
sdata+='&Online='+JSON.stringify(tchart.series[0].yData);
sdata+='&NoCall='+JSON.stringify(tchart.series[1].yData);
sdata+='&InCall='+JSON.stringify(tchart.series[2].yData);
sdata+='&CallWait='+JSON.stringify(tchart.series[3].yData);
sdata+='&CmdList='+JSON.stringify(tchart.series[4].yData);
setTimeout(function(){
if($("#liveuserlogschart1<?php echo $nowts; ?>").length)
doAjax('dialer/liveusers',sdata,'rightmainreportdiv','ajax_dialer_reports','singlethis','GET');
},delay);
}
function liveLogReloadChartFun(delay)
{
setTimeout(function(){
if($("#liveuserlogschart1<?php echo $nowts; ?>").length)
doAjax('dialer/liveusers','chartvals=1','__FD__','ajax_dialer_reports','singlethis','GET',function(res)
{
var resobj=JSON.parse(res.responseText);
var tchart=livechart001.highcharts();
var shift = tchart.series[0].data.length > 60;
// add the point
tchart.series[0].addPoint([resobj['ts'],resobj['Online']], true, shift);
tchart.series[1].addPoint([resobj['ts'],resobj['NoCall']], true, shift);
tchart.series[2].addPoint([resobj['ts'],resobj['InCall']], true, shift);
tchart.series[3].addPoint([resobj['ts'],resobj['CallWait']],true,shift);
tchart.series[4].addPoint([resobj['ts'],resobj['CmdList']],true,shift);
// call it again after one second
setTimeout(liveLogReloadChartFun, 10000);
});
},delay);
}
liveLogReloadChartFun(10);
</script>
</div>
<div style='clear:both'></div>
<div style='clear:both'></div>
<div style='overflow:auto'>
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px'>
<thead>
<?php echo $outhead; ?>
</thead>
<?php echo $outstr; ?>
</table>
</div>
<div id=dialoglog></div>
</div>
<!--
<?php //if($dashboarduser->moduleACL("Admin",false,false,true))print_r(Config::get('app.sqllog')); ?>
-->
<?php
ini_set("precision", 15);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$errorMsg = "";
$successMsg = "";
if($_FILES['file']['tmp_name'])
{
if($_FILES['file']['type'] == "application/vnd.ms-excel")
{
$fileUploadLimit = 52428800; // files size is in bytes
if($_FILES['file']['size'] < $fileUploadLimit)
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
if ($_POST["uploadFileType"] == "customerInfo")
{
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
$kformlib->gthis=$wakka;
$themehome=$wakka->GetThemePath('/');
$updatetime=time();
function mkdir_r ($dir)
{
if (strlen($dir) == 0)return 0;
if (is_dir($dir))return 1;
elseif (dirname($dir) == $dir)return 1;
return (mkdir_r(dirname($dir)) and mkdir($dir,0777));
}
$clientlst=$wakka->GetBBBUserData("clientslist");
$isadmin=$wakka->IsAdmin();
$username=$wakka->GetUserName();
$triggers=Input::get("triggers");
$tmpstr=explode(",",$kformlib->HRFiledsStr);
$success="";$message="";$successcnt=0;$duplicatecount=0;
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['file']['tmp_name']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestColumn = PHPExcel_Cell::columnIndexFromString($objPHPExcel->getActiveSheet()->getHighestColumn());
$highestrow=$objPHPExcel->getActiveSheet()->getHighestRow();
$excelarray=array();$keys=array();
for($i=1;$i<=$highestrow;$i++)
{
$excelarray[$i]=array();
for($head = 0; $head < $highestColumn; $head++)
{
if($i==1)
{
$keys[$head]=trim($objWorksheet->getCellByColumnAndRow($head,$i)->getValue());
}else{
$excelarray[$i][$keys[$head]]=trim($objWorksheet->getCellByColumnAndRow($head, $i)->getValue());
}
}
}
for($i=3;$i<=$highestrow;$i++)
{
if($excelarray[$i]["lan"]!="")
{
if(strlen($excelarray[$i]["lan"]) ===15)
{
if($wakka->getCampaign($excelarray[$i]['client']))
{
$lan = $wakka->getLan($excelarray[$i]['lan']);
if($excelarray[$i]["lan"]!=$lan['lan'])
{
$excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
}
else
{
$excelarray[$i]["id"]=intval($lan['id']);
}
// $lanq = DB::table('records')->select('id')->where('lan', '=', $excelarray[$i]["lan"])->first();
// if($lanq){
// $excelarray[$i]["id"]=intval($lanq->id);
// }else{
// $excelarray[$i]["id"]=$wakka->Query("insert into","","records",array('created'=>date('Y-m-d H:i:s')));
// }
if($wakka->getCount("records","id='".$excelarray[$i]["id"]."'")==1)
{
$empdata=$wakka->getPerson($excelarray[$i]["id"]);
$ppldata=$empdata["peopledata"];
$createdlog=$empdata['modifylog'];
$fdirty=$empdata['dirty'];
$createdlog[$updatetime]=$username."::";
$createdlog["updated"]=$updatetime;
$newdata=$ppldata;
if($isadmin||strstr($clientlst,$ppldata['client']))
{
$editflag=0;
foreach($excelarray[$i] as $key => $value)
{
$value = preg_replace('/[^A-Za-z0-9\., -]/', '', $value);
if(isset($kformlib->HRFieldNames[$key]))
{
if($value!="")
{
if("A".$ppldata[$key]!="A".$value)//forcing string comparrision //MAGIC
{
$value=str_replace("'"," ",$value);
if(strstr($createdlog[$updatetime],$key)==FALSE)$createdlog[$updatetime].="$key|".str_replace(array("|",",")," ",$ppldata[$key])."|".str_replace(array("|",",")," ",$value).",";
$fdirty[$key]=1;$editflag=1;
if($triggers=='Yes')
{
$kformlib->empAnalytics($excelarray[$i]["id"],$ppldata,$key,$value,$ppldata[$key]);
$kformlib->empWorkflowTrigger($excelarray[$i]["id"],$ppldata['client'],$key,$value,$ppldata[$key],$ppldata,$newdata);
}
$newdata[$key]=$value;
}
//else $message.="same $excelarray[$i][id]:$key:$value, ";
}
//else $message.="empty $excelarray[$i][id]:$key, ";
}else{
// $message.="Invalid key :$key, ";
}
}
if($editflag)
{
$empdata["peopledata"]=$newdata;
$empdata['modifylog']=$createdlog;
$empdata['dirty']=$fdirty;
$wakka->setPerson($excelarray[$i]["id"],$empdata);
$success.=$excelarray[$i]["id"].",";$successcnt++;
}else{
$errorMsg.="Same Data exist already "." with Lan No ".$excelarray[$i]["lan"].", " ;
}
}else{
$errorMsg.="No access to $excelarray[$i][id], ";
}
}else{
$errorMsg.="ID not found $excelarray[$i][id], ";
}
}else
{
$errorMsg.=$excelarray[$i]["client"]." is not available,Please Create this Campaign first ";
break;
}
}else{
$errorMsg.="LAN Number ".$i."should be 15digit, ";
}
}else{
$errorMsg.="LAN No is blank, ";
break;
}
}
$successMsg .= "Data Uploaded ($successcnt)."; // : $success.";
}
if ($_POST["uploadFileType"] == "trails")
{
$success="";$message="";$successcnt=0;$duplicatecount=0;
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['file']['tmp_name']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestColumn = PHPExcel_Cell::columnIndexFromString($objPHPExcel->getActiveSheet()->getHighestColumn());
$highestrow=$objPHPExcel->getActiveSheet()->getHighestRow();
$excelarray=array();$keys=array();
for($i=1;$i<=$highestrow;$i++)
{
$excelarray[$i]=array();
for($head = 0; $head < $highestColumn; $head++)
{
if($i==1)
{
$keys[$head]=trim($objWorksheet->getCellByColumnAndRow($head,$i)->getValue());
}else{
$excelarray[$i][$keys[$head]]=trim($objWorksheet->getCellByColumnAndRow($head, $i)->getValue());
}
}
}
$addCount = 0;$updateCount = 0;
for($i=3;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="Create")
{
$queryResult = $wakka->Query("insert into","","trails",array(
'lan'=>$excelarray[$i]['lan'],
'action_date'=> PHPExcel_Style_NumberFormat::toFormattedString($excelarray[$i]['actionDate'], 'yyyy-mm-dd'),
'user_id'=>$excelarray[$i]['userId'],
'action_code'=>$excelarray[$i]['actionCode'],
'result_code'=>$excelarray[$i]['resultCode'],
'next_action_code'=>$excelarray[$i]['nextActionCode'],
'next_action_time'=>PHPExcel_Style_NumberFormat::toFormattedString($excelarray[$i]['nextActionDate'], 'yyyy-mm-dd hh:mm'),
'rfd'=>$excelarray[$i]['rfd'],
'remark'=>$excelarray[$i]['remark'],
'bucket_code'=>$excelarray[$i]['bucketCode_field'],
'special_code'=>$excelarray[$i]['specialCode']
));
$addResult .= $queryResult.', ';
$addCount++;
}else{
$lanq = DB::table('trails')->select('id')->where('id', '=', $excelarray[$i]["id"])->first();
if($lanq && $lanq->id != ""){
DB::table('trails')->where('id',$lanq->id)->update([
'lan'=>$excelarray[$i]['lan'],
'action_date'=>PHPExcel_Style_NumberFormat::toFormattedString($excelarray[$i]['actionDate'], 'yyyy-mm-dd'),
'user_id'=>$excelarray[$i]['userId'],
'action_code'=>$excelarray[$i]['actionCode'],
'result_code'=>$excelarray[$i]['resultCode'],
'next_action_code'=>$excelarray[$i]['nextActionCode'],
'next_action_time'=>PHPExcel_Style_NumberFormat::toFormattedString($excelarray[$i]['nextActionDate'], 'yyyy-mm-dd hh:mm'),
'rfd'=>$excelarray[$i]['rfd'],
'remark'=>$excelarray[$i]['remark'],
'bucket_code'=>$excelarray[$i]['bucketCode_field'],
'special_code'=>$excelarray[$i]['specialCode']
]);
$updateResult .= $lanq->id.', ';
$updateCount++;
}
}
}else{
$errorMsg.="ID is blank, ";
}
}
$successMsg .= "Data Uploaded ($addCount): $addResult. Data update($updateCount): $updateResult.";
}
if ($_POST["uploadFileType"] == "addressdata")
{
$success="";$message="";$successcnt=0;$duplicatecount=0;
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['file']['tmp_name']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestColumn = PHPExcel_Cell::columnIndexFromString($objPHPExcel->getActiveSheet()->getHighestColumn());
$highestrow=$objPHPExcel->getActiveSheet()->getHighestRow();
$excelarray=array();$keys=array();
for($i=1;$i<=$highestrow;$i++)
{
$excelarray[$i]=array();
for($head = 0; $head < $highestColumn; $head++)
{
if($i==1)
{
$keys[$head]=trim($objWorksheet->getCellByColumnAndRow($head,$i)->getValue());
}else{
$excelarray[$i][$keys[$head]]=trim($objWorksheet->getCellByColumnAndRow($head, $i)->getValue());
}
}
}
$addCount = 0;$updateCount = 0;
for($i=3;$i<=$highestrow;$i++)
{
if($excelarray[$i]["id"]!="")
{
if($excelarray[$i]["id"]=="Create")
{
$queryResult = $wakka->Query("insert into","","address",array(
'lan'=>$excelarray[$i]['lan'],
'address_type'=>$excelarray[$i]['addresstype'],
'contact_person'=>$excelarray[$i]['contactperson'],
'address_1'=>$excelarray[$i]['address1'],
'address_2'=>$excelarray[$i]['address2'],
'address_3'=>$excelarray[$i]['address3'],
'address_4'=>$excelarray[$i]['address4'],
'area'=>$excelarray[$i]['area'],
'landmark'=>$excelarray[$i]['landmark'],
'city'=>$excelarray[$i]['city'],
'zip'=>$excelarray[$i]['zip'],
'state'=>$excelarray[$i]['state'],
'mobile'=>$excelarray[$i]['mobileno'],
'email'=>$excelarray[$i]['mailid']
));
$addResult .= $queryResult.', ';
$addCount++;
}else{
$lanq = DB::table('trails')->select('id')->where('id', '=', $excelarray[$i]["id"])->first();
if($lanq && $lanq->id != ""){
DB::table('address')->where('id',$lanq->id)->update([
'lan'=>$excelarray[$i]['lan'],
'address_type'=>$excelarray[$i]['addresstype'],
'contact_person'=>$excelarray[$i]['contactperson'],
'address_1'=>$excelarray[$i]['address1'],
'address_2'=>$excelarray[$i]['address2'],
'address_3'=>$excelarray[$i]['address3'],
'address_4'=>$excelarray[$i]['address4'],
'area'=>$excelarray[$i]['area'],
'landmark'=>$excelarray[$i]['landmark'],
'city'=>$excelarray[$i]['city'],
'zip'=>$excelarray[$i]['zip'],
'state'=>$excelarray[$i]['state'],
'mobile'=>$excelarray[$i]['mobileno'],
'email'=>$excelarray[$i]['mailid']
]);
$updateResult .= $lanq->id.', ';
$updateCount++;
}
}
}else{
$errorMsg.="ID is blank, ";
}
}
$successMsg .= "Data Uploaded ($addCount): $addResult. Data update($updateCount): $updateResult.";
}
}else{
$errorMsg .= "File size too large, Please check file size should be less then ".($fileUploadLimit / (1024*1024))."mb.";
}
}else{
$errorMsg .= "File format not valid, Please attach Excel file (.xls) and try upload again.";
}
@unlink($_FILES['file']);
}else{
$errorMsg .= "File not found, Please attach file and try upload again.";
}
if(isset($successMsg) && $successMsg!=""){
if($successcnt!=0)echo "Success! ".$successMsg;
}
if(isset($errorMsg) && $errorMsg!="")echo "Error! ".$errorMsg;
}else{
?>
<div class="layout-app">
<div class="row">
<div class="col-sm-12">
<div class="col-separator col-separator-first box col-unscrollable">
<div class="tab_generic" style="padding: 10px;">
<h4>Customers Data Upload</h4>
<hr style="margin-bottom: 10px;" />
<p><span style="color:#f00;"><strong>Instruction</strong></span><br/>
(Works only if you have 'Write access" to the records)<br/>
Please create an Excel-2003 format file with header as field-keys and rows containing record data.<br/>
Extream Care is should be taken during bulk upload as previous values will be overwritten and lost.</p>
<div class="row">
<div class="col-sm-4" style="border-right: 1px #eee solid;">
<h5>Customer Info</h5>
<div style="padding: 10px;">
<p>Upload File</p>
<form method="POST" enctype="multipart/form-data" target="resultArea" action="data?action=upload">
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="uploadFileType" value="customerInfo"/>
<p><input type="file" class="form-control" name="file"/></p>
<button type="submit" class="btn btn-success pull-right"><i class="fa fa-upload"></i> Upload</button>
</form>
</div>
</div>
<div class="col-sm-4" style="border-right: 1px #eee solid;">
<h5>Followup Trails</h5>
<div style="padding: 10px;">
<p>Upload File</p>
<form method="POST" enctype="multipart/form-data" target="resultArea" action="data?action=upload">
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="uploadFileType" value="trails"/>
<p><input type="file" class="form-control" name="file"/></p>
<button type="submit" class="btn btn-success pull-right"><i class="fa fa-upload"></i> Upload</button>
</form>
</div>
</div>
<div class="col-sm-4">
<h5>Contact Details</h5>
<div style="padding: 10px;">
<p>Upload File</p>
<form method="POST" enctype="multipart/form-data" target="resultArea" action="data?action=upload">
<input type="hidden" name="_token" value="<?php echo e(csrf_token()); ?>" />
<input type="hidden" name="uploadFileType" value="addressdata"/>
<p><input type="file" class="form-control" name="file"/></p>
<button type="submit" class="btn btn-success pull-right"><i class="fa fa-upload"></i> Upload</button>
</form>
</div>
</div>
</div>
<div class="row" style="margin-top: 20px;">
<div class="col-sm-12">
<iframe name=resultArea id="resultArea" style="width: 100%;border:none;"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
}
?>
\ No newline at end of file
<?php
use App\Models\User;
?>
<audio id="audio_remote" autoplay="autoplay" ></audio>
<audio id="ringtone" loop src="<?php echo url('/'); ?>/assets/sounds/ringtone.wav" ></audio>
<audio id="ringbacktone" loop src="<?php echo url('/'); ?>/assets/sounds/ringbacktone.wav" ></audio>
<audio id="incomingbeep" src="<?php echo url('/'); ?>/assets/sounds/beep.wav" ></audio>
<audio id="dtmfTone" src="<?php echo url('/'); ?>/assets/sounds/dtmf.wav"></audio>
<video class="video" style='display:none' id="video_remote" autoplay="autoplay"></video>
<video class="video" style='display:none' id="video_local" autoplay="autoplay" muted="true"></video>
<?php
$skin=Input::get("skin");if(Auth::check())if($skin=="")$skin=Auth::user()->dataval('skin');
$skinarr=User::getStyleColors($skin);
$v=Config::get('app.app_version');
if(Config::get("app.facebook_appid")!="")
{
echo "<script src='//connect.facebook.net/en_US/all.js'></script>";
echo "<script>try{\$(document).ready(function(){FB.init({app_id:'".Config::get("app.facebook_appid")."',appId:'".Config::get("app.facebook_appid")."',cookie:true,status:true,xfbml:true});});}catch(e){}</script>";
}
?>
<!-- <button class="btn btn-warning" onclick="logAgentStatus();" style="position:fixed;bottom:10px;right:10px;z-index:2000;"><i class="fa fa-bug"></i> Log</button> -->
<div id="log_result"></div>
<script>
var mastervalue = "";
var kstychAppObject={};
kstychAppObject['config']={};
kstychAppObject['user']={};
<?php if(Auth::check()): ?>
kstychAppObject['user']['id']='<?php echo Auth::user()->id; ?>';
kstychAppObject['user']['name']='<?php echo Auth::user()->username; ?>';
kstychAppObject['user']['usertype']='<?php echo Auth::user()->usertype; ?>';
kstychAppObject['user']['dateformat']='dd.mm.yy';
kstychAppObject['user']['ssn']='<?php echo session_name(); ?>';
kstychAppObject['user']['ssid']=encodeURIComponent("<?php echo Crypt::encrypt(Auth::user()->id.'|'.session_id()); ?>");
<?php else: ?>
kstychAppObject['user']['id']=0;
kstychAppObject['user']['name']='NA';
kstychAppObject['user']['usertype']='NA';
kstychAppObject['user']['dateformat']='dd.mm.yy';
kstychAppObject['user']['ssn']='';
kstychAppObject['user']['ssid']='';
<?php endif; ?>
<?php if(isset($sipid)): ?>
kstychAppObject['user']['sipid']=<?php echo $sipid->id; ?>+"";
kstychAppObject['user']['sipserver']='<?php echo $sipid->server; ?>';
kstychAppObject['user']['sipssldomain']='<?php echo Config::get("app.sipssldomain"); ?>';
kstychAppObject['user']['sipauth']='__unused__';
<?php else: ?>
kstychAppObject['user']['sipid']='0';
kstychAppObject['user']['sipserver']='127.0.0.1';
kstychAppObject['user']['sipssldomain']='localhost';
kstychAppObject['user']['sipauth']='__unused__';
<?php endif; ?>
kstychAppObject['config']['appbaseurl']='<?php echo url("/"); ?>';
kstychAppObject['config']['appdebug']=<?php if(Config::get('app.debug')&&empty($_GET['nodebug']))echo "1";else echo "0"; ?>;
kstychAppObject['config']['appanimate']=0;
kstychAppObject['config']['csrftoken']='<?php echo e(csrf_token()); ?>';
kstychAppObject['config']['kstych_RTCLK']=<?php echo Config::get('app.kstych_RTCLK'); ?>;
kstychAppObject['config']['kstych_CTRL']=<?php echo Config::get('app.kstych_CTRL'); ?>;
kstychAppObject['config']['kDialer_keeplocalconf']=<?php echo Config::get('app.kDialer_keeplocalconf'); ?>;
kstychAppObject['config']['use-ice']='<?php echo Config::get('app.kstych_useice'); ?>';
kstychAppObject['config']['colorPrimary']='<?php echo $skinarr[0]; ?>';
kstychAppObject['config']['colorLink']='<?php echo $skinarr[1]; ?>';
kstychAppObject['config']['colorInfo']='<?php echo $skinarr[2]; ?>';
kstychAppObject['config']['colorWhite']='<?php echo $skinarr[3]; ?>';
kstychAppObject['config']['colorDefault']='<?php echo $skinarr[4]; ?>';
kstychAppObject['config']['colorSuccess']='<?php echo $skinarr[5]; ?>';
kstychAppObject['config']['colorWarning']='<?php echo $skinarr[6]; ?>';
kstychAppObject['config']['colorDanger']='<?php echo $skinarr[7]; ?>';
kstychAppObject['config']['colorInverse']='<?php echo $skinarr[8]; ?>';
</script>
<script src="<?php echo url('/'); ?>/assets/components/modules/admin/chat/jquery.ui.chatbox.js"></script>
<script src="<?php echo url('/'); ?>/assets/components/modules/admin/chat/chatboxmanager.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/highchart/highcharts.js"></script>
<script src="<?php echo url('/'); ?>/jsbody?v=<?php echo $v; ?>"></script>
<script src="<?php echo url('/'); ?>/assets/js/sip.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/dialer.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/kstych.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/datatable.js"></script>
<?php if(Session::has('mdevice')&&Session::get('mdevice')!=""){$md=Session::get('mdevice'); ?>
<script src="<?php echo url('/'); ?>/assets/js/cordova/<?php echo $md; ?>/cordova.js?v=<?php echo $v; ?>"></script>
<script src="<?php echo url('/'); ?>/assets/js/cordova/<?php echo $md; ?>/kstych.js?v=<?php echo $v; ?>"></script>
<?php } ?>
</body>
</html>
<?php
use App\Models\User;
?>
<audio id="audio_remote" autoplay="autoplay" ></audio>
<audio id="ringtone" loop src="<?php echo url('/'); ?>/assets/sounds/ringtone.wav" ></audio>
<audio id="ringbacktone" loop src="<?php echo url('/'); ?>/assets/sounds/ringbacktone.wav" ></audio>
<audio id="incomingbeep" src="<?php echo url('/'); ?>/assets/sounds/beep.wav" ></audio>
<audio id="dtmfTone" src="<?php echo url('/'); ?>/assets/sounds/dtmf.wav"></audio>
<video class="video" style='display:none' id="video_remote" autoplay="autoplay"></video>
<video class="video" style='display:none' id="video_local" autoplay="autoplay" muted="true"></video>
<?php
$skin=Input::get("skin");if(Auth::check())if($skin=="")$skin=Auth::user()->dataval('skin');
$skinarr=User::getStyleColors($skin);
$v=Config::get('app.app_version');
if(Config::get("app.facebook_appid")!="")
{
echo "<script src='//connect.facebook.net/en_US/all.js'></script>";
echo "<script>try{\$(document).ready(function(){FB.init({app_id:'".Config::get("app.facebook_appid")."',appId:'".Config::get("app.facebook_appid")."',cookie:true,status:true,xfbml:true});});}catch(e){}</script>";
}
?>
<!-- <button class="btn btn-warning" onclick="logAgentStatus();" style="position:fixed;bottom:10px;right:10px;z-index:2000;"><i class="fa fa-bug"></i> Log</button> -->
<div id="log_result"></div>
<script>
var mastervalue = "";
var kstychAppObject={};
kstychAppObject['config']={};
kstychAppObject['user']={};
<?php if(Auth::check()): ?>
kstychAppObject['user']['id']='<?php echo Auth::user()->id; ?>';
kstychAppObject['user']['name']='<?php echo Auth::user()->username; ?>';
kstychAppObject['user']['usertype']='<?php echo Auth::user()->usertype; ?>';
kstychAppObject['user']['dateformat']='dd.mm.yy';
kstychAppObject['user']['ssn']='<?php echo session_name(); ?>';
kstychAppObject['user']['ssid']=encodeURIComponent("<?php echo Crypt::encrypt(Auth::user()->id.'|'.session_id()); ?>");
<?php else: ?>
kstychAppObject['user']['id']=0;
kstychAppObject['user']['name']='NA';
kstychAppObject['user']['usertype']='NA';
kstychAppObject['user']['dateformat']='dd.mm.yy';
kstychAppObject['user']['ssn']='';
kstychAppObject['user']['ssid']='';
<?php endif; ?>
<?php if(isset($sipid)): ?>
kstychAppObject['user']['sipid']=<?php echo $sipid->id; ?>+"";
kstychAppObject['user']['sipserver']='<?php echo $sipid->server; ?>';
kstychAppObject['user']['sipssldomain']='<?php echo Config::get("app.sipssldomain"); ?>';
kstychAppObject['user']['sipauth']='__unused__';
<?php else: ?>
kstychAppObject['user']['sipid']='0';
kstychAppObject['user']['sipserver']='127.0.0.1';
kstychAppObject['user']['sipssldomain']='localhost';
kstychAppObject['user']['sipauth']='__unused__';
<?php endif; ?>
kstychAppObject['config']['appbaseurl']='<?php echo url("/"); ?>';
kstychAppObject['config']['appdebug']=<?php if(Config::get('app.debug')&&empty($_GET['nodebug']))echo "1";else echo "0"; ?>;
kstychAppObject['config']['appanimate']=0;
kstychAppObject['config']['csrftoken']='<?php echo e(csrf_token()); ?>';
kstychAppObject['config']['kstych_RTCLK']=<?php echo Config::get('app.kstych_RTCLK'); ?>;
kstychAppObject['config']['kstych_CTRL']=<?php echo Config::get('app.kstych_CTRL'); ?>;
kstychAppObject['config']['kDialer_keeplocalconf']=<?php echo Config::get('app.kDialer_keeplocalconf'); ?>;
kstychAppObject['config']['use-ice']='<?php echo Config::get('app.kstych_useice'); ?>';
kstychAppObject['config']['colorPrimary']='<?php echo $skinarr[0]; ?>';
kstychAppObject['config']['colorLink']='<?php echo $skinarr[1]; ?>';
kstychAppObject['config']['colorInfo']='<?php echo $skinarr[2]; ?>';
kstychAppObject['config']['colorWhite']='<?php echo $skinarr[3]; ?>';
kstychAppObject['config']['colorDefault']='<?php echo $skinarr[4]; ?>';
kstychAppObject['config']['colorSuccess']='<?php echo $skinarr[5]; ?>';
kstychAppObject['config']['colorWarning']='<?php echo $skinarr[6]; ?>';
kstychAppObject['config']['colorDanger']='<?php echo $skinarr[7]; ?>';
kstychAppObject['config']['colorInverse']='<?php echo $skinarr[8]; ?>';
</script>
<script src="<?php echo url('/'); ?>/assets/components/modules/admin/chat/jquery.ui.chatbox.js"></script>
<script src="<?php echo url('/'); ?>/assets/components/modules/admin/chat/chatboxmanager.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/highchart/highcharts.js"></script>
<script src="<?php echo url('/'); ?>/jsbody?v=<?php echo $v; ?>"></script>
<script src="<?php echo url('/'); ?>/assets/js/sip.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/dialer.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/kstych.js"></script>
<script src="<?php echo url('/'); ?>/assets/js/datatable.js"></script>
<?php if(Session::has('mdevice')&&Session::get('mdevice')!=""){$md=Session::get('mdevice'); ?>
<script src="<?php echo url('/'); ?>/assets/js/cordova/<?php echo $md; ?>/cordova.js?v=<?php echo $v; ?>"></script>
<script src="<?php echo url('/'); ?>/assets/js/cordova/<?php echo $md; ?>/kstych.js?v=<?php echo $v; ?>"></script>
<?php } ?>
</body>
</html>
<?php
use App\Models\User;
$data = Auth::user()->data();
$meta = Auth::user()->meta();
if (!isset($data['personal'])) $data['personal'] = array();
$user = Auth::user();
$tmodules = $modules;
$modules = array();
$dispnames = array();
foreach ($tmodules as $mname => $marr) {
if (!isset($modules[$mname])) {
if (!in_array($marr['disp'], array_values($dispnames))) {
$modules[$mname] = $marr;
$dispnames[$mname] = $marr['disp'];
} else {
$key = array_search($marr['disp'], $dispnames);
$modules[$key]['submenu'] = array_merge($modules[$key]['submenu'], $marr['submenu']);
}
}
}
?>
<!-- panel left -->
<div class="pushy pushy-left">
<div class="desc_imgdiv">
<div class="pushy-user-desc">
<img src="<?php echo $user->fetchphoto(); ?>">
<h4><?php echo $user->dispname(); ?></h4>
<span><i class="fa fa-pencil-square-o"></i></span>
<div style="clear:both"></div>
<p><?php echo $user->email; ?></p>
</div>
</div>
<?php $active = "active";
foreach ($modules as $mname => $marr) {
if (isset($marr['submenu'])) {
?>
<div class=wave-btn style='width:100%'>
<div class=pushy-submenu>
<i class="fa fa-fw fa-<?php echo $marr['icon']; ?>"></i>
<h5><?php echo $marr['disp']; ?></h5>
<ul>
<?php
foreach ($marr['submenu'] as $submenu => $submenuarr) {
$p = 1;
if (isset($submenuarr[1])) {
$p = 0;
if (Auth::user()->moduleACL($mname, true, true, false) && $submenuarr[1] == "W") $p = 1;
if (Auth::user()->moduleACL($mname, true, true, true) && $submenuarr[1] == "A") $p = 1;
}
if ($p == 1) {
?>
<li class="pushy-link"><a href="#" data-ajax='false' onclick="<?php echo $submenuarr[0]; ?>return false;"><?php echo $submenu; ?></a></li>
<?php
}
}
?>
</ul>
</div>
</div>
<?php
} else if ($marr['onclick'] != "") {
?>
<div class=wave-btn style='width:100%'>
<div class="pushy-menu">
<i class="fa fa-fw fa-<?php echo $marr['icon']; ?>"></i>
<h5 class="pushy-link" onclick="<?php echo $marr['onclick']; ?>return false;"><?php echo $marr['disp']; ?></h5>
</div>
</div>
<?php }
$active = "";
} ?>
<div class="pushy-menu">
<i class="fa fa-fw fa-power-off"></i>
<h5 class="pushy-link" onclick="doLogout(0);return false;">Logout</h5>
</div>
</div>
<div class='pushy-site-overlay'></div>
<!-- /panel left -->
<div id="menu-top">
<div class=navbar>
<img src="custom/logo_s.png" class=border-none height=30px style='float:left'>
<div class="user-action pull-left wave-btn" style='height:40px;padding-top:0px;margin-top:0px;'>
<div class="dropdown username" style='padding-top:5px;margin-top:5px;'><a class="dropdown-toggle " href="#" onclick='menuAction("dashboard");$(this).blur();return false;'><b><?php echo Config::get("app.name"); ?> </b></a></div>
</div>
<ul class="main pull-left" id=topmainmenureturn style='display:none'>
<li onclick='returnMenuClick("dashboard");return false;'><a href="#"> Home </a></li>
</ul>
<ul class="main pull-left hidden-xs hidden-sm" id=topmainmenu>
<?php $active = "active";
foreach ($modules as $mname => $marr) { //TODO hidden-xs
if (isset($marr['submenu'])) {
?>
<li class='homemenu dropdown <?php echo $active; ?>' onclick='' id=mainmenu<?php echo $marr['disp']; ?>><a href="#" data-toggle="dropdown"> <?php echo $marr['disp']; ?> </a>
<ul class="dropdown-menu">
<?php
foreach ($marr['submenu'] as $submenu => $submenuarr) {
$p = 1;
if (isset($submenuarr[1])) {
$p = 0;
if (Auth::user()->moduleACL($mname, true, true, false) && $submenuarr[1] == "W") $p = 1;
if (Auth::user()->moduleACL($mname, true, true, true) && $submenuarr[1] == "A") $p = 1;
}
if ($p == 1) {
?>
<li><a href="#" onclick="<?php echo $submenuarr[0]; ?>return false;"><?php echo $submenu; ?></a></li>
<?php
}
}
?>
</ul>
</li>
<?php
} else if ($marr['onclick'] != "") {
?>
<li class='homemenu <?php echo $active; ?>' onclick="<?php echo $marr['onclick']; ?>return false;" id=mainmenu<?php echo $marr['disp']; ?>>
<a href="#"><?php echo $marr['disp']; ?></a>
</li>
<?php }
$active = "";
} ?>
<!-- change start code -->
<li style="color: #626771;font-weight: 600;height: 40px;line-height: 40px;padding: 0 10px;text-decoration: none;display: block;">
<div id="countdown">&nbsp;</div>
</li>
<!-- change end code -->
</ul>
<div class="user-action pull-right" id=topmainusermenu>
<?php
$acctype = Auth::user()->usertype;
if ($data["subscription"] == "Free") {
$datapercent = "100";
$subscstr = "Free Subscription";
$subscstr2 = "You are using a Free subscription <b>$acctype</b> account, there is no expiry";
} else if ($data["subscription"] == "Trial") {
$daysleft = intval(($data["subscriptiondata"][$acctype]['expiry'] - time()) / (24 * 60 * 60));
if ($daysleft < 0) $daysleft = 0;
$origdays = intval(($data["subscriptiondata"][$acctype]['expiry'] - $data["subscriptiondata"][$acctype]['created']) / (24 * 60 * 60));
$datapercent = round($daysleft * 100 / $origdays, 0);
$subscstr = "Trial Subscription";
$subscstr2 = "You are using a trial <b>$acctype</b> account, expiring in <b>$daysleft</b> days, after expiry this account will be converted to free learner account";
} else if ($data["subscription"] == "Expired") {
$datapercent = "0";
$subscstr = "Subscription Expired";
$subscstr2 = "You are using an expired <b>$acctype</b> account, please renew your subscription to use full features";
} else {
$daysleft = intval(($data["subscriptiondata"][$acctype]['expiry'] - time()) / (24 * 60 * 60));
if ($daysleft < 0) $daysleft = 0;
$origdays = intval(($data["subscriptiondata"][$acctype]['expiry'] - $data["subscriptiondata"][$acctype]['created']) / (24 * 60 * 60));
$datapercent = round($daysleft * 100 / $origdays, 0);
$subscstr = $data["subscription"] . " Subscription";
$subscstr2 = "You are using an active <b>$acctype</b> account, expiring in <b>$daysleft</b> days, after expiry this account will be converted to free learner account";
}
?>
<ul class="colors pull-right visible-xs visible-sm wave-btn" style='margin-top:-3px;'>
<li class="dropdown">
<a href="#" class="menu-btn"><i class='fa fa-bars' style='font-size:20px'></i></a>
</li>
</ul>
<div class="dropdown username hidden-xs" style='float:right'>
<a class="dropdown-toggle" data-toggle="dropdown" href="#" onclick=''><?php echo $displayname; ?> <span class="caret"></span> </a>
<ul class="dropdown-menu pull-right" id=topuserdropmenu>
<li><a href="#" class="glyphicons user" onclick='menuAction("profile");return false;'><i></i> Profile</a></li>
<!--<li><a href="#" class="glyphicons list" onclick='menuAction("admin");return false;'><i></i> Timeline</a></li>-->
<li><a href="#" class="glyphicons book" onclick='menuAction("dashboard");return false;'><i></i> Dashboard</a></li>
<?php if (Auth::user()->moduleACL("Admin", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("admin");return false;'><i></i><?php echo Config::get("app.name"); ?> Admin</a></li>
<?php } ?>
<?php if (Auth::user()->moduleACL("User", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("user");return false;'><i></i> Manage Users</a></li>
<?php }
if (Auth::user()->moduleACL("Group", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("group");return false;'><i></i> Manage Groups</a></li>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("role");return false;'><i></i> Manage Roles</a></li>
<?php } ?>
<?php if (Auth::user()->moduleACL("ImportExcel", true, true, false)) { ?>
<li><a href="#" class="glyphicons cogwheels" onclick='menuAction("import_excel");return false;'><i></i> Import Excel</a></li>
<?php } ?>
<li><a href="#" class="glyphicons circle_question_mark" onclick="dindexmenu('help&page=helpintroduction',this);return false;"><i></i> Help</a></li>
<li><a href="#" class="glyphicons cogwheels" onclick="menuAction('setting');return false;"><i></i>Settings</a></li>
<li><a href="#" class="glyphicons exit" onclick="doLogout(0);return false;"><i></i> Logout</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="clearfix"></div>
<script type="text/javascript">
redirect_to_password_reset();
function redirect_to_password_reset() {
var action = "password_expiry_check";
$.ajax({
type: "GET",
url: action,
success: function(result) {
console.log(result);
if (result == 'True') {
menuAction("profile");
}
}
});
}
</script>
\ No newline at end of file
<?php $__env->startSection('main_menu'); ?>
<?php echo $__env->make('layout.main_menu', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('top_menu'); ?>
<?php echo $__env->make('layout.top_menu', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('main_content'); ?>
<script>
$(document).ready(function(){
if(document.location.hash=="")doAjax("dashboard?tz="+(new Date()).getTimezoneOffset()+'&d=<?php echo Input::get("d"); ?>','','content','ajax_dashboard','singlethis','GET',function(){try{}catch(e){}});
else kstychHashFunction();
<?php if(Config::get("app.extAuth")!=""){ ?>doAjax("dashboard/r",'','','ajax_dashboard_r','singlethis','GET');<?php } ?>
if ($.browser.msie)document.location="msie";
if (typeof kDesktopNotification === 'function')kDesktopNotification("","","",10);
incomingPresense("","","");
});
if (navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS/i))
{
$("#menu-top").css({'padding-top':'20px','height':'60px'});
$("#content").css({'margin-top':'60px'});
}
document.addEventListener('deviceready', function() {
$(document).on('click', 'a[target="_system"],a[target="_blank"]', function (e) {
e.preventDefault();
var url = this.href;
if(navigator.app)navigator.app.loadUrl(url, { openExternal:true });
else if(innappbrowser)cordova.exec(function(){}, function(){}, "InAppBrowser", "open", [url, "_system", null]);
else window.open(url,"_system");
//$("#welcome_wizard_body").html("<iframe style='width:100%;min-height:400px;height:100%' src='"+url+"'></iframe>");
//$("#welcome_wizard").modal('show');
});
});
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layout.layout', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
\ No newline at end of file
<?php
readfile("assets/components/library/jquery/jquery.min.js");echo "\n\n";
readfile("assets/components/library/jquery/jquery-migrate.min.js");echo "\n\n";
readfile("assets/components/plugins/link-preview/linkPreview.js");echo "\n\n";
readfile("assets/components/library/jquery-ui/js/jquery-ui-1.8.2.custom.min.js");echo "\n\n";
readfile("assets/components/plugins/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js");echo "\n\n";
readfile("assets/js/sweetalert.min.js");echo "\n\n";
<?php
// phpinfo();
$kformlib=new \App\Jobs\KFormLib($wakka->HRCoreVars["HRFiledsStr"]);
//error_reporting(E_ALL);
ini_set("memory_limit", -1);
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
include_once(app_path().'/lib/PHP_XLSXWriter-master/xlsxwriter.class.php');
$wakka->setUserTimezone();
$themehome=$wakka->GetThemePath('/');
$sindex[0]='salbasic';
$sindex[1]='salhouserent';
$sindex[2]='saltransport';
$sindex[3]='salfood';
$sindex[4]='saltelephone';
$sindex[5]='salmedical';
$sindex[6]='salelectricity';
$sindex[7]='salother';
$sindex[8]='saltotal';
$sindex[9]='nettotal';$kformlib->HRFieldNames['nettotal']="Net Salary";
if(Input::has("reportsubmit"))
{
if(Input::has("savedreportget"))
{
$filterstr="";$fieldsarr="";
$rpt=Input::get("savedreportget");
$userreports=$wakka->GetBBBUserData("UserSavedReports");
if(isset($userreports[$rpt]))
{
$tarr=json_decode(base64_decode($userreports[$rpt]),true);
unset($tarr["_token"]);
Input::merge($tarr);
}
}
$empid=Input::get("empid");
$client=Input::get("client");
$currentstatus=Input::get("currentstatus");
$modfrom=explode(".",Input::get("modfrom"));
$modto=explode(".",Input::get("modto"));
$crefrom=explode(".",Input::get("crefrom"));
$creto=explode(".",Input::get("creto"));
$reporttmpl=Input::get("reporttmpl");
$visacompany=Input::get("visacompany");
$asalmonth=Input::get("asalmonth");
$asalyear=Input::get("asalyear");
$frcrefrom=explode(".",Input::get("frcrefrom"));
$frcreto=explode(".",Input::get("frcreto"));
$fieldbyrange=trim(Input::get("fieldbyrange"));
$filterbyfielddates=0;
if($fieldbyrange!=""&&sizeof($frcrefrom)==3&&sizeof($frcreto)==3)
{
$filterbyfielddates=1;
$frcrefrom=mktime(0, 0, 0, $frcrefrom[1], $frcrefrom[0], $frcrefrom[2]);
$frcreto=mktime(23, 59, 59, $frcreto[1], $frcreto[0], $frcreto[2]);
}
$ddprts=array();
$datesdiffstr=Input::get("datesdiffstr");
if(!empty($datesdiffstr))
{
$ddprts=explode(",",$datesdiffstr);//datesdiffstr=servicestoppeddate,joiningdate,LT,180 ==> if(servicestopdate-joiningdate < 180) then ok,else not ok
}
// $finputarr=Input::get("fieldsarr");
$finputarr=$_POST["fieldsarr"];
$selectedfields=$_POST["selectedfields"];
if(is_array($finputarr)){foreach($finputarr as $eachfield)
$fieldsarr[]=$eachfield;
array_unshift($finputarr,'id');
array_unshift($selectedfields,'EmpID');
}
else {echo "Please Select List of fields In report.";return;}
$reporttype=Input::get("reporttype");
$outputtype=Input::get("outputtype","XLS");
if(sizeof($fieldsarr)==0){echo "Please Select List of fields In report.";return;}
if($client==""&&$currentstatus==""&&$visacompany==''&&$modfrom[0]==''&&$crefrom[0]==''&&$empid==''&&$fieldbyrange==''){echo $client."Please Select atleast one of Client or Status or ModifyFrom or CreatedFrom.";return;}
if($reporttype=='Binary')$reporttype='|b';
if($reporttype=='History')$reporttype='|h';
if($reporttype=='Values')$reporttype='';
$filterstr=array();
if($empid!="")
{
$idarr=explode(',',$empid);
foreach($idarr as $tid)if(trim($tid)!='')$tarr[]="'$tid'";
$empid=implode(",",$tarr);
$filterstr[]=" id in ($empid) ";
}
else
{
if($client!=""){$filterstr[]=getQueryFromList('client',$client);}
if($currentstatus!=""){$filterstr[]=getQueryFromList('currentstatus',$currentstatus);}
// if($visacompany!=""){$filterstr[]=getQueryFromList('visacompany',$visacompany);}
if($modfrom[0]!="")$filterstr[]=" modified>='$modfrom[2]-$modfrom[1]-$modfrom[0] 00:00:00' ";
if($modto[0]!="") $filterstr[]=" modified<='$modto[2]-$modto[1]-$modto[0] 23:59:59' ";
if($crefrom[0]!="")$filterstr[]=" created>='$crefrom[2]-$crefrom[1]-$crefrom[0] 00:00:00' ";
if($creto[0]!="") $filterstr[]=" created<='$creto[2]-$creto[1]-$creto[0] 23:59:59' ";
if($filterbyfielddates==1)
{
$filterstr[]=" modified>='".date('Y-m-d 00:00:00',$frcrefrom)."' ";
}
}
$type = PHPExcel_Cell_DataType::TYPE_STRING;
if(!empty($filterstr))$filterstr=implode(" and ",$filterstr);else $filterstr="";
if($filterstr=="")$filterstr="1";
$savereportname=Input::get("savereportname");
if($savereportname!="")
{
$userreports=$wakka->GetBBBUserData("UserSavedReports");
$userreports[$savereportname]=base64_encode(json_encode(Input::all()));
$wakka->SetBBBUserData("UserSavedReports",$userreports);
}
$usersarr=$wakka->getPersonsdownloadreport($filterstr);
foreach($usersarr as $r => $userdata)
{
$ppldata[]=unserialize($userdata['peopledata']);
}
if (is_array($ppldata)){
for ($i=0; $i <count($ppldata) ; $i++) {
for ($j=0; $j <count($finputarr) ; $j++) {
if ($ppldata[$i] != false){
if (array_key_exists ($finputarr[$j], $ppldata[$i])) {
$usersdata[$i][$finputarr[$j]]=$ppldata[$i][$finputarr[$j]];
}else if (! array_key_exists ($finputarr[$j], $ppldata[$i]))
{
$usersdata[$i][$finputarr[$j]] = "";
}
}
}
}
}
$headerexcel = [];
foreach($finputarr as $cachekey)
{
if($cachekey!='')
{
$headerexcel['id'] = 'string';
$headerexcel[$cachekey] = 'string'; //$headerexcel2[] = $cachekey => 'string';
}
}
if ($savereportname) {
$filename = $savereportname.".xlsx";
} else {
$filename = "MainReport.xlsx";
}
header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$writer = new XLSXWriter();
$styles1 = array( 'font'=>'Arial','font-size'=>10,'font-style'=>'bold', 'fill'=>'#eee', 'halign'=>'center', 'border'=>'left,right,top,bottom');
$writer->writeSheetHeader('Sheet1', $headerexcel,$styles1,['freeze_rows'=>1, 'freeze_columns'=>1]);
$writer->writeSheetRow('Sheet1', $selectedfields,$styles1 );
if($usersdata){
foreach($usersdata as $row)
{
$writer->writeSheetRow('Sheet1', $row, $row_options = ['height'=>15]);
}
}
$writer->writeToStdOut();
return;
}
function getQueryFromList($key,$list)
{
$rstatusstr=array();$rstatuses=explode(",",$list);
foreach($rstatuses as $rstatus)
{
if($rstatus!='')$rstatusstr[]="'$rstatus'";
}
return " ($key in (".implode(",",$rstatusstr).")) ";
}
?>
<style>
.tab_bar_purple{
border: 1px solid #EFEFEF;
height: 39px;
margin: 0 0 10px;
overflow: hidden;
position: relative;
}
.tab_bar_purple ul{
list-style: none outside none;
margin: 0;
padding: 0;
background: none repeat scroll 0 0 #ac92ed;
}
.tab_bar_purple ul li{
border: medium none;
height: 39px;
padding: 0;
display: block;
float: left;
}
.tab_bar_purple ul li a{
background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
height: 39px;
line-height: 39px;
display: block;
padding: 0 15px;
text-decoration: none;
color:#fff;
}
.tab_bar_purple .tabsbar-2{
/*height: 39px;*/
}
.tab_bar_purple ul li.active{
background: none repeat scroll 0 0 #fff;
}
.tab_bar_purple ul li.active a{
color:#967bdc;
}
.form_new{
margin:0px;
}
.table_hrm_heading_purple{
padding: 7px 9px;
text-align: center;
background-color: #D5C5FF;
border: 5px solid #fff;
font-weight: 600;
}
.table_hrm_heading_purple:first-child{
border-left: 0px;
}
.table_hrm_cells{
padding: 5px 7px;
color:#434a54;
}
.table_hrm_cells a{
color:#434a54;
}
.table_hrm_celltext{
border: 1px solid #ccd0d9;
border-color: #ccd0d9 !important;
border-radius: 3px !important;
padding: 3px 7px;
text-align: center;
}
.hasDatepicker{
border: 1px solid #e2e2e4;
border-radius: 3px !important;
padding: 3px 10px;
margin: 0 10px;
width: 10%;
margin-left: 0px;
}
#saved_reprts{
margin-right: 3px;
border: 1px solid #ccd0d9;
padding: 1% 0 1% 3%;
margin-bottom: 30px;
border-radius: 10px;
}
#saved_reprts legend{
width:10%
}
.new-recruit_legend{
font-size: 14px;
height: auto;
margin: 0 0 1%;
padding: 10px;
line-height: 25px;
}
</style>
<div class="layout-app"><!-- row-app -->
<div class="row row-app">
<div class="col-md-12">
<div class="col-separator col-separator-first col-unscrollable box" style='overflow:hidden'>
<div class=innerAll>
<div class="relativeWrap" >
<div class="tab_generic">
<div class="tab_bar_purple tabsbar-2">
<ul class="row row-merge">
<li class=active><a href="#tabs-1" data-toggle="tab">Select Filters and Report format</a></li>
</ul>
</div>
<div class="tab-content">
<div id=tabs-1 class="tab-pane active">
<fieldset>
<legend class='task_legend'>Select Filters</legend>
<form method=post action='hr?action=MainReport' target=_BLANK name=reportform>
<input type=hidden name=_token value='<?php echo csrf_token(); ?>'>
<input type=hidden name=client id=client value=''>
<input type=hidden name=visacompany id=visacompany value=''>
<input type=hidden name=currentstatus id=currentstatus value=''>
<div id=reportformarrs></div>
<p>
<label class='label-small_new' style='width:15%'>Record Ids:</label>
<input class='form_new form_new_amend' id='empid' name='empid' type='text' value='' style='width:25%' />
<span class=field_desc id='fd'></span><span class=validate_success></span><span class=validate_error></span>
</p>
<p><label class='label-small_new' style='width:15%'></label><b>-- OR --</b></p>
<p>
<label class='label-small_new' style='width:15%'>Company: </label>
<select name=client2 id=client2 multiple='' data-rel=chosen class=select2multi style='width:40%'>
<?php
$clients=$wakka->clientsReadAccess();
sort($clients);
foreach($clients as $clientval){echo "<option value='$clientval'>$clientval</option>";}
?>
</select>
</p>
<div class='clear:both'></div>
<!--<p>
<label class='label-small_new' style='width:15%'>Visa Company: </label>
<select name=visacompany2 id=visacompany2 multiple='' data-rel=chosen class=select2multi style='width:40%'>
<?php
$clients=explode("~",$kformlib->FormSelectVals['visacompany']);
foreach($clients as $clientval){echo "<option value='$clientval'>$clientval</option>";}
?>
</select>
</p>-->
<?php
$toarr=array();
$optionsstr="";
$fileids=explode(",",$kformlib->HRFiledsStr);
foreach($fileids as $fileid)
{
if(trim($fileid)!='')
{
if(strstr($kformlib->HRFileFieldsStr,$fileid))$ftype='File';
else if(strstr($kformlib->HRDateFilds,$fileid))$ftype='Date';
else if(strstr($kformlib->HRDropFilds,$fileid))$ftype='Dropdown';
else $ftype='Text';
$toarr[$fileid]=$kformlib->HRFieldNames[$fileid];
}
}
//asort($toarr);
foreach($toarr as $key=>$opts)$optionsstr.="<option value='$key'>$opts</option>";
?>
<p><label class='label-small_new' style='width:15%;'>Fields: </label>
<select size=9 id=fieldsarr2 multiple='multiple' style='width:40%' class=select2multi>
<?php echo $optionsstr; ?>
</select>
<span style='margin-left: 20px;line-height: 30px;'>(Hold ctrl to select multiple)</span>
</p>
<p><label class='label-small_new' style='width:15%'>Report Type</label>
<select class='form_hrm_select' id=outputtype name=outputtype><option value='XLSX'>XLSX</option><!-- <option value='CSV'>CSV</option></select> -->
</p>
<p>
<label class='label-small_new' style='width:15%'></label>
<input type=hidden name=reportsubmit value=reportsubmit>
<input class='form_new form_new_amend' style='width:355px' type=text name=savereportname id=savereportname placeholder='Name of the report to save'>
<input type=button class='btn btn-purple_outline' name=reportsubmit value="Generate Report" onclick="setRptSelection();return false;">
<span class=field_desc id='fd'></span><span class=validate_success></span><span class=validate_error></span>
</p>
</form>
</fieldset>
<!-- <fieldset id='saved_reprts'><legend class='new-recruit_legend'>Saved Reports</legend>
<?php
//$savedreports=$wakka->GetBBBUserData("UserSavedReports");
//if(is_array($savedreports))foreach($savedreports as $rname=>$rpts)
{
// echo "<p><label class='label-small_new' style='width:15%'>$rname</label><a href='".url("/hr/MainReport?reportsubmit=1&savedreportget=$rname")."' class='btn btn-purple' target=_BLANK>Download</a> <a href=# title='Delete this entry' onclick='deletesavedreport(\"$rname\");return false;' style='margin-left: 50px;'><i class='fa fa-times-circle' style='color:#967bdc'>Delete</i></a></p>";
}
?>
</fieldset> -->
</div>
</div>
</div>
</div>
</div>
<!-- // Tabs END -->
</div>
</div>
</div>
</div>
</div><!-- // END row-app -->
<script>
$('#modfrom').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#modto').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#crefrom').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#creto').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#frcrefrom').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
$('#frcreto').datepicker({dateFormat: 'dd.mm.yy',inline: true,changeYear: true,selectOtherMonths: true,yearRange: '<?php echo (date('Y')-70).":".(date('Y')+5); ?>'});
function setRptSelection()
{
$("#client").val($("#client2").val());
// $("#visacompany").val($("#visacompany2").val());
$("#currentstatus").val($("#currentstatus2").val());
$("#reportformarrs").html("");
$("#fieldsarr2").select2("data").forEach(function(elem){$("#reportformarrs").append("<input type=hidden name=fieldsarr[] value='"+elem.id+"'>");});
$("#fieldsarr2").select2("data").forEach(function(elem){$("#reportformarrs").append("<input type=hidden name=selectedfields[] value='"+elem.text+"'>");});
document.reportform.submit();
}
// $("#client2").dropdownchecklist({icon:{}, width:300, maxDropHeight:300, emptyText:"Select.." });
// $("#visacompany2").dropdownchecklist({icon:{}, width:300, maxDropHeight:300, emptyText:"Select.." });
// $("#currentstatus2").dropdownchecklist({icon:{}, width:300, maxDropHeight:300, emptyText:"Select.." });
function deletesavedreport(rname)
{
doAjax('hr?action=DeleteSavedReport&rname='+rname,'','searchresults');
}
</script>
<?php
$reportTitle = 'TC Productivity MIS';
$returnblade = 'productivity_mis';
$view_path = Config::get('view.paths');
include_once($view_path[0].'/layout/module/dialer/reporthead.blade.php');
$alist=$alist->select(DB::raw("c.user_id, count(DISTINCT case when c.lan IS NOT NULL then c.lan end) customer, count(*) count, sum(case when c.userstatus = 'Contacted' then 1 else 0 end) contacted, sum(case when (c.userstatus = 'Contacted' && c.resultCode = 'PTP') then 1 else 0 end) ptp, sum(case when (c.userstatus = 'Contacted' && c.resultCode = 'BP') then 1 else 0 end) bp"))->groupBy('c.user_id');
if(Input::has("spcode"))
{
if(!$joined) $alist=$alist->leftjoin('records AS r', 'r.id', '=', 'c.crm_id');
$alist=$alist->addSelect(DB::raw(" r.state, r.specialCode"));
$alist=$alist->groupBy('r.state');
$alist=$alist->groupBy('r.SpecialCode');
}
$alist=$alist->get();
$i=1;
$reporthead=array("#","Telecaller","TelecallerID","Supervisor","Account","Attempt","AI","Contact","CI","Contact(%)","PTP","PTP(%)","BP","BP(%)");
$reportarray=array();
$totalarray =array();
if(count($alist))
foreach($alist as $aline)
{
$tuser=$userarr[$aline->user_id];
if(!isset($reportarray[$aline->user_id])) {
$reportarray[$aline->user_id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor);
}
$reportarray[$aline->user_id]["Account"] = $aline->customer;
$reportarray[$aline->user_id]["Attempt"] = $aline->count;
$reportarray[$aline->user_id]["AI"] = number_format( ($aline->customer) ? ($aline->count/$aline->customer) : 0, 2 );
$reportarray[$aline->user_id]["Contact"] = $aline->contacted;
$reportarray[$aline->user_id]["CI"] = number_format( ($aline->customer) ? ($aline->contacted/$aline->customer) : 0, 2 );
$reportarray[$aline->user_id]["Contact(%)"] = number_format( ($aline->count) ? ($aline->contacted/$aline->count) * 100 : 0, 2 ) . '%';
$reportarray[$aline->user_id]["PTP"] = $aline->ptp;
$reportarray[$aline->user_id]["PTP(%)"] = number_format( ($aline->contacted) ? ($aline->ptp/$aline->contacted) * 100 : 0, 2 ) . '%';
$reportarray[$aline->user_id]["BP"] = $aline->bp;
$reportarray[$aline->user_id]["BP(%)"] = number_format( ($aline->ptp) ? ($aline->bp/$aline->ptp) * 100 : 0, 2 ) . '%';
if(Input::has("spcode")) {
$reportarray[$aline->user_id]["State"] = $aline->state;
$reportarray[$aline->user_id]["SpecialCode"]= $aline->specialCode;
$specialarray[$aline->user_id . $aline->state . $aline->specialCode] = $reportarray[$aline->user_id];
}
$totalarray["Account"] += $aline->customer;
$totalarray["Attempt"] += $aline->count;
$totalarray["AI"] = number_format(@($totalarray["Attempt"]/$totalarray["Account"]), 2 );
$totalarray["Contact"] += $aline->contacted;
$totalarray["CI"] = number_format(@($totalarray["Contact"]/$totalarray["Account"]), 2 );
$totalarray["Contact(%)"]= number_format(@($totalarray["Contact"]/$totalarray["Attempt"]) * 100, 2 ) . '%';
$totalarray["PTP"] += $aline->ptp;
$totalarray["PTP(%)"] = number_format(@($totalarray["PTP"]/$totalarray["Contact"]) * 100, 2 ) . '%';
$totalarray["BP"] += $aline->bp;
$totalarray["BP(%)"] = number_format(@($totalarray["BP"]/$totalarray["PTP"]) * 100, 2 ) . '%';
}
if(Input::has("spcode"))
{
$reporthead=array("TelecallerID","Telecaller","State","SpecialCode","Account","Attempt","AI","Contact","CI","Contact(%)","PTP","PTP(%)");
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 2;
$index_count = 0;
foreach ($reporthead as $head => $headval){
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $headval);
$index_count++;
}
if(count($specialarray))
foreach($specialarray as $uid=>$uarr)
{
$row = $baseRow++;
$index_count = 0;
foreach ($reporthead as $head => $headval){
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$headval]);
$index_count++;
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="specialcode_mis.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
$reportarray["Total"] = array_merge(array("Telecaller"=>"Total"),$totalarray);
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 3;
$index_count = 0;
foreach ($reporthead as $head => $headval){
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $headval);
$index_count++;
}
if(count($reportarray))
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$index_count = 0;
foreach ($reporthead as $head => $headval){
$colstr=PHPExcel_Cell::stringFromColumnIndex($index_count);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$headval]);
$index_count++;
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="productivity_mis.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
$highestColumn = sizeof($reporthead);
if(count($reportarray) > 1) {
$outhead="<tr>";$outstr="";$outsubhead="<tr>";
foreach ($reporthead as $head => $headval){
$outhead.="<td align='center'>".$headval."</td>";
}
$outsubhead.="</tr>";
$outhead.="</tr>".$outsubhead;
$utotalarr = array("Telecaller"=>'Total');
if(count($reportarray))
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
if($head < 3) {
$outstr.="<td>".$uarr[$reporthead[$head]]."</td>";
}
else {
$outstr.="<td align='right'>".$uarr[$reporthead[$head]]."</td>";
}
}
$outstr.="</tr>";
}
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
?>
<?php echo $__env->make('layout.module.dialer.searchform', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
</div>
<script>
function dlSpecialCodeXls()
{
var searchStr = dataString();
window.open('dialer/<?php echo e($returnblade); ?>?spcode=1&'+searchStr);
return false;
}
$("#download_btn").append("<button class='pull-right btn btn-sm btn-default' onclick='dlSpecialCodeXls();return false;' title='Download' style='margin-right: 5px;'><i class='fa fa-download'></i> Special Code</button>");
</script>
\ No newline at end of file
<?php
use App\Models\User;
$data = Auth::user()->data();
$meta = Auth::user()->meta();
if (!isset($data['personal'])) $data['personal'] = array();
?>
<script>
function openwelcomewizard() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET');
$("#welcome_wizard").modal('show');
}
$("#topuserdropmenu > li").hover(function() {
$(this).addClass('active');
},
function() {
$(this).removeClass('active');
});
</script>
<script>
var wel_usertype = '<?php echo Auth::user()->usertype; ?>';
var wel_accounttype = '<?php if (Auth::user()->usertype != '') echo Auth::user()->usertype;
else echo "learner"; ?>';
var wel_catagory = '<?php if (isset($data['personal']['interestcategories'])) echo $data['personal']['interestcategories']; ?>';
//var wel_subcatagory='';
var wel_fname = '<?php if (isset($data['personal']['fname'])) echo $data['personal']['fname']; ?>';
var wel_lname = '<?php if (isset($data['personal']['lname'])) echo $data['personal']['lname']; ?>';
var wel_gender = '<?php if (isset($data['personal']['gender'])) echo $data['personal']['gender']; ?>';
var wel_city = '<?php if (isset($data['personal']['location'])) echo $data['personal']['location']; ?>';
var wel_country = '<?php if (isset($data['personal']['country'])) echo $data['personal']['country']; ?>';
var wel_invites = '';
var wel_buycredits = '';
var wel_buysubscription = '';
var wel_themeselected = '';
$(document).ready(function() {
if (wel_usertype == '' || wel_catagory == '' || wel_fname == "" || wel_gender == "" || wel_city == "" || wel_country == "") {
//doAjax('social/<?php echo Auth::user()->id; ?>','show=wizard','welcome_wizard_body','ajax_wizard_show','singlefail','GET');
}
});
function hrmsSearch() {
createSearchRecordDiv("hrms_search_modald_body");
$("#hrms_search_modal").modal('show');
$("#maintextsearch_1_txt").focus();
}
function kDialerModel() {
updateDialerState();
$("#kDialer_modal").modal('show');
if ('<?php echo Auth::user()->sessiontype; ?>' == '1') {
$("#dialerQuickControlDiv").show();
kDialerConnected();
}
}
function welcomepayment() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard&payment=1', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET');
$("#welcome_wizard").modal('show');
}
function welcomeinvite() {
$("#welcome_wizard_body").html("");
doAjax('social/<?php echo Auth::user()->id; ?>', 'show=wizard&welcomeinvite=1', 'welcome_wizard_body', 'ajax_wizard_show', 'singlefail', 'GET', function() {
//setTimeout(function(){$("#inviteemailids").not('.kstych_init').addClass('kstych_init').select2({tags:[]});}, 1000);
});
$("#welcome_wizard").modal('show');
}
var currentsearchdivid = "";
function createSearchRecordDiv(divid) {
if (currentsearchdivid != "") $("#" + currentsearchdivid).html("");
currentsearchdivid = divid;
var searchRecordDivHTMLLI = "ID,FirstName,LastName,Client,Mobile,Email,Passport,IBAN,Status,ClientCode,InternalID,PersonalID".split(",");
searchRecordPreselectList = ["", "ID", "FirstName", "Mobile", "Email"];
var searchRecordDivHTML = "";
for (i = 1; i <= 4; i++) {
searchRecordDivHTML += "<div class=col-md-3>";
searchRecordDivHTML += "<div class='widget row widget-heading-simple widget-body-gray' >";
searchRecordDivHTML += "<div class='widget-body'><div class='input-group'>";
searchRecordDivHTML += "<div class='input-group-btn'>";
searchRecordDivHTML += "<div class='dropdown'>";
searchRecordDivHTML += "<button class='btn btn-default dropdown-toggle rounded-left' data-toggle='dropdown'><span id=maintextsearch_" + i + "_span>" + searchRecordPreselectList[i] + "</span> <span class='caret'></span></button>";
searchRecordDivHTML += "<ul class='dropdown-menu pull-left'>";
for (j = 0; j < searchRecordDivHTMLLI.length; j++) searchRecordDivHTML += "<li><a href='#' onclick='$(\"#maintextsearch_" + i + "_span\").html($(this).html());return false;'>" + searchRecordDivHTMLLI[j] + "</a></li>";
searchRecordDivHTML += "</ul>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "<input class='form-control' id='maintextsearch_" + i + "_txt' type='text' onkeyup='mainTextSearchStart();' />";
searchRecordDivHTML += "</div></div>";
searchRecordDivHTML += "</div>";
searchRecordDivHTML += "</div>";
}
searchRecordDivHTML += "<div style='clear:both'></div>";
searchRecordDivHTML += "<div id=searchresults></div>";
$("#" + divid).html(searchRecordDivHTML);
}
</script>
<div class="modal" id="welcome_wizard">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Welcome to <?php echo Config::get("app.name"); ?></h4>
</div>
<div class="modal-body" id=welcome_wizard_body></div>
</div>
</div>
</div>
<div class="modal" id="hrms_search_modal">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title"><?php echo Config::get("app.name"); ?> Search Record</h4>
</div>
<div class="modal-body" id=hrms_search_modald_body>
<!-- <input class='form-control' type="text" id=maintextsearch name="maintextsearch" value="Search..." onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size=20 /> -->
</div>
</div>
</div>
</div>
<div class="modal" id="kDialer_modal">
<div class="modal-dialog" style='width:95%;'>
<div class="modal-content">
<div class="modal-header">
<div id=dialerQuickControlDiv class='col-md-12' style='display:none;'>
<div class=col-md-6>
<div class="input-group" style='width:350px;float:left' id=dialerstate_div>
<div class="input-group-btn">
<div class="dropdown">
<button class="btn btn-info dropdown-toggle rounded-left" data-toggle="dropdown" style='width:135px'><span id=dialerstate_btn>Paused</span> <span class="caret"></span></button>
<ul class="dropdown-menu pull-left" id='dialer_mode'>
<li><a href="#" onclick='pauseDialerState("dialer","mDialerState","Progressive");savedialermode();return false;'><b>Progressive</b></a></li>
<?php if (Auth::user()->group == 'ManualAllowed' || Auth::user()->group == 'Digital' || Auth::user()->usertype == 'Admin') { ?>
<li id=dialerManualAllowLI><a href="#" onclick='pauseDialerState("dialer","mDialerState","Manual");savedialermode("Manual");return false;'><b>Manual</b></a></li>
<?php } ?>
<li style='background:#68cc9e'><a href="#" onclick='pauseDialerState("dialer","mDialerState","Ready","mDialerSubState","Predictive");savedialermode("Predictive");return false;'><b>Predictive</b></a></li>
<li><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","Paused");savedialermode();return false;'><b>Pause</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","AgentBriefing");savedialermode();return false;'><b>AgentBriefing</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","TeamMeeting");savedialermode();return false;'><b>TeamMeeting</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","QualityFeedback");savedialermode();return false;'><b>QualityFeedback</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","LunchBreak");savedialermode();return false;'><b>LunchBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","TeaBreak");savedialermode();return false;'><b>TeaBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","UtilityBreak");savedialermode();return false;'><b>UtilityBreak</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","FloorAnnouncements");savedialermode();return false;'><b>FloorAnnouncements</b></a></li>
<li style='background:#ccc'><a href="#" onclick='pauseDialerState("dialer","pDialerState","Paused","pDialerSubState","DownTime");savedialermode();return false;'><b>DownTime</b></a></li>
</ul>
</div>
</div>
<input class="form-control" id="manualdialnumber_txt" style='width:200px' type="text" />
<span class="input-group-addon btn btn-default" id=manualdial_btn dialaction=dialnext onclick='updateDialerState("action",$(this).attr("dialaction"),$("#manualdialnumber_txt").val());'></span>
</div>
<div class=pull-right>
<a href='#' onclick='return false;' class='btn btn-default' id=dialertimes1>
<i class='fa fa-fw fa-clock-o'></i> <span id=spandialer_ts></span>
</a>
</div>
</div>
<div class=col-md-6>
<div class=pull-left>
<a href='#' onclick='return false;' class='btn btn-default' id=dialertimes2 style='display:none'>
<i class='fa fa-fw fa-phone'></i> <span id=spandialer_num onclick=''></span>
<!-- onclick='dialerDispNumberClick(); -->
</a>
</div>
<div class=pull-left>
<a href='#' onclick='dialerDispNumberClick();return false;' style='display:none' class='btn btn-default' id=dialertimes3>
<i class='fa fa-fw fa-phone'></i>
</a>
</div>
<div id=dialerToggleViewDiv style='float:right;margin-right:20px;'>
<button class="btn btn-circle btn-default"><i class="fa fa-phone"></i></button>
<i class="fa fa-long-arrow-left"></i>
<div class="dropdown dropdown-icons" id=connections_div_u>
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-primary btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_u_a><i class="fa fa-chain-broken" id=conficon_u_i></i> </a>
<ul class="dropdown-menu">
<li data-toggle="tooltip" data-title="MuteSpeaker" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-volume-off"></i></a></li>
<li data-toggle="tooltip" data-title="MuteMic" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-microphone-slash"></i></a></li>
<li data-toggle="tooltip" data-title="Hangup" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-times-circle"></i></a></li>
<li data-toggle="tooltip" data-title="Hold" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-pause"></i></a></li>
</ul>
</div>
<div class="dropdown dropdown-icons" id=connections_div_c>
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-primary btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_c0_a><i class="fa fa-chain-broken" id=conficon_c0_i></i> </a>
<ul class="dropdown-menu">
<li data-toggle="tooltip" data-title="MuteSpeaker" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-volume-off"></i></a></li>
<li data-toggle="tooltip" data-title="MuteMic" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-microphone-slash"></i></a></li>
<li data-toggle="tooltip" data-title="Hangup" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-times-circle"></i></a></li>
<li data-toggle="tooltip" data-title="Hold" data-placement="left" data-tcontainer="body"><a href="#"><i class="fa fa-pause"></i></a></li>
</ul>
</div>
<i class="fa fa-long-arrow-right"></i>
<div class="dropdown dropdown-icons">
<a data-toggle="dropdown" href="#" class="btn btn-stroke btn-default btn-circle dropdown-toggle" onmouseout='$(this).blur()' id=conficon_c_mn><i class="fa fa-user" id=conficon_c_mi></i> </a>
<ul class="dropdown-menu">
<li><a href="#" onclick='$("#topdialerconfcall").toggle();return false;'><i class="fa fa-plus"></i></a></li>
</ul>
</div>
<div id=topdialerconfcall style='display:none'>
<input type=text class='form-control' style='width: 130px;float: left;' size=10 id=topaddconfcalltxt><a href=# class='btn btn-default' onclick='dialertopaddconf();return false;'><i class='fa fa-phone'></i></a>
</div>
<script>
function dialertopaddconf() {
var confnumber = $("#topaddconfcalltxt").val();
if (confnumber == '' || confnumber.length < 2) {
simpleNotification('error', 'topRight', "Empty Number");
return;
}
if (!kcallHasConnection(kstychCall['callnumber']) || kstychCall['ts_Dispo'] > 1) {
simpleNotification('error', 'topRight', "No call to conference");
return;
}
var datastr = "kstychCall=" + JSON.stringify(kstychCall);
datastr += "&kstychDialer=" + JSON.stringify(kstychDialer);
kcallNewConnection(confnumber);
doAjax('dialer?action=addconfcall&confnumber=' + confnumber, datastr, '__fake__div__', 'ajax_confdial', 'singlefail', 'POST', function(retstr) {
if (retstr.responseText.indexOf('Error') < 0) {
kcallSetConnection(confnumber, 'callid', retstr.responseText);
kcallSetConnection(confnumber, 'ts_Call', getNowTS());
updateDialerState();
} else {
simpleNotification('error', 'topRight', retstr.responseText);
}
});
$("#topdialerconfcall").hide();
}
</script>
</div>
</div>
</div>
<div style='clear:both'></div>
</div>
<div class="modal-body" id=kDialer_modal_body>
<div id=dialerToggleViewMainDiv style=''>
<div id=dialerSearchDiv>
<div id=dialersearchbox></div>
<div id=dialersearchresults></div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<?php
if(Config::get('app.webdomain')==Config::get('app.domain'))
{
?>
<script>document.location='login';</script>
<?php
}
else
{
echo "<script>document.location='".Config::get('app.webdomain')."';</script>";
}
?>
<?php
$reportTitle = 'Next Action Report';
$returnblade = 'nextaction';
$view_path = Config::get('view.paths');
include_once($view_path[0].'/layout/module/dialer/reporthead.blade.php');
$alist=$alist->where('userstatus','=','Contacted')->where('resultCode','=','PTP');
$alist=$alist->get();
$i=1;
$reporthead=array("#","Telecaller","TelecallerID","Supervisor","Customers","PTP");
$reportarray=array();
if(count($alist))
foreach($alist as $aline)
{
$tuser=$userarr[$aline->user_id];
if(!isset($reportarray[$aline->user_id]))$reportarray[$aline->user_id]=array("#"=>$i++,"Telecaller"=>$tuser->telecaller,"TelecallerID"=>$tuser->username,"Supervisor"=>$tuser->sepervisor,"Customers"=>0,"PTP"=>0,"Customer_lists"=>array());
if(!is_null($aline->lan)) {
$reportarray[$aline->user_id]["Customer_lists"][] = $aline->lan;
}
$reportarray[$aline->user_id]["Customers"] = count(array_unique($reportarray[$aline->user_id]["Customer_lists"]));
$reportarray[$aline->user_id]["PTP"]++;
//$ststr=$aline->userstatus."-".$aline->usersubstatus;
$ststr=$aline->nextActionCode;
if(!in_array($ststr,$reporthead))$reporthead[]=$ststr;
$reportarray[$aline->user_id][$ststr]++;
}
$highestColumn = sizeof($reporthead);
if(count($reportarray)) {
$outhead="<tr>";$outstr="";
for ($head = 0; $head < $highestColumn; $head++){
if($reporthead[$head] == '#') {
$mode_str = "<a onclick='displayMode(".'"summation"'.");return false;' href='#'><i class='fa fa-plus-square-o'></i></a> / <a onclick='displayMode(".'"percent"'.");return false;' href='#'>%</a>";
$outhead.="<td>".$mode_str."</td>";
}
else {
$outhead.="<td>".$reporthead[$head]."</td>";
}
}
$outhead.="</tr>";
$utotalarr = array("Telecaller"=>'Total');
foreach($reportarray as $uid=>$uarr)
{
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++){
if($head < 4) {
$data_str = $uarr[$reporthead[$head]];
}
elseif($head < 5) {
$data_str = $uarr[$reporthead[$head]];
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
else {
$data_str = '<span class="summation" style="display:block;">'.$uarr[$reporthead[$head]].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($uarr[$reporthead[$head]]/$uarr['PTP']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'nextaction\',\''.$uid.'\',\''.$reporthead[$head].'\')">' . $data_str . '</a>';
$utotalarr[$reporthead[$head]] += $uarr[$reporthead[$head]];
}
$outstr.="<td>".$data_str."</td>";
}
$outstr.="</tr>";
}
$outstr.="<tr>";
for ($head = 0; $head < $highestColumn; $head++)
{
if($head < 5) {
$data_str = $utotalarr[$reporthead[$head]];
}
else {
$data_str = '<span class="summation" style="display:block;">'.$utotalarr[$reporthead[$head]].'</span>';
$data_str .= '<span class="percent" style="display:none;">'.number_format(@($utotalarr[$reporthead[$head]]/$utotalarr['PTP']) * 100, 2 ).'%</span>';
$data_str = '<a href="#" onclick="breakupXls(\'nextaction\',\'All\',\''.$reporthead[$head].'\')">' . $data_str . '</a>';
}
$outstr.="<td>".$data_str."</td>";
}
$outstr.="</tr>";
}
else {
$outhead.="<tr><td>No Records Found.</td></tr>";
}
if(Input::has("dllogxls"))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("assets/extras/blank.xls");
$baseRow = 2;
$highestColumn = sizeof($reporthead);
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $reporthead[$head]);
}
foreach($reportarray as $uid=>$uarr)
{
$row = $baseRow++;
$col = 0;
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $uarr[$reporthead[$head]]);
}
}
$row++;
for ($head = 0; $head < $highestColumn; $head++){
$colstr=PHPExcel_Cell::stringFromColumnIndex($head);
$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $utotalarr[$reporthead[$head]]);
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="NextActionCode.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return ;
}
//charts
$cat1=array();
$cat1arr=array();
foreach($reportarray as $uid=>$uarr)
{
$cat1[]="'$uarr[Telecaller]'";
for ($head = 6; $head < $highestColumn; $head++){
if(!isset($cat1arr[$reporthead[$head]]))$cat1arr[$reporthead[$head]]=array();
$cat1arr[$reporthead[$head]][$uarr["#"]]=round($uarr[$reporthead[$head]],1);
if(empty($cat1arr[$reporthead[$head]][$uarr["#"]]))$cat1arr[$reporthead[$head]][$uarr["#"]]=0;
}
}
$cat1arrstr="";
foreach($cat1arr as $name=>$data)
{
$extra="";if($name=="InboundDROP-InboundDROP")$extra=",visible: false";
$cat1arrstr.="{ name: '$name',\ndata : [";
$cat1arrstr.=implode(",",$data);
$cat1arrstr.="] $extra },\n";
}
$cat2=array();
foreach($reportarray as $uid=>$uarr)
{
for ($head = 6; $head < $highestColumn; $head++){
$cat2["'".$reporthead[$head]."'"]+=round($uarr[$reporthead[$head]],1);
}
}
?>
<?php echo $__env->make('layout.module.dialer.searchform', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart1 style='min-height:250px;width:100%'></div>
</div>
<div class=col-md-6 style='border:1px solid #BBB;'>
<div id=userlogschart2 style='min-height:250px;width:100%'></div>
</div>
<div style='clear:both'></div>
<div style="overflow: auto; margin-top: 10px;">
<table id=logtable class='footable table table-striped table-bordered table-white table-primary footable-loaded' style='font-size:12px; margin:0; border:1px solid #BBB;'>
<thead><?php echo $outhead; ?></thead>
<?php echo $outstr; ?>
</table>
</div>
</div>
<script>
$(function () {
$('#userlogschart1').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Userwise Next Action Count',
style: {
fontSize: '14px'
}
},
xAxis: {
labels:{
rotation: -45,
enabled:true//default is true
},
categories: [<?php echo implode(",",$cat1); ?>]
},
yAxis: {
min: 0,
title: {
text: ''
},
stackLabels: {
enabled: false,
}
},
tooltip: {
headerFormat: '<b>{point.x}</b><br/>',
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: false,
}
}
},
series: [<?php echo $cat1arrstr; ?>]
});
});
$(function () {
$('#userlogschart2').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Next Action Count',
style: {
fontSize: '14px'
}
},
subtitle: {
text: ''
},
xAxis: {
categories: [<?php echo implode(",",array_keys($cat2)); ?>],
crosshair: true,
labels:{
enabled:true//default is true
},
},
yAxis: {
min: 0,
title: {
text: ''
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y}</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Count',
data: [<?php echo implode(",",array_values($cat2)); ?>]
},]
});
});
</script>
\ No newline at end of file
......@@ -9,4 +9,4 @@ StartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEnd
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
StartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEnd
\ No newline at end of file
StartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEndStartEnd
\ No newline at end of file
......
......@@ -2,6 +2,6 @@
// autoload.php @generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit2b5386527109f6741a386dde06f03c73::getLoader();
......
......@@ -53,8 +53,9 @@ class ClassLoader
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
private $apcuPrefix;
public function getPrefixes()
{
......@@ -272,6 +273,26 @@ class ClassLoader
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
......@@ -313,29 +334,34 @@ class ClassLoader
*/
public function findFile($class)
{
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
if ('\\' == $class[0]) {
$class = substr($class, 1);
}
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative) {
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if ($file === null && defined('HHVM_VERSION')) {
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if ($file === null) {
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
return $this->classMap[$class] = false;
$this->missingClasses[$class] = true;
}
return $file;
......@@ -348,10 +374,14 @@ class ClassLoader
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
if (0 === strpos($class, $prefix)) {
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
......@@ -399,6 +429,8 @@ class ClassLoader
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
......
Copyright (c) 2016 Nils Adermann, Jordi Boggiano
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
......@@ -23,7 +23,7 @@ class ComposerAutoloaderInit2b5386527109f6741a386dde06f03c73
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit2b5386527109f6741a386dde06f03c73', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!