summaryrefslogtreecommitdiffstats
path: root/admin/survey/modules
diff options
context:
space:
mode:
Diffstat (limited to 'admin/survey/modules')
-rw-r--r--admin/survey/modules/mod_360_1KA/class.Survey3601ka.php4
-rw-r--r--admin/survey/modules/mod_MAZA/class.MAZA.php13
-rw-r--r--admin/survey/modules/mod_MAZA/js/MAZA.js2
-rw-r--r--admin/survey/modules/mod_SPEEDINDEX/class.SurveySpeedIndex.php4
-rw-r--r--admin/survey/modules/mod_WPN/class.WPN.php1
-rw-r--r--admin/survey/modules/mod_WPN/frontend/index.html392
-rw-r--r--admin/survey/modules/mod_WPN/frontend/index1.html720
-rw-r--r--admin/survey/modules/mod_WPN/frontend/ui.html208
-rw-r--r--admin/survey/modules/mod_advanced_paradata/class.SurveyAdvancedParadataLog.php24
-rw-r--r--admin/survey/modules/mod_advanced_timestamps/class.SurveyAdvancedTimestamps.php238
-rw-r--r--admin/survey/modules/mod_chat/class.SurveyChat.php49
-rw-r--r--admin/survey/modules/mod_email_access/class.SurveyEmailAccess.php280
-rw-r--r--admin/survey/modules/mod_email_access/disposable_email_blocklist.txt3474
-rw-r--r--admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php36
-rw-r--r--admin/survey/modules/mod_hierarhija/class/Ajax/AjaxHierarhijaDostopUporabnikovClass.php33
-rw-r--r--admin/survey/modules/mod_hierarhija/class/Ajax/AjaxUporabnikiClass.php2
-rw-r--r--admin/survey/modules/mod_hierarhija/class/HierarhijaAjaxClass.php13
-rw-r--r--admin/survey/modules/mod_hierarhija/class/HierarhijaAnalysisClass.php9
-rw-r--r--admin/survey/modules/mod_hierarhija/class/HierarhijaClass.php3
-rw-r--r--admin/survey/modules/mod_hierarhija/class/HierarhijaHelper.php12
-rw-r--r--admin/survey/modules/mod_hierarhija/class/HierarhijaIzvoz.php3
-rw-r--r--admin/survey/modules/mod_hierarhija/css/vendor/datatables.min.css2
-rw-r--r--admin/survey/modules/mod_hierarhija/js/vendor/hierarhija_analize.js10
-rw-r--r--admin/survey/modules/mod_kakovost/R/kakovost.R376
-rw-r--r--admin/survey/modules/mod_kakovost/class.SurveyKakovost.php12
-rw-r--r--admin/survey/modules/mod_panel/class.SurveyPanel.php108
-rw-r--r--admin/survey/modules/mod_quiz/class.SurveyQuiz.php67
-rw-r--r--admin/survey/modules/mod_uporabnost/class.SurveyUporabnost.php4
-rw-r--r--admin/survey/modules/mod_vizualizacija/class.SurveyVizualizacija.php9
-rw-r--r--admin/survey/modules/mod_voting/class.SurveyVoting.php14
30 files changed, 5235 insertions, 887 deletions
diff --git a/admin/survey/modules/mod_360_1KA/class.Survey3601ka.php b/admin/survey/modules/mod_360_1KA/class.Survey3601ka.php
index aa4a6c0..3e8a375 100644
--- a/admin/survey/modules/mod_360_1KA/class.Survey3601ka.php
+++ b/admin/survey/modules/mod_360_1KA/class.Survey3601ka.php
@@ -19,9 +19,7 @@ class Survey3601ka{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
}
}
diff --git a/admin/survey/modules/mod_MAZA/class.MAZA.php b/admin/survey/modules/mod_MAZA/class.MAZA.php
index c430546..5c67424 100644
--- a/admin/survey/modules/mod_MAZA/class.MAZA.php
+++ b/admin/survey/modules/mod_MAZA/class.MAZA.php
@@ -1115,12 +1115,11 @@ class MAZA {
* @return type - json result of curl output
*/
private function send_FCM_mesage_curl($fields){
- #API access key from Google API's Console
- global $FCM_server_key;
+ #API access key from Google API's Console
$headers = array
(
- 'Authorization: key=' . $FCM_server_key,
+ 'Authorization: key=' . AppSettings::getInstance()->getSetting('maza-FCM_server_key'),
'Content-Type: application/json'
);
#Send Reponse To FireBase Server
@@ -1339,7 +1338,7 @@ class MAZA {
* @param type $tactivity_id - id of triggered activity
* @param type $mode - mode of survey (repeater, geofence, activity, entry)
*/
- public function maza_save_srv_user($maza_uid, $srv_uid, $srv_version, $tgeofence_id=null, $tactivity_id=null, $mode) {
+ public function maza_save_srv_user($maza_uid, $srv_uid, $srv_version, $tgeofence_id=null, $tactivity_id=null, $mode=null) {
//check if pair already existst in DB
$sql = sisplet_query("SELECT * FROM maza_srv_users WHERE maza_user_id='$maza_uid' AND srv_user_id='$srv_uid'");
//it is already there
@@ -1790,16 +1789,14 @@ class MAZA {
* @param type $password - passwor to set in nextpin for this user
*/
public function nextpin_create_user($identifier, $password){
- #credentials to use nextpin API
- global $NextPinMainToken;
-
+ #credentials to use nextpin API
$fields = array
(
'username' => $this->nextpin_token_prefix . $identifier,
'password' => $password
);
- $this -> nextpin_API_call($NextPinMainToken, $fields, 'auth/createUser');
+ $this -> nextpin_API_call(AppSettings::getInstance()->getSetting('maza-NextPinMainToken'), $fields, 'auth/createUser');
}
/**
diff --git a/admin/survey/modules/mod_MAZA/js/MAZA.js b/admin/survey/modules/mod_MAZA/js/MAZA.js
index a229c26..7d96c15 100644
--- a/admin/survey/modules/mod_MAZA/js/MAZA.js
+++ b/admin/survey/modules/mod_MAZA/js/MAZA.js
@@ -476,7 +476,7 @@ function maza_klikNaMapo() {
maza_saveGeofence(data.formatted_address, maza_create_basic_circle(pos, data.formatted_address, maza_default_radius, false));
} else {
//odpre se okno, ce je prislo do napake - null - (mozen je tudi prekratek delay med geocoding requesti)
- alert(lang['srv_resevanje_alert_location_not_found_map']);
+ genericAlertPopup('srv_resevanje_alert_location_not_found_map');
}
});
diff --git a/admin/survey/modules/mod_SPEEDINDEX/class.SurveySpeedIndex.php b/admin/survey/modules/mod_SPEEDINDEX/class.SurveySpeedIndex.php
index 87a1e8b..a15d706 100644
--- a/admin/survey/modules/mod_SPEEDINDEX/class.SurveySpeedIndex.php
+++ b/admin/survey/modules/mod_SPEEDINDEX/class.SurveySpeedIndex.php
@@ -19,9 +19,7 @@ class SurveySpeedIndex{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
}
}
diff --git a/admin/survey/modules/mod_WPN/class.WPN.php b/admin/survey/modules/mod_WPN/class.WPN.php
index baabfef..6a78d1b 100644
--- a/admin/survey/modules/mod_WPN/class.WPN.php
+++ b/admin/survey/modules/mod_WPN/class.WPN.php
@@ -99,7 +99,6 @@ class WPN {
}
public function sendWebPushNotificationsToAll(){
- //global $FCM_server_key;
$title = $_POST['wpn_title'];
$message = $_POST['wpn_message'];
diff --git a/admin/survey/modules/mod_WPN/frontend/index.html b/admin/survey/modules/mod_WPN/frontend/index.html
index 1b5c4a9..c20522a 100644
--- a/admin/survey/modules/mod_WPN/frontend/index.html
+++ b/admin/survey/modules/mod_WPN/frontend/index.html
@@ -1,196 +1,196 @@
-<!doctype html>
-<html lang="en-us">
-
- <head>
-
- <!-- Meta -->
- <meta charset="utf-8">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="viewport" content="width=device-width,initial-scale=1">
-
- <title>1KA WPN</title>
- <meta name="description" content="">
-
- <!-- The compiled CSS file -->
- <link rel="stylesheet" href="admin/survey/modules/mod_WPN/frontend/css/production.css">
-
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
-
- <!-- Web fonts -->
- <link href="https://fonts.googleapis.com/css?family=Montserrat:400,400i,700|Source+Serif+Pro:700" rel="stylesheet">
-
- <!-- favicon.ico. Place these in the root directory. -->
- <link rel="shortcut icon" href="favicon.ico">
-
- <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
- <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
- <link rel="manifest" href="manifest.json">
- <link rel="mask-icon" href="safari-pinned-tab.svg" color="#ffffff">
- <meta name="msapplication-TileColor" content="#da532c">
- <meta name="theme-color" content="#ffffff">
- <meta name="apple-moblile-web-app-capable" content="yes">
- <meta name="apple-moblile-web-app-status-bar-style" content="default">
- <link rel="apple-touch-startup-image" href="apple-touch-icon.png">
- <!-- iOS Splash Screen Images -->
- <link rel="apple-touch-startup-image" href="apple-splash-640.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-750.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1242.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1125.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1536.png" media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1668.png" media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-2048.png" media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
-
- </head>
-
- <body>
-
-
- <!-- Header -->
- <header class="align--center pt3">
- <div class="container--lg border--bottom pb3">
- <img class="logo mb3" src="admin/survey/modules/mod_WPN/frontend/img/1ka_logo_en.png" alt="1KA">
- <div id="notif_join_div" style="display: none;">
- <button class="mb2 btn btn--secondary" id="notif_join_button" onclick="clickButtonSubscribe();" style="font-size: 1.5em;">Join us!</button>
- <br><br>
- <div id="notification_permission_warning" style="display: none;">
- <h3 class="mb2" style="color:red">In order to use our services, you have to enable notifications</h3>
- <br><br>
- </div>
- <h1 class="mb2">Be first to know when new surveys are up!</h1>
- </div>
- <div id="notif_joined_div" style="display: none;">
- <h1 class="mb2">You are in!</h1>
- <p class="mb2">You will be among first who will get notifications when new surveys are up!</p>
- </div>
- <div id="notif_not_supported_div" style="display: none;">
- <h1 class="mb2">This browser does not support our services!</h1>
- <p class="mb2">Please update your browser or use another (latest versions of Chrome and Firefox are recommended)</p>
- </div>
- <!--<span>
- <a href="https://www.apple.com/ios/app-store/" class="link"><img class="download" src="/pwa/img/ios.png" alt="Download on the App Store"></a>
- </span>
- <span>
- <a href="https://play.google.com/store" class="link"><img class="download" src="/pwa/img/googleplay.png" alt="Download on Google Play"></a>
- </span>-->
- </div>
- </header>
-
- <main>
- <!-- Feature list -->
- <div class="container pt3 mt2 text--gray align--center">
- <p class="mb3">Efficient data gathering.</p>
- <div class="grid-row">
- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/messaging.svg" alt="Fast messaging">
- <p>Fast messaging</p>
- </div>
- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/assign.svg" alt="Assign to others">
- <p>Assign to others</p>
- </div>
- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/connected.svg" alt="Stay connected">
- <p>Stay connected</p>
- </div>
- <!-- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="img/search.svg" alt="Powerful search">
- <p>Powerful search</p>
- </div>
- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="img/vault.svg" alt="Put in a vault">
- <p>Put in a vault</p>
- </div>-->
- <!-- <div class="grid-column span-one-third mb3">
- <img class="illustration--small mb1" src="img/mail.svg" alt="Share with others">
- <p>Share with others</p>
- </div>-->
- </div>
- </div>
-
- <!-- Focus -->
- <div class="container--lg pt1 pb1">
-
- <div class="grid-row grid-row--center">
- <div class="grid-column mt3 mb2 order-2">
- <div class="border--bottom pb2 mb2">
- <h2>Usage data</h2>
- <p>Quis istud possit, inquit, negare? Videamus animi partes, quarum est conspectus illustrior; Illa sunt similia: hebes acies est cuipiam oculorum, corpore alius senescit; Non enim, si omnia non&nbsp;sequebatur.</p>
- </div>
- <p class="italic text--gray mb1">Quae quo sunt excelsiores, eo dant clariora indicia naturae. Causa autem fuit huc veniendi ut quosdam&nbsp;hinc.</p>
- <p class="bold">Carry Andersen, COO at&nbsp;Stripe</p>
- </div>
- <div class="grid-column span-1"></div>
- <div class="grid-column mt3 mb2 order-1">
- <img src="admin/survey/modules/mod_WPN/frontend/img/data.svg" alt="Usage data">
- </div>
- </div>
-
- <div class="grid-row grid-row--center">
- <div class="grid-column mt3 mb2">
- <img src="admin/survey/modules/mod_WPN/frontend/img/security.svg" alt="Absolute security">
- </div>
- <div class="grid-column span-1"></div>
- <div class="grid-column mt3 mb2">
- <div class="border--bottom pb2 mb2">
- <h2>Absolute security</h2>
- <p>Itaque his sapiens semper vacabit. Qualis ista philosophia est, quae non interitum afferat pravitatis, sed sit contenta mediocritate vitiorum? Quid de Platone aut de Democrito loquar? Quis istud possit, inquit&nbsp;negare?</p>
- </div>
- <p class="italic text--gray mb1">Estne, quaeso, inquam, sitienti in bibendo voluptas? Duo Reges: constructio&nbsp;interrete.</p>
- <p class="bold">Josh Blenton, Product Manager at&nbsp;Blinkist</p>
- </div>
- </div>
-
- </div>
-
- <!-- Mentioned -->
- <!--<div class="container--lg pt3 pb3 mb2 align--center">
- <p class="mb2">Mentioned in</p>
- <span><img class="mentioned" src="img/mentioned.svg" alt="New York Times, TC, Product Hunt, Recode"></span>
- </div>-->
-
- <!-- CTA -->
- <!--<div class="bg--dark-gray align--center pt3 pb3">
- <div class="container pt2 pb2">
- <img class="cta-image mb2" src="img/text.svg" alt="Text the app">
- <p class="h3 text--white mb1 bold">We'll text you the&nbsp;app</p>
- <p class="text--white mb3">Just insert your number below. Messaging rates&nbsp;apply.</p>
- <div class="inline-block mr1 no-mr-on-mobile" style="width:280px;max-width:100%">
- <input class="form-control" type="tel" placeholder="Phone number">
- </div>
- <button class="btn btn--secondary">Send</button>
- </div>
- </div>-->
-
- </main>
-
- <!-- Footer -->
- <footer class="pt1 pb3 align--center-on-mobile">
- <!--<div class="container">
- <div class="grid-row">
- <div class="grid-column mt2 span-half">
- <div class="mb1">
- <span>
- <a href="https://www.apple.com/ios/app-store/" class="link"><img class="download" src="img/ios.png" alt="Download on the App Store"></a>
- </span>
- <span>
- <a href="https://play.google.com/store" class="link"><img class="download" src="img/googleplay.png" alt="Download on Google Play"></a>
- </span>
- </div>
- <p class="small">Design by <a href="https://www.eatapapaya.com" class="link link--text">Papaya</a>. Illustrations from&nbsp;<a href="https://undraw.co/" class="link link--text">Undraw</a>.</p>
- </div>
- <div class="grid-column mt2 span-half align--right align--center-on-mobile">
- <ul class="no-bullets list--inline">
- <li class="mr1"><a href="" class="link"><img class="icon" src="img/youtube.svg" alt="YouTube"></a></li>
- <li class="mr1"><a href="" class="link"><img class="icon" src="img/twitter.svg" alt="Twitter"></a></li>
- <li><a href="" class="link"><img class="icon" src="img/facebook.svg" alt="Facebook"></a></li>
- </ul>
- </div>
- </div>
- </div>-->
- </footer>
-
- <script src="admin/survey/modules/mod_WPN/frontend/js/main.js"></script>
- </body>
-</html>
-
+<!doctype html>
+<html lang="en-us">
+
+ <head>
+
+ <!-- Meta -->
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+
+ <title>1KA WPN</title>
+ <meta name="description" content="">
+
+ <!-- The compiled CSS file -->
+ <link rel="stylesheet" href="admin/survey/modules/mod_WPN/frontend/css/production.css">
+
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+
+ <!-- Web fonts -->
+ <link href="https://fonts.googleapis.com/css?family=Montserrat:400,400i,700|Source+Serif+Pro:700" rel="stylesheet">
+
+ <!-- favicon.ico. Place these in the root directory. -->
+ <link rel="shortcut icon" href="favicon.ico">
+
+ <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png">
+ <link rel="manifest" href="manifest.json">
+ <link rel="mask-icon" href="safari-pinned-tab.svg" color="#ffffff">
+ <meta name="msapplication-TileColor" content="#da532c">
+ <meta name="theme-color" content="#ffffff">
+ <meta name="apple-moblile-web-app-capable" content="yes">
+ <meta name="apple-moblile-web-app-status-bar-style" content="default">
+ <link rel="apple-touch-startup-image" href="apple-touch-icon.png">
+ <!-- iOS Splash Screen Images -->
+ <link rel="apple-touch-startup-image" href="apple-splash-640.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-750.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1242.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1125.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1536.png" media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1668.png" media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-2048.png" media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+
+ </head>
+
+ <body>
+
+
+ <!-- Header -->
+ <header class="align--center pt3">
+ <div class="container--lg border--bottom pb3">
+ <img class="logo mb3" src="admin/survey/modules/mod_WPN/frontend/img/1ka_logo_en.png" alt="1KA">
+ <div id="notif_join_div" style="display: none;">
+ <button class="mb2 btn btn--secondary" id="notif_join_button" onclick="clickButtonSubscribe();" style="font-size: 1.5em;">Join us!</button>
+ <br><br>
+ <div id="notification_permission_warning" style="display: none;">
+ <h3 class="mb2" style="color:red">In order to use our services, you have to enable notifications</h3>
+ <br><br>
+ </div>
+ <h1 class="mb2">Be first to know when new surveys are up!</h1>
+ </div>
+ <div id="notif_joined_div" style="display: none;">
+ <h1 class="mb2">You are in!</h1>
+ <p class="mb2">You will be among first who will get notifications when new surveys are up!</p>
+ </div>
+ <div id="notif_not_supported_div" style="display: none;">
+ <h1 class="mb2">This browser does not support our services!</h1>
+ <p class="mb2">Please update your browser or use another (latest versions of Chrome and Firefox are recommended)</p>
+ </div>
+ <!--<span>
+ <a href="https://www.apple.com/ios/app-store/" class="link"><img class="download" src="/pwa/img/ios.png" alt="Download on the App Store"></a>
+ </span>
+ <span>
+ <a href="https://play.google.com/store" class="link"><img class="download" src="/pwa/img/googleplay.png" alt="Download on Google Play"></a>
+ </span>-->
+ </div>
+ </header>
+
+ <main>
+ <!-- Feature list -->
+ <div class="container pt3 mt2 text--gray align--center">
+ <p class="mb3">Efficient data gathering.</p>
+ <div class="grid-row">
+ <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/messaging.svg" alt="Fast messaging">
+ <p>Fast messaging</p>
+ </div>
+ <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/assign.svg" alt="Assign to others">
+ <p>Assign to others</p>
+ </div>
+ <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="admin/survey/modules/mod_WPN/frontend/img/connected.svg" alt="Stay connected">
+ <p>Stay connected</p>
+ </div>
+ <!-- <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="img/search.svg" alt="Powerful search">
+ <p>Powerful search</p>
+ </div>
+ <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="img/vault.svg" alt="Put in a vault">
+ <p>Put in a vault</p>
+ </div>-->
+ <!-- <div class="grid-column span-one-third mb3">
+ <img class="illustration--small mb1" src="img/mail.svg" alt="Share with others">
+ <p>Share with others</p>
+ </div>-->
+ </div>
+ </div>
+
+ <!-- Focus -->
+ <div class="container--lg pt1 pb1">
+
+ <div class="grid-row grid-row--center">
+ <div class="grid-column mt3 mb2 order-2">
+ <div class="border--bottom pb2 mb2">
+ <h2>Usage data</h2>
+ <p>Quis istud possit, inquit, negare? Videamus animi partes, quarum est conspectus illustrior; Illa sunt similia: hebes acies est cuipiam oculorum, corpore alius senescit; Non enim, si omnia non&nbsp;sequebatur.</p>
+ </div>
+ <p class="italic text--gray mb1">Quae quo sunt excelsiores, eo dant clariora indicia naturae. Causa autem fuit huc veniendi ut quosdam&nbsp;hinc.</p>
+ <p class="bold">Carry Andersen, COO at&nbsp;Stripe</p>
+ </div>
+ <div class="grid-column span-1"></div>
+ <div class="grid-column mt3 mb2 order-1">
+ <img src="admin/survey/modules/mod_WPN/frontend/img/data.svg" alt="Usage data">
+ </div>
+ </div>
+
+ <div class="grid-row grid-row--center">
+ <div class="grid-column mt3 mb2">
+ <img src="admin/survey/modules/mod_WPN/frontend/img/security.svg" alt="Absolute security">
+ </div>
+ <div class="grid-column span-1"></div>
+ <div class="grid-column mt3 mb2">
+ <div class="border--bottom pb2 mb2">
+ <h2>Absolute security</h2>
+ <p>Itaque his sapiens semper vacabit. Qualis ista philosophia est, quae non interitum afferat pravitatis, sed sit contenta mediocritate vitiorum? Quid de Platone aut de Democrito loquar? Quis istud possit, inquit&nbsp;negare?</p>
+ </div>
+ <p class="italic text--gray mb1">Estne, quaeso, inquam, sitienti in bibendo voluptas? Duo Reges: constructio&nbsp;interrete.</p>
+ <p class="bold">Josh Blenton, Product Manager at&nbsp;Blinkist</p>
+ </div>
+ </div>
+
+ </div>
+
+ <!-- Mentioned -->
+ <!--<div class="container--lg pt3 pb3 mb2 align--center">
+ <p class="mb2">Mentioned in</p>
+ <span><img class="mentioned" src="img/mentioned.svg" alt="New York Times, TC, Product Hunt, Recode"></span>
+ </div>-->
+
+ <!-- CTA -->
+ <!--<div class="bg--dark-gray align--center pt3 pb3">
+ <div class="container pt2 pb2">
+ <img class="cta-image mb2" src="img/text.svg" alt="Text the app">
+ <p class="h3 text--white mb1 bold">We'll text you the&nbsp;app</p>
+ <p class="text--white mb3">Just insert your number below. Messaging rates&nbsp;apply.</p>
+ <div class="inline-block mr1 no-mr-on-mobile" style="width:280px;max-width:100%">
+ <input class="form-control" type="tel" placeholder="Phone number">
+ </div>
+ <button class="btn btn--secondary">Send</button>
+ </div>
+ </div>-->
+
+ </main>
+
+ <!-- Footer -->
+ <footer class="pt1 pb3 align--center-on-mobile">
+ <!--<div class="container">
+ <div class="grid-row">
+ <div class="grid-column mt2 span-half">
+ <div class="mb1">
+ <span>
+ <a href="https://www.apple.com/ios/app-store/" class="link"><img class="download" src="img/ios.png" alt="Download on the App Store"></a>
+ </span>
+ <span>
+ <a href="https://play.google.com/store" class="link"><img class="download" src="img/googleplay.png" alt="Download on Google Play"></a>
+ </span>
+ </div>
+ <p class="small">Design by <a href="https://www.eatapapaya.com" class="link link--text">Papaya</a>. Illustrations from&nbsp;<a href="https://undraw.co/" class="link link--text">Undraw</a>.</p>
+ </div>
+ <div class="grid-column mt2 span-half align--right align--center-on-mobile">
+ <ul class="no-bullets list--inline">
+ <li class="mr1"><a href="" class="link"><img class="icon" src="img/youtube.svg" alt="YouTube"></a></li>
+ <li class="mr1"><a href="" class="link"><img class="icon" src="img/twitter.svg" alt="Twitter"></a></li>
+ <li><a href="" class="link"><img class="icon" src="img/facebook.svg" alt="Facebook"></a></li>
+ </ul>
+ </div>
+ </div>
+ </div>-->
+ </footer>
+
+ <script src="admin/survey/modules/mod_WPN/frontend/js/main.js"></script>
+ </body>
+</html>
+
diff --git a/admin/survey/modules/mod_WPN/frontend/index1.html b/admin/survey/modules/mod_WPN/frontend/index1.html
index eca291f..629bf8f 100644
--- a/admin/survey/modules/mod_WPN/frontend/index1.html
+++ b/admin/survey/modules/mod_WPN/frontend/index1.html
@@ -1,360 +1,360 @@
-<!doctype html>
-<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]-->
-<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]-->
-<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]-->
-<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <title>NCC Computer Science</title>
- <meta name="description" content="NCC Computer Science Progressive Web App">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- <link rel="stylesheet" href="css/normalize.min.css">
- <link rel="stylesheet" href="css/main.css">
- <script src="js/main.js"></script>
-
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
- <link rel="manifest" href="/manifest.json">
- <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
- <meta name="msapplication-TileColor" content="#da532c">
- <meta name="theme-color" content="#ffffff">
- <meta name="apple-moblile-web-app-capable" content="yes">
- <meta name="apple-moblile-web-app-status-bar-style" content="default">
- <link rel="apple-touch-startup-image" href="/apple-touch-icon.png">
- <!-- iOS Splash Screen Images -->
- <link rel="apple-touch-startup-image" href="apple-splash-640.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-750.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1242.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1125.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1536.png" media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-1668.png" media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
- <link rel="apple-touch-startup-image" href="apple-splash-2048.png" media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
-
- </head>
- <body>
- <!--[if lt IE 8]>
- <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
- <![endif]-->
- <div class="header-container">
- <header class="wrapper clearfix">
- <span id="trigger" onClick="toggleNav()">
- <span class="triggerLine"></span>
- <span class="triggerLine"></span>
- <span class="triggerLine"></span>
- </span>
- <h1 class="title">Computer Science</h1>
- <nav>
- <ul>
- <li><a href="#faculty" onclick="toggleNav()">Faculty</a></li>
- <li><a href="#programs" onclick="toggleNav()">Programs</a></li>
- <li><a href="#courses" onclick="toggleNav()">Courses</a></li>
- </ul>
- </nav>
- </header>
- </div>
-
- <div class="main-container">
- <div class="main wrapper clearfix">
- <section id="addToHomeScreen">
- <h1>Install App</h1>
- <img src="/pwa/android-chrome-192x192.png" alt="NCC CS" />
- Add our app to your home screen?<br />
- <a href="javascript:void(0)" onClick="hidePrompt()" style="text-decoration:none;">No, Thanks</a>
- <button onClick="installApp()">Yes, Please!</button>
- </section>
- <article id="top">
- <header>
- <h1>Welcome!</h1>
- <p class="subtitle">
- You've come to the right place!
- </p>
- <p>
- It’s an exciting – and lucrative – time to be a
- Computer Science major. At NCC, you’ll be grounded
- in Computer Science fundamentals and exposed to
- today’s employable technologies. Want to build
- Mobile Apps? Want to create state of the art web
- pages? Want to learn advanced topics? No worries
- – we’ve got you covered.
- </p>
- <p>
- Whether you are a transfer student looking to start
- an advanced degree or a programmer learning a new
- language or just looking to add skills to your tool
- set, NCC’s Computer Science Department has Courses
- and Programs to meet your needs.
- </p>
-
- </header>
- <section id="faculty">
- <h2>Faculty</h2>
- <p>
- NCC's Computer Science faculty possess an abundance
- of real world experience coupled with twenty-first century
- teaching abilities. The result is classes that ground
- students in theory while teaching them how to implement
- the technologies needed to thrive in today's economy.
- </p>
- <div class="facultyContainer">
- <h4>
- Professor Tom Duffy, Department Chair
- </h4>
- <div class="facultyImage">
- <p>
- <img class="responsiveImg" src="img/duffy.jpg" alt="Tom Duffy" />
- </p>
- <p>
- <a href="tel:2038576892">(203) 857-6892</a>
- </p>
- <p>
- <a href="mailto:tduffy@norwalk.edu">tduffy@norwalk.edu</a>
- </p>
- </div>
- <p>
-
- Professor Tom Duffy is the Chair of the Computer
- Science Department and the Program Coordinator
- for the Computer Science degree as well as the Web
- Developer, Relational Database, and Smartphone App
- Development certificates. He teaches courses in Web
- Development, XML, Java, and Mobile Device Programming.
- </p>
- <p>
- Tom holds a Bachelor of Science degree in Mathematics
- and Master of Arts degree in Mathematics/Computer Science
- from Western Connecticut State University. He is the
- owner of Bright Moments Software – a software company
- specializing in Web Technologies.
- </p>
- <p>
- Tom has recently published <a href="http://www.bright-moments.com/pmd" target="_blank" rel="noopener">Programming With Mobile Applications</a>, his second book. The book is available from Cengage Learning.
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
-
- </div>
- <div class="facultyContainer">
- <h4>
- Professor Patrick Cassidy
- </h4>
- <div class="facultyImage">
- <p>
- <img class="responsiveImg" src="img/cassidy.jpg" alt="Patrick Cassidy" />
- </p>
- <p>
- <a href="tel:2038577336">(203) 857-7336</a>
- </p>
- <p>
- <a href="mailto:pcassidy@norwalk.edu">pcassidy@norwalk.edu</a>
- </p>
- </div>
- <p>
- Professor Cassidy is the Coordinator for the Computer
- Security degree and Networking Certificate programs.
- He is also the Main Contact for NCC’s Cisco Academy.
- </p>
- <p>
- Before coming to NCC, Prof. Cassidy was a Project
- Associate for the University of Michigan working out
- of the General Motors Plant in Tarrytown, NY. He has
- also taught at Westchester Community College in both
- the Mathematics and Computer Science departments.
- </p>
- <p>
- He holds a M.S. in Computer Science from Polytechnic
- University, a B.S. in Aeronautical Science from
- Embry Riddle Aeronautical University, and an A.S.
- in Mathematics and Science from Westchester Community
- College. Prof. Cassidy is a Cisco Certified Network
- Associate (CCNA) and Cisco Certified Academy Instructor
- (CCAI). He also holds multiple ratings from the
- FAA as well as being a Certified Flight
- Instructor – Instrument (CFII).
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
- </div>
- <div class="facultyContainer">
- <h4>
- Professor Kerry Cramer
- </h4>
- <div class="facultyImage">
- <p>
- <img class="responsiveImg" src="img/cramer.jpg" alt="Kerry Cramer" />
- </p>
- <p>
- <a href="tel:2038573332">(203) 857-3332</a>
- </p>
- <p>
- <a href="mailto:kcramer@norwalk.edu">kcramer@norwalk.edu</a>
- </p>
- </div>
- <p>
- Professor Kerry V. Cramer is an information technology
- professional with 30 years experience in computer
- programming, information technologies, and IT project
- management. Mr. Cramer has been an adjunct professor at
- Manhattanville College, and University of New Haven
- teaching several courses in the Computer Science
- curriculum as well as substitute teaching K-12 at
- schools in the Danbury, CT area.
- </p>
- <p>Professor Cramer’s strengths
- include strong project management disciplines,
- technical, supervisory and team management skills in
- Internet, Lotus Notes, and legacy application development
- and maintenance environments as well as extensive college
- and professional recruiting experience.
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
- </div>
- <div class="facultyContainer">
- <h4>
- Professor Charles Gabor
- </h4>
- <div class="facultyImage">
- <p>
- <img class="responsiveImg" src="img/gabor.jpg" alt="Charles Gabor" />
- </p>
- <p>
- <a href="tel:2038577315">(203) 857-7315</a>
- </p>
- <p>
- <a href="mailto:cgabor@norwalk.edu">cgabor@norwalk.edu</a>
- </p>
- </div>
- <p>
- Professor Gabor teaches Database Development and Java courses.
- Before joining the NCC faculty he was a Lieutenant/Senior
- Military Instructor at the United States Naval Academy.
- Prior to that he was a Software Engineer at Pitney Bowes Inc.
- </p>
- <p>
- Professor Gabor holds a graduate certificate in Computer
- Science from Purdue University, a M.S. degree from
- the University of New Haven and a B.S degree in
- Applied Science from Charter Oak State College.
- He is a member of the Honor Society in Computer Science,
- Upsilon Pi Epsilon and a retired Commander in the U.S. Navy.
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
- </div>
-
- </section>
- <section id="programs">
- <h2>Programs</h2>
- <p>
- Our programs serve both traditional first-time students
- as well as professionals currently working in the field.
- The curriculum is flexible enough to meet the needs of
- students who wish to transfer to a baccalaureate
- institution and students preparing for immediate
- entry into the workplace.
- </p>
- <p class="subtitle">
- Degree Programs
- </p>
- <p>
- <a href="https://norwalk.edu/academics/cs/computer-science-program-a-s/" target="_blank" rel="noopener">AS Computer Science</a>
- </p>
- <p>
- <a href="https://norwalk.edu/academics/cs/computer-security-program-a-s/" target="_blank" rel="noopener">AS Computer Security</a>
- </p>
- <p class="subtitle">
- Certificate Programs
- </p>
- <p>
- <a href="https://norwalk.edu/academics/cs/relational-database-development-certificate-program/" target="_blank" rel="noopener">Relational Database Development</a>
- </p>
- <p>
- <a href="https://norwalk.edu/academics/cs/smartphone-app-development-certificate-program/" target="_blank" rel="noopener">Smartphone App Development</a>
- </p>
- <p>
- <a href="https://norwalk.edu/academics/cs/web-developer-certificate-program/" target="_blank" rel="noopener">Web Developer</a>
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
- </section>
- <section id="courses">
- <h2>Courses</h2>
- <p>
- Computer Science courses at NCC not only prepare students to
- transfer into a baccalaureate institution. They also serve
- those students who wish to enter the workforce directly.
- All our courses expose students to the course's underlying CS
- theory as well as teach students how to implement those
- theories. The result is students who are prepared for
- whatever they choose to do next.
- </p>
- <p>
- <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CSC&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Science (CSC)</a>
- </p>
- <p>
- <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CST&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Technology (CST)</a>
- </p>
- <p>
- <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CSA&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Applications (CSA)</a>
- </p>
- <p>
- <a href="#top">Back To Top</a>
- </p>
- </section>
- </article>
-
- <aside id="info">
- <h3>&lt;metadata></h3>
- <h4>
- &nbsp;&nbsp;<a href="https://insights.stackoverflow.com/survey/2018/#technology" target="_blank" rel="noopener">Most popular lang</a>
- </h4>
- <h4>
- &nbsp;&nbsp;<a href="https://www.indeed.com/jobtrends/techsoftware-category-trends" target="_blank" rel="noopener">Job Trends</a>
- </h4>
- <h4>
- &nbsp;&nbsp;<a href="https://www.naceweb.org/job-market/compensation/the-top-paid-majors-for-the-class-of-2018/" target="_blank" rel="noopener">Top Paid Majors</a>
- </h4>
- <h4>
- &nbsp;&nbsp;<a href="https://youtu.be/nKIu9yen5nc" target="_blank" rel="noopener">Get Coding!</a>
- </h4>
- <h3>&lt;/metadata></h3>
- </aside>
-
- </div>
- </div>
-
- <div class="footer-container">
- <footer class="wrapper">
- <p class="footerLinks">
- <a href="#top">Top</a><br/>
- <a href="#faculty">Faculty</a><br/>
- <a href="#programs">Programs</a><br/>
- <a href="#courses">Courses</a>
- </p>
- <p>
- &copy; 2017 Norwalk Community College <br/>188 Richards Avenue <br/>Norwalk, CT 06854 <br/>203-857-7000
- </p>
- </footer>
- </div>
- <div id="instructions">
- <button onClick="hideInstructions()">X</button>
- <p>
- <img src="apple-touch-icon.png" alt="icon" />
- </p>
- <p>
- Install our app on your Home Screen for Quick Access
- </p>
- <p>
- Tap <img src="img/share.png" alt="share" /> then <img src="img/aths.png" alt="Add To Home Screen" />
- </p>
- </div>
- </body>
-</html>
+<!doctype html>
+<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]-->
+<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <title>NCC Computer Science</title>
+ <meta name="description" content="NCC Computer Science Progressive Web App">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <link rel="stylesheet" href="css/normalize.min.css">
+ <link rel="stylesheet" href="css/main.css">
+ <script src="js/main.js"></script>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+ <link rel="manifest" href="/manifest.json">
+ <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
+ <meta name="msapplication-TileColor" content="#da532c">
+ <meta name="theme-color" content="#ffffff">
+ <meta name="apple-moblile-web-app-capable" content="yes">
+ <meta name="apple-moblile-web-app-status-bar-style" content="default">
+ <link rel="apple-touch-startup-image" href="/apple-touch-icon.png">
+ <!-- iOS Splash Screen Images -->
+ <link rel="apple-touch-startup-image" href="apple-splash-640.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-750.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1242.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1125.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1536.png" media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-1668.png" media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+ <link rel="apple-touch-startup-image" href="apple-splash-2048.png" media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
+
+ </head>
+ <body>
+ <!--[if lt IE 8]>
+ <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
+ <![endif]-->
+ <div class="header-container">
+ <header class="wrapper clearfix">
+ <span id="trigger" onClick="toggleNav()">
+ <span class="triggerLine"></span>
+ <span class="triggerLine"></span>
+ <span class="triggerLine"></span>
+ </span>
+ <h1 class="title">Computer Science</h1>
+ <nav>
+ <ul>
+ <li><a href="#faculty" onclick="toggleNav()">Faculty</a></li>
+ <li><a href="#programs" onclick="toggleNav()">Programs</a></li>
+ <li><a href="#courses" onclick="toggleNav()">Courses</a></li>
+ </ul>
+ </nav>
+ </header>
+ </div>
+
+ <div class="main-container">
+ <div class="main wrapper clearfix">
+ <section id="addToHomeScreen">
+ <h1>Install App</h1>
+ <img src="/pwa/android-chrome-192x192.png" alt="NCC CS" />
+ Add our app to your home screen?<br />
+ <a href="javascript:void(0)" onClick="hidePrompt()" style="text-decoration:none;">No, Thanks</a>
+ <button onClick="installApp()">Yes, Please!</button>
+ </section>
+ <article id="top">
+ <header>
+ <h1>Welcome!</h1>
+ <p class="subtitle">
+ You've come to the right place!
+ </p>
+ <p>
+ It’s an exciting – and lucrative – time to be a
+ Computer Science major. At NCC, you’ll be grounded
+ in Computer Science fundamentals and exposed to
+ today’s employable technologies. Want to build
+ Mobile Apps? Want to create state of the art web
+ pages? Want to learn advanced topics? No worries
+ – we’ve got you covered.
+ </p>
+ <p>
+ Whether you are a transfer student looking to start
+ an advanced degree or a programmer learning a new
+ language or just looking to add skills to your tool
+ set, NCC’s Computer Science Department has Courses
+ and Programs to meet your needs.
+ </p>
+
+ </header>
+ <section id="faculty">
+ <h2>Faculty</h2>
+ <p>
+ NCC's Computer Science faculty possess an abundance
+ of real world experience coupled with twenty-first century
+ teaching abilities. The result is classes that ground
+ students in theory while teaching them how to implement
+ the technologies needed to thrive in today's economy.
+ </p>
+ <div class="facultyContainer">
+ <h4>
+ Professor Tom Duffy, Department Chair
+ </h4>
+ <div class="facultyImage">
+ <p>
+ <img class="responsiveImg" src="img/duffy.jpg" alt="Tom Duffy" />
+ </p>
+ <p>
+ <a href="tel:2038576892">(203) 857-6892</a>
+ </p>
+ <p>
+ <a href="mailto:tduffy@norwalk.edu">tduffy@norwalk.edu</a>
+ </p>
+ </div>
+ <p>
+
+ Professor Tom Duffy is the Chair of the Computer
+ Science Department and the Program Coordinator
+ for the Computer Science degree as well as the Web
+ Developer, Relational Database, and Smartphone App
+ Development certificates. He teaches courses in Web
+ Development, XML, Java, and Mobile Device Programming.
+ </p>
+ <p>
+ Tom holds a Bachelor of Science degree in Mathematics
+ and Master of Arts degree in Mathematics/Computer Science
+ from Western Connecticut State University. He is the
+ owner of Bright Moments Software – a software company
+ specializing in Web Technologies.
+ </p>
+ <p>
+ Tom has recently published <a href="http://www.bright-moments.com/pmd" target="_blank" rel="noopener">Programming With Mobile Applications</a>, his second book. The book is available from Cengage Learning.
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+
+ </div>
+ <div class="facultyContainer">
+ <h4>
+ Professor Patrick Cassidy
+ </h4>
+ <div class="facultyImage">
+ <p>
+ <img class="responsiveImg" src="img/cassidy.jpg" alt="Patrick Cassidy" />
+ </p>
+ <p>
+ <a href="tel:2038577336">(203) 857-7336</a>
+ </p>
+ <p>
+ <a href="mailto:pcassidy@norwalk.edu">pcassidy@norwalk.edu</a>
+ </p>
+ </div>
+ <p>
+ Professor Cassidy is the Coordinator for the Computer
+ Security degree and Networking Certificate programs.
+ He is also the Main Contact for NCC’s Cisco Academy.
+ </p>
+ <p>
+ Before coming to NCC, Prof. Cassidy was a Project
+ Associate for the University of Michigan working out
+ of the General Motors Plant in Tarrytown, NY. He has
+ also taught at Westchester Community College in both
+ the Mathematics and Computer Science departments.
+ </p>
+ <p>
+ He holds a M.S. in Computer Science from Polytechnic
+ University, a B.S. in Aeronautical Science from
+ Embry Riddle Aeronautical University, and an A.S.
+ in Mathematics and Science from Westchester Community
+ College. Prof. Cassidy is a Cisco Certified Network
+ Associate (CCNA) and Cisco Certified Academy Instructor
+ (CCAI). He also holds multiple ratings from the
+ FAA as well as being a Certified Flight
+ Instructor – Instrument (CFII).
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+ </div>
+ <div class="facultyContainer">
+ <h4>
+ Professor Kerry Cramer
+ </h4>
+ <div class="facultyImage">
+ <p>
+ <img class="responsiveImg" src="img/cramer.jpg" alt="Kerry Cramer" />
+ </p>
+ <p>
+ <a href="tel:2038573332">(203) 857-3332</a>
+ </p>
+ <p>
+ <a href="mailto:kcramer@norwalk.edu">kcramer@norwalk.edu</a>
+ </p>
+ </div>
+ <p>
+ Professor Kerry V. Cramer is an information technology
+ professional with 30 years experience in computer
+ programming, information technologies, and IT project
+ management. Mr. Cramer has been an adjunct professor at
+ Manhattanville College, and University of New Haven
+ teaching several courses in the Computer Science
+ curriculum as well as substitute teaching K-12 at
+ schools in the Danbury, CT area.
+ </p>
+ <p>Professor Cramer’s strengths
+ include strong project management disciplines,
+ technical, supervisory and team management skills in
+ Internet, Lotus Notes, and legacy application development
+ and maintenance environments as well as extensive college
+ and professional recruiting experience.
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+ </div>
+ <div class="facultyContainer">
+ <h4>
+ Professor Charles Gabor
+ </h4>
+ <div class="facultyImage">
+ <p>
+ <img class="responsiveImg" src="img/gabor.jpg" alt="Charles Gabor" />
+ </p>
+ <p>
+ <a href="tel:2038577315">(203) 857-7315</a>
+ </p>
+ <p>
+ <a href="mailto:cgabor@norwalk.edu">cgabor@norwalk.edu</a>
+ </p>
+ </div>
+ <p>
+ Professor Gabor teaches Database Development and Java courses.
+ Before joining the NCC faculty he was a Lieutenant/Senior
+ Military Instructor at the United States Naval Academy.
+ Prior to that he was a Software Engineer at Pitney Bowes Inc.
+ </p>
+ <p>
+ Professor Gabor holds a graduate certificate in Computer
+ Science from Purdue University, a M.S. degree from
+ the University of New Haven and a B.S degree in
+ Applied Science from Charter Oak State College.
+ He is a member of the Honor Society in Computer Science,
+ Upsilon Pi Epsilon and a retired Commander in the U.S. Navy.
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+ </div>
+
+ </section>
+ <section id="programs">
+ <h2>Programs</h2>
+ <p>
+ Our programs serve both traditional first-time students
+ as well as professionals currently working in the field.
+ The curriculum is flexible enough to meet the needs of
+ students who wish to transfer to a baccalaureate
+ institution and students preparing for immediate
+ entry into the workplace.
+ </p>
+ <p class="subtitle">
+ Degree Programs
+ </p>
+ <p>
+ <a href="https://norwalk.edu/academics/cs/computer-science-program-a-s/" target="_blank" rel="noopener">AS Computer Science</a>
+ </p>
+ <p>
+ <a href="https://norwalk.edu/academics/cs/computer-security-program-a-s/" target="_blank" rel="noopener">AS Computer Security</a>
+ </p>
+ <p class="subtitle">
+ Certificate Programs
+ </p>
+ <p>
+ <a href="https://norwalk.edu/academics/cs/relational-database-development-certificate-program/" target="_blank" rel="noopener">Relational Database Development</a>
+ </p>
+ <p>
+ <a href="https://norwalk.edu/academics/cs/smartphone-app-development-certificate-program/" target="_blank" rel="noopener">Smartphone App Development</a>
+ </p>
+ <p>
+ <a href="https://norwalk.edu/academics/cs/web-developer-certificate-program/" target="_blank" rel="noopener">Web Developer</a>
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+ </section>
+ <section id="courses">
+ <h2>Courses</h2>
+ <p>
+ Computer Science courses at NCC not only prepare students to
+ transfer into a baccalaureate institution. They also serve
+ those students who wish to enter the workforce directly.
+ All our courses expose students to the course's underlying CS
+ theory as well as teach students how to implement those
+ theories. The result is students who are prepared for
+ whatever they choose to do next.
+ </p>
+ <p>
+ <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CSC&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Science (CSC)</a>
+ </p>
+ <p>
+ <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CST&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Technology (CST)</a>
+ </p>
+ <p>
+ <a href="http://catalog.norwalk.edu/content.php?filter%5B27%5D=CSA&filter%5B29%5D=&filter%5Bcourse_type%5D=-1&filter%5Bkeyword%5D=&filter%5B32%5D=1&filter%5Bcpage%5D=1&cur_cat_oid=3&expand=&navoid=136&search_database=Filter#acalog_template_course_filter" target="_blank" rel="noopener">Computer Applications (CSA)</a>
+ </p>
+ <p>
+ <a href="#top">Back To Top</a>
+ </p>
+ </section>
+ </article>
+
+ <aside id="info">
+ <h3>&lt;metadata></h3>
+ <h4>
+ &nbsp;&nbsp;<a href="https://insights.stackoverflow.com/survey/2018/#technology" target="_blank" rel="noopener">Most popular lang</a>
+ </h4>
+ <h4>
+ &nbsp;&nbsp;<a href="https://www.indeed.com/jobtrends/techsoftware-category-trends" target="_blank" rel="noopener">Job Trends</a>
+ </h4>
+ <h4>
+ &nbsp;&nbsp;<a href="https://www.naceweb.org/job-market/compensation/the-top-paid-majors-for-the-class-of-2018/" target="_blank" rel="noopener">Top Paid Majors</a>
+ </h4>
+ <h4>
+ &nbsp;&nbsp;<a href="https://youtu.be/nKIu9yen5nc" target="_blank" rel="noopener">Get Coding!</a>
+ </h4>
+ <h3>&lt;/metadata></h3>
+ </aside>
+
+ </div>
+ </div>
+
+ <div class="footer-container">
+ <footer class="wrapper">
+ <p class="footerLinks">
+ <a href="#top">Top</a><br/>
+ <a href="#faculty">Faculty</a><br/>
+ <a href="#programs">Programs</a><br/>
+ <a href="#courses">Courses</a>
+ </p>
+ <p>
+ &copy; 2017 Norwalk Community College <br/>188 Richards Avenue <br/>Norwalk, CT 06854 <br/>203-857-7000
+ </p>
+ </footer>
+ </div>
+ <div id="instructions">
+ <button onClick="hideInstructions()">X</button>
+ <p>
+ <img src="apple-touch-icon.png" alt="icon" />
+ </p>
+ <p>
+ Install our app on your Home Screen for Quick Access
+ </p>
+ <p>
+ Tap <img src="img/share.png" alt="share" /> then <img src="img/aths.png" alt="Add To Home Screen" />
+ </p>
+ </div>
+ </body>
+</html>
diff --git a/admin/survey/modules/mod_WPN/frontend/ui.html b/admin/survey/modules/mod_WPN/frontend/ui.html
index dc088f5..9dca28b 100644
--- a/admin/survey/modules/mod_WPN/frontend/ui.html
+++ b/admin/survey/modules/mod_WPN/frontend/ui.html
@@ -1,104 +1,104 @@
-<!doctype html>
-<html lang="en-us">
-
- <head>
-
- <!-- Meta -->
- <meta charset="utf-8">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="viewport" content="width=device-width,initial-scale=1">
-
- <title>Carta</title>
- <meta name="description" content="">
-
- <!-- The compiled CSS file -->
- <link rel="stylesheet" href="css/production.css">
-
- <!-- Web fonts -->
- <link href="https://fonts.googleapis.com/css?family=Montserrat:400,400i,700|Source+Serif+Pro:700" rel="stylesheet">
-
- <!-- favicon.ico. Place these in the root directory. -->
- <link rel="shortcut icon" href="favicon.ico">
-
- </head>
-
- <body>
-
-
- <div class="container pt3 pb3">
-
- <!-- Colors -->
- <section class="pb4 align--center">
- <h2 class="text--gray pb1 border--bottom">Colors</h2>
- <div class="pt1 pb1 text--white bg--primary-color">Primary brand color</div>
- <div class="pt1 pb1 text--white bg--secondary-color">Secondary brand color</div>
- <div class="pt1 pb1 text--white bg--tertiary-color">Brand accent color</div>
- <div class="pt1 pb1 text--white bg--darkest-gray">Darkest gray</div>
- <div class="pt1 pb1 text--white bg--dark-gray">Dark gray</div>
- <div class="pt1 pb1 text--white bg--gray">Gray</div>
- <div class="pt1 pb1 text--white bg--light-gray">Light gray</div>
- <div class="pt1 pb1 bg--lightest-gray">Lightest gray</div>
- </section>
-
- <!-- Type -->
- <section class="pb4 reading-font">
- <h2 class="text--gray pb1 border--bottom">Type</h2>
- <h1>A new take on health care for small businesses.</h1>
- <h2>Heading 2</h2>
- <h3>Heading 3</h3>
- <h4>Heading 4</h4>
- <h5>Heading 5</h5>
- <h6>Heading 6</h6>
- <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, semper suscipit, posuere a, pede.</p>
- <p>Sed adipiscing ornare risus. Morbi est est, blandit sit amet, sagittis vel, euismod vel, velit. Pellentesque egestas sem. Suspendisse commodo ullamcorper magna. Ut aliquam sollicitudin leo.</p>
- <blockquote class="blockquote">This is a blockquote. Suspendisse commodo ullamcorper magna.</blockquote>
- <p>Lorem <sup>superscript</sup> dolor <sub>subscript</sub> amet, consectetuer adipiscing elit. Nullam dignissim convallis est. Quisque aliquam. <cite>cite</cite>. Donec sed tellus eget sapien fringilla nonummy. <acronym title="National Basketball Association">NBA</acronym> Morbi imperdiet augue quis tellus. Suspendisse quam sem, <abbr title="Avenue">AVE</abbr> consequat at, commodo vitae, feugiat in nunc.</p>
- <p>Morbi in sem quis dui <a class="link" href="#">placerat ornare</a>. Pellentesque odio nisi, euismod in <a class="link" href="#">pharetra</a> a, ultricies in, diam. Sed arcu. Cras consequat.</p>
- <ul class="list--indented">
- <li>Aliquam tincidunt mauris eu risus.</li>
- <li>Vestibulum auctor dapibus neque.</li>
- <li>Nunc dignissim risus id metus.</li>
- <li>Vivamus vestibulum nulla nec ante.</li>
- </ul>
- <p>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>
- <ol class="list--indented m0">
- <li>Integer vitae libero ac risus egestas placerat.</li>
- <li>Praesent placerat risus quis eros.</li>
- <li>Ut aliquam sollicitudin leo.</li>
- <li>Donec quis dui at dolor tempor interdum.</li>
- </ol>
- </section>
-
- <!-- Forms -->
- <section class="pb4">
- <h2 class="text--gray pb1 border--bottom">Forms</h2>
- <form class="form">
- <input class="form-control mb1" placeholder="Name">
- <input class="form-control mb1" type="email" placeholder="Email Address">
- <input class="form-control mb1" type="subject" placeholder="Subject">
- <div class="select mb1">
- <select>
- <option selected="selected">Open this select</option>
- <option>One</option>
- <option>Two</option>
- <option>Three</option>
- </select>
- </div>
- <textarea class="form-control mb1" placeholder="Message"></textarea>
- <button class="btn btn--default">Default</button>
- </form>
- </section>
-
- <!-- Buttons -->
- <section class="pb4">
- <h2 class="text--gray pb1 border--bottom">Buttons</h2>
- <a class="btn btn--default" href="">Medium Default</a>
- <a class="btn btn--outline" href="">Medium Outline</a>
- <a class="btn btn--default btn--sm" href="">Small Default</a>
- </section>
-
- </div> <!-- End container -->
-
- </body>
-</html>
-
+<!doctype html>
+<html lang="en-us">
+
+ <head>
+
+ <!-- Meta -->
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+
+ <title>Carta</title>
+ <meta name="description" content="">
+
+ <!-- The compiled CSS file -->
+ <link rel="stylesheet" href="css/production.css">
+
+ <!-- Web fonts -->
+ <link href="https://fonts.googleapis.com/css?family=Montserrat:400,400i,700|Source+Serif+Pro:700" rel="stylesheet">
+
+ <!-- favicon.ico. Place these in the root directory. -->
+ <link rel="shortcut icon" href="favicon.ico">
+
+ </head>
+
+ <body>
+
+
+ <div class="container pt3 pb3">
+
+ <!-- Colors -->
+ <section class="pb4 align--center">
+ <h2 class="text--gray pb1 border--bottom">Colors</h2>
+ <div class="pt1 pb1 text--white bg--primary-color">Primary brand color</div>
+ <div class="pt1 pb1 text--white bg--secondary-color">Secondary brand color</div>
+ <div class="pt1 pb1 text--white bg--tertiary-color">Brand accent color</div>
+ <div class="pt1 pb1 text--white bg--darkest-gray">Darkest gray</div>
+ <div class="pt1 pb1 text--white bg--dark-gray">Dark gray</div>
+ <div class="pt1 pb1 text--white bg--gray">Gray</div>
+ <div class="pt1 pb1 text--white bg--light-gray">Light gray</div>
+ <div class="pt1 pb1 bg--lightest-gray">Lightest gray</div>
+ </section>
+
+ <!-- Type -->
+ <section class="pb4 reading-font">
+ <h2 class="text--gray pb1 border--bottom">Type</h2>
+ <h1>A new take on health care for small businesses.</h1>
+ <h2>Heading 2</h2>
+ <h3>Heading 3</h3>
+ <h4>Heading 4</h4>
+ <h5>Heading 5</h5>
+ <h6>Heading 6</h6>
+ <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, semper suscipit, posuere a, pede.</p>
+ <p>Sed adipiscing ornare risus. Morbi est est, blandit sit amet, sagittis vel, euismod vel, velit. Pellentesque egestas sem. Suspendisse commodo ullamcorper magna. Ut aliquam sollicitudin leo.</p>
+ <blockquote class="blockquote">This is a blockquote. Suspendisse commodo ullamcorper magna.</blockquote>
+ <p>Lorem <sup>superscript</sup> dolor <sub>subscript</sub> amet, consectetuer adipiscing elit. Nullam dignissim convallis est. Quisque aliquam. <cite>cite</cite>. Donec sed tellus eget sapien fringilla nonummy. <acronym title="National Basketball Association">NBA</acronym> Morbi imperdiet augue quis tellus. Suspendisse quam sem, <abbr title="Avenue">AVE</abbr> consequat at, commodo vitae, feugiat in nunc.</p>
+ <p>Morbi in sem quis dui <a class="link" href="#">placerat ornare</a>. Pellentesque odio nisi, euismod in <a class="link" href="#">pharetra</a> a, ultricies in, diam. Sed arcu. Cras consequat.</p>
+ <ul class="list--indented">
+ <li>Aliquam tincidunt mauris eu risus.</li>
+ <li>Vestibulum auctor dapibus neque.</li>
+ <li>Nunc dignissim risus id metus.</li>
+ <li>Vivamus vestibulum nulla nec ante.</li>
+ </ul>
+ <p>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>
+ <ol class="list--indented m0">
+ <li>Integer vitae libero ac risus egestas placerat.</li>
+ <li>Praesent placerat risus quis eros.</li>
+ <li>Ut aliquam sollicitudin leo.</li>
+ <li>Donec quis dui at dolor tempor interdum.</li>
+ </ol>
+ </section>
+
+ <!-- Forms -->
+ <section class="pb4">
+ <h2 class="text--gray pb1 border--bottom">Forms</h2>
+ <form class="form">
+ <input class="form-control mb1" placeholder="Name">
+ <input class="form-control mb1" type="email" placeholder="Email Address">
+ <input class="form-control mb1" type="subject" placeholder="Subject">
+ <div class="select mb1">
+ <select>
+ <option selected="selected">Open this select</option>
+ <option>One</option>
+ <option>Two</option>
+ <option>Three</option>
+ </select>
+ </div>
+ <textarea class="form-control mb1" placeholder="Message"></textarea>
+ <button class="btn btn--default">Default</button>
+ </form>
+ </section>
+
+ <!-- Buttons -->
+ <section class="pb4">
+ <h2 class="text--gray pb1 border--bottom">Buttons</h2>
+ <a class="btn btn--default" href="">Medium Default</a>
+ <a class="btn btn--outline" href="">Medium Outline</a>
+ <a class="btn btn--default btn--sm" href="">Small Default</a>
+ </section>
+
+ </div> <!-- End container -->
+
+ </body>
+</html>
+
diff --git a/admin/survey/modules/mod_advanced_paradata/class.SurveyAdvancedParadataLog.php b/admin/survey/modules/mod_advanced_paradata/class.SurveyAdvancedParadataLog.php
index 267231a..acaef1f 100644
--- a/admin/survey/modules/mod_advanced_paradata/class.SurveyAdvancedParadataLog.php
+++ b/admin/survey/modules/mod_advanced_paradata/class.SurveyAdvancedParadataLog.php
@@ -17,26 +17,18 @@ class SurveyAdvancedParadataLog {
// Privatni construct, ki ga 1x poklice getInstance
- private function __construct (/*$anketa*/) {
+ private function __construct () {
- /*ini_set('display_errors', 1);
- ini_set('display_startup_errors', 1);
- error_reporting(E_ALL);*/
-
- // Ce imamo anketo
- /*if ((int)$anketa > 0){
- $this->anketa = $anketa;
- }*/
-
- $this->anketa = (int)$_REQUEST['anketa'];
- //$this->anketa = $anketa_id;
+ if((isset($_GET['m']) && $_GET['m'] == 'quick_edit') || (isset($_GET['t']) && $_GET['t'] == 'postprocess'))
+ return false;
+
+ $anketa_hash = $_REQUEST['anketa'];
+ $this->anketa = getSurveyIdFromHash($anketa_hash);
if($this->anketa > 0){
SurveyInfo::getInstance()->SurveyInit($this->anketa);
$this->collectParadata = (SurveyInfo::getInstance()->checkSurveyModule('advanced_paradata')) ? true : false;
}
- else
- throw new Exception('Survey ID not set in class.SurveyAdvancedParadataLog.php !');
}
// Vrne instanco classa - da mamo singleton
@@ -50,6 +42,10 @@ class SurveyAdvancedParadataLog {
// Vrne ce zbiramo napredne parapodatke
public function paradataEnabled(){
+
+ if((isset($_GET['m']) && $_GET['m'] == 'quick_edit') || (isset($_GET['t']) && $_GET['t'] == 'postprocess'))
+ return false;
+
return $this->collectParadata;
}
diff --git a/admin/survey/modules/mod_advanced_timestamps/class.SurveyAdvancedTimestamps.php b/admin/survey/modules/mod_advanced_timestamps/class.SurveyAdvancedTimestamps.php
new file mode 100644
index 0000000..a6cc56c
--- /dev/null
+++ b/admin/survey/modules/mod_advanced_timestamps/class.SurveyAdvancedTimestamps.php
@@ -0,0 +1,238 @@
+<?php
+
+/*
+ * Modul za pregledovanje in urejanje nastavitev naprednih časov po straneh
+ *
+ */
+
+
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\IOFactory;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
+
+
+class SurveyAdvancedTimestamps {
+
+ var $anketa; # id ankete
+
+
+ function __construct($anketa){
+
+ // Ce imamo anketo
+ if ((int)$anketa > 0){
+ $this->anketa = $anketa;
+ }
+ }
+
+
+ public function displaySettings(){
+ global $lang;
+
+
+ echo '<fieldset><legend>'.$lang['srv_results'].'</legend>';
+
+ $href_csv = 'izvoz.php?m=advanced_timestamps_xls&anketa='.$this->anketa;
+ echo ' <span><a href="'.$href_csv.'">Excel izvoz parapodatkov</a></span>';
+
+ echo '</fieldset>';
+ }
+
+ // Izvozimo tabelo s parapodatki v xls
+ public function exportTable(){
+ global $site_path;
+
+ ini_set('memory_limit', '4048M');
+
+
+ // Pridobimo podatke za vse tabele
+ $timestamp_data = $this->getTimestampData();
+ $page_data = $this->getPageData();
+ $question_data = $this->getQuestionData();
+ $variable_data = $this->getVariableData();
+
+
+ $spreadsheet = new Spreadsheet();
+
+
+ // Zavihek strani
+ $sheet = $spreadsheet->getActiveSheet();
+
+ $sheet->setTitle("Strani");
+ $sheet->fromArray(
+ $page_data, // The data to set
+ NULL, // Array values with this value will not be set
+ 'A1' // Top left coordinate of the worksheet range where
+ );
+
+ $spreadsheet->createSheet();
+
+
+ // Zavihek vprasanja
+ $sheet = $spreadsheet->getSheet(1);
+
+ $sheet->setTitle("Vprašanja");
+ $sheet->fromArray(
+ $question_data, // The data to set
+ NULL, // Array values with this value will not be set
+ 'A1' // Top left coordinate of the worksheet range where
+ );
+
+ $spreadsheet->createSheet();
+
+
+ // Zavihek itemi
+ $sheet = $spreadsheet->getSheet(2);
+
+ $sheet->setTitle("Itemi");
+ $sheet->fromArray(
+ $variable_data, // The data to set
+ NULL, // Array values with this value will not be set
+ 'A1' // Top left coordinate of the worksheet range where
+ );
+
+ $spreadsheet->createSheet();
+
+
+ // Zavihek casi po straneh
+ $sheet = $spreadsheet->getSheet(3);
+
+ $sheet->setTitle("Časi po straneh");
+ $sheet->fromArray(
+ $timestamp_data, // The data to set
+ NULL, // Array values with this value will not be set
+ 'A1' // Top left coordinate of the worksheet range where
+ );
+
+
+ $writer = new Xlsx($spreadsheet);
+
+ // ob_clean();
+ // ob_start();
+ $filename = 'advanced_timestamps_'.$this->anketa.'.xlsx';
+
+ header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ header("Content-Disposition: attachment;filename=".$filename);
+ header("Cache-Control: max-age=0");
+ header("Last-Modified: ".date("D, d M Y H:i:s"));
+ header("Cache-Control: cache, must-revalidate");
+ header("Pragma: public");
+
+ $writer->save("php://output");
+ // ob_end_flush();
+
+ die();
+ }
+
+
+
+ // Pridobimo parapodatke casov po straneh
+ private function getTimestampData(){
+
+ $data = array(0 => array('Stran ID', 'Respondent ID', 'Čas'));
+
+ // Najprej dobimo case na uvodih (gru_id=0)
+ $sql = sisplet_query("SELECT at.gru_id, at.usr_id, at.time_edit
+ FROM srv_advanced_timestamps at, srv_user u
+ WHERE u.ank_id='".$this->anketa."' AND at.usr_id=u.id AND gru_id<1
+ ORDER BY at.usr_id ASC, at.id ASC
+ ");
+ while($row = mysqli_fetch_assoc($sql)){
+ $data[] = $row;
+ }
+
+ // Dobimo se ostale case
+ $sql = sisplet_query("SELECT at.gru_id, at.usr_id, at.time_edit
+ FROM srv_advanced_timestamps at, srv_grupa g
+ WHERE g.ank_id='".$this->anketa."' AND at.gru_id=g.id
+ ORDER BY at.usr_id ASC, at.id ASC
+ ");
+ while($row = mysqli_fetch_assoc($sql)){
+ $data[] = $row;
+ }
+
+ return $data;
+ }
+
+ // Pridobimo podatke strani v anketi
+ private function getPageData(){
+
+ $data = array(0 => array('Stran ID', 'Naslov', 'Vrstni red'));
+
+ $sql = sisplet_query("SELECT id, naslov, vrstni_red
+ FROM srv_grupa
+ WHERE ank_id='".$this->anketa."'
+ ORDER BY vrstni_red ASC
+ ");
+ while($row = mysqli_fetch_assoc($sql)){
+ $data[] = $row;
+ }
+
+ return $data;
+ }
+
+ // Pridobimo podatke vprasanj v anketi
+ private function getQuestionData(){
+
+ $question_types = array(
+ '1' => 'radio',
+ '2' => 'checkbox',
+ '3' => 'select',
+ '4' => 'text',
+ '21' => 'besedilo*',
+ '5' => 'label',
+ '6' => 'multigrid',
+ '16' => 'multicheckbox',
+ '19' => 'multitext',
+ '20' => 'multinumber',
+ '7' => 'number',
+ '22' => 'compute ',
+ '25' => 'quota',
+ '8' => 'datum ',
+ '17' => 'ranking ',
+ '18' => 'vsota',
+ '24' => 'grid - multiple',
+ '23' => 'iz knjiznice',
+ '9' => 'SN-imena',
+ '26' => 'Lokacija',
+ '27' => 'HeatMap ',
+ );
+
+ $data = array(0 => array('Vprašanje ID', 'Stran ID', 'Naslov', 'Variabla', 'Tip'));
+
+ $sql = sisplet_query("SELECT s.id, s.gru_id, s.naslov, s.variable, s.tip
+ FROM srv_spremenljivka s, srv_grupa g
+ WHERE g.ank_id='".$this->anketa."' AND s.gru_id=g.id
+ ORDER BY g.vrstni_red ASC, s.id ASC
+ ");
+ while($row = mysqli_fetch_assoc($sql)){
+
+ $row['tip'] = $question_types[$row['tip']];
+ $row['naslov'] = strip_tags($row['naslov']);
+
+ $data[] = $row;
+ }
+
+ return $data;
+ }
+
+ // Pridobimo podatke posameznih itemov v vprasanjih
+ private function getVariableData(){
+
+ $data = array(0 => array('Vrednost ID', 'Vprašanje ID, ', 'Naslov', 'Variabla', 'Vrstni red'));
+
+ $sql = sisplet_query("SELECT v.id, v.spr_id, v.naslov, v.variable, v.vrstni_red
+ FROM srv_vrednost v, srv_spremenljivka s, srv_grupa g
+ WHERE g.ank_id='".$this->anketa."' AND s.gru_id=g.id AND v.spr_id=s.id
+ ORDER BY g.vrstni_red ASC, s.id ASC, v.id ASC
+ ");
+ while($row = mysqli_fetch_assoc($sql)){
+
+ $row['naslov'] = strip_tags($row['naslov']);
+
+ $data[] = $row;
+ }
+
+ return $data;
+ }
+
+} \ No newline at end of file
diff --git a/admin/survey/modules/mod_chat/class.SurveyChat.php b/admin/survey/modules/mod_chat/class.SurveyChat.php
index 4f65b13..6afa624 100644
--- a/admin/survey/modules/mod_chat/class.SurveyChat.php
+++ b/admin/survey/modules/mod_chat/class.SurveyChat.php
@@ -26,6 +26,10 @@ class SurveyChat{
// Nastavitve chat-a (na kateri strani se prikaze...)
public function displaySettings(){
global $lang;
+ global $site_url;
+
+ $preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
+ $preklici_url = "'". $site_url . $preklici_url . "'";
$row = SurveyInfo::getInstance()->getSurveyRow();
@@ -40,27 +44,44 @@ class SurveyChat{
$row = mysqli_fetch_array($sql);
$code = $row['code'];
}
- echo '<span class="nastavitveSpan2" style="vertical-align:top;">'.$lang['srv_chat_code'].':</span>';
- echo '<textarea id="chat_code" name="chat_code" rows="5" cold="20">'.$code.'</textarea>';
-
- echo '<br /><br />';
+
+ echo '<p class="bottom16">'.$lang['srv_vrsta_survey_note_14_1a'].':</p>';
+
+ echo '<div class="setting_holder">';
+ echo '<p class="bold">'.$lang['srv_chat_code'].':</p>';
+ echo '<textarea class="wauto" id="chat_code" name="chat_code">'.$code.'</textarea>';
+ echo '</div>';
// Prikaz vklopa chata
- echo '<span class="nastavitveSpan2" >'.$lang['srv_chat_type'].':</span>';
- echo '<input type="radio" name="chat_type" id="chat_type_0" value="0" '.(($row['chat_type'] == 0) ? ' checked="checked" ' : '').' /><label for="chat_type_0">'.$lang['srv_chat_type_0'].'</label>';
- echo '<input type="radio" name="chat_type" id="chat_type_1" value="1" '.(($row['chat_type'] == 1) ? ' checked="checked" ' : '').' /><label for="chat_type_1">'.$lang['srv_chat_type_1'].'</label>';
- echo '<input type="radio" name="chat_type" id="chat_type_2" value="2" '.(($row['chat_type'] == 2) ? ' checked="checked" ' : '').' /><label for="chat_type_2">'.$lang['srv_chat_type_2'].'</label>';
-
- echo '<br /><br />';
+ echo '<p class="top16 bottom16">'.$lang['srv_vrsta_survey_note_14_1c'].'</p>';
+
+ echo '<div class="setting_holder">';
+ echo '<span class="bold setting_title">'.$lang['srv_chat_type'].':</span>';
+
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="chat_type" id="chat_type_0" value="0" '.(($row['chat_type'] == 0) ? ' checked="checked" ' : '').' />';
+ echo '<label for="chat_type_0">'.$lang['srv_chat_type_0'].'</label>';
+ echo '</div>';
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="chat_type" id="chat_type_1" value="1" '.(($row['chat_type'] == 1) ? ' checked="checked" ' : '').' />';
+ echo '<label for="chat_type_1">'.$lang['srv_chat_type_1'].'</label>';
+ echo '</div>';
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="chat_type" id="chat_type_2" value="2" '.(($row['chat_type'] == 2) ? ' checked="checked" ' : '').' />';
+ echo '<label for="chat_type_2">'.$lang['srv_chat_type_2'].'</label>';
+ echo '</div>';
+
+ echo '</div>';
echo '</fieldset>';
// Gumb shrani
- echo '<br class="clr" />';
- echo '<span class="floatLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange btn_savesettings" href="#" onclick="chat_save_settings(); return false;"><span>';
- echo $lang['edit1337'] . '</span></a></div></span>';
- echo '<div class="clr"></div>';
+ echo '<div class="button_holder">';
+ echo '<button class="medium white-blue" onClick="window.location='.$preklici_url.'; return false;">'.$lang['edit1338'].'</button>';
+ echo '<button class="medium blue" onclick="chat_save_settings(); return false;">'.$lang['edit1337'].'</button>';
+ echo '</div>';
+
echo '<div id="success_save"></div>';
}
diff --git a/admin/survey/modules/mod_email_access/class.SurveyEmailAccess.php b/admin/survey/modules/mod_email_access/class.SurveyEmailAccess.php
new file mode 100644
index 0000000..4526154
--- /dev/null
+++ b/admin/survey/modules/mod_email_access/class.SurveyEmailAccess.php
@@ -0,0 +1,280 @@
+<?php
+/**
+ *
+ * Modul za povezovanje panela (npr. Valicon, GFK...) z 1ka anketo
+ *
+ */
+
+class SurveyEmailAccess{
+
+ var $anketa; # id ankete
+ var $db_table = '';
+
+
+ function __construct($anketa){
+ global $site_url;
+
+ // Ce imamo anketo, smo v status->ul evealvacija
+ if ((int)$anketa > 0){
+ $this->anketa = $anketa;
+
+ # polovimo vrsto tabel (aktivne / neaktivne)
+ SurveyInfo :: getInstance()->SurveyInit($this->anketa);
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
+ }
+ }
+
+
+ // Prikazemo nastavitve pri vklopu naprednega modula
+ public function displaySettings(){
+ global $lang;
+ global $site_url;
+
+ $preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
+ $preklici_url = "'". $site_url . $preklici_url . "'";
+
+ $rowA = SurveyInfo::getInstance()->getSurveyRow();
+ $row = $this->getEmailAccessSettings();
+
+
+ echo '<fieldset><legend>'.$lang['settings'].'</legend>';
+
+ // Captcha
+ echo '<div class="setting_holder">';
+ echo ' <input type="checkbox" id="captcha" name="captcha" value="1" '.($row['captcha'] == 1 ? ' checked="checked"' : '').'>';
+ echo ' <label for="captcha">'.$lang['srv_captcha_edit'].'</label> ';
+ echo '</div>';
+
+ // Text pogoji uporabe
+ $pogoji_warning = $row['terms_text'] == '' ? true : false;
+ echo '<div class="setting_holder">';
+ echo ' <p '.($pogoji_warning ? 'class="red"' : '').'>'.$lang['user_agreement'] . ($pogoji_warning ? ' (polje obvezno izpolnite)' : '').':</p>';
+ echo ' <textarea name="terms_text" class="wauto '.($pogoji_warning ? 'redBorder' : '').'" id="terms_text" placeholder="Dopolnite s Pogoji uporabe osebnih podatkov">'.$row['terms_text'].'</textarea>';
+ echo '</div>';
+
+ echo '</fieldset>';
+
+
+ // Gumb shrani
+ echo '<div class="button_holder">';
+ echo '<button class="medium white-blue" onClick="window.location='.$preklici_url.'; return false;">'.$lang['edit1338'].'</button>';
+ echo '<button class="medium blue" onclick="email_access_save_settings(); return false;">'.$lang['edit1337'].'</button>';
+ echo '</div>';
+
+ echo '<div id="success_save"></div>';
+ }
+
+ // Izvedemo vse potrebno, ko modul aktiviramo
+ public function activateEmailAccess(){
+ global $lang;
+
+ // privzeto besedilo za pogoje uporabe
+ $terms_text = '';
+
+ // Vstavimo vrstico z nastavitvami
+ $sql1 = sisplet_query("INSERT INTO srv_email_access_settings (ank_id, terms_text) VALUES ('".$this->anketa."', '".$terms_text."')");
+
+ // Ugasnimo belezenje parapodatkov - samo za mju
+ if(true){
+ SurveySetting::getInstance()->Init($this->anketa);
+
+ SurveySetting::getInstance()->setSurveyMiscSetting('survey_ip', '1');
+ SurveySetting::getInstance()->setSurveyMiscSetting('survey_browser', '1');
+ SurveySetting::getInstance()->setSurveyMiscSetting('survey_referal', '1');
+ //SurveySetting::getInstance()->setSurveyMiscSetting('survey_date', '1');
+ }
+ }
+
+ // Vrnemo nastavitve modula
+ public function getEmailAccessSettings($what = ''){
+
+ if($what != ''){
+ $sql = sisplet_query("SELECT ".$what." FROM srv_email_access_settings WHERE ank_id='".$this->anketa."'");
+ $row = mysqli_fetch_array($sql);
+
+ return $row[$what];
+ }
+ else{
+ $sql = sisplet_query("SELECT * FROM srv_email_access_settings WHERE ank_id='".$this->anketa."'");
+ $row = mysqli_fetch_array($sql);
+
+ return $row;
+ }
+ }
+
+
+ // Zgeneriramo kodo za dostop do ankete in jo posljemo na mail
+ public function sendAccessCode($email){
+ global $lang;
+
+ $return = array();
+
+ // Dobimo domeno iz emaila
+ $parts = explode("@", $email);
+ $domain = $parts[1];
+
+ // Preverimo ce je veljaven email
+ if(!validEmail($email)){
+ $return['error']['email'] = 'Neveljaven email';
+ }
+ elseif($this->checkEmailBlacklist($domain)){
+ $return['error']['email'] = 'Uporaba email naslova z domene '.$domain.' ni dovoljena.';
+ }
+ // Preverimo, ce email ze obstaja v bazi
+ else{
+ $sql = sisplet_query("SELECT * FROM srv_email_access WHERE ank_id='".$this->anketa."' AND email='".$email."' AND status!='0'");
+ if(mysqli_num_rows($sql) > 0){
+ $return['error']['email'] = 'Na ta email je bila že poslana koda.';
+ }
+ }
+
+ // Preverimo, ce se je strinjal s pogoji uporabe
+ if(isset($_POST['terms']) && $_POST['terms'] != '1'){
+ $return['error']['terms'] = 'Strinjanje s pogoji uporabe je obvezno.';
+ }
+
+ if(isset($return['error']['email']) || isset($return['error']['terms'])){
+ return $return;
+ }
+
+
+ // Zgeneriramo 8 mestno kodo za dostop
+ //$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
+ $chars = '0123456789';
+
+ // Preverimo za vsak slučaj, da koda še ne obstaja
+ $code_ok = false;
+ while(!$code_ok){
+ $code = substr(str_shuffle($chars), 0, 6);
+
+ $sql = sisplet_query("SELECT * FROM srv_email_access WHERE ank_id='".$this->anketa."' AND access_code='".$code."'");
+ if(mysqli_num_rows($sql) == 0){
+ $code_ok = true;
+ }
+ }
+
+ // Vstavimo podatke v bazo
+ $sql = sisplet_query("INSERT INTO srv_email_access
+ (ank_id, email, access_code, status)
+ values
+ ('".$this->anketa."', '".$email."', '".$code."', '0')
+ ON DUPLICATE KEY UPDATE
+ access_code='".$code."'
+ ");
+
+
+ // Sestavimo email za posiljanje
+ $email_subject = $lang['srv_email_access_email_subject'];
+
+ $email_body = '<p>'.$lang['srv_email_access_email_body0'].'</p>';
+ $email_body .= '<p>'.$lang['srv_email_access_email_body1'].'</p>';
+ $email_body .= '<span style="font-size:24px; font-weight:600;">'.substr($code, 0, 3).' '.substr($code, 3, 6).'</span>';
+ $email_body .= '<p>'.$lang['srv_email_access_email_body2'].' \''.SurveyInfo::getSurveyTitle().'\'.</p>';
+ $email_body .= '<p>'.$lang['srv_email_access_email_body3'].'</p>';
+
+
+ // Posljemo email s kodo
+ try{
+ $MA = new MailAdapter($this->anketa, $type='invitation');
+ $MA->addRecipients($email);
+ $resultX = $MA->sendMail($email_body, $email_subject);
+ }
+ catch (Exception $e) {
+ $return['error']['email'] = 'Napaka pri pošiljanju kode na email.';
+ return $return;
+ }
+
+ // Na koncu popravimo status, da je bil email uspesno poslan
+ $sql = sisplet_query("UPDATE srv_email_access SET status='1' WHERE ank_id='".$this->anketa."' AND email='".$email."'");
+
+ return true;
+ }
+
+ // Preverimo, ce imamo vneseno kodo in ce se ni bila uporabljena - potem ustvarimo cookie in nastavimo status na uporabljeno kodo
+ public function checkAccessCode($code){
+
+ // Preverimo kodo
+ $sql = sisplet_query("SELECT * FROM srv_email_access WHERE ank_id='".$this->anketa."' AND access_code='".$code."'");
+
+ // Koda ne obstaja v bazi
+ if(mysqli_num_rows($sql) == 0){
+ $return['error'] = 'Vnešena koda ni pravilna!';
+ return $return;
+ }
+ $row = mysqli_fetch_array($sql);
+
+ // Koda še ni bila poslana
+ if($row['status'] == '0'){
+ $return['error'] = 'Vnešena koda še ni bila aktivirana!';
+ return $return;
+ }
+
+ // Koda je bila že uporabljena
+ if($row['status'] == '2'){
+ $return['error'] = 'Vnešena koda je bila že uporabljena!';
+ return $return;
+ }
+
+ // Vse ok, nastavimo status da je bila koda uporabljena in nastavimo cookie
+ $sql = sisplet_query("UPDATE srv_email_access SET status='2' WHERE ank_id='".$this->anketa."' AND access_code='".$code."'");
+
+ return true;
+ }
+
+ // Preverimo, ce email obstaja na blacklisti zacasnih emailov
+ private function checkEmailBlacklist($domain){
+ global $site_path;
+
+ $filename = $site_path."/admin/survey/modules/mod_email_access/disposable_email_blocklist.txt";
+ $file = new SplFileObject($filename);
+
+ $found = false;
+
+ // Loop through each line in the file
+ foreach ($file as $line) {
+ $line = trim($line);
+
+ // Check if the line matches the email
+ if ($line === $domain) {
+ $found = true;
+ break;
+ }
+ }
+
+ $file = null; // Close the file
+
+ return $found;
+ }
+
+
+
+ // Pobrisemo vse kode povezane za anketo (za mju - 7 dni po deaktivaciji ankete)
+ private static function deleteSurveyEmailsAndCodes($ank_id){
+
+ if ((int)$ank_id <= 0)
+ return;
+
+ $sql = sisplet_query("DELETE * FROM srv_email_access WHERE ank_id='".$ank_id."'");
+ }
+
+
+ public function ajax() {
+
+ if(isset($_GET['a']) && $_GET['a'] == 'save_settings'){
+
+ $captcha = isset($_POST['captcha']) ? $_POST['captcha'] : '0';
+ $terms_text = isset($_POST['terms_text']) ? $_POST['terms_text'] : '';
+
+
+ $sql = sisplet_query("UPDATE srv_email_access_settings
+ SET captcha='".$captcha."', terms_text='".$terms_text."'
+ WHERE ank_id='".$this->anketa."'
+ ");
+ if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
+
+
+ $this->displaySettings();
+ }
+
+ }
+} \ No newline at end of file
diff --git a/admin/survey/modules/mod_email_access/disposable_email_blocklist.txt b/admin/survey/modules/mod_email_access/disposable_email_blocklist.txt
new file mode 100644
index 0000000..944a059
--- /dev/null
+++ b/admin/survey/modules/mod_email_access/disposable_email_blocklist.txt
@@ -0,0 +1,3474 @@
+0-mail.com
+027168.com
+0815.ru
+0815.ry
+0815.su
+0845.ru
+0box.eu
+0clickemail.com
+0n0ff.net
+0nelce.com
+0v.ro
+0w.ro
+0wnd.net
+0wnd.org
+0x207.info
+1-8.biz
+1-tm.com
+10-minute-mail.com
+1000rebates.stream
+100likers.com
+105kg.ru
+10dk.email
+10mail.com
+10mail.org
+10minut.com.pl
+10minut.xyz
+10minutemail.be
+10minutemail.cf
+10minutemail.co.uk
+10minutemail.co.za
+10minutemail.com
+10minutemail.de
+10minutemail.ga
+10minutemail.gq
+10minutemail.ml
+10minutemail.net
+10minutemail.nl
+10minutemail.pro
+10minutemail.us
+10minutemailbox.com
+10minutemails.in
+10minutenemail.de
+10minutesmail.com
+10minutesmail.fr
+10minutmail.pl
+10x9.com
+11163.com
+123-m.com
+12hosting.net
+12houremail.com
+12minutemail.com
+12minutemail.net
+12storage.com
+140unichars.com
+147.cl
+14n.co.uk
+15qm.com
+1blackmoon.com
+1ce.us
+1chuan.com
+1clck2.com
+1fsdfdsfsdf.tk
+1mail.ml
+1pad.de
+1s.fr
+1secmail.com
+1secmail.net
+1secmail.org
+1st-forms.com
+1to1mail.org
+1usemail.com
+1webmail.info
+1zhuan.com
+2012-2016.ru
+20email.eu
+20email.it
+20mail.eu
+20mail.in
+20mail.it
+20minutemail.com
+20minutemail.it
+20mm.eu
+2120001.net
+21cn.com
+247web.net
+24hinbox.com
+24hourmail.com
+24hourmail.net
+2anom.com
+2chmail.net
+2ether.net
+2fdgdfgdfgdf.tk
+2odem.com
+2prong.com
+2wc.info
+300book.info
+30mail.ir
+30minutemail.com
+30wave.com
+3202.com
+36ru.com
+3d-painting.com
+3l6.com
+3mail.ga
+3trtretgfrfe.tk
+4-n.us
+4057.com
+418.dk
+42o.org
+4gfdsgfdgfd.tk
+4k5.net
+4mail.cf
+4mail.ga
+4nextmail.com
+4nmv.ru
+4tb.host
+4warding.com
+4warding.net
+4warding.org
+50set.ru
+55hosting.net
+5ghgfhfghfgh.tk
+5gramos.com
+5july.org
+5mail.cf
+5mail.ga
+5minutemail.net
+5oz.ru
+5tb.in
+5x25.com
+5ymail.com
+60minutemail.com
+672643.net
+675hosting.com
+675hosting.net
+675hosting.org
+6hjgjhgkilkj.tk
+6ip.us
+6mail.cf
+6mail.ga
+6mail.ml
+6paq.com
+6somok.ru
+6url.com
+75hosting.com
+75hosting.net
+75hosting.org
+7days-printing.com
+7mail.ga
+7mail.ml
+7tags.com
+80665.com
+8127ep.com
+8mail.cf
+8mail.ga
+8mail.ml
+99.com
+99cows.com
+99experts.com
+9mail.cf
+9me.site
+9mot.ru
+9ox.net
+9q.ro
+a-bc.net
+a45.in
+a7996.com
+aa5zy64.com
+abacuswe.us
+abakiss.com
+abcmail.email
+abilitywe.us
+abovewe.us
+absolutewe.us
+abundantwe.us
+abusemail.de
+abuser.eu
+abyssmail.com
+ac20mail.in
+academiccommunity.com
+academywe.us
+acceleratewe.us
+accentwe.us
+acceptwe.us
+acclaimwe.us
+accordwe.us
+accreditedwe.us
+acentri.com
+achievementwe.us
+achievewe.us
+acornwe.us
+acrossgracealley.com
+acrylicwe.us
+activatewe.us
+activitywe.us
+acucre.com
+acuitywe.us
+acumenwe.us
+adaptivewe.us
+adaptwe.us
+add3000.pp.ua
+addictingtrailers.com
+adeptwe.us
+adfskj.com
+adios.email
+adiq.eu
+aditus.info
+admiralwe.us
+ado888.biz
+adobeccepdm.com
+adoniswe.us
+adpugh.org
+adroh.com
+adsd.org
+adubiz.info
+advantagewe.us
+advantimo.com
+adventurewe.us
+adventwe.us
+advisorwe.us
+advocatewe.us
+adwaterandstir.com
+aegde.com
+aegia.net
+aegiscorp.net
+aegiswe.us
+aelo.es
+aeonpsi.com
+afarek.com
+affiliate-nebenjob.info
+affiliatedwe.us
+affilikingz.de
+affinitywe.us
+affluentwe.us
+affordablewe.us
+afrobacon.com
+afterhourswe.us
+agedmail.com
+agendawe.us
+agger.ro
+agilewe.us
+agorawe.us
+agtx.net
+aheadwe.us
+ahem.email
+ahk.jp
+ahmedkhlef.com
+air2token.com
+airmailbox.website
+airsi.de
+ajaxapp.net
+akapost.com
+akerd.com
+akgq701.com
+akmail.in
+al-qaeda.us
+albionwe.us
+alchemywe.us
+alfaceti.com
+aliaswe.us
+alienware13.com
+aligamel.com
+alisongamel.com
+alivance.com
+alivewe.us
+all-cats.ru
+allaccesswe.us
+allamericanwe.us
+allaroundwe.us
+alldirectbuy.com
+allegiancewe.us
+allegrowe.us
+allemojikeyboard.com
+allgoodwe.us
+alliancewe.us
+allinonewe.us
+allofthem.net
+alloutwe.us
+allowed.org
+alloywe.us
+allprowe.us
+allseasonswe.us
+allstarwe.us
+allthegoodnamesaretaken.org
+allurewe.us
+almondwe.us
+alph.wtf
+alpha-web.net
+alphaomegawe.us
+alpinewe.us
+altairwe.us
+altitudewe.us
+altuswe.us
+ama-trade.de
+ama-trans.de
+amadeuswe.us
+amail.club
+amail.com
+amail1.com
+amail4.me
+amazon-aws.org
+amberwe.us
+ambiancewe.us
+ambitiouswe.us
+amelabs.com
+americanawe.us
+americasbestwe.us
+americaswe.us
+amicuswe.us
+amilegit.com
+amiri.net
+amiriindustries.com
+amplewe.us
+amplifiedwe.us
+amplifywe.us
+ampsylike.com
+analogwe.us
+analysiswe.us
+analyticalwe.us
+analyticswe.us
+analyticwe.us
+anappfor.com
+anappthat.com
+andreihusanu.ro
+andthen.us
+animesos.com
+anit.ro
+ano-mail.net
+anon-mail.de
+anonbox.net
+anonmail.top
+anonmails.de
+anonymail.dk
+anonymbox.com
+anonymized.org
+anonymousness.com
+anotherdomaincyka.tk
+ansibleemail.com
+anthony-junkmail.com
+antireg.com
+antireg.ru
+antispam.de
+antispam24.de
+antispammail.de
+anyalias.com
+aoeuhtns.com
+apfelkorps.de
+aphlog.com
+apkmd.com
+appc.se
+appinventor.nl
+appixie.com
+apps.dj
+appzily.com
+arduino.hk
+ariaz.jetzt
+armyspy.com
+aron.us
+arroisijewellery.com
+art-en-ligne.pro
+artman-conception.com
+arur01.tk
+arurgitu.gq
+arvato-community.de
+aschenbrandt.net
+asdasd.nl
+asdasd.ru
+ashleyandrew.com
+ask-mail.com
+asorent.com
+ass.pp.ua
+astonut.tk
+astroempires.info
+asu.mx
+asu.su
+at.hm
+at0mik.org
+atnextmail.com
+attnetwork.com
+augmentationtechnology.com
+ausgefallen.info
+auti.st
+autorobotica.com
+autosouvenir39.ru
+autotwollow.com
+autowb.com
+aver.com
+averdov.com
+avia-tonic.fr
+avls.pt
+awatum.de
+awdrt.org
+awiki.org
+awsoo.com
+axiz.org
+axon7zte.com
+axsup.net
+ayakamail.cf
+azazazatashkent.tk
+azcomputerworks.com
+azmeil.tk
+b1of96u.com
+b2bx.net
+b2cmail.de
+badgerland.eu
+badoop.com
+badpotato.tk
+balaket.com
+banit.club
+banit.me
+bank-opros1.ru
+bareed.ws
+barryogorman.com
+bartdevos.be
+basscode.org
+bauwerke-online.com
+bazaaboom.com
+bbbbyyzz.info
+bbhost.us
+bcaoo.com
+bcast.ws
+bcb.ro
+bccto.me
+bdmuzic.pw
+beaconmessenger.com
+bearsarefuzzy.com
+beddly.com
+beefmilk.com
+belamail.org
+belljonestax.com
+beluckygame.com
+benipaula.org
+bepureme.com
+beribase.ru
+beribaza.ru
+berirabotay.ru
+best-john-boats.com
+bestchoiceusedcar.com
+bestlistbase.com
+bestoption25.club
+bestparadize.com
+bestsoundeffects.com
+besttempmail.com
+betr.co
+bgtmail.com
+bgx.ro
+bheps.com
+bidourlnks.com
+big1.us
+bigprofessor.so
+bigstring.com
+bigwhoop.co.za
+bij.pl
+binka.me
+binkmail.com
+binnary.com
+bio-muesli.info
+bio-muesli.net
+bione.co
+bitwhites.top
+bitymails.us
+blackgoldagency.ru
+blackmarket.to
+bladesmail.net
+blip.ch
+blnkt.net
+block521.com
+blogmyway.org
+blogos.net
+blogspam.ro
+blondemorkin.com
+bluedumpling.info
+bluewerks.com
+bnote.com
+boatmail.us
+bobmail.info
+bobmurchison.com
+bofthew.com
+bonobo.email
+boofx.com
+bookthemmore.com
+bootybay.de
+borged.com
+borged.net
+borged.org
+bot.nu
+boun.cr
+bouncr.com
+boxformail.in
+boximail.com
+boxmail.lol
+boxomail.live
+boxtemp.com.br
+bptfp.net
+brandallday.net
+brasx.org
+breakthru.com
+brefmail.com
+brennendesreich.de
+briggsmarcus.com
+broadbandninja.com
+bsnow.net
+bspamfree.org
+bspooky.com
+bst-72.com
+btb-notes.com
+btc.email
+btcmail.pw
+btcmod.com
+btizet.pl
+buccalmassage.ru
+budaya-tionghoa.com
+budayationghoa.com
+buffemail.com
+bugmenever.com
+bugmenot.com
+bulrushpress.com
+bum.net
+bumpymail.com
+bunchofidiots.com
+bund.us
+bundes-li.ga
+bunsenhoneydew.com
+burnthespam.info
+burstmail.info
+businessbackend.com
+businesssuccessislifesuccess.com
+buspad.org
+bussitussi.com
+buymoreplays.com
+buyordie.info
+buyusdomain.com
+buyusedlibrarybooks.org
+buzzcluby.com
+byebyemail.com
+byespm.com
+byom.de
+c51vsgq.com
+cachedot.net
+californiafitnessdeals.com
+cam4you.cc
+camping-grill.info
+candymail.de
+cane.pw
+capitalistdilemma.com
+car101.pro
+carbtc.net
+cars2.club
+carsencyclopedia.com
+cartelera.org
+caseedu.tk
+cashflow35.com
+casualdx.com
+cavi.mx
+cbair.com
+cbes.net
+cc.liamria
+ccmail.uk
+cdfaq.com
+cdpa.cc
+ceed.se
+cek.pm
+cellurl.com
+centermail.com
+centermail.net
+cetpass.com
+cfo2go.ro
+chacuo.net
+chaichuang.com
+chalupaurybnicku.cz
+chammy.info
+chasefreedomactivate.com
+chatich.com
+cheaphub.net
+cheatmail.de
+chenbot.email
+chibakenma.ml
+chickenkiller.com
+chielo.com
+childsavetrust.org
+chilkat.com
+chinamkm.com
+chithinh.com
+chitthi.in
+choco.la
+chogmail.com
+choicemail1.com
+chong-mail.com
+chong-mail.net
+chong-mail.org
+chumpstakingdumps.com
+cigar-auctions.com
+civx.org
+ckaazaza.tk
+ckiso.com
+cl-cl.org
+cl0ne.net
+claimab.com
+clandest.in
+classesmail.com
+clearwatermail.info
+click-email.com
+clickdeal.co
+clipmail.eu
+clixser.com
+clonemoi.tk
+cloud-mail.top
+cloudns.cx
+clrmail.com
+cmail.club
+cmail.com
+cmail.net
+cmail.org
+cnamed.com
+cndps.com
+cnew.ir
+cnmsg.net
+cnsds.de
+co.cc
+cobarekyo1.ml
+cocoro.uk
+cocovpn.com
+codeandscotch.com
+codivide.com
+coffeetimer24.com
+coieo.com
+coin-host.net
+coinlink.club
+coldemail.info
+compareshippingrates.org
+completegolfswing.com
+comwest.de
+conf.work
+consumerriot.com
+contbay.com
+cooh-2.site
+coolandwacky.us
+coolimpool.org
+coreclip.com
+cosmorph.com
+courrieltemporaire.com
+coza.ro
+crankhole.com
+crapmail.org
+crastination.de
+crazespaces.pw
+crazymailing.com
+cream.pink
+crepeau12.com
+cringemonster.com
+cross-law.ga
+cross-law.gq
+crossmailjet.com
+crossroadsmail.com
+crunchcompass.com
+crusthost.com
+cs.email
+csh.ro
+cszbl.com
+ctmailing.us
+ctos.ch
+cu.cc
+cubiclink.com
+cuendita.com
+cuirushi.org
+cuoly.com
+cupbest.com
+curlhph.tk
+curryworld.de
+cust.in
+cutout.club
+cutradition.com
+cuvox.de
+cyber-innovation.club
+cyber-phone.eu
+cylab.org
+d1yun.com
+d3p.dk
+daabox.com
+dab.ro
+dacoolest.com
+daemsteam.com
+daibond.info
+daily-email.com
+daintly.com
+damai.webcam
+dammexe.net
+damnthespam.com
+dandikmail.com
+darkharvestfilms.com
+daryxfox.net
+dasdasdascyka.tk
+dash-pads.com
+dataarca.com
+datarca.com
+datazo.ca
+datenschutz.ru
+datum2.com
+davidkoh.net
+davidlcreative.com
+dawin.com
+daymail.life
+daymailonline.com
+dayrep.com
+dbunker.com
+dcctb.com
+dcemail.com
+ddcrew.com
+de-a.org
+dea-21olympic.com
+deadaddress.com
+deadchildren.org
+deadfake.cf
+deadfake.ga
+deadfake.ml
+deadfake.tk
+deadspam.com
+deagot.com
+dealja.com
+dealrek.com
+deekayen.us
+defomail.com
+degradedfun.net
+deinbox.com
+delayload.com
+delayload.net
+delikkt.de
+delivrmail.com
+demen.ml
+dengekibunko.ga
+dengekibunko.gq
+dengekibunko.ml
+der-kombi.de
+derkombi.de
+derluxuswagen.de
+desoz.com
+despam.it
+despammed.com
+dev-null.cf
+dev-null.ga
+dev-null.gq
+dev-null.ml
+devnullmail.com
+deyom.com
+dharmatel.net
+dhm.ro
+dhy.cc
+dialogus.com
+diapaulpainting.com
+dicopto.com
+digdig.org
+digital-message.com
+digitalesbusiness.info
+digitalmail.info
+digitalmariachis.com
+digitalsanctuary.com
+dildosfromspace.com
+dim-coin.com
+dingbone.com
+diolang.com
+directmail24.net
+disaq.com
+disbox.net
+disbox.org
+discard.cf
+discard.email
+discard.ga
+discard.gq
+discard.ml
+discard.tk
+discardmail.com
+discardmail.de
+discos4.com
+disign-concept.eu
+disign-revelation.com
+dispo.in
+dispomail.eu
+disposable-e.ml
+disposable-email.ml
+disposable.cf
+disposable.ga
+disposable.ml
+disposable.site
+disposableaddress.com
+disposableemailaddresses.com
+disposableinbox.com
+disposablemails.com
+dispose.it
+disposeamail.com
+disposemail.com
+disposemymail.com
+dispostable.com
+divad.ga
+divermail.com
+divismail.ru
+diwaq.com
+dlemail.ru
+dmarc.ro
+dndent.com
+dnses.ro
+doanart.com
+dob.jp
+dodgeit.com
+dodgemail.de
+dodgit.com
+dodgit.org
+dodsi.com
+doiea.com
+dolphinnet.net
+domforfb1.tk
+domforfb18.tk
+domforfb19.tk
+domforfb2.tk
+domforfb23.tk
+domforfb27.tk
+domforfb29.tk
+domforfb3.tk
+domforfb4.tk
+domforfb5.tk
+domforfb6.tk
+domforfb7.tk
+domforfb8.tk
+domforfb9.tk
+domozmail.com
+donemail.ru
+dongqing365.com
+dontreg.com
+dontsendmespam.de
+doquier.tk
+dotman.de
+dotmsg.com
+dotslashrage.com
+doublemail.de
+douchelounge.com
+dozvon-spb.ru
+dp76.com
+dr69.site
+drdrb.com
+drdrb.net
+dred.ru
+drevo.si
+drivetagdev.com
+droolingfanboy.de
+dropcake.de
+dropjar.com
+droplar.com
+dropmail.me
+dropsin.net
+dsgvo.ru
+dsiay.com
+dspwebservices.com
+duam.net
+duck2.club
+dudmail.com
+duk33.com
+dukedish.com
+dump-email.info
+dumpandjunk.com
+dumpmail.de
+dumpyemail.com
+durandinterstellar.com
+duskmail.com
+dwse.edu.pl
+dyceroprojects.com
+dz17.net
+e-mail.com
+e-mail.org
+e-marketstore.ru
+e-tomarigi.com
+e3z.de
+e4ward.com
+eanok.com
+easy-trash-mail.com
+easynetwork.info
+easytrashmail.com
+eatmea2z.club
+eay.jp
+ebbob.com
+ebeschlussbuch.de
+ecallheandi.com
+ecolo-online.fr
+edgex.ru
+edinburgh-airporthotels.com
+edv.to
+ee1.pl
+ee2.pl
+eeedv.de
+eelmail.com
+efxs.ca
+egzones.com
+einmalmail.de
+einrot.com
+einrot.de
+eintagsmail.de
+elearningjournal.org
+electro.mn
+elitevipatlantamodels.com
+elki-mkzn.ru
+email-fake.cf
+email-fake.com
+email-fake.ga
+email-fake.gq
+email-fake.ml
+email-fake.tk
+email-jetable.fr
+email-lab.com
+email-temp.com
+email.edu.pl
+email.net
+email1.pro
+email60.com
+emailage.cf
+emailage.ga
+emailage.gq
+emailage.ml
+emailage.tk
+emailate.com
+emailcu.icu
+emaildienst.de
+emaildrop.io
+emailfake.com
+emailfake.ml
+emailfreedom.ml
+emailgenerator.de
+emailgo.de
+emailias.com
+emailigo.de
+emailinfive.com
+emailisvalid.com
+emaillime.com
+emailmiser.com
+emailna.co
+emailnax.com
+emailo.pro
+emailondeck.com
+emailportal.info
+emailproxsy.com
+emailresort.com
+emails.ga
+emailsecurer.com
+emailsensei.com
+emailsingularity.net
+emailspam.cf
+emailspam.ga
+emailspam.gq
+emailspam.ml
+emailspam.tk
+emailsy.info
+emailtech.info
+emailtemporanea.com
+emailtemporanea.net
+emailtemporar.ro
+emailtemporario.com.br
+emailthe.net
+emailtmp.com
+emailto.de
+emailure.net
+emailwarden.com
+emailxfer.com
+emailz.cf
+emailz.ga
+emailz.gq
+emailz.ml
+emeil.in
+emeil.ir
+emeraldwebmail.com
+emil.com
+emkei.cf
+emkei.ga
+emkei.gq
+emkei.ml
+emkei.tk
+eml.pp.ua
+emlhub.com
+emlpro.com
+emltmp.com
+empireanime.ga
+emstjzh.com
+emz.net
+enayu.com
+enterto.com
+envy17.com
+eoffice.top
+eoopy.com
+epb.ro
+ephemail.net
+ephemeral.email
+eposta.buzz
+eposta.work
+eqiluxspam.ga
+ericjohnson.ml
+ero-tube.org
+esbano-ru.ru
+esc.la
+escapehatchapp.com
+esemay.com
+esgeneri.com
+esiix.com
+esprity.com
+estate-invest.fr
+eth2btc.info
+ether123.net
+ethereum1.top
+ethersports.org
+ethersportz.info
+etotvibor.ru
+etranquil.com
+etranquil.net
+etranquil.org
+euaqa.com
+evanfox.info
+eveav.com
+evilcomputer.com
+evopo.com
+evyush.com
+exdonuts.com
+existiert.net
+exitstageleft.net
+explodemail.com
+express.net.ua
+extremail.ru
+eyepaste.com
+ez.lv
+ezehe.com
+ezfill.com
+ezstest.com
+f4k.es
+f5.si
+facebook-email.cf
+facebook-email.ga
+facebook-email.ml
+facebookmail.gq
+facebookmail.ml
+fackme.gq
+fadingemail.com
+faecesmail.me
+fag.wf
+failbone.com
+faithkills.com
+fake-box.com
+fake-email.pp.ua
+fake-mail.cf
+fake-mail.ga
+fake-mail.ml
+fakedemail.com
+fakeinbox.cf
+fakeinbox.com
+fakeinbox.ga
+fakeinbox.info
+fakeinbox.ml
+fakeinbox.tk
+fakeinformation.com
+fakemail.fr
+fakemail.io
+fakemailgenerator.com
+fakemailz.com
+fallinhay.com
+fammix.com
+fanclub.pm
+fangoh.com
+fansworldwide.de
+fantasymail.de
+farrse.co.uk
+fast-email.info
+fast-mail.fr
+fastacura.com
+fastchevy.com
+fastchrysler.com
+fasternet.biz
+fastkawasaki.com
+fastmazda.com
+fastmitsubishi.com
+fastnissan.com
+fastsubaru.com
+fastsuzuki.com
+fasttoyota.com
+fastyamaha.com
+fatflap.com
+fbma.tk
+fddns.ml
+fdfdsfds.com
+fer-gabon.org
+fermaxxi.ru
+fettometern.com
+fexbox.org
+fexbox.ru
+fexpost.com
+ficken.de
+fictionsite.com
+fightallspam.com
+figjs.com
+figshot.com
+figurescoin.com
+fiifke.de
+filbert4u.com
+filberts4u.com
+film-blog.biz
+filzmail.com
+findemail.info
+findu.pl
+fir.hk
+firemailbox.club
+fitnesrezink.ru
+fivemail.de
+fixmail.tk
+fizmail.com
+fleckens.hu
+flemail.ru
+flowu.com
+flu.cc
+fluidsoft.us
+flurred.com
+fly-ts.de
+flyinggeek.net
+flyspam.com
+foobarbot.net
+footard.com
+foreastate.com
+forecastertests.com
+foreskin.cf
+foreskin.ga
+foreskin.gq
+foreskin.ml
+foreskin.tk
+forgetmail.com
+fornow.eu
+forspam.net
+forward.cat
+fosil.pro
+foxja.com
+foxtrotter.info
+fr.nf
+fr33mail.info
+fragolina2.tk
+frapmail.com
+frappina.tk
+free-email.cf
+free-email.ga
+free-temp.net
+freebabysittercam.com
+freeblackbootytube.com
+freecat.net
+freedom4you.info
+freedompop.us
+freefattymovies.com
+freehotmail.net
+freeinbox.email
+freelance-france.eu
+freeletter.me
+freemail.ms
+freemails.cf
+freemails.ga
+freemails.ml
+freemeil.ga
+freemeil.gq
+freemeil.ml
+freeml.net
+freeplumpervideos.com
+freerubli.ru
+freeschoolgirlvids.com
+freesistercam.com
+freeteenbums.com
+freundin.ru
+friendlymail.co.uk
+front14.org
+frwdmail.com
+ftp.sh
+ftpinc.ca
+fuckedupload.com
+fuckingduh.com
+fuckme69.club
+fucknloveme.top
+fuckxxme.top
+fudgerub.com
+fuirio.com
+fukaru.com
+fukurou.ch
+fulvie.com
+fun64.com
+funnycodesnippets.com
+funnymail.de
+furzauflunge.de
+fuwamofu.com
+fuwari.be
+fux0ringduh.com
+fxnxs.com
+fyii.de
+g14l71lb.com
+g1xmail.top
+g2xmail.top
+g3xmail.top
+g4hdrop.us
+gafy.net
+gage.ga
+galaxy.tv
+gally.jp
+gamail.top
+gamegregious.com
+gamgling.com
+garasikita.pw
+garbagecollector.org
+garbagemail.org
+gardenscape.ca
+garizo.com
+garliclife.com
+garrymccooey.com
+gav0.com
+gawab.com
+gbcmail.win
+gbmail.top
+gcmail.top
+gdmail.top
+gedmail.win
+geekforex.com
+geew.ru
+gehensiemirnichtaufdensack.de
+geldwaschmaschine.de
+gelitik.in
+genderfuck.net
+geronra.com
+geschent.biz
+get-mail.cf
+get-mail.ga
+get-mail.ml
+get-mail.tk
+get.pp.ua
+get1mail.com
+get2mail.fr
+getairmail.cf
+getairmail.com
+getairmail.ga
+getairmail.gq
+getairmail.ml
+getairmail.tk
+geteit.com
+getfun.men
+getmails.eu
+getnada.com
+getnowtoday.cf
+getonemail.com
+getonemail.net
+getover.de
+getsimpleemail.com
+gett.icu
+gexik.com
+ggmal.ml
+ghosttexter.de
+giacmosuaviet.info
+giaiphapmuasam.com
+giantmail.de
+gifto12.com
+ginzi.be
+ginzi.co.uk
+ginzi.es
+ginzi.net
+ginzy.co.uk
+ginzy.eu
+girlmail.win
+girlsindetention.com
+girlsundertheinfluence.com
+gishpuppy.com
+giveh2o.info
+givememail.club
+givmail.com
+glitch.sx
+globaltouron.com
+glubex.com
+glucosegrin.com
+gmal.com
+gmatch.org
+gmial.com
+gmx1mail.top
+gmxmail.top
+gmxmail.win
+gnctr-calgary.com
+go2usa.info
+go2vpn.net
+goemailgo.com
+golemico.com
+gomail.in
+goonby.com
+goplaygame.ru
+gorillaswithdirtyarmpits.com
+goround.info
+gosuslugi-spravka.ru
+gothere.biz
+gotmail.com
+gotmail.net
+gotmail.org
+gowikibooks.com
+gowikicampus.com
+gowikicars.com
+gowikifilms.com
+gowikigames.com
+gowikimusic.com
+gowikinetwork.com
+gowikitravel.com
+gowikitv.com
+grandmamail.com
+grandmasmail.com
+great-host.in
+greencafe24.com
+greendike.com
+greenhousemail.com
+greensloth.com
+greggamel.com
+greggamel.net
+gregorsky.zone
+gregorygamel.com
+gregorygamel.net
+grish.de
+griuc.schule
+grn.cc
+groupbuff.com
+grr.la
+grugrug.ru
+gruz-m.ru
+gs-arc.org
+gsredcross.org
+gsrv.co.uk
+gsxstring.ga
+gudanglowongan.com
+guerillamail.biz
+guerillamail.com
+guerillamail.de
+guerillamail.info
+guerillamail.net
+guerillamail.org
+guerillamailblock.com
+guerrillamail.biz
+guerrillamail.com
+guerrillamail.de
+guerrillamail.info
+guerrillamail.net
+guerrillamail.org
+guerrillamailblock.com
+gustr.com
+gxemail.men
+gynzi.co.uk
+gynzi.es
+gynzy.at
+gynzy.es
+gynzy.eu
+gynzy.gr
+gynzy.info
+gynzy.lt
+gynzy.mobi
+gynzy.pl
+gynzy.ro
+gynzy.sk
+gzb.ro
+h8s.org
+habitue.net
+hacccc.com
+hackersquad.tk
+hackthatbit.ch
+hahawrong.com
+haida-edu.cn
+hairs24.ru
+haltospam.com
+hamham.uk
+hangxomcuatoilatotoro.ml
+happydomik.ru
+harakirimail.com
+haribu.com
+hartbot.de
+hasanmail.ml
+hat-geld.de
+hatespam.org
+hawrong.com
+haydoo.com
+hazelnut4u.com
+hazelnuts4u.com
+hazmatshipping.org
+hccmail.win
+headstrong.de
+heathenhammer.com
+heathenhero.com
+hecat.es
+heisei.be
+hellodream.mobi
+helloricky.com
+helpinghandtaxcenter.org
+helpjobs.ru
+heros3.com
+herp.in
+herpderp.nl
+hezll.com
+hi5.si
+hiddentragedy.com
+hidebox.org
+hidebusiness.xyz
+hidemail.de
+hidemail.pro
+hidemail.us
+hidzz.com
+highbros.org
+hiltonvr.com
+himail.online
+hmail.us
+hmamail.com
+hmh.ro
+hoanggiaanh.com
+hoanglong.tech
+hochsitze.com
+hola.org
+holl.ga
+honeys.be
+honor-8.com
+hopemail.biz
+hornyalwary.top
+host1s.com
+hostcalls.com
+hostguru.top
+hostingmail.me
+hostlaba.com
+hot-mail.cf
+hot-mail.ga
+hot-mail.gq
+hot-mail.ml
+hot-mail.tk
+hotmai.com
+hotmailproduct.com
+hotmial.com
+hotpop.com
+hotprice.co
+hotsoup.be
+housat.com
+hpc.tw
+hs.vc
+ht.cx
+huangniu8.com
+hukkmu.tk
+hulapla.de
+humaility.com
+hungpackage.com
+hushmail.cf
+huskion.net
+hvastudiesucces.nl
+hwsye.net
+i2pmail.org
+i6.cloudns.cc
+iaoss.com
+ibnuh.bz
+icantbelieveineedtoexplainthisshit.com
+icemail.club
+ichigo.me
+icx.in
+icx.ro
+idx4.com
+idxue.com
+ieatspam.eu
+ieatspam.info
+ieh-mail.de
+iencm.com
+iffymedia.com
+ige.es
+igg.biz
+ignoremail.com
+ihateyoualot.info
+ihazspam.ca
+iheartspam.org
+ikbenspamvrij.nl
+illistnoise.com
+ilovespam.com
+imail1.net
+imails.info
+imailt.com
+imgof.com
+imgv.de
+immo-gerance.info
+imstations.com
+imul.info
+in-ulm.de
+inactivemachine.com
+inbax.tk
+inbound.plus
+inbox.si
+inbox2.info
+inboxalias.com
+inboxbear.com
+inboxclean.com
+inboxclean.org
+inboxdesign.me
+inboxed.im
+inboxed.pw
+inboxkitten.com
+inboxproxy.com
+inboxstore.me
+inclusiveprogress.com
+incognitomail.com
+incognitomail.net
+incognitomail.org
+incq.com
+ind.st
+indieclad.com
+indirect.ws
+indomaed.pw
+indomina.cf
+indoserver.stream
+indosukses.press
+ineec.net
+infocom.zp.ua
+inggo.org
+inkomail.com
+inmynetwork.tk
+inoutmail.de
+inoutmail.eu
+inoutmail.info
+inoutmail.net
+inpwa.com
+insanumingeniumhomebrew.com
+insorg-mail.info
+instaddr.ch
+instance-email.com
+instant-mail.de
+instantblingmail.info
+instantemailaddress.com
+instantmail.fr
+internet-v-stavropole.ru
+internetoftags.com
+interstats.org
+intersteller.com
+intopwa.com
+intopwa.net
+intopwa.org
+investore.co
+iozak.com
+ip4.pp.ua
+ip6.li
+ip6.pp.ua
+ipoo.org
+ippandansei.tk
+ipsur.org
+irabops.com
+irc.so
+irish2me.com
+irishspringrealty.com
+iroid.com
+ironiebehindert.de
+irssi.tv
+is.af
+isdaq.com
+ishop2k.com
+isosq.com
+istii.ro
+isukrainestillacountry.com
+it7.ovh
+italy-mail.com
+itcompu.com
+itfast.net
+itunesgiftcodegenerator.com
+iubridge.com
+iuemail.men
+iwi.net
+ixaks.com
+ixx.io
+j-p.us
+jafps.com
+jajxz.com
+janproz.com
+jaqis.com
+jdmadventures.com
+jdz.ro
+je-recycle.info
+jellow.ml
+jellyrolls.com
+jeoce.com
+jet-renovation.fr
+jetable.com
+jetable.net
+jetable.org
+jetable.pp.ua
+jiooq.com
+jmail.ovh
+jmail.ro
+jnxjn.com
+jobbikszimpatizans.hu
+jobposts.net
+jobs-to-be-done.net
+joelpet.com
+joetestalot.com
+jopho.com
+joseihorumon.info
+josse.ltd
+jourrapide.com
+jpco.org
+jsrsolutions.com
+jumonji.tk
+jungkamushukum.com
+junk.to
+junk1e.com
+junkmail.ga
+junkmail.gq
+just-email.com
+justemail.ml
+juyouxi.com
+jwork.ru
+kademen.com
+kadokawa.cf
+kadokawa.ga
+kadokawa.gq
+kadokawa.ml
+kadokawa.tk
+kaengu.ru
+kagi.be
+kakadua.net
+kalapi.org
+kamen-market.ru
+kamsg.com
+kaovo.com
+kappala.info
+kara-turk.net
+karatraman.ml
+kariplan.com
+karta-kykyruza.ru
+kartvelo.com
+kasmail.com
+kaspop.com
+katztube.com
+kazelink.ml
+kbox.li
+kcrw.de
+keepmymail.com
+keinhirn.de
+keipino.de
+kekita.com
+kellychibale-researchgroup-uct.com
+kemptvillebaseball.com
+kennedy808.com
+kiani.com
+killmail.com
+killmail.net
+kimsdisk.com
+kingsq.ga
+kino-100.ru
+kiois.com
+kismail.ru
+kisstwink.com
+kitnastar.com
+kjkszpjcompany.com
+kkmail.be
+kksm.be
+klassmaster.com
+klassmaster.net
+klick-tipp.us
+klipschx12.com
+kloap.com
+kludgemush.com
+klzlk.com
+kmail.li
+kmhow.com
+knol-power.nl
+kobrandly.com
+kommunity.biz
+kon42.com
+konultant-jurist.ru
+kook.ml
+kopagas.com
+kopaka.net
+korona-nedvizhimosti.ru
+koshu.ru
+kosmetik-obatkuat.com
+kostenlosemailadresse.de
+koszmail.pl
+kpay.be
+kpooa.com
+kpost.be
+krd.ag
+krsw.tk
+kruay.com
+krypton.tk
+ksmtrck.tk
+kuhrap.com
+kulmeo.com
+kulturbetrieb.info
+kurzepost.de
+kutakbisajauhjauh.gq
+kvhrr.com
+kvhrs.com
+kvhrw.com
+kwift.net
+kwilco.net
+kyal.pl
+kyois.com
+kzccv.com
+l-c-a.us
+l33r.eu
+l6factors.com
+labetteraverouge.at
+labworld.org
+lacedmail.com
+lackmail.net
+lackmail.ru
+lacto.info
+lags.us
+lain.ch
+lak.pp.ua
+lakelivingstonrealestate.com
+lakqs.com
+lamasticots.com
+landmail.co
+laoeq.com
+larisia.com
+last-chance.pro
+lastmail.co
+lastmail.com
+lawlita.com
+lazyinbox.com
+lazyinbox.us
+ldaho.biz
+ldop.com
+ldtp.com
+le-tim.ru
+lee.mx
+leeching.net
+leetmail.co
+legalrc.loan
+lellno.gq
+lenovog4.com
+lerbhe.com
+letmeinonthis.com
+letthemeatspam.com
+lez.se
+lgxscreen.com
+lhsdv.com
+liamcyrus.com
+lifebyfood.com
+lifetimefriends.info
+lifetotech.com
+ligsb.com
+lillemap.net
+lilo.me
+lindenbaumjapan.com
+link2mail.net
+linkedintuts2016.pw
+linshiyouxiang.net
+linuxmail.so
+litedrop.com
+liveradio.tk
+lkgn.se
+llogin.ru
+loadby.us
+loan101.pro
+loaoa.com
+loapq.com
+locanto1.club
+locantofuck.top
+locantowsite.club
+locomodev.net
+login-email.cf
+login-email.ga
+login-email.ml
+login-email.tk
+logular.com
+loh.pp.ua
+loin.in
+lolfreak.net
+lolmail.biz
+lookugly.com
+lordsofts.com
+lortemail.dk
+losemymail.com
+lovemeet.faith
+lovemeleaveme.com
+lpfmgmtltd.com
+lr7.us
+lr78.com
+lroid.com
+lru.me
+ls-server.ru
+lsyx24.com
+luckymail.org
+lukecarriere.com
+lukemail.info
+lukop.dk
+luv2.us
+lyfestylecreditsolutions.com
+lzoaq.com
+m21.cc
+m4ilweb.info
+maboard.com
+mac-24.com
+macr2.com
+macromaid.com
+macromice.info
+magamail.com
+maggotymeat.ga
+magicbox.ro
+magim.be
+magspam.net
+maidlow.info
+mail-card.net
+mail-easy.fr
+mail-filter.com
+mail-help.net
+mail-hosting.co
+mail-hub.info
+mail-now.top
+mail-owl.com
+mail-share.com
+mail-temporaire.com
+mail-temporaire.fr
+mail-tester.com
+mail.by
+mail.wtf
+mail0.ga
+mail1.top
+mail114.net
+mail1a.de
+mail1web.org
+mail21.cc
+mail22.club
+mail2rss.org
+mail333.com
+mail4trash.com
+mail666.ru
+mail7.io
+mail707.com
+mail72.com
+mailapp.top
+mailback.com
+mailbidon.com
+mailbiz.biz
+mailblocks.com
+mailbox.in.ua
+mailbox52.ga
+mailbox80.biz
+mailbox82.biz
+mailbox87.de
+mailbox92.biz
+mailboxy.fun
+mailbucket.org
+mailcat.biz
+mailcatch.com
+mailchop.com
+mailcker.com
+maildax.me
+mailde.de
+mailde.info
+maildrop.cc
+maildrop.cf
+maildrop.ga
+maildrop.gq
+maildrop.ml
+maildu.de
+maildx.com
+maileater.com
+mailed.in
+mailed.ro
+maileimer.de
+maileme101.com
+mailexpire.com
+mailf5.com
+mailfa.tk
+mailfall.com
+mailfirst.icu
+mailforspam.com
+mailfree.ga
+mailfree.gq
+mailfree.ml
+mailfreeonline.com
+mailfs.com
+mailguard.me
+mailgutter.com
+mailhazard.com
+mailhazard.us
+mailhex.com
+mailhub.pro
+mailhz.me
+mailimate.com
+mailin8r.com
+mailinatar.com
+mailinater.com
+mailinator.co.uk
+mailinator.com
+mailinator.gq
+mailinator.info
+mailinator.net
+mailinator.org
+mailinator.us
+mailinator0.com
+mailinator1.com
+mailinator2.com
+mailinator2.net
+mailinator3.com
+mailinator4.com
+mailinator5.com
+mailinator6.com
+mailinator7.com
+mailinator8.com
+mailinator9.com
+mailincubator.com
+mailismagic.com
+mailita.tk
+mailjunk.cf
+mailjunk.ga
+mailjunk.gq
+mailjunk.ml
+mailjunk.tk
+mailmate.com
+mailme.gq
+mailme.ir
+mailme.lv
+mailme24.com
+mailmetrash.com
+mailmoat.com
+mailmoth.com
+mailms.com
+mailna.biz
+mailna.co
+mailna.in
+mailna.me
+mailnator.com
+mailnesia.com
+mailnull.com
+mailonaut.com
+mailorc.com
+mailorg.org
+mailox.fun
+mailpick.biz
+mailpluss.com
+mailpooch.com
+mailpoof.com
+mailpress.gq
+mailproxsy.com
+mailquack.com
+mailrock.biz
+mailsac.com
+mailscrap.com
+mailseal.de
+mailshell.com
+mailshiv.com
+mailsiphon.com
+mailslapping.com
+mailslite.com
+mailsucker.net
+mailt.net
+mailt.top
+mailtechx.com
+mailtemp.info
+mailtemporaire.com
+mailtemporaire.fr
+mailto.plus
+mailtome.de
+mailtothis.com
+mailtraps.com
+mailtrash.net
+mailtrix.net
+mailtv.net
+mailtv.tv
+mailuniverse.co.uk
+mailzi.ru
+mailzilla.com
+mailzilla.org
+mainerfolg.info
+makemenaughty.club
+makemetheking.com
+malahov.de
+malayalamdtp.com
+mama3.org
+mamulenok.ru
+mandraghen.cf
+manifestgenerator.com
+mannawo.com
+mansiondev.com
+manybrain.com
+mark-compressoren.ru
+marketlink.info
+markmurfin.com
+mask03.ru
+masonline.info
+maswae.world
+matamuasu.ga
+matchpol.net
+matra.site
+max-mail.org
+mbox.re
+mbx.cc
+mcache.net
+mciek.com
+mdhc.tk
+meantinc.com
+mebelnu.info
+mechanicalresumes.com
+medkabinet-uzi.ru
+meepsheep.eu
+meinspamschutz.de
+meltedbrownies.com
+meltmail.com
+memsg.site
+mentonit.net
+mepost.pw
+merry.pink
+messagebeamer.de
+messwiththebestdielikethe.rest
+metadownload.org
+metaintern.net
+metalunits.com
+mezimages.net
+mfsa.info
+mfsa.ru
+mhzayt.online
+miaferrari.com
+miauj.com
+midcoastcustoms.com
+midcoastcustoms.net
+midcoastsolutions.com
+midcoastsolutions.net
+midiharmonica.com
+midlertidig.com
+midlertidig.net
+midlertidig.org
+mierdamail.com
+migmail.net
+migmail.pl
+migumail.com
+mihep.com
+mijnhva.nl
+ministry-of-silly-walks.de
+minsmail.com
+mintemail.com
+mirai.re
+misterpinball.de
+miucce.com
+mji.ro
+mjj.edu.ge
+mjukglass.nu
+mkpfilm.com
+ml8.ca
+mm.my
+mm5.se
+mnode.me
+moakt.cc
+moakt.co
+moakt.com
+moakt.ws
+mobileninja.co.uk
+mobilevpn.top
+moburl.com
+mockmyid.com
+moeri.org
+mofu.be
+mohmal.com
+mohmal.im
+mohmal.in
+mohmal.tech
+moimoi.re
+molms.com
+momentics.ru
+monachat.tk
+monadi.ml
+moneypipe.net
+monumentmail.com
+moonwake.com
+moot.es
+moreawesomethanyou.com
+moreorcs.com
+morriesworld.ml
+morsin.com
+moruzza.com
+motique.de
+mountainregionallibrary.net
+mox.pp.ua
+moy-elektrik.ru
+moza.pl
+mozej.com
+mp-j.ga
+mr24.co
+mrvpm.net
+mrvpt.com
+msgos.com
+mspeciosa.com
+msrc.ml
+mswork.ru
+msxd.com
+mt2009.com
+mt2014.com
+mt2015.com
+mtmdev.com
+muathegame.com
+muchomail.com
+mucincanon.com
+muehlacker.tk
+muell.icu
+muell.monster
+muell.xyz
+muellemail.com
+muellmail.com
+munoubengoshi.gq
+musiccode.me
+mutant.me
+mvrht.com
+mvrht.net
+mwarner.org
+mxclip.com
+mxfuel.com
+my-pomsies.ru
+my-teddyy.ru
+my10minutemail.com
+mybitti.de
+mycleaninbox.net
+mycorneroftheinter.net
+myde.ml
+mydemo.equipment
+myecho.es
+myemailboxy.com
+mygeoweb.info
+myindohome.services
+myinterserver.ml
+mykickassideas.com
+mymail-in.net
+mymail90.com
+mymailoasis.com
+mynetstore.de
+myopang.com
+mypacks.net
+mypartyclip.de
+myphantomemail.com
+mysamp.de
+myspaceinc.com
+myspaceinc.net
+myspaceinc.org
+myspacepimpedup.com
+myspamless.com
+mystvpn.com
+mysugartime.ru
+mytemp.email
+mytempemail.com
+mytempmail.com
+mytrashmail.com
+mywarnernet.net
+mywrld.site
+mywrld.top
+myzx.com
+mzico.com
+n1nja.org
+na-cat.com
+nabuma.com
+nada.email
+nada.ltd
+nagi.be
+nakedtruth.biz
+nanonym.ch
+naslazhdai.ru
+nationalgardeningclub.com
+nawmin.info
+nbzmr.com
+negated.com
+neko2.net
+nekochan.fr
+neomailbox.com
+neotlozhniy-zaim.ru
+nepwk.com
+nervmich.net
+nervtmich.net
+net1mail.com
+netcom.ws
+netmails.com
+netmails.net
+netricity.nl
+netris.net
+netviewer-france.com
+netzidiot.de
+nevermail.de
+newbpotato.tk
+newfilm24.ru
+newideasfornewpeople.info
+newmail.top
+next.ovh
+nextmail.info
+nextstopvalhalla.com
+nezdiro.org
+nezid.com
+nezumi.be
+nezzart.com
+nfast.net
+nguyenusedcars.com
+nh3.ro
+nice-4u.com
+nicknassar.com
+nincsmail.com
+nincsmail.hu
+niseko.be
+niwl.net
+nm7.cc
+nmail.cf
+nnh.com
+nnot.net
+nnoway.ru
+no-spam.ws
+no-ux.com
+noblepioneer.com
+nobugmail.com
+nobulk.com
+nobuma.com
+noclickemail.com
+nodezine.com
+nogmailspam.info
+noicd.com
+nokiamail.com
+nolemail.ga
+nomail.cf
+nomail.ga
+nomail.pw
+nomail2me.com
+nomorespamemails.com
+nonspam.eu
+nonspammer.de
+nonze.ro
+noref.in
+norseforce.com
+norwegischlernen.info
+nospam4.us
+nospamfor.us
+nospamthanks.info
+nothingtoseehere.ca
+notif.me
+notmailinator.com
+notrnailinator.com
+notsharingmy.info
+now.im
+nowhere.org
+nowmymail.com
+nowmymail.net
+nproxi.com
+nthrl.com
+ntlhelp.net
+nubescontrol.com
+nullbox.info
+nurfuerspam.de
+nut.cc
+nutpa.net
+nuts2trade.com
+nvhrw.com
+nwldx.com
+nwytg.com
+nwytg.net
+ny7.me
+nypato.com
+nyrmusic.com
+o2stk.org
+o7i.net
+oalsp.com
+obfusko.com
+objectmail.com
+obobbo.com
+oborudovanieizturcii.ru
+obxpestcontrol.com
+octovie.com
+odaymail.com
+odem.com
+odnorazovoe.ru
+oepia.com
+oerpub.org
+offshore-proxies.net
+ohaaa.de
+ohi.tw
+oida.icu
+oing.cf
+okclprojects.com
+okinawa.li
+okrent.us
+okzk.com
+olimp-case.ru
+olypmall.ru
+omail.pro
+omnievents.org
+omtecha.com
+one-mail.top
+one-time.email
+one2mail.info
+onekisspresave.com
+onemail.host
+oneoffemail.com
+oneoffmail.com
+onetm.jp
+onewaymail.com
+onlatedotcom.info
+online.ms
+onlineidea.info
+onqin.com
+ontyne.biz
+oohioo.com
+oolus.com
+oonies-shoprus.ru
+oopi.org
+oosln.com
+opayq.com
+openavz.com
+opendns.ro
+opentrash.com
+opmmedia.ga
+opp24.com
+optimaweb.me
+opwebw.com
+oranek.com
+ordinaryamerican.net
+oreidresume.com
+orgmbx.cc
+oroki.de
+oshietechan.link
+otherinbox.com
+ourklips.com
+ourpreviewdomain.com
+outlawspam.com
+outmail.win
+ovomail.co
+ovpn.to
+owleyes.ch
+owlpic.com
+ownsyou.de
+oxopoha.com
+ozyl.de
+p-banlis.ru
+p33.org
+p71ce1m.com
+pa9e.com
+pachilly.com
+packiu.com
+pagamenti.tk
+paharpurmim.ga
+pakadebu.ga
+pancakemail.com
+papierkorb.me
+paplease.com
+para2019.ru
+parlimentpetitioner.tk
+pastebitch.com
+patonce.com
+pavilionx2.com
+payperex2.com
+payspun.com
+pe.hu
+pecinan.com
+pecinan.net
+pecinan.org
+penisgoes.in
+penoto.tk
+pepbot.com
+peterdethier.com
+petloca.com
+petrzilka.net
+pewpewpewpew.pw
+pfui.ru
+phone-elkey.ru
+photo-impact.eu
+photomark.net
+pi.vu
+piaa.me
+pig.pp.ua
+pii.at
+piki.si
+pimpedupmyspace.com
+pinehill-seattle.org
+pingir.com
+pipemail.space
+pisls.com
+pitaniezdorovie.ru
+pivo-bar.ru
+pjjkp.com
+placebomail10.com
+pleasenoham.org
+plexfirm.com
+plexolan.de
+plhk.ru
+ploae.com
+plw.me
+poehali-otdihat.ru
+pojok.ml
+pokemail.net
+pokiemobile.com
+polarkingxx.ml
+politikerclub.de
+polyfaust.net
+pooae.com
+poofy.org
+pookmail.com
+poopiebutt.club
+popcornfarm7.com
+popcornfly.com
+popesodomy.com
+popgx.com
+porjoton.com
+porsh.net
+posdz.com
+posta.store
+postacin.com
+postonline.me
+poutineyourface.com
+powered.name
+powerencry.com
+powlearn.com
+pp7rvv.com
+ppetw.com
+pptrvv.com
+pqoia.com
+pratikmail.com
+pratikmail.net
+pratikmail.org
+prazdnik-37.ru
+predatorrat.cf
+predatorrat.ga
+predatorrat.gq
+predatorrat.ml
+predatorrat.tk
+premium-mail.fr
+primabananen.net
+prin.be
+privacy.net
+privatdemail.net
+privy-mail.com
+privy-mail.de
+privymail.de
+pro-tag.org
+pro5g.com
+procrackers.com
+profast.top
+projectcl.com
+promailt.com
+proprietativalcea.ro
+propscore.com
+protempmail.com
+proxymail.eu
+proxyparking.com
+prtnx.com
+prtshr.com
+prtz.eu
+psh.me
+psles.com
+psoxs.com
+puglieisi.com
+puji.pro
+punkass.com
+puppetmail.de
+purcell.email
+purelogistics.org
+put2.net
+puttanamaiala.tk
+putthisinyourspamdatabase.com
+pwrby.com
+qasti.com
+qbfree.us
+qc.to
+qibl.at
+qiott.com
+qipmail.net
+qiq.us
+qisdo.com
+qisoa.com
+qmrbe.com
+qoika.com
+qopow.com
+qq.my
+qsl.ro
+qtum-ico.com
+quadrafit.com
+quick-mail.cc
+quickemail.info
+quickinbox.com
+quickmail.nl
+quicksend.ch
+ququb.com
+qvy.me
+qwickmail.com
+r4nd0m.de
+ra3.us
+rabin.ca
+rabiot.reisen
+rackabzar.com
+raetp9.com
+rainbowly.ml
+raketenmann.de
+rancidhome.net
+randomail.io
+randomail.net
+rapt.be
+raqid.com
+rax.la
+raxtest.com
+razemail.com
+razuz.com
+rbb.org
+rcasd.com
+rcpt.at
+rdklcrv.xyz
+re-gister.com
+reality-concept.club
+reallymymail.com
+realtyalerts.ca
+rebates.stream
+receiveee.com
+recipeforfailure.com
+recode.me
+reconmail.com
+recyclemail.dk
+redfeathercrow.com
+reftoken.net
+regbypass.com
+regspaces.tk
+reimondo.com
+rejectmail.com
+rejo.technology
+reliable-mail.com
+remail.cf
+remail.ga
+remarkable.rocks
+remote.li
+reptilegenetics.com
+resgedvgfed.tk
+revolvingdoorhoax.org
+rfc822.org
+rhyta.com
+richfinances.pw
+riddermark.de
+rifkian.ga
+rippb.com
+risingsuntouch.com
+riski.cf
+rklips.com
+rkomo.com
+rm2rf.com
+rma.ec
+rmqkr.net
+rnailinator.com
+ro.lt
+robertspcrepair.com
+robot-mail.com
+rollindo.agency
+ronnierage.net
+rootfest.net
+rosebearmylove.ru
+rotaniliam.com
+rover.info
+rowe-solutions.com
+royal.net
+royaldoodles.org
+royalmarket.life
+royandk.com
+rppkn.com
+rsvhr.com
+rtrtr.com
+rtskiya.xyz
+rudymail.ml
+rumgel.com
+runi.ca
+rupayamail.com
+ruru.be
+rustydoor.com
+rvb.ro
+ryteto.me
+s0ny.net
+s33db0x.com
+sabrestlouis.com
+sackboii.com
+safaat.cf
+safermail.info
+safersignup.de
+safetymail.info
+safetypost.de
+saharanightstempe.com
+salmeow.tk
+samsclass.info
+sandcars.net
+sandelf.de
+sandwhichvideo.com
+sanfinder.com
+sanim.net
+sanstr.com
+sast.ro
+satisfyme.club
+satukosong.com
+sausen.com
+saynotospams.com
+scatmail.com
+scay.net
+schachrol.com
+schafmail.de
+schmeissweg.tk
+schrott-email.de
+scrsot.com
+sd3.in
+sdvft.com
+sdvgeft.com
+sdvrecft.com
+secmail.pw
+secretemail.de
+secure-mail.biz
+secure-mail.cc
+secured-link.net
+securehost.com.es
+seekapps.com
+seekjobs4u.com
+sejaa.lv
+selfdestructingmail.com
+selfdestructingmail.org
+send22u.info
+sendfree.org
+sendingspecialflyers.com
+sendnow.win
+sendspamhere.com
+senseless-entertainment.com
+server.ms
+services391.com
+sexforswingers.com
+sexical.com
+sexyalwasmi.top
+shadap.org
+shalar.net
+sharedmailbox.org
+sharklasers.com
+sheryli.com
+shhmail.com
+shhuut.org
+shieldedmail.com
+shieldemail.com
+shiftmail.com
+shipfromto.com
+shiphazmat.org
+shipping-regulations.com
+shippingterms.org
+shitaway.tk
+shitmail.de
+shitmail.me
+shitmail.org
+shmeriously.com
+shopxda.com
+shortmail.net
+shotmail.ru
+showslow.de
+shrib.com
+shut.name
+shut.ws
+siberpay.com
+sidelka-mytischi.ru
+siftportal.ru
+sify.com
+sika3.com
+sikux.com
+siliwangi.ga
+silvercoin.life
+sim-simka.ru
+simaenaga.com
+simpleitsecurity.info
+sin.cl
+sinaite.net
+sinema.ml
+sinfiltro.cl
+singlespride.com
+sinnlos-mail.de
+sino.tw
+siteposter.net
+sizzlemctwizzle.com
+sjuaq.com
+skeefmail.com
+skrx.tk
+sky-inbox.com
+sky-ts.de
+skyrt.de
+slapsfromlastnight.com
+slaskpost.se
+slave-auctions.net
+slippery.email
+slipry.net
+slopsbox.com
+slothmail.net
+slushmail.com
+sluteen.com
+sly.io
+smallker.tk
+smapfree24.com
+smapfree24.de
+smapfree24.eu
+smapfree24.info
+smapfree24.org
+smarttalent.pw
+smashmail.de
+smellfear.com
+smellrear.com
+smellypotato.tk
+smtp99.com
+smwg.info
+snakemail.com
+snapwet.com
+sneakmail.de
+snece.com
+social-mailer.tk
+socialfurry.org
+sofia.re
+sofimail.com
+sofort-mail.de
+sofortmail.de
+sofrge.com
+softkey-office.ru
+softpls.asia
+sogetthis.com
+sohai.ml
+sohus.cn
+soioa.com
+soisz.com
+solar-impact.pro
+solvemail.info
+solventtrap.wiki
+songsign.com
+sonshi.cf
+soodmail.com
+soodomail.com
+soodonims.com
+soon.it
+spacebazzar.ru
+spam-be-gone.com
+spam.care
+spam.la
+spam.org.es
+spam.su
+spam4.me
+spamail.de
+spamarrest.com
+spamavert.com
+spambob.com
+spambob.net
+spambob.org
+spambog.com
+spambog.de
+spambog.net
+spambog.ru
+spambooger.com
+spambox.info
+spambox.me
+spambox.org
+spambox.us
+spamcero.com
+spamcon.org
+spamcorptastic.com
+spamcowboy.com
+spamcowboy.net
+spamcowboy.org
+spamday.com
+spamdecoy.net
+spamex.com
+spamfighter.cf
+spamfighter.ga
+spamfighter.gq
+spamfighter.ml
+spamfighter.tk
+spamfree.eu
+spamfree24.com
+spamfree24.de
+spamfree24.eu
+spamfree24.info
+spamfree24.net
+spamfree24.org
+spamgoes.in
+spamherelots.com
+spamhereplease.com
+spamhole.com
+spamify.com
+spaminator.de
+spamkill.info
+spaml.com
+spaml.de
+spamlot.net
+spammer.fail
+spammotel.com
+spammy.host
+spamobox.com
+spamoff.de
+spamsalad.in
+spamslicer.com
+spamsphere.com
+spamspot.com
+spamstack.net
+spamthis.co.uk
+spamthis.network
+spamthisplease.com
+spamtrail.com
+spamtrap.ro
+spamtroll.net
+spamwc.cf
+spamwc.ga
+spamwc.gq
+spamwc.ml
+speedgaus.net
+sperma.cf
+spikio.com
+spindl-e.com
+spoofmail.de
+spr.io
+spritzzone.de
+spruzme.com
+spybox.de
+spymail.com
+squizzy.de
+squizzy.net
+sroff.com
+sry.li
+ssoia.com
+stanfordujjain.com
+starlight-breaker.net
+starpower.space
+startfu.com
+startkeys.com
+statdvr.com
+stathost.net
+statiix.com
+stayhome.li
+steam-area.ru
+steambot.net
+stexsy.com
+stinkefinger.net
+stop-my-spam.cf
+stop-my-spam.com
+stop-my-spam.ga
+stop-my-spam.ml
+stop-my-spam.pp.ua
+stop-my-spam.tk
+stopspam.app
+storiqax.top
+storj99.com
+storj99.top
+streetwisemail.com
+stromox.com
+stuckmail.com
+stuffmail.de
+stumpfwerk.com
+stylist-volos.ru
+submic.com
+suburbanthug.com
+suckmyd.com
+sueshaw.com
+suexamplesb.com
+suioe.com
+super-auswahl.de
+supergreatmail.com
+supermailer.jp
+superplatyna.com
+superrito.com
+supersave.net
+superstachel.de
+superyp.com
+suremail.info
+sute.jp
+svip520.cn
+svk.jp
+svxr.org
+sweetpotato.ml
+sweetxxx.de
+swift-mail.net
+swift10minutemail.com
+sylvannet.com
+symphonyresume.com
+syosetu.gq
+syujob.accountants
+szerz.com
+tafmail.com
+tafoi.gr
+taglead.com
+tagmymedia.com
+tagyourself.com
+talkinator.com
+tanukis.org
+tapchicuoihoi.com
+taphear.com
+tapi.re
+tarzanmail.cf
+tastrg.com
+taukah.com
+tb-on-line.net
+tdtda.com
+tech69.com
+techblast.ch
+techemail.com
+techgroup.me
+technoproxy.ru
+teerest.com
+teewars.org
+tefl.ro
+telecomix.pl
+teleworm.com
+teleworm.us
+tellos.xyz
+teml.net
+temp-link.net
+temp-mail.com
+temp-mail.de
+temp-mail.org
+temp-mail.pp.ua
+temp-mail.ru
+temp-mails.com
+tempail.com
+tempalias.com
+tempe-mail.com
+tempemail.biz
+tempemail.co.za
+tempemail.com
+tempemail.net
+tempinbox.co.uk
+tempinbox.com
+tempmail.cn
+tempmail.co
+tempmail.de
+tempmail.eu
+tempmail.it
+tempmail.pp.ua
+tempmail.us
+tempmail.ws
+tempmail2.com
+tempmaildemo.com
+tempmailer.com
+tempmailer.de
+tempmailer.net
+tempmailo.com
+tempomail.fr
+tempomail.org
+temporarily.de
+temporarioemail.com.br
+temporary-mail.net
+temporaryemail.net
+temporaryemail.us
+temporaryforwarding.com
+temporaryinbox.com
+temporarymailaddress.com
+tempr.email
+tempsky.com
+tempthe.net
+tempymail.com
+tensi.org
+ternaklele.ga
+testore.co
+testudine.com
+thanksnospam.info
+thankyou2010.com
+thatim.info
+thc.st
+theaviors.com
+thebearshark.com
+thecarinformation.com
+thechildrensfocus.com
+thecity.biz
+thecloudindex.com
+thediamants.org
+thedirhq.info
+theeyeoftruth.com
+thejoker5.com
+thelightningmail.net
+thelimestones.com
+thembones.com.au
+themegreview.com
+themostemail.com
+thereddoors.online
+theroyalweb.club
+thescrappermovie.com
+theteastory.info
+thex.ro
+thichanthit.com
+thietbivanphong.asia
+thisisnotmyrealemail.com
+thismail.net
+thisurl.website
+thnikka.com
+thoas.ru
+thraml.com
+thrma.com
+throam.com
+thrott.com
+throwam.com
+throwawayemailaddress.com
+throwawaymail.com
+throwawaymail.pp.ua
+throya.com
+thrubay.com
+thunderbolt.science
+thunkinator.org
+thxmate.com
+tiapz.com
+tic.ec
+tilien.com
+timgiarevn.com
+timkassouf.com
+tinoza.org
+tinyurl24.com
+tipsb.com
+tittbit.in
+tiv.cc
+tizi.com
+tkitc.de
+tlpn.org
+tmail.com
+tmail.ws
+tmailinator.com
+tmails.net
+tmpbox.net
+tmpemails.com
+tmpeml.com
+tmpeml.info
+tmpjr.me
+tmpmail.net
+tmpmail.org
+toddsbighug.com
+tofeat.com
+toiea.com
+tokem.co
+tokenmail.de
+tonaeto.com
+tonne.to
+tonymanso.com
+toomail.biz
+toon.ml
+top-shop-tovar.ru
+top101.de
+top1mail.ru
+top1post.ru
+topinrock.cf
+topmail2.com
+topmail2.net
+topofertasdehoy.com
+topranklist.de
+toprumours.com
+tormail.org
+toss.pw
+tosunkaya.com
+totallynotfake.net
+totalvista.com
+totesmail.com
+totoan.info
+tourcc.com
+tp-qa-mail.com
+tqoai.com
+tqosi.com
+tradermail.info
+tranceversal.com
+trash-amil.com
+trash-mail.at
+trash-mail.cf
+trash-mail.com
+trash-mail.de
+trash-mail.ga
+trash-mail.gq
+trash-mail.ml
+trash-mail.tk
+trash-me.com
+trash2009.com
+trash2010.com
+trash2011.com
+trashcanmail.com
+trashdevil.com
+trashdevil.de
+trashemail.de
+trashemails.de
+trashinbox.com
+trashmail.at
+trashmail.com
+trashmail.de
+trashmail.gq
+trashmail.io
+trashmail.me
+trashmail.net
+trashmail.org
+trashmail.ws
+trashmailer.com
+trashmailgenerator.de
+trashmails.com
+trashymail.com
+trashymail.net
+trasz.com
+trayna.com
+trbvm.com
+trbvn.com
+trbvo.com
+trend-maker.ru
+trgfu.com
+trgovinanaveliko.info
+trialmail.de
+trickmail.net
+trillianpro.com
+trixtrux1.ru
+trollproject.com
+tropicalbass.info
+trungtamtoeic.com
+truthfinderlogin.com
+tryalert.com
+tryninja.io
+tryzoe.com
+ttirv.org
+ttszuo.xyz
+tualias.com
+tuofs.com
+turoid.com
+turual.com
+turuma.com
+tvchd.com
+tverya.com
+twinmail.de
+twkly.ml
+twocowmail.net
+twoweirdtricks.com
+twzhhq.online
+txen.de
+txtadvertise.com
+tyhe.ro
+tyldd.com
+tympe.net
+uacro.com
+uber-mail.com
+ubismail.net
+ubm.md
+ucche.us
+ucupdong.ml
+uemail99.com
+ufacturing.com
+uggsrock.com
+uguuchantele.com
+uhe2.com
+uhhu.ru
+uiu.us
+ujijima1129.gq
+uk.to
+ultra.fyi
+ultrada.ru
+uma3.be
+umail.net
+undo.it
+unicodeworld.com
+unids.com
+unimark.org
+unit7lahaina.com
+unmail.ru
+uooos.com
+upliftnow.com
+uplipht.com
+uploadnolimit.com
+upozowac.info
+urfunktion.se
+urhen.com
+uroid.com
+us.af
+us.to
+usa.cc
+usako.net
+usbc.be
+used-product.fr
+ushijima1129.cf
+ushijima1129.ga
+ushijima1129.gq
+ushijima1129.ml
+ushijima1129.tk
+utiket.us
+uu.gl
+uu2.ovh
+uuf.me
+uwork4.us
+uyhip.com
+vaasfc4.tk
+vaati.org
+valemail.net
+valhalladev.com
+vankin.de
+vctel.com
+vda.ro
+vddaz.com
+vdig.com
+veanlo.com
+vemomail.win
+venompen.com
+veo.kr
+ver0.cf
+ver0.ga
+ver0.gq
+ver0.ml
+ver0.tk
+vercelli.cf
+vercelli.ga
+vercelli.gq
+vercelli.ml
+verdejo.com
+vermutlich.net
+veryday.ch
+veryday.eu
+veryday.info
+veryrealemail.com
+vesa.pw
+vevs.de
+vfemail.net
+via.tokyo.jp
+vickaentb.tk
+victime.ninja
+victoriantwins.com
+vidchart.com
+viditag.com
+viewcastmedia.com
+viewcastmedia.net
+viewcastmedia.org
+vikingsonly.com
+vinernet.com
+vintomaper.com
+vipepe.com
+vipmail.name
+vipmail.pw
+vipxm.net
+viralplays.com
+virtualemail.info
+visal007.tk
+visal168.cf
+visal168.ga
+visal168.gq
+visal168.ml
+visal168.tk
+vixletdev.com
+vixtricks.com
+vkcode.ru
+vmailing.info
+vmani.com
+vmpanda.com
+vnedu.me
+voidbay.com
+volaj.com
+voltaer.com
+vomoto.com
+vorga.org
+votiputox.org
+voxelcore.com
+vpn.st
+vps30.com
+vps911.net
+vradportal.com
+vremonte24-store.ru
+vrmtr.com
+vsimcard.com
+vssms.com
+vtxmail.us
+vubby.com
+vuiy.pw
+vusra.com
+vztc.com
+w-asertun.ru
+w3internet.co.uk
+wakingupesther.com
+walala.org
+walkmail.net
+walkmail.ru
+wallm.com
+wanko.be
+watch-harry-potter.com
+watchever.biz
+watchfull.net
+watchironman3onlinefreefullmovie.com
+wazabi.club
+wbdev.tech
+wbml.net
+web-contact.info
+web-ideal.fr
+web-inc.net
+web-mail.pp.ua
+web2mailco.com
+webcontact-france.eu
+webemail.me
+webhook.site
+webm4il.info
+webmail24.top
+webtrip.ch
+webuser.in
+wee.my
+wef.gr
+weg-werf-email.de
+wegwerf-email-addressen.de
+wegwerf-email-adressen.de
+wegwerf-email.at
+wegwerf-email.de
+wegwerf-email.net
+wegwerf-emails.de
+wegwerfadresse.de
+wegwerfemail.com
+wegwerfemail.de
+wegwerfemail.info
+wegwerfemail.net
+wegwerfemail.org
+wegwerfemailadresse.com
+wegwerfmail.de
+wegwerfmail.info
+wegwerfmail.net
+wegwerfmail.org
+wegwerpmailadres.nl
+wegwrfmail.de
+wegwrfmail.net
+wegwrfmail.org
+wekawa.com
+welikecookies.com
+wellsfargocomcardholders.com
+wemel.top
+wetrainbayarea.com
+wetrainbayarea.org
+wfgdfhj.tk
+wg0.com
+wh4f.org
+whatiaas.com
+whatifanalytics.com
+whatpaas.com
+whatsaas.com
+whiffles.org
+whopy.com
+whyspam.me
+wibblesmith.com
+wickmail.net
+widaryanto.info
+widget.gg
+wierie.tk
+wifimaple.com
+wifioak.com
+wikidocuslava.ru
+wilemail.com
+willhackforfood.biz
+willselfdestruct.com
+wimsg.com
+winemaven.info
+wins.com.br
+wlist.ro
+wmail.cf
+wmail.club
+wokcy.com
+wolfmail.ml
+wolfsmail.tk
+wollan.info
+worldspace.link
+wpdork.com
+wpg.im
+wralawfirm.com
+writeme.us
+wronghead.com
+ws.gy
+wsym.de
+wudet.men
+wuespdj.xyz
+wupics.com
+wuuvo.com
+wuzup.net
+wuzupmail.net
+wwjmp.com
+wwwnew.eu
+wxnw.net
+x24.com
+xagloo.co
+xagloo.com
+xbaby69.top
+xcode.ro
+xcodes.net
+xcompress.com
+xcoxc.com
+xcpy.com
+xemaps.com
+xemne.com
+xents.com
+xjoi.com
+xkx.me
+xl.cx
+xmail.com
+xmailer.be
+xmaily.com
+xn--9kq967o.com
+xn--d-bga.net
+xojxe.com
+xost.us
+xoxox.cc
+xperiae5.com
+xrap.de
+xrho.com
+xvx.us
+xwaretech.com
+xwaretech.info
+xwaretech.net
+xww.ro
+xxhamsterxx.ga
+xxi2.com
+xxlocanto.us
+xxolocanto.us
+xxqx3802.com
+xy9ce.tk
+xyzfree.net
+xzsok.com
+yabai-oppai.tk
+yahmail.top
+yahooproduct.net
+yamail.win
+yanet.me
+yannmail.win
+yapped.net
+yaqp.com
+yarnpedia.ga
+ycare.de
+ycn.ro
+ye.vc
+yedi.org
+yeezus.ru
+yep.it
+yermail.net
+yhg.biz
+ynmrealty.com
+yodx.ro
+yogamaven.com
+yoggm.com
+yomail.info
+yoo.ro
+yopmail.com
+yopmail.fr
+yopmail.gq
+yopmail.net
+yopmail.pp.ua
+yordanmail.cf
+you-spam.com
+yougotgoated.com
+youmail.ga
+youmailr.com
+youneedmore.info
+youpymail.com
+yourdomain.com
+youremail.cf
+yourewronghereswhy.com
+yourlms.biz
+yourspamgoesto.space
+yourtube.ml
+yroid.com
+yspend.com
+ytpayy.com
+yugasandrika.com
+yui.it
+yuoia.com
+yuurok.com
+yxzx.net
+yyolf.net
+z-o-e-v-a.ru
+z0d.eu
+z1p.biz
+z86.ru
+zain.site
+zainmax.net
+zaktouni.fr
+zarabotokdoma11.ru
+zasod.com
+zaym-zaym.ru
+zcrcd.com
+zdenka.net
+ze.tc
+zebins.com
+zebins.eu
+zehnminuten.de
+zehnminutenmail.de
+zepp.dk
+zetmail.com
+zfymail.com
+zhaoqian.ninja
+zhaoyuanedu.cn
+zhcne.com
+zhewei88.com
+zhorachu.com
+zik.dj
+zipcad.com
+zipo1.gq
+zippymail.info
+zipsendtest.com
+zoaxe.com
+zoemail.com
+zoemail.net
+zoemail.org
+zoetropes.org
+zombie-hive.com
+zomg.info
+zsero.com
+zumpul.com
+zv68.com
+zxcv.com
+zxcvbnm.com
+zymuying.com
+zzi.us
+zzrgg.com
+zzz.com \ No newline at end of file
diff --git a/admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php b/admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php
index a8942f7..4d4ac81 100644
--- a/admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php
+++ b/admin/survey/modules/mod_geoIP/class.SurveyGeoIP.php
@@ -47,10 +47,12 @@ class SurveyGeoIP{
echo '<p class="bold">'.$lang['srv_geoip_warning'].'</p>';
- echo '<div>';
- echo '<div class="floatLeft">';
+ echo '<div class="geoip_holder">';
+
// Izpis tabele frekvenc
+ echo '<div class="geoip_table_holder">';
+
echo '<table class="geoip_table">';
// Prva vrstica
@@ -109,7 +111,7 @@ class SurveyGeoIP{
// Google maps on right of table
if(count($this->countriesLocationsData)>0){
- echo '<div class="floatLeft" style="margin: 15px 0px 0px 50px;">';
+ echo '<div class="geoip_map_holder">';
if(count($this->countriesLocationsData) > 1)
$this->displayNavigationMaps();
@@ -122,6 +124,8 @@ class SurveyGeoIP{
echo '<script type="text/javascript">passMapDataRaw('.json_encode($cities).');googleMapsAPIProcedura(initializeMapGeneralForIPs);</script>';
}
+
+
echo '</div>';
}
@@ -248,29 +252,9 @@ class SurveyGeoIP{
$countries = mb_convert_encoding($this->countriesLocationsData, "UTF-8", "ISO-8859-1");
$cities = mb_convert_encoding($this->data['all']['all']['cities'], "UTF-8", "ISO-8859-1");
- echo '<div class="secondNavigation">';
- echo '<ul class="secondNavigation">';
-
- echo'<li>';
- echo '<a class="no-img active" id="geoip_cities" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($cities).');\'>';
- echo '<span class="label">' . $lang['srv_geoip_map_cities'] . '</span>';
- echo '</a>';
- echo'</li>';
-
- #space
- echo'<li class="space">';
- echo'</li>';
-
- echo'<li>';
- echo '<a class="no-img" id="geoip_countries" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($countries).');\'>';
- echo '<span class="label">' . $lang['srv_geoip_map_countries'] . '</span>';
- echo '</a>';
- echo'</li>';
-
- echo'</ul>';
+ echo '<div class="geoip_navigation">';
+ echo ' <a class="active" id="geoip_cities" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($cities).');\'>'.$lang['srv_geoip_map_cities'].'</a>';
+ echo ' <a id="geoip_countries" onclick=\'geoip_map_navigation_toggle(this, '.json_encode($countries).');\'>'.$lang['srv_geoip_map_countries'].'</a>';
echo '</div>';
-
- echo '<br class="clr" />';
- echo '<br class="clr" />';
}
} \ No newline at end of file
diff --git a/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxHierarhijaDostopUporabnikovClass.php b/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxHierarhijaDostopUporabnikovClass.php
index 652cfa9..0770ee9 100644
--- a/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxHierarhijaDostopUporabnikovClass.php
+++ b/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxHierarhijaDostopUporabnikovClass.php
@@ -40,13 +40,14 @@ class AjaxHierarhijaDostopUporabnikovClass {
}else {
echo '<h2> Vpiši uporabnika za dostop do SA modula</h2>';
}
+ echo '<div class="popup_close"><a href="#" onClick="edit_user_close();">✕</a></div>';
echo '<div>';
// EMAIL
echo '<div style="width: 100%;">';
echo '<label>Elektronski naslov</label><br/>';
if(!empty($user)){
- echo '<input type="email" value="'.$user->email .'" disabled="disabled" style="width: 80%; padding: 4px; margin: 2px 0;"/>';
+ echo '<input type="email" value="'.$user->email .'" disabled="disabled" />';
}else{
echo '<input type="email"
value=""
@@ -54,7 +55,7 @@ class AjaxHierarhijaDostopUporabnikovClass {
id="sa-email"
onblur="preveriVpisanEmailZaSAdostop()"
required="required"
- style="width: 80%; padding: 4px; margin: 2px 0;"/>';
+ />';
echo '<input type="hidden" value="" id="sa-id" "/>';
echo '<span id="sa-email-sporocilo"></span>';
}
@@ -63,13 +64,13 @@ class AjaxHierarhijaDostopUporabnikovClass {
// Organizzacija
echo '<div style="padding:15px 0;width: 100%;">';
echo '<label>Šola oz. javni zavod</label><br/>';
- echo '<input type="text" value="'.(!empty($user) ? $user->ustanova : NULL).'" placeholder="Srednja šola" id="sa-ustanova" required="required" style="width: 80%; padding: 4px; margin: 2px 0;"/>';
+ echo '<input type="text" value="'.(!empty($user) ? $user->ustanova : NULL).'" placeholder="Srednja šola" id="sa-ustanova" required="required" />';
echo '</div>';
// Email za AAI dostop
echo '<div style="padding-bottom:15px; width: 100%;">';
echo '<label>Elektronski naaslov za AAI dostop (v kolikor je primarni email drugačen od AAI dostopa)</label><br/>';
- echo '<input type="email" value="'.(!empty($user) ? $user->aai_email : NULL).'" placeholder="janez.novak@guest.arnes.si" id="sa-aai" style="width: 80%; padding: 4px; margin: 2px 0;"/>';
+ echo '<input type="email" value="'.(!empty($user) ? $user->aai_email : NULL).'" placeholder="janez.novak@guest.arnes.si" id="sa-aai" />';
echo '</div>';
echo '</div>';
@@ -77,17 +78,29 @@ class AjaxHierarhijaDostopUporabnikovClass {
// Gumb za zapret popup in potrdit
echo '<div class="sa-modul">';
- echo '<div class="buttonwrapper spaceRight floatLeft">';
+ /* echo '<div class="buttonwrapper spaceRight floatLeft">';
if(!empty($user)) {
echo '<a class="ovalbutton ovalbutton_orange sa-potrdi" href="#" onclick="posodobiSAuporabnika(\'' . $user->id . '\')"; return false;"><span>' . $lang['srv_potrdi'] . '</span></a>' . "\n\r";
}else {
echo '<a class="ovalbutton ovalbutton_orange sa-potrdi" href="#" onclick="shraniSAuporabnika()"; return false;"><span>' . $lang['srv_potrdi'] . '</span></a>' . "\n\r";
}
- echo '</div>';
+ echo '</div>'; */
- echo '<div class="buttonwrapper spaceRight floatLeft">';
+ /* echo '<div class="buttonwrapper spaceRight floatLeft">';
echo '<a class="ovalbutton ovalbutton_gray" href="#" onclick="vrednost_cancel(); return false;"><span>' . $lang['srv_close_profile'] . '</span></a>' . "\n\r";
+ echo '</div>'; */
+ echo '<div class="button_holder">';
+
+ echo '<button class="medium white-blue" href="#" onclick="edit_user_close();return false;"><span>' . $lang['srv_close_profile'] . '</span></button>' . "\n\r";
+
+ if(!empty($user)) {
+ echo '<button class="medium blue" href="#" onclick="posodobiSAuporabnika(\'' . $user->id . '\')"; return false;"><span>' . $lang['srv_potrdi'] . '</span></button>' . "\n\r";
+ }else {
+ echo '<button class="medium blue" href="#" onclick="shraniSAuporabnika()"; return false;"><span>' . $lang['srv_potrdi'] . '</span></button>' . "\n\r";
+ }
+
echo '</div>';
+
echo '</div>';
echo '</div>';
@@ -182,6 +195,7 @@ class AjaxHierarhijaDostopUporabnikovClass {
echo '<div class="sa-modul">';
echo '<h3><strong>'.$lang['user2'].'</strong></h3>';
+ echo '<div class="popup_close"><a href="#" onClick="edit_user_close();">✕</a></div>';
echo '<p><label for="type">'.$lang['admin_type'].':</label>';
switch ($user->type){
case 0:
@@ -217,8 +231,11 @@ class AjaxHierarhijaDostopUporabnikovClass {
// Gumb za zapret popup in potrdit
echo '<div style=" display: block;">';
- echo '<div class="buttonwrapper spaceRight floatLeft">';
+ /* echo '<div class="buttonwrapper spaceRight floatLeft">';
echo '<a class="ovalbutton ovalbutton_gray" href="#" onclick="vrednost_cancel(); return false;"><span>' . $lang['srv_close_profile'] . '</span></a>' . "\n\r";
+ echo '</div>'; */
+ echo '<div class="button_holder">';
+ echo '<button class="medium white-blue" href="#" onclick="edit_user_close(); return false;"><span>' . $lang['srv_close_profile'] . '</span></button>' . "\n\r";
echo '</div>';
echo '</div>';
echo '</div>';
diff --git a/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxUporabnikiClass.php b/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxUporabnikiClass.php
index 628977f..56db0f3 100644
--- a/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxUporabnikiClass.php
+++ b/admin/survey/modules/mod_hierarhija/class/Ajax/AjaxUporabnikiClass.php
@@ -319,7 +319,7 @@ class AjaxUporabniki
$sql_user = sisplet_query("SELECT id FROM users WHERE email='$email'");
if (mysqli_num_rows($sql_user) == 0) {
- sisplet_query("INSERT INTO users (name, surname, email, pass, type, when_reg, came_from) VALUES ('$name', '$surname', '$email', '" . base64_encode((hash(SHA256, '' . $pass_salt))) . "', '3', DATE_FORMAT(NOW(), '%Y-%m-%d'), '1')");
+ sisplet_query("INSERT INTO users (name, surname, email, pass, type, when_reg, came_from) VALUES ('$name', '$surname', '$email', '" . base64_encode((hash('SHA256', '' . $pass_salt))) . "', '3', DATE_FORMAT(NOW(), '%Y-%m-%d'), '1')");
$user_id = mysqli_insert_id($GLOBALS['connect_db']);
} else {
$row = mysqli_fetch_array($sql_user);
diff --git a/admin/survey/modules/mod_hierarhija/class/HierarhijaAjaxClass.php b/admin/survey/modules/mod_hierarhija/class/HierarhijaAjaxClass.php
index 0ed3956..cc0d5c4 100644
--- a/admin/survey/modules/mod_hierarhija/class/HierarhijaAjaxClass.php
+++ b/admin/survey/modules/mod_hierarhija/class/HierarhijaAjaxClass.php
@@ -922,10 +922,9 @@ class HierarhijaAjax
public function pridobiVseAnketeKiSoVknjizniciZaHierarhijo()
{
global $site_url;
- global $hierarhija_folder_id;
- $ime_mape = sisplet_query("SELECT * FROM srv_library_folder where id='" . $hierarhija_folder_id . "'", "obj")->naslov;
- $ankete_v_knjiznici = sisplet_query("SELECT * FROM srv_library_anketa WHERE folder='" . $hierarhija_folder_id . "'", "obj");
+ $ime_mape = sisplet_query("SELECT * FROM srv_library_folder where id='" . AppSettings::getInstance()->getSetting('hierarhija-folder_id') . "'", "obj")->naslov;
+ $ankete_v_knjiznici = sisplet_query("SELECT * FROM srv_library_anketa WHERE folder='" . AppSettings::getInstance()->getSetting('hierarhija-folder_id') . "'", "obj");
if (empty($ime_mape) && sizeof($ankete_v_knjiznici) == 0) {
echo 'Knjižnica je prazna.';
@@ -937,14 +936,14 @@ class HierarhijaAjax
if (is_array($ankete_v_knjiznici) && empty($ankete_v_knjiznici->ank_id)) {
foreach ($ankete_v_knjiznici as $anketa) {
- $srv_anketa = sisplet_query("SELECT id, naslov FROM srv_anketa WHERE id='" . $anketa->ank_id . "'", "obj");
+ $srv_anketa = sisplet_query("SELECT id, naslov, hash FROM srv_anketa WHERE id='" . $anketa->ank_id . "'", "obj");
if(!empty($srv_anketa->naslov)) {
echo '<li>';
echo '<input type="radio" name="knjiznica_izbira" id="ank_'.$anketa->ank_id.'" value="'.$anketa->ank_id.'" /> ';
echo '<span class="enka-checkbox-radio"></span>';
echo '<span>
- <a href="'.$this->site_url.'/main/survey/index.php?anketa='.$anketa->ank_id.'&amp;preview=on" target="_blank" title="Predogled ankete">
+ <a href="'.$this->site_url.'/main/survey/index.php?anketa='.$srv_anketa->hash.'&amp;preview=on" target="_blank" title="Predogled ankete">
<span class="faicon preview"></span>
</a>
</span>';
@@ -953,13 +952,13 @@ class HierarhijaAjax
}
}
} elseif (is_object($ankete_v_knjiznici)) {
- $srv_anketa = sisplet_query("SELECT id, naslov FROM srv_anketa WHERE id='" . $ankete_v_knjiznici->ank_id . "'", "obj");
+ $srv_anketa = sisplet_query("SELECT id, naslov, hash FROM srv_anketa WHERE id='" . $ankete_v_knjiznici->ank_id . "'", "obj");
if(!empty($srv_anketa->naslov)) {
echo '<li>';
echo '<input type="radio" name="knjiznica_izbira" id="ank_'.$ankete_v_knjiznici->ank_id.'" value="'.$ankete_v_knjiznici->ank_id.'" /> ';
echo '<span>
- <a href="'.$this->site_url.'main/survey/index.php?anketa='.$ankete_v_knjiznici->ank_id.'&amp;preview=on" target="_blank" title="Predogled ankete">
+ <a href="'.$this->site_url.'main/survey/index.php?anketa='.$srv_anketa->hash.'&amp;preview=on" target="_blank" title="Predogled ankete">
<span class="faicon preview"></span>
</a>
</span>';
diff --git a/admin/survey/modules/mod_hierarhija/class/HierarhijaAnalysisClass.php b/admin/survey/modules/mod_hierarhija/class/HierarhijaAnalysisClass.php
index a322a5d..dcf18f7 100644
--- a/admin/survey/modules/mod_hierarhija/class/HierarhijaAnalysisClass.php
+++ b/admin/survey/modules/mod_hierarhija/class/HierarhijaAnalysisClass.php
@@ -54,9 +54,7 @@ class HierarhijaAnalysis
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo::getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
# Inicializiramo in polovimo nastavitve missing profila
SurveyStatusProfiles::Init($this->anketa);
@@ -1183,10 +1181,7 @@ class HierarhijaAnalysis
$options = array('inline_legenda' => $inline_legenda, 'isTextAnswer' => false, 'isOtherAnswer' => false, 'num_show_records' => $num_show_records);
-// if (self :: $show_spid_div == true) {
-// echo '<div id="sum_'.$spid.'" loop="'.self::$_CURRENT_LOOP['cnt'].'" class="div_sum_variable div_analiza_holder">';
-// self::displaySpremenljivkaIcons($spid);
-// }
+
# tekst vprašanja
echo '<table class="anl_tbl anl_bt anl_br tbl_clps">';
diff --git a/admin/survey/modules/mod_hierarhija/class/HierarhijaClass.php b/admin/survey/modules/mod_hierarhija/class/HierarhijaClass.php
index 37bf787..14275df 100644
--- a/admin/survey/modules/mod_hierarhija/class/HierarhijaClass.php
+++ b/admin/survey/modules/mod_hierarhija/class/HierarhijaClass.php
@@ -2087,8 +2087,7 @@ class Hierarhija {
}
}
- $db_table = (SurveyInfo::getInstance()
- ->getSurveyColumn('db_table') == 1) ? '_active' : '';
+ $db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
// tukaj pridobimo podatke o anketi za določeno strukturo
// preverimov prvi in zadnji nivo
diff --git a/admin/survey/modules/mod_hierarhija/class/HierarhijaHelper.php b/admin/survey/modules/mod_hierarhija/class/HierarhijaHelper.php
index 3f283f6..fbc615a 100644
--- a/admin/survey/modules/mod_hierarhija/class/HierarhijaHelper.php
+++ b/admin/survey/modules/mod_hierarhija/class/HierarhijaHelper.php
@@ -41,10 +41,7 @@ class HierarhijaHelper
// V kolikor smo na katerikoli strani, potem gledamo po piškotkih
if (isset($get->{'survey-'.$ank_id})) {
- $active = '';
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $active = '_active';
- }
+ $active = SurveyInfo::getInstance()->getSurveyArchiveDBString();
// ID uporabnika, glede na njegov piškot
$srv_user = sisplet_query("SELECT id FROM srv_user WHERE cookie='".$get->{'survey-'.$ank_id}."'", "obj")->id;
@@ -195,8 +192,7 @@ class HierarhijaHelper
$strani = [
'https://www.1ka.si/',
- 'http://test.1ka.si/',
- 'http://1ka.test/',
+ 'https://test.1ka.si/',
'https://1ka.arnes.si/'
];
@@ -211,6 +207,10 @@ class HierarhijaHelper
if ($admin_type == 0) {
return true;
}
+ // ZAENKRAT JE HIERARHHIJA VIDNA SAMO ADMINOM, KER ITAK NE DELUJE OK
+ else{
+ return false;
+ }
//AAI uporabnik
if (! empty($_COOKIE['aai']) && $_COOKIE['aai'] == 1) {
diff --git a/admin/survey/modules/mod_hierarhija/class/HierarhijaIzvoz.php b/admin/survey/modules/mod_hierarhija/class/HierarhijaIzvoz.php
index 18bda68..d361812 100644
--- a/admin/survey/modules/mod_hierarhija/class/HierarhijaIzvoz.php
+++ b/admin/survey/modules/mod_hierarhija/class/HierarhijaIzvoz.php
@@ -313,8 +313,7 @@ class HierarhijaIzvoz {
}
}
- $db_table = (SurveyInfo::getInstance()
- ->getSurveyColumn('db_table') == 1) ? '_active' : '';
+ $db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
// tukaj pridobimo podatke o anketi za določeno strukturo
// preverimov prvi in zadnji nivo
diff --git a/admin/survey/modules/mod_hierarhija/css/vendor/datatables.min.css b/admin/survey/modules/mod_hierarhija/css/vendor/datatables.min.css
index aca8f9d..b127dff 100644
--- a/admin/survey/modules/mod_hierarhija/css/vendor/datatables.min.css
+++ b/admin/survey/modules/mod_hierarhija/css/vendor/datatables.min.css
@@ -10,7 +10,7 @@
* DataTables 1.10.12, Responsive 2.1.0, Scroller 1.4.2
*/
-table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("DataTables-1.10.12/images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("DataTables-1.10.12/images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("DataTables-1.10.12/images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("DataTables-1.10.12/images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("DataTables-1.10.12/images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}
+table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("DataTables-1.10.12/images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("DataTables-1.10.12/images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("DataTables-1.10.12/images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("DataTables-1.10.12/images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("DataTables-1.10.12/images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}
diff --git a/admin/survey/modules/mod_hierarhija/js/vendor/hierarhija_analize.js b/admin/survey/modules/mod_hierarhija/js/vendor/hierarhija_analize.js
index 4bd3d75..876f406 100644
--- a/admin/survey/modules/mod_hierarhija/js/vendor/hierarhija_analize.js
+++ b/admin/survey/modules/mod_hierarhija/js/vendor/hierarhija_analize.js
@@ -297,7 +297,7 @@ function doArchiveMeans() {
$('#fullscreen').show();
});
} else {
- alert('Ni podatkov za arhiv! Najprej kreirajte tabele.');
+ genericAlertPopup('alert_no_archive_tables');
}
}
function submitArchiveMeans() {
@@ -323,7 +323,7 @@ function submitArchiveMeans() {
$("#fullscreen").show();
});
} else {
- alert('Ni podatkov za arhiv! Najprej kreirajte tabele.');
+ genericAlertPopup('alert_no_archive_tables');
}
}
@@ -347,9 +347,9 @@ function createArchiveMeansBeforeEmail() {
});
} else {
if (parseInt(response) == -1) {
- alert("Nothing to archive!" + response);
+ genericAlertPopup('alert_no_archive_response',response);
} else {
- alert("Error while creating archive!" + response);
+ genericAlertPopup('alert_archive_error_response',response);
}
$('#fullscreen').hide();
$('#fade').fadeOut('slow');
@@ -357,7 +357,7 @@ function createArchiveMeansBeforeEmail() {
});
} else {
- alert('Ni podatkov za arhiv! Najprej kreirajte tabele.');
+ genericAlertPopup('alert_no_archive_tables');
}
};
diff --git a/admin/survey/modules/mod_kakovost/R/kakovost.R b/admin/survey/modules/mod_kakovost/R/kakovost.R
index de05f1e..d7fa8d0 100644
--- a/admin/survey/modules/mod_kakovost/R/kakovost.R
+++ b/admin/survey/modules/mod_kakovost/R/kakovost.R
@@ -1,47 +1,357 @@
-#uporabnost <- function(params){
+# Created by Miha 27.5.2021
+# Modified (sixth version) by Miha 7.6.2021
-#setwd("path od mape, kjer se nahaja ta glavna datoteka, npr. C:/mapa")
-# Import data.table & functions ------------------------------------------------------
-require("data.table")
-source("modules/mod_uporabnost/R/gen.survey.str.R")
-source("modules/mod_uporabnost/R/gen.usability.matrix.R")
-source("modules/mod_uporabnost/R/calc.usability.R")
+# Note: The formated banners of comments are generated with
+#' @bannerCommenter package.
-# Input data ------------------------------------------------------
+
+###########################################################################
+###########################################################################
+### ###
+### DESCRIPTION: ###
+### RESPONSE TIME WINSORIZATION ###
+### ###
+###########################################################################
+###########################################################################
+#' @param VVMM PRIPRAVA PODATKOV:
+#' NOTE: tole kodo smo po VV zmišljevanjui tolikokrat spremenili
+#' da se mi ne da več pisat v angleščini in konstantno popravljati :)
+#'
+# Za ustrezno obravnavo časov, je treba predhodno pripraviti podatke.
+# Glavni problemi ki pri tem nastanejo so: respondenti, ki na določeni strani
+# niso odogovrili na vsa vprašanja zaradi česar so njihovi časi neupraviečno
+# prekratki,potem nerespondenti, ki so priskočili določeno stran 3) respodneti,
+# ki so na določeni strnai imeli notranji pogodj oz so izbrali vprašanje drugo.
+# In 4) respondeti, ki so prepočasni v smislu gausov eksponentre krivulje kar
+# se vstorki obravnava z postopki in odstraniujo asimetrijo v normalbi porazdleitvi
+# zaradi aktere pride do amanomalj vtestirnaju 5) popravek za čase respondentov,
+# ki so prekinili izpolnjevanje
+
+# Postopek metode
+
+#' @1.Trunciranje enote, ki so na posamezni strani nad 95tim percentilom
+#' @2.Strani, ki so nagovori se pri izračunu indeksa ne upošteva
+#' @3.Preverimo ali je stran za respondenta mešana, torej ali vprašanja
+#' oziroma postavke, poleg veljavnih vrednosti respondenta na stran
+#' (verdnosti večje od 1), vsebujejo še kakšno manjkajočo vrednost zaradi pogoja
+#' (-2)
+#' @4.V kolikor obstajajo mešane vrednosti, potem čas respondenta na tej mešani
+#' strani pomnožimo z deležem ocenjenega časa, ki bi na tej strnai sicer
+#' pripadal temu vprašanju. Privzeta tehnična meritev orodja za spletno anketirnaje,
+#' ki ima algoritem( priloži sliko 1KA časov). Zmanjšaš čas, za 10 procentov
+#' (pomnožiš z 90 %).
+#' @5.Preverimo ali so na strani respondenta manjkajoče vrednosti. Če manjkajoča
+#' vrednost obstaja, čas respondenta na tej strani delimo z 0.9
+#' @6.Nato izračunamo indeks respondenta (Rti), ki je izračunan tako, da vsot
+#' o strani respondenta (brez -2) delimo z vsoto median taistih strani.
+#' @7. Ponovno izračunamo mediane strani.
+#' @8. Vrednosti, ki smo jih v prvem koraku truncirali imputiramo, in sicer so
+#' truncirane vrednosti zmnožek indeksa posameznega respondenta pomnožene z mediano
+#' strani oziroma Rti * mediana stranii
+
+#------------------------- // DESCRIPTION // -----------------------------#
+
+
+#------------ List of packages we need --------------#
+library(data.table)
+library(dplyr)
+#------------ List of packages we need --------------#
+
+
+
+############################################################################
+############################################################################
+### ###
+### DATA: ###
+### IMPORT AMD PREPARATION ###
+### ###
+############################################################################
+############################################################################
+
+#setwd("E:\\Doktorat\\Modul kakovost 1ka/")
+
+##---------------------
+## Input on 1KA side
+##---------------------
+# To know for which survey we are calculating response time
params <- commandArgs(trailingOnly = TRUE)
ID <- params[1]
+#ID <- 8699
+
+##----------------------------
+## Import data and paradata
+##----------------------------
+# We need thrtee files
+#' @data: data frame with paradata (response time)
+#' @questions: data about page ID nad number of
+#' items/variables per page, in order to properly calculate our
+#' index
+#' @items: questions item info. Important part is char_count, which
+#' represents the 1KA estimeted time (100 char_count == 10 sekund)
+#' We will merge items and questions
+
+
+
+## Data -----
+# path
+rt.file <- paste0("modules/mod_kakovost/temp/data_", ID, ".csv")
+# Import
+rt <-
+ as.data.frame(fread(rt.file, header = TRUE), stringsAsFactors = FALSE)
+
+## Questionns --------
+# get question and item files
+questions.file <-
+ paste0("modules/mod_kakovost/temp/questions_", ID, ".csv")
+# Import
+questions <-
+ fread(
+ questions.file,
+ header = TRUE,
+ data.table = FALSE
+ )
+# Check if there is question type "Nagovor", we want to omit
+# this form analysis
+
+# FOR NOW: later we will retunr back
+# more testing is needed
+questions$params <-
+ ifelse(grepl("nagovor", questions$params), questions$params, "")
+
+
+## Items --------
+# We need ITems to calculate response time pe ritem
+# and use it in calculation of response time
+## Questionns --------
+# get question and item files
+items.file <-
+ paste0("modules/mod_kakovost/temp/items_", ID, ".csv")
+# Import
+items <-
+ fread(
+ items.file,
+ header = TRUE,
+ data.table = FALSE
+ )
+
+
+
+
+# Important
+# 1KA računa čas na naslednji način
+# Čas za vprašanje (na 100 znakov besedila) = 10 sekund
+# Čas za kategorijo (na 100 znakov besedila) = 5 sekund
+# Torej bomo znake pretvorili v sekunde
+
+# Vprašanje
+questions$cas1KA <- questions$char_count * 10 / 100
+# Kategorija
+items$cas1KA <- items$char_count * 5 / 100
+
+
+# Merge Questions and items in order to get number of character per
+# item and per questions
+Ques.item <-
+ merge(questions,
+ items,
+ by = "ID QUESTION",
+ all = TRUE,
+ sort = FALSE)
+
+# Sort from smallest to largest, so the first page is always
+# in the beginning
+Ques.item <- arrange(Ques.item, `ID PAGE`)
+
+
+#--------------------------------------------------------------------------#
+
+
+############################################################################
+############################################################################
+### ###
+### RESPONSE TIME ###
+### CALCULATE RESPONSE TIME IN SECONDS FOR EACH PAGE ###
+### ###
+############################################################################
+############################################################################
+## SUBSET COLNAMES "date_" ##
+# Iz baze izberemo le stolpce, ki nas zanimajo:
+# Vse stolpce, ki v imenu vsebujejo Date_ (ker ra?unamo ?ase na strani)
+times <- rt[, grepl("t_insert|date_" , colnames(rt))]
-#get & import dsa: the main survey data file (containing only recnum, status, lurker and all variables relating to answers to survey questions)
-dsa.file <- paste0("modules/mod_uporabnost/temp/data_", ID, ".csv")
-dsa <- fread(dsa.file, header=T, drop=c(1:5, 7, 8))
+# čas v sekundah, ki ga je anketiranec preživel na x strani
+# (ki se izračuna kot razlika med stolpcem date_x in date_x+1)
+makeTime <- function(x) {
+ as.POSIXct(x, format = "%d.%m.%Y %H:%M:%S")
+}
+dat <- apply(times, 2, makeTime)
+response_times <- mapply(x = 2:ncol(dat),
+ y = 1:(ncol(dat) - 1),
+ function(x, y)
+ (dat)[, x] - (dat)[, y])
+
+
+# Zamenjamo ure in minute s sekundami
+rt[, grepl("t_insert|date_" , colnames(rt))] <- cbind(response_times, NA)
+rt[, grepl("t_insert|date_" , colnames(rt))][rt[, grepl("t_insert|date_" , colnames(rt))] < 0] <-
+ NA
+
+
+##################################################################
+## RT preparation ##
+##################################################################
+# Nov we need to match Items/variables with survey pages
+# so we will know which items match response time per page
+# This is important in order to correctly calculate
+# response times and remove respondents (set missing) with
+# item nonresponse per item.
+
+# First subset columns with time per page
+rt.page <- rt[, grepl("t_insert|date_" , colnames(rt))]
+# Zadnji stolpec je NA kot rezultat odštevanje stolpcev
+rt.page[ncol(rt.page)] <- NULL
+#rt.page[3,2] <- 1
+
+
+# ROČNO!!!!!!!
+# Popravimo vrednost na strani 4, ki ni mešana
+# ampak -8, saj sta na eni strani dve vprašanji
+#, ki pa sta bili porazdeljeni 50-50.
+# rt$Q7a.1 <- ifelse(rt$Q7a.1== -2 & rt$Q7b.1 >=0, rt$Q7b.1, rt$Q7a.1)
+# rt$Q7b.1 <- NULL
+# questions <- questions[-26,]
+# # Enako velja za stran 20 torej "Q28a" "Q28b"
+# rt$Q28a <- ifelse(rt$Q28a== -2 & rt$Q28b >=0, rt$Q28b, rt$Q28a)
+# rt$Q28b <- NULL
+# questions <- questions[-136,]
+#----------------------------- // Data // --------------------------------#
-#get question and item files
-questions.file <- paste0("modules/mod_uporabnost/temp/questions_", ID, ".csv")
-items.file <- paste0("modules/mod_uporabnost/temp/items_", ID, ".csv")
+#---------------------
+test <- rt.page
+miss1 <- vector()
+miss2 <- vector()
+mesanaStranR <- list()
+find.na <- list()
+
+#' @1.Trunciranje
+for (i in 1:ncol(test)) {
+ test[test < 0] <- NA
+ quantiles <- quantile(test[, i], .95, na.rm = TRUE)
+ # pripraviš vektor, s katerim najdeš katere vrednosti si zamenjal szs NA
+ find.na[[i]] <- which(test[, i] > quantiles)
+ # najprej nadomestiš vrednosti, ki so večje od thresholda z NA
+ # browser()
+ test[, i][find.na[[i]]] <- NA
+}
-# Main & Output ------------------------------------------------------
-#generate survey structure
-survey.str <- gen.survey.str(colnames(dsa)[-(1)], questions.file, items.file)
-if(any(!(is.data.table(survey.str)), nrow(survey.str)==0)){
- write(survey.str, paste0("modules/mod_uporabnost/results/usability_", ID, ".csv"))
-}else{
- #delete invisible variables and types: 5, 9, 22, 23, 25
- survey.str <- survey.str[visible==1 & !(tip %in% c(5, 9, 22, 23, 25)),]
+# We do not start with 0 because it is introduction page
+for(i in 1: ncol(test)) {
+ #' @2.Strani, ki so nagovori se pri izračunu indeksa ne upošteva
+ Ques.item <-
+ Ques.item[!grepl("nagovorLine=0", Ques.item$params), ]
+
+ #' @param 2: Set missing response time per page
+ # Split variables acording to page
+ var.per.page <- split(Ques.item, Ques.item$`ID PAGE`)
+ # Find number of variables per page
+ var.lab <- var.per.page[[i]][c("variable.x", "variable.y")]
+ # Only valid items
+ var.lab <- var.lab[var.lab > 1]
+
+ #' @3.Preverimo ali obstaja mešana stran
+ page.q <- rt %>% select(any_of(var.lab))
+ if(ncol(page.q) > 1) {
+ page.q <- page.q[, order(colnames(page.q))]
+ }
+ mesanaStranR[[i]] <-
+ data.frame(R=apply(page.q, 1, function(x)
+ ifelse(-2 %in% x & any(x > 0), "YES", "NO")))
+
+ #' @Vasja_2
+ #' Za te »mešane strani« nato pogledate vsakega respondenta
+ #' in greste skozi vse njegove iteme na tej strani:
+
+ #- Če ima item -2, ga spremenite v -7.
+
+ #- Če ima item -1, ga pusite pri miru
- #generate usability matrix
- m.all <- gen.usability.matrix(dsa, survey.str)
-
- if(any(!(is.data.table(m.all)), nrow(m.all)==0)){
- write(m.all, paste0("modules/mod_uporabnost/results/usability_", ID, ".csv"))
- }else{
- #calculate usability indexes
- m.final <- calc.usability(m.all, 3)
+ #- Če item ni mešan, ga pustite pri miru.
+ if (any(mesanaStranR[[i]] == "YES")) {
+ # -7
+ page.q[page.q == -2] <- -7
- #write to results
- write.csv2(m.final, paste0("modules/mod_uporabnost/results/usability_", ID, ".csv"), row.names = FALSE)
+ for (j in 1:nrow(test)) {
+
+ test[j, i] <-
+ ifelse(any(page.q[j,] > 0) &
+ any(page.q[j,] == -7), test[j, i] * sum(
+ subset(
+ Ques.item,
+ variable.x == colnames(page.q)[page.q[j,] != -7] |
+ variable.y == colnames(page.q)[page.q[j,] != -7],
+ select = c("cas1KA.x", "cas1KA.y")
+ )
+ ), test[j, i])
+
+ }
}
+ #' @5.Preverimo ali so na strnai manjkajole vrednosti
+ for (j in 1:nrow(test)) {
+ test[j, i] <-
+ suppressWarnings(ifelse(any(page.q[j,] == -1) &
+ !is.na(test[j, i]), test[j, i] / sum(
+ subset(
+ Ques.item,
+ variable.x == colnames(page.q)[page.q[j, ] == -1] |
+ variable.y == colnames(page.q)[page.q[j, ] == -1],
+ select = c("cas1KA.x", "cas1KA.y")
+ )
+ ), test[j, i]))
+ }
+
}
-#} \ No newline at end of file
+
+#' @6.Nato izračunamo indeks respondenta (Rti), ki je izračunan tako, da vsot
+#' o strani respondenta (brez -2) delimo z vsoto median taistih strani.
+# Mediana
+med.per.page <- apply(test, 2, function(x)
+ median(x, na.rm = TRUE))
+
+Rti <- NULL
+
+Rt_i <- lapply(seq_len(nrow(test)), function(y) {
+ indx <- which(!is.na(test[y, ]))
+ if( length(indx) != 0) {
+ Rti[y] <-
+ round(sum(test[y, ][indx], na.rm = TRUE) / sum(med.per.page[indx], na.rm = TRUE), 3)
+ } else {
+ Rti[y] <- NA
+ }
+})
+# Rti korak I
+Rt.i <- do.call(rbind, Rt_i)
+
+
+
+#' @8. Vrednosti, ki smo jih v prvem koraku truncirali imputiramo, in sicer so
+#' truncirane vrednosti zmnožek indeksa posameznega respondenta pomnožene z mediano
+#' strani oziroma Rti * mediana stranii
+
+imput.time <- test
+
+for(i in 1:length(med.per.page)) {
+ for (j in 1:nrow(test)) {
+ imput.time[find.na[[i]], i] <- Rt.i[find.na[[i]]] * med.per.page[i]
+ }
+}
+
+
+# Potem naredite novo datoteko z modificiranimi
+# PRAVIMI RT na stran ter dodamo imena stolpcev, ki
+# odražajo strani
+colnames(imput.time) <- paste("date_", 1:ncol(imput.time))
+# Zapišemo za prikaz v tabeli in prenos s strani uporabnika.
+write.csv2(imput.time, paste0("modules/mod_kakovost/results/rt_", ID, ".csv"), row.names = FALSE)
diff --git a/admin/survey/modules/mod_kakovost/class.SurveyKakovost.php b/admin/survey/modules/mod_kakovost/class.SurveyKakovost.php
index 711bdd7..ec86761 100644
--- a/admin/survey/modules/mod_kakovost/class.SurveyKakovost.php
+++ b/admin/survey/modules/mod_kakovost/class.SurveyKakovost.php
@@ -50,9 +50,7 @@ class SurveyKakovost{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
SurveyAnalysisHelper::getInstance()->Init($this->anketa);
@@ -377,7 +375,7 @@ class SurveyKakovost{
// Testiranje - izpis errorjev
if($admin_type == 0){
- echo '<div style="display:none;">';
+ echo '<div>';
echo 'Rscript '.$script;
//echo '<br />'.$out.'<br />';
var_dump($output);
@@ -392,7 +390,7 @@ class SurveyKakovost{
$result_folder = $site_path . RESULTS_FOLDER.'/';
- if (($handle = fopen($result_folder."usability_".$this->anketa.".csv", "r")) !== FALSE) {
+ if (($handle = fopen($result_folder."rt_".$this->anketa.".csv", "r")) !== FALSE) {
// Loop po vrsticah
$cnt = 0;
@@ -753,8 +751,8 @@ class SurveyKakovost{
}
// Pobrisemo CSV datoteko z rezultati
- if (file_exists($result_folder.'/usability_'.$this->anketa.'.csv')) {
- unlink($result_folder.'/usability_'.$this->anketa.'.csv');
+ if (file_exists($result_folder.'/rt_'.$this->anketa.'.csv')) {
+ unlink($result_folder.'/rt_'.$this->anketa.'.csv');
}
}
diff --git a/admin/survey/modules/mod_panel/class.SurveyPanel.php b/admin/survey/modules/mod_panel/class.SurveyPanel.php
index 30113ad..d3a8da6 100644
--- a/admin/survey/modules/mod_panel/class.SurveyPanel.php
+++ b/admin/survey/modules/mod_panel/class.SurveyPanel.php
@@ -20,16 +20,18 @@ class SurveyPanel{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
}
}
// Prikazemo nastavitve pri vklopu naprednega modula
public function displaySettings(){
- global $lang;
+ global $lang;
+ global $site_url;
+
+ $preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
+ $preklici_url = "'". $site_url . $preklici_url . "'";
echo '<fieldset><legend>'.$lang['settings'].'</legend>';
@@ -37,49 +39,78 @@ class SurveyPanel{
$row = $this->getPanelSettings();
// Url za preusmeritev
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_url'].':</span>';
- echo '<input type="text" size="40" name="url" id="url" value="'.$rowA['url'].'" />';
-
- echo '<br /><br />';
+ echo '<div class="setting_holder">';
+ echo '<p>'.$lang['srv_panel_url'].':</p>';
+ echo '<input type="text" class="large w300" name="url" id value="'.$rowA['url'].'" />';
+ echo '</div>';
// Ime parametra za id respondenta
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_user_id_name'].':</span>';
- echo '<input type="text" name="user_id_name" id="user_id_name" value="'.$row['user_id_name'].'" />';
-
- echo '<br /><br />';
+ echo '<div class="setting_holder">';
+ echo '<p>'.$lang['srv_panel_user_id_name'].':</p>';
+ echo '<input type="text" class="large w300" name="user_id_name" id="user_id_name" value="'.$row['user_id_name'].'" />';
+ echo '</div>';
// Ime parametra za status
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_status_name'].':</span>';
- echo '<input type="text" name="status_name" id="status_name" value="'.$row['status_name'].'" />';
-
- echo '<br />';
+ echo '<div class="setting_holder">';
+ echo '<p" >'.$lang['srv_panel_status_name'].':</p>';
+ echo '<input type="text" class="large w300" name="status_name" id="status_name" value="'.$row['status_name'].'" />';
+ echo '</div>';
// Privzeta vrednost status parametra
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_status_default'].':</span>';
- echo '<input type="text" name="status_default" id="status_default" value="'.$row['status_default'].'" />';
-
- echo '<br /><br />';
+ echo '<div class="setting_holder">';
+ echo '<p>'.$lang['srv_panel_status_default'].':</p>';
+ echo '<input type="text" class="large w300" name="status_default" id="status_default" value="'.$row['status_default'].'" />';
+ echo '</div>';
// Primer zacetnega url-ja
$link = SurveyInfo::getSurveyLink();
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_url1_example'].':</span>';
- echo $link.'?'.$row['user_id_name'].'=RESPONDENT_PANEL_ID';
-
- echo '<br /><br />';
+ echo '<div class="setting_holder">';
+ echo '<p>'.$lang['srv_panel_url1_example'].':</p>';
+ echo '<p class="gray">'.$link.'?'.$row['user_id_name'].'=RESPONDENT_PANEL_ID</p>';
+ echo '</div>';
// Primer končnega url-ja
- echo '<span class="nastavitveSpan1" >'.$lang['srv_panel_url2_example'].':</span>';
- echo $rowA['url'].'?'.$row['user_id_name'].'=RESPONDENT_PANEL_ID&'.$row['status_name'].'=PANEL_STATUS';
-
+ echo '<div class="setting_holder">';
+ echo '<p>'.$lang['srv_panel_url2_example'].':</p>';
+ // Dodaten pogoj, ce imamo slucajno ? ze v osnovnem delu urlja (da vracamo tudi recimo fiksen parameter)
+ if(strpos($rowA['url'], "?") !== false){
+ echo '<p class="gray">'.$rowA['url'].'&'.$row['user_id_name'].'=RESPONDENT_PANEL_ID&'.$row['status_name'].'=PANEL_STATUS</p>';
+ }
+ else{
+ echo '<p class="gray">'.$rowA['url'].'?'.$row['user_id_name'].'=RESPONDENT_PANEL_ID&'.$row['status_name'].'=PANEL_STATUS</p>';
+ }
+ echo '</div>';
+
+ // Ko se uporabnik vrne (zacne od zacetka/nadaljuje kjer je ostal)
+ echo '<div class="setting_holder">';
+ echo ' <span class="setting_title">' . $lang['srv_cookie_return'] . Help :: display('srv_cookie_return') . ':</span>';
+
+ echo ' <div class="setting_item">';
+ echo ' <input type="radio" name="cookie_return" value="0" id="cookie_return_0"' . ($rowA['cookie_return'] == 0 ? ' checked="checked"' : '') . ' />';
+ echo ' <label for="cookie_return_0">' . $lang['srv_cookie_return_start'] . '</label>';
+ echo ' </div>';
+ echo ' <div class="setting_item no-cookie">';
+ echo ' <input type="radio" name="cookie_return" value="1" id="cookie_return_1"' . ($rowA['cookie_return'] == 1 ? ' checked="checked"' : '') . ' />';
+ echo ' <label for="cookie_return_1">' . $lang['srv_cookie_return_middle'] . '</label>';
+ echo ' </div>';
+ echo '</div>';
+
+ // Nadaljevanje kasneje
+ echo '<div class="setting_holder">';
+ echo ' <input type="checkbox" id="continue_later" name="continue_later" value="1" '.($rowA['continue_later'] == 1 ? ' checked="checked"' : '').'>';
+ echo ' <label for="continue_later">'.$lang['srv_show_continue_later'].' '.Help::display('srv_continue_later_setting').'</label> ';
+ echo '</div>';
+
echo '</fieldset>';
-
+
// Gumb shrani
- echo '<br class="clr" />';
- echo '<span class="floatLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange btn_savesettings" href="#" onclick="panel_save_settings(); return false;"><span>';
- echo $lang['edit1337'] . '</span></a></div></span>';
- echo '<div class="clr"></div>';
+ echo '<div class="button_holder">';
+ echo '<button class="medium white-blue" onClick="window.location='.$preklici_url.'; return false;">'.$lang['edit1338'].'</button>';
+ echo '<button class="medium blue" onclick="panel_save_settings(); return false;">'.$lang['edit1337'].'</button>';
+ echo '</div>';
+
echo '<div id="success_save"></div>';
}
@@ -90,8 +121,8 @@ class SurveyPanel{
// Vstavimo vrstico z nastavitvami
$sql1 = sisplet_query("INSERT INTO srv_panel_settings (ank_id) VALUES ('".$this->anketa."')");
- // Uredimo nastavitve zakljucka
- $sql2 = sisplet_query("UPDATE srv_anketa SET concl_link='1' WHERE id='".$this->anketa."'");
+ // Uredimo nastavitve zakljucka, deaktiviramo piskotke in nastavimo nastavitev za nadaljevanje, da nadaljuje kjer je ostal
+ $sql2 = sisplet_query("UPDATE srv_anketa SET concl_link='1', cookie='-1', cookie_return='1' WHERE id='".$this->anketa."'");
if (!$sql2) echo mysqli_error($GLOBALS['connect_db']);
// Ustvarimo sistemsko skrito vprasanje za panel id respondenta
@@ -160,6 +191,15 @@ class SurveyPanel{
$sqlS = sisplet_query("UPDATE srv_spremenljivka s, srv_grupa g
SET s.variable='".$user_id_name."'
WHERE s.variable='".$user_id_name_old."' AND s.gru_id=g.id AND g.ank_id='".$this->anketa."'");
+
+
+ // Shranimo kje nadaljuje in ce ima opcijo za nadaljevanje kasneje
+ if (isset($_POST['cookie_return']) && isset($_POST['continue_later']))
+ $sql = sisplet_query("UPDATE srv_anketa SET cookie_return='".$_POST['cookie_return']."', continue_later='".$_POST['continue_later']."' WHERE id='".$this->anketa."'");
+
+
+ // vsilimo refresh podatkov
+ SurveyInfo :: getInstance()->resetSurveyData();
$this->displaySettings();
}
diff --git a/admin/survey/modules/mod_quiz/class.SurveyQuiz.php b/admin/survey/modules/mod_quiz/class.SurveyQuiz.php
index bb28d76..12e014d 100644
--- a/admin/survey/modules/mod_quiz/class.SurveyQuiz.php
+++ b/admin/survey/modules/mod_quiz/class.SurveyQuiz.php
@@ -25,45 +25,56 @@ class SurveyQuiz{
// Nastavitve kviza (prikaz rezultatov, grafa...)
public function displaySettings(){
global $lang;
-
-
- // Posebne opcije in navodile za anketo kviz
- /*echo '<fieldset><legend>'.$lang['srv_kviz_navodila_1'].'</legend>';
- echo '<p>'.$lang['srv_kviz_navodila_2'].'</p>';
- echo '<p>'.$lang['srv_kviz_navodila_3'].'</p>';
- echo '<p>'.$lang['srv_kviz_navodila_4'].'</p>';
- echo '<p>'.$lang['srv_kviz_navodila_6'].' '.Help::display('DataPiping').'</p>';
- echo '<p>'.$lang['srv_kviz_navodila_7'].'</p>';
- echo '</fieldset>';*/
+ global $site_url;
+
+ $preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
+ $preklici_url = "'". $site_url . $preklici_url . "'";
-
+
echo '<fieldset><legend>'.$lang['settings'].'</legend>';
// Pridobimo trenutne nastavitve
- $settings = $this->getSettings();
-
+ $settings = $this->getSettings();
+
// Prikaz rezultatov v zakljucku
- echo '<span class="nastavitveSpan1" >'.$lang['srv_quiz_results'].':</span>';
- echo '<label for="quiz_results_0"><input type="radio" name="quiz_results" id="quiz_results_0" value="0" '.(($settings['results'] == 0) ? ' checked="checked" ' : '').' />'.$lang['no1'].'</label>';
- echo '<label for="quiz_results_1"><input type="radio" name="quiz_results" id="quiz_results_1" value="1" '.(($settings['results'] == 1) ? ' checked="checked" ' : '').' />'.$lang['yes'].'</label>';
-
- echo '<br />';
+
+ echo '<div class="setting_holder">';
+ echo '<span class="setting_title">'.$lang['srv_quiz_results'].':</span>';
+
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="quiz_results" id="quiz_results_0" value="0" '.(($settings['results'] == 0) ? ' checked="checked" ' : '').' />';
+ echo '<label for="quiz_results_0">'.$lang['no1'].'</label>';
+ echo '</div>';
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="quiz_results" id="quiz_results_1" value="1" '.(($settings['results'] == 1) ? ' checked="checked" ' : '').' />';
+ echo '<label for="quiz_results_1">'.$lang['yes'].'</label>';
+ echo '</div>';
+
+ echo '</div>';
// Prikaz grafa rezultatov v zakljucku
- echo '<span class="nastavitveSpan1" >'.$lang['srv_quiz_results_chart'].':</span>';
- echo '<label for="quiz_results_chart_0"><input type="radio" name="quiz_results_chart" id="quiz_results_chart_0" value="0" '.(($settings['results_chart'] == 0) ? ' checked="checked" ' : '').' />'.$lang['no1'].'</label>';
- echo '<label for="quiz_results_chart_1"><input type="radio" name="quiz_results_chart" id="quiz_results_chart_1" value="1" '.(($settings['results_chart'] == 1) ? ' checked="checked" ' : '').' />'.$lang['yes'].'</label>';
-
- echo '<br /><br />';
+ echo '<div class="setting_holder">';
+ echo '<span class="setting_title">'.$lang['srv_quiz_results_chart'].':</span>';
+
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="quiz_results_chart" id="quiz_results_chart_0" value="0" '.(($settings['results_chart'] == 0) ? ' checked="checked" ' : '').' />';
+ echo '<label for="quiz_results_chart_0">'.$lang['no1'].'</label>';
+ echo '</div>';
+ echo '<div class="setting_item">';
+ echo '<input type="radio" name="quiz_results_chart" id="quiz_results_chart_1" value="1" '.(($settings['results_chart'] == 1) ? ' checked="checked" ' : '').' />';
+ echo '<label for="quiz_results_chart_1">'.$lang['yes'].'</label>';
+ echo '</div>';
+
+ echo '</div>';
echo '</fieldset>';
-
// Gumb shrani
- echo '<br class="clr" />';
- echo '<span class="floatLeft spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange btn_savesettings" href="#" onclick="quiz_save_settings(); return false;"><span>';
- echo $lang['edit1337'] . '</span></a></div></span>';
- echo '<div class="clr"></div>';
+ echo '<div class="button_holder">';
+ echo '<button class="medium white-blue" onClick="window.location='.$preklici_url.'; return false;">'.$lang['edit1338'].'</button>';
+ echo '<button class="medium blue" onclick="quiz_save_settings(); return false;">'.$lang['edit1337'].'</button>';
+ echo '</div>';
+
echo '<div id="success_save"></div>';
}
diff --git a/admin/survey/modules/mod_uporabnost/class.SurveyUporabnost.php b/admin/survey/modules/mod_uporabnost/class.SurveyUporabnost.php
index 9da5bcf..44eae0a 100644
--- a/admin/survey/modules/mod_uporabnost/class.SurveyUporabnost.php
+++ b/admin/survey/modules/mod_uporabnost/class.SurveyUporabnost.php
@@ -50,9 +50,7 @@ class SurveyUporabnost{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
SurveyAnalysisHelper::getInstance()->Init($this->anketa);
diff --git a/admin/survey/modules/mod_vizualizacija/class.SurveyVizualizacija.php b/admin/survey/modules/mod_vizualizacija/class.SurveyVizualizacija.php
index 1c9884b..c39645c 100644
--- a/admin/survey/modules/mod_vizualizacija/class.SurveyVizualizacija.php
+++ b/admin/survey/modules/mod_vizualizacija/class.SurveyVizualizacija.php
@@ -20,9 +20,7 @@ class SurveyVizualizacija{
# polovimo vrsto tabel (aktivne / neaktivne)
SurveyInfo :: getInstance()->SurveyInit($this->anketa);
- if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) {
- $this->db_table = '_active';
- }
+ $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString();
}
}
@@ -135,10 +133,11 @@ class SurveyVizualizacija{
'BOMchar' => "\xEF\xBB\xBF");
# dodamo boomchar za utf-8
fwrite($fd2, $convertTypes[$convertType]['BOMchar']);
-
+ $output1='';
+ $output2='';
# naredimo header row
foreach ($_HEADERS AS $spid => $spremenljivka) {
- if (count($spremenljivka['grids']) > 0) {
+ if (isset($spremenljivka['grids'])&&count($spremenljivka['grids']) > 0) {
foreach ($spremenljivka['grids'] AS $gid => $grid) {
foreach ($grid['variables'] AS $vid => $variable ){
if ($spremenljivka['tip'] !== 'sm' && !($variable['variable'] == 'uid' && $variable['naslov'] == 'User ID')){
diff --git a/admin/survey/modules/mod_voting/class.SurveyVoting.php b/admin/survey/modules/mod_voting/class.SurveyVoting.php
index 98ef5fb..8f0dd35 100644
--- a/admin/survey/modules/mod_voting/class.SurveyVoting.php
+++ b/admin/survey/modules/mod_voting/class.SurveyVoting.php
@@ -47,15 +47,13 @@ class SurveyVoting{
echo '<fieldset><legend>'.$lang['settings'].'</legend>';
- echo '<br>';
-
- echo $lang['srv_voting_edit1'].' <a href="index.php?anketa='.$this->anketa.'&amp;a='.A_BRANCHING.'"><span class="bold">'.$lang['srv_voting_edit2'].'</span></a>.';
-
- echo '<br><br>';
+ echo ' <p class="bottom16">';
+ echo $lang['srv_voting_edit1'].' <a href="index.php?anketa='.$this->anketa.'&amp;a='.A_BRANCHING.'">'.$lang['srv_voting_edit2'].'</a>.';
+ echo ' </p>';
- echo $lang['srv_voting_invitations1'].' <a href="index.php?anketa='.$this->anketa.'&amp;a='.A_INVITATIONS.'"><span class="bold">'.$lang['srv_voting_invitations2'].'</span></a>.';
-
- echo '<br><br>';
+ echo ' <p>';
+ echo $lang['srv_voting_invitations1'].' <a href="index.php?anketa='.$this->anketa.'&amp;a='.A_INVITATIONS.'">'.$lang['srv_voting_invitations2'].'</a>.';
+ echo ' </p>';
echo '</fieldset>';
}