Initial commit of old code

This commit is contained in:
Matteo Gheza 2020-04-27 23:27:39 +02:00
parent 59a3fe9fa0
commit dc4850eb62
137 changed files with 5156 additions and 5 deletions

506
.gitignore vendored
View File

@ -1,6 +1,502 @@
composer.phar
/vendor/
# Created by https://www.gitignore.io/api/vim,phpunit,phpstorm+all,visualstudio,visualstudiocode
# Edit at https://www.gitignore.io/?templates=vim,phpunit,phpstorm+all,visualstudio,visualstudiocode
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
# composer.lock
### PhpStorm+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### PhpStorm+all Patch ###
# Ignores the whole .idea folder and all .iml files
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
.idea/
# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
*.iml
modules.xml
.idea/misc.xml
*.ipr
# Sonarlint plugin
.idea/sonarlint
### PHPUnit ###
# Covers PHPUnit
# Reference: https://phpunit.de/
# Generated files
.phpunit.result.cache
# PHPUnit
/app/phpunit.xml
phpunit.xml
# Build data
/build/
### Vim ###
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
# Coc configuration directory
.vim
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# End of https://www.gitignore.io/api/vim,phpunit,composer,phpstorm+all,visualstudio,visualstudiocode
### Composer ###
composer.phar
/server/vendor/
*.zip
/server/error-log/*
!/server/error-log/index.html
config.php
*password*

4
server/anagrafica.php Normal file
View File

@ -0,0 +1,4 @@
<?php
require_once 'core.php';
loadtemplate('anagrafica.html', ['titolo' => 'Anagrafica utente', 'dacontrollare' => ucwords(str_replace('_', ' ', urldecode($_GET['utente'])))]);
?>

35
server/assistenza.php Normal file
View File

@ -0,0 +1,35 @@
<?php
require_once 'core.php';
$time = time();
$nome = $utente->nome(true);
$admin = $utente->admin();
$phpsessid = $_COOKIE['PHPSESSID'];
if (isset($_COOKIE['chat']) && $_COOKIE['chat'] == true) {
echo "<!-- Smartsupp Live Chat script -->
<script type='text/javascript'>
var _smartsupp = _smartsupp || {};
_smartsupp.key = '7e1d39b8d1a7e234c56a2da730e9ce5b95508dbc';
_smartsupp.ratingEnabled = true; // default value : false
_smartsupp.ratingComment = true; // default value : false
window.smartsupp||(function(d) {
var s,c,o=smartsupp=function(){ o._.push(arguments)};o._=[];
s=d.getElementsByTagName('script')[0];c=d.createElement('script');
c.type='text/javascript';c.charset='utf-8';c.async=true;
c.src='https://www.smartsuppchat.com/loader.js?';s.parentNode.insertBefore(c,s);
})(document);
</script>
<script>
// basic info
smartsupp('email', '');
smartsupp('name', '{$nome}');
smartsupp('recording:disable', false);
// extra info
smartsupp('variables', {
Nome: { label: 'Nome utente ', value: '{$nome}' },
Admin: { label: 'Admin', value: '{$admin}' },
SessionID: { label: 'Codice sessione', value: '{$phpsessid}' },
Timestamp: { label: 'Timestamp', value: '{$time}'},
});
</script>";
}

21
server/composer.json Normal file
View File

@ -0,0 +1,21 @@
{
"name": "matteo/allerta",
"description": "Un software di allertamento per i vvf",
"type": "project",
"require": {
"cmfcmf/openweathermap-php-api": "dev-master",
"doctrine/lexer": "^1.3@dev",
"egulias/email-validator": "^2.1@dev",
"fzaninotto/faker": "^1.9@dev",
"twig/twig": "3.x-dev",
"tracy/tracy": "^2.7@dev"
},
"license": "GPL-3.0-or-later",
"authors": [
{
"name": "Matteo Gheza",
"email": "matteo@matteogheza.it"
}
],
"minimum-stability": "dev"
}

37
server/config-sample.php Normal file
View File

@ -0,0 +1,37 @@
<?php
// ** Database settings ** //
/* The name of the database for Allerta-vvf */
define( 'DB_NAME', 'allerta' );
/* Database username */
define( 'DB_USER', 'root' );
/* Database password */
define( 'DB_PASSWORD', '' );
/* Database hostname */
define( 'DB_HOST', 'localhost' );
// ** Url settings ** //
/* The url that you use to reach Allerta */
define( 'WEB_URL', 'http://localhost/allerta-vvf/server/' );
/* Is the server under Cloudflare® */
/* Cloudflare is a registered trademark of Cloudflare, Inc. */
define( 'SERVER_UNDER_CF', true );
// ** Behavior and names ** //
/* Do you want to add every denied access info to database? */
define( 'INTRUSION_SAVE', true );
/* Do you want to add every denied access info to database? */
define( 'INTRUSION_SAVE_INFO', true );
/* Do you want to enbale chat with IT Manager support? */
define( 'ENABLE_TECHNICAL_SUPPORT', true );
/* Leave blank if 'ENABLE_TECHNICAL_SUPPORT' is false, else go to https://www.smartsuppchat.com */
define( 'TECHNICAL_SUPPORT_KEY', '7e1d39b8d1a7e234c56a2da730e9ce5b95508dbc' );
/* Insert your organization name */
define( 'DISTACCAMENTO', 'Assoc VVF Vol Darfo' );

27
server/core.php Normal file
View File

@ -0,0 +1,27 @@
<?php
require_once 'secure.php';
init_class();
try {
$loader = new \Twig\Loader\FilesystemLoader('templates');
} catch (Exception $e) {
$loader = new \Twig\Loader\FilesystemLoader('../templates');
}
$twig = new \Twig\Environment($loader, [
//'cache' => 'compilation'
]);
$template = NULL;
function loadtemplate($templatename, $data, $richiedilogin=true){
global $utente, $twig, $template;
if($richiedilogin){
$utente->richiedilogin();
}
$data['distaccamento'] = DISTACCAMENTO;
$data['urlsoftware'] = WEB_URL;
$data['utente'] = $utente->info();
$data['enable_technical_support'] = ENABLE_TECHNICAL_SUPPORT;
$data['technical_support_key'] = TECHNICAL_SUPPORT_KEY;
$data['technical_support_open'] = isset($_COOKIE["chat"]);
$template = $twig->load($templatename);
echo $template->render($data);
}

View File

@ -0,0 +1 @@
nothing (see this directory in file explorer or delete this file)

3
server/esercitazioni.php Normal file
View File

@ -0,0 +1,3 @@
<?php
require_once 'core.php';
loadtemplate('esercitazioni.html', ['titolo' => 'Esercitazioni']);

17
server/grafici.php Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<title>Sito in Manutenzione</title>
<meta charset="UTF-8">
<style>
h1 { font-size: 50px; }
body { text-align:center; font: 20px Helvetica, sans-serif; color: #333; }
</style>
</head>
<body>
<h1>Pagina in Manutenzione</h1>
<p>Scusaci per l'incoveniente. Stiamo lavorando per migliorare il servizio.</p>
<p>Saremo di nuovo attivi entro breve. Puoi utilizzare il resto del sito</p>
<p style="margin-top: 40px; font-size: 14px; color: #666"><em>il Webmaster</em></p>
</body>
</html>

151
server/index.php Normal file
View File

@ -0,0 +1,151 @@
<?php
require_once 'core.php';
if($utente->autenticato()){
$tools->redirect("lista.php");
}
$errore = false;
if(isset($_POST['nome']) & isset($_POST['password'])){
$login = $utente->login($_POST['nome'], md5($_POST['password']));
//var_dump($login); exit;
if($login===true){
$tools->redirect("lista.php");
} else {
$errore = $login;
}
}
loadtemplate('index.html', ['errore' => $errore, 'titolo' => 'Login', 'distaccamento' => 'VVF Darfo', 'urlsoftware' => '', 'utente' => $utente->info(false)], false);
/*
if(isset($_SESSION['accesso'])){
if($_SESSION['accesso'] == "loggato"){
if($_SESSION['admin'] == 1){
$tools->redirect("lista_admin.php");
} else {
$tools->redirect("lista.php");
}
}
}
if(isset($_POST['nome']) & isset($_POST['password'])){
$nome = $_POST['nome'];
$password = md5($_POST['password']);
$sql = "SELECT * FROM vigili WHERE nome='$nome' AND password='$password';";
if ($result=mysqli_query($connessione, $sql))
{
// Return the number of rows in result set
$rowcount=mysqli_num_rows($result);
if($rowcount > 0){
$_SESSION['accesso'] = "loggato";
while ($row = mysqli_fetch_array($result)){
$_SESSION['admin'] = $row['caposquadra'];
$_SESSION['nome'] = $row['nome'];
}
$connesso = isset($_POST['connesso']) ? $_POST['connesso'] : '0';
if($connesso == 1){
$cookie = bin2hex(implode("-", array($_SESSION['admin'], $_SESSION['nome'])));
//$cookie = "ciao";
setcookie("l53o453g35i34434n", $cookie, time() + 108000);
}
if($_SESSION['admin'] == 1){
$tools->redirect("lista_admin.php");
} else {
$tools->redirect("lista.php");
}
} else {
$err = <<<HTML
<div class='text-center' id="err">
<script>
var sound = new Howl({
src: ['non_hai_detto_la_parola_magica.mp3'],
autoplay: true,
volume: 0.9,
onend: function() {
console.log('Finito');
}
});
sound.play();
//var myVar = setInterval(function(){ sound.play(); }, 10000);
</script>
<script>
$("#err").delay(5000).fadeOut(300);
</script>
Password non valida
<img src='./images/nonono.gif'></img>
</div>
HTML;
}
// Free result set
mysqli_free_result($result);
}
} else if(isset($_COOKIE['l53o453g35i34434n'])){
$cookie = pack("H*",$_COOKIE['l53o453g35i34434n']);
$cookie = explode("-", $cookie);
if(is_array($cookie)){
$_SESSION['accesso'] = "loggato";
$_SESSION['admin'] = $cookie[0];
$_SESSION['nome'] = $cookie[1];
if($_SESSION['admin'] == 1){
redirect("lista_admin.php");
} else {
redirect("lista.php");
}
}
}
?>
<!DOCTYPE html>
<html lang="it">
<head>
<?php head(); ?>
<style>
center {
text-align: center;
}
#modulogin {
margin-top: 60px;
padding: 30px 0 30px 0;
width: 90%;
height: auto;
background: #fafafa;
border-radius: 15px;
box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
}
input::placeholder {
color: lightgray;
}
</style>
</head>
<body>
<?php $tools->body() ?>
<?php if(!is_null($err)) echo $err; ?>
<div class="container text-center" id="modulogin">
<form method="post">
<img alt="VVF" src="./risorse/images/logo.jpg" class="img-resposive"><br><br><br>
<input type="text" name="nome" placeholder="Nome" required><br><br>
<input type="password" name="password" placeholder="Password" required><br><br>
<input type="checkbox" name="connesso" value='1' id="connesso" checked><label for='connesso'>Rimani Connesso</label><br>
<input type="submit" name="login" class="btn btn-lg btn-success" value="Accedi">
</form>
</div>
<br>
<div id="panico" style='display: none' class="text-center"><i class="fa fa-exclamation-triangle"></i><br>
<p>Se hai premuto “Accedi” ma non è successo niente premi <a href=lista_admin.php>qui (admin)</a> o <a href=lista.php>qui (non-admin)</a></p></div>
<br><br>
<a hidden class="text-center" href="https://www.abuseipdb.com/user/30576" title="AbuseIPDB is an IP address blacklist for webmasters and sysadmins to report IP addresses engaging in abusive behavior on their networks" alt="AbuseIPDB Contributor Badge">
<img class="text-center" src="https://www.abuseipdb.com/contributor/30576.svg" style="width: 376px;">
</a>
<?php
//debug
//print_r($_SESSION);
?>
</body>
</html>
*/

4
server/interventi.php Normal file
View File

@ -0,0 +1,4 @@
<?php
require_once 'core.php';
loadtemplate('interventi.html', ['titolo' => 'Interventi', 'distaccamento' => 'VVF Darfo', 'urlsoftware' => '', 'utente' => $utente->info()]);
?>

3
server/lista.php Normal file
View File

@ -0,0 +1,3 @@
<?php
require_once 'core.php';
loadtemplate('lista.html', ['titolo' => 'Disponibilità']);

3
server/log.php Normal file
View File

@ -0,0 +1,3 @@
<?php
require_once 'core.php';
loadtemplate('log.html', ['titolo' => 'Log', 'distaccamento' => 'VVF Darfo', 'urlsoftware' => '', 'utente' => $utente->info()]);

6
server/logout.php Normal file
View File

@ -0,0 +1,6 @@
<?php
include("secure.php");
init_class();
$utente->logout();
$tools->redirect("index.php");
?>

106
server/minuti_dispo.php Normal file
View File

@ -0,0 +1,106 @@
<?php
$day = 19;
$ore = 1;
$start = true;
$minuti = 5;
setlocale(LC_TIME, 'ita', 'it_IT');
echo date('i') . " - " . date('H') . " - " . date("d") . "<br>";
include_once 'secure.php';
init_class();
function resetminuti(){
global $vigili_tot;
global $database;
$sql = "SELECT * FROM vigili"; // Pesco i dati della tabella e li ordino in base alla disponibilità
$risultato = $database->esegui($sql, true);
$disp = array();
foreach($risultato as $row){
$disp[$row['nome']] = $row['minuti_dispo'];
}
print("<br><pre>" . print_r($disp, true) . "</pre><br>");
// pre-5.3:
$list = implode(', ', array_map(
create_function('$k,$v', 'return "$k => $v";'),
array_keys($disp),
array_values($disp)
));
$a1 = implode(" - ", array_keys($disp));
$a2 = implode(" - ", array_values($disp));
echo "<p style='color:red;'>" . $list . "</p><br><p style='color:green;'>" . $a1 . "</p><br><p style='color:blue;'>" . $a2 . "</p><br>";
$mese = strftime("%B");
$anno = strftime("%Y");
echo $mese . " - " . $anno . "<br>";
$sql = "INSERT INTO `minuti` (`id`, `mese`, `anno`, `list`, `a1`, `a2`) VALUES (NULL, '$mese', '$anno', '$list', '$a1', '$a2')"; // Pesco i dati della tabella e li ordino in base alla disponibilità
$risultato = $database->esegui($sql);
foreach($risultato as $row){
$sql = "UPDATE vigili SET minuti_dispo = '0' WHERE nome ='" . $utente . "'";
$risultato = $database->esegui($sql);
echo "reset effettuato: " . $utente . "<br>";
}
if($risultato){
echo <<<EOT
<img src='https://media1.tenor.com/images/768840dae0d91bbc9f215d9255af8170/tenor.gif?itemid=8706004'></img>
<img src='https://media1.tenor.com/images/4d41eec52c39344dd87e1022cc0eb98c/tenor.gif?itemid=4572479'></img>
<img src='https://thumbs.gfycat.com/FinishedSnarlingAfricanelephant-max-1mb.gif'></img>
EOT;
}
}
//Per quando dovrò (forse) reinserire i valori in tabella o generare un array
function array_combine_($keys, $values){
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}
//print("<br><pre>" . print_r(array_combine_(explode(" - ", $a1), explode(" - ", $a2)), true) . "</pre><br>");
$sql = "SELECT * FROM vigili ORDER BY disponibile DESC, caposquadra DESC, interventi ASC, nome ASC"; // Pesco i dati della tabella e li ordino in base alla disponibilità
$risultato = $database->esegui($sql, true);
$vigili_tot = array();
$incremento = array();
$minuti_dispo_old = array();
foreach($risultato as $row){
$vigili_tot[] = $row['nome'];
if($row['disponibile'] == "1"){
$incremento[] = $row['nome'];
$minuti_dispo_old[] = $row['minuti_dispo'];
}
}
print_r($incremento);
if($start && isset($_POST['cron']) && $_POST['cron'] == "cron-job"){
if($start && isset($_POST['reset']) && $_POST['reset'] == "cron-job"){
resetminuti();
}
foreach($incremento as $key=>$utente){
$minuti_dispo = $minuti_dispo_old[$key] + $minuti;
$sql = "UPDATE vigili SET minuti_dispo = '" . $minuti_dispo . "' WHERE nome ='" . $utente . "'";
$risultato = $database->esegui($sql, true);
}
$sql = "SELECT * FROM vigili ORDER BY disponibile DESC, caposquadra DESC, interventi ASC, nome ASC"; // Pesco i dati della tabella e li ordino in base alla disponibilità
$risultato = $database->esegui($sql, true);
$minuti_dispo = array();
foreach($risultato as $row){
if($row['disponibile'] == "1"){
$minuti_dispo[] = $row['minuti_dispo'];
}
}
echo "<br>";
print_r($minuti_dispo);
}

View File

@ -0,0 +1,58 @@
<?php
require_once 'core.php';
if($tools->validazione_form('$post-mod', true, "aggiungi")) {
bdump("per poco...");
if($tools->validazione_form(['$post-data', '$post-codice', '$post-uscita', '$post-rientro', '$post-capo', '$post-luogo', '$post-note', '$post-tipo', '$post-token'])) {
if($_POST["token"] == $_SESSION['token']){
bdump("aggiungo intervento");
$database->aggiungi_intervento($_POST["data"], $_POST["codice"], $_POST["uscita"], $_POST["rientro"], $_POST["capo"], $tools->extract_unique($_POST["autisti"]), $tools->extract_unique($_POST["personale"]), $_POST["luogo"], $_POST["note"], $_POST["tipo"], $tools->extract_unique([$_POST["capo"],$_POST["autisti"],$_POST["personale"]]), $utente->nome());
} else {
$tools->redirect("nonfareilfurbo.php");
}
}
} elseif($tools->validazione_form('$post-mod', true, "modifica")) {
bdump("per poco...");
if($tools->validazione_form(['$post-id', '$post-data', '$post-codice', '$post-uscita', '$post-rientro', '$post-capo', '$post-luogo', '$post-note', '$post-tipo', '$post-token'])) {
if($_POST["token"] == $_SESSION['token']){
bdump("modifico intervento");
} else {
$tools->redirect("nonfareilfurbo.php");
}
}
} elseif($tools->validazione_form('$post-mod', true, "elimina")) {
bdump("rimuovo intervento");
if($tools->validazione_form(['$post-id', '$post-token'])) {
if($_POST["token"] == $_SESSION['token']){
bdump("rimuovo intervento");
} else {
$tools->redirect("nonfareilfurbo.php");
}
}
} else {
$length = 32;
unset($_SESSION['token']);
$_SESSION['token'] = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, $length) . "-bfwp64GGbdm";
// 1 hour = 60 seconds * 60 minutes = 3600
$_SESSION['token-expire'] = time() + 3600;
$personale = $database->esegui("SELECT * FROM vigili ORDER BY nome ASC", true); // Pesco i dati della tabella e li ordino in base al nome
$tipologie = $database->esegui("SELECT nome FROM tipo ORDER BY nome ASC", true); // Pesco le tipologie della tabella
$modalità = (isset($_GET["aggiungi"])) ? "aggiungi" : ((isset($_GET["modifica"])) ? "modifica" : ((isset($_GET["elimina"])) ? "elimina" : "aggiungi"));
bdump($modalità, "modalità");
bdump($tipologie, "tipologie");
bdump($personale, "personale");
$id = "";
if(isset($_GET["id"])){
$id = $_GET["id"];
bdump($database->esiste("interventi", $id));
}
if($modalità=="modifica" || $modalità=="elimina"){
if(empty($id)){
$tools->redirect("nonfareilfurbo.php");
} elseif (!$database->esiste("interventi", $id)){
$tools->redirect("nonfareilfurbo.php");
}
}
loadtemplate('modifica_intervento.html', ['intervento' => array('id' => $id, 'token' => $_SESSION['token'], 'modalità' => $modalità, 'personale' => $personale, 'tipologie' => $tipologie), 'titolo' => ucfirst($modalità) . ' intervento', 'distaccamento' => 'VVF Darfo', 'urlsoftware' => '', 'utente' => $utente->info()]);
bdump($_SESSION['token'], "token");
}
?>

26
server/nonfareilfurbo.php Normal file
View File

@ -0,0 +1,26 @@
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.3/howler.min.js" integrity="sha256-/Q4ZPy6sMbk627wHxuaWSIXS1y7D2KnMhsm/+od7ptE=" crossorigin="anonymous"></script>
</head>
<body>
<div class='text-center' id="err">
<script>
var sound = new Howl({
src: ['risorse/musiche/non_hai_detto_la_parola_magica.mp3'],
autoplay: true,
volume: 0.9,
onend: function() {
console.log('Finito');
}
});
sound.play();
//var myVar = setInterval(function(){ sound.play(); }, 10000);
</script>
<script>
//$("#err").delay(5000).fadeOut(300);
</script>
Possibile attività di hacking del software rilevata
<img src='./risorse/images/nonono.gif'></img>
</div>
<h1>Abbiamo rilevato un' attività sospetta provenire dal tuo dispositivo o dalla tua rete.<br>Se non stavi facendo niente di brutto, e ritieni che questo sia un errore, la<br>preghiamo di contattare l'assistenza.</h1>
</body>

0
server/offline.html Normal file
View File

41
server/online.php Normal file
View File

@ -0,0 +1,41 @@
<?php
include_once 'secure.php';
init_class();
if(isset($_SESSION)){
$user = $_SESSION['nome'];
} else {
$user = "test";
}
$string = <<<EOT
<script>
ciao = 0;
function onLine() {
ciao = ciao + 1;
console.log(ciao);
console.log("onLine");
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://62.171.139.86/allerta/online_check.php?utente=$user');
xhr.onload = function () {
if (xhr.status === 200) {
console.log('Text ' + xhr.responseText);
} else {
console.log('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send();
}
function offLine() {
console.log("offLine");
}
function check() {
console.log("dfcghfhdt");
var i = new Image();
i.onload = onLine;
i.onerror = offLine;
i.src = 'https://www.google-analytics.com/__utm.gif';
}
</script>
EOT;
echo($string);

22
server/online_check.php Normal file
View File

@ -0,0 +1,22 @@
<?php
error_reporting(1);
$start = true;
$minuti = date('i');
include_once 'secure.php';
init_class();
$sql = "SELECT nome, online, online_time FROM vigili";
$risultato = $database->esegui($sql, true);
var_dump($risultato);
foreach($risultato as $row){
print("<pre>" . print_r($row, true) . "</pre>");
}
if(isset($_GET) && !is_null($_GET['utente'])){
$sql = "UPDATE vigili SET online = '1', online_time = '$minuti' WHERE nome = '" . urldecode($_GET['utente']) . "'";
$risultato = $database->esegui($sql, true);
var_dump($risultato);
}
?>

View File

@ -0,0 +1,14 @@
<?php
error_reporting(1);
$start = true;
$minuti = date('i');
include_once 'secure.php';
init_class();
$minuti = date('i');
$sql = "UPDATE vigili SET online='0', online_time='0' WHERE online_time < '$minuti';";
#$sql = "UPDATE vigili SET online='0', online_time='0';";
$risultato = $database->esegui($sql);
echo $sql;
?>

3
server/profilo.php Normal file
View File

@ -0,0 +1,3 @@
<?php
require_once 'core.php';
loadtemplate('profilo.html', ['titolo' => 'Pagina profilo', 'distaccamento' => 'VVF Darfo', 'urlsoftware' => '', 'utente' => $utente->info()]);

View File

@ -0,0 +1,12 @@
<?php
include_once '../../secure.php';
init_class();
$utente->richiedilogin();
if(isset($_POST["nomeutenteattivato"]) && isset($_POST["nomeutenteattivatore"]) && $_POST["dispo"] == 1) {
$risultato = $database->esegui("UPDATE vigili SET disponibile = 1 WHERE nome = :nome", false, [":nome" => $_POST["nomeutenteattivato"]]);
$utente->log("Attivazione disponibilita'", $_POST["nomeutenteattivato"], $_POST["nomeutenteattivatore"], date("d/m/Y"), date("H:i.s"));
} else if(isset($_POST["nomeutenteattivato"]) && isset($_POST["nomeutenteattivatore"]) && $_POST["dispo"] == 0){
$risultato = $database->esegui("UPDATE vigili SET disponibile = 0 WHERE nome = :nome", false, [":nome" => $_POST["nomeutenteattivato"]]);
$utente->log("Rimozione disponibilita'", $_POST["nomeutenteattivato"], $_POST["nomeutenteattivatore"], date("d/m/Y"), date("H:i.s"));
}
?>

View File

@ -0,0 +1,332 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
$risultato = $database->esegui('SELECT * FROM vigili WHERE id = :id', true, array(":id" => $_GET['utente'])); // Pesco i dati della tabella
$whitelist = $utente->whitelist();
?>
<style>/*
* Bootstrap v2.2.1
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333;
background-color: #fff;
}
a {
color: #08c;
text-decoration: none;
}
a:hover {
color: #005580;
text-decoration: underline;
}
.row {
margin-left: -20px;
*zoom: 1;
}
.row:before,
.row:after {
display: table;
content: "";
line-height: 0;
}
.row:after {
clear: both;
}
[class*="span"] {
float: left;
min-height: 1px;
margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
width: 940px;
}
.span12 {
width: 940px;
}
.span11 {
width: 860px;
}
.span10 {
width: 780px;
}
.span9 {
width: 700px;
}
.span8 {
width: 620px;
}
.span7 {
width: 540px;
}
.span6 {
width: 460px;
}
.span5 {
width: 380px;
}
.span4 {
width: 300px;
}
.span3 {
width: 220px;
}
.span2 {
width: 140px;
}
.span1 {
width: 60px;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
float: right;
}
.container {
margin-right: auto;
margin-left: auto;
*zoom: 1;
}
.container:before,
.container:after {
display: table;
content: "";
line-height: 0;
}
.container:after {
clear: both;
}
p {
margin: 0 0 10px;
}
.lead {
margin-bottom: 20px;
font-size: 21px;
font-weight: 200;
line-height: 30px;
}
small {
font-size: 85%;
}
h1 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 20px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1 {
line-height: 40px;
}
h1 {
font-size: 38.5px;
}
h1 small {
font-size: 24.5px;
}
.header {
position: fixed;
top: 0;
left: 50%;
margin-left: -480px;
background-color: #fff;
border-bottom: 1px solid #ddd;
padding-top: 10px;
z-index: 10;
}
.footer {
color: #ddd;
font-size: 12px;
text-align: center;
margin-top: 20px;
}
.footer a {
color: #ccc;
text-decoration: underline;
}
.the-icons {
font-size: 14px;
line-height: 24px;
}
.switch {
position: absolute;
right: 0;
bottom: 10px;
color: #666;
}
.switch input {
margin-right: 0.3em;
}
.codesOn .i-name {
display: none;
}
.codesOn .i-code {
display: inline;
}
.i-code {
display: none;
}
@font-face {
font-family: 'test';
src: url('./risorse/font/test.eot?93129191');
src: url('./risorse/font/test.eot?93129191#iefix') format('embedded-opentype'),
url('./risorse/font/test.woff?93129191') format('woff'),
url('./risorse/font/test.ttf?93129191') format('truetype'),
url('./risorse/font/test.svg?93129191#test') format('svg');
font-weight: normal;
font-style: normal;
}
.demo-icon
{
font-family: "test";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* You can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
</style>
<style>
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
table {
box-shadow: 2px 2px 25px rgba(0,0,0,0.5);
border-radius: 15px;
margin: auto;
}
</style>
<?php
function vero1($text, $img1 = "", $img2 = ""){
if($text == 1){
return "" . $img1;
} else {
return "no " . $img2;
}
}
//var_dump($risultato);
foreach($risultato as $row){
$nome = ($row['online']==1) ? '<u>' . $row['nome'] . "</u>" : $row['nome'];
echo("<h1>Dati anagrafici <b>$nome</b></h1><br><br>");
echo('<img alt="VVF" src="./risorse/images/logo.jpg" width="150" class="img-resposive"><br><br><br>');
$disp = vero1($row['disponibile'], "<i class='fa fa-check' style='color:green' width='22px'></i>", "<i class='fa fa-times' style='color:red' width='22px'></i>");
$caposquadra = vero1($row['caposquadra'], "<img src='./risorse/images/cascoRosso.png' width='22px'>", "<img src='./risorse/images/cascoNero.png' width='22px'>");
$autista = vero1($row['autista'], "<img src='./risorse/images/volante.png' width='22px'>");
echo("<p>Nome: <b>$nome</b></p><br>");
echo("<p>Disponibilità: <b>{$disp}</b></p><br>");
echo("<p>Caposquadra: <b>{$caposquadra}</b></p><br>");
echo("<p>Autista: <b>{$autista}</b></p><br>");
echo("<p>Numero di telefono <i class='fa fa-phone' style='color:green' width='22px'></i>: <b><a href='tel:{$row['telefono']}'>{$row['telefono']}</a></b></p><br>");
echo("<p>Minuti di disponibilità <br>(Questo mese) <i class='demo-icon icon-hourglass'></i>: <b>{$row['minuti_dispo']} minuti</b></p><br>");
echo("<p>Interventi svolti: <b>{$row['interventi']}</b></p><br>");
}
?>

View File

@ -0,0 +1,18 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
$vigili_sql = "SELECT `id`, `nome`, `disponibile`, `caposquadra`, `autista`, `telefono`, `interventi`, `esercitazioni`, `online`, `minuti_dispo`, `immagine` FROM `vigili` LIMIT 0 , 30";
$vigili = $database->esegui($vigili_sql, true);
$interventi_sql="SELECT * FROM `interventi` ORDER BY `interventi`.`id` DESC LIMIT 0 , 30";
$interventi = $database->esegui($interventi_sql, true);
$esercitazioni_sql="SELECT * FROM `esercitazioni` ORDER BY `esercitazioni`.`id` DESC LIMIT 0 , 30";
$esercitazioni = $database->esegui($esercitazioni_sql, true);
$elenco = ["vigili" => $vigili, "interventi" => $interventi, "esercitazioni" => $esercitazioni];
header("Content-Type: application/json; charset=UTF-8");
echo(json_encode($elenco));

View File

@ -0,0 +1,36 @@
<?php
$start = true;
$minuti = 5;
include_once "../../secure.php";
init_class();
$utente->richiedilogin();
function arraynum(){
global $database;
$risultato = $database->esegui("SELECT * FROM vigili ORDER BY disponibile DESC, caposquadra DESC, interventi ASC, nome ASC", true); // Pesco i dati della tabella e li ordino in base alla disponibilità
$incremento = array();
$minuti_dispo_old = array();
foreach($risultato as $row){
if($row['disponibile'] == "1"){
$incremento[] = $row['nome'];
$minuti_dispo_old[] = $row['minuti_dispo'];
}
}
return $incremento;
}
if(!isset($_GET['nome'])){
print_r(arraynum());
} else {
if(isset($_GET['nome'])){
$arr = arraynum();
$nome = str_replace("_", " ", $_GET['nome']);
if(in_array($nome, $arr)){
echo "si";
} else {
echo "no";
}
}
}
?>

View File

@ -0,0 +1,108 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
function ancora($content, $id) {
$content = substr($content,0,$limit);
$content = substr($content,0,strrpos($content,' '));
$content = $content." <a href='dettagli.php?iid=$id#note'>...Leggi ancora</a>";
return $content;
}
$impostazioni['modifica'] = false;
$impostazioni['elimina'] = false;
$risultato = $database->esegui("SELECT * FROM esercitazioni ORDER BY data DESC, inizio desc", true); // Pesco i dati della tabella e li ordino in base alla data
?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
#add {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table {
box-shadow: 0px 3px 15px rgba(0,0,0,0.5);
border-radius: 5px;
margin: auto;
}
#new-search-area {
width: 100%;
clear: both;
padding-top: 20px;
padding-bottom: 20px;
}
#new-search-area input {
width: 600px;
font-size: 20px;
padding: 5px;
margin-right: 150px;
margin-left: 80px;
}
</style>
<div style='margin: 20px 0;' class="mx-auto">
<div style='margin: 2px auto' id="new-search-area"></div>
<div class="table-responsive">
<div style="overflow-x:auto;">
<table id="esercitazioni" cellspacing='0' class="display table table-striped table-bordered dt-responsive nowrap" style="width: 90%; text-align:center;">
<thead>
<tr>
<th>Data</th>
<th>Nome</th>
<th>Ora inizio</th>
<th>Ora fine</th>
<th>Capo</th>
<th>Personale</th>
<th>Luogo</th>
<th>Note</th>
<?php if($impostazioni['modifica']) { echo "<th>Modifica</th>"; } ?>
<?php if($impostazioni['elimina']) { echo "<th>Elimina</th>"; } ?>
</tr>
</thead>
<tbody>
<?php
foreach($risultato as $row){
$persone = base64_encode( $row['dec'] );
echo "<tr><td>" . $row['data'] . "</td><td>" . $row['nome'] . "</td><td>" . $row['inizio'] . "</td><td>" . $row['fine'] . "</td><td>" . $row['capo'] . "</td><td>" . $row['personale'] . "</td><td>" . $row['luogo'] . "</td><td>" . $row['note'] . "</td>";
if($impostazioni['modifica']) {
echo "<td><a href='modifica.php?modifica&id={$row['id']}&data={$row['data']}&nome={$row['nome']}&inizio={$row['inizio']}&fine={$row['fine']}&luogo={$row['luogo']}&note={$row['note']}'><i style='font-size: 40px' class='fa fa-edit'></i></a></td>";
}
if($impostazioni['elimina']) {
echo "<td><a href='modifica.php?elimina&id={$row['id']}&persone={$persone}'><i style='font-size: 40px' class='fa fa-trash'></i></a></td></tr>";
}
}
?>
</tbody>
</table>
</div>
</div>
</div>

View File

@ -0,0 +1,110 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
function ancora($content, $id) {
$content = substr($content,0,$limit);
$content = substr($content,0,strrpos($content,' '));
$content = $content." <a href='dettagli.php?iid=$id#note'>...Leggi ancora</a>";
return $content;
}
$impostazioni['modifica'] = false;
$impostazioni['elimina'] = false;
$risultato = $database->esegui("SELECT * FROM interventi ORDER BY data DESC, uscita desc", true); // Pesco i dati della tabella e li ordino in base alla data
?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
#add {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table {
box-shadow: 0px 3px 15px rgba(0,0,0,0.5);
border-radius: 5px;
margin: auto;
}
#new-search-area {
width: 100%;
clear: both;
padding-top: 20px;
padding-bottom: 20px;
}
#new-search-area input {
width: 600px;
font-size: 20px;
padding: 5px;
margin-right: 150px;
margin-left: 80px;
}
</style>
<div style='margin: 20px 0;' class="mx-auto">
<div style='margin: 2px auto' id="new-search-area"></div>
<div class="table-responsive">
<div style="overflow-x:auto;">
<table id="interventi" cellspacing='0' class="display table table-striped table-bordered dt-responsive nowrap" style="width: 90%; text-align:center;">
<thead>
<tr>
<th>Data</th>
<th>Codice</th>
<th>Uscita</th>
<th>Rientro</th>
<th>Caposquadra</th>
<th>Autisti</th>
<th>Personale</th>
<th>Luogo</th>
<th>Note</th>
<th>Tipo</th>
<?php if($impostazioni['modifica']) { echo "<th>Modifica</th>"; } ?>
<?php if($impostazioni['elimina']) { echo "<th>Elimina</th>"; } ?>
</tr>
</thead>
<tbody>
<?php
foreach($risultato as $row){
$persone = base64_encode( $row['incrementa'] );
echo "<tr><td>" . $row['data'] . "</td><td>" . $row['codice'] . "</td><td>" . $row['uscita'] . "</td><td>" . $row['rientro'] . "</td><td>" . $row['capo'] . "</td><td>" . $row['autisti'] . "</td><td>" . $row['personale'] . "</td><td>" . $row['luogo'] . "</td><td>" . $row['note'] . "</td><td>" . $row['tipo'] . "</td>";
if($impostazioni['modifica']) {
echo "<td><a href='modifica.php?modifica&id={$row['id']}&data={$row['data']}&codice={$row['codice']}&uscita={$row['uscita']}&rientro={$row['rientro']}&luogo={$row['luogo']}&note={$row['note']}&tipo={$row['tipo']}'><i style='font-size: 40px' class='fa fa-edit'></i></a></td>";
}
if($impostazioni['elimina']) {
echo "<td><a href='modifica.php?elimina&id={$row['id']}&persone={$persone}'><i style='font-size: 40px' class='fa fa-trash'></i></a></td></tr>";
}
}
?>
</tbody>
</table>
</div>
</div>
</div>

View File

@ -0,0 +1,61 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
$risultato = $database->esegui("SELECT * FROM vigili ORDER BY disponibile DESC, caposquadra DESC, interventi ASC, minuti_dispo ASC, nome ASC", true);
$whitelist = $utente->whitelist();
?>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<style>
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
table {
box-shadow: 2px 2px 25px rgba(0,0,0,0.5);
border-radius: 15px;
margin: auto;
}
</style>
<div style="overflow-x:auto;">
<table style="width: 90%; text-align:center;">
<tr>
<th>Nome</th>
<th>Disponibile</th>
<?php
foreach($risultato as $row){
if(!in_array($row['nome'], $whitelist)){
echo "<tr><td>";
if ($row['caposquadra'] == 1) {echo "<img src='./risorse/images/cascoRosso.png' width='20px'> ";} else{echo "<img src='./risorse/images/cascoNero.png' width='20px'> ";}
if($row['online'] == 1){
echo "<u>".$row["nome"]."</u></td><td>";
} else {
echo "".$row["nome"]."</td><td>";
}
if ($row['disponibile'] == 1) {echo "<i class='fa fa-check' style='color:green'></i>";} else{echo "<i class='fa fa-times' style='color:red'></i>";};
echo "</td></tr>";
}
}
?>
</table>
</div>

View File

@ -0,0 +1,79 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
$risultato = $database->esegui("SELECT * FROM vigili ORDER BY disponibile DESC, caposquadra DESC, interventi ASC, minuti_dispo ASC, nome ASC", true);
$whitelist = $utente->whitelist();
?>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<style>
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
table {
box-shadow: 2px 2px 25px rgba(0,0,0,0.5);
border-radius: 15px;
margin: auto;
}
</style>
<div style="overflow-x:auto;">
<table style="width: 90%; text-align:center;">
<tr>
<th>Nome</th>
<th>Disponibile</th>
<th>Autista</th>
<th>Chiama</th>
<th>Scrivi</th>
<th>Interventi</th>
<th>Minuti Disponibilità</th>
<th>Altro</th>
<?php
foreach($risultato as $row){
if(!in_array($row['nome'], $whitelist) OR in_array($utente->nome(), $whitelist)){
echo "<tr>
<td>";
$nome = $row["nome"];
$disponibile = $row["disponibile"];
if ($row['caposquadra'] == 1) {echo "<a onclick='AttivoAdmin(\"$nome\", \"$disponibile\");'><img src='./risorse/images/cascoRosso.png' width='20px'> ";} else{echo "<a onclick='AttivoAdmin(\"$nome\", \"$disponibile\");'><img src='./risorse/images/cascoNero.png' width='20px'> ";}
if($row['online'] == 1){
echo "<u>".$row["nome"]."</u></a></td><td><a onclick='AttivoAdmin(\"$nome\", \"$disponibile\");'>";
} else {
echo $row["nome"]."</a></td><td><a onclick='AttivoAdmin(\"$nome\", \"$disponibile\");'>";
}
if ($row['disponibile'] == 1) {echo "<i class='fa fa-check' style='color:green'></i>";} else{echo "<i class='fa fa-times' style='color:red'></i>";};
echo "</a></td>
<td>";
if ($row['autista'] == 1) {echo "<img src='./risorse/images/volante.png' width='20px'>";} else{echo "";};
echo "</td>
<td><a href='tel:+" . $row['telefono'] . "'><i class='fa fa-phone'></i></a></td><td>";
if ($row['disponibile'] == 1) {echo " <a href='https://api.whatsapp.com/send?phone=" . $row['telefono'] . "&text=ALLERTA IN CORSO.%20Mettiti%20in%20contatto%20con%20Fulvio'><i class='fa fa-whatsapp' style='color:green'></i></td>";} else{echo "";};
$interventi = $row['interventi'];
$minuti = $row['minuti_dispo'];
$u = 'anagrafica.php?utente=' . str_replace(' ', '_', urldecode(strtolower($row["id"])));
echo "<td>$interventi</td><td>$minuti</td><td><a href='$u'><p>Altri dettagli</p></a></td></tr>";
}
}
?>
</table>
</div>

View File

@ -0,0 +1,133 @@
<?php
include_once("../../secure.php");
init_class();
$utente->richiedilogin();
/*
function trovanomi() {
include_once '../../connection.php';
$sql = "SELECT nome FROM vigili"; // Pesco i dati della tabella
$result = mysqli_query($connessione, $sql);
while($row = $result->fetch_array())
{
$rows[] = $row;
}
$nome = array();
foreach($rows as $row)
{
$nome[] = $row['nome'];
}
mysqli_close($connessione);
return $nome;
}
function checkbox_vigili() {
$whitelist = $utente->whitelist();
$id = 0;
$checkbox = <<<HTML
<div class="dropdown show">
<a class="btn btn-secondary dropdown-toggle " href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<select class="form-control" aria-labelledby="dropdownMenuLink">
HTML;
foreach(trovanomi() as $nome) {
$test = "";
if(in_array($nome, $whitelist)){
$test = "hidden='hidden'";
}
$id = $id + 1;
$checkbox = $checkbox . "<option class='dropdown-item' id='checkbox' style='' $test value='$nome'>" . "<label $test>$nome</label><br>";
}
$checkbox = $checkbox . "</select>";
return $checkbox;
}
*/
$risultato = $database->esegui("SELECT * FROM `log`", true);
$whitelist = $utente->whitelist();
?>
<style>
th, td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
#href {
outline: none;
cursor: pointer;
text-align: center;
text-decoration: none;
font: bold 12px Arial, Helvetica, sans-serif;
color: #fff;
padding: 10px 20px;
border: solid 1px #0076a3;
background: #0095cd;
}
table {
overflow-x: scroll;
box-shadow: 2px 2px 25px rgba(0,0,0,0.5);
border-radius: 15px;
margin: auto;
}
select {
margin: 50px;
width: 150px;
padding: 5px 35px 5px 5px;
font-size: 16px;
border: 1px solid #ccc;
height: 34px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
/* background: url(http://www.stackoverflow.com/favicon.ico) 96% / 15% no-repeat #eee; */
}
/* CAUTION: IE hackery ahead */
select::-ms-expand {
display: none; /* remove default arrow on ie10 and ie11 */
}
/* target Internet Explorer 9 to undo the custom arrow */
@media screen and (min-width:0\0) {
select {
background:none\9;
padding: 5px\9;
}
}
#new-search-area {
width: 100%;
clear: both;
padding-top: 20px;
padding-bottom: 20px;
}
#new-search-area input {
width: 600px;
font-size: 20px;
padding: 5px;
margin-right: 150px;
margin-left: 80px;
}
</style>
<div style="overflow-x:auto;">
<table style="width: 90%; text-align:center;">
<thead>
<tr>
<th>Azione</th>
<th>Interessato</th>
<th>Fatto da</th>
<th>Ora</th>
</tr>
</thead>
<tbody>
<?php
foreach($risultato as $row){
if(!in_array($row['subisce'], $whitelist) OR in_array($utente->nome(), $whitelist)){
echo "<tr><td>" . $row["azione"] . "</td><td>" . $row["subisce"] . "</td><td>" . $row["agisce"] ."</td><td>" . $row['data'] . " - ore " . $row['ora'] . "</tr>";
}
}
?>
</tbody>
</table>
</div>

View File

@ -0,0 +1,85 @@
/*
Animation example, for spinners
*/
.animate-spin {
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
display: inline-block;
}
@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-o-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-ms-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

View File

@ -0,0 +1,287 @@
/*
aprilFools.css
Written by Wes Bos
Modified by Nick Karamoff
I assume no responsibility for angry co-workers or lost productivity
Put these CSS definitons into your co-workers Custom.css file.
They will be applied to every website they visit as well as their developer tools.
*/
/*
Turn every website upside down
*/
body {
transform: rotate(180deg);
}
/*
blur every website for a split second every 30 seconds
*/
body {
animation: blur 30s infinite;
}
/*
Spin every Website
*/
body {
animation: spin 5s linear infinite;
}
/*
Flip all images upside down
*/
img {
transform: rotate(180deg);
}
/*
COMIC SANS EVERYTHING
*/
body, p, body p, body div p {
font-family: 'Comic Sans MS', cursive !important;
}
/*
Spin all images
*/
img {
animation: spin 1s linear infinite;
}
/*
Hide every 2nd paragraph element on a page
*/
p:nth-child(2) {
display:none !important;
}
/*
Permanent cursor wait
*/
html {
cursor:wait !important;
}
/*
hide the cursor all together
*/
html {
cursor:none !important;
}
/*
slowly grow text
*/
p {
animation: grow 120s ease-in;
}
/* Dev Tools */
/*
Spin dev tools round and round
*/
#-webkit-web-inspector {
-webkit-animation: spin 1s linear infinite;
}
/*
Flip dev tools upside down
*/
#-webkit-web-inspector {
-webkit-transform:rotate(180deg);
}
/* Hide the close button */
#-webkit-web-inspector .toolbar-item.close-left {
display:none !important;
}
/* Make console text all blurry */
#-webkit-web-inspector .console-group-messages {
text-shadow: 0 0 3px rgba(0,0,0,.5) !important;
}
#-webkit-web-inspector .console-error-level .console-message-text,
#-webkit-web-inspector .console-error-level .section .header .title {
text-shadow: 0 0 3px rgba(255,0,0,.5) !important;
}
#-webkit-web-inspector .console-user-command > .console-message-text {
text-shadow: 0 0 3px rgba(0,128,255,.5) !important;
}
#-webkit-web-inspector .console-group-messages,
#-webkit-web-inspector .console-user-command > .console-message-text,
#-webkit-web-inspector .console-formatted-null,
#-webkit-web-inspector .console-formatted-undefined,
#-webkit-web-inspector .console-debug-level .console-message-text,
#-webkit-web-inspector .console-error-level .console-message-text,
#-webkit-web-inspector .console-error-level .section .header .title,
#-webkit-web-inspector .console-group-messages .section .header .title,
#-webkit-web-inspector .console-formatted-object,
#-webkit-web-inspector .console-formatted-node,
#-webkit-web-inspector .console-formatted-array,
#-webkit-web-inspector .section .properties .name,
#-webkit-web-inspector .event-properties .name,
#-webkit-web-inspector .console-formatted-object .name,
#-webkit-web-inspector .console-formatted-number,
#-webkit-web-inspector .console-formatted-string,
#-webkit-web-inspector #console-messages a {
color: transparent !important;
}
/* HTML PRIDE! */
html {
animation: rainbow 8s infinite;
}
/*
Make every website fall over!
*/
html, body {
height: 100%;
}
html {
perspective: 1000;
}
body {
transform-origin: bottom center;
transform: rotateX(-90deg);
animation: fall 1.5s ease-in;
}
/*
Insert a phrase every paragraph
*/
p:before {
content: "YOLO ";
}
/* New tricks by Nick Karamoff */
/*
Flip every paragraph upside down
*/
p {
transform: rotate(180deg);
}
/*
Flip every header upside down
*/
h1, h2, h3, h4, h5, h6 {
transform: rotate(180deg);
}
/*
Mirror the whole webpage
*/
body {
transform: scale(-1, 1);
}
/*
Transparent paragraphs
*/
p {
color: transparent;
}
/*
"Very good design" combo (blue bg, red text, Comic Sans)
*/
body, p, h1, h2, h3, h4, h5, h6 {
color: red;
background-color: blue;
font-family: "Comic Sans", cursive;
}
/*
Deactivate all the links
*/
a {
pointer-events: none;
cursor: default;
}
/*
Unlinkify links (standart formatting, but still clickable)
*/
a {
text-decoration: none;
color: inherit;
cursor: default;
}
/*
Links not allowed
*/
a {
cursor: not-allowed;
}
/*
Everything's a link!
*/
body {
cursor: pointer;
}
/* Animations */
/*
Everything that is moving is powered from here, so just copy this whole chunk
*/
@keyframes blur {
0% { filter: blur(0px); }
49% { filter: blur(0px); }
50% { filter: blur(1px); }
51% { filter: blur(0px); }
100% { filter: blur(0px); }
}
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes rainbow {
100% { filter: hue-rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes fall {
0% { transform: none; }
100% { transform: rotateX(-90deg); }
}
@keyframes grow {
0% { font-size: none; }
100% { font-size: 80pt; }
}

View File

@ -0,0 +1,4 @@
.picker,.picker__holder{width:100%;position:absolute}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;border-top-width:0;border-bottom-width:0;border-radius:0 0 5px 5px;box-sizing:border-box;min-width:176px;max-width:466px;max-height:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transform:translateY(-1em) perspective(600px) rotateX(10deg);transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s .15s,border-width 0s .15s}/*!
* Classic picker styling for pickadate.js
* Demo: http://amsul.github.io/pickadate.js
*/.picker__frame{padding:1px}.picker__wrap{margin:-1px}.picker--opened .picker__holder{max-height:25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1;border-top-width:1px;border-bottom-width:1px;transform:translateY(0) perspective(600px) rotateX(0);transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s,border-width 0s;box-shadow:0 6px 18px 1px rgba(0,0,0,.12)}

View File

@ -0,0 +1 @@
.picker__footer,.picker__header,.picker__table{text-align:center}.picker__box{padding:0 1em}.picker__header{position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}.picker__nav--next,.picker__nav--prev{top:-.33em}.picker__nav--prev{padding-right:1.5em}.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover,.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}

View File

@ -0,0 +1 @@
.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover,.picker__list-item:hover{color:#000;background:#b1dcfb;cursor:pointer}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff;border-color:#fff}.picker--time{min-width:256px;max-width:320px}.picker--time .picker__holder{background:#f2f2f2}@media (min-height:40.125em){.picker--time .picker__holder{font-size:.875em}}.picker--time .picker__box{padding:0;position:relative}

View File

@ -0,0 +1,4 @@
.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;position:fixed;transition:background .15s ease-out,transform 0s .15s;-webkit-backface-visibility:hidden}/*!
* Default mobile-first, responsive styling for pickadate.js
* Demo: http://amsul.github.io/pickadate.js
*/.picker__frame,.picker__holder{top:0;bottom:0;left:0;right:0;-ms-transform:translateY(100%);transform:translateY(100%)}.picker__frame{position:absolute;margin:0 auto;min-width:256px;max-width:666px;width:100%;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:33.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:26.5em){.picker__box{font-size:1.25em}}@media (min-height:33.875em){.picker__box{display:block;font-size:1.33em;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}.picker--opened .picker__frame{top:auto;bottom:0}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}.picker__box{font-size:1.5em;border-bottom-width:1px;border-radius:5px}}.picker--opened .picker__holder{-ms-transform:translateY(0);transform:translateY(0);zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{-ms-transform:translateY(0);transform:translateY(0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}

View File

@ -0,0 +1 @@
.picker__footer,.picker__header,.picker__table{text-align:center}.picker__box{padding:0 1em}.picker__header{position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}.picker__nav--next,.picker__nav--prev{top:-.33em}.picker__nav--prev{padding-right:1.5em}.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover,.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}

View File

@ -0,0 +1 @@
.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover,.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff;border-color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}

285
server/risorse/css/joke.css Normal file
View File

@ -0,0 +1,285 @@
/*
aprilFools.css
Written by Wes Bos
Modified by Nick Karamoff
I assume no responsibility for angry co-workers or lost productivity
Put these CSS definitons into your co-workers Custom.css file.
They will be applied to every website they visit as well as their developer tools.
/*
Turn every website upside down
body {
transform: rotate(180deg);
}
/*
blur every website for a split second every 30 seconds
body {
animation: blur 30s infinite;
}
/*
Spin every Website
body {
animation: spin 5s linear infinite;
}
/*
Flip all images upside down
img {
transform: rotate(180deg);
}
/*
COMIC SANS EVERYTHING
body, p, body p, body div p {
font-family: 'Comic Sans MS', cursive !important;
}
/*
Spin all images
img {
animation: spin 1s linear infinite;
}
/*
Hide every 2nd paragraph element on a page
p:nth-child(2) {
display:none !important;
}
/*
Permanent cursor wait
html {
cursor:wait !important;
}
/*
hide the cursor all together
html {
cursor:none !important;
}
/*
slowly grow text
p {
animation: grow 120s ease-in;
}
/*
Spin dev tools round and round
#-webkit-web-inspector {
-webkit-animation: spin 1s linear infinite;
}
/*
Flip dev tools upside down
#-webkit-web-inspector {
-webkit-transform:rotate(180deg);
}
/* Hide the close button
#-webkit-web-inspector .toolbar-item.close-left {
display:none !important;
}
/* Make console text all blurry
#-webkit-web-inspector .console-group-messages {
text-shadow: 0 0 3px rgba(0,0,0,.5) !important;
}
#-webkit-web-inspector .console-error-level .console-message-text,
#-webkit-web-inspector .console-error-level .section .header .title {
text-shadow: 0 0 3px rgba(255,0,0,.5) !important;
}
#-webkit-web-inspector .console-user-command > .console-message-text {
text-shadow: 0 0 3px rgba(0,128,255,.5) !important;
}
#-webkit-web-inspector .console-group-messages,
#-webkit-web-inspector .console-user-command > .console-message-text,
#-webkit-web-inspector .console-formatted-null,
#-webkit-web-inspector .console-formatted-undefined,
#-webkit-web-inspector .console-debug-level .console-message-text,
#-webkit-web-inspector .console-error-level .console-message-text,
#-webkit-web-inspector .console-error-level .section .header .title,
#-webkit-web-inspector .console-group-messages .section .header .title,
#-webkit-web-inspector .console-formatted-object,
#-webkit-web-inspector .console-formatted-node,
#-webkit-web-inspector .console-formatted-array,
#-webkit-web-inspector .section .properties .name,
#-webkit-web-inspector .event-properties .name,
#-webkit-web-inspector .console-formatted-object .name,
#-webkit-web-inspector .console-formatted-number,
#-webkit-web-inspector .console-formatted-string,
#-webkit-web-inspector #console-messages a {
color: transparent !important;
}
html {
animation: rainbow 8s infinite;
}
/*
Make every website fall over!
html, body {
height: 100%;
}
html {
perspective: 1000;
}
body {
transform-origin: bottom center;
transform: rotateX(-90deg);
animation: fall 1.5s ease-in;
}
/*
Insert a phrase every paragraph
p:before {
content: "YOLO ";
}
/* New tricks by Nick Karamoff */
/*
Flip every paragraph upside down
p {
transform: rotate(180deg);
}
/*
Flip every header upside down
h1, h2, h3, h4, h5, h6 {
transform: rotate(180deg);
}
/*
Mirror the whole webpage
body {
transform: scale(-1, 1);
}
/*
Transparent paragraphs
p {
color: transparent;
}
/*
"Very good design" combo (blue bg, red text, Comic Sans)
body, p, h1, h2, h3, h4, h5, h6 {
color: red;
background-color: blue;
font-family: "Comic Sans", cursive;
}
/*
Deactivate all the links
a {
pointer-events: none;
cursor: default;
}
/*
Unlinkify links (standart formatting, but still clickable)
a {
text-decoration: none;
color: inherit;
cursor: default;
}
/*
Links not allowed
a {
cursor: not-allowed;
}
/*
Everything's a link!
body {
cursor: pointer;
}
*/
/* Animations */
/*
Everything that is moving is powered from here, so just copy this whole chunk
*/
@keyframes blur {
0% { filter: blur(0px); }
49% { filter: blur(0px); }
50% { filter: blur(1px); }
51% { filter: blur(0px); }
100% { filter: blur(0px); }
}
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes rainbow {
100% { filter: hue-rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes fall {
0% { transform: none; }
100% { transform: rotateX(-90deg); }
}
@keyframes grow {
0% { font-size: none; }
100% { font-size: 80pt; }
}

View File

@ -0,0 +1,3 @@
/*!
* Styling for RTL (right-to-left) languages using pickadate.js
*/.picker{direction:rtl}.picker__nav--next{right:auto;left:-1em}.picker__nav--prev{left:auto;right:-1em}.picker__nav--next:before{border-left:0;border-right:.75em solid #000}.picker__nav--prev:before{border-right:0;border-left:.75em solid #000}

View File

@ -0,0 +1,3 @@
.icon-clock:before { content: '\e800'; } /* '' */
.icon-hourglass:before { content: '\e801'; } /* '' */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
.icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }

View File

@ -0,0 +1,14 @@
[class^="icon-"], [class*=" icon-"] {
font-family: 'test';
font-style: normal;
font-weight: normal;
/* fix buttons height */
line-height: 1em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
}
.icon-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-hourglass { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }

View File

@ -0,0 +1,59 @@
@font-face {
font-family: 'test';
src: url('../font/test.eot?26673982');
src: url('../font/test.eot?26673982#iefix') format('embedded-opentype'),
url('../font/test.woff2?26673982') format('woff2'),
url('../font/test.woff?26673982') format('woff'),
url('../font/test.ttf?26673982') format('truetype'),
url('../font/test.svg?26673982#test') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'test';
src: url('../font/test.svg?26673982#test') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "test";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Font smoothing. That was taken from TWBS */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-clock:before { content: '\e800'; } /* '' */
.icon-hourglass:before { content: '\e801'; } /* '' */

Binary file not shown.

View File

@ -0,0 +1,14 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2018 by original authors @ fontello.com</metadata>
<defs>
<font id="test" horiz-adv-x="1000" >
<font-face font-family="test" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="clock" unicode="&#xe800;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z" horiz-adv-x="920" />
<glyph glyph-name="hourglass" unicode="&#xe801;" d="M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -0,0 +1,52 @@
{
"name": "Allerta Vvf Volontari DARFO",
"short_name": "Allerta",
"theme_color": "#ff0000",
"background_color": "#4181b4",
"display": "standalone",
"Scope": "/",
"start_url": "/?utm_source=a2hs",
"icons": [
{
"src": "images/icons/icon-72x72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "images/icons/icon-96x96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "images/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
},
{
"src": "images/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "images/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
},
{
"src": "images/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "images/icons/icon-384x384.png",
"sizes": "384x384",
"type": "image/png"
},
{
"src": "images/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"splash_pages": null
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,26 @@
$(document).ready(function(){
$.get("risorse/ajax/ajax_cache.php", function(data, status){
console.log(data);
console.log(data.vigili);
console.log(data.interventi);
console.log(data.esercitazioni);
var db = new Dexie("offline");
console.log(db.tables.length);
if(db.tables.length !== 0){
db.vigilil.clear();
db.interventi.clear();
console.log("cleaned");
}
db.version(1).stores({
vigili: '++id,nome,disponibile,caposquadra,autista,telefono,interventi,esercitazioni,online,minuti_dispo,immagine',
interventi: '++id,data,codice,uscita,rientro,capo,autisti,personale,luogo,note,tipo,incrementa,inseritoda'
});
$.each( data.vigili, function( key, val ) {
db.vigili.put(val);
});
$.each( data.interventi, function( key, val ) {
db.interventi.put(val);
});
window.db = db;
}, "json");
});

View File

@ -0,0 +1,10 @@
/*!
* Legacy browser support
*/
[].map||(Array.prototype.map=function(a,b){for(var c=this,d=c.length,e=new Array(d),f=0;f<d;f++)f in c&&(e[f]=a.call(b,c[f],f,c));return e}),[].filter||(Array.prototype.filter=function(a){if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=[],e=arguments[1],f=0;f<c;f++)if(f in b){var g=b[f];a.call(e,g,f,b)&&d.push(g)}return d}),[].indexOf||(Array.prototype.indexOf=function(a){if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!==d&&d!=1/0&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);e<c;e++)if(e in b&&b[e]===a)return e;return-1});/*!
* Cross-Browser Split 1.1.1
* Copyright 2007-2012 Steven Levithan <stevenlevithan.com>
* Available under the MIT License
* http://blog.stevenlevithan.com/archives/cross-browser-split
*/
var nativeSplit=String.prototype.split,compliantExecNpcg=void 0===/()??/.exec("")[1];String.prototype.split=function(a,b){var c=this;if("[object RegExp]"!==Object.prototype.toString.call(a))return nativeSplit.call(c,a,b);var d,e,f,g,h=[],i=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.extended?"x":"")+(a.sticky?"y":""),j=0;for(a=new RegExp(a.source,i+"g"),c+="",compliantExecNpcg||(d=new RegExp("^"+a.source+"$(?!\\s)",i)),b=void 0===b?-1>>>0:b>>>0;(e=a.exec(c))&&!((f=e.index+e[0].length)>j&&(h.push(c.slice(j,e.index)),!compliantExecNpcg&&e.length>1&&e[0].replace(d,function(){for(var a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(e[a]=void 0)}),e.length>1&&e.index<c.length&&Array.prototype.push.apply(h,e.slice(1)),g=e[0].length,j=f,h.length>=b));)a.lastIndex===e.index&&a.lastIndex++;return j===c.length?!g&&a.test("")||h.push(""):h.push(c.slice(j)),h.length>b?h.slice(0,b):h};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,376 @@
/* Snowfall jquery plugin
====================================================================
LICENSE
====================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
====================================================================
Version 1.51 Dec 2nd 2012
// fixed bug where snow collection didn't happen if a valid doctype was declared.
Version 1.5 Oct 5th 2011
Added collecting snow! Uses the canvas element to collect snow. In order to initialize snow collection use the following
$(document).snowfall({collection : 'element'});
element = any valid jquery selector.
The plugin then creates a canvas above every element that matches the selector, and collects the snow. If there are a varrying amount of elements the
flakes get assigned a random one on start they will collide.
Version 1.4 Dec 8th 2010
Fixed issues (I hope) with scroll bars flickering due to snow going over the edge of the screen.
Added round snowflakes via css, will not work for any version of IE. - Thanks to Luke Barker of http://www.infinite-eye.com/
Added shadows as an option via css again will not work with IE. The idea behind shadows, is to show flakes on lighter colored web sites - Thanks Yutt
Version 1.3.1 Nov 25th 2010
Updated script that caused flakes not to show at all if plugin was initialized with no options, also added the fixes that Han Bongers suggested
Developed by Jason Brown for any bugs or questions email me at loktar69@hotmail
info on the plugin is located on Somethinghitme.com
values for snow options are
flakeCount,
flakeColor,
flakeIndex,
minSize,
maxSize,
minSpeed,
maxSpeed,
round, true or false, makes the snowflakes rounded if the browser supports it.
shadow true or false, gives the snowflakes a shadow if the browser supports it.
Example Usage :
$(document).snowfall({flakeCount : 100, maxSpeed : 10});
-or-
$('#element').snowfall({flakeCount : 800, maxSpeed : 5, maxSize : 5});
-or with defaults-
$(document).snowfall();
- To clear -
$('#element').snowfall('clear');
*/
// requestAnimationFrame polyfill from https://github.com/darius/requestAnimationFrame
if (!Date.now)
Date.now = function() { return new Date().getTime(); };
(function() {
'use strict';
var vendors = ['webkit', 'moz'];
for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
var vp = vendors[i];
window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];
window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']
|| window[vp+'CancelRequestAnimationFrame']);
}
if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) // iOS6 is buggy
|| !window.requestAnimationFrame || !window.cancelAnimationFrame) {
var lastTime = 0;
window.requestAnimationFrame = function(callback) {
var now = Date.now();
var nextTime = Math.max(lastTime + 16, now);
return setTimeout(function() { callback(lastTime = nextTime); },
nextTime - now);
};
window.cancelAnimationFrame = clearTimeout;
}
}());
(function($){
$.snowfall = function(element, options){
var flakes = [],
defaults = {
flakeCount : 35,
flakeColor : '#ffffff',
flakePosition: 'absolute',
flakeIndex: 999999,
minSize : 1,
maxSize : 2,
minSpeed : 1,
maxSpeed : 5,
round : false,
shadow : false,
collection : false,
collectionHeight : 40,
deviceorientation : false
},
options = $.extend(defaults, options),
random = function random(min, max){
return Math.round(min + Math.random()*(max-min));
};
$(element).data("snowfall", this);
// Snow flake object
function Flake(_x, _y, _size, _speed){
// Flake properties
this.x = _x;
this.y = _y;
this.size = _size;
this.speed = _speed;
this.step = 0;
this.stepSize = random(1,10) / 100;
if(options.collection){
this.target = canvasCollection[random(0,canvasCollection.length-1)];
}
var flakeMarkup = null;
if(options.image){
flakeMarkup = document.createElement("img");
flakeMarkup.src = options.image;
}else{
flakeMarkup = document.createElement("div");
$(flakeMarkup).css({'background' : options.flakeColor});
}
$(flakeMarkup).attr({
'class': 'snowfall-flakes',
}).css({
'width' : this.size,
'height' : this.size,
'position' : options.flakePosition,
'top' : this.y,
'left' : this.x,
'fontSize' : 0,
'zIndex' : options.flakeIndex
});
if($(element).get(0).tagName === $(document).get(0).tagName){
$('body').append($(flakeMarkup));
element = $('body');
}else{
$(element).append($(flakeMarkup));
}
this.element = flakeMarkup;
// Update function, used to update the snow flakes, and checks current snowflake against bounds
this.update = function(){
this.y += this.speed;
if(this.y > (elHeight) - (this.size + 6)){
this.reset();
}
this.element.style.top = this.y + 'px';
this.element.style.left = this.x + 'px';
this.step += this.stepSize;
if (doRatio === false) {
this.x += Math.cos(this.step);
} else {
this.x += (doRatio + Math.cos(this.step));
}
// Pileup check
if(options.collection){
if(this.x > this.target.x && this.x < this.target.width + this.target.x && this.y > this.target.y && this.y < this.target.height + this.target.y){
var ctx = this.target.element.getContext("2d"),
curX = this.x - this.target.x,
curY = this.y - this.target.y,
colData = this.target.colData;
if(colData[parseInt(curX)][parseInt(curY+this.speed+this.size)] !== undefined || curY+this.speed+this.size > this.target.height){
if(curY+this.speed+this.size > this.target.height){
while(curY+this.speed+this.size > this.target.height && this.speed > 0){
this.speed *= .5;
}
ctx.fillStyle = defaults.flakeColor;
if(colData[parseInt(curX)][parseInt(curY+this.speed+this.size)] == undefined){
colData[parseInt(curX)][parseInt(curY+this.speed+this.size)] = 1;
ctx.fillRect(curX, (curY)+this.speed+this.size, this.size, this.size);
}else{
colData[parseInt(curX)][parseInt(curY+this.speed)] = 1;
ctx.fillRect(curX, curY+this.speed, this.size, this.size);
}
this.reset();
}else{
// flow to the sides
this.speed = 1;
this.stepSize = 0;
if(parseInt(curX)+1 < this.target.width && colData[parseInt(curX)+1][parseInt(curY)+1] == undefined ){
// go left
this.x++;
}else if(parseInt(curX)-1 > 0 && colData[parseInt(curX)-1][parseInt(curY)+1] == undefined ){
// go right
this.x--;
}else{
//stop
ctx.fillStyle = defaults.flakeColor;
ctx.fillRect(curX, curY, this.size, this.size);
colData[parseInt(curX)][parseInt(curY)] = 1;
this.reset();
}
}
}
}
}
if(this.x + this.size > (elWidth) - widthOffset || this.x < widthOffset){
this.reset();
}
}
// Resets the snowflake once it reaches one of the bounds set
this.reset = function(){
this.y = 0;
this.x = random(widthOffset, elWidth - widthOffset);
this.stepSize = random(1,10) / 100;
this.size = random((options.minSize * 100), (options.maxSize * 100)) / 100;
this.element.style.width = this.size + 'px';
this.element.style.height = this.size + 'px';
this.speed = random(options.minSpeed, options.maxSpeed);
}
}
// local vars
var i = 0,
elHeight = $(element).height(),
elWidth = $(element).width(),
widthOffset = 0,
snowTimeout = 0;
// Collection Piece ******************************
if(options.collection !== false){
var testElem = document.createElement('canvas');
if(!!(testElem.getContext && testElem.getContext('2d'))){
var canvasCollection = [],
elements = $(options.collection),
collectionHeight = options.collectionHeight;
for(var i =0; i < elements.length; i++){
var bounds = elements[i].getBoundingClientRect(),
$canvas = $('<canvas/>',
{
'class' : 'snowfall-canvas'
}),
collisionData = [];
if(bounds.top-collectionHeight > 0){
$('body').append($canvas);
$canvas.css({
'position' : options.flakePosition,
'left' : bounds.left + 'px',
'top' : bounds.top-collectionHeight + 'px'
})
.prop({
width: bounds.width,
height: collectionHeight
});
for(var w = 0; w < bounds.width; w++){
collisionData[w] = [];
}
canvasCollection.push({
element : $canvas.get(0),
x : bounds.left,
y : bounds.top-collectionHeight,
width : bounds.width,
height: collectionHeight,
colData : collisionData
});
}
}
}else{
// Canvas element isnt supported
options.collection = false;
}
}
// ************************************************
// This will reduce the horizontal scroll bar from displaying, when the effect is applied to the whole page
if($(element).get(0).tagName === $(document).get(0).tagName){
widthOffset = 25;
}
// Bind the window resize event so we can get the innerHeight again
$(window).bind("resize", function(){
elHeight = $(element)[0].clientHeight;
elWidth = $(element)[0].offsetWidth;
});
// initialize the flakes
for(i = 0; i < options.flakeCount; i+=1){
flakes.push(new Flake(random(widthOffset,elWidth - widthOffset), random(0, elHeight), random((options.minSize * 100), (options.maxSize * 100)) / 100, random(options.minSpeed, options.maxSpeed)));
}
// This adds the style to make the snowflakes round via border radius property
if(options.round){
$('.snowfall-flakes').css({'-moz-border-radius' : options.maxSize, '-webkit-border-radius' : options.maxSize, 'border-radius' : options.maxSize});
}
// This adds shadows just below the snowflake so they pop a bit on lighter colored web pages
if(options.shadow){
$('.snowfall-flakes').css({'-moz-box-shadow' : '1px 1px 1px #555', '-webkit-box-shadow' : '1px 1px 1px #555', 'box-shadow' : '1px 1px 1px #555'});
}
// On newer Macbooks Snowflakes will fall based on deviceorientation
var doRatio = false;
if (options.deviceorientation) {
$(window).bind('deviceorientation', function(event) {
doRatio = event.originalEvent.gamma * 0.1;
});
}
// this controls flow of the updating snow
function snow(){
for( i = 0; i < flakes.length; i += 1){
flakes[i].update();
}
snowTimeout = requestAnimationFrame(function(){snow()});
}
snow();
// clears the snowflakes
this.clear = function(){
$('.snowfall-canvas').remove();
$(element).children('.snowfall-flakes').remove();
cancelAnimationFrame(snowTimeout);
}
};
// Initialize the options and the plugin
$.fn.snowfall = function(options){
if(typeof(options) == "object" || options == undefined){
return this.each(function(i){
(new $.snowfall(this, options));
});
}else if (typeof(options) == "string") {
return this.each(function(i){
var snow = $(this).data('snowfall');
if(snow){
snow.clear();
}
});
}
};
})(jQuery);

View File

@ -0,0 +1,283 @@
/* Snowfall pure js
====================================================================
LICENSE
====================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
====================================================================
1.0
Wanted to rewrite my snow plugin to use pure JS so you werent necessarily tied to using a framework.
Does not include a selector engine or anything, just pass elements to it using standard JS selectors.
Does not clear snow currently. Collection portion removed just for ease of testing will add back in next version
Theres a few ways to call the snow you could do it the following way by directly passing the selector,
snowFall.snow(document.getElementsByTagName("body"), {options});
or you could save the selector results to a variable, and then call it
var elements = document.getElementsByClassName('yourclass');
snowFall.snow(elements, {options});
Options are all the same as the plugin except clear, and collection
values for snow options are
flakeCount,
flakeColor,
flakeIndex,
flakePosition,
minSize,
maxSize,
minSpeed,
maxSpeed,
round, true or false, makes the snowflakes rounded if the browser supports it.
shadow true or false, gives the snowflakes a shadow if the browser supports it.
*/
// requestAnimationFrame polyfill from https://github.com/darius/requestAnimationFrame
if (!Date.now)
Date.now = function() { return new Date().getTime(); };
(function() {
'use strict';
var vendors = ['webkit', 'moz'];
for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
var vp = vendors[i];
window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];
window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']
|| window[vp+'CancelRequestAnimationFrame']);
}
if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) // iOS6 is buggy
|| !window.requestAnimationFrame || !window.cancelAnimationFrame) {
var lastTime = 0;
window.requestAnimationFrame = function(callback) {
var now = Date.now();
var nextTime = Math.max(lastTime + 16, now);
return setTimeout(function() { callback(lastTime = nextTime); },
nextTime - now);
};
window.cancelAnimationFrame = clearTimeout;
}
}());
var snowFall = (function(){
function jSnow(){
// local methods
var defaults = {
flakeCount : 35,
flakeColor : '#ffffff',
flakeIndex: 999999,
flakePosition: 'absolute',
minSize : 1,
maxSize : 2,
minSpeed : 1,
maxSpeed : 5,
round : false,
shadow : false,
collection : false,
image : false,
collectionHeight : 40
},
flakes = [],
element = {},
elHeight = 0,
elWidth = 0,
widthOffset = 0,
snowTimeout = 0,
// For extending the default object with properties
extend = function(obj, extObj){
for(var i in extObj){
if(obj.hasOwnProperty(i)){
obj[i] = extObj[i];
}
}
},
// For setting CSS3 transform styles
transform = function (el, styles){
el.style.webkitTransform = styles;
el.style.MozTransform = styles;
el.style.msTransform = styles;
el.style.OTransform = styles;
el.style.transform = styles;
},
// random between range
random = function random(min, max){
return Math.round(min + Math.random()*(max-min));
},
// Set multiple styles at once.
setStyle = function(element, props)
{
for (var property in props){
element.style[property] = props[property] + ((property == 'width' || property == 'height') ? 'px' : '');
}
},
// snowflake
flake = function(_el, _size, _speed)
{
// Flake properties
this.x = random(widthOffset, elWidth - widthOffset);
this.y = random(0, elHeight);
this.size = _size;
this.speed = _speed;
this.step = 0;
this.stepSize = random(1,10) / 100;
if(defaults.collection){
this.target = canvasCollection[random(0,canvasCollection.length-1)];
}
var flakeObj = null;
if(defaults.image){
flakeObj = new Image();
flakeObj.src = defaults.image;
}else{
flakeObj = document.createElement('div');
setStyle(flakeObj, {'background' : defaults.flakeColor});
}
flakeObj.className = 'snowfall-flakes';
setStyle(flakeObj, {'width' : this.size, 'height' : this.size, 'position' : defaults.flakePosition, 'top' : 0, 'left' : 0, 'will-change': 'transform', 'fontSize' : 0, 'zIndex' : defaults.flakeIndex});
// This adds the style to make the snowflakes round via border radius property
if(defaults.round){
setStyle(flakeObj,{'-moz-border-radius' : ~~(defaults.maxSize) + 'px', '-webkit-border-radius' : ~~(defaults.maxSize) + 'px', 'borderRadius' : ~~(defaults.maxSize) + 'px'});
}
// This adds shadows just below the snowflake so they pop a bit on lighter colored web pages
if(defaults.shadow){
setStyle(flakeObj,{'-moz-box-shadow' : '1px 1px 1px #555', '-webkit-box-shadow' : '1px 1px 1px #555', 'boxShadow' : '1px 1px 1px #555'});
}
if(_el.tagName === document.body.tagName){
document.body.appendChild(flakeObj);
}else{
_el.appendChild(flakeObj);
}
this.element = flakeObj;
// Update function, used to update the snow flakes, and checks current snowflake against bounds
this.update = function(){
this.y += this.speed;
if(this.y > elHeight - (this.size + 6)){
this.reset();
}
transform(this.element, 'translateY('+this.y+'px) translateX('+this.x+'px)');
this.step += this.stepSize;
this.x += Math.cos(this.step);
if(this.x + this.size > elWidth - widthOffset || this.x < widthOffset){
this.reset();
}
}
// Resets the snowflake once it reaches one of the bounds set
this.reset = function(){
this.y = 0;
this.x = random(widthOffset, elWidth - widthOffset);
this.stepSize = random(1,10) / 100;
this.size = random((defaults.minSize * 100), (defaults.maxSize * 100)) / 100;
this.element.style.width = this.size + 'px';
this.element.style.height = this.size + 'px';
this.speed = random(defaults.minSpeed, defaults.maxSpeed);
}
},
// this controls flow of the updating snow
animateSnow = function(){
for(var i = 0; i < flakes.length; i += 1){
flakes[i].update();
}
snowTimeout = requestAnimationFrame(function(){animateSnow()});
}
return{
snow : function(_element, _options){
extend(defaults, _options);
//init the element vars
element = _element;
elHeight = element.offsetHeight;
elWidth = element.offsetWidth;
element.snow = this;
// if this is the body the offset is a little different
if(element.tagName.toLowerCase() === 'body'){
widthOffset = 25;
}
// Bind the window resize event so we can get the innerHeight again
window.addEventListener('resize', function(){
elHeight = element.clientHeight;
elWidth = element.offsetWidth;
}, true);
// initialize the flakes
for(i = 0; i < defaults.flakeCount; i+=1){
flakes.push(new flake(element, random((defaults.minSize * 100), (defaults.maxSize * 100)) / 100, random(defaults.minSpeed, defaults.maxSpeed)));
}
// start the snow
animateSnow();
},
clear : function(){
var flakeChildren = null;
if(!element.getElementsByClassName){
flakeChildren = element.querySelectorAll('.snowfall-flakes');
}else{
flakeChildren = element.getElementsByClassName('snowfall-flakes');
}
var flakeChilLen = flakeChildren.length;
while(flakeChilLen--){
if(flakeChildren[flakeChilLen].parentNode === element){
element.removeChild(flakeChildren[flakeChilLen]);
}
}
cancelAnimationFrame(snowTimeout);
}
}
};
return{
snow : function(elements, options){
if(typeof(options) == 'string'){
if(elements.length > 0){
for(var i = 0; i < elements.length; i++){
if(elements[i].snow){
elements[i].snow.clear();
}
}
}else{
elements.snow.clear();
}
}else{
if(elements.length > 0){
for(var i = 0; i < elements.length; i++){
new jSnow().snow(elements[i], options);
}
}else{
new jSnow().snow(elements, options);
}
}
}
}
})();

View File

@ -0,0 +1,4 @@
.picker,.picker__holder{width:100%;position:absolute}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #aaa;border-top-width:0;border-bottom-width:0;border-radius:0 0 5px 5px;box-sizing:border-box;min-width:176px;max-width:466px;max-height:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transform:translateY(-1em) perspective(600px) rotateX(10deg);transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s .15s,border-width 0s .15s}/*!
* Classic picker styling for pickadate.js
* Demo: http://amsul.github.io/pickadate.js
*/.picker__frame{padding:1px}.picker__wrap{margin:-1px}.picker--opened .picker__holder{max-height:25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1;border-top-width:1px;border-bottom-width:1px;transform:translateY(0) perspective(600px) rotateX(0);transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s,border-width 0s;box-shadow:0 6px 18px 1px rgba(0,0,0,.12)}

View File

@ -0,0 +1 @@
.picker__footer,.picker__header,.picker__table{text-align:center}.picker__box{padding:0 1em}.picker__header{position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}.picker__nav--next,.picker__nav--prev{top:-.33em}.picker__nav--prev{padding-right:1.5em}.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover,.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}

View File

@ -0,0 +1 @@
.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover,.picker__list-item:hover{color:#000;background:#b1dcfb;cursor:pointer}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff;border-color:#fff}.picker--time{min-width:256px;max-width:320px}.picker--time .picker__holder{background:#f2f2f2}@media (min-height:40.125em){.picker--time .picker__holder{font-size:.875em}}.picker--time .picker__box{padding:0;position:relative}

View File

@ -0,0 +1,4 @@
.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;position:fixed;transition:background .15s ease-out,transform 0s .15s;-webkit-backface-visibility:hidden}/*!
* Default mobile-first, responsive styling for pickadate.js
* Demo: http://amsul.github.io/pickadate.js
*/.picker__frame,.picker__holder{top:0;bottom:0;left:0;right:0;-ms-transform:translateY(100%);transform:translateY(100%)}.picker__frame{position:absolute;margin:0 auto;min-width:256px;max-width:666px;width:100%;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:33.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:26.5em){.picker__box{font-size:1.25em}}@media (min-height:33.875em){.picker__box{display:block;font-size:1.33em;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}.picker--opened .picker__frame{top:auto;bottom:0}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}.picker__box{font-size:1.5em;border-bottom-width:1px;border-radius:5px}}.picker--opened .picker__holder{-ms-transform:translateY(0);transform:translateY(0);zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{-ms-transform:translateY(0);transform:translateY(0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}

View File

@ -0,0 +1 @@
.picker__footer,.picker__header,.picker__table{text-align:center}.picker__box{padding:0 1em}.picker__header{position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-.5em}.picker__nav--next,.picker__nav--prev{top:-.33em}.picker__nav--prev{padding-right:1.5em}.picker__nav--next{padding-left:1.5em}}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:0 0;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover,.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:#0089ec;outline:0}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}

View File

@ -0,0 +1 @@
.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover,.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:0 0;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:0}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff;border-color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}

View File

@ -0,0 +1,3 @@
/*!
* Styling for RTL (right-to-left) languages using pickadate.js
*/.picker{direction:rtl}.picker__nav--next{right:auto;left:-1em}.picker__nav--prev{left:auto;right:-1em}.picker__nav--next:before{border-left:0;border-right:.75em solid #000}.picker__nav--prev:before{border-right:0;border-left:.75em solid #000}

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","اغسطس","سبتمبر","اكتوبر","نوفمبر","ديسمبر"],weekdaysFull:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],weekdaysShort:["الاحد","الاثنين","الثلاثاء","الاربعاء","الخميس","الجمعة","السبت"],today:"اليوم",clear:"مسح",format:"yyyy mmmm dd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"مسح"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"],monthsShort:["янр","фев","мар","апр","май","юни","юли","авг","сеп","окт","ное","дек"],weekdaysFull:["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"],weekdaysShort:["нд","пн","вт","ср","чт","пт","сб"],today:"днес",clear:"изтривам",firstDay:1,format:"d mmmm yyyy г.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"изтривам"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","mart","april","maj","juni","juli","august","septembar","oktobar","novembar","decembar"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","cetvrtak","petak","subota"],weekdaysShort:["ne","po","ut","sr","če","pe","su"],today:"danas",clear:"izbrisati",firstDay:1,format:"dd. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"izbrisati"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Gener","Febrer","Març","Abril","Maig","juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],weekdaysFull:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],weekdaysShort:["diu","dil","dim","dmc","dij","div","dis"],today:"avui",clear:"esborra",close:"tanca",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"esborra"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthsShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],weekdaysFull:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],weekdaysShort:["ne","po","út","st","čt","pá","so"],today:"dnes",clear:"vymazat",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd",close:"zavřít"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"vymazat"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],weekdaysFull:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],weekdaysShort:["søn","man","tir","ons","tor","fre","lør"],today:"i dag",clear:"slet",close:"luk",firstDay:1,format:"d. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"slet"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],weekdaysFull:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],weekdaysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],today:"Heute",clear:"Löschen",close:"Schließen",firstDay:1,format:"dddd, dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Löschen",format:"H:i"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],weekdaysFull:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],weekdaysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],today:"σήμερα",clear:"Διαγραφή",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Διαγραφή"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],weekdaysFull:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],weekdaysShort:["dom","lun","mar","mié","jue","vie","sáb"],today:"Hoy",clear:"Borrar",close:"Cerrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Borrar"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["jaanuar","veebruar","märts","aprill","mai","juuni","juuli","august","september","oktoober","november","detsember"],monthsShort:["jaan","veebr","märts","apr","mai","juuni","juuli","aug","sept","okt","nov","dets"],weekdaysFull:["pühapäev","esmaspäev","teisipäev","kolmapäev","neljapäev","reede","laupäev"],weekdaysShort:["püh","esm","tei","kol","nel","ree","lau"],today:"täna",clear:"kustuta",firstDay:1,format:"d. mmmm yyyy. a",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"kustuta"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthsShort:["urt","ots","mar","api","mai","eka","uzt","abu","ira","urr","aza","abe"],weekdaysFull:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],weekdaysShort:["ig.","al.","ar.","az.","og.","or.","lr."],today:"gaur",clear:"garbitu",firstDay:1,format:"dddd, yyyy(e)ko mmmmren da",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"garbitu"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],weekdaysFull:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],weekdaysShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],today:"امروز",clear:"پاک کردن",close:"بستن",format:"yyyy mmmm dd",formatSubmit:"yyyy/mm/dd",labelMonthNext:"ماه بعدی",labelMonthPrev:"ماه قبلی"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"پاک کردن"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],weekdaysFull:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],weekdaysShort:["su","ma","ti","ke","to","pe","la"],today:"tänään",clear:"tyhjennä",firstDay:1,format:"d.m.yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"tyhjennä"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aou","Sep","Oct","Nov","Dec"],weekdaysFull:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],weekdaysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],today:"Aujourd'hui",clear:"Effacer",close:"Fermer",firstDay:1,format:"dd mmmm yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"Mois suivant",labelMonthPrev:"Mois précédent",labelMonthSelect:"Sélectionner un mois",labelYearSelect:"Sélectionner une année"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Effacer",format:"H:i"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარტ","აპრ","მაი","ივნ","ივლ","აგვ","სექტ","ოქტ","ნოემ","დეკ"],weekdaysFull:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუშაბათი","პარასკევი","შაბათი"],weekdaysShort:["კვ","ორ","სამ","ოთხ","ხუთ","პარ","შაბ"],today:"დღეს",clear:"გასუფთავება",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"გასუფთავება"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["xan","feb","mar","abr","mai","xun","xul","ago","sep","out","nov","dec"],weekdaysFull:["domingo","luns","martes","mércores","xoves","venres","sábado"],weekdaysShort:["dom","lun","mar","mér","xov","ven","sab"],today:"hoxe",clear:"borrar",firstDay:1,format:"dddd d !de mmmm !de yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"borrar"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],weekdaysFull:["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום ששי","יום שבת"],weekdaysShort:["א","ב","ג","ד","ה","ו","ש"],today:"היום",clear:"למחוק",format:"yyyy mmmmב d dddd",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"למחוק"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["जनवरी","फरवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthsShort:["जन","फर","मार्च","अप्रैल","मई","जून","जु","अग","सित","अक्टू","नव","दिस"],weekdaysFull:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],weekdaysShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],today:"आज की तारीख चयन करें",clear:"चुनी हुई तारीख को मिटाएँ",close:"विंडो बंद करे",firstDay:1,format:"dd/mm/yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"अगले माह का चयन करें",labelMonthPrev:"पिछले माह का चयन करें",labelMonthSelect:"किसि एक महीने का चयन करें",labelYearSelect:"किसि एक वर्ष का चयन करें"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"चुनी हुई तारीख को मिटाएँ"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac"],monthsShort:["sij","velj","ožu","tra","svi","lip","srp","kol","ruj","lis","stu","pro"],weekdaysFull:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"],weekdaysShort:["ned","pon","uto","sri","čet","pet","sub"],today:"Danas",clear:"Izbriši",close:"Zatvori",firstDay:1,format:"d. mmmm yyyy.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Izbriši"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","febr","márc","ápr","máj","jún","júl","aug","szept","okt","nov","dec"],weekdaysFull:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],weekdaysShort:["V","H","K","Sze","CS","P","Szo"],today:"Ma",clear:"Törlés",close:"Bezárás",firstDay:1,format:"yyyy. mmmm dd.",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Törlés"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"],weekdaysFull:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],weekdaysShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],today:"hari ini",clear:"menghapus",firstDay:1,format:"d mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"menghapus"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["janúar","febrúar","mars","apríl","maí","júní","júlí","ágúst","september","október","nóvember","desember"],monthsShort:["jan","feb","mar","apr","maí","jún","júl","ágú","sep","okt","nóv","des"],weekdaysFull:["sunnudagur","mánudagur","þriðjudagur","miðvikudagur","fimmtudagur","föstudagur","laugardagur"],weekdaysShort:["sun","mán","þri","mið","fim","fös","lau"],today:"Í dag",clear:"Hreinsa",firstDay:1,format:"dd. mmmm yyyy",formatSubmit:"yyyy/mm/dd"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Hreinsa"});

View File

@ -0,0 +1 @@
jQuery.extend(jQuery.fn.pickadate.defaults,{monthsFull:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],monthsShort:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],weekdaysFull:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],weekdaysShort:["dom","lun","mar","mer","gio","ven","sab"],today:"Oggi",clear:"Cancella",close:"Chiudi",firstDay:1,format:"dddd d mmmm yyyy",formatSubmit:"yyyy/mm/dd",labelMonthNext:"Mese successivo",labelMonthPrev:"Mese precedente",labelMonthSelect:"Seleziona un mese",labelYearSelect:"Seleziona un anno"}),jQuery.extend(jQuery.fn.pickatime.defaults,{clear:"Cancella",format:"HH:i",formatSubmit:"HH:i"});

Some files were not shown because too many files have changed in this diff Show More