prepare to pypi packaging
This commit is contained in:
parent
86de78348a
commit
9c33110879
24 changed files with 415 additions and 4088 deletions
|
@ -17,8 +17,7 @@ class ControllerAdministrators:
|
|||
:param status:
|
||||
:return:
|
||||
"""
|
||||
result = models.Admins.select().\
|
||||
where(
|
||||
result = models.Admins.select().where(
|
||||
models.Admins.email == email,
|
||||
models.Admins.password == md5(password).hexdigest(),
|
||||
models.Admins.status == status
|
||||
|
|
|
@ -4,21 +4,50 @@ from SWSCloudCore import models
|
|||
|
||||
|
||||
class ControllerBilling:
|
||||
"""
|
||||
Класс работы с деньгами
|
||||
"""
|
||||
def get(self, user_id):
|
||||
return models.UsersBalance.select(
|
||||
"""
|
||||
Выбираем состояние баланса выбранного пользователя
|
||||
"""
|
||||
x = models.UsersBalance.select(
|
||||
models.UsersBalance.balance
|
||||
).where(
|
||||
models.UsersBalance.user == user_id
|
||||
)[0].balance
|
||||
).get()
|
||||
return x.balance
|
||||
|
||||
def update(self, user_id):
|
||||
"""
|
||||
Обновление баланса
|
||||
"""
|
||||
return None
|
||||
|
||||
def exists(self, user_id):
|
||||
if models.UsersBalance.select().where(models.UsersBalance.user == user_id).count() == 0:
|
||||
"""
|
||||
Проверяет наличие записи в таблице балансов
|
||||
"""
|
||||
cnt = models.UsersBalance.select().where(
|
||||
models.UsersBalance.user == user_id
|
||||
).count()
|
||||
if cnt == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
def create(self, user_id, balance=0):
|
||||
"""
|
||||
Создание записи в таблице
|
||||
"""
|
||||
models.UsersBalance.create(user=user_id, balance=balance)
|
||||
return True
|
||||
|
||||
def transactions_get(self, user_id):
|
||||
transactions = dict()
|
||||
transactions['total'] = models.UsersBalanceTransactions.select().where(
|
||||
models.UsersBalanceTransactions.user == user_id
|
||||
).count()
|
||||
transactions['items'] = models.UsersBalanceTransactions.select().where(
|
||||
models.UsersBalanceTransactions.user == user_id
|
||||
)
|
||||
return transactions
|
||||
|
|
|
@ -22,7 +22,7 @@ class ControllerContainers:
|
|||
status=status
|
||||
)
|
||||
except Exception as e:
|
||||
# todo: write to log
|
||||
# TODO: write to log
|
||||
print e
|
||||
return False
|
||||
return True
|
||||
|
@ -65,7 +65,7 @@ class ControllerContainers:
|
|||
return models.Containers.select().where(
|
||||
models.Containers.user == self.user_id,
|
||||
models.Containers.id == container_id
|
||||
).limit(1)[0]
|
||||
).get()
|
||||
|
||||
def set_status(self, rule_id, status=0):
|
||||
# Устанавливаем статус в самом правиле
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# coding: utf-8
|
||||
|
||||
from SWSCloudCore import models
|
||||
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ class ControllerIps:
|
|||
# select IP
|
||||
return models.Ips.select().where(
|
||||
models.Ips.datacenter == datacenter_id and models.Ips.status == 0
|
||||
)[0]
|
||||
).get()
|
||||
|
||||
def setbusy(self, ip_id):
|
||||
# mark ip as busy (taken)
|
||||
|
|
|
@ -21,18 +21,25 @@ class ControllerUsers:
|
|||
def user_id_by_email(self, email):
|
||||
return models.Users.get(models.Users.email == email).id
|
||||
|
||||
def get_id_by_email(self, email):
|
||||
return models.Users.get(models.Users.email == email).id
|
||||
|
||||
def user_exists_by_email(self, email):
|
||||
if models.Users.select().where(models.Users.email == email).count() == 0:
|
||||
cnt = models.Users.select().where(models.Users.email == email).count()
|
||||
if cnt == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
def get(self):
|
||||
return models.Users.select().where(models.Users.id == self.user_id).limit(1)[0]
|
||||
return models.Users.select().where(models.Users.id == self.user_id).get()
|
||||
|
||||
def update(self, user_id, **kwargs):
|
||||
if 'password' in kwargs:
|
||||
x = models.Users.update(password=md5(kwargs['password']).hexdigest()).where(
|
||||
models.Users.id == user_id)
|
||||
x = models.Users.update(
|
||||
password=md5(kwargs['password']).hexdigest()
|
||||
).where(
|
||||
models.Users.id == user_id
|
||||
)
|
||||
x.execute()
|
||||
return True
|
||||
|
||||
|
@ -63,8 +70,7 @@ class ControllerUsers:
|
|||
:return:
|
||||
"""
|
||||
password_hash = md5(password).hexdigest()
|
||||
result = models.Users.select().\
|
||||
where(
|
||||
result = models.Users.select().where(
|
||||
models.Users.email == email,
|
||||
models.Users.password == password_hash,
|
||||
models.Users.status == status
|
||||
|
@ -82,7 +88,7 @@ class ControllerUsers:
|
|||
"""
|
||||
password_hash = md5(password).hexdigest()
|
||||
user_id = uuid.uuid4()
|
||||
# todo: add date registration and update of date - =datetime.datetime.now()
|
||||
# TODO: add date registration and update of date - =datetime.datetime.now()
|
||||
user = models.Users.create(id=user_id, email=email, password=password_hash, status=1)
|
||||
if user.id:
|
||||
return True
|
||||
|
@ -95,10 +101,6 @@ class ControllerUsers:
|
|||
u.save()
|
||||
return True
|
||||
|
||||
def get_id_by_email(self, email):
|
||||
user = models.Users.select(models.Users.id).where(models.Users.email == email).limit(1)
|
||||
return user[0].id
|
||||
|
||||
|
||||
class ControllerUsersRecoveryCodes():
|
||||
def create(self, user_id, code):
|
||||
|
|
|
@ -26,6 +26,9 @@ class PgSQLModel(Model):
|
|||
|
||||
|
||||
class DataCenters(PgSQLModel):
|
||||
"""
|
||||
Модель датацентров
|
||||
"""
|
||||
id = UUIDField(unique=True, primary_key=True, null=False)
|
||||
code = CharField(unique=True)
|
||||
name = CharField(unique=True)
|
||||
|
@ -36,7 +39,7 @@ class DataCenters(PgSQLModel):
|
|||
|
||||
class Servers(PgSQLModel):
|
||||
id = UUIDField(unique=True, primary_key=True)
|
||||
datacenter = ForeignKeyField(DataCenters, related_name='dcsservers')
|
||||
datacenter = ForeignKeyField(DataCenters)
|
||||
secret = CharField()
|
||||
created = DateTimeField(default=datetime.datetime.now())
|
||||
status = IntegerField()
|
||||
|
@ -57,8 +60,7 @@ class Ips(PgSQLModel):
|
|||
ipv6 = CharField()
|
||||
ipv4_gateway = CharField()
|
||||
ipv6_gateway = CharField()
|
||||
# 0 - free
|
||||
# 1 - used
|
||||
# 0: free, 1: used
|
||||
status = IntegerField()
|
||||
|
||||
|
||||
|
@ -66,17 +68,18 @@ class Users(PgSQLModel):
|
|||
id = UUIDField(primary_key=True, unique=True)
|
||||
email = CharField(unique=True, null=False)
|
||||
password = CharField()
|
||||
created = DateTimeField(default=datetime.datetime.now)
|
||||
status = IntegerField()
|
||||
|
||||
|
||||
class UsersRecoveryCodes(PgSQLModel):
|
||||
user = ForeignKeyField(Users, related_name='usersrecoverycodes')
|
||||
user = ForeignKeyField(Users)
|
||||
recovery_code = CharField(null=False)
|
||||
created = DateTimeField(default=datetime.datetime.now)
|
||||
|
||||
|
||||
class UsersSecrets(PgSQLModel):
|
||||
user = ForeignKeyField(Users, related_name='userssecrets')
|
||||
user = ForeignKeyField(Users)
|
||||
# 4f235008-a9bd-11e5-a24e-28d244e159e9
|
||||
secret = CharField(unique=True, null=False)
|
||||
# 1.1.1.1,1.2.3.4
|
||||
|
@ -87,24 +90,29 @@ class UsersSecrets(PgSQLModel):
|
|||
|
||||
|
||||
class UsersDetails(PgSQLModel):
|
||||
user = ForeignKeyField(Users, related_name='usersdetails')
|
||||
fname = CharField(null=True)
|
||||
lname = CharField(null=True)
|
||||
address = CharField(null=True)
|
||||
city = CharField(null=True)
|
||||
country = CharField(null=True)
|
||||
state = CharField(null=True)
|
||||
zipcode = IntegerField(null=True)
|
||||
user = ForeignKeyField(Users)
|
||||
fname = CharField(null=True, default='')
|
||||
lname = CharField(null=True, default='')
|
||||
address = CharField(null=True, default='')
|
||||
city = CharField(null=True, default='')
|
||||
country = CharField(null=True, default='')
|
||||
state = CharField(null=True, default='')
|
||||
zipcode = IntegerField(null=True, default='')
|
||||
|
||||
|
||||
class UsersBalance(PgSQLModel):
|
||||
user = ForeignKeyField(Users, related_name='usersbalance')
|
||||
"""
|
||||
Текущий баланс пользователей
|
||||
"""
|
||||
user = ForeignKeyField(Users)
|
||||
balance = FloatField(default=0, null=False)
|
||||
|
||||
|
||||
class UsersBalanceTransactions(PgSQLModel):
|
||||
id = IntegerField(primary_key=True, null=False, sequence='nextval')
|
||||
user = ForeignKeyField(Users, related_name='usersbalancetransaction')
|
||||
"""
|
||||
Транзакции
|
||||
"""
|
||||
user = ForeignKeyField(Users)
|
||||
amount = FloatField(default=0, null=False)
|
||||
created = DateTimeField(default=datetime.datetime.now)
|
||||
notified = IntegerField(null=False, default=0)
|
||||
|
@ -117,6 +125,10 @@ class UsersBalanceTransactions(PgSQLModel):
|
|||
class SSHKeys(PgSQLModel):
|
||||
user = ForeignKeyField(Users)
|
||||
sshkey = TextField(null=True)
|
||||
# с какого ip был добавлен ключ
|
||||
remote = TextField(null=True)
|
||||
# когда был добавлен ключ
|
||||
created = DateTimeField(default=datetime.datetime.now)
|
||||
|
||||
|
||||
class Containers(PgSQLModel):
|
||||
|
@ -126,12 +138,7 @@ class Containers(PgSQLModel):
|
|||
user = ForeignKeyField(Users)
|
||||
ipv4 = CharField()
|
||||
ipv6 = CharField()
|
||||
# 0
|
||||
# 1
|
||||
# 2
|
||||
# 3
|
||||
# 4
|
||||
# 5
|
||||
# 0: inactive, 1: active, 2: ..., 3: ..., 4: ..., 5: ...
|
||||
status = IntegerField()
|
||||
|
||||
|
||||
|
@ -159,9 +166,9 @@ class ContainersStatisticsState(PgSQLModel):
|
|||
|
||||
class Tasks(PgSQLModel):
|
||||
id = UUIDField(primary_key=True, unique=True)
|
||||
datacenter = ForeignKeyField(DataCenters, related_name='dcstasks')
|
||||
server = ForeignKeyField(Servers, related_name='serverstasks')
|
||||
user = ForeignKeyField(Users, related_name='userstasks')
|
||||
datacenter = ForeignKeyField(DataCenters)
|
||||
server = ForeignKeyField(Servers)
|
||||
user = ForeignKeyField(Users)
|
||||
created = DateTimeField(default=datetime.datetime.now)
|
||||
task = CharField(null=False)
|
||||
# 0 - new
|
||||
|
@ -172,6 +179,9 @@ class Tasks(PgSQLModel):
|
|||
|
||||
|
||||
class Settings(PgSQLModel):
|
||||
"""
|
||||
Модель настроек
|
||||
"""
|
||||
key = TextField(unique=True, null=False)
|
||||
val = TextField(null=True)
|
||||
|
||||
|
|
|
@ -1,233 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading">
|
||||
<strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading">
|
||||
<strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading">
|
||||
<strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Blank Page
|
||||
<small>Subheading</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-file"></i> Blank Page
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,584 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Bootstrap Elements
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-desktop"></i> Bootstrap Elements
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<!-- Main jumbotron for a primary marketing message or call to action -->
|
||||
<div class="jumbotron">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
||||
<p><a href="#" class="btn btn-primary btn-lg" role="button">Learn more »</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Buttons</h1>
|
||||
</div>
|
||||
<p>
|
||||
<button type="button" class="btn btn-lg btn-default">Default</button>
|
||||
<button type="button" class="btn btn-lg btn-primary">Primary</button>
|
||||
<button type="button" class="btn btn-lg btn-success">Success</button>
|
||||
<button type="button" class="btn btn-lg btn-info">Info</button>
|
||||
<button type="button" class="btn btn-lg btn-warning">Warning</button>
|
||||
<button type="button" class="btn btn-lg btn-danger">Danger</button>
|
||||
<button type="button" class="btn btn-lg btn-link">Link</button>
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" class="btn btn-default">Default</button>
|
||||
<button type="button" class="btn btn-primary">Primary</button>
|
||||
<button type="button" class="btn btn-success">Success</button>
|
||||
<button type="button" class="btn btn-info">Info</button>
|
||||
<button type="button" class="btn btn-warning">Warning</button>
|
||||
<button type="button" class="btn btn-danger">Danger</button>
|
||||
<button type="button" class="btn btn-link">Link</button>
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" class="btn btn-sm btn-default">Default</button>
|
||||
<button type="button" class="btn btn-sm btn-primary">Primary</button>
|
||||
<button type="button" class="btn btn-sm btn-success">Success</button>
|
||||
<button type="button" class="btn btn-sm btn-info">Info</button>
|
||||
<button type="button" class="btn btn-sm btn-warning">Warning</button>
|
||||
<button type="button" class="btn btn-sm btn-danger">Danger</button>
|
||||
<button type="button" class="btn btn-sm btn-link">Link</button>
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" class="btn btn-xs btn-default">Default</button>
|
||||
<button type="button" class="btn btn-xs btn-primary">Primary</button>
|
||||
<button type="button" class="btn btn-xs btn-success">Success</button>
|
||||
<button type="button" class="btn btn-xs btn-info">Info</button>
|
||||
<button type="button" class="btn btn-xs btn-warning">Warning</button>
|
||||
<button type="button" class="btn btn-xs btn-danger">Danger</button>
|
||||
<button type="button" class="btn btn-xs btn-link">Link</button>
|
||||
</p>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Thumbnails</h1>
|
||||
</div>
|
||||
<img class="img-thumbnail" src="http://placehold.it/400x400" alt="">
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Dropdown menus</h1>
|
||||
</div>
|
||||
<div class="dropdown theme-dropdown clearfix">
|
||||
<a id="dropdownMenu1" href="#" role="button" class="sr-only dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
|
||||
<li class="active" role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a>
|
||||
</li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a>
|
||||
</li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a>
|
||||
</li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Navbars</h1>
|
||||
</div>
|
||||
|
||||
<div class="navbar navbar-default">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a>
|
||||
</li>
|
||||
<li><a href="#about">About</a>
|
||||
</li>
|
||||
<li><a href="#contact">Contact</a>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a>
|
||||
</li>
|
||||
<li><a href="#">Another action</a>
|
||||
</li>
|
||||
<li><a href="#">Something else here</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a>
|
||||
</li>
|
||||
<li><a href="#">One more separated link</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="navbar navbar-inverse">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Project name</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Home</a>
|
||||
</li>
|
||||
<li><a href="#about">About</a>
|
||||
</li>
|
||||
<li><a href="#contact">Contact</a>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a>
|
||||
</li>
|
||||
<li><a href="#">Another action</a>
|
||||
</li>
|
||||
<li><a href="#">Something else here</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-header">Nav header</li>
|
||||
<li><a href="#">Separated link</a>
|
||||
</li>
|
||||
<li><a href="#">One more separated link</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Alerts</h1>
|
||||
</div>
|
||||
<div class="alert alert-success">
|
||||
<strong>Well done!</strong> You successfully read this important alert message.
|
||||
</div>
|
||||
<div class="alert alert-info">
|
||||
<strong>Heads up!</strong> This alert needs your attention, but it's not super important.
|
||||
</div>
|
||||
<div class="alert alert-warning">
|
||||
<strong>Warning!</strong> Best check yo self, you're not looking too good.
|
||||
</div>
|
||||
<div class="alert alert-danger">
|
||||
<strong>Oh snap!</strong> Change a few things up and try submitting again.
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Progress bars</h1>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;"><span class="sr-only">60% Complete</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%"><span class="sr-only">40% Complete (success)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%"><span class="sr-only">20% Complete</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%"><span class="sr-only">60% Complete (warning)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%"><span class="sr-only">80% Complete (danger)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success" style="width: 35%"><span class="sr-only">35% Complete (success)</span>
|
||||
</div>
|
||||
<div class="progress-bar progress-bar-warning" style="width: 20%"><span class="sr-only">20% Complete (warning)</span>
|
||||
</div>
|
||||
<div class="progress-bar progress-bar-danger" style="width: 10%"><span class='sr-only'>10% Complete (danger)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>List groups</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">Cras justo odio</li>
|
||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
||||
<li class="list-group-item">Morbi leo risus</li>
|
||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
||||
<li class="list-group-item">Vestibulum at eros</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item active">Cras justo odio</a>
|
||||
<a href="#" class="list-group-item">Dapibus ac facilisis in</a>
|
||||
<a href="#" class="list-group-item">Morbi leo risus</a>
|
||||
<a href="#" class="list-group-item">Porta ac consectetur ac</a>
|
||||
<a href="#" class="list-group-item">Vestibulum at eros</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item active">
|
||||
<h4 class="list-group-item-heading">List group item heading</h4>
|
||||
<p class="list-group-item-text">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<h4 class="list-group-item-heading">List group item heading</h4>
|
||||
<p class="list-group-item-text">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<h4 class="list-group-item-heading">List group item heading</h4>
|
||||
<p class="list-group-item-text">Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Panels</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-warning">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
<div class="col-sm-4">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Panel title</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
Panel content
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.col-sm-4 -->
|
||||
</div>
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Wells</h1>
|
||||
</div>
|
||||
<div class="well">
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed diam eget risus varius blandit sit amet non magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,494 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Bootstrap Grid
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-wrench"></i> Bootstrap Grid
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-12
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-6
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-6
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-4
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-4
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-4
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-1 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-8
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-4
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-6
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 text-center">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
.col-lg-3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,406 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Morris Charts CSS -->
|
||||
<link href="css/plugins/morris.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Charts
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-bar-chart-o"></i> Charts
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<!-- Flot Charts -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="page-header">Flot Charts</h2>
|
||||
<p class="lead">Flot is a pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and interactive features. For full usage instructions and documentation for Flot Charts, visit <a href="http://www.flotcharts.org/">http://www.flotcharts.org/</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-bar-chart-o"></i> Line Graph Example with Tooltips</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="flot-chart">
|
||||
<div class="flot-chart-content" id="flot-line-chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Pie Chart Example with Tooltips</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="flot-chart">
|
||||
<div class="flot-chart-content" id="flot-pie-chart"></div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Multiple Axes Line Graph Example with Tooltips and Raw Data</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="flot-chart">
|
||||
<div class="flot-chart-content" id="flot-multiple-axes-chart"></div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Moving Line Chart</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="flot-chart">
|
||||
<div class="flot-chart-content" id="flot-moving-line-chart"></div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Bar Graph with Tooltips</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="flot-chart">
|
||||
<div class="flot-chart-content" id="flot-bar-chart"></div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<!-- Morris Charts -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="page-header">Morris Charts</h2>
|
||||
<p class="lead">Morris.js is a very simple API for drawing line, bar, area and donut charts. For full usage instructions and documentation for Morris.js charts, visit <a href="http://morrisjs.github.io/morris.js/">http://morrisjs.github.io/morris.js/</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-bar-chart-o"></i> Area Line Graph Example with Tooltips</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-area-chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Donut Chart Example</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-donut-chart"></div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Line Graph Example with Tooltips</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-line-chart"></div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right"></i> Bar Graph Example</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-bar-chart"></div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- Morris Charts JavaScript -->
|
||||
<script src="js/plugins/morris/raphael.min.js"></script>
|
||||
<script src="js/plugins/morris/morris.min.js"></script>
|
||||
<script src="js/plugins/morris/morris-data.js"></script>
|
||||
|
||||
<!-- Flot Charts JavaScript -->
|
||||
<!--[if lte IE 8]><script src="js/excanvas.min.js"></script><![endif]-->
|
||||
<script src="js/plugins/flot/jquery.flot.js"></script>
|
||||
<script src="js/plugins/flot/jquery.flot.tooltip.min.js"></script>
|
||||
<script src="js/plugins/flot/jquery.flot.resize.js"></script>
|
||||
<script src="js/plugins/flot/jquery.flot.pie.js"></script>
|
||||
<script src="js/plugins/flot/flot-data.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,444 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Forms
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-edit"></i> Forms
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<form role="form">
|
||||
|
||||
<div class="form-group">
|
||||
<label>Text Input</label>
|
||||
<input class="form-control">
|
||||
<p class="help-block">Example block-level help text here.</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Text Input with Placeholder</label>
|
||||
<input class="form-control" placeholder="Enter text">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Static Control</label>
|
||||
<p class="form-control-static">email@example.com</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>File input</label>
|
||||
<input type="file">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Text area</label>
|
||||
<textarea class="form-control" rows="3"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Checkboxes</label>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" value="">Checkbox 1
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" value="">Checkbox 2
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" value="">Checkbox 3
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Inline Checkboxes</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox">1
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox">2
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox">3
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Radio Buttons</label>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>Radio 1
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">Radio 2
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input type="radio" name="optionsRadios" id="optionsRadios3" value="option3">Radio 3
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Inline Radio Buttons</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="optionsRadiosInline" id="optionsRadiosInline1" value="option1" checked>1
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="optionsRadiosInline" id="optionsRadiosInline2" value="option2">2
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="optionsRadiosInline" id="optionsRadiosInline3" value="option3">3
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Selects</label>
|
||||
<select class="form-control">
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
<option>3</option>
|
||||
<option>4</option>
|
||||
<option>5</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Multiple Selects</label>
|
||||
<select multiple class="form-control">
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
<option>3</option>
|
||||
<option>4</option>
|
||||
<option>5</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-default">Submit Button</button>
|
||||
<button type="reset" class="btn btn-default">Reset Button</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h1>Disabled Form States</h1>
|
||||
|
||||
<form role="form">
|
||||
|
||||
<fieldset disabled>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="disabledSelect">Disabled input</label>
|
||||
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="disabledSelect">Disabled select menu</label>
|
||||
<select id="disabledSelect" class="form-control">
|
||||
<option>Disabled select</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox">Disabled Checkbox
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Disabled Button</button>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<h1>Form Validation</h1>
|
||||
|
||||
<form role="form">
|
||||
|
||||
<div class="form-group has-success">
|
||||
<label class="control-label" for="inputSuccess">Input with success</label>
|
||||
<input type="text" class="form-control" id="inputSuccess">
|
||||
</div>
|
||||
|
||||
<div class="form-group has-warning">
|
||||
<label class="control-label" for="inputWarning">Input with warning</label>
|
||||
<input type="text" class="form-control" id="inputWarning">
|
||||
</div>
|
||||
|
||||
<div class="form-group has-error">
|
||||
<label class="control-label" for="inputError">Input with error</label>
|
||||
<input type="text" class="form-control" id="inputError">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<h1>Input Groups</h1>
|
||||
|
||||
<form role="form">
|
||||
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon">@</span>
|
||||
<input type="text" class="form-control" placeholder="Username">
|
||||
</div>
|
||||
|
||||
<div class="form-group input-group">
|
||||
<input type="text" class="form-control">
|
||||
<span class="input-group-addon">.00</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon"><i class="fa fa-eur"></i></span>
|
||||
<input type="text" class="form-control" placeholder="Font Awesome Icon">
|
||||
</div>
|
||||
|
||||
<div class="form-group input-group">
|
||||
<span class="input-group-addon">$</span>
|
||||
<input type="text" class="form-control">
|
||||
<span class="input-group-addon">.00</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group input-group">
|
||||
<input type="text" class="form-control">
|
||||
<span class="input-group-btn"><button class="btn btn-default" type="button"><i class="fa fa-search"></i></button></span>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<p>For complete documentation, please visit <a href="http://getbootstrap.com/css/#forms">Bootstrap's Form Documentation</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,493 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Bootstrap Core CSS RTL-->
|
||||
<link href="css/bootstrap-rtl.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
<link href="css/sb-admin-rtl.css" rel="stylesheet">
|
||||
|
||||
<!-- Morris Charts CSS -->
|
||||
<link href="css/plugins/morris.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Dashboard <small>Statistics Overview</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li class="active">
|
||||
<i class="fa fa-dashboard"></i> Dashboard
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="alert alert-info alert-dismissable">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<i class="fa fa-info-circle"></i> <strong>Like SB Admin?</strong> Try out <a href="http://startbootstrap.com/template-overviews/sb-admin-2" class="alert-link">SB Admin 2</a> for additional features!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-comments fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">26</div>
|
||||
<div>New Comments!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-tasks fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">12</div>
|
||||
<div>New Tasks!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-shopping-cart fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">124</div>
|
||||
<div>New Orders!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-support fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">13</div>
|
||||
<div>Support Tickets!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-bar-chart-o fa-fw"></i> Area Chart</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-area-chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right fa-fw"></i> Donut Chart</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-donut-chart"></div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-clock-o fa-fw"></i> Tasks Panel</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">just now</span>
|
||||
<i class="fa fa-fw fa-calendar"></i> Calendar updated
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">4 minutes ago</span>
|
||||
<i class="fa fa-fw fa-comment"></i> Commented on a post
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">23 minutes ago</span>
|
||||
<i class="fa fa-fw fa-truck"></i> Order 392 shipped
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">46 minutes ago</span>
|
||||
<i class="fa fa-fw fa-money"></i> Invoice 653 has been paid
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">1 hour ago</span>
|
||||
<i class="fa fa-fw fa-user"></i> A new user has been added
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">2 hours ago</span>
|
||||
<i class="fa fa-fw fa-check"></i> Completed task: "pick up dry cleaning"
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">yesterday</span>
|
||||
<i class="fa fa-fw fa-globe"></i> Saved the world
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">two days ago</span>
|
||||
<i class="fa fa-fw fa-check"></i> Completed task: "fix error on sales page"
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View All Activity <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-money fa-fw"></i> Transactions Panel</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Order #</th>
|
||||
<th>Order Date</th>
|
||||
<th>Order Time</th>
|
||||
<th>Amount (USD)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>3326</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:29 PM</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3325</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:20 PM</td>
|
||||
<td>$234.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3324</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:03 PM</td>
|
||||
<td>$724.17</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3323</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:00 PM</td>
|
||||
<td>$23.71</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3322</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:49 PM</td>
|
||||
<td>$8345.23</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3321</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:23 PM</td>
|
||||
<td>$245.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3320</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:15 PM</td>
|
||||
<td>$5663.54</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3319</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:13 PM</td>
|
||||
<td>$943.45</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View All Transactions <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- Morris Charts JavaScript -->
|
||||
<script src="js/plugins/morris/raphael.min.js"></script>
|
||||
<script src="js/plugins/morris/morris.min.js"></script>
|
||||
<script src="js/plugins/morris/morris-data.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,489 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Morris Charts CSS -->
|
||||
<link href="css/plugins/morris.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li class="active">
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Dashboard <small>Statistics Overview</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li class="active">
|
||||
<i class="fa fa-dashboard"></i> Dashboard
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="alert alert-info alert-dismissable">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<i class="fa fa-info-circle"></i> <strong>Like SB Admin?</strong> Try out <a href="http://startbootstrap.com/template-overviews/sb-admin-2" class="alert-link">SB Admin 2</a> for additional features!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-comments fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">26</div>
|
||||
<div>New Comments!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-tasks fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">12</div>
|
||||
<div>New Tasks!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-shopping-cart fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">124</div>
|
||||
<div>New Orders!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-support fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">13</div>
|
||||
<div>Support Tickets!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-bar-chart-o fa-fw"></i> Area Chart</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-area-chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-long-arrow-right fa-fw"></i> Donut Chart</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="morris-donut-chart"></div>
|
||||
<div class="text-right">
|
||||
<a href="#">View Details <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-clock-o fa-fw"></i> Tasks Panel</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">just now</span>
|
||||
<i class="fa fa-fw fa-calendar"></i> Calendar updated
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">4 minutes ago</span>
|
||||
<i class="fa fa-fw fa-comment"></i> Commented on a post
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">23 minutes ago</span>
|
||||
<i class="fa fa-fw fa-truck"></i> Order 392 shipped
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">46 minutes ago</span>
|
||||
<i class="fa fa-fw fa-money"></i> Invoice 653 has been paid
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">1 hour ago</span>
|
||||
<i class="fa fa-fw fa-user"></i> A new user has been added
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">2 hours ago</span>
|
||||
<i class="fa fa-fw fa-check"></i> Completed task: "pick up dry cleaning"
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">yesterday</span>
|
||||
<i class="fa fa-fw fa-globe"></i> Saved the world
|
||||
</a>
|
||||
<a href="#" class="list-group-item">
|
||||
<span class="badge">two days ago</span>
|
||||
<i class="fa fa-fw fa-check"></i> Completed task: "fix error on sales page"
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View All Activity <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-money fa-fw"></i> Transactions Panel</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Order #</th>
|
||||
<th>Order Date</th>
|
||||
<th>Order Time</th>
|
||||
<th>Amount (USD)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>3326</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:29 PM</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3325</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:20 PM</td>
|
||||
<td>$234.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3324</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:03 PM</td>
|
||||
<td>$724.17</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3323</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>3:00 PM</td>
|
||||
<td>$23.71</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3322</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:49 PM</td>
|
||||
<td>$8345.23</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3321</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:23 PM</td>
|
||||
<td>$245.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3320</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:15 PM</td>
|
||||
<td>$5663.54</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3319</td>
|
||||
<td>10/21/2013</td>
|
||||
<td>2:13 PM</td>
|
||||
<td>$943.45</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a href="#">View All Transactions <i class="fa fa-arrow-circle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- Morris Charts JavaScript -->
|
||||
<script src="js/plugins/morris/raphael.min.js"></script>
|
||||
<script src="js/plugins/morris/morris.min.js"></script>
|
||||
<script src="js/plugins/morris/morris-data.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,542 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>SB Admin - Bootstrap Admin Template</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="css/sb-admin.css" rel="stylesheet">
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">SB Admin</a>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<ul class="nav navbar-right top-nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-envelope"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu message-dropdown">
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-preview">
|
||||
<a href="#">
|
||||
<div class="media">
|
||||
<span class="pull-left">
|
||||
<img class="media-object" src="http://placehold.it/50x50" alt="">
|
||||
</span>
|
||||
<div class="media-body">
|
||||
<h5 class="media-heading"><strong>John Smith</strong>
|
||||
</h5>
|
||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> Yesterday at 4:32 PM</p>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur...</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
<li class="message-footer">
|
||||
<a href="#">Read All New Messages</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu alert-dropdown">
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-default">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-primary">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-success">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-info">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-warning">Alert Badge</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Alert Name <span class="label label-danger">Alert Badge</span></a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#">View All</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> John Smith <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-user"></i> Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-envelope"></i> Inbox</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-gear"></i> Settings</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a href="#"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<ul class="nav navbar-nav side-nav">
|
||||
<li>
|
||||
<a href="index.html"><i class="fa fa-fw fa-dashboard"></i> Dashboard</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="charts.html"><i class="fa fa-fw fa-bar-chart-o"></i> Charts</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="tables.html"><i class="fa fa-fw fa-table"></i> Tables</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="forms.html"><i class="fa fa-fw fa-edit"></i> Forms</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
|
||||
<ul id="demo" class="collapse">
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Dropdown Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</nav>
|
||||
|
||||
<div id="page-wrapper">
|
||||
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- Page Heading -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header">
|
||||
Tables
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-dashboard"></i> <a href="index.html">Dashboard</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<i class="fa fa-table"></i> Tables
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h2>Bordered Table</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
<th>% New Visits</th>
|
||||
<th>Revenue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/index.html</td>
|
||||
<td>1265</td>
|
||||
<td>32.3%</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/about.html</td>
|
||||
<td>261</td>
|
||||
<td>33.3%</td>
|
||||
<td>$234.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/sales.html</td>
|
||||
<td>665</td>
|
||||
<td>21.3%</td>
|
||||
<td>$16.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog.html</td>
|
||||
<td>9516</td>
|
||||
<td>89.3%</td>
|
||||
<td>$1644.43</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/404.html</td>
|
||||
<td>23</td>
|
||||
<td>34.3%</td>
|
||||
<td>$23.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/services.html</td>
|
||||
<td>421</td>
|
||||
<td>60.3%</td>
|
||||
<td>$724.32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog/post.html</td>
|
||||
<td>1233</td>
|
||||
<td>93.2%</td>
|
||||
<td>$126.34</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h2>Bordered with Striped Rows</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
<th>% New Visits</th>
|
||||
<th>Revenue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/index.html</td>
|
||||
<td>1265</td>
|
||||
<td>32.3%</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/about.html</td>
|
||||
<td>261</td>
|
||||
<td>33.3%</td>
|
||||
<td>$234.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/sales.html</td>
|
||||
<td>665</td>
|
||||
<td>21.3%</td>
|
||||
<td>$16.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog.html</td>
|
||||
<td>9516</td>
|
||||
<td>89.3%</td>
|
||||
<td>$1644.43</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/404.html</td>
|
||||
<td>23</td>
|
||||
<td>34.3%</td>
|
||||
<td>$23.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/services.html</td>
|
||||
<td>421</td>
|
||||
<td>60.3%</td>
|
||||
<td>$724.32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog/post.html</td>
|
||||
<td>1233</td>
|
||||
<td>93.2%</td>
|
||||
<td>$126.34</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h2>Basic Table</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
<th>% New Visits</th>
|
||||
<th>Revenue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/index.html</td>
|
||||
<td>1265</td>
|
||||
<td>32.3%</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/about.html</td>
|
||||
<td>261</td>
|
||||
<td>33.3%</td>
|
||||
<td>$234.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/sales.html</td>
|
||||
<td>665</td>
|
||||
<td>21.3%</td>
|
||||
<td>$16.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog.html</td>
|
||||
<td>9516</td>
|
||||
<td>89.3%</td>
|
||||
<td>$1644.43</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/404.html</td>
|
||||
<td>23</td>
|
||||
<td>34.3%</td>
|
||||
<td>$23.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/services.html</td>
|
||||
<td>421</td>
|
||||
<td>60.3%</td>
|
||||
<td>$724.32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog/post.html</td>
|
||||
<td>1233</td>
|
||||
<td>93.2%</td>
|
||||
<td>$126.34</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h2>Striped Rows</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
<th>% New Visits</th>
|
||||
<th>Revenue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>/index.html</td>
|
||||
<td>1265</td>
|
||||
<td>32.3%</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/about.html</td>
|
||||
<td>261</td>
|
||||
<td>33.3%</td>
|
||||
<td>$234.12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/sales.html</td>
|
||||
<td>665</td>
|
||||
<td>21.3%</td>
|
||||
<td>$16.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog.html</td>
|
||||
<td>9516</td>
|
||||
<td>89.3%</td>
|
||||
<td>$1644.43</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/404.html</td>
|
||||
<td>23</td>
|
||||
<td>34.3%</td>
|
||||
<td>$23.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/services.html</td>
|
||||
<td>421</td>
|
||||
<td>60.3%</td>
|
||||
<td>$724.32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog/post.html</td>
|
||||
<td>1233</td>
|
||||
<td>93.2%</td>
|
||||
<td>$126.34</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h2>Contextual Classes</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
<th>% New Visits</th>
|
||||
<th>Revenue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="active">
|
||||
<td>/index.html</td>
|
||||
<td>1265</td>
|
||||
<td>32.3%</td>
|
||||
<td>$321.33</td>
|
||||
</tr>
|
||||
<tr class="success">
|
||||
<td>/about.html</td>
|
||||
<td>261</td>
|
||||
<td>33.3%</td>
|
||||
<td>$234.12</td>
|
||||
</tr>
|
||||
<tr class="warning">
|
||||
<td>/sales.html</td>
|
||||
<td>665</td>
|
||||
<td>21.3%</td>
|
||||
<td>$16.34</td>
|
||||
</tr>
|
||||
<tr class="danger">
|
||||
<td>/blog.html</td>
|
||||
<td>9516</td>
|
||||
<td>89.3%</td>
|
||||
<td>$1644.43</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/404.html</td>
|
||||
<td>23</td>
|
||||
<td>34.3%</td>
|
||||
<td>$23.52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/services.html</td>
|
||||
<td>421</td>
|
||||
<td>60.3%</td>
|
||||
<td>$724.32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/blog/post.html</td>
|
||||
<td>1233</td>
|
||||
<td>93.2%</td>
|
||||
<td>$126.34</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h2>Bootstrap Docs</h2>
|
||||
<p>For complete documentation, please visit <a target="_blank" href="http://getbootstrap.com/css/#tables">Bootstrap's Tables Documentation</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="js/jquery.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="js/bootstrap.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -1,35 +0,0 @@
|
|||
{% extends "default/_layout.html" %}
|
||||
|
||||
{% block title %}Новая зона{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<h3>Новая зона</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
{% if g.errors['total'] > 0 %}
|
||||
<div class="alert-box alert">
|
||||
<ul>
|
||||
{% for error in g.errors['items'] %}
|
||||
<li>{{ error }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<form action="{{ url_for('cdn.create') }}" method="post" id="cdncreateform">
|
||||
<div class="small-12 columns">
|
||||
<label for="originurl">Имя</label>
|
||||
<input name="originurl" id="originurl" value="">
|
||||
</div>
|
||||
<div class="small-12 columns">
|
||||
<input type="submit" value="Создать контейнер" class="button success" id="submitform" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,48 +0,0 @@
|
|||
{% extends "default/_layout.html" %}
|
||||
|
||||
{% block title %}CDN{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<h3>Список <a href="{{ url_for('cdn.create') }}">+</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<table id="zones" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="5%">ID</th>
|
||||
<th>Имя</th>
|
||||
{#<th>Тип</th>#}
|
||||
<th>URL зоны</th>
|
||||
<th>URL источника</th>
|
||||
<!-- th>Статус</th>
|
||||
<th>SSL</th -->
|
||||
<th width="10%">Действие</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if zones|length == 0 %}
|
||||
<tr>
|
||||
<td>Нет ни одного контейнера. <a href="{{ url_for('cdn.create') }}">Добавить</a>.</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
{% for zone in zones %}
|
||||
<tr>
|
||||
<td>{{ zone['id'] }}</td>
|
||||
<td>{{ zone['name'] }}</td>
|
||||
<td>{{ zone['name'] }}.procdn.ru</td>
|
||||
<td nowrap="nowrap">{{ zone['originurl'] }}</td>
|
||||
<td>
|
||||
<a href="#">Настройки</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,6 +1,8 @@
|
|||
# coding: utf-8
|
||||
|
||||
from flask import Blueprint, g, render_template, session, redirect, url_for, request
|
||||
import validators
|
||||
from flask import Blueprint, g, render_template, session, redirect, url_for
|
||||
from flask import request, flash
|
||||
from sshpubkeys import SSHKey
|
||||
from SWSCloudCore.controllers.billing import ControllerBilling
|
||||
from SWSCloudCore.controllers.common import ControllerMessagesEmail
|
||||
|
@ -25,44 +27,41 @@ def index():
|
|||
return redirect(url_for("account.logout"))
|
||||
|
||||
cud = ControllerUsersDetails(session['user_id'])
|
||||
user = cud.details_get()
|
||||
|
||||
# проверяем, есть ли запись в таблице usersdetails, чтобы небыло ошибок
|
||||
if not cud.details_exists():
|
||||
# если нет, то делаем запись в таблицу, чтобы небыло ошибок
|
||||
cud.details_create()
|
||||
|
||||
# извлекаем из базы детали пользователя
|
||||
user_details = cud.details_get()
|
||||
|
||||
return render_template(
|
||||
'default/id/index.html',
|
||||
user=user,
|
||||
user_details=user_details
|
||||
user=cud.details_get(),
|
||||
user_details=cud.details_get()
|
||||
)
|
||||
|
||||
|
||||
@viewAccount.route('/edit', methods=['GET', 'POST'])
|
||||
@viewAccount.route('/edit.html', methods=['GET', 'POST'])
|
||||
def edit():
|
||||
cu = ControllerUsers()
|
||||
# check session
|
||||
if not ControllerUsers().check_session():
|
||||
if not cu.check_session():
|
||||
return redirect(url_for("account.logout"))
|
||||
# auth user
|
||||
if not ControllerUsers().auth(session['email'], session['password']):
|
||||
if not cu.auth(session['email'], session['password']):
|
||||
return redirect(url_for("account.logout"))
|
||||
|
||||
cud = ControllerUsersDetails(session['user_id'])
|
||||
user = cud.details_get()
|
||||
|
||||
# Проверяем есть ли детали пользователя.
|
||||
if not cud.details_exists():
|
||||
# Если нет, то создаём
|
||||
cud.details_create()
|
||||
|
||||
if request.method == "POST":
|
||||
if not request.form['zipcode'].isdigit():
|
||||
g.errors['items'].append(u'Индекс должен содержать только цифры')
|
||||
g.errors['total'] += 1
|
||||
flash(u'Индекс должен содержать только цифры')
|
||||
return redirect(url_for('account.edit'))
|
||||
|
||||
if g.errors['total'] == 0:
|
||||
cud.details_update(
|
||||
fname=request.form['fname'],
|
||||
lname=request.form['lname'],
|
||||
|
@ -73,10 +72,12 @@ def edit():
|
|||
zipcode=request.form['zipcode']
|
||||
)
|
||||
return redirect(url_for('account.edit'))
|
||||
# get user details
|
||||
user_details = cud.details_get()
|
||||
|
||||
return render_template('default/id/edit.html', user=user, user_details=user_details)
|
||||
return render_template(
|
||||
'default/id/edit.html',
|
||||
user=cud.details_get(),
|
||||
user_details=cud.details_get()
|
||||
)
|
||||
|
||||
|
||||
@viewAccount.route('/settings', methods=['GET', 'POST'])
|
||||
|
@ -87,10 +88,11 @@ def settings():
|
|||
# auth user
|
||||
if not ControllerUsers().auth(session['email'], session['password']):
|
||||
return redirect(url_for("account.logout"))
|
||||
# get user data
|
||||
user = ControllerUsers(session['user_id']).get()
|
||||
|
||||
return render_template('default/id/index.html', user_details=user)
|
||||
return render_template(
|
||||
'default/id/index.html',
|
||||
user_details=ControllerUsers(session['user_id']).get()
|
||||
)
|
||||
|
||||
|
||||
@viewAccount.route('/billing', methods=['GET', 'POST'])
|
||||
|
@ -103,53 +105,54 @@ def billing():
|
|||
return redirect(url_for("account.logout"))
|
||||
|
||||
user_id = session['user_id']
|
||||
cub = ControllerBilling()
|
||||
|
||||
if models.UsersBalance.select().where(models.UsersBalance.user == user_id).count() == 0:
|
||||
models.UsersBalance.create(user=user_id, balance=10)
|
||||
user_balance = models.UsersBalance.select().where(models.UsersBalance.user == user_id).limit(1)[0].balance
|
||||
if not cub.exists(user_id):
|
||||
cub.create(user=user_id, balance=0)
|
||||
|
||||
user_details = models.Users.select().where(models.Users.id == session['user_id']).limit(1)[0]
|
||||
|
||||
# выгрузка истории платежей
|
||||
history = dict()
|
||||
history['total'] = models.UsersBalanceTransactions.select().\
|
||||
where(models.UsersBalanceTransactions.user == user_id).count()
|
||||
history['items'] = models.UsersBalanceTransactions.select().\
|
||||
where(models.UsersBalanceTransactions.user == user_id)
|
||||
# TODO: move to function
|
||||
user_details = models.Users.select().where(
|
||||
models.Users.id == session['user_id']
|
||||
).get()
|
||||
|
||||
return render_template(
|
||||
'default/id/balance.html',
|
||||
user_details=user_details,
|
||||
user_balance=user_balance,
|
||||
history=history
|
||||
user_balance=cub.get(user_id),
|
||||
history=cub.transactions_get(user_id)
|
||||
)
|
||||
|
||||
|
||||
@viewAccount.route('/registration', methods=['GET', 'POST'])
|
||||
@viewAccount.route('/registration.html', methods=['GET', 'POST'])
|
||||
def registration():
|
||||
# check session
|
||||
if ControllerUsers().check_session():
|
||||
cu = ControllerUsers()
|
||||
# Проверяем сессию, если все данные на месте,
|
||||
# то перенаправляем пользователя на страницу со списком контейнеров
|
||||
if cu.check_session():
|
||||
return redirect(url_for("containers.index"))
|
||||
|
||||
if request.method == 'POST':
|
||||
check_password = False
|
||||
if request.form['password'] == request.form['password2']:
|
||||
check_password = True
|
||||
email = request.form['email']
|
||||
password = request.form['password']
|
||||
password2 = request.form['password2']
|
||||
|
||||
if not special_match(request.form['email'], r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*$")\
|
||||
or len(request.form['password']) < 5\
|
||||
or not check_password:
|
||||
g.errors['items'].append('Invalid registration data.')
|
||||
g.errors['total'] += 1
|
||||
# Проверка введён ли проверочный пароль одинаково
|
||||
if password != password2:
|
||||
flash(u'Пароли не совпадают', 'error')
|
||||
|
||||
if g.errors['total'] == 0:
|
||||
# count user with email and password
|
||||
if models.Users.select().where(models.Users.email == request.form['email']).count():
|
||||
g.errors['items'].append('Invalid registration. User already exists.')
|
||||
g.errors['total'] += 1
|
||||
else:
|
||||
if ControllerUsers().registration(request.form['email'], request.form['password']):
|
||||
user_id = ControllerUsers().get_id_by_email(request.form['email'])
|
||||
# Проверяем правильность адреса е-почты и
|
||||
if not validators.email(email):
|
||||
flash(u'Неправильный адрес електронной почты', 'error')
|
||||
return redirect(url_for('account.registration'))
|
||||
|
||||
# Проверяем зарегистрирован ли указанный адрес електронной почты
|
||||
if cu.user_exists_by_email(email):
|
||||
flash(u'Польщователь с указанным адресом уже зарегистрирован')
|
||||
return redirect(url_for('account.registration'))
|
||||
|
||||
# Регистрируем пользователя в системе
|
||||
if ControllerUsers().registration(email, password):
|
||||
user_id = ControllerUsers().get_id_by_email(email)
|
||||
|
||||
ControllerUsersDetails(user_id).details_create()
|
||||
ControllerBilling().create(user_id, g.settings['bonus'])
|
||||
|
@ -172,40 +175,43 @@ def registration():
|
|||
email.send(title=subject, to=request.form['email'], lead=lead, message=message, callout=callout)
|
||||
|
||||
# redirect to login page
|
||||
flash(u'Учетная запись успешно зарегистрирована.', 'success')
|
||||
return redirect(url_for('account.login'))
|
||||
else:
|
||||
g.errors['items'].append('Invalid registration. Try again.')
|
||||
g.errors['total'] += 1
|
||||
flash('Ошибка при регистрации, попробуйте снова', 'error')
|
||||
return redirect(url_for('account.registration'))
|
||||
return render_template('default/id/registration.html')
|
||||
|
||||
|
||||
@viewAccount.route('/login', methods=['GET', 'POST'])
|
||||
@viewAccount.route('/login.html', methods=['GET', 'POST'])
|
||||
def login():
|
||||
cu = ControllerUsers()
|
||||
if request.method == 'POST':
|
||||
# validation entered data
|
||||
if not special_match(request.form['email'], r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*$")\
|
||||
or len(request.form['password']) < 5:
|
||||
g.errors['items'].append('Invalid registration data.')
|
||||
g.errors['total'] += 1
|
||||
email = request.form['email']
|
||||
password = request.form['password']
|
||||
|
||||
# validation entered data
|
||||
if not requests.email(email):
|
||||
flash(u'Неправильный адрес електронной почты', 'error')
|
||||
return redirect(url_for('account.login'))
|
||||
|
||||
if g.errors['total'] == 0:
|
||||
# try auth only active users (with status code 1)
|
||||
if ControllerUsers().auth(request.form['email'], request.form['password'], 1):
|
||||
if cu.auth(email, password, 1):
|
||||
# get user_id
|
||||
user_id = ControllerUsers().get_id_by_email(request.form['email'])
|
||||
user_id = cu.get_id_by_email(email)
|
||||
# save user data to session
|
||||
session['user_id'] = user_id
|
||||
session['email'] = request.form['email']
|
||||
session['password'] = request.form['password']
|
||||
session['email'] = email
|
||||
session['password'] = password
|
||||
# redirect to rules list
|
||||
return redirect(url_for('containers.index'))
|
||||
else:
|
||||
g.errors['items'].append('Invalid login. Please try again.')
|
||||
g.errors['total'] += 1
|
||||
flash(u'Не авторизованы', 'error')
|
||||
return redirect(url_for('account.login'))
|
||||
return render_template("default/id/login.html")
|
||||
|
||||
|
||||
@viewAccount.route('/logout')
|
||||
@viewAccount.route('/logout.html')
|
||||
def logout():
|
||||
session.pop('user_id', None)
|
||||
session.pop('email', None)
|
||||
|
@ -213,21 +219,32 @@ def logout():
|
|||
return redirect(url_for('account.login'))
|
||||
|
||||
|
||||
@viewAccount.route("/password_reset", methods=['GET', 'POST'])
|
||||
@viewAccount.route("/password_reset.html", methods=['GET', 'POST'])
|
||||
def password_reset():
|
||||
if request.method == "POST":
|
||||
cu = ControllerUsers()
|
||||
curc = ControllerUsersRecoveryCodes()
|
||||
email = request.form['email']
|
||||
|
||||
if not validators.email(email):
|
||||
flash(u'Произошла ошибка. Введите корректный адрес е.почты.')
|
||||
return redirect(url_for('account.password_reset'))
|
||||
|
||||
# check exists email
|
||||
if ControllerUsers().user_exists_by_email(request.form['email']):
|
||||
if not cu.user_exists_by_email(email):
|
||||
flash(u'Произошла ошибка. Введите корректный адрес е.почты.')
|
||||
return redirect(url_for('account.password_reset'))
|
||||
|
||||
# get user_id by email
|
||||
user_id = str(ControllerUsers().user_id_by_email(request.form['email']))
|
||||
user_id = str(cu.user_id_by_email(email))
|
||||
|
||||
# create recovery code
|
||||
recovery_code = ControllerUsersRecoveryCodes().code_generate()
|
||||
recovery_code = curc.code_generate()
|
||||
|
||||
# remove old recovery codes for user
|
||||
ControllerUsersRecoveryCodes().delete(user_id)
|
||||
curc.delete(user_id)
|
||||
# write new recovery code to database
|
||||
ControllerUsersRecoveryCodes().create(user_id, recovery_code)
|
||||
curc.create(user_id, recovery_code)
|
||||
|
||||
# send mail message with recovery code
|
||||
subject = u'GoCloud.ru: Код восстановления доступа'
|
||||
|
@ -243,14 +260,12 @@ def password_reset():
|
|||
email.send(title=subject, to=request.form['email'], lead=lead, message=message, callout=callout)
|
||||
|
||||
# redirect to step 2
|
||||
flash(u'На указанный адрес был отправлен код подтверждения', 'info')
|
||||
return redirect(url_for('account.password_reset_step2'))
|
||||
else:
|
||||
g.errors['items'].append(u'Произошла ошибка. Введите корректный адрес е.почты.')
|
||||
g.errors['total'] += 1
|
||||
return render_template('default/id/password_reset_step1.html')
|
||||
|
||||
|
||||
@viewAccount.route("/password_reset_step2", methods=['GET', 'POST'])
|
||||
@viewAccount.route("/password_reset_step2.html", methods=['GET', 'POST'])
|
||||
def password_reset_step2():
|
||||
if request.method == "POST":
|
||||
# check exists email
|
||||
|
|
0
SWSCloudCore/views/account/decorators.py
Normal file
0
SWSCloudCore/views/account/decorators.py
Normal file
|
@ -1,15 +1,8 @@
|
|||
# coding: utf-8
|
||||
|
||||
from uuid import uuid4
|
||||
import validators
|
||||
|
||||
from SWSCloudCore.controllers.administrators import ControllerAdministrators
|
||||
from SWSCloudCore.controllers.billing import ControllerBilling
|
||||
from SWSCloudCore.controllers.common import ControllerMessagesEmail
|
||||
from SWSCloudCore.controllers.common import special_match
|
||||
from SWSCloudCore.controllers.containers.manage import ControllerManageContainers
|
||||
from SWSCloudCore.controllers.datacenters.manage import ControllerManageDatacenters
|
||||
from SWSCloudCore.controllers.ips.manage import ControllerManageIPs
|
||||
from SWSCloudCore.controllers.servers.manage import ControllerManageServer
|
||||
from flask import Blueprint
|
||||
from flask import g
|
||||
from flask import jsonify
|
||||
|
@ -19,10 +12,17 @@ from flask import request
|
|||
from flask import session
|
||||
from flask import url_for
|
||||
|
||||
from SWSCloudCore import models
|
||||
from SWSCloudCore.controllers.administrators import ControllerAdministrators
|
||||
from SWSCloudCore.controllers.billing import ControllerBilling
|
||||
from SWSCloudCore.controllers.common import ControllerMessagesEmail
|
||||
from SWSCloudCore.controllers.containers.manage import ControllerManageContainers
|
||||
from SWSCloudCore.controllers.datacenters.manage import ControllerManageDatacenters
|
||||
from SWSCloudCore.controllers.ips.manage import ControllerManageIPs
|
||||
from SWSCloudCore.controllers.servers.manage import ControllerManageServer
|
||||
from SWSCloudCore.controllers.users.manage import ControllerManageUsers
|
||||
from SWSCloudCore.controllers.users.manage import ControllerManageUsersBalance
|
||||
from SWSCloudCore.controllers.users.manage import ControllerManageUsersDetails
|
||||
from SWSCloudCore import models
|
||||
|
||||
viewAdministrator = Blueprint('administrator', __name__, url_prefix='/administrator')
|
||||
|
||||
|
@ -34,12 +34,10 @@ def login():
|
|||
admin_password = request.form['password'].encode('utf-8')
|
||||
|
||||
# validation entered data
|
||||
if not special_match(admin_email, r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*$")\
|
||||
or len(admin_password) < 5:
|
||||
g.errors['items'].append('Invalid registration data.')
|
||||
g.errors['total'] += 1
|
||||
# если ошибок нет, то продолжаем обработку
|
||||
if g.errors['total'] == 0:
|
||||
if not validators.email(admin_email):
|
||||
flash('Invalid registration data')
|
||||
return redirect(url_for('administrator.login'))
|
||||
|
||||
# try auth only active users (with status code 1)
|
||||
if ControllerAdministrators().auth(admin_email, admin_password, 1):
|
||||
# get user_id
|
||||
|
@ -53,8 +51,8 @@ def login():
|
|||
# redirect to rules list
|
||||
return redirect(url_for('administrator.dashboard'))
|
||||
else:
|
||||
g.errors['items'].append('Invalid login. Please try again.')
|
||||
g.errors['total'] += 1
|
||||
flah('Invalid login. Please try again.')
|
||||
return redirect('administrator.login')
|
||||
return render_template('administrator/login.html')
|
||||
|
||||
|
||||
|
@ -83,7 +81,10 @@ def dashboard():
|
|||
'payments': models.UsersBalanceTransactions.select().count(),
|
||||
}
|
||||
#
|
||||
return render_template('administrator/dashboard.html', stats=stats)
|
||||
return render_template(
|
||||
'administrator/dashboard.html',
|
||||
stats=stats
|
||||
)
|
||||
|
||||
|
||||
@viewAdministrator.route('/users/')
|
||||
|
@ -151,7 +152,10 @@ def payments():
|
|||
'total': models.UsersBalanceTransactions.select().count(),
|
||||
'items': models.UsersBalanceTransactions.select()
|
||||
}
|
||||
return render_template('administrator/payments.html', payments=payments_items)
|
||||
return render_template(
|
||||
'administrator/payments.html',
|
||||
payments=payments_items
|
||||
)
|
||||
|
||||
|
||||
@viewAdministrator.route('/datacenters')
|
||||
|
@ -210,13 +214,13 @@ def datacenters_edit(dc_id):
|
|||
# POST
|
||||
if request.method == "POST":
|
||||
# todo: ... update record for datacenter
|
||||
return url_for('administrator.datacenters_edit', dc_id=dc_id)
|
||||
return redirect(url_for('administrator.datacenters_edit', dc_id=dc_id))
|
||||
|
||||
datacenter = ControllerManageDatacenters().item_get(dc_id)
|
||||
cmd = ControllerManageDatacenters()
|
||||
|
||||
return render_template(
|
||||
'administrator/datacenters_edit.html',
|
||||
datacenter=datacenter
|
||||
datacenter=cmd.item_get(dc_id)
|
||||
)
|
||||
|
||||
|
||||
|
@ -229,9 +233,10 @@ def servers_index():
|
|||
if not ControllerAdministrators().auth(session['admin_email'], session['admin_password']):
|
||||
return redirect(url_for("administrator.logout"))
|
||||
#
|
||||
cms = ControllerManageServer()
|
||||
return render_template(
|
||||
'administrator/servers/index.html',
|
||||
servers=ControllerManageServer().items_get()
|
||||
servers=cms.items_get()
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# coding: utf-8
|
||||
|
||||
import uuid
|
||||
from flask import Blueprint, g, redirect, render_template, request, session, url_for
|
||||
from flask import Blueprint, g, redirect, render_template, request, session
|
||||
from flask import url_for
|
||||
|
||||
from SWSCloudCore.controllers.billing import ControllerBilling
|
||||
from SWSCloudCore.controllers.common import ControllerCommon
|
||||
|
@ -49,10 +50,9 @@ def create():
|
|||
if request.method == "POST":
|
||||
# check user money
|
||||
if user_balance <= 0:
|
||||
g.errors['total'] += 1
|
||||
g.errors['items'].append(u'No money')
|
||||
flash(u'Недостаточно средств на аккаунте')
|
||||
return redirect(url_for('containers.create'))
|
||||
|
||||
if g.errors['total'] == 0:
|
||||
# select server from selected region with available ip-addresses
|
||||
# select IP
|
||||
select_ip = ControllerIps().getfree(request.form['datacenter'])
|
||||
|
@ -146,7 +146,7 @@ def create():
|
|||
)
|
||||
|
||||
|
||||
@viewContainers.route('/delete/<uuid:container_id>', methods=['GET', 'POST'])
|
||||
@viewContainers.route('/delete/<uuid:container_id>.html', methods=['GET', 'POST'])
|
||||
def delete(container_id):
|
||||
# check session
|
||||
if not ControllerUsers().check_session():
|
||||
|
@ -176,6 +176,7 @@ def delete(container_id):
|
|||
)
|
||||
# TODO: send email container was deleted about
|
||||
# Редиректим на страницу со всеми правилами
|
||||
flash(u'Контейнер был удалён')
|
||||
return redirect(url_for('containers.index'))
|
||||
return render_template(
|
||||
'default/containers/delete.html',
|
||||
|
@ -217,13 +218,12 @@ def settings(container_id):
|
|||
return redirect(url_for('containers.settings', container_id=container_id))
|
||||
|
||||
if request.form['status'] == 'active':
|
||||
balance = models.UsersBalance.select(models.UsersBalance.balance) \
|
||||
.where(models.UsersBalance.user == session['user_id'])[0].balance
|
||||
balance = ControllerBilling().get(session['user_id'])
|
||||
|
||||
if balance <= 0:
|
||||
g.errors['items'].append(u'Недостаточно средств на балансе.')
|
||||
g.errors['total'] += 1
|
||||
else:
|
||||
flash(u'Недостаточно средств на балансе.')
|
||||
return redirect(url_for('containers.settings', container_id=container_id))
|
||||
|
||||
containers.set_status(container_id, 2)
|
||||
# Создание задания
|
||||
ControllerTasks(session['user_id']).create(
|
||||
|
@ -235,10 +235,13 @@ def settings(container_id):
|
|||
)
|
||||
return redirect(url_for('containers.settings', container_id=container_id))
|
||||
|
||||
return render_template('default/containers/settings.html', container=container_details)
|
||||
return render_template(
|
||||
'default/containers/settings.html',
|
||||
container=container_details
|
||||
)
|
||||
|
||||
|
||||
@viewContainers.route('/stats/<uuid:container_id>')
|
||||
@viewContainers.route('/stats/<uuid:container_id>.html')
|
||||
def stats(container_id):
|
||||
# check session
|
||||
if not ControllerUsers().check_session():
|
||||
|
|
2
TODO
Normal file
2
TODO
Normal file
|
@ -0,0 +1,2 @@
|
|||
[ ] Сделать вывод ошибок через flash
|
||||
[ ] Избавиться от лишних методов в common
|
54
setup.py
54
setup.py
|
@ -51,28 +51,52 @@ setup(
|
|||
'static/js/vendor/*.js',
|
||||
#
|
||||
'templates/*.html',
|
||||
'templates/account/*.html',
|
||||
'templates/administrator/*.html',
|
||||
'templates/administrator/payments/*.html',
|
||||
'templates/administrator/plans/*.html',
|
||||
'templates/administrator/containers/*.html',
|
||||
'templates/administrator/datacenters/*.html',
|
||||
'templates/administrator/ips/*.html',
|
||||
'templates/administrator/servers/*.html',
|
||||
'templates/administrator/settings/*.html',
|
||||
'templates/administrator/settings/messages/*.html',
|
||||
'templates/administrator/users/*.html',
|
||||
'templates/administrator/zones/*.html',
|
||||
'templates/billing/*.html',
|
||||
'templates/mail/default/*.html',
|
||||
'templates/mail/default/*.css',
|
||||
'templates/payment/robokassa/*.html',
|
||||
'templates/records/*.html',
|
||||
'templates/support/*.html',
|
||||
'templates/zones/*.html',
|
||||
# 'templates/administrator/payments/*.html',
|
||||
'templates/administrator/wiki/*.html',
|
||||
'templates/administrator/wiki/article/*.html',
|
||||
'templates/administrator/wiki/category/*.html',
|
||||
'templates/default/*.html',
|
||||
'templates/default/containers/*.html',
|
||||
'templates/default/documents/*.html',
|
||||
'templates/default/homepage/*.html',
|
||||
'templates/default/id/*.html',
|
||||
'templates/default/kb/*.html',
|
||||
'templates/default/payment/*.html',
|
||||
'templates/default/support/*.html',
|
||||
'templates/default/tasks/*.html',
|
||||
'templates/email/simple/*.html',
|
||||
'templates/errors/*.html',
|
||||
]
|
||||
},
|
||||
scripts=[
|
||||
'swscloud-db-init.py',
|
||||
'swscloud-runserver.py',
|
||||
'exec/swscloud-db-init.py',
|
||||
'exec/swscloud-settings-init.py',
|
||||
'exec/swscloud-runserver.py',
|
||||
# accounts
|
||||
'exec/swscloud-admin-add.py',
|
||||
# TODO: make it
|
||||
# 'exec/swscloud-admin-delete.py',
|
||||
'exec/swscloud-admin-ls.py',
|
||||
'exec/swscloud-admin-passwd.py',
|
||||
# datacenters
|
||||
'exec/swscloud-dc-add.py',
|
||||
'exec/swscloud-dc-ls.py',
|
||||
# servers
|
||||
'exec/swscloud-server-add.py',
|
||||
'exec/swscloud-server-ls.py',
|
||||
],
|
||||
install_requires=[
|
||||
'Flask==0.10.1',
|
||||
'Flask-Markdown==0.3',
|
||||
'Flask-Babel==0.9'
|
||||
'flask-peewee==0.6.7',
|
||||
'Jinja2==2.8',
|
||||
'peewee==2.8.0',
|
||||
|
@ -81,5 +105,9 @@ setup(
|
|||
'configparser',
|
||||
'uwsgi==2.0.12',
|
||||
'flask_httpauth',
|
||||
'requests==2.7.0',
|
||||
'uWSGI==2.0.11.1',
|
||||
'wsgiref==0.1.2',
|
||||
'sshpubkeys'
|
||||
]
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue