mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-01 17:22:11 +00:00
search detail
This commit is contained in:
parent
76ad67307b
commit
53e4dc7acb
@ -18,4 +18,14 @@ class Log(models.Model):
|
|||||||
class Alert(models.Model):
|
class Alert(models.Model):
|
||||||
msg = models.CharField(max_length=20)
|
msg = models.CharField(max_length=20)
|
||||||
time = models.DateTimeField(null=True)
|
time = models.DateTimeField(null=True)
|
||||||
is_finished = models.BigIntegerField(default=False)
|
is_finished = models.BigIntegerField(default=False)
|
||||||
|
|
||||||
|
|
||||||
|
class TtyLog(models.Model):
|
||||||
|
log_id = models.IntegerField(max_length=50)
|
||||||
|
username = models.CharField(max_length=100)
|
||||||
|
host = models.CharField(max_length=100)
|
||||||
|
remote_ip = models.CharField(max_length=100)
|
||||||
|
datetime = models.DateTimeField()
|
||||||
|
cmd = models.CharField(max_length=200)
|
||||||
|
|
||||||
|
14
jlog/urls.py
14
jlog/urls.py
@ -3,10 +3,10 @@ from django.conf.urls import patterns, include, url
|
|||||||
from jlog.views import *
|
from jlog.views import *
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^$', log_list),
|
url(r'^$', log_list),
|
||||||
url(r'^log_list/(\w+)/$', log_list),
|
url(r'^log_list/(\w+)/$', log_list),
|
||||||
# url(r'^log_kill/', log_kill),
|
# url(r'^log_kill/', log_kill),
|
||||||
url(r'^history/$', log_history),
|
url(r'^history/$', log_history),
|
||||||
url(r'^record/$', log_record),
|
url(r'^record/$', log_record),
|
||||||
# url(r'^search/$', log_search),
|
url(r'^search/$', log_search),
|
||||||
)
|
)
|
@ -92,17 +92,14 @@ def log_list(request, offset):
|
|||||||
def log_history(request):
|
def log_history(request):
|
||||||
""" 命令历史记录 """
|
""" 命令历史记录 """
|
||||||
log_id = request.GET.get('id', 0)
|
log_id = request.GET.get('id', 0)
|
||||||
log = Log.objects.filter(id=int(log_id))
|
tty_logs = TtyLog.objects.filter(log_id=int(log_id)).order_by('datetime')
|
||||||
if log:
|
if tty_logs:
|
||||||
log = log[0]
|
content = ''
|
||||||
log_his = "%s.his" % log.log_path
|
for tty_log in tty_logs:
|
||||||
print log_his
|
content += '%s: %s\n' % (tty_log.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), tty_log.cmd)
|
||||||
if os.path.isfile(log_his):
|
return HttpResponse(content)
|
||||||
f = open(log_his)
|
else:
|
||||||
content = f.read()
|
return HttpResponse('无日志记录, 请查看日志处理脚本是否开启!')
|
||||||
return HttpResponse(content)
|
|
||||||
else:
|
|
||||||
return HttpResponse('无日志记录, 请查看日志处理脚本是否开启!')
|
|
||||||
|
|
||||||
|
|
||||||
def log_record(request):
|
def log_record(request):
|
||||||
@ -119,6 +116,10 @@ def log_record(request):
|
|||||||
return HttpResponse('无日志记录, 请查看日志处理脚本是否开启!')
|
return HttpResponse('无日志记录, 请查看日志处理脚本是否开启!')
|
||||||
|
|
||||||
|
|
||||||
|
def log_search(request):
|
||||||
|
print request.GET
|
||||||
|
return render_to_response('jlog/log_filter.html', locals())
|
||||||
|
|
||||||
# def log_search(request):
|
# def log_search(request):
|
||||||
# """ 日志搜索 """
|
# """ 日志搜索 """
|
||||||
# offset = request.GET.get('env', '')
|
# offset = request.GET.get('env', '')
|
||||||
|
@ -20,7 +20,7 @@ from django.template import RequestContext
|
|||||||
from juser.models import User, UserGroup
|
from juser.models import User, UserGroup
|
||||||
from jasset.models import Asset, AssetGroup
|
from jasset.models import Asset, AssetGroup
|
||||||
from jasset.models import AssetAlias
|
from jasset.models import AssetAlias
|
||||||
from jlog.models import Log
|
from jlog.models import Log, TtyLog
|
||||||
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
@ -202,7 +202,6 @@ class Jtty(object):
|
|||||||
try:
|
try:
|
||||||
log_file_f = open(log_file_path + '.log', 'a')
|
log_file_f = open(log_file_path + '.log', 'a')
|
||||||
log_time_f = open(log_file_path + '.time', 'a')
|
log_time_f = open(log_file_path + '.time', 'a')
|
||||||
log_res_f = open(log_file_path + '.his', 'a')
|
|
||||||
except IOError:
|
except IOError:
|
||||||
raise ServerError('Create logfile failed, Please modify %s permission.' % today_connect_log_dir)
|
raise ServerError('Create logfile failed, Please modify %s permission.' % today_connect_log_dir)
|
||||||
|
|
||||||
@ -210,14 +209,14 @@ class Jtty(object):
|
|||||||
log_path=log_file_path, start_time=datetime.datetime.now(), pid=pid)
|
log_path=log_file_path, start_time=datetime.datetime.now(), pid=pid)
|
||||||
log_file_f.write('Start time is %s\n' % datetime.datetime.now())
|
log_file_f.write('Start time is %s\n' % datetime.datetime.now())
|
||||||
log.save()
|
log.save()
|
||||||
return log_file_f, log_time_f, log_res_f, log
|
return log_file_f, log_time_f, ip_list, log
|
||||||
|
|
||||||
def posix_shell(self):
|
def posix_shell(self):
|
||||||
"""
|
"""
|
||||||
Use paramiko channel connect server interactive.
|
Use paramiko channel connect server interactive.
|
||||||
使用paramiko模块的channel,连接后端,进入交互式
|
使用paramiko模块的channel,连接后端,进入交互式
|
||||||
"""
|
"""
|
||||||
log_file_f, log_time_f, log_res_f, log = self.log_record()
|
log_file_f, log_time_f, ip_list, log = self.log_record()
|
||||||
old_tty = termios.tcgetattr(sys.stdin)
|
old_tty = termios.tcgetattr(sys.stdin)
|
||||||
pre_timestamp = time.time()
|
pre_timestamp = time.time()
|
||||||
input_r = ''
|
input_r = ''
|
||||||
@ -261,8 +260,7 @@ class Jtty(object):
|
|||||||
|
|
||||||
if str(x) in ['\r', '\n', '\r\n']:
|
if str(x) in ['\r', '\n', '\r\n']:
|
||||||
input_r = remove_control_char(input_r)
|
input_r = remove_control_char(input_r)
|
||||||
log_res_f.write('%s: %s\n' % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), input_r))
|
TtyLog(log_id=log.id, username=self.username, host=self.ip, remote_ip=ip_list, datetime=datetime.datetime.now(), cmd=input_r).save()
|
||||||
log_res_f.flush()
|
|
||||||
input_r = ''
|
input_r = ''
|
||||||
input_mode = False
|
input_mode = False
|
||||||
|
|
||||||
|
BIN
static/css/plugins/chosen/chosen-sprite.png
Executable file
BIN
static/css/plugins/chosen/chosen-sprite.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 646 B |
BIN
static/css/plugins/chosen/chosen-sprite@2x.png
Executable file
BIN
static/css/plugins/chosen/chosen-sprite@2x.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 872 B |
429
static/css/plugins/chosen/chosen.css
Executable file
429
static/css/plugins/chosen/chosen.css
Executable file
@ -0,0 +1,429 @@
|
|||||||
|
/*!
|
||||||
|
Chosen, a Select Box Enhancer for jQuery and Prototype
|
||||||
|
by Patrick Filler for Harvest, http://getharvest.com
|
||||||
|
|
||||||
|
Version 1.1.0
|
||||||
|
Full source at https://github.com/harvesthq/chosen
|
||||||
|
Copyright (c) 2011 Harvest http://getharvest.com
|
||||||
|
|
||||||
|
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
|
||||||
|
This file is generated by `grunt build`, do not edit it by hand.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* @group Base */
|
||||||
|
.chosen-container {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 13px;
|
||||||
|
zoom: 1;
|
||||||
|
*display: inline;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-drop {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: -9999px;
|
||||||
|
z-index: 1010;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-top: 0;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
.chosen-container.chosen-with-drop .chosen-drop {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.chosen-container a {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Single Chosen */
|
||||||
|
.chosen-container-single .chosen-single {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0 0 0 8px;
|
||||||
|
height: 23px;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #fff;
|
||||||
|
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
||||||
|
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||||
|
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||||
|
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||||
|
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||||
|
background-clip: padding-box;
|
||||||
|
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
|
color: #444;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-default {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single span {
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 26px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single-with-deselect span {
|
||||||
|
margin-right: 38px;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single abbr {
|
||||||
|
position: absolute;
|
||||||
|
top: 6px;
|
||||||
|
right: 26px;
|
||||||
|
display: block;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||||
|
font-size: 1px;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single abbr:hover {
|
||||||
|
background-position: -42px -10px;
|
||||||
|
}
|
||||||
|
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
|
||||||
|
background-position: -42px -10px;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single div {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
display: block;
|
||||||
|
width: 18px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-single div b {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url('chosen-sprite.png') no-repeat 0px 2px;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-search {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1010;
|
||||||
|
margin: 0;
|
||||||
|
padding: 3px 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-search input[type="text"] {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 1px 0;
|
||||||
|
padding: 4px 20px 4px 5px;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
outline: 0;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
background: white url('chosen-sprite.png') no-repeat 100% -20px;
|
||||||
|
background: url('chosen-sprite.png') no-repeat 100% -20px;
|
||||||
|
font-size: 1em;
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: normal;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.chosen-container-single .chosen-drop {
|
||||||
|
margin-top: -1px;
|
||||||
|
border-radius: 0 0 4px 4px;
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
|
||||||
|
position: absolute;
|
||||||
|
left: -9999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Results */
|
||||||
|
.chosen-container .chosen-results {
|
||||||
|
position: relative;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
margin: 0 4px 4px 0;
|
||||||
|
padding: 0 0 0 4px;
|
||||||
|
max-height: 240px;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li {
|
||||||
|
display: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px 6px;
|
||||||
|
list-style: none;
|
||||||
|
line-height: 15px;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.active-result {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.disabled-result {
|
||||||
|
display: list-item;
|
||||||
|
color: #ccc;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.highlighted {
|
||||||
|
background-color: #3875d7;
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
||||||
|
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||||
|
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||||
|
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||||
|
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.no-results {
|
||||||
|
display: list-item;
|
||||||
|
background: #f4f4f4;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.group-result {
|
||||||
|
display: list-item;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li.group-option {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.chosen-container .chosen-results li em {
|
||||||
|
font-style: normal;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Multi Chosen */
|
||||||
|
.chosen-container-multi .chosen-choices {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border: 1px solid #CBD5DD;
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: text;
|
||||||
|
height: auto !important;
|
||||||
|
margin: 0;
|
||||||
|
min-height: 30px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 2px;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li {
|
||||||
|
float: left;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-field {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
|
||||||
|
margin: 1px 0;
|
||||||
|
padding: 5px;
|
||||||
|
height: 25px;
|
||||||
|
outline: 0;
|
||||||
|
border: 0 !important;
|
||||||
|
background: transparent !important;
|
||||||
|
box-shadow: none;
|
||||||
|
color: #666;
|
||||||
|
font-size: 100%;
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: normal;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-field .default {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice {
|
||||||
|
position: relative;
|
||||||
|
margin: 3px 0 3px 5px;
|
||||||
|
padding: 3px 20px 3px 5px;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||||
|
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-clip: padding-box;
|
||||||
|
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||||
|
color: #333;
|
||||||
|
line-height: 13px;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
right: 3px;
|
||||||
|
display: block;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||||
|
font-size: 1px;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
|
||||||
|
background-position: -42px -10px;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice-disabled {
|
||||||
|
padding-right: 5px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||||
|
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice-focus {
|
||||||
|
background: #d4d4d4;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
|
||||||
|
background-position: -42px -10px;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-results {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.chosen-container-multi .chosen-drop .result-selected {
|
||||||
|
display: list-item;
|
||||||
|
color: #ccc;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Active */
|
||||||
|
.chosen-container-active .chosen-single {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.chosen-container-active.chosen-with-drop .chosen-single {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
-moz-border-radius-bottomright: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
-moz-border-radius-bottomleft: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
||||||
|
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||||
|
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||||
|
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||||
|
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||||
|
box-shadow: 0 1px 0 #fff inset;
|
||||||
|
}
|
||||||
|
.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||||
|
border-left: none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.chosen-container-active.chosen-with-drop .chosen-single div b {
|
||||||
|
background-position: -18px 2px;
|
||||||
|
}
|
||||||
|
.chosen-container-active .chosen-choices {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
|
||||||
|
color: #111 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Disabled Support */
|
||||||
|
.chosen-disabled {
|
||||||
|
opacity: 0.5 !important;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.chosen-disabled .chosen-single {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Right to Left */
|
||||||
|
.chosen-rtl {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-single {
|
||||||
|
overflow: visible;
|
||||||
|
padding: 0 8px 0 0;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-single span {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 26px;
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-single-with-deselect span {
|
||||||
|
margin-left: 38px;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-single div {
|
||||||
|
right: auto;
|
||||||
|
left: 3px;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-single abbr {
|
||||||
|
right: auto;
|
||||||
|
left: 26px;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-choices li {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-choices li.search-choice {
|
||||||
|
margin: 3px 5px 3px 0;
|
||||||
|
padding: 3px 5px 3px 19px;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
|
||||||
|
right: auto;
|
||||||
|
left: 4px;
|
||||||
|
}
|
||||||
|
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
|
||||||
|
.chosen-rtl .chosen-drop {
|
||||||
|
left: 9999px;
|
||||||
|
}
|
||||||
|
.chosen-rtl.chosen-container-single .chosen-results {
|
||||||
|
margin: 0 0 4px 4px;
|
||||||
|
padding: 0 4px 0 0;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-results li.group-option {
|
||||||
|
padding-right: 15px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.chosen-rtl .chosen-search input[type="text"] {
|
||||||
|
padding: 4px 5px 4px 20px;
|
||||||
|
background: white url('chosen-sprite.png') no-repeat -30px -20px;
|
||||||
|
background: url('chosen-sprite.png') no-repeat -30px -20px;
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.chosen-rtl.chosen-container-single .chosen-single div b {
|
||||||
|
background-position: 6px 2px;
|
||||||
|
}
|
||||||
|
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
|
||||||
|
background-position: -12px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @end */
|
||||||
|
/* @group Retina compatibility */
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
|
||||||
|
.chosen-rtl .chosen-search input[type="text"],
|
||||||
|
.chosen-container-single .chosen-single abbr,
|
||||||
|
.chosen-container-single .chosen-single div b,
|
||||||
|
.chosen-container-single .chosen-search input[type="text"],
|
||||||
|
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
|
||||||
|
.chosen-container .chosen-results-scroll-down span,
|
||||||
|
.chosen-container .chosen-results-scroll-up span {
|
||||||
|
background-image: url('chosen-sprite@2x.png') !important;
|
||||||
|
background-size: 52px 37px !important;
|
||||||
|
background-repeat: no-repeat !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* @end */
|
789
static/css/plugins/datapicker/datepicker3.css
Executable file
789
static/css/plugins/datapicker/datepicker3.css
Executable file
@ -0,0 +1,789 @@
|
|||||||
|
/*!
|
||||||
|
* Datepicker for Bootstrap
|
||||||
|
*
|
||||||
|
* Copyright 2012 Stefan Petre
|
||||||
|
* Improvements by Andrew Rowls
|
||||||
|
* Licensed under the Apache License v2.0
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
.datepicker {
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
direction: ltr;
|
||||||
|
/*.dow {
|
||||||
|
border-top: 1px solid #ddd !important;
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
.datepicker-inline {
|
||||||
|
width: 220px;
|
||||||
|
}
|
||||||
|
.datepicker.datepicker-rtl {
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.datepicker.datepicker-rtl table tr td span {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown:before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
border-left: 7px solid transparent;
|
||||||
|
border-right: 7px solid transparent;
|
||||||
|
border-bottom: 7px solid #ccc;
|
||||||
|
border-top: 0;
|
||||||
|
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown:after {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
border-left: 6px solid transparent;
|
||||||
|
border-right: 6px solid transparent;
|
||||||
|
border-bottom: 6px solid #fff;
|
||||||
|
border-top: 0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-left:before {
|
||||||
|
left: 6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-left:after {
|
||||||
|
left: 7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-right:before {
|
||||||
|
right: 6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-right:after {
|
||||||
|
right: 7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-top:before {
|
||||||
|
top: -7px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-top:after {
|
||||||
|
top: -6px;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:before {
|
||||||
|
bottom: -7px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 7px solid #999;
|
||||||
|
}
|
||||||
|
.datepicker-dropdown.datepicker-orient-bottom:after {
|
||||||
|
bottom: -6px;
|
||||||
|
border-bottom: 0;
|
||||||
|
border-top: 6px solid #fff;
|
||||||
|
}
|
||||||
|
.datepicker > div {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.datepicker.days div.datepicker-days {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.datepicker.months div.datepicker-months {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.datepicker.years div.datepicker-years {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.datepicker table {
|
||||||
|
margin: 0;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td,
|
||||||
|
.datepicker table tr th {
|
||||||
|
text-align: center;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.table-striped .datepicker table tr td,
|
||||||
|
.table-striped .datepicker table tr th {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.day:hover,
|
||||||
|
.datepicker table tr td.day.focused {
|
||||||
|
background: #eeeeee;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.old,
|
||||||
|
.datepicker table tr td.new {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.disabled,
|
||||||
|
.datepicker table tr td.disabled:hover {
|
||||||
|
background: none;
|
||||||
|
color: #999999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today,
|
||||||
|
.datepicker table tr td.today:hover,
|
||||||
|
.datepicker table tr td.today.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffdb99;
|
||||||
|
border-color: #ffb733;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today:hover,
|
||||||
|
.datepicker table tr td.today:hover:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.today:focus,
|
||||||
|
.datepicker table tr td.today:hover:focus,
|
||||||
|
.datepicker table tr td.today.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.today:active,
|
||||||
|
.datepicker table tr td.today:hover:active,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today.active,
|
||||||
|
.datepicker table tr td.today:hover.active,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffcd70;
|
||||||
|
border-color: #f59e00;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today:active,
|
||||||
|
.datepicker table tr td.today:hover:active,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today.active,
|
||||||
|
.datepicker table tr td.today:hover.active,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.today.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today.disabled,
|
||||||
|
.datepicker table tr td.today:hover.disabled,
|
||||||
|
.datepicker table tr td.today.disabled.disabled,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.today[disabled],
|
||||||
|
.datepicker table tr td.today:hover[disabled],
|
||||||
|
.datepicker table tr td.today.disabled[disabled],
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled],
|
||||||
|
fieldset[disabled] .datepicker table tr td.today,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover,
|
||||||
|
.datepicker table tr td.today:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.today[disabled]:hover,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.today.disabled:focus,
|
||||||
|
.datepicker table tr td.today:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.today[disabled]:focus,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.today.disabled:active,
|
||||||
|
.datepicker table tr td.today:hover.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.today[disabled]:active,
|
||||||
|
.datepicker table tr td.today:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.today.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.today.disabled.active,
|
||||||
|
.datepicker table tr td.today:hover.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.today.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.today[disabled].active,
|
||||||
|
.datepicker table tr td.today:hover[disabled].active,
|
||||||
|
.datepicker table tr td.today.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.today.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.today.disabled:hover.active {
|
||||||
|
background-color: #ffdb99;
|
||||||
|
border-color: #ffb733;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today:hover:hover {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.today.active:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range,
|
||||||
|
.datepicker table tr td.range:hover,
|
||||||
|
.datepicker table tr td.range.disabled,
|
||||||
|
.datepicker table tr td.range.disabled:hover {
|
||||||
|
background: #eeeeee;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today,
|
||||||
|
.datepicker table tr td.range.today:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #f7ca77;
|
||||||
|
border-color: #f1a417;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today:hover,
|
||||||
|
.datepicker table tr td.range.today:hover:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.range.today:focus,
|
||||||
|
.datepicker table tr td.range.today:hover:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.range.today:active,
|
||||||
|
.datepicker table tr td.range.today:hover:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today.active,
|
||||||
|
.datepicker table tr td.range.today:hover.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #f4bb51;
|
||||||
|
border-color: #bf800c;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today:active,
|
||||||
|
.datepicker table tr td.range.today:hover:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today.active,
|
||||||
|
.datepicker table tr td.range.today:hover.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.range.today.disabled,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.range.today[disabled],
|
||||||
|
.datepicker table tr td.range.today:hover[disabled],
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled],
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled],
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.range.today[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.range.today.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.range.today[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.range.today.disabled:active,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.range.today[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active,
|
||||||
|
.datepicker table tr td.range.today.disabled.active,
|
||||||
|
.datepicker table tr td.range.today:hover.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.range.today[disabled].active,
|
||||||
|
.datepicker table tr td.range.today:hover[disabled].active,
|
||||||
|
.datepicker table tr td.range.today.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.range.today.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active {
|
||||||
|
background-color: #f7ca77;
|
||||||
|
border-color: #f1a417;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected,
|
||||||
|
.datepicker table tr td.selected:hover,
|
||||||
|
.datepicker table tr td.selected.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #999999;
|
||||||
|
border-color: #555555;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected:hover,
|
||||||
|
.datepicker table tr td.selected:hover:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.selected:focus,
|
||||||
|
.datepicker table tr td.selected:hover:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.selected:active,
|
||||||
|
.datepicker table tr td.selected:hover:active,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected.active,
|
||||||
|
.datepicker table tr td.selected:hover.active,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #858585;
|
||||||
|
border-color: #373737;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected:active,
|
||||||
|
.datepicker table tr td.selected:hover:active,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected.active,
|
||||||
|
.datepicker table tr td.selected:hover.active,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.selected.disabled,
|
||||||
|
.datepicker table tr td.selected:hover.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.selected[disabled],
|
||||||
|
.datepicker table tr td.selected:hover[disabled],
|
||||||
|
.datepicker table tr td.selected.disabled[disabled],
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled],
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.selected[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.selected.disabled:focus,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.selected[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.selected.disabled:active,
|
||||||
|
.datepicker table tr td.selected:hover.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.selected[disabled]:active,
|
||||||
|
.datepicker table tr td.selected:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active,
|
||||||
|
.datepicker table tr td.selected.disabled.active,
|
||||||
|
.datepicker table tr td.selected:hover.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.selected[disabled].active,
|
||||||
|
.datepicker table tr td.selected:hover[disabled].active,
|
||||||
|
.datepicker table tr td.selected.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.selected.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active {
|
||||||
|
background-color: #999999;
|
||||||
|
border-color: #555555;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active,
|
||||||
|
.datepicker table tr td.active:hover,
|
||||||
|
.datepicker table tr td.active.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active:hover,
|
||||||
|
.datepicker table tr td.active:hover:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.active:focus,
|
||||||
|
.datepicker table tr td.active:hover:focus,
|
||||||
|
.datepicker table tr td.active.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.active:active,
|
||||||
|
.datepicker table tr td.active:hover:active,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active.active,
|
||||||
|
.datepicker table tr td.active:hover.active,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #3276b1;
|
||||||
|
border-color: #285e8e;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active:active,
|
||||||
|
.datepicker table tr td.active:hover:active,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active.active,
|
||||||
|
.datepicker table tr td.active:hover.active,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td.active.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td.active.disabled,
|
||||||
|
.datepicker table tr td.active:hover.disabled,
|
||||||
|
.datepicker table tr td.active.disabled.disabled,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td.active[disabled],
|
||||||
|
.datepicker table tr td.active:hover[disabled],
|
||||||
|
.datepicker table tr td.active.disabled[disabled],
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled],
|
||||||
|
fieldset[disabled] .datepicker table tr td.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover,
|
||||||
|
.datepicker table tr td.active:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td.active[disabled]:hover,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td.active.disabled:focus,
|
||||||
|
.datepicker table tr td.active:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td.active[disabled]:focus,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td.active.disabled:active,
|
||||||
|
.datepicker table tr td.active:hover.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled.disabled:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td.active[disabled]:active,
|
||||||
|
.datepicker table tr td.active:hover[disabled]:active,
|
||||||
|
.datepicker table tr td.active.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td.active.disabled.active,
|
||||||
|
.datepicker table tr td.active:hover.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled.disabled.active,
|
||||||
|
.datepicker table tr td.active.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td.active[disabled].active,
|
||||||
|
.datepicker table tr td.active:hover[disabled].active,
|
||||||
|
.datepicker table tr td.active.disabled[disabled].active,
|
||||||
|
.datepicker table tr td.active.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td.active.disabled:hover.active {
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span {
|
||||||
|
display: block;
|
||||||
|
width: 23%;
|
||||||
|
height: 54px;
|
||||||
|
line-height: 54px;
|
||||||
|
float: left;
|
||||||
|
margin: 1%;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span:hover {
|
||||||
|
background: #eeeeee;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.disabled,
|
||||||
|
.datepicker table tr td span.disabled:hover {
|
||||||
|
background: none;
|
||||||
|
color: #999999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active,
|
||||||
|
.datepicker table tr td span.active:hover,
|
||||||
|
.datepicker table tr td span.active.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active:hover,
|
||||||
|
.datepicker table tr td span.active:hover:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td span.active:focus,
|
||||||
|
.datepicker table tr td span.active:hover:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td span.active:active,
|
||||||
|
.datepicker table tr td span.active:hover:active,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active.active,
|
||||||
|
.datepicker table tr td span.active:hover.active,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #3276b1;
|
||||||
|
border-color: #285e8e;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active:active,
|
||||||
|
.datepicker table tr td span.active:hover:active,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active.active,
|
||||||
|
.datepicker table tr td span.active:hover.active,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active:hover,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled,
|
||||||
|
.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.active.disabled,
|
||||||
|
.datepicker table tr td span.active:hover.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||||
|
.datepicker table tr td span.active[disabled],
|
||||||
|
.datepicker table tr td span.active:hover[disabled],
|
||||||
|
.datepicker table tr td span.active.disabled[disabled],
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled],
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:hover,
|
||||||
|
.datepicker table tr td span.active[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
|
||||||
|
.datepicker table tr td span.active.disabled:focus,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:focus,
|
||||||
|
.datepicker table tr td span.active[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
|
||||||
|
.datepicker table tr td span.active.disabled:active,
|
||||||
|
.datepicker table tr td span.active:hover.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled:active,
|
||||||
|
.datepicker table tr td span.active[disabled]:active,
|
||||||
|
.datepicker table tr td span.active:hover[disabled]:active,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled]:active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled]:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active,
|
||||||
|
.datepicker table tr td span.active.disabled.active,
|
||||||
|
.datepicker table tr td span.active:hover.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled.disabled.active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover.disabled.active,
|
||||||
|
.datepicker table tr td span.active[disabled].active,
|
||||||
|
.datepicker table tr td span.active:hover[disabled].active,
|
||||||
|
.datepicker table tr td span.active.disabled[disabled].active,
|
||||||
|
.datepicker table tr td span.active.disabled:hover[disabled].active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active:hover.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled.active,
|
||||||
|
fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active {
|
||||||
|
background-color: #428bca;
|
||||||
|
border-color: #357ebd;
|
||||||
|
}
|
||||||
|
.datepicker table tr td span.old,
|
||||||
|
.datepicker table tr td span.new {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.datepicker th.datepicker-switch {
|
||||||
|
width: 145px;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th,
|
||||||
|
.datepicker tfoot tr th {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th:hover,
|
||||||
|
.datepicker tfoot tr th:hover {
|
||||||
|
background: #eeeeee;
|
||||||
|
}
|
||||||
|
.datepicker .cw {
|
||||||
|
font-size: 10px;
|
||||||
|
width: 12px;
|
||||||
|
padding: 0 2px 0 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.datepicker thead tr:first-child th.cw {
|
||||||
|
cursor: default;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.input-group.date .input-group-addon i {
|
||||||
|
cursor: pointer;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.input-daterange input {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.input-daterange input:first-child {
|
||||||
|
border-radius: 3px 0 0 3px;
|
||||||
|
}
|
||||||
|
.input-daterange input:last-child {
|
||||||
|
border-radius: 0 3px 3px 0;
|
||||||
|
}
|
||||||
|
.input-daterange .input-group-addon {
|
||||||
|
width: auto;
|
||||||
|
min-width: 16px;
|
||||||
|
padding: 4px 5px;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
border-width: 1px 0;
|
||||||
|
margin-left: -5px;
|
||||||
|
margin-right: -5px;
|
||||||
|
}
|
||||||
|
.datepicker.dropdown-menu {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1000;
|
||||||
|
float: left;
|
||||||
|
display: none;
|
||||||
|
min-width: 160px;
|
||||||
|
list-style: none;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
border-radius: 5px;
|
||||||
|
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||||
|
-webkit-background-clip: padding-box;
|
||||||
|
-moz-background-clip: padding;
|
||||||
|
background-clip: padding-box;
|
||||||
|
*border-right-width: 2px;
|
||||||
|
*border-bottom-width: 2px;
|
||||||
|
color: #333333;
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
}
|
||||||
|
.datepicker.dropdown-menu th,
|
||||||
|
.datepicker.dropdown-menu td {
|
||||||
|
padding: 4px 5px;
|
||||||
|
}
|
9
static/js/cropper/cropper.min.js
vendored
Executable file
9
static/js/cropper/cropper.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
1671
static/js/datapicker/bootstrap-datepicker.js
vendored
Executable file
1671
static/js/datapicker/bootstrap-datepicker.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1211
static/js/plugins/chosen/chosen.jquery.js
Executable file
1211
static/js/plugins/chosen/chosen.jquery.js
Executable file
File diff suppressed because it is too large
Load Diff
139
templates/jlog/log_filter.html
Normal file
139
templates/jlog/log_filter.html
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
{% block self_head_css_js %}
|
||||||
|
<link href="/static/css/plugins/datapicker/datepicker3.css" rel="stylesheet">
|
||||||
|
<link href="/static/css/plugins/chosen/chosen.css" rel="stylesheet">
|
||||||
|
<script src="/static/js/plugins/chosen/chosen.jquery.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
{% include 'nav_cat_bar.html' %}
|
||||||
|
|
||||||
|
<div class="wrapper wrapper-content animated fadeInRight">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="ibox float-e-margins">
|
||||||
|
<div id="ibox-content" class="ibox-title">
|
||||||
|
<h5> 用户日志详细信息列表 </h5>
|
||||||
|
<div class="ibox-tools">
|
||||||
|
<a class="collapse-link">
|
||||||
|
<i class="fa fa-chevron-up"></i>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
|
<i class="fa fa-wrench"></i>
|
||||||
|
</a>
|
||||||
|
<a class="close-link">
|
||||||
|
<i class="fa fa-times"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ibox-content">
|
||||||
|
<div class="panel-options">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<li><a href="/jlog/log_list/online/" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
|
||||||
|
<li><a href="/jlog/log_list/offline/" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
|
||||||
|
<li class="active"><a href="/jlog/search/" class="text-center"><i class="fa fa-bar-chart-o"></i> 详细搜索 </a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div class="tab-content">
|
||||||
|
<form method="get" action="" role="form" class="form-inline">
|
||||||
|
<p>
|
||||||
|
选择相应条件进行搜索
|
||||||
|
</p>
|
||||||
|
<div class="form-group" id="data_5">
|
||||||
|
<div class="input-daterange input-group" id="datepicker">
|
||||||
|
<input type="text" class="input-sm form-control" style="width: 100px;" name="start" value="{{ date_seven_day }}">
|
||||||
|
<span class="input-group-addon">to</span>
|
||||||
|
<input type="text" class="input-sm form-control" style="width: 100px;" name="end" value="{{ date_now_str }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<select name="single" data-placeholder="用户名" class="chosen-select" multiple style="width:300px;" tabindex="2">
|
||||||
|
<option value="用户">用户名</option>
|
||||||
|
<option value="Bolivia, Plurinational State of">hongweiguang</option>
|
||||||
|
<option value="Bonaire, Sint Eustatius and Saba">wangyong</option>
|
||||||
|
<option value="Bosnia and Herzegovina">hehe</option>
|
||||||
|
<option value="Botswana">wangyong</option>
|
||||||
|
<option value="Bouvet Island">wangyongd</option>
|
||||||
|
<option value="Romania">Romania</option>
|
||||||
|
<option value="Zambia">Zambia</option>
|
||||||
|
<option value="Zimbabwe">Zimbabwe</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<select name="multi" data-placeholder="主机" class="chosen-select" multiple style="width:200px;" tabindex="4">
|
||||||
|
<option value="主机">主机</option>
|
||||||
|
<option value="United States">172.16.1.1</option>
|
||||||
|
<option value="Afghanistan">172.16.1.1</option>
|
||||||
|
<option value="Aland Islands">172.16.1.1</option>
|
||||||
|
<option value="Albania">172.16.1.1</option>
|
||||||
|
<option value="Algeria">172.16.1.1</option>
|
||||||
|
<option value="American Samoa">172.16.1.1</option>
|
||||||
|
<option value="Andorra">172.16.1.1</option>
|
||||||
|
<option value="Angola">172.16.1.1</option>
|
||||||
|
<option value="Anguilla">172.16.1.1</option>
|
||||||
|
<option value="Antarctica">172.16.1.1</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input id="cmd" name="cmd" placeholder="命令" type="text" class="form-control" style="width: 200px;">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button id="submit_button" class="btn btn-primary" type="submit">搜索</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
</div>
|
||||||
|
{% include 'paginator.html' %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
function log_search(){
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "/jlog/search/?env=offline",
|
||||||
|
data: $("#search_form").serialize(),
|
||||||
|
success: function (data) {
|
||||||
|
$(".tab-content").html(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('#data_5 .input-daterange').datepicker({
|
||||||
|
dateFormat: 'yy-mm-dd',
|
||||||
|
keyboardNavigation: false,
|
||||||
|
forceParse: false,
|
||||||
|
autoclose: true
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
'.chosen-select' : {},
|
||||||
|
'.chosen-select-deselect' : {allow_single_deselect:true},
|
||||||
|
'.chosen-select-no-single' : {disable_search_threshold:10},
|
||||||
|
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
|
||||||
|
'.chosen-select-width' : {width:"95%"}
|
||||||
|
};
|
||||||
|
for (var selector in config) {
|
||||||
|
$(selector).chosen(config[selector]);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
{% block self_footer_js %}
|
||||||
|
<script src="/static/js/cropper/cropper.min.js"></script>
|
||||||
|
<script src="/static/js/datapicker/bootstrap-datepicker.js"></script>
|
||||||
|
<script src="/static/js/plugins/chosen/chosen.jquery.js"></script>
|
||||||
|
{% endblock %}
|
@ -1,6 +1,8 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% block self_head_css_js %}
|
{% block self_head_css_js %}
|
||||||
<link href="/static/css/plugins/datapicker/datepicker3.css" rel="stylesheet">
|
<link href="/static/css/plugins/datapicker/datepicker3.css" rel="stylesheet">
|
||||||
|
<link href="/static/css/plugins/chosen/chosen.css" rel="stylesheet">
|
||||||
|
<script src="/static/js/plugins/chosen/chosen.jquery.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% include 'nav_cat_bar.html' %}
|
{% include 'nav_cat_bar.html' %}
|
||||||
@ -54,26 +56,60 @@
|
|||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li><a href="/jlog/log_list/online/" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
|
<li><a href="/jlog/log_list/online/" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
|
||||||
<li class="active"><a href="/jlog/log_list/offline/" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
|
<li class="active"><a href="/jlog/log_list/offline/" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
|
||||||
<li style="float: right">
|
{# <li><a href="/jlog/search/" class="text-center"><i class="fa fa-bar-chart-o"></i> 详细搜索 </a></li>#}
|
||||||
<form class="form-inline" action="" method="get">
|
|
||||||
<div class="form-group" id="data_5">
|
|
||||||
<div class="input-daterange input-group" id="datepicker">
|
|
||||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="start" value="{{ date_seven_day }}">
|
|
||||||
<span class="input-group-addon">to</span>
|
|
||||||
<input type="text" class="input-sm form-control" style="width: 100px;" name="end" value="{{ date_now_str }}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control input-sm" id="search_input" name="keyword" placeholder="Search">
|
|
||||||
</div>
|
|
||||||
<button id='search_btn' type="submit" class="btn btn-sm btn-primary">
|
|
||||||
Search
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
|
<form class="form-inline" action="" method="get">
|
||||||
|
<div class="form-group" id="data_5">
|
||||||
|
<div class="form-group" id="data_5">
|
||||||
|
<div class="input-daterange input-group" id="datepicker">
|
||||||
|
<input type="text" class="input-sm form-control" style="width: 100px;" name="start" value="{{ date_seven_day }}">
|
||||||
|
<span class="input-group-addon">to</span>
|
||||||
|
<input type="text" class="input-sm form-control" style="width: 100px;" name="end" value="{{ date_now_str }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<select name="single" data-placeholder="用户名" class="chosen-select" multiple style="width:200px;" tabindex="2">
|
||||||
|
<option value="用户">用户名</option>
|
||||||
|
<option value="Bolivia, Plurinational State of">hongweiguang</option>
|
||||||
|
<option value="Bonaire, Sint Eustatius and Saba">wangyong</option>
|
||||||
|
<option value="Bosnia and Herzegovina">hehe</option>
|
||||||
|
<option value="Botswana">wangyong</option>
|
||||||
|
<option value="Bouvet Island">wangyongd</option>
|
||||||
|
<option value="Romania">Romania</option>
|
||||||
|
<option value="Zambia">Zambia</option>
|
||||||
|
<option value="Zimbabwe">Zimbabwe</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<select name="multi" data-placeholder="主机" class="chosen-select" multiple style="width:200px;" tabindex="4">
|
||||||
|
<option value="主机">主机</option>
|
||||||
|
<option value="United States">172.16.1.1</option>
|
||||||
|
<option value="Afghanistan">172.16.1.1</option>
|
||||||
|
<option value="Aland Islands">172.16.1.1</option>
|
||||||
|
<option value="Albania">172.16.1.1</option>
|
||||||
|
<option value="Algeria">172.16.1.1</option>
|
||||||
|
<option value="American Samoa">172.16.1.1</option>
|
||||||
|
<option value="Andorra">172.16.1.1</option>
|
||||||
|
<option value="Angola">172.16.1.1</option>
|
||||||
|
<option value="Anguilla">172.16.1.1</option>
|
||||||
|
<option value="Antarctica">172.16.1.1</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input id="cmd" name="cmd" placeholder="命令" type="text" class="form-control" style="width: 200px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button id='search_btn' type="submit" class="btn btn-sm btn-primary">
|
||||||
|
Search
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<table class="table table-striped table-bordered table-hover ">
|
<table class="table table-striped table-bordered table-hover ">
|
||||||
<thead>
|
<thead>
|
||||||
@ -91,6 +127,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
{% for post in contacts.object_list %}
|
{% for post in contacts.object_list %}
|
||||||
<tr class="gradeX">
|
<tr class="gradeX">
|
||||||
<td class="text-center" id="username"> {{ post.user }} </td>
|
<td class="text-center" id="username"> {{ post.user }} </td>
|
||||||
@ -167,6 +204,17 @@
|
|||||||
autoclose: true
|
autoclose: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
'.chosen-select' : {},
|
||||||
|
'.chosen-select-deselect' : {allow_single_deselect:true},
|
||||||
|
'.chosen-select-no-single' : {disable_search_threshold:10},
|
||||||
|
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
|
||||||
|
'.chosen-select-width' : {width:"95%"}
|
||||||
|
};
|
||||||
|
for (var selector in config) {
|
||||||
|
$(selector).chosen(config[selector]);
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block self_footer_js %}
|
{% block self_footer_js %}
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active"><a href="/jlog/log_list/online/" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
|
<li class="active"><a href="/jlog/log_list/online/" class="text-center"><i class="fa fa-laptop"></i> 在线 </a></li>
|
||||||
<li><a href="/jlog/log_list/offline/" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
|
<li><a href="/jlog/log_list/offline/" class="text-center"><i class="fa fa-bar-chart-o"></i> 历史记录 </a></li>
|
||||||
|
<li><a href="/jlog/search/" class="text-center"><i class="fa fa-bar-chart-o"></i> 详细搜索 </a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
|
Loading…
Reference in New Issue
Block a user