Initial Commit
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
|||||||
|
# ---
|
||||||
|
# deployment:
|
||||||
|
# tasks:
|
||||||
|
# - export DEPLOYPATH=/home/gestionespiaggia/api.fatturab2b.net/
|
||||||
|
# - export VENDORPATH=/home/gestionespiaggia/apidev.fatturab2b.net/vendor
|
||||||
|
# - export ADMIN_NODE_FOLDER=/home/fatturab2bnet/apidev.fatturab2b.net/public/admin/node_modules
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/application
|
||||||
|
# - /bin/cp -R application $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/emailtemplate
|
||||||
|
# - /bin/cp -R emailtemplate $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/languages
|
||||||
|
# - /bin/cp -R languages $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/library
|
||||||
|
# - /bin/cp -R library $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/public
|
||||||
|
# - /bin/cp -R public $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/rsa
|
||||||
|
# - /bin/cp -R rsa $DEPLOYPATH
|
||||||
|
# - /bin/rm $DEPLOYPATH/index.php
|
||||||
|
# - /bin/cp index.php $DEPLOYPATH
|
||||||
|
# - /bin/rm $DEPLOYPATH/robots.txt
|
||||||
|
# - /bin/cp robots.txt $DEPLOYPATH
|
||||||
|
# - /bin/rm -rf $DEPLOYPATH/vendor
|
||||||
|
# - /bin/cp -R $VENDORPATH $DEPLOYPATH
|
||||||
|
# - /bin/cp -R $ADMIN_NODE_FOLDER $DEPLOYPATH/public/admin
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
##### IDEA IGNORED FOLDER #####
|
||||||
|
**/.idea
|
||||||
|
#**/.idea/workspace.xml
|
||||||
|
#**/.idea/tasks.xml
|
||||||
|
#.idea/dictionaries
|
||||||
|
#.idea/vcs.xml
|
||||||
|
#.idea/jsLibraryMappings.xml
|
||||||
|
#.idea/**.iws
|
||||||
|
|
||||||
|
##### FOLDER TO IGNORE #####
|
||||||
|
backup/bkconfig.json
|
||||||
|
|
||||||
|
**/bower_components
|
||||||
|
**/node_modules
|
||||||
|
**/vendor
|
||||||
|
**/vendordev
|
||||||
|
**/init_project
|
||||||
|
**/imgrepo
|
||||||
|
|
||||||
|
package-lock.json
|
||||||
|
composer.lock
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
/vendor/
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#Cache Mensile
|
||||||
|
<FilesMatch "\.(js|css|pdf|txt|png|jpg)$">
|
||||||
|
Header set Cache-Control "max-age=7200"
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
|
SetEnv APPLICATION_ENV production
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# RewriteCond %{SERVER_PORT} 80
|
||||||
|
# RewriteRule ^(.*)$ https://apidev.fatturab2b.net/$1 [R,L]
|
||||||
|
|
||||||
|
RewriteCond %{HTTP:Authorization} ^(.*)
|
||||||
|
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
|
||||||
|
|
||||||
|
# force https:// for all except some selected URLs
|
||||||
|
RewriteCond %{HTTPS} off
|
||||||
|
#RewriteCond %{THE_REQUEST} !/v1/ [NC]
|
||||||
|
RewriteCond %{THE_REQUEST} !/services/ [NC]
|
||||||
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||||
|
|
||||||
|
RewriteRule ^(application|library|languages|log|vendor|rsa)(/.*)?$ - [F]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} -s [OR]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} -l [OR]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} -d
|
||||||
|
RewriteRule ^.*$ - [NC,L]
|
||||||
|
RewriteRule ^.*$ index.php [NC,L]
|
||||||
@@ -0,0 +1,231 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
|
||||||
|
{
|
||||||
|
protected Zend_Controller_Front $_frontController;
|
||||||
|
protected Zend_Log $_logger;
|
||||||
|
protected Zend_Config_Ini $_config;
|
||||||
|
protected Zend_Config_Ini $_enviroments;
|
||||||
|
protected Zend_Db_Adapter_Pdo_Mysql $_db;
|
||||||
|
protected App_Service_IpManager $_ipManager;
|
||||||
|
|
||||||
|
protected function _initRestRoute()
|
||||||
|
{
|
||||||
|
$this->bootstrap("frontController");
|
||||||
|
// $frontController = Zend_Controller_Front::getInstance();
|
||||||
|
$this->_frontController = Zend_Controller_Front::getInstance();
|
||||||
|
|
||||||
|
// add the REST route for the API module only
|
||||||
|
$restRoute = new Zend_Rest_Route($this->_frontController, array(), array('v1'));
|
||||||
|
$this->_frontController->getRouter()->addRoute('rest', $restRoute);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initDefaultModuleAutoloader()
|
||||||
|
{
|
||||||
|
$loader = Zend_Loader_Autoloader::getInstance();
|
||||||
|
$loader->registerNamespace('App_');
|
||||||
|
|
||||||
|
$this->getResourceLoader()
|
||||||
|
->addResourceType('modelResource', 'models/resources', 'Resource')
|
||||||
|
->addResourceType('controllerSection', 'controllerSections', 'ControllerSection');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initEnviromentIni()
|
||||||
|
{
|
||||||
|
$this->_enviroments = new Zend_Config_Ini(APPLICATION_PATH . '/configs/enviroment.ini', APPLICATION_ENV);
|
||||||
|
Zend_Registry::set('ENVIROMENTS', $this->_enviroments);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initConfigIni()
|
||||||
|
{
|
||||||
|
//VARIABILI CONSTANTI PER TUTTO IL DOMINIO
|
||||||
|
Zend_Registry::set('VARIABILE_VERSION', $this->_enviroments->get('version'));
|
||||||
|
|
||||||
|
$this->_config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/config.ini', null, array('skipExtends' => true,
|
||||||
|
'allowModifications' => true));
|
||||||
|
Zend_Registry::set('config', $this->_config);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initLocale()
|
||||||
|
{
|
||||||
|
//Detect Browser language
|
||||||
|
$browserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||||
|
$browserLang = ($browserLang != 'it' && $browserLang != 'en') ? 'it' : $browserLang;
|
||||||
|
|
||||||
|
$locale = new Zend_Locale($browserLang);
|
||||||
|
Zend_Registry::set('Zend_Locale', $locale);
|
||||||
|
$this->_locale = $locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initLanguage()
|
||||||
|
{
|
||||||
|
$localeValue = 'it';
|
||||||
|
|
||||||
|
$translationPath = dirname(APPLICATION_PATH) . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR . $localeValue;
|
||||||
|
|
||||||
|
$translate = new Zend_Translate('array', $translationPath, $localeValue);
|
||||||
|
|
||||||
|
Zend_Registry::set('Zend_Translate', $translate);
|
||||||
|
Zend_Validate_Abstract::setDefaultTranslator($translate);
|
||||||
|
Zend_Form::setDefaultTranslator($translate);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initFrontControllerPlugin()
|
||||||
|
{
|
||||||
|
$this->_frontController->registerPlugin(new App_Controller_Plugin_Acl());
|
||||||
|
$this->_frontController->registerPlugin(new App_Controller_Plugin_LangSelector());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initViewSettings(){
|
||||||
|
|
||||||
|
$this->bootstrap('view');
|
||||||
|
$view = $this->getResource('view');
|
||||||
|
|
||||||
|
$view->baseUrlSite = $this->_enviroments->get('baseUrlSite');
|
||||||
|
$view->version = $this->_enviroments->get('version');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initMongoDbParms()
|
||||||
|
{
|
||||||
|
Zend_Registry::set('ENABLE_MONGODB', false);
|
||||||
|
|
||||||
|
// per getire l'abilitazione inserire i dati necessari a mongo db connection
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _initDbParms()
|
||||||
|
{
|
||||||
|
$mySqlDbParams = $this->_enviroments->get('mysql')->get('params');
|
||||||
|
$db = new Zend_Db_Adapter_Pdo_Mysql($mySqlDbParams);
|
||||||
|
|
||||||
|
Zend_Registry::set('db_adapter', $db);
|
||||||
|
Zend_Db_Table_Abstract::setDefaultAdapter($db);
|
||||||
|
|
||||||
|
$this->_db = $db;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected function _initLogging()
|
||||||
|
{
|
||||||
|
$logger = new Zend_Log();
|
||||||
|
|
||||||
|
/**** FIREBUG DEBUG LOG ****/
|
||||||
|
// $logger->addWriter(new Zend_Log_Writer_Firebug());
|
||||||
|
/****************************/
|
||||||
|
|
||||||
|
/**** GENERAL LOG ****/
|
||||||
|
$stream = @fopen(APPLICATION_PATH . '/../log/log.txt', 'a', false);
|
||||||
|
if (!$stream) {
|
||||||
|
throw new Exception('Failed to open stream of log file');
|
||||||
|
}
|
||||||
|
$writer = new Zend_Log_Writer_Stream($stream);
|
||||||
|
$logger->addWriter($writer);
|
||||||
|
Zend_Registry::set('log', $logger);
|
||||||
|
/****************************/
|
||||||
|
|
||||||
|
/**** MT LOG ***
|
||||||
|
$logger_mt = new Zend_Log();
|
||||||
|
$stream_mt = @fopen(APPLICATION_PATH . '/../log/log_mt.txt', 'a', false);
|
||||||
|
if (!$stream_mt) {
|
||||||
|
throw new Exception('Failed to open stream of mt log file');
|
||||||
|
}
|
||||||
|
$writer_mt = new Zend_Log_Writer_Stream($stream_mt);
|
||||||
|
$logger_mt->addWriter($writer_mt);
|
||||||
|
Zend_Registry::set('log_mt', $logger_mt);
|
||||||
|
/****************************/
|
||||||
|
|
||||||
|
/*** ERROR DB LOG ***/
|
||||||
|
$columnMapping = array('lvl' => 'priority', 'msg' => 'message', 'url' => 'url', 'trace' => 'trace', 'params' => 'params', 'section' => 'section','db_name'=> 'db_name','username' => 'username', 'token'=>'token');
|
||||||
|
$error_writer = new Zend_Log_Writer_Db($this->_db, 'error_log', $columnMapping);
|
||||||
|
$error_logger = new Zend_Log($error_writer);
|
||||||
|
Zend_Registry::set('error_log', $error_logger);
|
||||||
|
/****************************/
|
||||||
|
|
||||||
|
$this->_logger = $logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function _initPersonalRouter()
|
||||||
|
{
|
||||||
|
$router = $this->_frontController->getRouter();
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'sitemap',
|
||||||
|
new Zend_Controller_Router_Route('sitemap',
|
||||||
|
array(
|
||||||
|
'module' => 'default',
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'sitemap'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'it',
|
||||||
|
new Zend_Controller_Router_Route('it/:action/*',
|
||||||
|
array(
|
||||||
|
'module' => 'default',
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'index'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'en',
|
||||||
|
new Zend_Controller_Router_Route('en/:action/*',
|
||||||
|
array(
|
||||||
|
'module' => 'default',
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'index'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'language',
|
||||||
|
new Zend_Controller_Router_Route('/lang/:lang',
|
||||||
|
array(
|
||||||
|
'module' => 'default',
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'index',
|
||||||
|
'lang' => ':lang'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'offline',
|
||||||
|
new Zend_Controller_Router_Route('/offline',
|
||||||
|
array(
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'offline'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'filterpager',
|
||||||
|
new Zend_Controller_Router_Route('filter/:module/:action/:page/:count/*',
|
||||||
|
array(
|
||||||
|
'module' => 'admin',
|
||||||
|
'controller' => 'index'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'v1_login',
|
||||||
|
new Zend_Controller_Router_Route('v1/login',
|
||||||
|
array(
|
||||||
|
'module' => 'auth',
|
||||||
|
'controller' => 'index',
|
||||||
|
'action' => 'post'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
[production]
|
||||||
|
phpSettings.display_startup_errors = 1
|
||||||
|
phpSettings.display_errors = 1
|
||||||
|
includePaths.library = APPLICATION_PATH "/../library"
|
||||||
|
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
|
||||||
|
bootstrap.class = "Bootstrap"
|
||||||
|
appnamespace = "Application"
|
||||||
|
|
||||||
|
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
|
||||||
|
resources.frontController.params.prefixDefaultModule = true
|
||||||
|
|
||||||
|
resources.frontController.params.displayExceptions = 0
|
||||||
|
|
||||||
|
resources.frontController.plugins.PutHandler = "Zend_Controller_Plugin_PutHandler"
|
||||||
|
|
||||||
|
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
|
||||||
|
resources.frontController.actionhelperpaths.Application_Controller_Helper = APPLICATION_PATH "/../library/Helpers/Action"
|
||||||
|
resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/../library/Helpers/View"
|
||||||
|
|
||||||
|
resources.modules[] = ""
|
||||||
|
|
||||||
|
[staging : production]
|
||||||
|
|
||||||
|
[testing : production]
|
||||||
|
phpSettings.display_startup_errors = 1
|
||||||
|
phpSettings.display_errors = 1
|
||||||
|
|
||||||
|
[development : production]
|
||||||
|
phpSettings.display_startup_errors = 1
|
||||||
|
phpSettings.display_errors = 1
|
||||||
|
resources.frontController.params.displayExceptions = 1
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
ip_master = ""
|
||||||
|
ip_alternativo = "185.31.65.102"
|
||||||
|
email_mittente = "info@adriaticasistemi.it"
|
||||||
|
email_mittente_nome = "Adriatica Sistemi"
|
||||||
|
email_primo_contatto = "info@adriaticasistemi.it"
|
||||||
|
default_footer_email = "Inserisci qui il footer che comparirà sotto alle email
|
||||||
|
puoi utilizzare %default_NomeSito% per inserire il nome del sito"
|
||||||
|
email_contatto_template = "CONTATTO"
|
||||||
|
test_email = "sviluppoweb@winfatt.com"
|
||||||
|
interrutore_sito = "off"
|
||||||
|
interrutore_webservices_v1 = "on"
|
||||||
|
interrutore_services = "on"
|
||||||
|
interrutore_testdb = "off"
|
||||||
|
interrutore_paypal_test = "off"
|
||||||
|
interrutore_stripe_test = "off"
|
||||||
|
ip_server = "185.31.65.139"
|
||||||
|
interrutore_email_services = "on"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"NomeSito":"GestioneSpiaggia.it",
|
||||||
|
"NomeBreve":"Gestione Spiaggia",
|
||||||
|
"RagioneSociale":"Adriatica Sistemi soc. coop.",
|
||||||
|
"PartitaIva":""
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
[production]
|
||||||
|
version = "1.0.0"
|
||||||
|
baseUrlSite = "https://gestionespiaggia.it"
|
||||||
|
|
||||||
|
password_salt = "gs108_"
|
||||||
|
site_short_id = "gs"
|
||||||
|
|
||||||
|
mysql.params.host="localhost"
|
||||||
|
mysql.params.username = "gestionespiaggia_user"
|
||||||
|
mysql.params.password = "Winfatt108"
|
||||||
|
mysql.params.dbname = "gestionespiaggia_main"
|
||||||
|
|
||||||
|
cpanel.username = "gestionespiaggia"
|
||||||
|
cpanel.password = "Winfatt108"
|
||||||
|
cpanel.host = "cpanel.gestionespiaggia.it"
|
||||||
|
cpanel.restusername = "admin"
|
||||||
|
|
||||||
|
[staging : production]
|
||||||
|
version = "1.0.0"
|
||||||
|
baseUrlSite = "https://gestionespiaggia.it"
|
||||||
|
|
||||||
|
[development : production]
|
||||||
|
version = "1.0.0"
|
||||||
|
baseUrlSite = "https://gestionespiaggia.it"
|
||||||
|
|
||||||
|
mysql.params.dbname = "gestionespiaggia_main"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"base_title":"GestioneSpiaggia",
|
||||||
|
"base_keywords":"",
|
||||||
|
"home_description":""
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
class Application_ControllerSection_Admin_Index_Emailtemplate extends App_Controller_Sections_AbstractSection
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct(App_Controller_Sections_Section $controller){
|
||||||
|
$this->_resourceName = 'EmailTemplate';
|
||||||
|
|
||||||
|
//Usato per abilitare la sezione filtri
|
||||||
|
$this->_enableModalFilter = true;
|
||||||
|
|
||||||
|
//Disable new insert of element
|
||||||
|
//$this->_enableNewInsert = false;
|
||||||
|
|
||||||
|
parent::__construct($controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lista(){
|
||||||
|
parent::lista();
|
||||||
|
|
||||||
|
$this->_controller->_MENUITEM = "emailtemplate";
|
||||||
|
$this->_controller->_EVENTLOADER = $this->_controller->getRequest()->getActionName();
|
||||||
|
$this->_controller->_PAGETITLE = 'Elenco Template Email';
|
||||||
|
$this->_controller->_ICONTITLE = 'fa-envelope';
|
||||||
|
|
||||||
|
$this->_controller->view->popover_default_param_content = $this->_controller->getDefaultParamsPopoverTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Personalizzazione della funzione di delete Elemento singolo
|
||||||
|
/*protected function deleteElement($id){
|
||||||
|
$this->_model->delete($this->_resourceName,$id);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
class Application_ControllerSection_Admin_Index_Generic extends App_Controller_Sections_AbstractSection
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct(App_Controller_Sections_Section $controller){
|
||||||
|
$this->_moduleName = 'admin';
|
||||||
|
$this->_resourceName = 'NomeDellaRisorsa';
|
||||||
|
|
||||||
|
//Usato per abilitare la sezione filtri
|
||||||
|
$this->_enableModalFilter = true;
|
||||||
|
|
||||||
|
//Disable new insert of element
|
||||||
|
//$this->_enableNewInsert = false;
|
||||||
|
|
||||||
|
parent::__construct($controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lista(){
|
||||||
|
parent::lista();
|
||||||
|
|
||||||
|
$this->_controller->_MENUITEM = "nodellarisorsa";
|
||||||
|
$this->_controller->_EVENTLOADER = $this->_controller->getRequest()->getActionName();
|
||||||
|
$this->_controller->_PAGETITLE = 'Elenco Template ...';
|
||||||
|
$this->_controller->_ICONTITLE = 'fa-';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Personalizzazione della funzione di delete Elemento singolo
|
||||||
|
/*protected function deleteElement($id){
|
||||||
|
$this->_model->delete($this->_resourceName,$id);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_ControllerSection_Monitoring_Index_Accesslog extends App_Controller_Sections_AbstractSection
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct(App_Controller_Sections_Section $controller){
|
||||||
|
$this->_resourceName = 'Accesslog';
|
||||||
|
|
||||||
|
//Usato per abilitare la sezione filtri
|
||||||
|
$this->_enableModalFilter = false;
|
||||||
|
|
||||||
|
//Disable new insert of element
|
||||||
|
$this->_enableNewInsert = false;
|
||||||
|
|
||||||
|
//Disable new insert of element
|
||||||
|
//$this->_enableModalDetail = false;
|
||||||
|
|
||||||
|
parent::__construct($controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lista(){
|
||||||
|
parent::lista();
|
||||||
|
|
||||||
|
$this->_controller->_EVENTLOADER = $this->_controller->getRequest()->getActionName();
|
||||||
|
$this->_controller->_MENUITEM = "accesslog";
|
||||||
|
$this->_controller->_PAGETITLE = 'Log Accessi al sito';
|
||||||
|
$this->_controller->_ICONTITLE = 'fa-sign-in-alt';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Questa funzione se dichiarata effettua la manipolazione sui dati prima di restiutirli nella get
|
||||||
|
*
|
||||||
|
* @param $data
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function getElement($data){
|
||||||
|
|
||||||
|
$data['Data'] = $this->_helper->ExtractData($data['Data']);
|
||||||
|
$data['Descrizione'] = stripcslashes($data['Descrizione']);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Personalizzazione della funzione di delete Elemento singolo
|
||||||
|
/*protected function deleteElement($id){
|
||||||
|
$this->_model->delete($this->_resourceName,$id);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_ControllerSection_Monitoring_Index_Errorlog extends App_Controller_Sections_AbstractSection
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct(App_Controller_Sections_Section $controller)
|
||||||
|
{
|
||||||
|
$this->_resourceName = 'Errorlog';
|
||||||
|
|
||||||
|
//Usato per abilitare la sezione filtri
|
||||||
|
$this->_enableModalFilter = false;
|
||||||
|
|
||||||
|
//Disable new insert of element
|
||||||
|
$this->_enableNewInsert = false;
|
||||||
|
|
||||||
|
parent::__construct($controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lista()
|
||||||
|
{
|
||||||
|
parent::lista();
|
||||||
|
|
||||||
|
$this->_controller->_EVENTLOADER = $this->_controller->getRequest()->getActionName();
|
||||||
|
$this->_controller->_MENUITEM = "errorlog";
|
||||||
|
$this->_controller->_PAGETITLE = 'Elenco Errori';
|
||||||
|
$this->_controller->_ICONTITLE = 'fa-hashtag';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Questa funzione se dichiarata effettua la manipolazione sui dati prima di restiutirli nella get
|
||||||
|
*
|
||||||
|
* @param $data
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function getElement($data)
|
||||||
|
{
|
||||||
|
|
||||||
|
$data['params'] = Zend_Json::decode($data['params']);
|
||||||
|
$data['trace'] = Zend_Json::decode($data['trace']);
|
||||||
|
|
||||||
|
$data['baseUrl'] = $this->_controller->getRequest()->getScheme() . '://' . $this->_controller->getRequest()->getHttpHost();
|
||||||
|
|
||||||
|
$this->_controller->view->assign($data);
|
||||||
|
|
||||||
|
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setScriptAction(strtolower($this->_resourceName) . '/get');
|
||||||
|
|
||||||
|
$this->_controller->render();
|
||||||
|
$data['text'] = $this->_controller->getResponse()->getBody();
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Personalizzazione della funzione di delete Elemento singolo
|
||||||
|
/*protected function deleteElement($id){
|
||||||
|
$this->_model->delete($this->_resourceName,$id);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Form_Admin_Index_EmailTemplate_Add extends Zend_Form
|
||||||
|
{
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->addElement('text', 'Codice',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Nome',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Oggetto',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Testo',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Tipologia',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Footer',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Form_Admin_Index_Users_Add extends Zend_Form
|
||||||
|
{
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->addElement('text', 'RagioneSociale',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Indirizzo',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Comune',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Provincia',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Cap',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'PartitaIva',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'CodiceFiscale',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Telefono',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Email',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'validators' => array(new Zend_Validate_EmailAddress(),
|
||||||
|
/*new Zend_Validate_Db_NoRecordExists(array('table' => 'users', 'field' => 'Email', 'adapter' => Zend_Registry::get('db_adapter')))*/
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Pec',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'username',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'password',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'validators' => array(
|
||||||
|
array('StringLength', true, array(6))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'role',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'stato',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim', new App_Form_Filters_MyBoolean()),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Nota',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Form_Default_Index_Auth_Login extends Zend_Form
|
||||||
|
{
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->addElement('text', 'username', array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'validators' => array(
|
||||||
|
array('StringLength', true, array(3, 150))
|
||||||
|
),
|
||||||
|
'required' => true,
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->addElement('password', 'password', array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'validators' => array(
|
||||||
|
array('StringLength', true, array(3, 50))
|
||||||
|
),
|
||||||
|
'required' => true,
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->addElement('text', 'ricorda_password', array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Form_Default_Index_Auth_ResetPw extends Zend_Form
|
||||||
|
{
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->addElement('text', 'password', array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required'=>true,
|
||||||
|
'validators' => array(array('StringLength', true, array(6, 25)))
|
||||||
|
));
|
||||||
|
|
||||||
|
$this->addElement('text', 'password2', array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'required'=>true,
|
||||||
|
'validators' => array(array('StringLength', true,
|
||||||
|
array(6, 25)),
|
||||||
|
array('identical', false, array('token' => 'password'))),
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Form_V1_Test_Add extends Zend_Form
|
||||||
|
{
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->setMethod('post');
|
||||||
|
$this->setName('testForm');
|
||||||
|
$this->setAction('');
|
||||||
|
|
||||||
|
//$this->addElement('hidden', 'id');
|
||||||
|
|
||||||
|
$this->addElement('text', 'Nome',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim'),
|
||||||
|
'validators'=>array('Alnum'),
|
||||||
|
'required' => true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->addElement('text', 'Descrizione',
|
||||||
|
array(
|
||||||
|
'filters' => array('StringTrim')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="it-IT">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
|
||||||
|
<base href="<?= $this->baseUrl() . '/public/admin/'; ?>">
|
||||||
|
|
||||||
|
<link rel="canonical" href="<?= $this->baseUrlSite; ?>"/>
|
||||||
|
|
||||||
|
<title>Admin | Dashboard</title>
|
||||||
|
|
||||||
|
<!-- ========= Favicons ========= -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="../favicons/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="../favicons/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="../favicons/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="../favicons/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="../favicons/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="../favicons/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="../favicons/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="../favicons/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="../favicons/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="../favicons/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicons/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="../favicons/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicons/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="../favicons/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="../favicons/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
<!-- Font Awesome Icons -->
|
||||||
|
<link rel="stylesheet" href="node_modules/admin-lte/plugins/fontawesome-free/css/all.min.css">
|
||||||
|
<!-- Ionicons -->
|
||||||
|
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||||
|
<!-- Datepicker -->
|
||||||
|
<link href="node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css" rel="stylesheet" type="text/css" />
|
||||||
|
<!-- daterange picker -->
|
||||||
|
<link rel="stylesheet" href="node_modules/admin-lte/plugins/daterangepicker/daterangepicker.css">
|
||||||
|
<!-- iCheck for checkboxes and radio inputs -->
|
||||||
|
<link href="node_modules/icheck/skins/square/blue.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<!-- Summernote -->
|
||||||
|
<link rel="stylesheet" href="node_modules/admin-lte/plugins/summernote/summernote-bs4.min.css" type="text/css"/>
|
||||||
|
<!-- Toastr -->
|
||||||
|
<link rel="stylesheet" href="node_modules/admin-lte/plugins/toastr/toastr.min.css">
|
||||||
|
<!-- jQueryUI -->
|
||||||
|
<link href="node_modules/jquery-ui-dist/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<!-- Select2 -->
|
||||||
|
<link href="node_modules/select2/dist/css/select2.min.css" rel="stylesheet" />
|
||||||
|
<!-- FontIconPicker -->
|
||||||
|
<link href="node_modules/@fonticonpicker/fonticonpicker/dist/css/base/jquery.fonticonpicker.min.css" rel="stylesheet" />
|
||||||
|
<link href="node_modules/@fonticonpicker/fonticonpicker/dist/css/themes/bootstrap-theme/jquery.fonticonpicker.bootstrap.min.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
<!-- Theme style -->
|
||||||
|
<link rel="stylesheet" href="node_modules/admin-lte/dist/css/adminlte.min.css">
|
||||||
|
<!-- Google Font: Source Sans Pro -->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
|
||||||
|
|
||||||
|
<?php if ($this->customCssScript): ?>
|
||||||
|
<!-- CUSTOM PAGE ADMIN CSS SCRIPT -->
|
||||||
|
<?php foreach ($this->customCssScript as $script): ?>
|
||||||
|
<link href="<?= $script; ?>" rel="stylesheet" type="text/css"/>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<!-- CUSTOM PAGE ADMIN CSS END -->
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Custom style -->
|
||||||
|
<link href="css/custom.min.css?v=<?= $this->version; ?>" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<?php if (in_array($this->action, array('login', 'authenticate', 'resetpassword'))): ?>
|
||||||
|
|
||||||
|
<body class="login-page">
|
||||||
|
<?php switch ($this->action) {
|
||||||
|
default:
|
||||||
|
case 'login':
|
||||||
|
echo $this->render('admin/baseSection/_loginPage.phtml');
|
||||||
|
break;
|
||||||
|
case 'resetpassword':
|
||||||
|
echo $this->render('admin/baseSection/_resetPage.phtml');
|
||||||
|
break;
|
||||||
|
} ?>
|
||||||
|
|
||||||
|
<?php else: ?>
|
||||||
|
<body class="hold-transition accent-brand sidebar-mini fixed <?= ($this->sideBarCollapsed == 1) ? 'sidebar-collapse':'' ?>" ng-app="app" data-token="<?= $this->AuthInfo('token'); ?>" data-dev-mode="<?= $this->enableTestSdk; ?>">
|
||||||
|
<?= $this->render('admin/baseSection/_default.phtml') ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- REQUIRED JS SCRIPTS -->
|
||||||
|
<!-- jQuery -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/jquery/jquery.min.js"></script>
|
||||||
|
<!-- jQueryUI -->
|
||||||
|
<script src="node_modules/jquery-ui-dist/jquery-ui.min.js"></script>
|
||||||
|
<!-- Bootstrap 4 -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Jquery Cookie -->
|
||||||
|
<script src="node_modules/jquery.cookie/jquery.cookie.js"></script>
|
||||||
|
<!-- Jquery Form -->
|
||||||
|
<script src="node_modules/jquery-form/dist/jquery.form.min.js"></script>
|
||||||
|
<!-- date-range-picker -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/moment/moment.min.js"></script>
|
||||||
|
<script src="node_modules/admin-lte/plugins/daterangepicker/daterangepicker.js"></script>
|
||||||
|
<!-- datepicker -->
|
||||||
|
<script src="node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js" type="text/javascript"></script>
|
||||||
|
<script src="node_modules/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js" type="text/javascript"></script>
|
||||||
|
<!-- iCheck 1.0.1 -->
|
||||||
|
<script src="node_modules/icheck/icheck.min.js" type="text/javascript"></script>
|
||||||
|
<!-- Bootstrap Switch -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/bootstrap-switch/js/bootstrap-switch.min.js"></script>
|
||||||
|
<!-- Toastr -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/toastr/toastr.min.js"></script>
|
||||||
|
<!-- Summernote -->
|
||||||
|
<script src="node_modules/admin-lte/plugins/summernote/summernote-bs4.min.js"></script>
|
||||||
|
<!-- jquery.floatThead -->
|
||||||
|
<script src="node_modules/floatthead/dist/jquery.floatThead.min.js" type="text/javascript"></script>
|
||||||
|
<!-- google maps -->
|
||||||
|
<!--<script src="https://maps.googleapis.com/maps/api/js?key=<insert_key>&libraries=geometry"></script>-->
|
||||||
|
<!-- Select2 -->
|
||||||
|
<script src="node_modules/select2/dist/js/select2.min.js"></script>
|
||||||
|
<!-- fontIconPicker JS -->
|
||||||
|
<!--<script type="text/javascript" src="node_modules/@fonticonpicker/fonticonpicker/dist/js/jquery.fonticonpicker.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../sw-icons/sw-icons.fonticonpicker.options.js"></script>-->
|
||||||
|
|
||||||
|
<!-- AdminLTE App -->
|
||||||
|
<script src="node_modules/admin-lte/dist/js/adminlte.min.js"></script>
|
||||||
|
|
||||||
|
<!-- SW Global functions -->
|
||||||
|
<script src="js/globalfunctions.js?v=<?= $this->version; ?>" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<?php if ($this->customJsScript): ?>
|
||||||
|
<!-- CUSTOM PAGE ADMIN JS SCRIPT -->
|
||||||
|
<?php foreach ($this->customJsScript as $script): ?>
|
||||||
|
<script src="<?= $script; ?>" type="text/javascript"></script>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<!-- CUSTOM PAGE ADMIN JS SCRIPT END -->
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->angularModuleName): ?>
|
||||||
|
<!-- ANGULAR HANDLER -->
|
||||||
|
<link rel="stylesheet" href="node_modules/ui-bootstrap4/dist/ui-bootstrap-csp.css">
|
||||||
|
|
||||||
|
<script src="node_modules/angular/angular.min.js"></script>
|
||||||
|
<script src="node_modules/angular-resource/angular-resource.min.js"></script>
|
||||||
|
<script src="node_modules/angular-animate/angular-animate.js"></script>
|
||||||
|
<script src="node_modules/ui-bootstrap4/dist/ui-bootstrap.js"></script>
|
||||||
|
<script src="node_modules/ui-bootstrap4/dist/ui-bootstrap-tpls.js"></script>
|
||||||
|
<script src="node_modules/angularjs-toaster/toaster.min.js"></script>
|
||||||
|
<script src="node_modules/angular-moment/angular-moment.min.js"></script>
|
||||||
|
<script src="node_modules/angular-daterangepicker/js/angular-daterangepicker.js"></script>
|
||||||
|
<script src="node_modules/ngstorage/ngStorage.min.js"></script>
|
||||||
|
|
||||||
|
<script src="node_modules/chart.js/dist/Chart.min.js"></script>
|
||||||
|
<script src="node_modules/angular-chart.js/dist/angular-chart.min.js"></script>
|
||||||
|
|
||||||
|
<script src="js/angularjs/angularGlobalFunctions.js?v=<?= $this->version; ?>"></script>
|
||||||
|
<script src="js/angularjs/app.js?v=<?= $this->version; ?>"></script>
|
||||||
|
<script src="js/angularjs/model.js?v=<?= $this->version; ?>"></script>
|
||||||
|
|
||||||
|
<toaster-container id="toast-container" toaster-options="{'position-class': 'toast-bottom-right'}"></toaster-container>
|
||||||
|
|
||||||
|
<script src="js/angularjs/<?= $this->angularModuleName; ?>.module.js?v=<?= $this->version; ?>"></script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- EventHandler personalizzato per la pagina -->
|
||||||
|
<?php if ($this->eventLoader): ?>
|
||||||
|
<script src="js/handler/<?= ($this->moduleName) ? $this->moduleName : 'admin'; ?>/event_handler_<?= $this->eventLoader; ?>.js?v=<?= $this->version; ?>" type="text/javascript"></script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h4 class="m-0 text-dark">
|
||||||
|
<i class="fa fa-fw <?= $this->iconTitle; ?>"></i>
|
||||||
|
<?= $this->pageTitle; ?> <?= ($this->subTitle) ? ' - ' . $this->subTitle : ''; ?>
|
||||||
|
</h4>
|
||||||
|
</div><!-- /.col -->
|
||||||
|
<div class="col-md-6">
|
||||||
|
<ol class="breadcrumb float-sm-right">
|
||||||
|
<li class="breadcrumb-item"><a href="<?= $this->url(array('controller'=>(($this->controllerName) ? $this->controllerName:'index'),'action'=>'index'),(($this->moduleName) ? $this->moduleName:'admin'),true); ?>"><i class="fa fa-tachometer-alt"></i> Home</a></li>
|
||||||
|
<?php if($this->secondLevelAction != null): ?>
|
||||||
|
<li class="breadcrumb-item"><a href="<?= $this->url(array('controller'=>(($this->controllerName) ? $this->controllerName:'index'),'action'=>$this->secondLevelAction),(($this->moduleName) ? $this->moduleName:'default'),true); ?>"><?= $this->secondLevel; ?></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
<li class="breadcrumb-item active"><?= $this->pageTitle; ?></li>
|
||||||
|
</ol>
|
||||||
|
</div><!-- /.col -->
|
||||||
|
</div><!-- /.row -->
|
||||||
|
</div><!-- /.container-fluid -->
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<footer class="main-footer">
|
||||||
|
<div class="float-right d-xs-none">
|
||||||
|
<?php if($this->moduleName == 'monitoring'): ?>
|
||||||
|
Pannello Di Monitoraggio
|
||||||
|
<?php else: ?>
|
||||||
|
Pannello Amministrazione
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
<strong><?= $this->datiAziendali['RagioneSociale']; ?></strong>
|
||||||
|
</footer>
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<nav class="main-header navbar navbar-expand navbar-dark navbar-dark-brand" role="navigation">
|
||||||
|
|
||||||
|
<!-- Left navbar links -->
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="navbar-nav ml-auto">
|
||||||
|
|
||||||
|
<?php if ($this->enableTestSdk): ?>
|
||||||
|
<li class="nav-item dev-block">
|
||||||
|
<span style="padding: 5px;" class="alert alert-warning ml-5"><i
|
||||||
|
class="fa fa-exclamation-triangle fa-fw"></i> STAI VISUALIZZANDO I DATI DI TEST</span>
|
||||||
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Notifications Dropdown Menu -->
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" data-toggle="dropdown" href="#">
|
||||||
|
<i class="far fa-bell"></i>
|
||||||
|
<?php if ($this->notification > 0): ?>
|
||||||
|
<span class="badge badge-warning navbar-badge"><?= $this->notification; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
|
||||||
|
<?php if ($this->notification > 0): ?>
|
||||||
|
<span class="dropdown-header"><?= $this->notification; ?> Notifiche Totali</span>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<?php foreach ((array) $this->notificationlist as $key => $value): ?>
|
||||||
|
<?= $this->partial('index/partial/notify.phtml', $value); ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<?php else: ?>
|
||||||
|
<a class="dropdown-item dropdown-footer">Non ci sono nuove notifiche</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->AuthInfo()->checkPermission('admin')): ?>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<?php if ($this->moduleName == 'monitoring'): ?>
|
||||||
|
<a class="dropdown-item dropdown-footer"
|
||||||
|
href="<?= $this->url(array('action' => 'index'), 'admin', true); ?>"><i
|
||||||
|
class="fas fa-fw fa-dashboard"></i> VAI ALL' ADMIN</a>
|
||||||
|
<?php else: ?>
|
||||||
|
<a class="dropdown-item dropdown-footer"
|
||||||
|
href="<?= $this->url(array('action' => 'index'), 'monitoring', true); ?>"><i
|
||||||
|
class="fas fa-fw fa-tasks"></i> VAI AL MONITORING</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link"
|
||||||
|
href="<?= $this->url(array('action' => 'logout'), 'admin', true); ?>" role="button"><i
|
||||||
|
class="fas fa-power-off"></i> Logout</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</nav>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<!-- sidebar: style can be found in sidebar.less -->
|
||||||
|
<div class="sidebar">
|
||||||
|
|
||||||
|
<!-- Sidebar user panel (optional) -->
|
||||||
|
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
|
||||||
|
<div class="image">
|
||||||
|
<img src="img/<?= $this->AuthInfo('role'); ?>.svg" class="img-circle" alt="User Image">
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<a href="#" class="d-block"><?= $this->AuthInfo('RagioneSociale'); ?></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Sidebar Menu -->
|
||||||
|
<nav class="mt-2">
|
||||||
|
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu">
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?= ($this->menu == 'dashboard') ? 'active' : ''; ?>"
|
||||||
|
href="<?= $this->url(array('action' => 'index'), 'admin', true); ?>">
|
||||||
|
<i class="nav-icon fas fa-tachometer-alt "></i>
|
||||||
|
<p> Dashboard</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item has-treeview <?= (in_array($this->menu, array('settings', 'emailtemplate'))) ? 'menu-open' : ''; ?>">
|
||||||
|
<a href="#"
|
||||||
|
class="nav-link <?= (in_array($this->menu, array('settings', 'emailtemplate'))) ? 'active' : ''; ?>">
|
||||||
|
<i class="nav-icon fas fa-cog "></i>
|
||||||
|
<p> Impostazioni <i class="right fas fa-angle-left"></i></p>
|
||||||
|
</a>
|
||||||
|
<ul class="nav nav-treeview">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="<?= $this->url(array('action' => 'settings'), 'admin', true); ?>"
|
||||||
|
class="nav-link <?= ($this->menu == 'settings') ? 'active' : ''; ?>">
|
||||||
|
<i class="far fa-circle nav-icon"></i>
|
||||||
|
<p>Generali</p></a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="<?= $this->url(array('action' => 'listemailtemplate'), 'admin', true); ?>"
|
||||||
|
class="nav-link <?= ($this->menu == 'emailtemplate') ? 'active' : ''; ?>">
|
||||||
|
<i class="far fa-envelope nav-icon"></i>
|
||||||
|
<p>Gestione Email Template</p></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<!-- /.sidebar-menu -->
|
||||||
|
</div>
|
||||||
|
<!-- /.sidebar -->
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<div class="sidebar">
|
||||||
|
|
||||||
|
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
|
||||||
|
<div class="image">
|
||||||
|
<img src="img/admin.svg" class="img-circle" alt="Admin Image">
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<a href="#" class="d-block"><?= $this->AuthInfo('RagioneSociale'); ?></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Sidebar Menu -->
|
||||||
|
<nav class="mt-2">
|
||||||
|
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?= ($this->menu == 'dashboard') ? 'active' : ''; ?>"
|
||||||
|
href="<?= $this->url(array('action' => 'index'), 'monitoring', true); ?>">
|
||||||
|
<i class="nav-icon fas fa-tachometer-alt"></i>
|
||||||
|
<p> Dashboard</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?= ($this->menu == 'accesslog') ? 'active' : ''; ?>"
|
||||||
|
href="<?= $this->url(array('action' => 'listaccesslog'), 'monitoring', true); ?>">
|
||||||
|
<i class="nav-icon fas fa-sign-in-alt"></i>
|
||||||
|
<p> Controllo Accessi</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?= ($this->menu == 'errorlog') ? 'active' : ''; ?>"
|
||||||
|
href="<?= $this->url(array('action' => 'listerrorlog'), 'monitoring', true); ?>">
|
||||||
|
<i class="nav-icon fas fa-hashtag"></i>
|
||||||
|
<p> Log Errori</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header"></li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="<?= $this->url(array('action' => 'index'), 'admin', true); ?>" class="nav-link">
|
||||||
|
<i class="nav-icon far fa-circle text-success"></i>
|
||||||
|
<p class="text">VAI SU ADMIN</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<!-- /.sidebar-menu -->
|
||||||
|
</div>
|
||||||
|
<!-- /.sidebar -->
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<!-- Header Navbar -->
|
||||||
|
<?= $this->render('admin/_navbarAdmin.phtml') ?>
|
||||||
|
|
||||||
|
<!-- Left side column. contains the logo and sidebar -->
|
||||||
|
<aside class="main-sidebar sidebar-dark-brand elevation-4">
|
||||||
|
|
||||||
|
<!-- Brand Logo -->
|
||||||
|
<a href="<?= $this->url(array(), 'default', true); ?>" class="brand-link navbar-dark-brand">
|
||||||
|
<!--<img src="../baseImg/logo.png" alt="Brand Logo" class="brand-image">-->
|
||||||
|
<span class="brand-text ml-10">Gestione Spiaggia</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<?php switch ($this->moduleName):
|
||||||
|
case'monitoring': ?>
|
||||||
|
<?= $this->render('admin/_sidebarMonitoring.phtml') ?>
|
||||||
|
<?php break;
|
||||||
|
default: ?>
|
||||||
|
<?= $this->render('admin/_sidebarAdmin.phtml') ?>
|
||||||
|
<?php break;
|
||||||
|
endswitch; ?>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<!-- Content Wrapper. Contains page content -->
|
||||||
|
<div class="content-wrapper">
|
||||||
|
<!-- Content Header (Page header) -->
|
||||||
|
<?php if ($this->action != 'index'): ?>
|
||||||
|
<?= $this->render('admin/_contentHeaderAdmin.phtml') ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Main content -->
|
||||||
|
<div class="content <?= (preg_match('/^list/', $this->action) ? 'list' : ''); ?>">
|
||||||
|
|
||||||
|
<?php echo $this->layout()->content ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- /.content -->
|
||||||
|
</div>
|
||||||
|
<!-- /.content-wrapper -->
|
||||||
|
|
||||||
|
<!-- Main Footer -->
|
||||||
|
<?php if (!preg_match('/^list/', $this->action)): ?>
|
||||||
|
<?= $this->render('admin/_footerAdmin.phtml'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
<div class="login-box">
|
||||||
|
<div class="login-logo">
|
||||||
|
|
||||||
|
<?php /*if(file_exists(APPLICATION_PATH . "/../public/baseImg/logo.png")): */?><!--
|
||||||
|
<img class="center-block" src="../baseImg/logo.png" />
|
||||||
|
<?php /*else: */?>
|
||||||
|
<img class="center-block" src="../baseImg/no_logo.png" />
|
||||||
|
--><?php /*endif; */?>
|
||||||
|
|
||||||
|
<?php $nomeSito = explode('.',$this->datiAziendali['NomeBreve']); ?>
|
||||||
|
<?php if(count($nomeSito) > 1): ?>
|
||||||
|
<a href="<?= $this->url(array(),'default',true); ?>"><b><?= ucfirst($nomeSito[0]); ?></b>.<?= $nomeSito[1] ?></a>
|
||||||
|
<?php else: ?>
|
||||||
|
<a href="<?= $this->url(array(),'default',true); ?>"><b><?= ucfirst($nomeSito[0]); ?></b></a>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</div><!-- /.login-logo -->
|
||||||
|
|
||||||
|
<div class="card-body login-card-body">
|
||||||
|
<p class="login-box-msg">LOG IN</p>
|
||||||
|
|
||||||
|
<?php if($this->error): ?>
|
||||||
|
<div class="alert alert-danger"><?= $this->error; ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<form action="<?= $this->url(array(), 'authenticate',true); ?>" method="post" autocomplete="off">
|
||||||
|
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="text" class="form-control" value="<?= $this->formData['username']; ?>" autocomplete="off"
|
||||||
|
name="username" placeholder="Nome Utente"/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span class="fas fa-envelope"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="password" class="form-control" value="<?= $this->formData['password']; ?>" autocomplete="off"
|
||||||
|
name="password" placeholder="Password"/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span class="fas fa-lock"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-8">
|
||||||
|
<div class="icheck-primary">
|
||||||
|
<input id="ricorda_password" name="ricorda_password" autocomplete="off" <?= ($this->formData['ricorda_password'] == 'on') ? 'checked':'' ?>
|
||||||
|
type="checkbox">
|
||||||
|
<label for="ricorda_password" class="form-check-label">
|
||||||
|
Memorizza Accesso
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col -->
|
||||||
|
<div class="col-4">
|
||||||
|
<button type="submit" class="btn btn-brand btn-block">Accedi</button>
|
||||||
|
</div>
|
||||||
|
<!-- /.col -->
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="mb-1 center-block mt-15">
|
||||||
|
<a class="center-block text-center text-muted" href="<?= $this->url(array(),'resetpassword',true) ?>">Recupera Password</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="footer-login text-muted">© Copyright <?= date('Y');?> - Adriatica Sistemi soc. coop.</p>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<div class="login-box">
|
||||||
|
<div class="login-logo">
|
||||||
|
|
||||||
|
<?php if(file_exists(APPLICATION_PATH . "/../public/baseImg/logo.png")): ?>
|
||||||
|
<img class="center-block" src="../baseImg/logo.png" />
|
||||||
|
<?php else: ?>
|
||||||
|
<img class="center-block" src="../baseImg/no_logo.png" />
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php $nomeSito = explode('.',$this->datiAziendali['NomeBreve']); ?>
|
||||||
|
<?php if(count($nomeSito) > 1): ?>
|
||||||
|
<a href="<?= $this->url(array(),'default',true); ?>"><b><?= ucfirst($nomeSito[0]); ?></b>.<?= $nomeSito[1] ?></a>
|
||||||
|
<?php else: ?>
|
||||||
|
<a href="<?= $this->url(array(),'default',true); ?>"><b><?= ucfirst($nomeSito[0]); ?></b></a>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</div><!-- /.login-logo -->
|
||||||
|
|
||||||
|
<div class="card-body login-card-body">
|
||||||
|
|
||||||
|
<?php if(!$this->rcode): ?>
|
||||||
|
<p class="login-box-msg">Inserisci l'email con cui sei registrato per il reset password</p>
|
||||||
|
<?php else: ?>
|
||||||
|
<p class="login-box-msg">Inserisci la nuova password</p>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if($this->errorMessage): ?>
|
||||||
|
<div class="alert alert-danger"><?= $this->errorMessage; ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if($this->warningMessage): ?>
|
||||||
|
<div class="alert alert-warning"><?= $this->warningMessage; ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if($this->successMessage): ?>
|
||||||
|
<div class="alert alert-success"><?= $this->successMessage; ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if(!$this->rcode && !$this->hideForm): ?>
|
||||||
|
|
||||||
|
<form action="<?= $this->url(array(), 'resetpassword',true); ?>" method="post" autocomplete="off">
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="email" class="form-control" value="<?= $this->formData['Email']; ?>" autocomplete="off"
|
||||||
|
name="Email" placeholder="Email"/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span class="fas fa-envelope"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="submit" class="btn btn-brand btn-block text-uppercase">Richiedi Reset</button>
|
||||||
|
</div><!-- /.col -->
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if($this->rcode && !$this->hideForm): ?>
|
||||||
|
|
||||||
|
<form action="<?= $this->url(array('rcode'=>$this->rcode), 'resetpassword',true); ?>" method="post" autocomplete="off">
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="password" class="form-control <?= ($this->errorForm['password']) ? 'is-invalid' : ''; ?>" value="" autocomplete="off" id="password"
|
||||||
|
name="password" placeholder="Nuova password"/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span class="fas fa-lock"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php foreach ((array)$this->errorForm['password'] as $error): ?>
|
||||||
|
<span class="error invalid-feedback text-right"><?= $error; ?></span>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="password" class="form-control <?= ($this->errorForm['password2']) ? 'is-invalid' : ''; ?>" value="" autocomplete="off" id="password2"
|
||||||
|
name="password2" placeholder="Ripeti password"/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<div class="input-group-text">
|
||||||
|
<span class="fas fa-lock"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php foreach ((array)$this->errorForm['password2'] as $error): ?>
|
||||||
|
<span class="error invalid-feedback text-right"><?= $error; ?></span>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="submit" class="btn btn-brand btn-block text-uppercase">Reimposta Password</button>
|
||||||
|
</div><!-- /.col -->
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</div><!-- /.login-box-body -->
|
||||||
|
<p class="footer-login text-muted">© Copyright <?= date('Y');?> - Adriatica Sistemi soc. coop.</p>
|
||||||
|
</div><!-- /.login-box -->
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="<?= $this->lang; ?>">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
<meta name="theme-color" content="#E3E3E3">
|
||||||
|
|
||||||
|
<base href="<?= $this->baseUrl(); ?>/public/front/">
|
||||||
|
|
||||||
|
<meta name="author" content="AdriaticaSistemi">
|
||||||
|
<meta name="description" content="<?= $this->description; ?>">
|
||||||
|
<meta name="keywords" content="<?= $this->keywords; ?>">
|
||||||
|
|
||||||
|
<link rel="canonical" href="<?= $this->baseUrlSite; ?>"/>
|
||||||
|
|
||||||
|
<title><?= $this->title; ?></title>
|
||||||
|
|
||||||
|
<?php if ($this->action == 'downloadsoftware'): ?>
|
||||||
|
<meta http-equiv="refresh" content="0;url=https://www.gestionespiaggia.it/downloads/fatturafacileinstall.exe">
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Favicons -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="../favicons/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="../favicons/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="../favicons/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="../favicons/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="../favicons/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="../favicons/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="../favicons/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="../favicons/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="../favicons/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="../favicons/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicons/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="../favicons/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicons/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="../favicons/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#0072B6">
|
||||||
|
<meta name="msapplication-TileImage" content="../favicons/ms-icon-144x144.png">
|
||||||
|
|
||||||
|
<!-- Map CSS -->
|
||||||
|
<link rel="stylesheet" href="https://api.mapbox.com/mapbox-gl-js/v0.53.0/mapbox-gl.css"/>
|
||||||
|
|
||||||
|
<!-- Libs CSS -->
|
||||||
|
<link rel="stylesheet" href="./assets/css/libs.bundle.css"/>
|
||||||
|
|
||||||
|
<!-- Theme CSS -->
|
||||||
|
<link rel="stylesheet" href="./assets/css/theme.bundle.css"/>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body class="bg-light">
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<?= $this->render('public/_header.phtml'); ?>
|
||||||
|
<!-- End Header Section -->
|
||||||
|
|
||||||
|
<?php echo $this->layout()->content ?>
|
||||||
|
|
||||||
|
<!-- Footer Section -->
|
||||||
|
<?= $this->render('public/_footer.phtml'); ?>
|
||||||
|
<!-- End Footer Section -->
|
||||||
|
|
||||||
|
<!-- JAVASCRIPT -->
|
||||||
|
<!-- Map JS -->
|
||||||
|
<script src='https://api.mapbox.com/mapbox-gl-js/v0.53.0/mapbox-gl.js'></script>
|
||||||
|
|
||||||
|
<!-- Vendor JS -->
|
||||||
|
<script src="./assets/js/vendor.bundle.js"></script>
|
||||||
|
|
||||||
|
<!-- Theme JS -->
|
||||||
|
<script src="./assets/js/theme.bundle.js"></script>
|
||||||
|
|
||||||
|
<!-- jquery -->
|
||||||
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
|
||||||
|
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<!-- Privacy Policy -->
|
||||||
|
<?php if (!isset($_COOKIE['displayCookiePolicy'])): ?>
|
||||||
|
<?= $this->render('public/_privacyPolicy.phtml'); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="<?= $this->lang; ?>">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="theme-color" content="#E3E3E3">
|
||||||
|
|
||||||
|
<base href="<?= $this->baseUrl(); ?>/public/front/">
|
||||||
|
|
||||||
|
<meta name="author" content="AdriaticaSistemi">
|
||||||
|
<meta name="description" content="<?= $this->description; ?>">
|
||||||
|
<meta name="keywords" content="<?= $this->keywords; ?>">
|
||||||
|
|
||||||
|
<link rel="canonical" href="<?= $this->baseUrlSite; ?>"/>
|
||||||
|
|
||||||
|
<title><?= $this->title; ?></title>
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="../favicons/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="../favicons/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="../favicons/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="../favicons/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="../favicons/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="../favicons/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="../favicons/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="../favicons/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="../favicons/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="../favicons/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="../favicons/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="../favicons/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicons/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="../favicons/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#0072B6">
|
||||||
|
<meta name="msapplication-TileImage" content="../favicons/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#0072B6">
|
||||||
|
|
||||||
|
<!-- Google Fonts -->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,600,700,700i|Montserrat:300,400,500,600,700" rel="stylesheet">
|
||||||
|
|
||||||
|
<!-- Bootstrap CSS File -->
|
||||||
|
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<!-- Libraries CSS Files -->
|
||||||
|
<link href="lib/font-awesome/css/font-awesome.min.css" rel="stylesheet">
|
||||||
|
<link href="lib/animate/animate.min.css" rel="stylesheet">
|
||||||
|
<link href="lib/ionicons/css/ionicons.min.css" rel="stylesheet">
|
||||||
|
<link href="lib/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet">
|
||||||
|
<link href="lib/lightbox/css/lightbox.min.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<!-- Main Stylesheet File -->
|
||||||
|
<link href="css/style.css" rel="stylesheet">
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- Footer Section -->
|
||||||
|
<?= $this->render('public/_header.phtml'); ?>
|
||||||
|
<!-- End Footer Section -->
|
||||||
|
|
||||||
|
<?php echo $this->layout()->content ?>
|
||||||
|
|
||||||
|
<!-- Footer Section -->
|
||||||
|
<?= $this->render('public/_footer.phtml'); ?>
|
||||||
|
<!-- End Footer Section -->
|
||||||
|
|
||||||
|
<!-- Privacy Policy End -->
|
||||||
|
|
||||||
|
<!-- Uncomment below i you want to use a preloader -->
|
||||||
|
<div id="preloader"></div>
|
||||||
|
|
||||||
|
<!-- JavaScript Libraries -->
|
||||||
|
<script src="lib/jquery/jquery.min.js"></script>
|
||||||
|
<script src="lib/jquery/jquery-migrate.min.js"></script>
|
||||||
|
<script src="lib/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<script src="lib/easing/easing.min.js"></script>
|
||||||
|
<script src="lib/mobile-nav/mobile-nav.js"></script>
|
||||||
|
<script src="lib/wow/wow.min.js"></script>
|
||||||
|
<script src="lib/waypoints/waypoints.min.js"></script>
|
||||||
|
<script src="lib/counterup/counterup.min.js"></script>
|
||||||
|
<script src="lib/owlcarousel/owl.carousel.min.js"></script>
|
||||||
|
<script src="lib/isotope/isotope.pkgd.min.js"></script>
|
||||||
|
<script src="lib/lightbox/js/lightbox.min.js"></script>
|
||||||
|
<!-- Contact Form JavaScript File -->
|
||||||
|
<script src="contactform/contactform.js"></script>
|
||||||
|
|
||||||
|
<!-- Template Main Javascript File -->
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
|
||||||
|
<!-- Privacy Policy -->
|
||||||
|
<?php /*if (!isset($_COOKIE['displayCookiePolicy'])): */?><!--
|
||||||
|
<?/*= $this->render('public/_privacyPolicy.phtml'); */?>
|
||||||
|
--><?php /*endif; */?>
|
||||||
|
|
||||||
|
<?php if($this->enableTestSdk): ?>
|
||||||
|
<!-- Library Dev -->
|
||||||
|
<?= $this->render('public/_devBanner.phtml') ?>
|
||||||
|
<!-- Privacy Library Dev -->
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<div class="dev_banner">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-md-12 text-center">
|
||||||
|
STAI VISUALIZZANDO L'AMBIENTE DI SVILUPPO
|
||||||
|
<a id="accept_dev" class="btn btn-sm"><i class="fa fa-times fa-fw"></i> CHIUDI</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('#accept_dev').click(function (link) {
|
||||||
|
link.preventDefault();
|
||||||
|
$('.dev_banner').slideUp();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
<!-- FOOTER -->
|
||||||
|
<footer class="py-6 py-md-6 bg-gray-200">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<!--<div class="row justify-content-center bg-gray-600">
|
||||||
|
<div class="col-10 col-md-5 col-lg-5 text-center">
|
||||||
|
|
||||||
|
<img src="./../baseImg/logo_as_medium.png" alt="Adriatica Sistemi" class="footer-brand img-fluid mb-10">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>-->
|
||||||
|
|
||||||
|
<div class="row" style="font-size: 0.9rem;">
|
||||||
|
|
||||||
|
<div class="col-12 col-md-4 col-lg-3">
|
||||||
|
|
||||||
|
<!-- <img src="./../baseImg/logo_as_medium.png" alt="Adriatica Sistemi" class="footer-brand img-fluid mb-4">-->
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted">
|
||||||
|
<span class="fw-bold text-uppercase">© <?= date('Y') ?> Adriatica Sistemi S.C.</span> <br> <span class="">P.Iva 01999590688</span>
|
||||||
|
<br> <span class="">REA PE145649</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6 col-md-4 col-lg-2">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700">
|
||||||
|
Azienda
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<ul class="list-unstyled text-muted mb-6 mb-md-8 mb-lg-0">
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.adriaticasistemi.it" target="_blank" class="text-reset">
|
||||||
|
Sito Ufficiale
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.adriaticasistemi.it/it/contatti" target="_blank" class="text-reset">
|
||||||
|
Contatti
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6 col-md-4 col-lg-2">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700">
|
||||||
|
Acquista
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<ul class="list-unstyled text-muted mb-6 mb-md-8 mb-lg-0">
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="#!" class="text-reset">
|
||||||
|
Licenza
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="#!" class="text-reset">
|
||||||
|
Assistenza
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="#!" class="text-reset">
|
||||||
|
Fatture Elettroniche
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6 col-md-4 offset-md-4 col-lg-2 offset-lg-0">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700">
|
||||||
|
Assistenza
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<ul class="list-unstyled text-muted mb-0">
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="<?= $this->url(['action' => 'assistenza'], 'it', true); ?>#manuali" class="text-reset">
|
||||||
|
Manuali
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="<?= $this->url(['action' => 'assistenza'], 'it', true); ?>#guide" class="text-reset">
|
||||||
|
Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<!--<li>
|
||||||
|
<a target="_blank" href="https://www.gestionespiaggia.it/documents/disinstallazione.pdf" class="text-reset">
|
||||||
|
Procedura di disinstallazione
|
||||||
|
</a>
|
||||||
|
</li>-->
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-6 col-md-4 col-lg-2">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700">
|
||||||
|
Legal
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<ul class="list-unstyled text-muted mb-0">
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.iubenda.com/terms-and-conditions/70038880" target="_blank"
|
||||||
|
class="text-reset">
|
||||||
|
Termini e Condizioni
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.iubenda.com/privacy-policy/70038880" target="_blank" class="text-reset">
|
||||||
|
Privacy Policy
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.iubenda.com/privacy-policy/70038880/cookie-policy" target="_blank"
|
||||||
|
class="text-reset">
|
||||||
|
Cookie Policy
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="mb-1">
|
||||||
|
<a href="https://www.gestionespiaggia.it/documents/licenza-Fattura-Facile.pdf" target="_blank"
|
||||||
|
class="text-reset">
|
||||||
|
Licenza d'uso
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</footer>
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<!-- NAVBAR -->
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light">
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<!-- Brand -->
|
||||||
|
<a class="navbar-brand" href="/">
|
||||||
|
<img src="./../baseImg/logo_small.png" class="navbar-brand-img" alt="Adriatica Sistemi - Gestione Spiaggia">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Toggler -->
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Collapse -->
|
||||||
|
<div class="collapse navbar-collapse" id="navbarCollapse">
|
||||||
|
|
||||||
|
<!-- Toggler -->
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fe fe-x"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Navigation -->
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" id="navbarLandings" href="/">
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" id="navbarLandings" href="<?= $this->url(array('action' => 'caratteristiche'), 'it', true); ?>">
|
||||||
|
Caratteristiche
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" id="navbarLandings" href="<?= $this->url(array('action' => 'assistenza'), 'it', true); ?>">
|
||||||
|
Assistenza
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" id="navbarLandings" href="<?= $this->url(array('action' => 'acquista'), 'it', true); ?>">
|
||||||
|
Acquista
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a class="navbar-btn btn btn-sm btn-primary lift ms-auto" href="<?= $this->url(['action' => 'downloadsoftware'], 'it', true); ?>">
|
||||||
|
Scaricalo Ora
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<style>
|
||||||
|
/** PRIVACY POLICY **/
|
||||||
|
|
||||||
|
.privacy_pol {
|
||||||
|
background-color: #0072B6;
|
||||||
|
color: #FFFFFF;
|
||||||
|
bottom: 0;
|
||||||
|
height: auto;
|
||||||
|
padding: 8px 25px;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy_pol a {
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy_pol a#accept_cookie_policy {
|
||||||
|
max-width: 250px;
|
||||||
|
margin-left: 10px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy_pol a.btn {
|
||||||
|
border: 1px solid #FFF;
|
||||||
|
border-radius: 0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privacy_pol a.btn:hover {
|
||||||
|
background-color: #FFF;
|
||||||
|
color: #0072B6;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="privacy_pol">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-md-12 text-center">
|
||||||
|
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento
|
||||||
|
ed utili alle finalità illustrate nella <a href="<?= $this->url(array('action'=>'privacy'),'it',true); ?>"
|
||||||
|
target="_blank">privacy policy</a> e <a href="<?= $this->url(array('action'=>'cookiepolicy'),'it',true); ?>"
|
||||||
|
target="_blank">cookie policy</a>
|
||||||
|
<a id="accept_cookie_policy" class="btn btn-sm"><i class="fa fa-check fa-fw"></i> Ok,acconsento</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('#accept_cookie_policy').click(function (link) {
|
||||||
|
link.preventDefault();
|
||||||
|
var d = new Date();
|
||||||
|
d.setTime(d.getTime() + (5 * 24 * 60 * 60 * 1000));
|
||||||
|
var expires = "expires=" + d.toUTCString();
|
||||||
|
document.cookie = "displayCookiePolicy=false; " + expires + "; path=/";
|
||||||
|
$('.privacy_pol').slideUp();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_FcmFirebase extends App_Model_FcmFirebase
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendNotificaOrdine($dati, $token)
|
||||||
|
{
|
||||||
|
|
||||||
|
$corpoNotifica = array(
|
||||||
|
'notification' => array(
|
||||||
|
'title' => $dati['Title'],
|
||||||
|
'body' => $dati['Message'],
|
||||||
|
'sound' => 'default',
|
||||||
|
//'badge' => '1'
|
||||||
|
),
|
||||||
|
'to' => $token
|
||||||
|
);
|
||||||
|
|
||||||
|
if($dati){
|
||||||
|
$corpoNotifica['data'] = array(
|
||||||
|
'action' => '',
|
||||||
|
'url' => ''
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->postCall($corpoNotifica);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Application_Model_Generic
|
||||||
|
*/
|
||||||
|
class Application_Model_Generic extends App_Model_AbstractGeneric
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application_Model_Generic constructor.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_MongoResources_Generic extends App_Model_MongoResource_Abstract
|
||||||
|
{
|
||||||
|
protected $_name = 'Generic';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'Nome';
|
||||||
|
protected $_defaultTipoOrder = 'ASC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_Abstract extends App_Model_Resource_Abstract
|
||||||
|
{
|
||||||
|
protected $_name = 'abstract';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'id';
|
||||||
|
protected $_defaultTipoOrder = 'DESC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_Accesslog extends App_Model_Resource_Abstract {
|
||||||
|
protected $_name = 'access_log';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'data';
|
||||||
|
protected $_defaultTipoOrder = 'DESC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_EmailTemplate extends App_Model_Resource_Abstract
|
||||||
|
{
|
||||||
|
protected $_name = 'email_template';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'Codice';
|
||||||
|
protected $_defaultTipoOrder = 'ASC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_Errorlog extends App_Model_Resource_Abstract {
|
||||||
|
|
||||||
|
protected $_name = "error_log";
|
||||||
|
protected $_primary = "id";
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'data';
|
||||||
|
protected $_defaultTipoOrder = 'DESC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
public function getNotificationList(){
|
||||||
|
$stmt = $this -> _db -> query("SELECT 'error' as 'tipo',msg as 'text',id FROM `error_log` WHERE state = '1'");
|
||||||
|
return $stmt -> fetchAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getNotifyList(){
|
||||||
|
$stmt = $this -> _db -> query("SELECT 'error' as 'tipo',id,notify FROM `error_log` WHERE state = '1' AND notify = '0'");
|
||||||
|
return $stmt -> fetchAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_Users extends App_Model_Resource_Abstract {
|
||||||
|
|
||||||
|
protected $_name = 'users';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'RagioneSociale';
|
||||||
|
protected $_defaultTipoOrder = 'ASC';
|
||||||
|
|
||||||
|
protected $_defaultSelectColumns = 'id,username,role,UltimoLogin,UltimoAccesso,stato,RagioneSociale';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Resources_VariabiliSito extends App_Model_Resource_Abstract {
|
||||||
|
|
||||||
|
protected $_name = 'variabili_sito';
|
||||||
|
protected $_primary = 'id';
|
||||||
|
|
||||||
|
protected $_defaultOrder = 'Nome';
|
||||||
|
protected $_defaultTipoOrder = 'ASC';
|
||||||
|
|
||||||
|
/************** METODI SPECIALIZZATI *******************/
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_Rest extends App_Model_AbstractRest {
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Application_Model_RestResources_Generic extends App_Model_AbstractRest {
|
||||||
|
|
||||||
|
protected $_risorsa = "generic";
|
||||||
|
|
||||||
|
public function __init() {
|
||||||
|
$this->init($this->_risorsa);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getById($id){
|
||||||
|
return parent::getById($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteById($id){
|
||||||
|
return parent::deleteById($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getList($paged = null,$count = null,$order = null){
|
||||||
|
return parent::getList($paged,$count,$order);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFiltered($paged = null,$count = null,$order = null,$where = null){
|
||||||
|
return parent::getFiltered($paged,$count,$order,$where);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateAccessoCloud($params){
|
||||||
|
$data = parent::getByMethod('nomeMetodoCustom',$params);
|
||||||
|
return $data['data'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description of Bootstrap
|
||||||
|
*/
|
||||||
|
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
|
||||||
|
{
|
||||||
|
public function _init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function _initPersonalRouter(){
|
||||||
|
|
||||||
|
$router= Zend_Controller_Front::getInstance()->getRouter();
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'admin',
|
||||||
|
new Zend_Controller_Router_Route('admin/:controller/:action',
|
||||||
|
array(
|
||||||
|
'module'=>'admin',
|
||||||
|
'controller'=>'index',
|
||||||
|
'action'=>'index'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Admin_ErrorController extends Zend_Controller_Action
|
||||||
|
{
|
||||||
|
|
||||||
|
public function errorAction()
|
||||||
|
{
|
||||||
|
$this->view->menuitem = 'home';
|
||||||
|
$this->view->pageName = 'Ops, si è verificato un errore';
|
||||||
|
|
||||||
|
$errors = $this->_getParam('error_handler');
|
||||||
|
|
||||||
|
if (!$errors || !$errors instanceof ArrayObject) {
|
||||||
|
$this->view->message = 'You have reached the error page';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($errors->type) {
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
|
||||||
|
// 404 error -- controller or action not found
|
||||||
|
$this->getResponse()->setHttpResponseCode(404);
|
||||||
|
$priority = Zend_Log::NOTICE;
|
||||||
|
$this->view->error_code = '404';
|
||||||
|
$this->view->message = 'La pagina richiesta non è stata trovata';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// application error
|
||||||
|
$this->getResponse()->setHttpResponseCode(500);
|
||||||
|
$priority = Zend_Log::CRIT;
|
||||||
|
$this->view->error_code = '500';
|
||||||
|
$this->view->message = 'Errore Applicazione';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log exception, if logger available
|
||||||
|
if ($log = $this->getLog()) {
|
||||||
|
$log->log($this->view->message, $priority, $errors->exception);
|
||||||
|
$log->log('Request Parameters', $priority, $errors->request->getParams());
|
||||||
|
}
|
||||||
|
|
||||||
|
// conditionally display exceptions
|
||||||
|
if ($this->getInvokeArg('displayExceptions') == true) {
|
||||||
|
$this->view->exception = $errors->exception;
|
||||||
|
}
|
||||||
|
print_r($errors->exception->getMessage());
|
||||||
|
|
||||||
|
$this->view->request = $errors->request;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLog()
|
||||||
|
{
|
||||||
|
$bootstrap = $this->getInvokeArg('bootstrap');
|
||||||
|
if (!$bootstrap->hasResource('Log')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$log = $bootstrap->getResource('Log');
|
||||||
|
return $log;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,280 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Admin_IndexController extends App_Controller_Sections_Section
|
||||||
|
{
|
||||||
|
|
||||||
|
public $_configs;
|
||||||
|
|
||||||
|
protected Application_Model_Generic $_genericModel;
|
||||||
|
protected $_authService;
|
||||||
|
protected $_ipManager;
|
||||||
|
protected $_parametriSito;
|
||||||
|
protected $_datiAziendali;
|
||||||
|
protected $_VariabiliSito;
|
||||||
|
|
||||||
|
public $_MENUITEM;
|
||||||
|
public $_PAGETITLE;
|
||||||
|
public $_ICONTITLE;
|
||||||
|
public $_SECONDLEVEL;
|
||||||
|
public $_SECONDLEVEL_ACTION;
|
||||||
|
public $_SIDEBAR_COLLAPSED;
|
||||||
|
|
||||||
|
public $_EVENTLOADER;
|
||||||
|
|
||||||
|
public $_ANGULARJS_MODULE_NAME;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->_helper->layout->setLayout('admin');
|
||||||
|
|
||||||
|
$this->_authService = new App_Service_Auth();
|
||||||
|
$this->_genericModel = new Application_Model_Generic();
|
||||||
|
$this->_configs = new App_Service_ConfigManager();
|
||||||
|
$this->_ipManager = new App_Service_IpManager();
|
||||||
|
|
||||||
|
$this->_parametriSito = new App_Service_JsonConfiguration('parametri_sito');
|
||||||
|
$this->_datiAziendali = new App_Service_JsonConfiguration('dati_aziendali');
|
||||||
|
$this->_VariabiliSito = new App_Service_VariabiliSito();
|
||||||
|
|
||||||
|
$this->_MENUITEM = 'dashboard';
|
||||||
|
$this->_PAGETITLE = 'DashBoard';
|
||||||
|
$this->_ICONTITLE = 'fa-dashboard';
|
||||||
|
|
||||||
|
$this->_SECONDLEVEL = null;
|
||||||
|
$this->_SECONDLEVEL_ACTION = null;
|
||||||
|
|
||||||
|
$this->_EVENTLOADER = FALSE;
|
||||||
|
$this->_ANGULARJS_MODULE_NAME = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preDispatch()
|
||||||
|
{
|
||||||
|
$this->_SIDEBAR_COLLAPSED = boolval($_COOKIE['ui_sidebar_collapsed']) || false;
|
||||||
|
|
||||||
|
$this->view->enableTestSdk = $this->_ipManager->controllaAbilitazioneTestSdk();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postDispatch()
|
||||||
|
{
|
||||||
|
$this->view->controller = $this->getRequest()->getControllerName();
|
||||||
|
$this->view->action = $this->getRequest()->getActionName();
|
||||||
|
|
||||||
|
$this->view->menu = $this->_MENUITEM;
|
||||||
|
$this->view->pageTitle = $this->_PAGETITLE;
|
||||||
|
$this->view->iconTitle = $this->_ICONTITLE;
|
||||||
|
|
||||||
|
$this->view->secondLevel = $this->_SECONDLEVEL;
|
||||||
|
$this->view->secondLevelAction = $this->_SECONDLEVEL_ACTION;
|
||||||
|
|
||||||
|
$this->view->eventLoader = $this->_EVENTLOADER;
|
||||||
|
$this->view->sideBarCollapsed = $this->_SIDEBAR_COLLAPSED;
|
||||||
|
|
||||||
|
$this->view->angularModuleName = $this->_ANGULARJS_MODULE_NAME;
|
||||||
|
|
||||||
|
$this->view->parametriSito = $this->_parametriSito->getAllParams();
|
||||||
|
$this->view->datiAziendali = $this->_datiAziendali->getAllParams();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logoutAction()
|
||||||
|
{
|
||||||
|
$this->_authService->clear();
|
||||||
|
|
||||||
|
return $this->_helper->redirector('index', 'index', 'default');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function indexAction()
|
||||||
|
{
|
||||||
|
$this->_EVENTLOADER = 'dashboard';
|
||||||
|
// $this->_ANGULARJS_MODULE_NAME = 'dashboard';
|
||||||
|
|
||||||
|
$this->render('dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function infoAction(){
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
|
||||||
|
phpinfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*===============================================================================================
|
||||||
|
* =========================== GESTIONE SETTINGS ============================
|
||||||
|
* =============================================================================================*/
|
||||||
|
|
||||||
|
public function settingsAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_MENUITEM = "settings";
|
||||||
|
$this->_PAGETITLE = 'Impostazioni';
|
||||||
|
$this->_ICONTITLE = 'fa-cogs';
|
||||||
|
|
||||||
|
$this->_EVENTLOADER = 'settings';
|
||||||
|
$this->view->assign($this->_configs->getAllParam());
|
||||||
|
$this->view->assign($this->_parametriSito->getAllParams());
|
||||||
|
|
||||||
|
$this->view->tabname = (!$_COOKIE['settings_tabname']) ? 'generico' : $_COOKIE['settings_tabname'];
|
||||||
|
$this->view->email_templates = $this->_genericModel->getList('EmailTemplate', null, null);
|
||||||
|
|
||||||
|
$this->view->popover_default_param_content = $this->getDefaultParamsPopoverTemplate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function savesettingsAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
if ($this->getRequest()->isXmlHttpRequest()) {
|
||||||
|
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
|
||||||
|
$params = $this->getAllParams();
|
||||||
|
|
||||||
|
unset($params['controller']);
|
||||||
|
unset($params['module']);
|
||||||
|
unset($params['action']);
|
||||||
|
unset($params['section']);
|
||||||
|
|
||||||
|
$response = array();
|
||||||
|
switch ($this->_getParam('section')) {
|
||||||
|
case 'generico':
|
||||||
|
$params['interrutore_sito'] = (isset($params['interrutore_sito'])) ? 'on' : 'off';
|
||||||
|
$params['interrutore_services'] = (isset($params['interrutore_services'])) ? 'on' : 'off';
|
||||||
|
$params['interrutore_webservices_v1'] = (isset($params['interrutore_webservices_v1'])) ? 'on' : 'off';
|
||||||
|
$response = $this->saveConfigParams($params);
|
||||||
|
break;
|
||||||
|
case 'sito':
|
||||||
|
foreach ($params as $key => $value) {
|
||||||
|
$this->_parametriSito->set($key, $value);
|
||||||
|
$response[$key] = 'OK';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'test':
|
||||||
|
$params['interrutore_testdb'] = (isset($params['interrutore_testdb'])) ? 'on' : 'off';
|
||||||
|
$params['interrutore_paypal_test'] = (isset($params['interrutore_paypal_test'])) ? 'on' : 'off';
|
||||||
|
$params['interrutore_stripe_test'] = (isset($params['interrutore_stripe_test'])) ? 'on' : 'off';
|
||||||
|
$response = $this->saveConfigParams($params);
|
||||||
|
break;
|
||||||
|
case 'accesso':
|
||||||
|
$response = $this->saveConfigParams($params);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->check_has_error_value($response)) {
|
||||||
|
$response['stato'] = 'success';
|
||||||
|
} else {
|
||||||
|
$response['stato'] = 'error';
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = Zend_Json::encode($response);
|
||||||
|
$this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody($response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function savenewpasswordAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
if ($this->getRequest()->isXmlHttpRequest()) {
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
$params = $this->getAllParams();
|
||||||
|
unset($params['controller']);
|
||||||
|
unset($params['module']);
|
||||||
|
unset($params['action']);
|
||||||
|
$response = array();
|
||||||
|
if (!$params['vecchia_pwd']) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'Inserire la vecchia password')));
|
||||||
|
}
|
||||||
|
if (!$params['nuova_pwd']) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'Inserire la nuova password')));
|
||||||
|
}
|
||||||
|
if (!$params['nuova_pwd2']) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'Ripeti la nuova password')));
|
||||||
|
}
|
||||||
|
if (strtolower($params['nuova_pwd']) == strtolower($params['vecchia_pwd'])) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'La nuova password non può essere uguale a quella corrente')));
|
||||||
|
}
|
||||||
|
if (strtolower($params['nuova_pwd']) != strtolower($params['nuova_pwd2'])) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'Le password non coincidono')));
|
||||||
|
}
|
||||||
|
$admin = $this->_genericModel->getByColumnName('Users', 'username', 'admin');
|
||||||
|
//Confronto le password
|
||||||
|
$passwordSalt = Zend_Registry::get('ENVIROMENTS')->get('password_salt');
|
||||||
|
if (md5($passwordSalt . $params['vecchia_pwd']) != $admin['password']) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => false, 'message' => 'La vecchia password è errata', 'resetForm' => true)));
|
||||||
|
}
|
||||||
|
//Salvo la nuova password
|
||||||
|
$this->_genericModel->update('Users', $admin['id'], array('password' => md5($passwordSalt . $params['nuova_pwd'])));
|
||||||
|
$this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('status' => true)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function checkNullValue($value)
|
||||||
|
{
|
||||||
|
return (!$value || strtolower($value) === 'null') ? null : $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*===============================================================================================
|
||||||
|
* =========================== FUNZIONI PRIVATE DEL CONTROLLER =========================
|
||||||
|
* =============================================================================================*/
|
||||||
|
|
||||||
|
public function getMainModel()
|
||||||
|
{
|
||||||
|
return $this->_genericModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function saveConfigParams($params)
|
||||||
|
{
|
||||||
|
|
||||||
|
$response = array();
|
||||||
|
foreach ($params as $key => $value) {
|
||||||
|
$valori_non_null = array();
|
||||||
|
if (!$value && in_array($key, $valori_non_null)) {
|
||||||
|
$response[$key] = 'Errore';
|
||||||
|
} else {
|
||||||
|
$this->_configs->set($key, $value);
|
||||||
|
$response[$key] = 'OK';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->_configs->write();
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scorre l'array se trova un valore riconosciuto come errore restituisce false altrimenti true
|
||||||
|
* @param array $array
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
protected function check_has_error_value($array)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach ($array as $key => $value) {
|
||||||
|
if ($value == 'Error' || $value == 'Errore' || $value == '0') {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Funzione che genera le indicazioni dei valori dei parametri di default leggendoli dal file di configurazione
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDefaultParamsPopoverTemplate()
|
||||||
|
{
|
||||||
|
|
||||||
|
$html = '<div><small class="text-danger">Inserire il nome variabile senza gli apici</small><br>';
|
||||||
|
//$html .= '<table class="table table-bordered table-striped table-popover" ><thead><tr><th>Variabile</th><th>Valore</th></tr></thead><tbody>';
|
||||||
|
$params = $this->_datiAziendali->getAllParams();
|
||||||
|
foreach ($params as $key => $val) {
|
||||||
|
$html .= "<b>%default_" . $key . "%<br> - <small>" . $val . "</small></br>";
|
||||||
|
}
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} //Close Class
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-sm-12">
|
||||||
|
|
||||||
|
<div class="not-found-404">
|
||||||
|
|
||||||
|
<?php if (isset($this->error_code)): ?>
|
||||||
|
<h2>
|
||||||
|
<?= $this->error_code; ?>
|
||||||
|
<i class="iscon-remove-sign skin-text"></i>
|
||||||
|
</h2>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<h5>Clicca <a class="text-center" href="<?= $this->url(array(),'default',true); ?>">qui</a> per tornare alla home del sito.</h5>
|
||||||
|
|
||||||
|
<?php if (isset($this->exception)): ?>
|
||||||
|
|
||||||
|
<h5>Exception information:</h5>
|
||||||
|
<h5>
|
||||||
|
<b>Message:</b> <?php echo $this->exception->getMessage() ?>
|
||||||
|
</h5>
|
||||||
|
|
||||||
|
<h3>Stack trace:</h3>
|
||||||
|
<pre class="text-left"><?php echo $this->exception->getTraceAsString() ?></pre>
|
||||||
|
|
||||||
|
<h3>Request Parameters:</h3>
|
||||||
|
<pre class="text-left"><?php echo $this->escape(var_export($this->request->getParams(), true)) ?></pre>
|
||||||
|
|
||||||
|
<?php endif ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?php if ($this->pageCount > 1): ?>
|
||||||
|
<ul class="pagination pagination-sm float-right">
|
||||||
|
<!-- Link alla prima pagina -->
|
||||||
|
<?php if (isset($this->previous)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> first,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',true); ?>"><i class="fa fa-angle-double-left"></i></a>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="page-item disabled"><a class="page-link" href="#"><i class="fa fa-angle-double-left"></i></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link alla pagina precedente -->
|
||||||
|
<?php if (isset($this->previous)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> previous,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',true); ?>"><i class="fa fa-angle-left"></i></a><li>
|
||||||
|
<?php else: ?>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link pagina numerata -->
|
||||||
|
<?php foreach ($this->pagesInRange as $page): ?>
|
||||||
|
<?php if ($page != $this->current): ?>
|
||||||
|
<li class="page-item" style="font-size: 10px;"><a class="page-link" href="<?php echo $this -> url(array('page' => $page,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>">
|
||||||
|
<?php echo $page; ?>
|
||||||
|
</a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="active page-item" style="font-size: 10px;"><a class="page-link" href="<?php echo $this -> url(array('page' => $page,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>"><?php echo $page; ?></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<!-- Link alla pagina successiva -->
|
||||||
|
<?php if (isset($this->next)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> next,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>"><i class="fa fa-angle-right"></i></a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link all'ultima pagina -->
|
||||||
|
<?php if (isset($this->next)): ?>
|
||||||
|
<li class="page-item" style="margin-right:10px;"><a class="page-link" href="<?= $this -> url(array('page' => $this -> last,'count' => $this -> count,'action'=>$this->action),'filterpager',false); ?>"><i class="fa fa-angle-double-right"></i></a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="page-item disabled"><a class="page-link" href="#"><i class="fa fa-angle-double-right"></i></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="text-counter">
|
||||||
|
dal: <?php echo $this -> firstItemNumber; ?> - <?= $this -> lastItemNumber; ?> di <?= $this -> totalItemCount; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<?php endif; ?>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<div ng-controller="DashboardController">
|
||||||
|
|
||||||
|
<div class="content-header">
|
||||||
|
<h1>
|
||||||
|
Gestione Spiaggia
|
||||||
|
<small class="text-muted">Version <?= $this->version; ?></small>
|
||||||
|
</h1>
|
||||||
|
<ol class="breadcrumb top0">
|
||||||
|
<li class="breadcrumb-item"><a href="#"><i class="fa fa-tachometer-alt fa-fw"></i> Home</a></li>
|
||||||
|
<li class="breadcrumb-item active">Dashboard</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="content">
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
<div class="modal fade" id="modal" data-form="modalForm" tabindex="-1" data-backdrop="false"
|
||||||
|
role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
|
||||||
|
<div id="modal-loader" class="overlay d-none justify-content-center align-items-center">
|
||||||
|
<i class="fas fa-2x fa-sync fa-spin"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title flot-left" id="myModalLabel"><i
|
||||||
|
class="fa fa-fw <?= ($this->iconTitle) ? $this->iconTitle : 'fa-pencil'; ?> modal_icon"></i>
|
||||||
|
Email Template</h5>
|
||||||
|
<button id="close-modal" type="button" class="close float-right" data-dismiss="modal"
|
||||||
|
aria-hidden="true">×
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body pdb-0">
|
||||||
|
|
||||||
|
<form id="modalForm" name="modalForm" class="compact-form no-border-radius"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'salva' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-get="<?= $this->url(array('controller' => 'index', 'action' => 'get' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-delete="<?= $this->url(array('controller' => 'index', 'action' => 'delete' . $this->resourceName, 'id' => $this->id), $this->moduleName, true); ?>"
|
||||||
|
method="post" role="form">
|
||||||
|
|
||||||
|
<input type="hidden" value="" class="form-control" id="id" name="id" form="modalForm" required>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div id="ErrorDescription" class="alert alert-warning alert-sm d-none"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Codice" class="form-group row">
|
||||||
|
<label for="Codice" class="col-sm-2 col-form-label">Codice</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" value="" class="form-control" id="Codice" placeholder="" name="Codice">
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Nome" class="form-group row">
|
||||||
|
<label for="Nome" class="col-sm-2 col-form-label">Nome</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" value="" class="form-control" id="Nome" placeholder="" name="Nome">
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Tipologia" class="form-group row">
|
||||||
|
<label for="Tipologia" class="col-sm-2 col-form-label">Tipologia</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select id="Tipologia" name="Tipologia" class="form-control">
|
||||||
|
<option value="">Scegli...</option>
|
||||||
|
<option value="HTML">Contenuto HTML</option>
|
||||||
|
<option value="TEXT">Contenuto solo testo</option>
|
||||||
|
</select>
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Footer" class="form-group row">
|
||||||
|
<label for="Footer" class="col-sm-2 col-form-label">Aggiungi footer:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select id="Footer" name="Footer" class="form-control">
|
||||||
|
<option value="">Scegli...</option>
|
||||||
|
<option value="1">Si</option>
|
||||||
|
<option value="0">No</option>
|
||||||
|
</select>
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Oggetto" class="form-group row">
|
||||||
|
<label for="Oggetto" class="col-sm-2 col-form-label">Oggetto email:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" value="" class="form-control" id="Oggetto" placeholder=""
|
||||||
|
name="Oggetto">
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<div id="Testo" class="form-group">
|
||||||
|
<textarea id="Testo" name="Testo" class="form-control summernote" rows="10"></textarea>
|
||||||
|
<!-- Contenitore per la descrizione degli errori -->
|
||||||
|
<div id="input-error" class="label label-danger hidden"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="undo" class="btn bg-gray pull-left" data-dismiss="modal"><i
|
||||||
|
class="fa fa-times"></i>
|
||||||
|
Chiudi
|
||||||
|
</button>
|
||||||
|
<button type="button" id="save" op="insert" class="btn btn-brand"><i class="fa fa-save"></i>
|
||||||
|
Salva
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
<!-- Post Modal Form -->
|
||||||
|
<div class="modal fade" id="filterModal" data-form="filterForm" tabindex="-1" role="dialog"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="myModalLabel"><i class="fa fa-filter float-left modal_icon"></i>
|
||||||
|
Ricerca <?= ucfirst($this->resourceName); ?></h5>
|
||||||
|
<button id="close-modal" type="button" class="close float-right" data-dismiss="modal"
|
||||||
|
aria-hidden="true">×
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body">
|
||||||
|
|
||||||
|
<form id="filterForm" name="filterForm"
|
||||||
|
action="<?= $this->url(array('module' => $this->moduleName, 'controller' => 'index', 'action' => 'list' . $this->resourceName, 'count' => $this->count, 'order' => $this->order, 'tipoOrder' => $this->tipoOrder), 'default', true); ?>"
|
||||||
|
method="post" class="form" role="form">
|
||||||
|
|
||||||
|
<input type="hidden" value="" class="form-control" id="id" placeholder="" name="id" required>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-6">
|
||||||
|
<div id="Codice" class="form-group">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4"><label>Codice:</label></div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" id="Codice" name="Codice"
|
||||||
|
value="<?= $this->search_params['Codice']; ?>"
|
||||||
|
class="form-control"/>
|
||||||
|
</div>
|
||||||
|
<div id="input-error"
|
||||||
|
class="col-md-12 form-error hidden label label-danger text-right"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6">
|
||||||
|
<div id="Nome" class="form-group">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 no-padding-right"><label title="">Nome:</label></div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" id="Nome" name="Nome"
|
||||||
|
value="<?= $this->search_params['Nome']; ?>"
|
||||||
|
class="form-control"/>
|
||||||
|
</div>
|
||||||
|
<div id="input-error"
|
||||||
|
class="col-md-12 form-error hidden label label-danger text-right"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div id="Oggetto" class="form-group">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-2 no-padding-right"><label title="">Oggetto:</label></div>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<input type="text" id="Oggetto" name="Oggetto"
|
||||||
|
value="<?= $this->search_params['Oggetto']; ?>"
|
||||||
|
class="form-control"/>
|
||||||
|
</div>
|
||||||
|
<div id="input-error"
|
||||||
|
class="col-md-12 form-error hidden label label-danger text-right"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="resetFiltri" class="btn btn-warning"><i class="fa fa-eraser"></i>
|
||||||
|
Reset Filtri
|
||||||
|
</button>
|
||||||
|
<button type="button" id="undo" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-times"></i>
|
||||||
|
Annulla
|
||||||
|
</button>
|
||||||
|
<button type="submit" id="filtra" form="filterForm" class="btn btn-success"><i class="fa fa-filter"></i>
|
||||||
|
Cerca
|
||||||
|
</button>
|
||||||
|
<input type="submit" form="filterForm" class="d-none">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<div class="col-12 col-md-4 no-padding-r-sm">
|
||||||
|
<input type="text" id="Codice_search" name="Codice"
|
||||||
|
value="<?= $this->search_params['Codice']; ?>"
|
||||||
|
class="form-control no-border-right-sm" placeholder="Codice"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 no-padding-r-l-sm">
|
||||||
|
<input type="text" id="Nome_search" name="Nome" value="<?= $this->search_params['Nome']; ?>"
|
||||||
|
class="form-control no-border-r-l-sm" placeholder="Nome"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-2 no-padding-l-sm">
|
||||||
|
<?php $totFilter = count($this->CleanFiltersParam($this->search_params)); ?>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="submit" title="Cerca" class="btn btn-brand btn-flat"><i
|
||||||
|
class="fa fa-search fa-fw"></i></button>
|
||||||
|
<a href="<?= $this->url(array('module' => $this->moduleName, 'action' => 'list' . $this->resourceName, 'reset' => 'true'), 'default', true); ?>"
|
||||||
|
data-toggle="tooltip" data-container="body" data-placement="right"
|
||||||
|
title="Reset (Filtri attivi: <?= $totFilter; ?> )"
|
||||||
|
class="btn btn-brand btn-flat"
|
||||||
|
type="button"><i class="fa fa-times fa-fw"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
<div class="box box-no-border box-no-shadow pd10 mb-0">
|
||||||
|
|
||||||
|
<div class="box-header">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!--FORM DI RICERCA-->
|
||||||
|
<div class="float-left box-title search-left hidden-xs">
|
||||||
|
|
||||||
|
<form class="form-horizontal" id="searchForm" name="searchForm" method="post"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?= $this->render("index/$this->resourceName/_searchBlock.phtml"); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" id="order" name="order" class="hidden" value="<?= $this->order; ?>"/>
|
||||||
|
<input type="hidden" id="tipoOrder" name="tipoOrder" class="hidden" value="<?= $this->tipoOrder; ?>"/>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--BLOCCO FUNZIONI LATO SINISTRA-->
|
||||||
|
<div class="float-right box-title search-right">
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
|
||||||
|
<?php if ($this->isActiveNewInsert): ?>
|
||||||
|
<button data-toggle="tooltip" title="Nuovo" id="new" class="btn btn-brand btn-flat" type="button"
|
||||||
|
data-target="#Modal" data-toggle="modal"><i class="fa fa-plus"></i></button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<button data-toggle="tooltip" title="Filtra" id="filterData" class="btn btn-brand btn-flat"
|
||||||
|
type="button" data-target="#filterModal" data-toggle="modal">
|
||||||
|
<?php if ($totFilter > 0): ?>
|
||||||
|
<span class="badge bg-red"><?= $totFilter; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
<i class="fa fa-filter"></i>
|
||||||
|
</button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-flat btn-brand dropdown-toggle" type="button" id="dropdownMenuButton"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="d-none-xs">Selezionati</span> <span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- INIZIO TABELLA -->
|
||||||
|
|
||||||
|
<div class="box-body table-responsive table-wrapper">
|
||||||
|
<table class="table table-border table-striped flot-header">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<?= $this->render("index/$this->resourceName/th.phtml") ?>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="tablebody">
|
||||||
|
<?php if (count($this->table) > 0): ?>
|
||||||
|
<?php foreach ($this->table as $key => $value): ?>
|
||||||
|
<?= $this->partial("index/$this->resourceName/td.phtml", $value) ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<tr>
|
||||||
|
<?php if ($totFilter <= 0): ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="5">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun record presente
|
||||||
|
</td>
|
||||||
|
<?php else: ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="5">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun risultato trovato in base alla ricerca
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box-footer clearfix">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!--FUNZIONE MULTIPLE-->
|
||||||
|
<div class="col-4 col-xs-12">
|
||||||
|
<div class="btn-group btn-group-sm float-left dropup d-none-xs dropdown-multifunction-down">
|
||||||
|
<button class="btn btn-default btn-flat" type="button">
|
||||||
|
Selezionati
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-default btn-flat dropdown-toggle" data-toggle="dropdown" type="button">
|
||||||
|
<span class="caret"></span>
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-8 col-xs-12">
|
||||||
|
<!--PAGINATOR FOOTER-->
|
||||||
|
<?php if ($this->table instanceof Zend_Paginator): ?>
|
||||||
|
<?= $this->paginationControl($this->table, 'Jumping', 'index/_paginator.phtml', array('action' => $this->action, 'count' => $this->count, 'moduleName'=>$this->moduleName)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="pagination-counter float-right">
|
||||||
|
<form name="paginationCounter"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName, 'page' => $this->page, 'count' => $this->count), $this->moduleName, false); ?>"
|
||||||
|
class="" method="post" role="form">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<label class="text-right d-none-xs mb-1" for="count">
|
||||||
|
<?php if ($this->totFiltrati != $this->totElementi): ?>
|
||||||
|
<span>Filtrati <?= $this->totFiltrati ?> su <?= $this->totElementi; ?> totali </span>
|
||||||
|
<?php else: ?>
|
||||||
|
<span>Tot. <?= $this->totElementi; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" class="form-control"
|
||||||
|
id="count" aria-describedby="inputGroup-sizing-sm"
|
||||||
|
value="" placeholder="<?= $this->count; ?>" name="count"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveModalDetail): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modal.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modalFilter.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->idDetail > 0): ?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
edit(<?= $this->idDetail; ?>);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<tr data-id="<?= $this->id ?>">
|
||||||
|
<td class="text-center"><input type="checkbox" value="<?= $this->id ?>" name="select-elements[]"
|
||||||
|
id="select-elements"></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<a href="#" id="editLink"><?= $this->Codice; ?></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<?= $this->Codice; ?>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<div class="text-center">
|
||||||
|
<button id="edit" class="btn btn-sm btn-brand btn-flat" type="button" data-toggle="tooltip"
|
||||||
|
data-container="body" title="Apri Scheda">
|
||||||
|
<span class="far fa-file fa-fw"></span>
|
||||||
|
</button>
|
||||||
|
<button id="delete" class="btn btn-sm bg-gray btn-flat" type="button" data-toggle="tooltip"
|
||||||
|
data-container="body" title="Elimina">
|
||||||
|
<span class="fa fa-trash fa-fw"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<tr>
|
||||||
|
<th style="width:60px;" class="text-center">
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-default btn-sm dropdown-toggle dropdown-icon" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="select_all" class="dropdown-item" href="#"><i class="far fa-check-square fa-fw"></i> Tutti</a>
|
||||||
|
<a id="deselect_all" class="dropdown-item" href="#"><i class="far fa-square fa-fw"></i> Nessuno</a>
|
||||||
|
<a id="invert_all" class="dropdown-item" href="#"><i class="fa fa-check-square fa-fw"></i> Inverti</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th data-ord="Codice" width="150px">Codice</th>
|
||||||
|
<th data-ord="Nome">Nome</th>
|
||||||
|
<th width="100px"></th>
|
||||||
|
</tr>
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card card-brand card-outline">
|
||||||
|
|
||||||
|
<div class="card-header p-2">
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<li class="nav-item"><a class="nav-link setting-tab <?= ($this->tabname == 'generico') ? "active" : ""; ?>" href="#generico" data-toggle="tab"><i class="fa fa-wrench fa-1x"></i> Generale</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link setting-tab <?= ($this->tabname == 'sito') ? "active" : ""; ?>" href="#sito" data-toggle="tab"><i class="fa fa-code fa-1x"></i> Parametri Sito</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link setting-tab <?= ($this->tabname == 'accesso') ? "active" : ""; ?>" href="#accesso" data-toggle="tab"><i class="fa fa-fw fa-key"></i> Accesso</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link setting-tab <?= ($this->tabname == 'test') ? "active" : ""; ?>" href="#test" data-toggle="tab"><i class="fa fa-flask fa-1x"></i> Ambiente Test</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="tab-content">
|
||||||
|
|
||||||
|
<div class="tab-pane <?= ($this->tabname == 'generico') ? 'active' : ''; ?>" id="generico">
|
||||||
|
<?= $this->render("index/settings_tabs/generali.phtml") ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane <?= ($this->tabname == 'sito') ? 'active' : ''; ?>" id="sito">
|
||||||
|
<?= $this->render("index/settings_tabs/sito.phtml") ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane <?= ($this->tabname == 'accesso') ? 'active' : ''; ?>" id="accesso">
|
||||||
|
<?= $this->render("index/settings_tabs/accesso.phtml") ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane <?= ($this->tabname == 'test') ? 'active' : ''; ?>" id="test">
|
||||||
|
<?= $this->render("index/settings_tabs/test.phtml") ?>
|
||||||
|
</div>
|
||||||
|
<!-- /.tab-pane -->
|
||||||
|
</div>
|
||||||
|
<!-- /.tab-content -->
|
||||||
|
</div><!-- /.card-body -->
|
||||||
|
|
||||||
|
<div class="card-footer">
|
||||||
|
<a href="<?= $this->url(array(), 'admin', true); ?>">
|
||||||
|
<button id="btn-annulla" class="btn btn-default mr-10" type="button"><i
|
||||||
|
class="fa fa-fw fa-times"></i> Indietro
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="btn btn-brand btn-save" type="button">
|
||||||
|
<i class="fa fa-fw fa-save"></i> Salva
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.nav-tabs-custom -->
|
||||||
|
</div>
|
||||||
|
<!-- /.col -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div><!-- /.container-fluid -->
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<div class="panel panel-body">
|
||||||
|
|
||||||
|
<h4><i class="fa fa-asterisk fa-fw"></i> Password accesso amministratore</h4>
|
||||||
|
|
||||||
|
<div class="well no-shadow col-md-7">
|
||||||
|
<form name="password_form" id="password_form" method="post" autocomplete="off"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'savenewpassword'), 'admin', false); ?>">
|
||||||
|
<div class="form-group row" style="margin-top:10px;">
|
||||||
|
|
||||||
|
<label class="col-md-4 control-label">Password corrente</label>
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="password" value="" form="password_form" class="form-control" autocomplete="off"
|
||||||
|
id="vecchia_pwd" placeholder="" name="vecchia_pwd">
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
<label class="col-md-4 control-label">Nuova Password</label>
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="password" value="" class="form-control" form="password_form" autocomplete="off"
|
||||||
|
id="nuova_pwd" placeholder="" name="nuova_pwd">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-4 mt-0 control-label">Ripeti Password</label>
|
||||||
|
|
||||||
|
<div class="col-md-8 mt-0">
|
||||||
|
<input type="password" value="" class="form-control border-top-white" form="password_form"
|
||||||
|
autocomplete="off"
|
||||||
|
id="nuova_pwd2" placeholder="" name="nuova_pwd2">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<button id="btn-new-passoword" form="password_form"
|
||||||
|
class="mt-2 mb-0 btn btn-brand float-right"
|
||||||
|
type="button">
|
||||||
|
<i class="fa fa-fw fa-check"></i> Reimposta Password
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form id="settingsAccesso" name="settingsAccesso"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'savesettings'), 'admin', false); ?>"
|
||||||
|
method="post" class="form-body">
|
||||||
|
|
||||||
|
<input type="hidden" id="section" name="section" value="accesso">
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<div class="panel-body">
|
||||||
|
<form id="settingsGenerico" name="settingsGenerico"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'savesettings'), 'admin', true); ?>"
|
||||||
|
method="post" class="form-body">
|
||||||
|
|
||||||
|
<h4>Configurazioni</h4>
|
||||||
|
|
||||||
|
<input type="hidden" id="section" name="section" value="generico">
|
||||||
|
|
||||||
|
<div class="well no-shadow col-md-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-md-6">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<label class="col-7 control-label">Interrutore Sito</label>
|
||||||
|
<div class="col-5">
|
||||||
|
<input type="checkbox" data-bootstrap-switch class="no-shadow" id="interrutore_sito" name="interrutore_sito" <?= ($this->interrutore_sito == 'on') ? 'checked' : ''; ?>>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div><br>
|
||||||
|
|
||||||
|
<label class="col-md-7 control-label ">Interrutore Services</label>
|
||||||
|
<div class="col-md-5">
|
||||||
|
<input type="checkbox" data-bootstrap-switch class="no-shadow" id="interrutore_services" name="interrutore_services" <?= ($this->interrutore_services == 'on') ? 'checked' : ''; ?>>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
<label class="col-md-7 control-label ">Interrutore Web Services V1</label>
|
||||||
|
<div class="col-md-5">
|
||||||
|
<input type="checkbox" data-bootstrap-switch class="no-shadow" id="interrutore_webservices_v1" name="interrutore_webservices_v1" <?= ($this->interrutore_webservices_v1 == 'on') ? 'checked' : ''; ?>>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-12 col-md-6">
|
||||||
|
<div class="form-group row">
|
||||||
|
|
||||||
|
<label class="col-md-4 control-label">Ip Web Master</label>
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class=" form-control no-shadow" id="ip_master" placeholder=""
|
||||||
|
name="ip_master" value="<?= $this->ip_master; ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"><br></div>
|
||||||
|
|
||||||
|
<label class="col-md-4 control-label">Ip Server</label>
|
||||||
|
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class=" form-control no-shadow" id="ip_server" placeholder=""
|
||||||
|
name="ip_server" value="<?= $this->ip_server; ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div><br>
|
||||||
|
|
||||||
|
<label class="col-md-12 control-label">Altri IP:
|
||||||
|
<small> Il tuo IP attuale è [<?= $_SERVER['REMOTE_ADDR']; ?>]</small> <small>separare con una virgola.</small></label>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<textarea class="form-control no-shadow" id="ip_alternativo" width="100%"
|
||||||
|
placeholder="" name="ip_alternativo" rows="9"><?= $this->ip_alternativo; ?></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4 class="mt-2">Email</h4>
|
||||||
|
|
||||||
|
<div class="well no-shadow col-md-12">
|
||||||
|
<div class="form-group row" style="margin-top:10px;">
|
||||||
|
|
||||||
|
<label class="col-md-2 control-label">Email Principale sito:</label>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<input type="email" value="<?= $this->email_mittente; ?>" class="form-control"
|
||||||
|
id="email_mittente" placeholder="" name="email_mittente">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-2 control-label">Nome / Alias Email:</label>
|
||||||
|
|
||||||
|
<div class="col-md-4">
|
||||||
|
<input type="text" value="<?= $this->email_mittente_nome; ?>"
|
||||||
|
class="form-control" id="email_mittente_nome" placeholder=""
|
||||||
|
name="email_mittente_nome">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row" style="margin-top:10px;">
|
||||||
|
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<hr class="light mt-5">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-3 control-label">Email ricezione primo contatto:
|
||||||
|
<br><small class="text-muted">
|
||||||
|
<i class="fa fa-fw fa-info-circle"></i> Su questo indirizzo
|
||||||
|
riceverai le email di contatto dei clienti.
|
||||||
|
</small></label>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
<input type="text" value="<?= $this->email_primo_contatto; ?>"
|
||||||
|
class="form-control" id="email_primo_contatto" placeholder=""
|
||||||
|
name="email_primo_contatto">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-3 control-label">Template Email di contatto:
|
||||||
|
<br><small class="text-muted">
|
||||||
|
<i class="fa fa-fw fa-info-circle"></i> Scegli la tipologia di email da inviare. I template sono configurabili dal menù a sinistra "Email Template"
|
||||||
|
</small></label>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<select id="email_contatto_template" name="email_contatto_template" value="<?= $this -> email_contatto_template; ?>" class="form-control">
|
||||||
|
<option value="">Scegli...</option>
|
||||||
|
<?php foreach ($this->email_templates as $key => $value): ?>
|
||||||
|
<option value="<?= $value['Codice'] ?>" <?= ($this ->email_contatto_template == $value['Codice']) ? 'selected' : ''; ?> ><?= $value['Codice'] ?> - <?= $value['Nome'] ?> </option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row" style="margin-top:10px;">
|
||||||
|
|
||||||
|
<div class="col-xs-12">
|
||||||
|
<hr class="light mt-5">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-12 control-label">Footer predefinito email:
|
||||||
|
<small class="text-muted" data-container="body" data-toggle="popover" title="Valori Predefiniti"
|
||||||
|
data-placement="top" data-trigger="click | hover" data-html="true"
|
||||||
|
data-max-width="400px" data-class="popover-default-variables"
|
||||||
|
data-content="<?= $this->popover_default_param_content; ?>">
|
||||||
|
<i class="fa fa-info-circle fa-fw"></i> Tabella valori predefiniti
|
||||||
|
</small></label>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<textarea rows="3" class="form-control resize-vertical" id="default_footer_email" placeholder=""
|
||||||
|
name="default_footer_email"><?= $this->default_footer_email; ?></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<div class="panel panel-body" style="margin-bottom: 0;min-height: 207px;">
|
||||||
|
<form id="settingsSito" name="settingsSito"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'savesettings'), 'admin', false); ?>"
|
||||||
|
method="post" class="form-body">
|
||||||
|
|
||||||
|
<input type="hidden" id="section" name="section" value="sito">
|
||||||
|
|
||||||
|
<h4 class="">MetaTag del sito:</h4>
|
||||||
|
|
||||||
|
<div class="well no-shadow col-lg-12">
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
|
||||||
|
<label class="col-lg-12 control-label">Title base del sito: <small class="text-muted">[Il Titolo che compare nella barra del browser]</small></label>
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<input type="text" class=" form-control no-shadow" id="base_title"
|
||||||
|
placeholder=""
|
||||||
|
name="base_title" value="<?= $this->base_title; ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-lg-12 1 mt-1 control-label">Keywords base: <small class="text-muted">[Principali keywords di ricerca del sito]</small></label>
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<input type="text" class=" form-control no-shadow" id="base_keywords"
|
||||||
|
placeholder=""
|
||||||
|
name="base_keywords" value="<?= $this->base_keywords; ?>">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-lg-12 mt-1 control-label">Description della home page: <small class="text-muted">[La Description della Home Page]</small></label>
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<textarea rows="2" type="text" class="form-control resize-vertical" id="home_description"
|
||||||
|
name="home_description"><?= $this->home_description; ?></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<div class="panel panel-body" style="margin-bottom: 0;">
|
||||||
|
<form id="settingsTest" name="settingsTest"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'savesettings'), 'admin', true); ?>"
|
||||||
|
method="post" class="form-body">
|
||||||
|
|
||||||
|
<input type="hidden" id="section" name="section" value="test">
|
||||||
|
|
||||||
|
<h4>Ambiente di Test:</h4>
|
||||||
|
|
||||||
|
<div class="well no-shadow col-md-12">
|
||||||
|
<div class="form-group row">
|
||||||
|
|
||||||
|
<label class="col-md-3 control-label">Attiva Database Test</label>
|
||||||
|
|
||||||
|
<div class="col-md-2">
|
||||||
|
<input type="checkbox" class="no-shadow" data-bootstrap-switch id="interrutore_testdb" placeholder=""
|
||||||
|
name="interrutore_testdb" <?= ($this->interrutore_testdb == 'on') ? 'checked' : ''; ?>>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-md-3 control-label">Email account test</label>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
<input type="text" value="<?= $this->test_email; ?>" class="form-control"
|
||||||
|
id="test_email" placeholder="" name="test_email">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--<h4>Impostazioni Paypal / Stripe:</h4>
|
||||||
|
|
||||||
|
<div class="well no-shadow col-lg-12">
|
||||||
|
<div class="form-group row" style="margin-top:10px;">
|
||||||
|
<label class="col-lg-3 control-label">Attiva PayPal TEST (Solo IP Abilitati):</label>
|
||||||
|
<div class="col-lg-1">
|
||||||
|
<input type="checkbox" class=" no-shadow" id="interrutore_paypal_test" placeholder=""
|
||||||
|
name="interrutore_paypal_test" <? /*= ($this->interrutore_paypal_test == 'on') ? 'checked' : ''; */ ?>>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="col-lg-3 control-label">Attiva Stripe TEST (Solo IP abilitati):</label>
|
||||||
|
<div class="col-lg-1">
|
||||||
|
<input type="checkbox" class=" no-shadow" id="interrutore_stripe_test" placeholder=""
|
||||||
|
name="interrutore_stripe_test" <? /*= ($this->interrutore_stripe_test == 'on') ? 'checked' : ''; */ ?>>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>-->
|
||||||
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
class Auth_Bootstrap extends Zend_Application_Module_Bootstrap
|
||||||
|
{
|
||||||
|
public function _init()
|
||||||
|
{
|
||||||
|
$frontController = Zend_Controller_Front::getInstance();
|
||||||
|
|
||||||
|
$frontController->registerPlugin(new Zend_Controller_Plugin_PutHandler());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Auth_IndexController extends App_Controller_Rest_Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
//ERRORI GENERATI DA QUESTA CLASSE
|
||||||
|
const CREDENTIAL_MOBILE_USER_ERROR = 'V1AUTH_ERROR_CREDENTIAL_MOBILE_USER_ERROR';
|
||||||
|
const EMPTY_DATABASE = 'V1AUTH_ERROR_EMPTY_DATABASE';
|
||||||
|
|
||||||
|
//ERRORI GENERATI DALLO ZEND_AUTH RICODIFICATI DA ME
|
||||||
|
const FAILURE_IDENTITY_NOT_FOUND = 'V1AUTH_ERROR_FAILURE_IDENTITY_NOT_FOUND';
|
||||||
|
const FAILURE_CREDENTIAL_INVALID = 'V1AUTH_ERROR_FAILURE_CREDENTIAL_INVALID';
|
||||||
|
const FAILURE = 'V1AUTH_ERROR_FAILURE';
|
||||||
|
|
||||||
|
protected $_configs;
|
||||||
|
protected $_authService;
|
||||||
|
protected $_model;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->_resourceName = 'Users';
|
||||||
|
|
||||||
|
$this->_authService = new App_Service_WebServiceV1Auth();
|
||||||
|
$this->_model = new Application_Model_Generic();
|
||||||
|
$this->_configs = new App_Service_ConfigManager();
|
||||||
|
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch ($this->_getParam('method')) {
|
||||||
|
case'check-connection':
|
||||||
|
$this->_responseData->data = [];
|
||||||
|
$this->_inArray = true;
|
||||||
|
break;
|
||||||
|
case'ora-server':
|
||||||
|
$format = $this->_getParam('format', 'd/m/Y H:i');
|
||||||
|
$this->_responseData->data = array('data' => date($format));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$this->disableCallAction();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_status = true;
|
||||||
|
$this->sendResponse();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->_status = false;
|
||||||
|
$this->_responseData->message = $e->getMessage();
|
||||||
|
$this->sendResponse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postAction()
|
||||||
|
{
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
|
||||||
|
if (preg_match('/application\/json/', $this->getFrontController()->getRequest()->getHeader('Content-Type'))) {
|
||||||
|
$params = Zend_Json::decode($this->getRequest()->getRawBody());
|
||||||
|
} else {
|
||||||
|
$params = $this->getAllParams();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($params['username']) && isset($params['password'])) {
|
||||||
|
$this->authuser($params['username'], trim($params['password']), $params['staylogin']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function putAction()
|
||||||
|
{
|
||||||
|
$this->disableCallAction();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->disableCallAction();
|
||||||
|
}
|
||||||
|
|
||||||
|
//################ FUNZIONI PRIVATE ################################################################################
|
||||||
|
|
||||||
|
private function authuser($username, $password, $staylogin = null)
|
||||||
|
{
|
||||||
|
$staylogin = ($staylogin == null) ? 0 : $staylogin;
|
||||||
|
|
||||||
|
if ($username == null || $password == null) {
|
||||||
|
return $this->sendErrorResponse("Username e/o password non ricevuti.", App_Service_WebServiceV1Auth::NO_CREDENTIAL_CLOUDUSER);
|
||||||
|
} else {
|
||||||
|
$user = $this->_authService->authenticate($username, $password, $staylogin);
|
||||||
|
switch ($user) {
|
||||||
|
case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
|
||||||
|
$this->sendErrorResponse("Username inserito inesistente", App_Service_WebServiceV1Auth::FAILURE_IDENTITY_NOT_FOUND);
|
||||||
|
break;
|
||||||
|
case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
|
||||||
|
$this->sendErrorResponse("Le credenziali inserite non sono valide", App_Service_WebServiceV1Auth::FAILURE_CREDENTIAL_INVALID);
|
||||||
|
break;
|
||||||
|
case App_Service_WebServiceV1Auth::ACCOUNT_DEACTIVATED:
|
||||||
|
$this->sendErrorResponse("Account disattivato. Per informazioni contattare l'amministratore.", App_Service_WebServiceV1Auth::ACCOUNT_DEACTIVATED);
|
||||||
|
break;
|
||||||
|
case Zend_Auth_Result::FAILURE:
|
||||||
|
default:
|
||||||
|
$this->sendErrorResponse("Errore durante l'autenticazione", App_Service_WebServiceV1Auth::FAILURE);
|
||||||
|
break;
|
||||||
|
case Zend_Auth_Result::SUCCESS:
|
||||||
|
case is_array($user):
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$userData = array_diff_key($user, array_flip(array('password','staylogin','rcode','DataRichiestaResetPw','NumeroResetPw')));
|
||||||
|
|
||||||
|
//Aggiungo i dati sull'area di consegna associata all'attività
|
||||||
|
$userData = $this->getDataByRole($userData);
|
||||||
|
|
||||||
|
$this->_responseData->data = $userData;
|
||||||
|
$this->_status = true;
|
||||||
|
|
||||||
|
$this->sendResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getDataByRole($userData){
|
||||||
|
|
||||||
|
switch ($userData['role']){
|
||||||
|
case 'user':
|
||||||
|
$userData = array_diff_key($userData, array_flip(array('secret_token', 'rcode',
|
||||||
|
'Indirizzo', 'Comune', 'Cap', 'Provincia', 'PartitaIva', 'CodiceFiscale',
|
||||||
|
'Pec', 'Telefono', 'UltimoAccesso', 'Nota', 'Descrizione')));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
}//END CLASS
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description of Bootstrap
|
||||||
|
*/
|
||||||
|
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
|
||||||
|
{
|
||||||
|
public function _init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function _initPersonalRouter(){
|
||||||
|
|
||||||
|
$router= Zend_Controller_Front::getInstance()->getRouter();
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'authenticate',
|
||||||
|
new Zend_Controller_Router_Route('/authenticate',
|
||||||
|
array(
|
||||||
|
'module'=>'default',
|
||||||
|
'controller'=>'index',
|
||||||
|
'action'=>'authenticate'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'resetpassword',
|
||||||
|
new Zend_Controller_Router_Route('/resetpassword/:rcode',
|
||||||
|
array(
|
||||||
|
'module'=>'default',
|
||||||
|
'controller'=>'index',
|
||||||
|
'action'=>'resetpassword',
|
||||||
|
'rcode' => null
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Default_ErrorController extends Zend_Controller_Action
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $_allowedController;
|
||||||
|
protected $_allowedModule;
|
||||||
|
protected $_restModule;
|
||||||
|
protected $_ignoredMessages;
|
||||||
|
protected $_ipManager;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->_allowedController = array('admin', 'index', 'error', 'services');
|
||||||
|
$this->_allowedModule = array('admin', 'default', 'v1', 'monitoring', 'user');
|
||||||
|
$this->_restModule = array('v1','auth');
|
||||||
|
$this->_ignoredMessages = array(
|
||||||
|
"Accesso Scaduto",
|
||||||
|
"Username e/o password non ricevuti.",
|
||||||
|
"I dati inseriti non sono validi",
|
||||||
|
"Le credenziali inserite non sono valide",
|
||||||
|
"Account disattivato. Per informazioni contattare l'amministratore.",
|
||||||
|
"Username inserito inesistente"
|
||||||
|
);
|
||||||
|
$this->_ipManager = new App_Service_IpManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preDispatch()
|
||||||
|
{
|
||||||
|
$this->_response->clearHeader('Access-Control-Allow-Headers');
|
||||||
|
$this->_response->setHeader('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Origin,Authorization,x-requested-with,Content-Type,X-As-Dev-On,,X-As-Dev-Pw,MongoDbName');
|
||||||
|
|
||||||
|
$this->_response->clearHeader('Access-Control-Allow-Methods');
|
||||||
|
$this->_response->setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, PATCH, DELETE');
|
||||||
|
|
||||||
|
$this->_response->clearHeader('Access-Control-Allow-Origin');
|
||||||
|
$this->_response->setHeader('Access-Control-Allow-Origin', '*');
|
||||||
|
|
||||||
|
$this->_response->clearHeader('Access-Control-Allow-Credentials');
|
||||||
|
$this->_response->setHeader('Access-Control-Allow-Credentials', 'true');
|
||||||
|
|
||||||
|
$this->view->allowedIp = $this->_ipManager->allowedIp();
|
||||||
|
|
||||||
|
$this->view->responseCode = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function errorAction()
|
||||||
|
{
|
||||||
|
$errors = $this->_getParam('error_handler');
|
||||||
|
if ($this->_getParam('module') != 'default') {
|
||||||
|
$content = array('status' => false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$errors || !$errors instanceof ArrayObject) {
|
||||||
|
$content['message'] = 'You have reached the error page';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($errors->type) {
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
|
||||||
|
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
|
||||||
|
// 404 error -- controller or action not found
|
||||||
|
$this->getResponse()->setHttpResponseCode(404);
|
||||||
|
$this->view->responseCode = 404;
|
||||||
|
$this->view->title = "Adriatica Sistemi soc. coop. - Pagina non trovata - Errore 404";
|
||||||
|
|
||||||
|
$priority = Zend_Log::NOTICE;
|
||||||
|
if (in_array($this->_getParam('module'), $this->_restModule)) {
|
||||||
|
$content['message'] = 'Page not found';
|
||||||
|
} else {
|
||||||
|
$this->view->message = 'Page not found';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if ($errors->exception instanceof App_Controller_Errors_WebServiceError) {
|
||||||
|
// web services error
|
||||||
|
$content['message'] = $errors->exception->getMyMessage();
|
||||||
|
$content['errorCode'] = $errors->exception->getErrorCode();
|
||||||
|
|
||||||
|
if ($errors->exception->getErrorDetail()) {
|
||||||
|
$content['errorDetail'] = $errors->exception->getErrorDetail();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Recupero tutti i parametri disponibili sulla richiesta
|
||||||
|
$allParams = $this->getRequest()->getRawBody();
|
||||||
|
if(!$allParams){
|
||||||
|
$allParams = Zend_Json::encode($errors->request->getParams());
|
||||||
|
}
|
||||||
|
|
||||||
|
$dbName = '';$token = ''; $username = '';
|
||||||
|
if(Zend_Registry::isRegistered('TOKEN')){
|
||||||
|
$model = new Application_Model_Generic();
|
||||||
|
$token = Zend_Registry::get('TOKEN');
|
||||||
|
$user = $model->getByColumnName('users', 'token', $token);
|
||||||
|
if($user){
|
||||||
|
$dbName = $user['NomeDB'];
|
||||||
|
$username = $user['username'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->getResponse()->setHttpResponseCode(400);
|
||||||
|
|
||||||
|
//Zend_Registry::get('log')->info(print_r($errors,true));
|
||||||
|
|
||||||
|
if (!in_array($errors->exception->getMessage(), $this->_ignoredMessages))
|
||||||
|
Zend_Registry::get('error_log')
|
||||||
|
->setEventItem('url', $errors->request->getRequestUri())
|
||||||
|
->setEventItem('trace', Zend_Json::encode($errors->exception->getTrace()))
|
||||||
|
->setEventItem('params', $allParams)
|
||||||
|
->setEventItem('db_name', $dbName)
|
||||||
|
->setEventItem('username', $username)
|
||||||
|
->setEventItem('token', $token)
|
||||||
|
->setEventItem('section', 'web_service')
|
||||||
|
->info($content['message']);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// application error
|
||||||
|
$this->getResponse()->setHttpResponseCode(500);
|
||||||
|
$priority = Zend_Log::CRIT;
|
||||||
|
if (in_array($this->_getParam('module'), $this->_restModule)) {
|
||||||
|
$content['message'] = $errors->exception->getMessage();
|
||||||
|
} else {
|
||||||
|
$this->view->message = $errors->exception->getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log exception, if logger available
|
||||||
|
if ($log = $this->getLog()) {
|
||||||
|
$log->log($this->view->message, $priority, $errors->exception);
|
||||||
|
$log->log('Request Parameters', $priority, $errors->request->getParams());
|
||||||
|
}
|
||||||
|
|
||||||
|
// conditionally display exceptions
|
||||||
|
if ($this->getInvokeArg('displayExceptions') == true || in_array($this->_getParam('module'), array('admin','monitoring'))) {
|
||||||
|
if (in_array($this->_getParam('module'), $this->_restModule)) {
|
||||||
|
$content['exception_trace'] = (array)$errors->exception->getTrace();
|
||||||
|
} else {
|
||||||
|
$this->view->exception = $errors->exception;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (in_array($this->_getParam('module'), $this->_restModule) && APPLICATION_ENV != 'production') {
|
||||||
|
$content['request'] = (array)$errors->request;
|
||||||
|
} else {
|
||||||
|
$this->view->request = $errors->request;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (in_array($this->_getParam('module'), $this->_restModule)) {
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
$this->getResponse()
|
||||||
|
->setHeader('Content-Type', 'json')
|
||||||
|
->setBody($this->_helper->Globalfunction->safeJsonEncode($content))
|
||||||
|
->sendResponse();
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Registro il log dell'errore
|
||||||
|
//Zend_Registry::get('log')->info(print_r($errors,true));
|
||||||
|
if (in_array($this->_getParam('module'), $this->_allowedModule)
|
||||||
|
&& in_array($this->_getParam('controller'), $this->_allowedController)
|
||||||
|
&& !in_array($errors->exception->getMessage(), $this->_ignoredMessages))
|
||||||
|
Zend_Registry::get('error_log')->setEventItem('url', $errors->request->getRequestUri())
|
||||||
|
->setEventItem('trace', Zend_Json::encode($errors->exception->getTrace()))
|
||||||
|
->setEventItem('params', Zend_Json::encode($errors->request->getParams()))
|
||||||
|
->setEventItem('section', $this->_getParam('module'))
|
||||||
|
->info($errors->exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getLog()
|
||||||
|
{
|
||||||
|
$bootstrap = $this->getInvokeArg('bootstrap');
|
||||||
|
if (!$bootstrap->hasResource('Log')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$log = $bootstrap->getResource('Log');
|
||||||
|
return $log;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function invalidAction()
|
||||||
|
{
|
||||||
|
$content = $this->_helper->json(array('status' => 'error', 'message' => $this->_getParam('message')));
|
||||||
|
$this->getResponse()
|
||||||
|
->setHeader('Content-Type', 'json')
|
||||||
|
->setBody($content)
|
||||||
|
->sendResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,436 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Default_IndexController extends Zend_Controller_Action
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Proprietà Controller */
|
||||||
|
protected $_urlHelper;
|
||||||
|
protected $_genericModel;
|
||||||
|
protected $_restModel;
|
||||||
|
protected $_authService;
|
||||||
|
protected $_configs;
|
||||||
|
protected $_translate;
|
||||||
|
protected $_ipManager;
|
||||||
|
protected $_VariabiliSito;
|
||||||
|
protected $_rsaCryptor;
|
||||||
|
|
||||||
|
protected App_Service_JsonConfiguration $_datiAziendali;
|
||||||
|
protected App_Service_JsonConfiguration $_parametriSito;
|
||||||
|
|
||||||
|
/* Dati metatag del sito */
|
||||||
|
private $_KEYWORDS;
|
||||||
|
private $_TITLE;
|
||||||
|
private $_DESCRIPTION;
|
||||||
|
|
||||||
|
/* Dati per le sezioni dinamiche del sito */
|
||||||
|
private $_MENUITEM;
|
||||||
|
private $_PAGENAME;
|
||||||
|
private $_SUBTITLE;
|
||||||
|
|
||||||
|
private $_COOKIE_EXPIRE_TIME;
|
||||||
|
private $_COOKIE_SITE_CREDENTIALS;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_helper->layout->setLayout('layout');
|
||||||
|
$this->_urlHelper = $this->_helper->getHelper('url');
|
||||||
|
$this->_authService = new App_Service_Auth();
|
||||||
|
$this->_genericModel = new Application_Model_Generic();
|
||||||
|
$this->_restModel = new Application_Model_Rest();
|
||||||
|
$this->_configs = new App_Service_ConfigManager();
|
||||||
|
$this->_translate = Zend_Form::getDefaultTranslator();
|
||||||
|
$this->_ipManager = new App_Service_IpManager();
|
||||||
|
$this->_rsaCryptor = new App_Service_RsaCryptor();
|
||||||
|
|
||||||
|
$this->_VariabiliSito = new App_Service_VariabiliSito();
|
||||||
|
$this->_datiAziendali = new App_Service_JsonConfiguration('dati_aziendali');
|
||||||
|
$this->_parametriSito = new App_Service_JsonConfiguration("parametri_sito");
|
||||||
|
|
||||||
|
$this->_TITLE = "home";
|
||||||
|
$this->_DESCRIPTION = "";
|
||||||
|
$this->_KEYWORDS = "";
|
||||||
|
|
||||||
|
$this->_TITLE = $this->_parametriSito->get('base_title');
|
||||||
|
$this->_DESCRIPTION = "";
|
||||||
|
$this->_KEYWORDS = $this->_parametriSito->get('base_keywords');
|
||||||
|
|
||||||
|
$BASE_COOKIE_STRING = strtolower(Zend_Registry::get('ENVIROMENTS')->get('site_short_id')) . '_';
|
||||||
|
|
||||||
|
$this->_COOKIE_EXPIRE_TIME = time() + (86400 * 30);
|
||||||
|
$this->_COOKIE_SITE_CREDENTIALS = $BASE_COOKIE_STRING . "CREDENTIALS";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preDispatch()
|
||||||
|
{
|
||||||
|
|
||||||
|
$action = $this->getRequest()->getActionName();
|
||||||
|
if ($this->_configs->get('interrutore_sito') == 'off' && $action != 'login' && $action != 'authenticate' && $action != 'offline' && !$this->_ipManager->allowedIp()) {
|
||||||
|
$this->_helper->redirector('offline', 'index', 'default');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Zend_Registry::get('Zend_Locale') == 'it') {
|
||||||
|
$this->view->lang = 'it';
|
||||||
|
} else {
|
||||||
|
$this->view->lang = 'en';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->view->action = $action;
|
||||||
|
$this->view->controller = $this->getRequest()->getControllerName();
|
||||||
|
|
||||||
|
$this->view->enableTestSdk = $this->_ipManager->controllaAbilitazioneTestSdk();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postDispatch()
|
||||||
|
{
|
||||||
|
$this->view->title = $this->_TITLE;
|
||||||
|
$this->view->keywords = $this->_KEYWORDS;
|
||||||
|
$this->view->description = $this->_DESCRIPTION;
|
||||||
|
|
||||||
|
$this->view->menuitem = $this->_MENUITEM;
|
||||||
|
$this->view->pagename = $this->_PAGENAME;
|
||||||
|
$this->view->subtitle = $this->_SUBTITLE;
|
||||||
|
|
||||||
|
$this->view->parametriSito = $this->_parametriSito->getAllParams();
|
||||||
|
$this->view->datiAziendali = $this->_datiAziendali->getAllParams();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function offlineAction()
|
||||||
|
{
|
||||||
|
$this->_DESCRIPTION .= "Il Sito è in manutenzuione";
|
||||||
|
if ($this->_configs->get('interrutore_sito') == 'off') {
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
} else {
|
||||||
|
$this->_helper->redirector('index', 'index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function loginAction()
|
||||||
|
{
|
||||||
|
$this->_helper->layout->setLayout('admin');
|
||||||
|
|
||||||
|
$this->view->moduleName = 'default';
|
||||||
|
$this->view->eventLoader = 'login';
|
||||||
|
$this->view->formData = $this->recuperaCredenziali();
|
||||||
|
|
||||||
|
if (isset($this->_authService->getAuth()->getIdentity()->username))
|
||||||
|
$this->_helper->redirector('index', $this->_authService->getAuth()->getIdentity()->role);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function authenticateAction()
|
||||||
|
{
|
||||||
|
$this->_helper->layout->setLayout('admin');
|
||||||
|
|
||||||
|
$this->view->moduleName = 'default';
|
||||||
|
$this->view->eventLoader = 'login';
|
||||||
|
$this->view->formData = $this->recuperaCredenziali();
|
||||||
|
|
||||||
|
if (!$this->getRequest()->isPost()) {
|
||||||
|
return $this->_helper->redirector('index');
|
||||||
|
}
|
||||||
|
|
||||||
|
$form = new Application_Form_Default_Index_Auth_Login();
|
||||||
|
if (!$form->isValid($this->getRequest()->getPost())) {
|
||||||
|
$this->view->error = 'I campi sono richiesti';
|
||||||
|
|
||||||
|
$this->render('login');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === $this->_authService->authenticate($form->getValues())) {
|
||||||
|
$this->view->error = 'Le credenziali non sono valide!';
|
||||||
|
$this->render('login');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//memorizzo le credenziali se necessario
|
||||||
|
$data = $form->getValues();
|
||||||
|
if ($data['ricorda_password'] == 'on') {
|
||||||
|
try {
|
||||||
|
$data['password'] = $this->_rsaCryptor->cripta($data['password']);
|
||||||
|
setcookie($this->_COOKIE_SITE_CREDENTIALS, Zend_Json::encode($data), $this->_COOKIE_EXPIRE_TIME, "/");
|
||||||
|
} catch (Exception $e) {
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setcookie($this->_COOKIE_SITE_CREDENTIALS, "", $this->_COOKIE_EXPIRE_TIME, "/");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Accesso andato a buon fine
|
||||||
|
|
||||||
|
//Generazione del Token temporaneo per l'accesso
|
||||||
|
$user = $this->_authService->getIdentity();
|
||||||
|
|
||||||
|
if ($user->role !== 'admin') {
|
||||||
|
if ($user->token != null) {
|
||||||
|
$token = $user->token; //Esistente uso quello già presente
|
||||||
|
} else {
|
||||||
|
do { //se non esiste ne genero uno nuovo e controllo che sia univoco
|
||||||
|
$token = hash('sha1', $user->username . date('YmdHis') . mt_rand(5, 10));
|
||||||
|
if ($this->_genericModel->getByColumnName('Users', 'token', $token)) {
|
||||||
|
$exist = true;
|
||||||
|
} else {
|
||||||
|
$exist = false;
|
||||||
|
}
|
||||||
|
$user->token = $token;
|
||||||
|
} while ($exist);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_genericModel->update('Users', $user->id, array('UltimoLogin' => date('Y-m-d H:i:s'), 'token' => $token));
|
||||||
|
} else {
|
||||||
|
$this->_genericModel->update('Users', $user->id, array('UltimoLogin' => date('Y-m-d H:i:s')));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_genericModel->insert('Accesslog', array('ip' => $_SERVER['REMOTE_ADDR'], 'tipo' => $this->_authService->getIdentity()->role));
|
||||||
|
|
||||||
|
return $this->_helper->redirector('index', 'index', $this->_authService->getIdentity()->role);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function indexAction()
|
||||||
|
{
|
||||||
|
// $this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
|
||||||
|
/*if (isset($this->_authService->getAuth()->getIdentity()->username))
|
||||||
|
$this->_helper->redirector('index', $this->_authService->getAuth()->getIdentity()->role);
|
||||||
|
else
|
||||||
|
$this->_helper->redirector('login', 'index', 'default');*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ========= ELENCO PAGINE STATIC ACTION ===============================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function assistenzaAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function caratteristicheAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function acquistaAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function downloadsoftwareAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function copyrightAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function privacyAction()
|
||||||
|
{
|
||||||
|
$this->redirect("https://www.iubenda.com/privacy-policy/70038880");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cookiepolicyAction()
|
||||||
|
{
|
||||||
|
$this->redirect("https://www.iubenda.com/privacy-policy/70038880/cookie-policy");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ========= ACTION SPECIALI ===========================================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function resetpasswordAction()
|
||||||
|
{
|
||||||
|
$this->_helper->layout->setLayout('admin');
|
||||||
|
|
||||||
|
$this->view->moduleName = 'default';
|
||||||
|
$rcode = $this->getParam('rcode', null);
|
||||||
|
$this->view->hideForm = false;
|
||||||
|
$this->view->rcode = $rcode;
|
||||||
|
|
||||||
|
if (!$rcode && $this->getRequest()->isPost()) {
|
||||||
|
|
||||||
|
$email = $this->_getParam('Email', null);
|
||||||
|
if (!$email) {
|
||||||
|
$this->view->errorMessage = "Inserire un email corretta!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$users = $this->_genericModel->getByColumnName('Users', 'Email', $email);
|
||||||
|
if (!$users || !$users['stato'] || $users['role'] === 'admin') {
|
||||||
|
$this->view->warningMessage = "Nessuna corrispondenza per l'email inserita.";
|
||||||
|
$this->view->hideForm = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($users['NumeroResetPw'] > 5) {
|
||||||
|
$this->view->warningMessage = "Hai effettuato troppe richieste per il reseet password, attendi 48 ore o contatta l'amministrazione su xxxx";
|
||||||
|
$this->view->hideForm = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Genero rcode e incremento il numero di richieste già effettuate per il limite max
|
||||||
|
$numeroReset = ($users['NumeroResetPw']) ? $users['NumeroResetPw'] : 0;
|
||||||
|
$numeroReset += 1;
|
||||||
|
$rcode = md5($users['PartitaIva'] . date('YmdHis'));
|
||||||
|
$this->_genericModel->update('Users', $users['id'], array('DataRichiestaResetPw' => date('Y-m-d H:i:s'), 'rcode' => $rcode, 'NumeroResetPw' => $numeroReset));
|
||||||
|
$users['rcode'] = $rcode;
|
||||||
|
|
||||||
|
//Invio email di recupero
|
||||||
|
$this->inviaEmailDiRecuperoPassword($users);
|
||||||
|
|
||||||
|
$this->view->successMessage = "Ti è stata inviata una email per effettuare il reset della password, consulta la tua casella di posta e segui le istruzioni.";
|
||||||
|
$this->view->hideForm = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FINE RICHIESTA
|
||||||
|
|
||||||
|
// INIZIO RESET PASSWORD
|
||||||
|
|
||||||
|
if ($rcode) {
|
||||||
|
|
||||||
|
//Controllo del codice rcode
|
||||||
|
$utente = $this->_genericModel->getByColumnName('Users', 'rcode', $rcode);
|
||||||
|
if (!$utente) {
|
||||||
|
$this->view->warningMessage = "La richiesta è scaduta, effettuare una nuova richiesta!";
|
||||||
|
$this->view->rcode = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->getRequest()->isPost()) {
|
||||||
|
$form = new Application_Form_Default_Index_Auth_ResetPw();
|
||||||
|
if (!$form->isValid($this->getAllParams())) {
|
||||||
|
$this->view->errorMessage = "Ci sono errori di compilazione, controllare i campi!";
|
||||||
|
$this->view->errorForm = $form->getMessages();
|
||||||
|
$this->view->formData = $form->getValues();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $form->getValues();
|
||||||
|
$nuovaPassword = md5(Zend_Registry::get('ENVIROMENTS')->get('password_salt') . $data['password']);
|
||||||
|
|
||||||
|
//Inserimento nuova password nel db
|
||||||
|
$this->_genericModel->update('Users', $utente['id'], array('password' => $nuovaPassword, 'rcode' => null, 'NumeroResetPw' => 0));
|
||||||
|
$this->view->successMessage = 'La password è stata reimpostata correttamente, effettua un nuovo login <a href="' .
|
||||||
|
$this->_urlHelper->url(array('action' => 'login', 'controller' => 'index'), 'default', true) . '">cliccando qui.</a>';
|
||||||
|
$this->view->hideForm = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendcontactAction()
|
||||||
|
{
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
if ($this->getRequest()->isXmlHttpRequest()) {
|
||||||
|
|
||||||
|
$form = new Application_Form_Index_Contact_Add();
|
||||||
|
if (!$form->isValid($this->getAllParams())) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array(
|
||||||
|
'success' => false,
|
||||||
|
'message' => $form->getMessages(),
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$emailTemplate = $this->_genericModel->getByColumnName('EmailTemplate', 'Codice', $this->_configs->get('email_contatto_template'));
|
||||||
|
if (!$emailTemplate) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array(
|
||||||
|
'success' => false,
|
||||||
|
'message' => "Email template non trovato o non assegnato",
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_helper->Email->sendEmailByTemplate($this->_configs->get('email_primo_contatto'), $emailTemplate, $form->getValues());
|
||||||
|
|
||||||
|
//Incremento il contatore contatti email
|
||||||
|
$numContatti = $this->_VariabiliSito->get('I_Numero_Contatti_Email');
|
||||||
|
$this->_VariabiliSito->set('I_Numero_Contatti_Email', ++$numContatti);
|
||||||
|
|
||||||
|
$response['success'] = true;
|
||||||
|
} catch (Zend_Exception $e) {
|
||||||
|
return $this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array(
|
||||||
|
'success' => false,
|
||||||
|
'message' => "si è verificato un errore durante l'invio del messaggio",
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode($response));
|
||||||
|
} else {
|
||||||
|
$this->getResponse()->setHeader('Content-type', 'application/json;charset=UTF-8')->setBody(Zend_Json::encode(array('success' => false, 'errore' => 'Operazione non consentita')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sitemapAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
header('Content-type: text/xml');
|
||||||
|
header('Pragma: public');
|
||||||
|
header('Cache-control: private');
|
||||||
|
header('Expires: -1');
|
||||||
|
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
||||||
|
echo '<urlset
|
||||||
|
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||||
|
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';
|
||||||
|
|
||||||
|
/*echo '<url>';
|
||||||
|
echo '<loc>https://sfdasdas.com/</loc>';
|
||||||
|
echo '<changefreq>monthly</changefreq>';
|
||||||
|
echo '</url>';*/
|
||||||
|
|
||||||
|
echo '</urlset>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ========= FUNZIONI PRIVATE DEL CONTROLLER ===========================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
private function recuperaCredenziali()
|
||||||
|
{
|
||||||
|
//Recupero eventuali credenziali memorizzate
|
||||||
|
if (isset($_COOKIE[$this->_COOKIE_SITE_CREDENTIALS])) {
|
||||||
|
$credentials = Zend_Json::decode($_COOKIE[$this->_COOKIE_SITE_CREDENTIALS]);
|
||||||
|
if ($credentials['ricorda_password'] == 'on') {
|
||||||
|
try {
|
||||||
|
$credentials['password'] = $this->_rsaCryptor->decripta($credentials['password']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$credentials = array('ricorda_password' => 'off');
|
||||||
|
}
|
||||||
|
return $credentials;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return array('ricorda_password' => 'on');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function inviaEmailDiRecuperoPassword($user)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Invio email per conferma
|
||||||
|
$emailTemplate = $this->_genericModel->getByColumnName('EmailTemplate', 'Codice', 'EMAIL_RECUPERO_PASSWORD');
|
||||||
|
if (!$emailTemplate) {
|
||||||
|
throw new Exception("Errore invio email richiesta recupero password");
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = $user;
|
||||||
|
$params['link'] = $this->getRequest()->getScheme() . '://' . $this->getRequest()->getHttpHost()
|
||||||
|
. $this->_urlHelper->url(array('rcode' => $params['rcode']), 'resetpassword', true);
|
||||||
|
$this->_helper->Email->sendEmailByTemplate($params['Email'], $emailTemplate, $params);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Default_ServicesController extends Zend_Controller_Action
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $_configs;
|
||||||
|
protected $_ipManager;
|
||||||
|
|
||||||
|
protected $_genericModel;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_helper->getHelper('layout')->disableLayout();
|
||||||
|
|
||||||
|
$this->_configs = new App_Service_ConfigManager();
|
||||||
|
$this->_ipManager = new App_Service_IpManager();
|
||||||
|
$this->_genericModel = new Application_Model_Generic();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preDispatch()
|
||||||
|
{
|
||||||
|
$action = $this->getRequest()->getActionName();
|
||||||
|
if ($this->_configs->get('interrutore_services') == 'off' && $action != 'offline') {
|
||||||
|
$this->_helper->redirector('offline', 'services');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postDispatch()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function offlineAction()
|
||||||
|
{
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
echo 'I servizi sono al momento disabilitati.';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function indexAction()
|
||||||
|
{
|
||||||
|
$this->_helper->redirector('index', 'index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ================ SERVIZI ================================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ========= FUNZIONI CRON DEL CPANEL ===================================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =====================================================================================================================
|
||||||
|
* ========= FUNZIONI PRIVATE DEL CONTROLLER ===========================================
|
||||||
|
* =====================================================================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
private function _errorToLog($e, $message)
|
||||||
|
{
|
||||||
|
Zend_Registry::get('error_log')->setEventItem('url', $this->getRequest()->getRequestUri())
|
||||||
|
->setEventItem('trace', Zend_Json::encode($e->getTrace()))
|
||||||
|
->setEventItem('params', Zend_Json::encode([]))
|
||||||
|
->setEventItem('section', 'services')
|
||||||
|
->info($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php if ($this->responseCode == 404): ?>
|
||||||
|
|
||||||
|
<section class="ptb-80 bbs1 bc-light">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="heading-thick mb-30">404 <span> - Pagina non Trovata</span></h2>
|
||||||
|
<p>La pagina che stavi cercando di raggiungere a questo indirizzo sembra non esistere.<br>
|
||||||
|
Questo è di solito il risultato di un link errato o non aggiornato.</p>
|
||||||
|
<a href="<?= $this->url(array(),'default',true); ?>" class="btn btn-theme btn-theme-primary">Vai alla home del sito!</a>
|
||||||
|
</div><!-- End Container -->
|
||||||
|
</section><!-- End Section -->
|
||||||
|
|
||||||
|
<?php else: ?>
|
||||||
|
|
||||||
|
<h1>Si è verificato un errore</h1>
|
||||||
|
<h2><?php echo $this->message ?></h2>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if (isset($this->exception) && $this->allowedIp): ?>
|
||||||
|
|
||||||
|
<h3>Exception information:</h3>
|
||||||
|
<p>
|
||||||
|
<b>Message:</b> <?php echo $this->exception->getMessage() ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Stack trace:</h3>
|
||||||
|
<pre><?php echo $this->exception->getTraceAsString() ?>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Request Parameters:</h3>
|
||||||
|
<pre><?php echo $this->escape(var_export($this->request->getParams(), true)) ?>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<?php endif ?>
|
||||||
@@ -0,0 +1,365 @@
|
|||||||
|
<section class="pt-8 pt-md-11 pb-10 pb-md-15 bg-primary">
|
||||||
|
|
||||||
|
<!-- Shape -->
|
||||||
|
<div class="shape shape-blur-3 text-white">
|
||||||
|
<svg viewBox="0 0 1738 487" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 0h1420.92s713.43 457.505 0 485.868C707.502 514.231 0 0 0 0z" fill="url(#paint0_linear)"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear" x1="0" y1="0" x2="1049.98" y2="912.68"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="currentColor" stop-opacity=".075"/>
|
||||||
|
<stop offset="1" stop-color="currentColor" stop-opacity="0"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Content -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h2 class="display-3 text-white">
|
||||||
|
Acquista Gestione Spiaggia
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- SHAPE -->
|
||||||
|
<div class="position-relative">
|
||||||
|
<div class="shape shape-bottom shape-fluid-x text-light">
|
||||||
|
<svg viewBox="0 0 2880 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 48h2880V0h-720C1442.5 52 720 0 720 0H0v48z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- PRICING -->
|
||||||
|
<section class="mt-n8 mt-md-n14 mb-3">
|
||||||
|
<div class="container mb-7">
|
||||||
|
<div class="row gx-4 justify-content-center">
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6">
|
||||||
|
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="card shadow-lg mb-6 mb-md-0">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<!-- Preheading -->
|
||||||
|
<div class="text-center mb-3">
|
||||||
|
<span class="badge rounded-pill bg-primary-soft">
|
||||||
|
<span class="h6 text-uppercase">Licenza Gestione Spiaggia Enterprise</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Price -->
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<span class="h2 mb-0 mt-2">€</span>
|
||||||
|
<span class="price display-2 mb-0" data-annual="0" data-monthly="0">185</span>
|
||||||
|
<span class="h2 align-self-end mb-1 ms-2"> + iva</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-center text-muted mb-5">
|
||||||
|
Annuali
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<div class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="mb-5">
|
||||||
|
Tutte le <a href="<?= $this->url(['action' => 'caratteristiche'], 'it', true); ?>">funzionalità</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<div class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="mb-5">
|
||||||
|
1000 Fatture elettroniche incluse
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<div class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="mb-5">
|
||||||
|
15 Ticket di assistenza telefonica
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="#!" class="btn w-100 btn-primary lift ms-auto">
|
||||||
|
Acquista <i class="fe fe-arrow-right ms-3"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-md-8 text-center mt-10 mb-5">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h2>
|
||||||
|
- Pacchetti e Servizi Aggiuntivi -
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-muted mb-6 mb-md-6">
|
||||||
|
I pacchetti e servizi aggiuntivi sono acquistabili solo in abbinamento ad una licenza valida
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row gx-4 justify-content-center">
|
||||||
|
|
||||||
|
<div class="col-12 col-md-4">
|
||||||
|
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="card shadow-lg mb-6 mb-md-0">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<!-- Preheading -->
|
||||||
|
<div class="text-center mb-3">
|
||||||
|
<span class="badge rounded-pill bg-primary-soft">
|
||||||
|
<span class="h6 text-uppercase">Assistenza Telefonica</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Price -->
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<span class="h2 mb-0 mt-2">€</span>
|
||||||
|
<span class="price display-2 mb-0" data-annual="29" data-monthly="49">80</span>
|
||||||
|
<span class="h2 align-self-end mb-1 ms-2"> + iva</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-center text-muted mb-5">
|
||||||
|
Pacchetto Aggiuntivo
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<div class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p>
|
||||||
|
100 Minuti / 10 Ticket
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="#!" class="btn w-100 btn-primary-soft lift ms-auto">
|
||||||
|
Acquista <i class="fe fe-arrow-right ms-3"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-4">
|
||||||
|
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="card shadow-lg mb-md-0">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<!-- Preheading -->
|
||||||
|
<div class="text-center mb-3">
|
||||||
|
<span class="badge rounded-pill bg-primary-soft">
|
||||||
|
<span class="h6 text-uppercase">Fatture Elettroniche</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Price -->
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<span class="h2 mb-0 mt-2">€</span>
|
||||||
|
<span class="price display-2 mb-0" data-annual="49" data-monthly="69">70</span>
|
||||||
|
<span class="h2 align-self-end mb-1 ms-2">+ iva</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-center text-muted mb-5">
|
||||||
|
Pacchetto Aggiuntivo
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<div class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p>
|
||||||
|
1000 Fatture Elettroniche
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="#!" class="btn w-100 btn-primary-soft lift ms-auto">
|
||||||
|
Acquista <i class="fe fe-arrow-right ms-3"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- SHAPE -->
|
||||||
|
<div class="position-relative">
|
||||||
|
<div class="shape shape-bottom shape-fluid-x text-white">
|
||||||
|
<svg viewBox="0 0 2880 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 48h2880V0h-720C1442.5 52 720 0 720 0H0v48z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- FAQ -->
|
||||||
|
<section class="py-8 py-md-11 bg-white border-bottom">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-md-8 text-center">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge rounded-pill bg-primary-desat-soft mb-3">
|
||||||
|
<span class="h6 text-uppercase">FAQ</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h2>
|
||||||
|
Domande Frequenti
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-muted mb-7 mb-md-9">
|
||||||
|
Rispondiamo alle domande più comuni che potresti avere.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row lh-5">
|
||||||
|
<div class="col-12 col-md-6">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Come procedo all'acquisto?
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-gray-800 mb-6 mb-md-8">
|
||||||
|
Per acquistare la licenza o un pacchetto aggiuntivo ti basta cliccare sul prodotto e una volta
|
||||||
|
aperto il carrello seguire la semplice procedura di acquisto, al termine del pagamento riceverei una
|
||||||
|
mail con i dati di attivzione entro 24 ore.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Come attivo la licenza d'uso?
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-gray-800 mb-6">
|
||||||
|
Una volta terminata la procedura d'acquisto invieremo tramite e-mail <span class="text-muted">(solitamente in giornata
|
||||||
|
all'email indicata)</span> la fattura contenente i codici licenza necessari per l'attivazione
|
||||||
|
del software.<br>
|
||||||
|
<span class="text-muted mt-1">
|
||||||
|
<small>I codici delle licenze sono calcolati in base alla partita iva della
|
||||||
|
vostra azienda, ed una volta concessa non può più essere modificata.</small>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-6">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Quanto dura la licenza?
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-gray-800 mb-9">
|
||||||
|
La licenza ha una durata di 365 gg dalla data di acquisto; in caso l'acquisto venga effettuato prima
|
||||||
|
della scadenza la licenza verrà ricalcolata dalla data di scadenza.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Quali metodi di pagamenti sono accettati?
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-gray-800 mb-6 mb-md-0">
|
||||||
|
I metodi di pagamento accettati sono: carta di credito, carte prepagate o conto PayPal, altrimenti
|
||||||
|
tramite bonifico bancario.<br>
|
||||||
|
<small><span class="text-muted">In caso di pagamento tramite bonifico bancario al termine della procedura è consigliato stampare
|
||||||
|
l'ordine contenente tutti i dati necessari all'acquisto (Coordinate Bancarie ecc..) che dovrà
|
||||||
|
poi essere inviato insieme alla ricevuta di effettuato pagamento tramite email.</span></small>
|
||||||
|
|
||||||
|
<ul class="list-unstyled list-inline list-social mb-6 mb-md-0 mt-2">
|
||||||
|
<li class="list-inline-item list-social-item">
|
||||||
|
<img src="./assets/img/icons/payment-methods/maestro.svg" class="list-payment-icon" alt="...">
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item list-social-item me-3">
|
||||||
|
<img src="./assets/img/icons/payment-methods/mastercard.svg" class="list-payment-icon"
|
||||||
|
alt="...">
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item list-social-item me-3">
|
||||||
|
<img src="./assets/img/icons/payment-methods/visa.svg" class="list-payment-icon" alt="...">
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item list-social-item me-3">
|
||||||
|
<img src="./assets/img/icons/payment-methods/paypal.svg" class="list-payment-icon" alt="...">
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item list-social-item me-3">
|
||||||
|
<img src="./assets/img/icons/payment-methods/default.svg" class="list-payment-icon" alt="...">
|
||||||
|
</li>
|
||||||
|
<li class="list-inline-item list-social-item me-3">
|
||||||
|
<img src="./assets/img/icons/payment-methods/amex.svg" class="list-payment-icon" alt="...">
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,269 @@
|
|||||||
|
<section class="pt-8 pt-md-11 pb-8 pb-md-14">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-12 col-md">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-4 mb-2">
|
||||||
|
Assistenza
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
|
||||||
|
<!-- Buttons -->
|
||||||
|
<a href="tel:08565690" class="btn btn-primary-soft">
|
||||||
|
Chiamaci
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="my-6 my-md-8">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-md-8">
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-gray-800 mb-4 mb-md-4">
|
||||||
|
L'Adriatica Sistemi fornisce assistenza dal lunedì al venerdì dalle ore 9:00 alle ore 13:00 nei
|
||||||
|
giorni lavorativi (con possibilità di tele-assistenza se si dispone di una linea ADSL).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fs-lg text-gray-800 mb-4 mb-md-4">
|
||||||
|
Per Fattura Facile l'assistenza è inclusa per tutta la durata della licenza.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fs-lg text-gray-800 mb-6 mb-md-8">
|
||||||
|
Per maggiori informazioni sull'assistenza <a
|
||||||
|
href="<?= $this->url(['action' => 'copyright'], 'it', true); ?>">clicca qui.</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
AGGIORNAMENTI
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
I nostri software principali hanno la funzione di aggiornamento automatico. Se non è possibile
|
||||||
|
utilizzare l'aggiornamento automatico o il software non dispone di questa funzione è sufficiente
|
||||||
|
scaricare il programma completo ed installarlo sul computer da aggiornare (è importante non
|
||||||
|
disinstallare la versione precedentemente installata, l'installazione del pacchetto completo non
|
||||||
|
sovrascriverà mai i dati esistenti).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<h3 class="mt-8" id="manuali">
|
||||||
|
MANUALI:
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffp%20-%20maschera%20di%20avvio%20e%20gestione%20archivi.pdf">
|
||||||
|
Maschera di avvio (Gestione Archivi)
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffSpostamentoFatturaFacile.pdf">
|
||||||
|
Spostamento Fattura Facile da computer A ad computer B
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffpaggiornamentosoftware.pdf">
|
||||||
|
Procedura di aggiornamento software
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/creazionetipodipagamento.pdf">
|
||||||
|
Creazione nuove tipologie di pagamento
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffpraggruppamentodocumenti.pdf">
|
||||||
|
Raggruppamento documenti
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffpimportazionearchivio.pdf">
|
||||||
|
Importazione archivio di Fattura Facile Pro/Pro-E in Fattura Facile
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/ffpinviaredocumentitramiteemail.pdf">
|
||||||
|
Inviare documenti tramite email
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/aggiungerealiquota.pdf">
|
||||||
|
Come aggiungere un'aliquota iva
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" target="_blank" href="https://www.gestionespiaggia.it/downloads/manuali/FatturaElettronicaConFatturaFacile.pdf">
|
||||||
|
Fatturazione Elettronica
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="mt-6" id="guide">
|
||||||
|
GUIDE:
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/guide/soluzioneproblemi.pdf" target="_blank">
|
||||||
|
Soluzione problemi (il programma non funziona, vengono visualizzati messaggi di errore ecc...)
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/guide/salvataggioarchivi.pdf" target="_blank">
|
||||||
|
Salvataggio, Spostamento e Ripristino Archivi (valido per tutti i nostri software)
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/guide/opzioniinternazionaliedellalingua.pdf" target="_blank">
|
||||||
|
Opzioni Internazionali e della Lingua (errori di calcolo, errata visualizzazione della data)
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/guide/utilizzoinretelocale.pdf" target="_blank">
|
||||||
|
Configurazione "Multipostazione" rete LAN
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i class="fe fe-file"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/guide/disinstallazione.pdf" target="_blank">
|
||||||
|
Procedura di disinstallazione dei software.
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="mt-6" id="driver">
|
||||||
|
DRIVER & UTILITY:
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-primary-soft mt-1 me-4"><i
|
||||||
|
class="fe fe-settings"></i></span>
|
||||||
|
<!-- Text -->
|
||||||
|
<a class="text-gray-800" href="https://www.gestionespiaggia.it/downloads/drivereutility/dipendenze.exe">
|
||||||
|
Dipendenze - Utility per la risoluzione dei problemi legati a dll o ocx
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-4">
|
||||||
|
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="card shadow-light-lg">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h4>
|
||||||
|
Richiedi Assistenza Tecnica
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-sm text-gray-800 mb-5">
|
||||||
|
Tramite il pulsante in basso portrai scaricare il software che permetterà ai nosstri tecnici
|
||||||
|
di collegarsi in teleassistenza.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<a href="https://download.anydesk.com/AnyDesk.exe" class="btn btn-primary align-self-center">Teleassistenza</a>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700 mb-2 mt-5">
|
||||||
|
Telefono
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-sm mb-5">
|
||||||
|
<a href="tel:08565690" class="text-reset">+39 085 65690</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-gray-700 mb-2">
|
||||||
|
Email
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-sm mb-0">
|
||||||
|
<a href="mailto:info@adriaticasistetmi.it" class="text-reset">info@adriaticasistetmi.it</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,578 @@
|
|||||||
|
<section class="pt-6 pt-md-8">
|
||||||
|
<div class="container pb-8 pb-md-11">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge rounded-pill bg-primary-desat-soft mb-3">
|
||||||
|
<span class="h6 text-uppercase">Caratteristiche</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h2>
|
||||||
|
Scopri tutte le <span class="text-primary">funzionalità</span> di Fattura Facile.
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
|
||||||
|
<div class="row mt-10">
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!-- Table -->
|
||||||
|
<div class="table-responsive mb-7 mb-md-9">
|
||||||
|
<table class="table table-align-middle">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<span class="h6 text-uppercase fw-bold">
|
||||||
|
Caratteristica
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<span class="h6 text-uppercase fw-bold">
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
GESTIONE DOCUMENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Fatture,D.D.T.,Preventivi</li>
|
||||||
|
<li>Ordini clienti / fornitori</li>
|
||||||
|
<li>Documenti da fornitore</li>
|
||||||
|
<li>Documenti parametrici</li>
|
||||||
|
<li>Creazione automatica e/o manuale della scadenze dei pagamenti</li>
|
||||||
|
<li>Gestione allegati</li>
|
||||||
|
<li>Creazione autotmatica articoli ed aggiornamento listino</li>
|
||||||
|
<li>Esportazione / importazione documenti</li>
|
||||||
|
<li>Fatture o altro documento direttamente da preventivi, DDT, ordini ...</li>
|
||||||
|
<li>Raggruppamento documenti</li>
|
||||||
|
<li>Ricerca avanzata documenti</li>
|
||||||
|
<li>Ri.Ba.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
FATTURA ELETTRONICA
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fs-sm text-muted mb-2">
|
||||||
|
Esportazione fatture in formato XML
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fs-sm text-muted mb-2">
|
||||||
|
<b>Funzionalità integrate nel software per:</b>
|
||||||
|
<ul class="fs-sm text-muted">
|
||||||
|
<li>Invio fatture elettroniche a clienti</li>
|
||||||
|
<li>Possivilità di invio automatico email di cortesia per le Fattura Elettroniche accettate dall'AdE </li>
|
||||||
|
<li>Ricezione fattura elettroniche da fornitore</li>
|
||||||
|
<li>Importazione fatture elettroniche</li>
|
||||||
|
<li>Firma automatica su tutti i documenti</li>
|
||||||
|
<li>Conservazione sostitutiva per 10 anni delle fatture elettroniche e notifiche
|
||||||
|
<li>Download massivo fatture elettroniche in formato xml</li>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="fs-sm text-muted mb-0">
|
||||||
|
<b>Note:</b>
|
||||||
|
<ul class="fs-sm text-muted">
|
||||||
|
<li>1.000 Fatture Elettroniche (attive + passive) incluse nella licenza d'uso,
|
||||||
|
cumulabili e senza scadenza.
|
||||||
|
</li>
|
||||||
|
<li>Il Codice Destinatario viene fornito all'attivazione del servizio di
|
||||||
|
Fatturazione Elettronica incluso nella licenza
|
||||||
|
(il Codice Destinatario deve essere inserito nel Cassetto Fiscale e comunicato
|
||||||
|
ai propri fornitori)
|
||||||
|
</li>
|
||||||
|
<li>Compatibile con sistemi successivi a Windows XP</li>
|
||||||
|
<li>Richiesta connessione ad Internet</li>
|
||||||
|
<li>Dimensione massima del file fattura elettronica con allegati:
|
||||||
|
<br> < 500 kb invio verso privati
|
||||||
|
<br> < 5.000 Kb verso Pubblica Amministrazione
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
CONTATTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Anagrafiche clienti/fornitori</li>
|
||||||
|
<li>Ricerca avanzata anagrafiche</li>
|
||||||
|
<li>Gestione allegati</li>
|
||||||
|
<li>Banca e pagamenti</li>
|
||||||
|
<li>Destinazione</li>
|
||||||
|
<li>Documenti</li>
|
||||||
|
<li>Crediti</li>
|
||||||
|
<li>Articoli</li>
|
||||||
|
<li>Stampa etichette</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
MAGAZZINO
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Scheda articolo</li>
|
||||||
|
<li>Stampa etichette</li>
|
||||||
|
<li>Storico movimenti articoli</li>
|
||||||
|
<li>Lista articoli / sottoscora / ordinati</li>
|
||||||
|
<li>Creazione documento inventario / ordine</li>
|
||||||
|
<li>Calcolo valore magazzino</li>
|
||||||
|
<li>Listini (modifica, aggiornamento e stampa)</li>
|
||||||
|
<li>Notifica articoli sottoscorta</li>
|
||||||
|
<li>Gestione lotti</li>
|
||||||
|
<li>Gestione allegati</li>
|
||||||
|
<li>Inventario con riallineamento giacenze</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
SCADENZARIO
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Scadenze pagamenti clienti e fornitori</li>
|
||||||
|
<li>Saldo parziale / totale scadenze</li>
|
||||||
|
<li>Notifica crediti in scadenza e/o scaduti</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
STATISTICHE
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Lista documenti e totali per cliente</li>
|
||||||
|
<li>Totali e dettaglio articoli</li>
|
||||||
|
<li>Totali articoli per gruppi appartenenza</li>
|
||||||
|
<li>Totali per iva</li>
|
||||||
|
<li>Elenco clienti / fornitori</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
AGENDA
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Gestione semplificata di appuntamenti ed impegni</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
CALENDARIO APPUNTAMENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Calendario e agenda professionale per la gestione degli appuntamenti</li>
|
||||||
|
<li>Ricerca avanzata e gestione stati appuntamento</li>
|
||||||
|
<li>Campi ed intervalli orari parametrici</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
PROMEMORIA
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Gestione appunti</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
PRIMA NOTA
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Inserimento manuale movimenti</li>
|
||||||
|
<li>Creazione automatica movimenti da registrazione documenti e saldo pagamenti.</li>
|
||||||
|
<li>(gestione regole per la creazione automatica dei movimenti)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
AGENDA PAGAMENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Agenda indipendente per l'inserimento semplificato delle scadenze dei pagamenti</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
DIARIO PRESENZE
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Agenda per memorizzare le ore di presenza dei collaboratori</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
AGENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Gestione agenti</li>
|
||||||
|
<li>Calcolo provvigioni con % su importo fatture</li>
|
||||||
|
<li>Calcolo provvigioni con tabella provvigioni (su articoli e sconti applicati)</li>
|
||||||
|
<li>Stampa e saldo provvigioni agenti</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
BANCO
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-5">
|
||||||
|
<li>Interfaccia grafica "vendita al banco"</li>
|
||||||
|
<li>Collegabile con misuratori fiscali*</li>
|
||||||
|
<li>Compatibile con monitor touch screen</li>
|
||||||
|
<li>Compatibile con stampantine termiche**</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="fs-sm text-muted mb-0">
|
||||||
|
<small>
|
||||||
|
*Tutti i misuratori che utilizzano il protocollo Xon-Xoff (per maggiori informazioni è consigliabile contattarci telefonicamente).
|
||||||
|
<br>**Stampanti dotati di driver per Windows.
|
||||||
|
</small>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
GESTIONE UTENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Gestione utenti e permessi</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
GESTIONE ARCHIVI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Creazione e manutenzione archivi</li>
|
||||||
|
<li>Backup manuale e/o automatico</li>
|
||||||
|
<li>Ottimizzazione archivio</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
UTILITY E VERTICALIZZAZIONI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Calcolatrice</li>
|
||||||
|
<li>Importazione anagrafiche contatti</li>
|
||||||
|
<li>Importazione anagrafiche articoli</li>
|
||||||
|
<li>Controllo e download automatico aggiornamenti software</li>
|
||||||
|
<li>Verticalizzazioni (carrozzeria, vetreria, panificio, mercato ittico)</li>
|
||||||
|
<li>Utility (calcolo superficie marmo, calcolo litri, calcolo quantità da prezzo totale)</li>
|
||||||
|
<li>Varie (lettere di sollecito, stampa bollettino postale td123)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
PDF E INVIO EMAIL
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-5">
|
||||||
|
<li>Esportazione documenti in formato PDF ***</li>
|
||||||
|
<li>Invio automatico email di cortesia per le Fattura Elettroniche </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="fs-sm text-muted mb-0">
|
||||||
|
<small>
|
||||||
|
*** per sistemi precedenti a Window 10 è necessario utilizzare PDFCreator
|
||||||
|
</small>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
ALTRO
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Prezzi unitari fino a 6 decimali</li>
|
||||||
|
<li>Quantità fino a 4 decimali</li>
|
||||||
|
<li>Modalità prezzi iva inclusa / iva esclusa</li>
|
||||||
|
<li>Ritenuta d'acconto</li>
|
||||||
|
<li>Acconto, bollo, incentivo</li>
|
||||||
|
<li>Spese incasso, trasporto e varie</li>
|
||||||
|
<li>Gestione lotti</li>
|
||||||
|
<li>Campi aggiuntivi per matricole, colli</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
GESTIONE INTERVENTI
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Interventi, calendario interventi, storico interventi (per la programmazione esterna delle assistenze)</li>
|
||||||
|
<li>Riparazioni, storico riparazioni (per la gestione interna delle riparazioni)</li>
|
||||||
|
<li>Apparecchiature clienti</li>
|
||||||
|
<li>Contratti, calendario contratti</li>
|
||||||
|
<li>Programmazione interventi</li>
|
||||||
|
<li>Ticket</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<p class="mb-1">
|
||||||
|
MULTIPOSTAZIONE
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="fs-sm text-muted mb-0">
|
||||||
|
<li>Possibilità di lavorare contemporaneamente da più postazioni sullo stesso archivio (condiviso su rete ethernet con massimo 5 postazioni attive simultaneamente).</li>
|
||||||
|
<li>Possibilità' di utilizzare la licenza su tutti i computer dell'azienda (con stessa Partita IVA)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td class="text-reset text-decoration-none text-center align-top">
|
||||||
|
<span class="badge fs-4 badge-rounded-circle bg-success-soft"><i
|
||||||
|
class="fe fe-check"></i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CTA -->
|
||||||
|
<section class="py-10 py-md-10 bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-4 text-white">
|
||||||
|
Prova tutte le caratteristiche ...
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-muted mb-6 mb-md-8">
|
||||||
|
Scarica il software gratuitamente e prova tutte le sue funzionalità
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="<?= $this->url(['action' => 'downloadsoftware'], 'it', true); ?>"
|
||||||
|
class="btn btn-primary-desat lift">
|
||||||
|
Provalo Ora <i class="fe fe-arrow-right ms-2"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CURVE -->
|
||||||
|
<div class="position-relative">
|
||||||
|
<div class="shape shape-bottom shape-fluid-x text-gray-200">
|
||||||
|
<svg viewBox="0 0 2880 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 48h2880V0h-720C1442.5 52 720 0 720 0H0v48z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
<section class="pt-8 pt-md-11 pb-8 pb-md-14">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-12 col-md">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-4 mb-2">
|
||||||
|
Copyright
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="my-6 my-md-8">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-md-12" style="text-align: justify;">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3 class="mt-5">
|
||||||
|
OGGETTO
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="">
|
||||||
|
Il servizio di assistenza telefonica, esclusivamente sui software della Adriatica Sistemi che la
|
||||||
|
prevedono, viene fornito dalle ore 8.30 alle 13.00 e dal lunedì al venerdì, esclusi i giorni festivi
|
||||||
|
e feriali non lavorativi per un massimo di 150 minuti annui, suddivisi in scatti da dieci minuti
|
||||||
|
ciascuno. Per le telefonate di durata inferiore a dieci minuti, verrà in ogni caso conteggiato uno
|
||||||
|
scatto o una chiamata, con un massimo di n. 15 telefonate annue. É esclusa la presenza in loco di
|
||||||
|
personale tecnico ed ogni fornitura di materiali o pezzi di ricambio. Il servizio di assistenza
|
||||||
|
telefonica fornisce al Cliente la possibilità di parlare al telefono con un tecnico che potrà anche
|
||||||
|
operare in teleassistenza (se il computer su cui bisogna intervenire dispone di una connessione
|
||||||
|
internet) e riguarda la risoluzione di problemi o la consulenza circa l'utilizzo di tutti i software
|
||||||
|
prodotti da Adriatica Sistemi, regolarmente acquistati e licenziati. Sono esclusi dal servizio i
|
||||||
|
prodotti in versione DEMO e i prodotti di terzi. Il mancato utilizzo delle telefonate a
|
||||||
|
disposizione, sia esso totale o parziale, non dà diritto alla restituzione del prezzo pattuito.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<h3>
|
||||||
|
RISERVATEZZA
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p class="">
|
||||||
|
La Adriatica Sistemi si impegna a prendere ogni ragionevole misura per assicurare che tutte le
|
||||||
|
informazioni di carattere segreto o riservato conosciute dal Cliente che rimangano tali, come pure
|
||||||
|
tutti i dati elaborati in ordine a quelle informazioni.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<h3>
|
||||||
|
COPYRIGHT
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p class="">
|
||||||
|
La Adriatica Sistemi rimane l'unica titolare dei diritti proprietari e di sfruttamento economico
|
||||||
|
relativi a invenzioni e programmi (inclusi software, documentazione e programmi scritti, studi, ecc)
|
||||||
|
e a quant'altro sia stato preparato, realizzato, sviluppato in funzione dei servizi acquistati dal
|
||||||
|
Cliente, al quale è concesso solo un diritto d'uso limitato e non trasferibile.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>RESPONSABILITA'</h3>
|
||||||
|
|
||||||
|
<p class="">
|
||||||
|
La Adriatica Sistemi si impegna ad impiegare la migliore tecnologia di cui è a conoscenza e le
|
||||||
|
migliori risorse a sua disposizione per fornire i Servizi oggetto del presente contratto. Il Cliente
|
||||||
|
conviene e concorda che Adriatica Sistemi non potrà in alcun caso essere ritenuta responsabile dei
|
||||||
|
ritardi o malfunzionamenti nella prestazione dei Servizi dipendenti da eventi fuori dal ragionevole
|
||||||
|
controllo della stessa quali, a titolo esemplificativo: (i) eventi di forza maggiore; (ii) eventi
|
||||||
|
dipendenti da fatto di terzi quali, a titolo meramente esemplificativo, l'interruzione o il
|
||||||
|
malfunzionamento dei servizi degli operatori di telecomunicazioni e/o delle linee elettriche; (iii)
|
||||||
|
malfunzionamento dei terminali o degli altri sistemi di comunicazione utilizzati dal Cliente. In
|
||||||
|
caso di interruzione del Servizio la Adriatica Sistemi si impegna a ripristinare il Servizio nel
|
||||||
|
minor tempo possibile. Il Cliente, inoltre, conviene e concorda che Adriatica Sistemi non potrà in
|
||||||
|
alcun caso essere ritenuta responsabile per atti od omissioni compiuti dal Cliente e in contrasto
|
||||||
|
con le obbligazioni da questi assunte ai sensi delle presenti condizioni o di quelle del singolo
|
||||||
|
software acquistato, così come non potrà essere ritenuta responsabile per malfunzionamenti dovuti a
|
||||||
|
vizi dei mezzi indispensabili all'accesso, ad un uso improprio degli stessi e/o delle modalità di
|
||||||
|
accesso al servizio da parte del Cliente o di terzi. La Adriatica Sistemi non potrà essere in nessun
|
||||||
|
caso ritenuta responsabile nei confronti del Cliente o di terzi per perdita di profitto, mancato
|
||||||
|
guadagno, né per qualsiasi altra forma di lucro cessante o danno indiretto e consequenziale connesso
|
||||||
|
all'esecuzione del presente contratto.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<!-- CTA -->
|
||||||
|
<section class="py-10 py-md-14 bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-4 text-white">
|
||||||
|
Avvio del download ...
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-muted mb-6 mb-md-8">
|
||||||
|
è in corso il download del software Fattura Facile<br>
|
||||||
|
in caso non dovesse avviarsi automaticamente utilizzare il pulsante.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="https://www.gestionespiaggia.it/downloads/fatturafacileinstall.exe" class="btn btn-primary-desat lift">
|
||||||
|
Scarica <i class="fe fe-arrow-right ms-2"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,380 @@
|
|||||||
|
<!-- WELCOME -->
|
||||||
|
<section class="position-relative py-8 py-md-11 mb-9">
|
||||||
|
|
||||||
|
<!-- Shape -->
|
||||||
|
<div class="shape shape-fluid-x shape-blur-1 text-gray-200">
|
||||||
|
<svg viewBox="0 0 723 569" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M703.969 241.602l-.006-.003C716.081 262.97 723 287.677 723 314c0 68.917-47.425 126.757-111.42 142.665L246.7 556.937C226.465 564.729 204.481 569 181.5 569 81.26 569 0 487.74 0 387.5c0-34.256 9.49-66.296 25.985-93.633l-.016.008L141.512 77.548C162.753 33.305 207.123 2.273 258.951.12l.008-.12h251.04l.003.01c41.848.557 78.081 24.378 96.356 59.12l.001-.005 97.61 182.477z"
|
||||||
|
fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Contetn -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-12 col-md-6 order-md-2">
|
||||||
|
|
||||||
|
<!-- Image -->
|
||||||
|
<div class="img-skewed img-skewed-start mb-8 mb-md-0">
|
||||||
|
<img src="assets/img/screenshots/desktop/home_screen.png" alt="..."
|
||||||
|
class="screenshot img-fluid mw-md-130" data-aos="img-skewed-item-start" data-aos-delay="100">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-6 order-md-1" data-aos="fade-up">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-3">
|
||||||
|
Fattura
|
||||||
|
<span class="text-primary">Facile</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="lead text-muted mb-6 mb-md-8">
|
||||||
|
Il software gestionale che permette di gestire con estrema semplicità fatture, fatture elettroniche,
|
||||||
|
d.d.t., preventivi, magazzino e scadenze.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Buttons -->
|
||||||
|
<a href="<?= $this->url(['action' => 'downloadsoftware'], 'it', true); ?>"
|
||||||
|
class="btn btn-primary me-1 lift">
|
||||||
|
Download <i class="fe fe-arrow-right ms-3"></i>
|
||||||
|
</a>
|
||||||
|
<a href="<?= $this->url(['action' => 'acquista'], 'it', true); ?>" class="btn btn-primary-soft lift">
|
||||||
|
Acquista
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- FEATURES -->
|
||||||
|
<section class="py-8 py-md-11 bg-white">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<polygon points="0 0 24 0 24 24 0 24"/>
|
||||||
|
<path d="M4.85714286,1 L11.7364114,1 C12.0910962,1 12.4343066,1.12568431 12.7051108,1.35473959 L17.4686994,5.3839416 C17.8056532,5.66894833 18,6.08787823 18,6.52920201 L18,19.0833333 C18,20.8738751 17.9795521,21 16.1428571,21 L4.85714286,21 C3.02044787,21 3,20.8738751 3,19.0833333 L3,2.91666667 C3,1.12612489 3.02044787,1 4.85714286,1 Z M8,12 C7.44771525,12 7,12.4477153 7,13 C7,13.5522847 7.44771525,14 8,14 L15,14 C15.5522847,14 16,13.5522847 16,13 C16,12.4477153 15.5522847,12 15,12 L8,12 Z M8,16 C7.44771525,16 7,16.4477153 7,17 C7,17.5522847 7.44771525,18 8,18 L11,18 C11.5522847,18 12,17.5522847 12,17 C12,16.4477153 11.5522847,16 11,16 L8,16 Z"
|
||||||
|
fill="#000000" fill-rule="nonzero" opacity="0.3"/>
|
||||||
|
<path d="M6.85714286,3 L14.7364114,3 C15.0910962,3 15.4343066,3.12568431 15.7051108,3.35473959 L20.4686994,7.3839416 C20.8056532,7.66894833 21,8.08787823 21,8.52920201 L21,21.0833333 C21,22.8738751 20.9795521,23 19.1428571,23 L6.85714286,23 C5.02044787,23 5,22.8738751 5,21.0833333 L5,4.91666667 C5,3.12612489 5.02044787,3 6.85714286,3 Z M8,12 C7.44771525,12 7,12.4477153 7,13 C7,13.5522847 7.44771525,14 8,14 L15,14 C15.5522847,14 16,13.5522847 16,13 C16,12.4477153 15.5522847,12 15,12 L8,12 Z M8,16 C7.44771525,16 7,16.4477153 7,17 C7,17.5522847 7.44771525,18 8,18 L11,18 C11.5522847,18 12,17.5522847 12,17 C12,16.4477153 11.5522847,16 11,16 L8,16 Z"
|
||||||
|
fill="#000000" fill-rule="nonzero"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Gestione Documenti
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-6 mb-md-0">
|
||||||
|
Crea rapidamente e facilemente tutti i documenti di cui hai bisogno Fatture,Fatture Elettroniche,
|
||||||
|
D.D.T., Preventivi, Ordini clienti / fornitori, Documenti da fornitore
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up" data-aos-delay="50">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g fill="none" fill-rule="evenodd">
|
||||||
|
<path d="M0 0h24v24H0z"/>
|
||||||
|
<path d="M17.272 8.685a1 1 0 111.456-1.37l4 4.25a1 1 0 010 1.37l-4 4.25a1 1 0 01-1.456-1.37l3.355-3.565-3.355-3.565zm-10.544 0L3.373 12.25l3.355 3.565a1 1 0 01-1.456 1.37l-4-4.25a1 1 0 010-1.37l4-4.25a1 1 0 011.456 1.37z"
|
||||||
|
fill="#335EEA"/>
|
||||||
|
<rect fill="#335EEA" opacity=".3" transform="rotate(15 12 12)" x="11" y="4" width="2"
|
||||||
|
height="16" rx="1"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Fattura Elettronica
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-6 mb-md-0">
|
||||||
|
Senza avvalersi di nessun altro strumento o servizio, inviare, firmare, ricevere e conservare le
|
||||||
|
Fatture Elettroniche, il tutto rapidamente e dall'interno del software.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up" data-aos-delay="100">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect x="0" y="0" width="24" height="24"/>
|
||||||
|
<path d="M18,2 L20,2 C21.6568542,2 23,3.34314575 23,5 L23,19 C23,20.6568542 21.6568542,22 20,22 L18,22 L18,2 Z"
|
||||||
|
fill="#000000" opacity="0.3"/>
|
||||||
|
<path d="M5,2 L17,2 C18.6568542,2 20,3.34314575 20,5 L20,19 C20,20.6568542 18.6568542,22 17,22 L5,22 C4.44771525,22 4,21.5522847 4,21 L4,3 C4,2.44771525 4.44771525,2 5,2 Z M12,11 C13.1045695,11 14,10.1045695 14,9 C14,7.8954305 13.1045695,7 12,7 C10.8954305,7 10,7.8954305 10,9 C10,10.1045695 10.8954305,11 12,11 Z M7.00036205,16.4995035 C6.98863236,16.6619875 7.26484009,17 7.4041679,17 C11.463736,17 14.5228466,17 16.5815,17 C16.9988413,17 17.0053266,16.6221713 16.9988413,16.5 C16.8360465,13.4332455 14.6506758,12 11.9907452,12 C9.36772908,12 7.21569918,13.5165724 7.00036205,16.4995035 Z"
|
||||||
|
fill="#000000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Contatti
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-0">
|
||||||
|
Gestisci le anagrafiche clienti e sfrutta tutte le funzionalità di Ricerca avanzata, Gestione
|
||||||
|
allegati, Banca e pagamenti, Destinazioni, Articoli, Stampa etichette
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
|
||||||
|
<div class="row mt-10">
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect x="0" y="0" width="24" height="24"/>
|
||||||
|
<path d="M4,7 L20,7 L20,19.5 C20,20.3284271 19.3284271,21 18.5,21 L5.5,21 C4.67157288,21 4,20.3284271 4,19.5 L4,7 Z M10,10 C9.44771525,10 9,10.4477153 9,11 C9,11.5522847 9.44771525,12 10,12 L14,12 C14.5522847,12 15,11.5522847 15,11 C15,10.4477153 14.5522847,10 14,10 L10,10 Z"
|
||||||
|
fill="#000000"/>
|
||||||
|
<rect fill="#000000" opacity="0.3" x="2" y="3" width="20" height="4" rx="1"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Magazzino
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-6 mb-md-0">
|
||||||
|
Gestione degli articoli di magazzino e generazione automatica dello storico dei movimenti, gestione
|
||||||
|
listini, e calcolo del valore di magazzino, lotti e allegati.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up" data-aos-delay="50">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect x="0" y="0" width="24" height="24"/>
|
||||||
|
<path d="M13.6855025,18.7082217 C15.9113859,17.8189707 18.682885,17.2495635 22,17 C22,16.9325178 22,13.1012863 22,5.50630526 L21.9999762,5.50630526 C21.9999762,5.23017604 21.7761292,5.00632908 21.5,5.00632908 C21.4957817,5.00632908 21.4915635,5.00638247 21.4873465,5.00648922 C18.658231,5.07811173 15.8291155,5.74261533 13,7 C13,7.04449645 13,10.79246 13,18.2438906 L12.9999854,18.2438906 C12.9999854,18.520041 13.2238496,18.7439052 13.5,18.7439052 C13.5635398,18.7439052 13.6264972,18.7317946 13.6855025,18.7082217 Z" fill="#000000"/>
|
||||||
|
<path d="M10.3144829,18.7082217 C8.08859955,17.8189707 5.31710038,17.2495635 1.99998542,17 C1.99998542,16.9325178 1.99998542,13.1012863 1.99998542,5.50630526 L2.00000925,5.50630526 C2.00000925,5.23017604 2.22385621,5.00632908 2.49998542,5.00632908 C2.50420375,5.00632908 2.5084219,5.00638247 2.51263888,5.00648922 C5.34175439,5.07811173 8.17086991,5.74261533 10.9999854,7 C10.9999854,7.04449645 10.9999854,10.79246 10.9999854,18.2438906 L11,18.2438906 C11,18.520041 10.7761358,18.7439052 10.4999854,18.7439052 C10.4364457,18.7439052 10.3734882,18.7317946 10.3144829,18.7082217 Z" fill="#000000" opacity="0.3"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Scadenzario
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-6 mb-md-0">
|
||||||
|
Consulta le scadenza dei pagamenti di clienti e fornotori, effettua un saldo parziale della
|
||||||
|
scadenza, notifica crediti in scadenza o scaduti.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-4" data-aos="fade-up" data-aos-delay="100">
|
||||||
|
|
||||||
|
<!-- Icon -->
|
||||||
|
<div class="icon text-primary mb-3">
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<rect x="0" y="0" width="24" height="24"/>
|
||||||
|
<rect fill="#000000" opacity="0.3" x="17" y="4" width="3" height="13" rx="1.5"/>
|
||||||
|
<rect fill="#000000" opacity="0.3" x="12" y="9" width="3" height="8" rx="1.5"/>
|
||||||
|
<path d="M5,19 L20,19 C20.5522847,19 21,19.4477153 21,20 C21,20.5522847 20.5522847,21 20,21 L4,21 C3.44771525,21 3,20.5522847 3,20 L3,4 C3,3.44771525 3.44771525,3 4,3 C4.55228475,3 5,3.44771525 5,4 L5,19 Z"
|
||||||
|
fill="#000000" fill-rule="nonzero"/>
|
||||||
|
<rect fill="#000000" opacity="0.3" x="7" y="11" width="3" height="6" rx="1.5"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h3>
|
||||||
|
Statistiche
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-muted mb-0">
|
||||||
|
Consulta le statistiche per visualizzare la lista documenti e totali per cliente, o il dettaglio
|
||||||
|
articoli, totali iva ed elenco clienti / fornitori.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mt-10 justify-content-center">
|
||||||
|
<div class="col-12 col-md-6" data-aos="fade-up">
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="<?= $this->url(['action' => 'caratteristiche'], 'it', true); ?>" class="btn w-100 btn-primary d-flex align-items-center lift">
|
||||||
|
Scopri tutte le caratteristiche <i class="fe fe-arrow-right ms-auto"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="position-relative">
|
||||||
|
<div class="shape shape-bottom shape-fluid-x text-light">
|
||||||
|
<svg viewBox="0 0 2880 480" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M720 0c720 240 1440 240 1440 240h720v240H0V0h720z" fill="currentColor"></path></svg> </div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- PRICING -->
|
||||||
|
<section class="pt-9 pb-10 py-md-11 bg-gradient-light-white">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h2>
|
||||||
|
<span class="text-primary">Prezzi</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="lead text-gray-700">
|
||||||
|
Un unica licenza annuale con tutte le funzionalità incluse
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
<div class="row justify-content-center mt-3">
|
||||||
|
<div class="col-6 col-md-5 col-lg-5">
|
||||||
|
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="card card-border card-border-xl border-primary shadow-light-lg mb-6 mb-md-0 lift lift-lg">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<h6 class="fw-bold text-uppercase text-center text-success mb-5">Enterprise</h6>
|
||||||
|
|
||||||
|
<!-- Price -->
|
||||||
|
<div class="d-flex justify-content-center">
|
||||||
|
<span class="h2 mb-0 mt-2">€</span>
|
||||||
|
<span class="price display-2 mb-0" data-annual="29" data-monthly="49">185</span>
|
||||||
|
<span class="h2 align-self-end mb-1 ms-1"> + iva</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="text-center text-muted mb-6 mb-md-8">
|
||||||
|
Annuali
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- List -->
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p>
|
||||||
|
Gestione documenti
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p>
|
||||||
|
Fatturazione elettronica con 1000 fatture incluse
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p>
|
||||||
|
Gestione anagrafiche clienti e articoli
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="d-flex">
|
||||||
|
|
||||||
|
<!-- Badge -->
|
||||||
|
<span class="badge badge-rounded-circle bg-success-soft mt-1 me-4">
|
||||||
|
<i class="fe fe-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="mb-0">
|
||||||
|
Assistenza telefonica inclusa per un anno <a
|
||||||
|
href="<?= $this->url(['action' => 'assistenza'], 'it', true); ?>">qui tutti i
|
||||||
|
dettagli</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CTA -->
|
||||||
|
<section class="py-10 py-md-14 bg-dark">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12 col-md-10 col-lg-8 text-center">
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<h1 class="display-4 text-white">
|
||||||
|
Scopri tutte le caratteristiche ...
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- Text -->
|
||||||
|
<p class="fs-lg text-muted mb-6 mb-md-8">
|
||||||
|
Scarica il software gratuitamente e prova tutte le sue funzionalità
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<a href="<?= $this->url(['action' => 'downloadsoftware'], 'it', true); ?>"
|
||||||
|
class="btn btn-primary-desat lift">
|
||||||
|
Provalo Ora <i class="fe fe-arrow-right ms-2"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- / .row -->
|
||||||
|
</div> <!-- / .container -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CURVE -->
|
||||||
|
<div class="position-relative">
|
||||||
|
<div class="shape shape-bottom shape-fluid-x text-gray-200">
|
||||||
|
<svg viewBox="0 0 2880 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 48h2880V0h-720C1442.5 52 720 0 720 0H0v48z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="it">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="theme-color" content="#fff">
|
||||||
|
<title><?= $this->datiAziendali['NomeSito']; ?></title>
|
||||||
|
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans|Pacifico" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
html {
|
||||||
|
width:100%;
|
||||||
|
height:100%;
|
||||||
|
background:#fff;
|
||||||
|
font-family: 'Open Sans', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center-box{
|
||||||
|
padding: 10px;
|
||||||
|
text-align:center;
|
||||||
|
|
||||||
|
max-width: 450px;
|
||||||
|
|
||||||
|
position: fixed;
|
||||||
|
top: 45%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-moz-transform: translate(-50%, -50%);
|
||||||
|
-o-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center-box img{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1{
|
||||||
|
color: #333;
|
||||||
|
font-size: 2.7em;
|
||||||
|
border-top: 1px solid #fff;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 10px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img{
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="center-box">
|
||||||
|
<?php if(file_exists(APPLICATION_PATH . "/../public/baseImg/logo_as_full.png")): ?>
|
||||||
|
<img src="../public/baseImg/logo_as_full.png" />
|
||||||
|
<?php else: ?>
|
||||||
|
<img src="../public/baseImg/no_logo.png" />
|
||||||
|
<?php endif; ?>
|
||||||
|
<a href="mailto:<?= $this->Config('email_mittente'); ?>"><?= $this->Config('email_mittente'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Description of Bootstrap
|
||||||
|
*/
|
||||||
|
class Monitoring_Bootstrap extends Zend_Application_Module_Bootstrap
|
||||||
|
{
|
||||||
|
public function _init()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function _initPersonalRouter(){
|
||||||
|
|
||||||
|
$router= Zend_Controller_Front::getInstance()->getRouter();
|
||||||
|
|
||||||
|
$router->addRoute(
|
||||||
|
'monitoring',
|
||||||
|
new Zend_Controller_Router_Route('monitoring/:controller/:action',
|
||||||
|
array(
|
||||||
|
'module'=>'monitoring',
|
||||||
|
'controller'=>'index',
|
||||||
|
'action'=>'index'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class Monitoring_IndexController extends App_Controller_Sections_Section
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $_genericModel;
|
||||||
|
protected $_authService;
|
||||||
|
protected $_ipManager;
|
||||||
|
|
||||||
|
protected $_parametriSito;
|
||||||
|
protected $_datiAziendali;
|
||||||
|
|
||||||
|
public $_configs;
|
||||||
|
|
||||||
|
public $_MENUITEM;
|
||||||
|
public $_PAGETITLE;
|
||||||
|
public $_ICONTITLE;
|
||||||
|
public $_SECONDLEVEL;
|
||||||
|
public $_SECONDLEVEL_ACTION;
|
||||||
|
public $_SIDEBAR_COLLAPSED;
|
||||||
|
|
||||||
|
public $_EVENTLOADER;
|
||||||
|
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->_helper->layout->setLayout('admin');
|
||||||
|
$this->_authService = new App_Service_Auth();
|
||||||
|
$this->_genericModel = new Application_Model_Generic();
|
||||||
|
$this->_configs = new App_Service_ConfigManager();
|
||||||
|
$this->_ipManager = new App_Service_IpManager();
|
||||||
|
|
||||||
|
$this->_parametriSito = new App_Service_JsonConfiguration('parametri_sito');
|
||||||
|
$this->_datiAziendali = new App_Service_JsonConfiguration('dati_aziendali');
|
||||||
|
|
||||||
|
$this->_MENUITEM = 'dashboard';
|
||||||
|
$this->_PAGETITLE = 'DashBoard';
|
||||||
|
$this->_ICONTITLE = 'fa-dashboard';
|
||||||
|
|
||||||
|
$this->_SECONDLEVEL = null;
|
||||||
|
$this->_SECONDLEVEL_ACTION = null;
|
||||||
|
|
||||||
|
$this->_EVENTLOADER = FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preDispatch()
|
||||||
|
{
|
||||||
|
$this->view->moduleName = 'monitoring';
|
||||||
|
|
||||||
|
if ($this->_getParam('update')) {
|
||||||
|
$this->view->update = $this->_getParam('update');
|
||||||
|
} else {
|
||||||
|
$this->view->update = '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->_getParam('err')) {
|
||||||
|
$this->view->error = $this->_getParam('err');
|
||||||
|
} else {
|
||||||
|
$this->view->error = '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
//Controllo delle notifiche
|
||||||
|
$nNot = $this->_genericModel->countFiltered('Errorlog', array('state = ?' => 1));
|
||||||
|
$this->view->notification = $nNot;
|
||||||
|
if ($nNot > 0) {
|
||||||
|
$this->view->notificationlist = $this->_genericModel->customQuery("SELECT COUNT(*) as tot, section, state FROM `error_log` WHERE state = '1' GROUP BY section");
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_SIDEBAR_COLLAPSED = $_COOKIE['ui_sidebar_collapsed'];
|
||||||
|
|
||||||
|
$this->view->enableTestSdk = $this->_ipManager->controllaAbilitazioneTestSdk();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postDispatch()
|
||||||
|
{
|
||||||
|
$this->view->action = $this->getRequest()->getActionName();
|
||||||
|
|
||||||
|
$this->view->menu = $this->_MENUITEM;
|
||||||
|
$this->view->pageTitle = $this->_PAGETITLE;
|
||||||
|
$this->view->iconTitle = $this->_ICONTITLE;
|
||||||
|
|
||||||
|
$this->view->secondLevel = $this->_SECONDLEVEL;
|
||||||
|
$this->view->secondLevelAction = $this->_SECONDLEVEL_ACTION;
|
||||||
|
|
||||||
|
$this->view->sideBarCollapsed = $this->_SIDEBAR_COLLAPSED;
|
||||||
|
|
||||||
|
$this->view->eventLoader = $this->_EVENTLOADER;
|
||||||
|
|
||||||
|
$this->view->parametriSito = $this->_parametriSito->getAllParams();
|
||||||
|
$this->view->datiAziendali = $this->_datiAziendali->getAllParams();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logoutAction()
|
||||||
|
{
|
||||||
|
$this->_authService->clear();
|
||||||
|
|
||||||
|
return $this->_helper->redirector('index', 'index', 'default');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function indexAction()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*===============================================================================================
|
||||||
|
* =========================== FUNZIONI PRIVATE DEL CONTROLLER =========================
|
||||||
|
* =============================================================================================*/
|
||||||
|
|
||||||
|
public function getMainModel()
|
||||||
|
{
|
||||||
|
return $this->_genericModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} //Close Class
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?php if ($this->pageCount > 1): ?>
|
||||||
|
<ul class="pagination pagination-sm float-right">
|
||||||
|
<!-- Link alla prima pagina -->
|
||||||
|
<?php if (isset($this->previous)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> first,'count' => $this -> count,'action'=>$this->action ,'module'=>$this->moduleName),'filterpager',true); ?>"><i class="fa fa-angle-double-left"></i></a>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="page-item disabled"><a class="page-link" href="#"><i class="fa fa-angle-double-left"></i></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link alla pagina precedente -->
|
||||||
|
<?php if (isset($this->previous)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> previous,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',true); ?>"><i class="fa fa-angle-left"></i></a><li>
|
||||||
|
<?php else: ?>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link pagina numerata -->
|
||||||
|
<?php foreach ($this->pagesInRange as $page): ?>
|
||||||
|
<?php if ($page != $this->current): ?>
|
||||||
|
<li class="page-item" style="font-size: 10px;"><a class="page-link" href="<?php echo $this -> url(array('page' => $page,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>">
|
||||||
|
<?php echo $page; ?>
|
||||||
|
</a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="active page-item" style="font-size: 10px;"><a class="page-link" href="<?php echo $this -> url(array('page' => $page,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>"><?php echo $page; ?></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
|
||||||
|
<!-- Link alla pagina successiva -->
|
||||||
|
<?php if (isset($this->next)): ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $this -> url(array('page' => $this -> next,'count' => $this -> count,'action'=>$this->action, 'module'=>$this->moduleName),'filterpager',false); ?>"><i class="fa fa-angle-right"></i></a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Link all'ultima pagina -->
|
||||||
|
<?php if (isset($this->next)): ?>
|
||||||
|
<li class="page-item" style="margin-right:10px;"><a class="page-link" href="<?= $this -> url(array('page' => $this -> last,'count' => $this -> count,'action'=>$this->action),'filterpager',false); ?>"><i class="fa fa-angle-double-right"></i></a></li>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="page-item disabled"><a class="page-link" href="#"><i class="fa fa-angle-double-right"></i></a></li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="text-counter">
|
||||||
|
dal: <?php echo $this -> firstItemNumber; ?> - <?= $this -> lastItemNumber; ?> di <?= $this -> totalItemCount; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<?php endif; ?>
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<div class="modal fade" id="modal" data-form="modalForm" tabindex="-1" data-backdrop="false"
|
||||||
|
role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
|
||||||
|
<div id="modal-loader" class="overlay d-none justify-content-center align-items-center">
|
||||||
|
<i class="fas fa-2x fa-sync fa-spin"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title flot-left" id="myModalLabel"><i
|
||||||
|
class="fa fa-fw <?= ($this->iconTitle) ? $this->iconTitle : 'fa-pencil'; ?> modal_icon"></i>
|
||||||
|
Log</h5>
|
||||||
|
<button id="close-modal" type="button" class="close float-right" data-dismiss="modal"
|
||||||
|
aria-hidden="true">×
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body pdb-0">
|
||||||
|
|
||||||
|
<form id="modalForm" name="modalForm" class="compact-form no-border-radius"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'salva' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-get="<?= $this->url(array('controller' => 'index', 'action' => 'get' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-delete="<?= $this->url(array('controller' => 'index', 'action' => 'delete' . $this->resourceName, 'id' => $this->id), $this->moduleName, true); ?>"
|
||||||
|
method="post" role="form">
|
||||||
|
|
||||||
|
<input type="hidden" value="" class="form-control" id="id" name="id" form="modalForm" required>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div id="ErrorDescription" class="alert alert-warning alert-sm d-none"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="undo" class="btn btn-default pull-left" data-dismiss="modal"><i
|
||||||
|
class="fa fa-times"></i>
|
||||||
|
Chiudi
|
||||||
|
</button>
|
||||||
|
<button type="button" id="save" op="insert" class="btn btn-success"><i class="fa fa-save"></i>
|
||||||
|
Salva
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
<div class="col-12 col-md-4 no-padding-r-sm">
|
||||||
|
<input type="text" id="data_search" name="data" daterangepicker
|
||||||
|
value="<?= $this->search_params['data']; ?>" class="form-control no-border-right-sm"
|
||||||
|
placeholder="Data Inserimento"/>
|
||||||
|
<input type="hidden" value="DATERANGE" name="dataOP" id="dataOP"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 no-padding-r-l-sm">
|
||||||
|
<input type="text" id="ip_search" name="ip" value="<?= $this->search_params['ip']; ?>"
|
||||||
|
class="form-control no-border-right-sm" placeholder="Ip"/>
|
||||||
|
<input type="hidden" value="LIKE" name="ipOP" id="ipOP"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-2 no-padding-l-sm">
|
||||||
|
<?php $totFilter = count($this->CleanFiltersParam($this->search_params)); ?>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="submit" title="Cerca" class="btn btn-brand btn-flat"><i
|
||||||
|
class="fa fa-search fa-fw"></i></button>
|
||||||
|
<a href="<?= $this->url(array('module' => $this->moduleName, 'action' => 'list' . $this->resourceName, 'reset' => 'true'), 'default', true); ?>"
|
||||||
|
data-toggle="tooltip" data-container="body" data-placement="right"
|
||||||
|
title="Reset (Filtri attivi: <?= $totFilter; ?> )"
|
||||||
|
class="btn btn-<?= ($totFilter > 0) ? 'danger' : 'info'; ?> btn-flat"
|
||||||
|
type="button"><i class="fa fa-times fa-fw"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
<div class="box box-no-border box-no-shadow pd10 mb-0">
|
||||||
|
|
||||||
|
<div class="box-header">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!--FORM DI RICERCA-->
|
||||||
|
<div class="float-left box-title search-left hidden-xs">
|
||||||
|
|
||||||
|
<form class="form-horizontal" id="searchForm" name="searchForm" method="post"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?= $this->render("index/$this->resourceName/_searchBlock.phtml"); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" id="order" name="order" class="hidden" value="<?= $this->order; ?>"/>
|
||||||
|
<input type="hidden" id="tipoOrder" name="tipoOrder" class="hidden" value="<?= $this->tipoOrder; ?>"/>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--BLOCCO FUNZIONI LATO SINISTRA-->
|
||||||
|
<div class="float-right box-title search-right">
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
|
||||||
|
<?php if ($this->isActiveNewInsert): ?>
|
||||||
|
<button data-toggle="tooltip" title="Nuovo" id="new" class="btn btn-brand btn-flat" type="button"
|
||||||
|
data-target="#Modal" data-toggle="modal"><i class="fa fa-plus"></i></button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<button data-toggle="tooltip" title="Filtra" id="filterData" class="btn btn-brand btn-flat"
|
||||||
|
type="button" data-target="#filterModal" data-toggle="modal">
|
||||||
|
<?php if ($totFilter > 0): ?>
|
||||||
|
<span class="badge bg-red"><?= $totFilter; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
<i class="fa fa-filter"></i>
|
||||||
|
</button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-flat btn-brand dropdown-toggle" type="button" id="dropdownMenuButton"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="d-none-xs">Selezionati</span> <span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- INIZIO TABELLA -->
|
||||||
|
|
||||||
|
<div class="box-body table-responsive table-wrapper">
|
||||||
|
<table class="table table-border table-striped flot-header">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<?= $this->render("index/$this->resourceName/th.phtml") ?>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="tablebody">
|
||||||
|
<?php if (count($this->table) > 0): ?>
|
||||||
|
<?php foreach ($this->table as $key => $value): ?>
|
||||||
|
<?= $this->partial("index/$this->resourceName/td.phtml", $value) ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<tr>
|
||||||
|
<?php if ($totFilter <= 0): ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun record presente
|
||||||
|
</td>
|
||||||
|
<?php else: ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun risultato trovato in base alla ricerca
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box-footer clearfix">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!--FUNZIONE MULTIPLE-->
|
||||||
|
<div class="col-4 col-xs-12">
|
||||||
|
<div class="btn-group btn-group-sm float-left dropup d-none-xs dropdown-multifunction-down">
|
||||||
|
<button class="btn btn-default btn-flat" type="button">
|
||||||
|
Selezionati
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-default btn-flat dropdown-toggle" data-toggle="dropdown" type="button">
|
||||||
|
<span class="caret"></span>
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-8 col-xs-12">
|
||||||
|
<!--PAGINATOR FOOTER-->
|
||||||
|
<?php if ($this->table instanceof Zend_Paginator): ?>
|
||||||
|
<?= $this->paginationControl($this->table, 'Jumping', 'index/_paginator.phtml', array('action' => $this->action, 'count' => $this->count, 'moduleName'=>$this->moduleName)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="pagination-counter float-right">
|
||||||
|
<form name="paginationCounter"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName, 'page' => $this->page, 'count' => $this->count), $this->moduleName, false); ?>"
|
||||||
|
class="" method="post" role="form">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<label class="text-right d-none-xs mb-1" for="count">
|
||||||
|
<?php if ($this->totFiltrati != $this->totElementi): ?>
|
||||||
|
<span>Filtrati <?= $this->totFiltrati ?> su <?= $this->totElementi; ?> totali </span>
|
||||||
|
<?php else: ?>
|
||||||
|
<span>Tot. <?= $this->totElementi; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" class="form-control"
|
||||||
|
id="count" aria-describedby="inputGroup-sizing-sm"
|
||||||
|
value="" placeholder="<?= $this->count; ?>" name="count"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveModalDetail): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modal.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modalFilter.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->idDetail > 0): ?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
edit(<?= $this->idDetail; ?>);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<tr data-id="<?= $this->id ?>">
|
||||||
|
<td class="text-center"><input type="checkbox" value="<?= $this->id ?>" name="select-items[]"
|
||||||
|
id="select-items"></td>
|
||||||
|
|
||||||
|
<td class="text-center"><?= $this->ExtractData($this->data, 'withtime', true); ?></td>
|
||||||
|
<td class="text-center"><?= $this->ip; ?></td>
|
||||||
|
<td>
|
||||||
|
<?php switch ($this->tipo):
|
||||||
|
case'admin': ?>
|
||||||
|
<span class="label label-danger">
|
||||||
|
<?php break;
|
||||||
|
case'monitoring': ?>
|
||||||
|
<span class="label label-warning">
|
||||||
|
<?php break;
|
||||||
|
case'forum': ?>
|
||||||
|
<span class="label label-info">
|
||||||
|
<?php break;
|
||||||
|
case 'bloggers': ?>
|
||||||
|
<span class="label bg-fuchsia">
|
||||||
|
<?php break;
|
||||||
|
case 'rivenditori': ?>
|
||||||
|
<span class="label bg-olive">
|
||||||
|
<?php break;
|
||||||
|
case'eWinfatt': ?>
|
||||||
|
<span class="label label-success">
|
||||||
|
<?php break; ?>
|
||||||
|
<?php endswitch; ?>
|
||||||
|
<?= ucfirst($this->tipo); ?></span>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<div class="text-center">
|
||||||
|
<button id="delete" class="btn btn-sm btn-danger btn-flat" type="button" data-toggle="tooltip"
|
||||||
|
data-container="body" title="Elimina">
|
||||||
|
<span class="fa fa-trash fa-fw"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<tr>
|
||||||
|
<th style="width:60px;" class="text-center">
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-default btn-sm dropdown-toggle dropdown-icon" type="button" id="dropdownMenuButton"
|
||||||
|
data-boundary="window"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="select_all" class="dropdown-item" href="#"><i class="far fa-check-square fa-fw"></i> Tutti</a>
|
||||||
|
<a id="deselect_all" class="dropdown-item" href="#"><i class="far fa-square fa-fw"></i> Nessuno</a>
|
||||||
|
<a id="invert_all" class="dropdown-item" href="#"><i class="fa fa-check-square fa-fw"></i> Inverti</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<th data-ord="data" style="width:120px;" class="text-center">Data</th>
|
||||||
|
<th data-ord="ip" style="width:100px;"class="text-center">Ip</th>
|
||||||
|
<th data-ord="tipo" class="">Tipo</th>
|
||||||
|
|
||||||
|
<th width="100px"></th>
|
||||||
|
</tr>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<div class="modal fade" id="modal" data-form="modalForm" tabindex="-1" data-backdrop="false"
|
||||||
|
role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
|
||||||
|
<div id="modal-loader" class="overlay d-none justify-content-center align-items-center">
|
||||||
|
<i class="fas fa-2x fa-sync fa-spin"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title flot-left" id="myModalLabel"><i
|
||||||
|
class="fa fa-fw <?= ($this->iconTitle) ? $this->iconTitle : 'fa-pencil'; ?> modal_icon"></i>
|
||||||
|
Log</h5>
|
||||||
|
<button id="close-modal" type="button" class="close float-right" data-dismiss="modal"
|
||||||
|
aria-hidden="true">×
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body pdb-0">
|
||||||
|
|
||||||
|
<form id="modalForm" name="modalForm" class="compact-form no-border-radius"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'salva' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-get="<?= $this->url(array('controller' => 'index', 'action' => 'get' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-delete="<?= $this->url(array('controller' => 'index', 'action' => 'delete' . $this->resourceName, 'id' => $this->id), $this->moduleName, true); ?>"
|
||||||
|
method="post" role="form">
|
||||||
|
|
||||||
|
<div id="main_contenitor">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="undo" class="btn btn-default pull-left" data-dismiss="modal"><i
|
||||||
|
class="fa fa-times"></i>
|
||||||
|
Chiudi
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<div class="col-12 col-md-4 no-padding-r-sm">
|
||||||
|
<input type="text" daterangepicker id="data" name="data" value="<?= $this->search_params['data']; ?>" class="form-control no-border-right-sm"
|
||||||
|
placeholder="Data Inserimento"/>
|
||||||
|
<input type="hidden" value="DATERANGE" name="dataOP" id="dataOP" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-3 no-padding-r-l-sm">
|
||||||
|
<input type="text" id="msg_search" name="msg" value="<?= $this->search_params['msg']; ?>" class="form-control no-border-right-sm" placeholder="Messaggio"/>
|
||||||
|
<input type="hidden" value="LIKE" name="msgOP" id="msgOP" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-3 no-padding-r-l-sm">
|
||||||
|
<select id="state" name="state" class="form-control no-border-right-sm">
|
||||||
|
<option <?= ($this->search_params['state'] == '') ? 'selected':''; ?> value="">Stato...</option>
|
||||||
|
<option <?= ($this->search_params['state'] == '1') ? 'selected':''; ?> value="1">New</option>
|
||||||
|
<option <?= ($this->search_params['state'] == '2') ? 'selected':''; ?> value="2">Pending</option>
|
||||||
|
<option <?= ($this->search_params['state'] == '3') ? 'selected':''; ?> value="3">Resolved</option>
|
||||||
|
<option <?= ($this->search_params['state'] == '4') ? 'selected':''; ?> value="4">Viewed</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-2 no-padding-l-sm">
|
||||||
|
<?php $totFilter = count($this->CleanFiltersParam($this->search_params)); ?>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="submit" title="Cerca" class="btn btn-brand btn-flat"><i class="fa fa-search fa-fw"></i></button>
|
||||||
|
<a href="<?= $this->url(array('module'=>$this->moduleName,'action'=>'list'.$this->resourceName,'reset'=>'true'),'default',true); ?>"
|
||||||
|
data-toggle="tooltip" data-container="body" data-placement="right"
|
||||||
|
title="Reset (Filtri attivi: <?= $totFilter; ?> )"
|
||||||
|
class="btn btn-<?= ($totFilter > 0) ? 'danger':'info'; ?> btn-flat"
|
||||||
|
type="button"><i class="fa fa-times fa-fw"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
<p><i class="fa fa-fw fa-link"></i> Url: <br><?= $this->baseUrl; ?><?= $this->url; ?></p>
|
||||||
|
|
||||||
|
<?php if($this->section === 'web_service'): ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<p><i class="fa fa-fw fa-database"></i> NomeDB: <br><?= $this->db_name; ?></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<p><i class="fa fa-fw fa-user"></i> Username: <br><?= $this->username; ?></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<p><i class="fa fa-fw fa-key"></i> Token: <br><?= $this->token; ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div><i class="fa fa-fw fa-envelope"></i> Messaggio:</div>
|
||||||
|
<div class="form-box-container" style="padding: 10px;">
|
||||||
|
<?= $this->msg; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div><i class="fa fa-fw fa-code"></i> Stack Trace:</div>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped table-bordered">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>File</th>
|
||||||
|
<th>Line</th>
|
||||||
|
<th>Function</th>
|
||||||
|
<th>Class</th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($this->trace as $key => $value): ?>
|
||||||
|
<tr>
|
||||||
|
<td title="<?= $value['file']; ?>"><?= $value['file']; ?></td>
|
||||||
|
<td><?= $value['line']; ?></td>
|
||||||
|
<td><?= $value['function']; ?></td>
|
||||||
|
<td><?= $value['class']; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div><i class="fa fa-fw fa-list"></i> Parametri:</div>
|
||||||
|
<div class="table-responsive" style="padding: 0;">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>Parametro</th>
|
||||||
|
<th>Valore</th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($this->params as $key => $value): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?= $key; ?></td>
|
||||||
|
<td><?= $value; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
<div class="box box-no-border box-no-shadow pd10 mb-0">
|
||||||
|
|
||||||
|
<div class="box-header">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!--FORM DI RICERCA-->
|
||||||
|
<div class="float-left box-title search-left hidden-xs">
|
||||||
|
|
||||||
|
<form class="form-horizontal" id="searchForm" name="searchForm" method="post"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?= $this->render("index/$this->resourceName/_searchBlock.phtml"); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" id="order" name="order" class="hidden" value="<?= $this->order; ?>"/>
|
||||||
|
<input type="hidden" id="tipoOrder" name="tipoOrder" class="hidden" value="<?= $this->tipoOrder; ?>"/>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--BLOCCO FUNZIONI LATO SINISTRA-->
|
||||||
|
<div class="float-right box-title search-right">
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
|
||||||
|
<?php if ($this->isActiveNewInsert): ?>
|
||||||
|
<button data-toggle="tooltip" title="Nuovo" id="new" class="btn btn-brand btn-flat" type="button"
|
||||||
|
data-target="#Modal" data-toggle="modal"><i class="fa fa-plus"></i></button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<button data-toggle="tooltip" title="Filtra" id="filterData" class="btn btn-brand btn-flat"
|
||||||
|
type="button" data-target="#filterModal" data-toggle="modal">
|
||||||
|
<?php if ($totFilter > 0): ?>
|
||||||
|
<span class="badge bg-red"><?= $totFilter; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
<i class="fa fa-filter"></i>
|
||||||
|
</button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-flat btn-brand dropdown-toggle" type="button" id="dropdownMenuButton"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="d-none-xs">Selezionati</span> <span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
<a id="setstate_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'setstateselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
Imposta Stato</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- INIZIO TABELLA -->
|
||||||
|
|
||||||
|
<div class="box-body table-responsive table-wrapper">
|
||||||
|
<table class="table table-border table-striped flot-header">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<?= $this->render("index/$this->resourceName/th.phtml") ?>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="tablebody">
|
||||||
|
<?php if (count($this->table) > 0): ?>
|
||||||
|
<?php foreach ($this->table as $key => $value): ?>
|
||||||
|
<?= $this->partial("index/$this->resourceName/td.phtml", $value) ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<tr>
|
||||||
|
<?php if ($totFilter <= 0): ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun record presente
|
||||||
|
</td>
|
||||||
|
<?php else: ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun risultato trovato in base alla ricerca
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box-footer clearfix">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!--FUNZIONE MULTIPLE-->
|
||||||
|
<div class="col-4 col-xs-12">
|
||||||
|
<div class="btn-group btn-group-sm float-left dropup d-none-xs dropdown-multifunction-down">
|
||||||
|
<button class="btn btn-default btn-flat" type="button">
|
||||||
|
Selezionati
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-default btn-flat dropdown-toggle" data-toggle="dropdown" type="button">
|
||||||
|
<span class="caret"></span>
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-8 col-xs-12">
|
||||||
|
<!--PAGINATOR FOOTER-->
|
||||||
|
<?php if ($this->table instanceof Zend_Paginator): ?>
|
||||||
|
<?= $this->paginationControl($this->table, 'Jumping', 'index/_paginator.phtml', array('action' => $this->action, 'count' => $this->count, 'moduleName'=>$this->moduleName)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="pagination-counter float-right">
|
||||||
|
<form name="paginationCounter"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName, 'page' => $this->page, 'count' => $this->count), $this->moduleName, false); ?>"
|
||||||
|
class="" method="post" role="form">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<label class="text-right d-none-xs mb-1" for="count">
|
||||||
|
<?php if ($this->totFiltrati != $this->totElementi): ?>
|
||||||
|
<span>Filtrati <?= $this->totFiltrati ?> su <?= $this->totElementi; ?> totali </span>
|
||||||
|
<?php else: ?>
|
||||||
|
<span>Tot. <?= $this->totElementi; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" class="form-control"
|
||||||
|
id="count" aria-describedby="inputGroup-sizing-sm"
|
||||||
|
value="" placeholder="<?= $this->count; ?>" name="count"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveModalDetail): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modal.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modalFilter.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->idDetail > 0): ?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
edit(<?= $this->idDetail; ?>);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<tr data-id="<?= $this->id ?>" data-state="<?= $this->state ?>">
|
||||||
|
<td class="text-center"><input type="checkbox" value="<?= $this->id ?>" name="select-elements[]" id="select-elements"></td>
|
||||||
|
|
||||||
|
<td class="text-center"><?= $this->ExtractData($this->data,'withtime',true); ?></td>
|
||||||
|
<td><?= htmlspecialchars($this->msg); ?></td>
|
||||||
|
<td><?= htmlspecialchars($this->username); ?></td>
|
||||||
|
<td><?= htmlspecialchars($this->db_name); ?></td>
|
||||||
|
<td><?php switch($this->state):
|
||||||
|
case'1': ?>
|
||||||
|
<span class="badge bg-red">New
|
||||||
|
<?php break;
|
||||||
|
case'2': ?>
|
||||||
|
<span class="badge bg-warning">Pending
|
||||||
|
<?php break;
|
||||||
|
case'4': ?>
|
||||||
|
<span class="badge bg-warning">Viewed
|
||||||
|
<?php break;
|
||||||
|
case'3': ?>
|
||||||
|
<span class="badge bg-success">Resolved
|
||||||
|
<?php break; ?>
|
||||||
|
<?php endswitch; ?>
|
||||||
|
</span></td>
|
||||||
|
<td><span class="badge bg-gray"><?= $this->section; ?></span></td>
|
||||||
|
<td>
|
||||||
|
<div class="text-center">
|
||||||
|
<button id="edit" class="btn btn-sm btn-brand btn-flat" type="button" data-toggle="tooltip" data-container="body" title="Dettaglio">
|
||||||
|
<span class="fa fa-search-plus"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<?php switch($this->state):
|
||||||
|
case'1': ?>
|
||||||
|
<button id="set-state" class="btn btn-sm btn-warning btn-flat" type="button" data-toggle="tooltip" title="Visto" data-state="4" data-url="<?= $this -> url(array('controller' => 'index', 'action' => 'setstateerrorlog', 'id' => $this->id), 'monitoring', true); ?>">
|
||||||
|
<span class="fa fa-eye"></span>
|
||||||
|
</button>
|
||||||
|
<?php break;
|
||||||
|
case'2': ?>
|
||||||
|
<button id="set-state" class="btn btn-sm btn-success btn-flat" type="button" data-toggle="tooltip" title="Risolvi" data-state="3" data-url="<?= $this -> url(array('controller' => 'index', 'action' => 'setstateerrorlog', 'id' => $this->id), 'monitoring', true); ?>">
|
||||||
|
<span class="fa fa-check"></span>
|
||||||
|
</button>
|
||||||
|
<?php break;
|
||||||
|
case'3': ?>
|
||||||
|
<button id="set-state" class="btn btn-sm btn-warning btn-flat" type="button" data-toggle="tooltip" title="Attesa" data-state="2" data-url="<?= $this -> url(array('controller' => 'index', 'action' => 'setstateerrorlog', 'id' => $this->id), 'monitoring', true); ?>">
|
||||||
|
<span class="fa fa-eye-slash"></span>
|
||||||
|
</button>
|
||||||
|
<?php break;
|
||||||
|
case'4': ?>
|
||||||
|
<button id="set-state" class="btn btn-sm btn-success btn-flat" type="button" data-toggle="tooltip" title="Risolvi" data-state="3" data-url="<?= $this -> url(array('controller' => 'index', 'action' => 'setstateerrorlog', 'id' => $this->id), 'monitoring', true); ?>">
|
||||||
|
<span class="fa fa-check"></span>
|
||||||
|
</button>
|
||||||
|
<?php break; ?>
|
||||||
|
<?php endswitch; ?>
|
||||||
|
|
||||||
|
<button id="delete" class="btn btn-sm btn-danger btn-flat" type="button" data-toggle="tooltip" title="Elimina">
|
||||||
|
<span class="fa fa-trash"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<tr>
|
||||||
|
<th style="width:60px;" class="text-center">
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-default btn-sm dropdown-toggle dropdown-icon" type="button" id="dropdownMenuButton"
|
||||||
|
data-boundary="window"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="select_all" class="dropdown-item" href="#"><i class="far fa-check-square fa-fw"></i> Tutti</a>
|
||||||
|
<a id="deselect_all" class="dropdown-item" href="#"><i class="far fa-square fa-fw"></i> Nessuno</a>
|
||||||
|
<a id="invert_all" class="dropdown-item" href="#"><i class="fa fa-check-square fa-fw"></i> Inverti</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<th data-ord="data" style="width:135px;" class="text-center">Data</th>
|
||||||
|
<th data-ord="msg" class="">Messaggio di errore</th>
|
||||||
|
<th data-ord="username">Username</th>
|
||||||
|
<th data-ord="username">Db Name</th>
|
||||||
|
<th data-ord="state" style="min-width:100px;">Stato</th>
|
||||||
|
<th data-ord="section" style="min-width:80px;">Section</th>
|
||||||
|
|
||||||
|
<th width="150px"></th>
|
||||||
|
</tr>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<div class="modal fade" id="modal" data-form="modalForm" tabindex="-1" data-backdrop="false"
|
||||||
|
role="dialog" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
|
||||||
|
<div id="modal-loader" class="overlay d-none justify-content-center align-items-center">
|
||||||
|
<i class="fas fa-2x fa-sync fa-spin"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title flot-left" id="myModalLabel"><i
|
||||||
|
class="fa fa-fw <?= ($this->iconTitle) ? $this->iconTitle : 'fa-pencil'; ?> modal_icon"></i>
|
||||||
|
Log Invio</h5>
|
||||||
|
<button id="close-modal" type="button" class="close float-right" data-dismiss="modal"
|
||||||
|
aria-hidden="true">×
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body pdb-0">
|
||||||
|
|
||||||
|
<form id="modalForm" name="modalForm" class="compact-form no-border-radius"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'salva' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-get="<?= $this->url(array('controller' => 'index', 'action' => 'get' . $this->resourceName), $this->moduleName, true); ?>"
|
||||||
|
data-delete="<?= $this->url(array('controller' => 'index', 'action' => 'delete' . $this->resourceName, 'id' => $this->id), $this->moduleName, true); ?>"
|
||||||
|
method="post" role="form">
|
||||||
|
|
||||||
|
<div id="main_contenitor">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" id="undo" class="btn btn-default pull-left" data-dismiss="modal"><i
|
||||||
|
class="fa fa-times"></i>
|
||||||
|
Chiudi
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<div class="col-12 col-md-4 no-padding-r-sm">
|
||||||
|
<input type="text" daterangepicker id="DataInvio_search" name="DataInvio" value="<?= $this->search_params['DataInvio']; ?>" class="form-control no-border-right-sm"
|
||||||
|
placeholder="Data Invio"/>
|
||||||
|
<input type="hidden" value="DATERANGE" name="DataInvioOP" id="DataInvioOP" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-3 no-padding-r-l-sm">
|
||||||
|
<input type="text" id="message_search" name="message" value="<?= $this->search_params['message']; ?>" class="form-control no-border-right-sm" placeholder="Messaggio"/>
|
||||||
|
<input type="hidden" value="LIKE" name="messageOP" id="messageOP" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-3 no-padding-r-l-sm">
|
||||||
|
<input type="text" id="processed_emails_search" name="processed_emails" value="<?= $this->search_params['processed_emails']; ?>" class="form-control no-border-right-sm" placeholder="Processed"/>
|
||||||
|
<input type="hidden" value="LIKE" name="processed_emailsOP" id="processed_emailsOP" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-2 no-padding-l-sm">
|
||||||
|
<?php $totFilter = count($this->CleanFiltersParam($this->search_params)); ?>
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="submit" title="Cerca" class="btn btn-brand btn-flat"><i class="fa fa-search fa-fw"></i></button>
|
||||||
|
<a href="<?= $this->url(array('module'=>$this->moduleName,'action'=>'list'.$this->resourceName,'reset'=>'true'),'default',true); ?>"
|
||||||
|
data-toggle="tooltip" data-container="body" data-placement="right"
|
||||||
|
title="Reset (Filtri attivi: <?= $totFilter; ?> )"
|
||||||
|
class="btn btn-<?= ($totFilter > 0) ? 'danger':'info'; ?> btn-flat"
|
||||||
|
type="button"><i class="fa fa-times fa-fw"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
<p><i class="fa fa-fw fa-link"></i> Data: <br><?= $this->DataInvio; ?></p>
|
||||||
|
|
||||||
|
<div><i class="fa fa-fw fa-envelope"></i> Messaggio:</div>
|
||||||
|
<div class="form-box-container" style="padding: 10px;">
|
||||||
|
<?= $this->message; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div><i class="fa fa-fw fa-code"></i> Processed:</div>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped table-bordered">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>Id</th>
|
||||||
|
<th>Email</th>
|
||||||
|
<th>Stato Precedente</th>
|
||||||
|
<th>Nuovo Stato</th>
|
||||||
|
</tr>
|
||||||
|
<?php if(count($this->processed_emails) <= 0): ?>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">Nessun invio</td>
|
||||||
|
</tr>
|
||||||
|
<?php else: ?>
|
||||||
|
<?php foreach ($this->processed_emails as $key => $value): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?= $value['EmailId']; ?></td>
|
||||||
|
<td><?= $value['EmailDestinatario']; ?></td>
|
||||||
|
<td><?= $value['StatoPrecedente']; ?></td>
|
||||||
|
<td><?= $value['NuovoStato']; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div><i class="fa fa-fw fa-list"></i> Errori:</div>
|
||||||
|
<div class="table-responsive" style="padding: 0;">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>EmailId</th>
|
||||||
|
<th>Email</th>
|
||||||
|
<th>StatoPrecedente</th>
|
||||||
|
<th>Message</th>
|
||||||
|
</tr>
|
||||||
|
<?php if(count($this->errors) <= 0): ?>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">Nessun errore</td>
|
||||||
|
</tr>
|
||||||
|
<?php else: ?>
|
||||||
|
<?php foreach ($this->errors as $key => $value): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?= $value['EmailId']; ?></td>
|
||||||
|
<td><?= $value['EmailDestinatario']; ?></td>
|
||||||
|
<td><?= $value['StatoPrecedente']; ?></td>
|
||||||
|
<td><?= $value['message']; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
<div class="box box-no-border box-no-shadow pd10 mb-0">
|
||||||
|
|
||||||
|
<div class="box-header">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<!--FORM DI RICERCA-->
|
||||||
|
<div class="float-left box-title search-left hidden-xs">
|
||||||
|
|
||||||
|
<form class="form-horizontal" id="searchForm" name="searchForm" method="post"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<?= $this->render("index/$this->resourceName/_searchBlock.phtml"); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" id="order" name="order" class="hidden" value="<?= $this->order; ?>"/>
|
||||||
|
<input type="hidden" id="tipoOrder" name="tipoOrder" class="hidden" value="<?= $this->tipoOrder; ?>"/>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--BLOCCO FUNZIONI LATO SINISTRA-->
|
||||||
|
<div class="float-right box-title search-right">
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
|
||||||
|
<?php if ($this->isActiveNewInsert): ?>
|
||||||
|
<button data-toggle="tooltip" title="Nuovo" id="new" class="btn btn-brand btn-flat" type="button"
|
||||||
|
data-target="#Modal" data-toggle="modal"><i class="fa fa-plus"></i></button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<button data-toggle="tooltip" title="Filtra" id="filterData" class="btn btn-brand btn-flat"
|
||||||
|
type="button" data-target="#filterModal" data-toggle="modal">
|
||||||
|
<?php if ($totFilter > 0): ?>
|
||||||
|
<span class="badge bg-red"><?= $totFilter; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
<i class="fa fa-filter"></i>
|
||||||
|
</button>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-flat btn-brand dropdown-toggle" type="button" id="dropdownMenuButton"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="d-none-xs">Selezionati</span> <span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
<!--<a id="setstate_select" class="dropdown-item"
|
||||||
|
href="<?/*= $this->url(array('controller' => 'index', 'action' => 'setstateselect' . $this->resourceName), $this->moduleName, true); */?>">
|
||||||
|
Imposta Stato</a>-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- INIZIO TABELLA -->
|
||||||
|
|
||||||
|
<div class="box-body table-responsive table-wrapper">
|
||||||
|
<table class="table table-border table-striped flot-header">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<?= $this->render("index/$this->resourceName/th.phtml") ?>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="tablebody">
|
||||||
|
<?php if (count($this->table) > 0): ?>
|
||||||
|
<?php foreach ($this->table as $key => $value): ?>
|
||||||
|
<?= $this->partial("index/$this->resourceName/td.phtml", $value) ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<tr>
|
||||||
|
<?php if ($totFilter <= 0): ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun record presente
|
||||||
|
</td>
|
||||||
|
<?php else: ?>
|
||||||
|
<td id="norows" class="no-rows" colspan="6">
|
||||||
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
|
Nessun risultato trovato in base alla ricerca
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box-footer clearfix">
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!--FUNZIONE MULTIPLE-->
|
||||||
|
<div class="col-4 col-xs-12">
|
||||||
|
<div class="btn-group btn-group-sm float-left dropup d-none-xs dropdown-multifunction-down">
|
||||||
|
<button class="btn btn-default btn-flat" type="button">
|
||||||
|
Selezionati
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-default btn-flat dropdown-toggle" data-toggle="dropdown" type="button">
|
||||||
|
<span class="caret"></span>
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu">
|
||||||
|
<a id="delete_select" class="dropdown-item"
|
||||||
|
href="<?= $this->url(array('controller' => 'index', 'action' => 'deleteselect' . $this->resourceName), $this->moduleName, true); ?>">
|
||||||
|
<i class="fa fa-trash fa-fw"></i> Elimina</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-8 col-xs-12">
|
||||||
|
<!--PAGINATOR FOOTER-->
|
||||||
|
<?php if ($this->table instanceof Zend_Paginator): ?>
|
||||||
|
<?= $this->paginationControl($this->table, 'Jumping', 'index/_paginator.phtml', array('action' => $this->action, 'count' => $this->count, 'moduleName'=>$this->moduleName)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<div class="pagination-counter float-right">
|
||||||
|
<form name="paginationCounter"
|
||||||
|
action="<?= $this->url(array('controller' => 'index', 'action' => 'list' . $this->resourceName, 'page' => $this->page, 'count' => $this->count), $this->moduleName, false); ?>"
|
||||||
|
class="" method="post" role="form">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<label class="text-right d-none-xs mb-1" for="count">
|
||||||
|
<?php if ($this->totFiltrati != $this->totElementi): ?>
|
||||||
|
<span>Filtrati <?= $this->totFiltrati ?> su <?= $this->totElementi; ?> totali </span>
|
||||||
|
<?php else: ?>
|
||||||
|
<span>Tot. <?= $this->totElementi; ?></span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</label>
|
||||||
|
<input type="text" class="form-control"
|
||||||
|
id="count" aria-describedby="inputGroup-sizing-sm"
|
||||||
|
value="" placeholder="<?= $this->count; ?>" name="count"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveModalDetail): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modal.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->isActiveFilterModal): ?>
|
||||||
|
<?= $this->render("index/$this->resourceName/_modalFilter.phtml"); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if ($this->idDetail > 0): ?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
edit(<?= $this->idDetail; ?>);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<tr data-id="<?= $this->id ?>">
|
||||||
|
<td class="text-center"><input type="checkbox" value="<?= $this->id ?>" name="select-elements[]" id="select-elements"></td>
|
||||||
|
|
||||||
|
<td class="text-center"><?= $this->ExtractData($this->DataInvio,'withtime',true); ?></td>
|
||||||
|
<td><?= htmlspecialchars($this->message); ?></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<div class="text-center">
|
||||||
|
<button id="edit" class="btn btn-sm btn-brand btn-flat" type="button" data-toggle="tooltip" data-container="body" title="Dettaglio">
|
||||||
|
<span class="fa fa-search-plus"></span>
|
||||||
|
</button>
|
||||||
|
<button id="delete" class="btn btn-sm btn-danger btn-flat" type="button" data-toggle="tooltip" title="Elimina">
|
||||||
|
<span class="fa fa-trash"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<tr>
|
||||||
|
<th style="width:60px;" class="text-center">
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-default btn-sm dropdown-toggle dropdown-icon" type="button" id="dropdownMenuButton"
|
||||||
|
data-boundary="window"
|
||||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||||
|
<a id="select_all" class="dropdown-item" href="#"><i class="far fa-check-square fa-fw"></i> Tutti</a>
|
||||||
|
<a id="deselect_all" class="dropdown-item" href="#"><i class="far fa-square fa-fw"></i> Nessuno</a>
|
||||||
|
<a id="invert_all" class="dropdown-item" href="#"><i class="fa fa-check-square fa-fw"></i> Inverti</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<th data-ord="data" style="width:135px;" class="text-center">Data</th>
|
||||||
|
<th data-ord="msg" class="">Messaggio</th>
|
||||||
|
|
||||||
|
<th width="150px"></th>
|
||||||
|
</tr>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user