diff --git a/docs/classes.svg b/docs/classes.svg new file mode 100644 index 0000000..dbca735 --- /dev/null +++ b/docs/classes.svg @@ -0,0 +1,401 @@ + + + + + + +G + +cluster_default + + + + + + + + + + +\\DB_Reg + + +DB_Reg + + + +\\Settings + + +Settings + + + +\\DB_SQL + + +«abstract» +DB_SQL + + + +\\DB_PDO + + +«abstract» +DB_PDO + + + +\\PDO + +\PDO + + +\\DB_PDO->\\PDO + + + + +\\Query_Builder + + +Query_Builder + + + +\\DB_Util + + +«abstract» +DB_Util + + + +\\pgSQL_SQL + + +pgSQL_SQL + + + +\\pgSQL_SQL->\\DB_SQL + + + + +\\PgSQL_Util + + +PgSQL_Util + + + +\\PgSQL_Util->\\DB_Util + + + + +\\pgSQL + + +pgSQL + + + +\\pgSQL->\\DB_PDO + + + + +\\ODBC_Util + + +ODBC_Util + + + +\\ODBC_Util->\\DB_Util + + + + +\\ODBC_SQL + + +ODBC_SQL + + + +\\ODBC_SQL->\\DB_SQL + + + + +\\ODBC + + +ODBC + + + +\\ODBC->\\DB_PDO + + + + +\\MySQL_Util + + +MySQL_Util + + + +\\MySQL_Util->\\DB_Util + + + + +\\MySQL + + +MySQL + + + +\\MySQL->\\DB_PDO + + + + +\\MySQL_SQL + + +MySQL_SQL + + + +\\MySQL_SQL->\\DB_SQL + + + + +\\SQLite_Util + + +SQLite_Util + + + +\\SQLite_Util->\\DB_Util + + + + +\\SQLite + + +SQLite + + + +\\SQLite->\\DB_PDO + + + + +\\SQLite_SQL + + +SQLite_SQL + + + +\\SQLite_SQL->\\DB_SQL + + + + +\\Firebird_SQL + + +Firebird_SQL + + + +\\Firebird_SQL->\\DB_SQL + + + + +\\Firebird_Result + + +Firebird_Result + + + +\\PDOStatement + +\PDOStatement + + +\\Firebird_Result->\\PDOStatement + + + + +\\Firebird + + +Firebird + + + +\\Firebird->\\DB_PDO + + + + +\\Firebird_Util + + +Firebird_Util + + + +\\Firebird_Util->\\DB_Util + + + + +\\Connection_Sidebar + + +Connection_Sidebar + + + +\\GtkVBox + +\GtkVBox + + +\\Connection_Sidebar->\\GtkVBox + + + + +\\Data_Grid + + +Data_Grid + + + +\\GtkTreeView + +\GtkTreeView + + +\\Data_Grid->\\GtkTreeView + + + + +\\DB_tabs + + +DB_tabs + + + +\\GTKNotebook + +\GTKNotebook + + +\\DB_tabs->\\GTKNotebook + + + + +\\DB_Info_Widget + + +DB_Info_Widget + + + +\\GtkTable + +\GtkTable + + +\\DB_Info_Widget->\\GtkTable + + + + +\\Add_DB + + +Add_DB + + + +\\GtkWindow + +\GtkWindow + + +\\Add_DB->\\GtkWindow + + + + +\\Edit_DB + + +Edit_DB + + + +\\Edit_DB->\\GtkWindow + + + + +\\DB_Table_Data + + +DB_Table_Data + + + +\\GTKWindow + +\GTKWindow + + +\\DB_Table_Data->\\GTKWindow + + + + +\\Main + + +Main + + + +\\Main->\\GtkWindow + + + + + diff --git a/docs/classes/Add_DB.html b/docs/classes/Add_DB.html new file mode 100644 index 0000000..798b549 --- /dev/null +++ b/docs/classes/Add_DB.html @@ -0,0 +1,81 @@ + + + + + +OpenSQLManager » \Add_DB + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Window controlling addition of database connections

+
+

+

+ Methods

+
+

Create the window

+
__construct() 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Connection_Sidebar.html b/docs/classes/Connection_Sidebar.html new file mode 100644 index 0000000..4c5ed64 --- /dev/null +++ b/docs/classes/Connection_Sidebar.html @@ -0,0 +1,312 @@ + + + + + +OpenSQLManager » \Connection_Sidebar + + + + + + + + + + +
+ +
+ +
+
+

Widget managing saved database connections

+
+

+

+ Methods

+
+

Constructor method

+
__construct() 
+
+

+
+
+

Creates and displays a context menu for the selected connection

+
conn_popup_menu(array $all) : void
+
+
+

+

Parameters

+
+

$all

+array +
+
+
+
+

Create connection to a database

+
db_connect() : void
+
+

+
+
+

Disconnect from a database

+
db_disconnect() : void
+
+

+
+
+

Update the connection information for an existing connection

+
edit_connection() : void
+
+

+
+
+

Return the current instance of the class

+
get_instance() : \Connection_Sidebar
+
+
+

+

Returns

+ +
+
+
+

Returns window for creating a new database connection

+
new_conn() : \Add_DB
+
+
+

+

Returns

+
+\Add_DBobject
+
+
+
+

Event for mouse clicks on connection sidebar

+
on_button(\GtkTreeView $view, $event) : void
+
+
+

+

Parameters

+
+

$view

+\GtkTreeView +
+
+

$event

+ +
+
+
+
+

Recreate sidebar widget to update connections

+
refresh() : void
+
+

+
+
+

Remove a connection from the connection manager

+
remove_connection() : void
+
+

+
+
+

Sets the icon for the current db type

+
set_icon(\GtkTreeView $col, \GtkCellRenderer $cell, \GtkTreeModel $model, \GtkTreeIter $iter) : void
+
+
+

+

Parameters

+
+

$col

+\GtkTreeView

Column $col

+
+
+

$cell

+\GtkCellRenderer +
+
+

$model

+\GtkTreeModel +
+
+

$iter

+\GtkTreeIter +
+
+
+
+

Sets the label of the current db connection

+
set_label(\GtkTreeViewColumn $col, \GtkCellRenderer $cell, \GtkTreeModel $model, \GtkTreeIter $iter) : void
+
+
+

+

Parameters

+
+

$col

+\GtkTreeViewColumn +
+
+

$cell

+\GtkCellRenderer +
+
+

$model

+\GtkTreeModel +
+
+

$iter

+\GtkTreeIter +
+
+
+
+

Sets the status icon of the current db connection

+
set_status_icon(\GtkTreeViewColumn $col, \GtkCellRenderer $cell, \GtkTreeModel $model, \GtkTreeIter $iter) : void
+
+
+

+

Parameters

+
+

$col

+\GtkTreeViewColumn +
+
+

$cell

+\GtkCellRenderer +
+
+

$model

+\GtkTreeModel +
+
+

$iter

+\GtkTreeIter +
+
+
+
+

Change tabs based on db connection selected

+
switch_tab(\GtkTreeView $view) : void
+
+
+

+

Parameters

+
+

$view

+\GtkTreeView +
+
+
+
+

Renders the connection sidebar widget

+
_render() : void
+
+

+
+

+ Properties

+ 
+

Reference to popup menu

+
$menu 
+
+

+
+ 
+

Reference to Settings instance

+
$settings 
+
+

+
+ 
+

Treeview for displaying connections

+
$treeview 
+
+

+
+ 
+

Name of current db connection

+
$conn_name 
+
+

+
+ 
+

Singleton instance

+
$instance 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_Info_Widget.html b/docs/classes/DB_Info_Widget.html new file mode 100644 index 0000000..e5ecdb8 --- /dev/null +++ b/docs/classes/DB_Info_Widget.html @@ -0,0 +1,307 @@ + + + + + +OpenSQLManager » \DB_Info_Widget + + + + + + + + + + +
+ +
+ +
+
+

Widget for adding / editing database connections

+
+

+

+ Methods

+
+

No params = add, params = edit

+
__construct(object $db) 
+
+
+

+

Parameters

+
+

$db

+object +
+
+
+
+

Set defaults for new database type

+
change_db() : void
+
+

+
+
+

Adds the database to the settings file

+
db_add() : void
+
+

+
+
+

Edit an existing database connection

+
db_edit() : void
+
+

+
+
+

Checks what database drivers are available

+
get_available_dbs() : array
+
+
+

+

Returns

+
array
+
+
+
+

Like change_db function, but save current values

+
set_db() : void
+
+

+
+
+

Test a db connection, and display a popup with the result of the test

+
test_conn() : void
+
+

+
+
+

Simple helper function for adding a row to the GtkTable

+
_add_row(string $label, string $vname, int $y1, int $y2) : void
+
+
+

+

Parameters

+
+

$label

+string +
+
+

$vname

+string +
+
+

$y1

+int

&$y1

+
+
+

$y2

+int

&$y2

+
+
+
+
+

Table layout

+
_layout() : void
+
+

+
+

+ Properties

+ 
+

Connection name

+
$conn 
+
+

+
+ 
+

Connection database name

+
$conn_db 
+
+

+
+ 
+

Connection database file

+
$db_file 
+
+

+
+ 
+

Connection database type

+
$dbtype 
+
+

+
+ 
+

Connection database host

+
$host 
+
+

+
+ 
+

Labels

+
$lblconn 
+
+

+
+ 
+

Labels

+
$lblconn_db 
+
+

+
+ 
+

Labels

+
$lbldatabase 
+
+

+
+ 
+

Labels

+
$lbldb_file 
+
+

+
+ 
+

Labels

+
$lbldbtype 
+
+

+
+ 
+

Labels

+
$lblhost 
+
+

+
+ 
+

Labels

+
$lblpass 
+
+

+
+ 
+

Labels

+
$lblport 
+
+

+
+ 
+

Labels

+
$lbluser 
+
+

+
+ 
+

Reference to last connection name

+
$old_conn 
+
+

+
+ 
+

Connection password

+
$pass 
+
+

+
+ 
+

Connection port

+
$port 
+
+

+
+ 
+

Connection user name

+
$user 
+
+

+
+ 
+

Alias to Settings::get_instance

+
$settings : \Settings
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_PDO.html b/docs/classes/DB_PDO.html new file mode 100644 index 0000000..d0aac79 --- /dev/null +++ b/docs/classes/DB_PDO.html @@ -0,0 +1,654 @@ + + + + + +OpenSQLManager » \DB_PDO + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Base Database class

+
+

Extends PDO to simplify cross-database issues

+

+ Methods

+
+

PDO constructor wrapper

+
__construct(string $dsn, string $username, string $password, array $driver_options) 
+
+
+

+

Parameters

+
+

$dsn

+string +
+
+

$username

+string +
+
+

$password

+string +
+
+

$driver_options

+array +
+
+
+
+

__sleep() +

+
__sleep() 
+
+
+

+ + + +
inherited_fromPDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
+
+

+ + + +
inherited_fromPDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
+
+

+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

beginTransaction() +

+
beginTransaction() 
+
+
+

+ + + +
inherited_fromPDO::beginTransaction()
+
+
+
+

commit() +

+
commit() 
+
+
+

+ + + +
inherited_fromPDO::commit()
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
+
+

+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

errorCode() +

+
errorCode() 
+
+
+

+ + + +
inherited_fromPDO::errorCode()
+
+
+
+

errorInfo() +

+
errorInfo() 
+
+
+

+ + + +
inherited_fromPDO::errorInfo()
+
+
+
+

exec() +

+
exec() 
+
+
+

+ + + +
inherited_fromPDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
+
+

+ + + +
inherited_fromPDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
+
+

+ + + +
inherited_fromPDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
+
+

+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
+
+

+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Return schemas for databases that list them

+
get_schemas() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
+
+

+

Returns

+
array
+
+
+
+

Retreives an array of non-user-created tables for +the connection/database

+
get_system_tables() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of tables for the current database

+
get_tables() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
+
+

+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
+
+

+ + + +
inherited_fromPDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
+
+

+ + + +
inherited_fromPDO::lastInsertId()
+
+
+
+

Return the number of rows for the last SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

prepare() +

+
prepare() 
+
+
+

+ + + +
inherited_fromPDO::prepare()
+
+
+
+

Create and execute a prepared statement with the provided parameters

+
prepare_execute(string $sql, array $params) : \PDOStatement
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+ +
+
+
+

Simplifies prepared statements for database queries

+
prepare_query(string $sql, array $data) : mixed
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$data

+array +
+

Returns

+
+mixedPDOStatement / FALSE
+
+
+
+

query() +

+
query() 
+
+
+

+ + + +
inherited_fromPDO::query()
+
+
+
+

quote() +

+
quote() 
+
+
+

+ + + +
inherited_fromPDO::quote()
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
+
+

+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

rollBack() +

+
rollBack() 
+
+
+

+ + + +
inherited_fromPDO::rollBack()
+
+
+
+

setAttribute() +

+
setAttribute() 
+
+
+

+ + + +
inherited_fromPDO::setAttribute()
+
+
+
+

Connect to a different database

+
switch_db(string $name) : void
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Empty the passed table

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
+

+
+ 
+

Reference to util sub class

+
$util 
+
+

+
+ 
+

Character to escape identifiers

+
$escape_char 
+
+

+
+ 
+

Reference to the last executed query

+
$statement 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_Reg.html b/docs/classes/DB_Reg.html new file mode 100644 index 0000000..772ca58 --- /dev/null +++ b/docs/classes/DB_Reg.html @@ -0,0 +1,143 @@ + + + + + +OpenSQLManager » \DB_Reg + + + + + + + + + + +
+ +
+ +
+
+

Connection registry

+
+

Decouples the Settings class from the query builder +and organizes database connections

+

+ Methods

+
+

Return exiting connections

+
get_connections() : array
+
+
+

+

Returns

+
array
+
+
+
+

Registry access method

+
get_db(string $key) : object
+
+
+

+

Parameters

+
+

$key

+string +
+

Returns

+
object
+
+
+
+

Remove a database connection

+
remove_db(string $key) : void
+
+
+

+

Parameters

+
+

$key

+string +
+
+
+
+

Private constructor

+
__construct(string $key) 
+
+
+

+

Parameters

+
+

$key

+string +
+
+
+

+ Properties

+ 
+

Static array of connections

+
$instance 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_SQL.html b/docs/classes/DB_SQL.html new file mode 100644 index 0000000..f89014b --- /dev/null +++ b/docs/classes/DB_SQL.html @@ -0,0 +1,260 @@ + + + + + +OpenSQLManager » \DB_SQL + + + + + + + + + + +
+ +
+ +
+
+

Abstract parent for database manipulation subclasses

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get database specific sql for limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+ + + +
abstract
+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the sql for random ordering

+
random() : string
+
+
+

+ + + +
abstract
+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list system tables

+
system_table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list tables

+
table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list triggers

+
trigger_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list views

+
view_list() : string
+
+
+

+

Returns

+
string
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_Table_Data.html b/docs/classes/DB_Table_Data.html new file mode 100644 index 0000000..efb1edd --- /dev/null +++ b/docs/classes/DB_Table_Data.html @@ -0,0 +1,100 @@ + + + + + +OpenSQLManager » \DB_Table_Data + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Popup window to display database table data

+
+

+

+ Methods

+
+

Create and populate the window

+
__construct(array $data) : void
+
+
+

+

Parameters

+
+

$data

+array +
+
+
+

+ Properties

+ 
+

Reference to the scrolled window

+
$win 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_Util.html b/docs/classes/DB_Util.html new file mode 100644 index 0000000..4e6eca7 --- /dev/null +++ b/docs/classes/DB_Util.html @@ -0,0 +1,200 @@ + + + + + +OpenSQLManager » \DB_Util + + + + + + + + + + +
+ +
+ +
+
+

Abstract class defining database / table creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
+
+

+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the connection object for later use

+
__construct(object $conn) 
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Return an SQL file with the database data as insert statements

+
backup_data() : string
+
+
+

+ + + +
abstract
+

Returns

+
string
+
+
+
+

Return an SQL file with the database table structure

+
backup_structure() : string
+
+
+

+ + + +
abstract
+

Returns

+
string
+
+
+
+

Get database-specific sql to create a new table

+
create_table(string $name, array $columns, array $constraints, array $indexes) : string
+
+
+

+ + + +
abstract
+

Parameters

+
+

$name

+string +
+
+

$columns

+array +
+
+

$constraints

+array +
+
+

$indexes

+array +
+

Returns

+
string
+
+
+
+

Get database-specific sql to drop a table

+
delete_table(string $name) : string
+
+
+

+ + + +
abstract
+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/DB_tabs.html b/docs/classes/DB_tabs.html new file mode 100644 index 0000000..5743c97 --- /dev/null +++ b/docs/classes/DB_tabs.html @@ -0,0 +1,278 @@ + + + + + +OpenSQLManager » \DB_tabs + + + + + + + + + + +
+ +
+ +
+
+

Tabbed Container for database properties

+
+

+

+ Methods

+
+

Create the object

+
__construct() 
+
+

+
+
+

Add a new tab with the provided label

+
add_tab(string $label, \GObject $widget) : void
+
+
+

+

Parameters

+
+

$label

+string +
+
+

$widget

+\GObject +
+
+
+
+

Create tabs for database aspects

+
get_db_tabs(\Query_Builder $conn) : void
+
+
+

+

Parameters

+
+

$conn

+\Query_Builder +
+
+
+
+

Return the db tabs object if it exists, or create and return

+
get_instance() : \DB_tabs
+
+
+

+

Returns

+ +
+
+
+

Remove current tabs

+
reset(string $conn_name) : void
+
+
+

+

Parameters

+
+

$conn_name

+string +
+
+
+
+

Create popup window with table data

+
show_table_data(\GTKTreeView $view, array $path, \GtkTreeviewColumn $col, \Query_Builder $conn) : void
+
+
+

+

Parameters

+
+

$view

+\GTKTreeView +
+
+

$path

+array +
+
+

$col

+\GtkTreeviewColumn +
+
+

$conn

+\Query_Builder +
+
+
+
+

Add a multidimensional array to a tab

+
_add_row_tab(object $conn, string $tab_name, string $method) : void
+
+
+

+

Parameters

+
+

$conn

+object +
+
+

$tab_name

+string +
+
+

$method

+string +
+
+
+
+

Simplify adding tabs to the Notebook object

+
_add_tab(object $conn, string $tab_name, string $col_name, string $method, array $events) : void
+
+
+

+

Parameters

+
+

$conn

+object +
+
+

$tab_name

+string +
+
+

$col_name

+string +
+
+

$method

+string +
+
+

$events

+array +
+
+
+
+

Returns cached database data for the tab and connection specified

+
_get_db_info(string $conn_name, string $tab_name) : mixed
+
+
+

+

Parameters

+
+

$conn_name

+string +
+
+

$tab_name

+string +
+

Returns

+
mixed
+
+
+
+

Sets cached database data for the tab and connection specified

+
_set_db_info(string $conn_name, string $tab_name, mixed $data) 
+
+
+

+

Parameters

+
+

$conn_name

+string +
+
+

$tab_name

+string +
+
+

$data

+mixed +
+
+
+

+ Properties

+ 
+

Db Data cache

+
$data 
+
+

+
+ 
+

Current Tab Widget object

+
$instance : \DB_Tabs
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Data_Grid.html b/docs/classes/Data_Grid.html new file mode 100644 index 0000000..b32233b --- /dev/null +++ b/docs/classes/Data_Grid.html @@ -0,0 +1,170 @@ + + + + + +OpenSQLManager » \Data_Grid + + + + + + + + + + +
+ +
+ +
+
+

Class to simplify dealing with GtkTreeView

+
+

+

+ Methods

+
+

Create the object

+
__construct(object $model) 
+
+
+

+

Parameters

+
+

$model

+object +
+
+
+
+

Adds a column of data to the model

+
add_data_col(\GtkTreeViewColumn $col, \GtkCellRenderer $cell, \GtkTreeModel $model, \GtkTreeIter $iter, int $i) : void
+
+
+

+

Parameters

+
+

$col

+\GtkTreeViewColumn +
+
+

$cell

+\GtkCellRenderer +
+
+

$model

+\GtkTreeModel +
+
+

$iter

+\GtkTreeIter +
+
+

$i

+int +
+
+
+
+

Get the value of the model for the current selection

+
get(int $pos) : mixed
+
+
+

+

Parameters

+
+

$pos

+int

pos

+

Returns

+
mixed
+
+
+
+

Create a datagrid from the provided data array

+
render_data(array $data, array $events) : void
+
+
+

+

Parameters

+
+

$data

+array +
+
+

$events

+array +
+
+
+
+

Clear datagrid

+
reset() : void
+
+

+
+

+ Properties

+ 
+

GtkTreeStore object

+
$model 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Edit_DB.html b/docs/classes/Edit_DB.html new file mode 100644 index 0000000..ba93a97 --- /dev/null +++ b/docs/classes/Edit_DB.html @@ -0,0 +1,88 @@ + + + + + +OpenSQLManager » \Edit_DB + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Window controlling modifications of database connections

+
+

+

+ Methods

+
+

Connection editing window

+
__construct(object $db_params) 
+
+
+

+

Parameters

+
+

$db_params

+object +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Firebird.html b/docs/classes/Firebird.html new file mode 100644 index 0000000..507a5e5 --- /dev/null +++ b/docs/classes/Firebird.html @@ -0,0 +1,800 @@ + + + + + +OpenSQLManager » \Firebird + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Firebird Database class

+
+

PDO-firebird isn't stable, so this is a wrapper of the fbird_ public functions.

+

+ Methods

+
+

Open the link to the database

+
__construct(string $dbpath, string $user, string $pass) 
+
+
+

+

Parameters

+
+

$dbpath

+string +
+
+

$user

+string +
+
+

$pass

+string +
+
+
+
+

__sleep() +

+
__sleep() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__sleep()
inherited_from\DB_PDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__wakeup()
inherited_from\DB_PDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::affected_rows()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

Start a database transaction

+
beginTransaction() : bool
+
+
+

+

Returns

+
bool
+
+
+
+

Commit a database transaction

+
commit() : bool
+
+
+

+

Returns

+
bool
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::empty_table()
+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

Method to emulate PDO->errorCode

+
errorCode() : array
+
+
+

+

Returns

+
array
+
+
+
+

Method to emulate PDO->errorInfo / PDOStatement->errorInfo

+
errorInfo() : array
+
+
+

+

Returns

+
array
+
+
+
+

exec() +

+
exec() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::exec()
inherited_from\DB_PDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAttribute()
inherited_from\DB_PDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAvailableDrivers()
inherited_from\DB_PDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_dbs()
+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_functions()
+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_last_error()
+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_procedures()
+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_query_data()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Return schemas for databases that list them

+
get_schemas() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_schemas()
+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_sequences()
+

Returns

+
array
+
+
+
+

Retreives an array of non-user-created tables for +the connection/database

+
get_system_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_system_tables()
+

Returns

+
array
+
+
+
+

Return list of tables for the current database

+
get_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_tables()
+

Returns

+
array
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_triggers()
+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_views()
+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::inTransaction()
inherited_from\DB_PDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::lastInsertId()
inherited_from\DB_PDO::lastInsertId()
+
+
+
+

Return the number of rows returned for a SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

Emulate PDO prepare

+
prepare(string $query, array $options) : \Firebird
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$query

+string +
+
+

$options

+array +
+

Returns

+ +
+
+
+

Prepare and execute a query

+
prepare_execute(string $sql, array $args) : resource
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$args

+array +
+

Returns

+
resource
+
+
+
+

Bind a prepared query with arguments for executing

+
prepare_query(string $sql, array $params) : FALSE
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+
FALSE
+
+
+
+

Wrapper public function to better match PDO

+
query(string $sql) : \Firebird
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$sql

+string +
+

Returns

+ +
+
+
+

Method to emulate PDO->quote

+
quote(string $str, int $param_type) : string
+
+
+

+

Parameters

+
+

$str

+string +
+
+

$param_type

+int +
+

Returns

+
string
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::quote_ident()
+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

Rollback a transaction

+
rollBack() : bool
+
+
+

+

Returns

+
bool
+
+
+
+

setAttribute() +

+
setAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::setAttribute()
inherited_from\DB_PDO::setAttribute()
+
+
+
+

Doesn't apply to Firebird

+
switch_db(string $name) : FALSE
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
FALSE
+
+
+
+

Empty a database table

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::driver_query()
+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$sql
+
+
+ 
+

Reference to util sub class

+
$util 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$util
+
+
+ 
+

Reference to the connection resource

+
$conn 
+
+

+
+ 
+

Character to escape identifiers

+
$escape_char 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$escape_char
+
+
+ 
+

Reference to the last query executed

+
$statement 
+
+

+
+  + 
+

Reference to the current transaction

+
$trans 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Firebird_Result.html b/docs/classes/Firebird_Result.html new file mode 100644 index 0000000..7028920 --- /dev/null +++ b/docs/classes/Firebird_Result.html @@ -0,0 +1,486 @@ + + + + + +OpenSQLManager » \Firebird_Result + + + + + + + + + + +
+ +
+ +
+
+

Firebird result class to emulate PDOStatement Class - only implements +data-fetching methods

+
+

+

+ Methods

+
+

Create the object by passing the resource for +the query

+
__construct(resource $link) 
+
+
+

+

Parameters

+
+

$link

+resource +
+
+
+
+

__sleep() +

+
__sleep() 
+
+
+

+ + + +
inherited_fromPDOStatement::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
+
+

+ + + +
inherited_fromPDOStatement::__wakeup()
+
+
+
+

Invalidate method for data consistency

+
bindColumn(mixed $column, mixed $param, int $type, mixed $maxlen, array $driverdata) : FALSE
+
+
+

+

Parameters

+
+

$column

+mixed +
+
+

$param

+mixed

&$param

+
+
+

$type

+int +
+
+

$maxlen

+mixed +
+
+

$driverdata

+array +
+

Returns

+
FALSE
+
+
+
+

Invalidate method for data consistency

+
bindParam(mixed $parameter, mixed $variable, int $data_type, mixed $maxlen, array $driverdata) : FALSE
+
+
+

+

Parameters

+
+

$parameter

+mixed +
+
+

$variable

+mixed

&$variable

+
+
+

$data_type

+int +
+
+

$maxlen

+mixed +
+
+

$driverdata

+array +
+

Returns

+
FALSE
+
+
+
+

Invalidate method for data consistency

+
bindValue(mixed $parameter, mixed $variable, int $data_type) : FALSE
+
+
+

+

Parameters

+
+

$parameter

+mixed +
+
+

$variable

+mixed

&$variable

+
+
+

$data_type

+int +
+

Returns

+
FALSE
+
+
+
+

closeCursor() +

+
closeCursor() 
+
+
+

+ + + +
inherited_fromPDOStatement::closeCursor()
+
+
+
+

columnCount() +

+
columnCount() 
+
+
+

+ + + +
inherited_fromPDOStatement::columnCount()
+
+
+
+

debugDumpParams() +

+
debugDumpParams() 
+
+
+

+ + + +
inherited_fromPDOStatement::debugDumpParams()
+
+
+
+

Method to emulate PDOStatement->errorCode

+
errorCode() : string
+
+
+

+

Returns

+
string
+
+
+
+

Method to emulate PDO->errorInfo / PDOStatement->errorInfo

+
errorInfo() : array
+
+
+

+

Returns

+
array
+
+
+
+

Run a prepared statement query

+
execute(array $args) : bool
+
+
+

+

Parameters

+
+

$args

+array +
+

Returns

+
bool
+
+
+
+

Emulate PDO fetch public function

+
fetch(int $fetch_style, mixed $statement, mixed $offset) : mixed
+
+
+

+

Parameters

+
+

$fetch_style

+int +
+
+

$statement

+mixed +
+
+

$offset

+mixed +
+

Returns

+
mixed
+
+
+
+

Emulate PDO fetchAll public function

+
fetchAll(int $fetch_style, mixed $statement, mixed $ctor_args) : mixed
+
+
+

+

Parameters

+
+

$fetch_style

+int +
+
+

$statement

+mixed +
+
+

$ctor_args

+mixed +
+

Returns

+
mixed
+
+
+
+

Emulate PDOStatement::fetchColumn

+
fetchColumn(int $column_num) : mixed
+
+
+

+

Parameters

+
+

$column_num

+int +
+

Returns

+
mixed
+
+
+
+

Emulate PDOStatement::fetchObject, but only for the default use

+
fetchObject(string $class_name, array $ctor_args) : mixed
+
+
+

+

Parameters

+
+

$class_name

+string +
+
+

$ctor_args

+array +
+

Returns

+
mixed
+
+
+
+

getAttribute() +

+
getAttribute() 
+
+
+

+ + + +
inherited_fromPDOStatement::getAttribute()
+
+
+
+

getColumnMeta() +

+
getColumnMeta() 
+
+
+

+ + + +
inherited_fromPDOStatement::getColumnMeta()
+
+
+
+

nextRowset() +

+
nextRowset() 
+
+
+

+ + + +
inherited_fromPDOStatement::nextRowset()
+
+
+
+

Return the number of rows for the select query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

Return the number of rows affected by the previous query

+
rowCount() : int
+
+
+

+

Returns

+
int
+
+
+
+

setAttribute() +

+
setAttribute() 
+
+
+

+ + + +
inherited_fromPDOStatement::setAttribute()
+
+
+
+

setFetchMode() +

+
setFetchMode() 
+
+
+

+ + + +
inherited_fromPDOStatement::setFetchMode()
+
+
+

+ Properties

+ 
+

Reference to fbird resource

+
$statement 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Firebird_SQL.html b/docs/classes/Firebird_SQL.html new file mode 100644 index 0000000..d2b591e --- /dev/null +++ b/docs/classes/Firebird_SQL.html @@ -0,0 +1,288 @@ + + + + + +OpenSQLManager » \Firebird_SQL + + + + + + + + + + +
+ +
+ +
+
+

Firebird Specific SQL

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::avg()
+

Returns

+
string
+
+
+
+

Return sql to list columns of the specified table

+
column_list(string $table) : string
+
+
+

+

Parameters

+
+

$table

+string +
+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::distinct()
+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::max()
+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::min()
+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Random ordering keyword

+
random() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::sum()
+

Returns

+
string
+
+
+
+

Returns sql to list system tables

+
system_table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list tables

+
table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list triggers

+
trigger_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list views

+
view_list() : string
+
+
+

+

Returns

+
string
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Firebird_Util.html b/docs/classes/Firebird_Util.html new file mode 100644 index 0000000..6fda29a --- /dev/null +++ b/docs/classes/Firebird_Util.html @@ -0,0 +1,203 @@ + + + + + +OpenSQLManager » \Firebird_Util + + + + + + + + + + +
+ +
+ +
+
+

Firebird-specific backup, import and creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::__call()
+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the current connection object

+
__construct(object $conn) : void
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Create an SQL backup file for the current database's data

+
backup_data(array $exclude, bool $system_tables) : string
+
+
+

+

Parameters

+
+

$exclude

+array +
+
+

$system_tables

+bool +
+

Returns

+
string
+
+
+
+

Create an SQL backup file for the current database's structure

+
backup_structure() : string
+
+
+

+

Returns

+
string
+
+
+
+

Convienience public function to generate sql for creating a db table

+
create_table(string $name, array $fields, array $constraints, array $indexes) : string
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$fields

+array +
+
+

$constraints

+array +
+
+

$indexes

+array +
+

Returns

+
string
+
+
+
+

Drop the selected table

+
delete_table(string $name) : string
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::$$conn
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Main.html b/docs/classes/Main.html new file mode 100644 index 0000000..bc52227 --- /dev/null +++ b/docs/classes/Main.html @@ -0,0 +1,136 @@ + + + + + +OpenSQLManager » \Main + + + + + + + + + + +
+ +
+ +
+
+

Main Window Class

+
+

Creates and displays the main interface window

+

+ Methods

+
+

Create and display the main window on startup

+
__construct() 
+
+

+
+
+

Some cleanup for when the main window is closed

+
__destruct() : void
+
+

+
+
+

Exits the GTK loop

+
quit() : void
+
+

+
+
+

Create the menu for the program

+
_create_menu() : \GtkMenuBar
+
+
+

+

Returns

+
\GtkMenuBar
+
+
+
+

Layout the main interface +Create menus, hboxes, vboxs and other widgets

+
_main_layout() : void
+
+

+
+

+ Properties

+ 
+

Reference to connection sidebar instance

+
$connection_sidebar 
+
+

+
+ 
+

Reference to settings instance

+
$settings 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/MySQL.html b/docs/classes/MySQL.html new file mode 100644 index 0000000..c62b7c2 --- /dev/null +++ b/docs/classes/MySQL.html @@ -0,0 +1,840 @@ + + + + + +OpenSQLManager » \MySQL + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

MySQL specific class

+
+

Extends PDO to simplify cross-database issues

+ + + +
extendsDB_PDO
+

+ Methods

+
+

Connect to MySQL Database

+
__construct(string $dsn, string $username, string $password, array $options) 
+
+
+

+

Parameters

+
+

$dsn

+string +
+
+

$username

+string +
+
+

$password

+string +
+
+

$options

+array +
+
+
+
+

__sleep() +

+
__sleep() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__sleep()
inherited_from\DB_PDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__wakeup()
inherited_from\DB_PDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::affected_rows()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

beginTransaction() +

+
beginTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::beginTransaction()
inherited_from\DB_PDO::beginTransaction()
+
+
+
+

commit() +

+
commit() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::commit()
inherited_from\DB_PDO::commit()
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::empty_table()
+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

errorCode() +

+
errorCode() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorCode()
inherited_from\DB_PDO::errorCode()
+
+
+
+

errorInfo() +

+
errorInfo() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorInfo()
inherited_from\DB_PDO::errorInfo()
+
+
+
+

exec() +

+
exec() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::exec()
inherited_from\DB_PDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAttribute()
inherited_from\DB_PDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAvailableDrivers()
inherited_from\DB_PDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_dbs()
+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_functions()
+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_last_error()
+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_procedures()
+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_query_data()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Return schemas for databases that list them

+
get_schemas() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_schemas()
+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_sequences()
+

Returns

+
array
+
+
+
+

Retreives an array of non-user-created tables for +the connection/database

+
get_system_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_system_tables()
+

Returns

+
array
+
+
+
+

Return list of tables for the current database

+
get_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_tables()
+

Returns

+
array
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_triggers()
+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_views()
+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::inTransaction()
inherited_from\DB_PDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::lastInsertId()
inherited_from\DB_PDO::lastInsertId()
+
+
+
+

Return the number of rows returned for a SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

prepare() +

+
prepare() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::prepare()
inherited_from\DB_PDO::prepare()
+
+
+
+

Create and execute a prepared statement with the provided parameters

+
prepare_execute(string $sql, array $params) : \PDOStatement
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_execute()
+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+ +
+
+
+

Simplifies prepared statements for database queries

+
prepare_query(string $sql, array $data) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_query()
+

Parameters

+
+

$sql

+string +
+
+

$data

+array +
+

Returns

+
+mixedPDOStatement / FALSE
+
+
+
+

query() +

+
query() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::query()
inherited_from\DB_PDO::query()
+
+
+
+

quote() +

+
quote() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::quote()
inherited_from\DB_PDO::quote()
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::quote_ident()
+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

rollBack() +

+
rollBack() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::rollBack()
inherited_from\DB_PDO::rollBack()
+
+
+
+

setAttribute() +

+
setAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::setAttribute()
inherited_from\DB_PDO::setAttribute()
+
+
+
+

Connect to a different database

+
switch_db(string $name) : void
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Empty a table

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::driver_query()
+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$sql
+
+
+ 
+

Reference to util sub class

+
$util 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$util
+
+
+ 
+

Set the backtick as the MySQL escape character

+
$escape_char 
+
+

+
+ 
+

Reference to the last executed query

+
$statement 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$statement
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/MySQL_SQL.html b/docs/classes/MySQL_SQL.html new file mode 100644 index 0000000..f489870 --- /dev/null +++ b/docs/classes/MySQL_SQL.html @@ -0,0 +1,272 @@ + + + + + +OpenSQLManager » \MySQL_SQL + + + + + + + + + + +
+ +
+ +
+
+

MySQL specifc SQL

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::avg()
+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::distinct()
+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::max()
+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::min()
+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Random ordering keyword

+
random() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::sum()
+

Returns

+
string
+
+
+
+

Overridden in MySQL class

+
system_table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list tables

+
table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list triggers

+
trigger_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list views

+
view_list() : string
+
+
+

+

Returns

+
string
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/MySQL_Util.html b/docs/classes/MySQL_Util.html new file mode 100644 index 0000000..c4850cf --- /dev/null +++ b/docs/classes/MySQL_Util.html @@ -0,0 +1,199 @@ + + + + + +OpenSQLManager » \MySQL_Util + + + + + + + + + + +
+ +
+ +
+
+

MySQL-specific backup, import and creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::__call()
+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the current connection object

+
__construct(object $conn) : void
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Create an SQL backup file for the current database's data

+
backup_data(array $exclude) : string
+
+
+

+

Parameters

+
+

$exclude

+array +
+

Returns

+
string
+
+
+
+

Create an SQL backup file for the current database's structure

+
backup_structure() : string
+
+
+

+

Returns

+
string
+
+
+
+

Convienience public function for creating a new MySQL table

+
create_table(string $name, array $columns, array $constraints, array $indexes) : string
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$columns

+array +
+
+

$constraints

+array +
+
+

$indexes

+array +
+

Returns

+
string
+
+
+
+

Convience public function for droping a MySQL table

+
delete_table(string $name) : string
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::$$conn
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/ODBC.html b/docs/classes/ODBC.html new file mode 100644 index 0000000..a0fc4ce --- /dev/null +++ b/docs/classes/ODBC.html @@ -0,0 +1,842 @@ + + + + + +OpenSQLManager » \ODBC + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

ODBC Database Driver

+
+

For general database access for databases not specified by the main drivers

+ + + +
extendsDB_PDO
+

+ Methods

+
+

Use ODBC to connect to a database

+
__construct(string $dsn, string $username, string $password, array $options) 
+
+
+

+

Parameters

+
+

$dsn

+string +
+
+

$username

+string +
+
+

$password

+string +
+
+

$options

+array +
+
+
+
+

__sleep() +

+
__sleep() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__sleep()
inherited_from\DB_PDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__wakeup()
inherited_from\DB_PDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::affected_rows()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

beginTransaction() +

+
beginTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::beginTransaction()
inherited_from\DB_PDO::beginTransaction()
+
+
+
+

commit() +

+
commit() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::commit()
inherited_from\DB_PDO::commit()
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::empty_table()
+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

errorCode() +

+
errorCode() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorCode()
inherited_from\DB_PDO::errorCode()
+
+
+
+

errorInfo() +

+
errorInfo() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorInfo()
inherited_from\DB_PDO::errorInfo()
+
+
+
+

exec() +

+
exec() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::exec()
inherited_from\DB_PDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAttribute()
inherited_from\DB_PDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAvailableDrivers()
inherited_from\DB_PDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_dbs()
+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_functions()
+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_last_error()
+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_procedures()
+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_query_data()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Return schemas for databases that list them

+
get_schemas() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_schemas()
+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_sequences()
+

Returns

+
array
+
+
+
+

Retreives an array of non-user-created tables for +the connection/database

+
get_system_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_system_tables()
+

Returns

+
array
+
+
+
+

Return list of tables for the current database

+
get_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_tables()
+

Returns

+
array
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_triggers()
+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_views()
+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::inTransaction()
inherited_from\DB_PDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::lastInsertId()
inherited_from\DB_PDO::lastInsertId()
+
+
+
+

Return the number of rows returned for a SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

prepare() +

+
prepare() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::prepare()
inherited_from\DB_PDO::prepare()
+
+
+
+

Create and execute a prepared statement with the provided parameters

+
prepare_execute(string $sql, array $params) : \PDOStatement
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_execute()
+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+ +
+
+
+

Simplifies prepared statements for database queries

+
prepare_query(string $sql, array $data) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_query()
+

Parameters

+
+

$sql

+string +
+
+

$data

+array +
+

Returns

+
+mixedPDOStatement / FALSE
+
+
+
+

query() +

+
query() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::query()
inherited_from\DB_PDO::query()
+
+
+
+

quote() +

+
quote() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::quote()
inherited_from\DB_PDO::quote()
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::quote_ident()
+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

rollBack() +

+
rollBack() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::rollBack()
inherited_from\DB_PDO::rollBack()
+
+
+
+

setAttribute() +

+
setAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::setAttribute()
inherited_from\DB_PDO::setAttribute()
+
+
+
+

Doesn't apply to ODBC

+
switch_db(string $name) : bool
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
bool
+
+
+
+

Empty the current database

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::driver_query()
+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$sql
+
+
+ 
+

Reference to util sub class

+
$util 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$util
+
+
+ 
+

Don't define the escape char - or define it in sub-drivers in a refactor

+
$escape_char 
+
+

+
+ 
+

Reference to the last executed query

+
$statement 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$statement
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/ODBC_SQL.html b/docs/classes/ODBC_SQL.html new file mode 100644 index 0000000..64331bf --- /dev/null +++ b/docs/classes/ODBC_SQL.html @@ -0,0 +1,272 @@ + + + + + +OpenSQLManager » \ODBC_SQL + + + + + + + + + + +
+ +
+ +
+
+

ODBC SQL Class

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::avg()
+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::distinct()
+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::max()
+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::min()
+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Random ordering keyword

+
random() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::sum()
+

Returns

+
string
+
+
+
+

Returns sql to list system tables

+
system_table_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Returns sql to list tables

+
table_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Returns sql to list triggers

+
trigger_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Returns sql to list views

+
view_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/ODBC_Util.html b/docs/classes/ODBC_Util.html new file mode 100644 index 0000000..c48270f --- /dev/null +++ b/docs/classes/ODBC_Util.html @@ -0,0 +1,194 @@ + + + + + +OpenSQLManager » \ODBC_Util + + + + + + + + + + +
+ +
+ +
+
+

ODBC-specific backup, import and creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::__call()
+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the current connection object

+
__construct(object $conn) : void
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Create an SQL backup file for the current database's data

+
backup_data() : string
+
+
+

+

Returns

+
string
+
+
+
+

Create an SQL backup file for the current database's structure

+
backup_structure() : string
+
+
+

+

Returns

+
string
+
+
+
+

Database-specific method to create a new table

+
create_table(string $name, array $columns, array $constraints, array $indexes) : string
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$columns

+array +
+
+

$constraints

+array +
+
+

$indexes

+array +
+

Returns

+
string
+
+
+
+

Remove a table from the database

+
delete_table(string $name) : string
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::$$conn
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/PgSQL_Util.html b/docs/classes/PgSQL_Util.html new file mode 100644 index 0000000..ba5829a --- /dev/null +++ b/docs/classes/PgSQL_Util.html @@ -0,0 +1,199 @@ + + + + + +OpenSQLManager » \PgSQL_Util + + + + + + + + + + +
+ +
+ +
+
+

Posgres-specific backup, import and creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::__call()
+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the current connection object

+
__construct(object $conn) : void
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Create an SQL backup file for the current database's data

+
backup_data(array $exclude) : string
+
+
+

+

Parameters

+
+

$exclude

+array +
+

Returns

+
string
+
+
+
+

Create an SQL backup file for the current database's structure

+
backup_structure() : string
+
+
+

+

Returns

+
string
+
+
+
+

Database-specific method to create a new table

+
create_table(string $name, array $columns, array $constraints, array $indexes) : string
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$columns

+array +
+
+

$constraints

+array +
+
+

$indexes

+array +
+

Returns

+
string
+
+
+
+

Database-specific SQL for dropping a table

+
delete_table(string $name) : string
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::$$conn
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Query_Builder.html b/docs/classes/Query_Builder.html new file mode 100644 index 0000000..e0a2a28 --- /dev/null +++ b/docs/classes/Query_Builder.html @@ -0,0 +1,1074 @@ + + + + + +OpenSQLManager » \Query_Builder + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Convienience class for creating sql queries - also the class that +instantiates the specific db driver

+
+

+

+ Methods

+
+

Calls a function further down the inheritence chain

+
__call(string $name, array $params) : mixed
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$params

+array +
+

Returns

+
mixed
+
+
+
+

Constructor

+
__construct(object $params) 
+
+
+

+

Parameters

+
+

$params

+object
    +
  • the connection parametere
  • +
+
+
+
+
+

Retreive the number of rows in the selected table

+
count_all(string $table) : int
+
+
+

+

Parameters

+
+

$table

+string +
+

Returns

+
int
+
+
+
+

Retrieve the number of results for the generated query - used +in place of the get() method

+
count_all_results(string $table) : int
+
+
+

+

Parameters

+
+

$table

+string +
+

Returns

+
int
+
+
+
+

Deletes data from a table

+
delete(string $table, mixed $where) : mixed
+
+
+

+

Parameters

+
+

$table

+string +
+
+

$where

+mixed +
+

Returns

+
mixed
+
+
+
+

Adds the 'distinct' keyword to a query

+
distinct() : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Returns

+ +
+
+
+

Specify the database table to select from

+
from(string $dbname) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$dbname

+string +
+

Returns

+ +
+
+
+

Select and retrieve all records from the current table, and/or +execute current compiled query

+
get($table, int $limit, int $offset) : object
+
+
+

+

Parameters

+
+

$table

+ +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
object
+
+
+
+

Convience method for get() with a where clause

+
get_where(string $table, array $where, int $limit, int $offset) : object
+
+
+

+

Parameters

+
+

$table

+string +
+
+

$where

+array +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
object
+
+
+
+

Group the results by the selected field(s)

+
group_by(mixed $field) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+mixed +
+

Returns

+ +
+
+
+

Ends a query group

+
group_end() : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Returns

+ +
+
+
+

Adds a paren to the current query for query grouping

+
group_start() : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Returns

+ +
+
+
+

Generates a 'Having' clause

+
having(mixed $key, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$key

+mixed +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Creates an insert clause, and executes it

+
insert(string $table, mixed $data) : mixed
+
+
+

+

Parameters

+
+

$table

+string +
+
+

$data

+mixed +
+

Returns

+
mixed
+
+
+
+

Creates a join phrase in a compiled query

+
join(string $table, string $condition, string $type) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$table

+string +
+
+

$condition

+string +
+
+

$type

+string +
+

Returns

+ +
+
+ +
+

Set a limit on the current sql statement

+
limit(int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Generates a NOT LIKE clause

+
not_like(string $field, mixed $val, string $pos) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+
+

$pos

+string +
+

Returns

+ +
+
+
+

Adds a paren to the current query for query grouping, +prefixed with 'OR'

+
or_group_start() : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Returns

+ +
+
+
+

Generates a 'Having' clause prefixed with 'OR'

+
or_having(mixed $key, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$key

+mixed +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Generates an OR Like clause

+
or_like(string $field, mixed $val, string $pos) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+
+

$pos

+string +
+

Returns

+ +
+
+
+

Adds a paren to the current query for query grouping, +prefixed with 'OR NOT'

+
or_not_group_start() : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Returns

+ +
+
+
+

Generates a OR NOT LIKE clause

+
or_not_like(string $field, mixed $val, string $pos) : \$this;
+
+
+

+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+
+

$pos

+string +
+

Returns

+
\$this;
+
+
+
+

Where clause prefixed with "OR"

+
or_where(string $field, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Where in statement prefixed with "or"

+
or_where_in(string $field, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

OR WHERE NOT IN (FOO) clause

+
or_where_not_in(string $field, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Order the results by the selected field(s)

+
order_by(string $field, string $type) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$type

+string +
+

Returns

+ +
+
+
+

Specifies rows to select in a query

+
select(string $fields) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$fields

+string +
+

Returns

+ +
+
+
+

Selects the average value of a field from a query

+
select_avg(string $field, string $as) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$as

+string +
+

Returns

+ +
+
+
+

Selects the maximum value of a field from a query

+
select_max(string $field, string $as) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$as

+string +
+

Returns

+ +
+
+
+

Selects the minimum value of a field from a query

+
select_min(string $field, string $as) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$as

+string +
+

Returns

+ +
+
+
+

Selects the sum of a field from a query

+
select_sum(string $field, string $as) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$as

+string +
+

Returns

+ +
+
+
+

Sets values for inserts / updates / deletes

+
set(mixed $key, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$key

+mixed +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Creates an update clause, and executes it

+
update(string $table, mixed $data) : mixed
+
+
+

+

Parameters

+
+

$table

+string +
+
+

$data

+mixed +
+

Returns

+
mixed
+
+
+
+

Specify condition(s) in the where clause of a query +Note: this function works with key / value, or a +passed array with key / value pairs

+
where(mixed $key, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$key

+mixed +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

Where clause with 'IN' statement

+
where_in(mixed $field, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+mixed +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

WHERE NOT IN (FOO) clause

+
where_not_in(string $field, mixed $val) : \Query_Builder
+
+
+

+ + + +
fluentThis method is part of a fluent interface and will return the same instance
+

Parameters

+
+

$field

+string +
+
+

$val

+mixed +
+

Returns

+ +
+
+
+

String together the sql statements for sending to the db

+
_compile(string $type, string $table) : \$string
+
+
+

+

Parameters

+
+

$type

+string +
+
+

$table

+string +
+

Returns

+
\$string
+
+
+
+

Clear out the class variables, so the next query can be run

+
_reset() 
+
+

+
+
+

Do all the repeditive stuff for where/having type methods

+
_where(mixed $key, mixed $val) : array
+
+
+

+

Parameters

+
+

$key

+mixed +
+
+

$val

+mixed +
+

Returns

+
array
+
+
+

+ Properties

+ 
+

Convenience property for connection management

+
$conn_name 
+
+

+
+ 
+

Compiled 'from' clause

+
$from_string 
+
+

+
+ 
+

Key/val pairs for group by clause

+
$group_array 
+
+

+
+ 
+

Group by clause

+
$group_string 
+
+

+
+ 
+

Map for having clause

+
$having_map 
+
+

+
+ 
+

Value for limit string

+
$limit 
+
+

+
+ 
+

Value for offset in limit string

+
$offset 
+
+

+
+ 
+

Key/val pairs for order by clause

+
$order_array 
+
+

+
+ 
+

Order by clause

+
$order_string 
+
+

+
+ 
+

Query component order mapping +for complex select queries

+
$query_map 
+
+

Format:

+ +

array( + 'type' => 'where', + 'conjunction' => ' AND ', + 'string' => 'k=?' +)

+
+ 
+

Compiled 'select' clause

+
$select_string 
+
+

+
+ 
+

key/val pairs for insert/update statement

+
$set_array 
+
+

+
+ 
+

Keys for insert/update statement

+
$set_array_keys 
+
+

+
+ 
+

Compiled arguments for insert / update

+
$set_string 
+
+

+
+ 
+

Alias to $this->db->sql

+
$sql 
+
+

+
+ 
+

Values to apply to prepared statements

+
$values 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/SQLite.html b/docs/classes/SQLite.html new file mode 100644 index 0000000..0e3838a --- /dev/null +++ b/docs/classes/SQLite.html @@ -0,0 +1,857 @@ + + + + + +OpenSQLManager » \SQLite + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

SQLite specific class

+
+

Extends PDO to simplify cross-database issues

+ + + +
extendsDB_PDO
+

+ Methods

+
+

Open SQLite Database

+
__construct(string $dsn, string $user, string $pass) 
+
+
+

+

Parameters

+
+

$dsn

+string +
+
+

$user

+string +
+
+

$pass

+string +
+
+
+
+

__sleep() +

+
__sleep() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__sleep()
inherited_from\DB_PDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__wakeup()
inherited_from\DB_PDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::affected_rows()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

beginTransaction() +

+
beginTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::beginTransaction()
inherited_from\DB_PDO::beginTransaction()
+
+
+
+

commit() +

+
commit() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::commit()
inherited_from\DB_PDO::commit()
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::empty_table()
+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

errorCode() +

+
errorCode() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorCode()
inherited_from\DB_PDO::errorCode()
+
+
+
+

errorInfo() +

+
errorInfo() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorInfo()
inherited_from\DB_PDO::errorInfo()
+
+
+
+

exec() +

+
exec() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::exec()
inherited_from\DB_PDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAttribute()
inherited_from\DB_PDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAvailableDrivers()
inherited_from\DB_PDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_dbs()
+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_functions()
+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_last_error()
+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_procedures()
+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_query_data()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Return schemas for databases that list them

+
get_schemas() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_schemas()
+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_sequences()
+

Returns

+
array
+
+
+
+

List system tables for the current database

+
get_system_tables() : array
+
+
+

+

Returns

+
array
+
+
+
+

List tables for the current database

+
get_tables() : mixed
+
+
+

+

Returns

+
mixed
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_triggers()
+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_views()
+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::inTransaction()
inherited_from\DB_PDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::lastInsertId()
inherited_from\DB_PDO::lastInsertId()
+
+
+
+

Load a database for the current connection

+
load_database(string $db, string $name) 
+
+
+

+

Parameters

+
+

$db

+string +
+
+

$name

+string +
+
+
+
+

Return the number of rows returned for a SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

prepare() +

+
prepare() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::prepare()
inherited_from\DB_PDO::prepare()
+
+
+
+

Create and execute a prepared statement with the provided parameters

+
prepare_execute(string $sql, array $params) : \PDOStatement
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_execute()
+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+ +
+
+
+

Simplifies prepared statements for database queries

+
prepare_query(string $sql, array $data) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_query()
+

Parameters

+
+

$sql

+string +
+
+

$data

+array +
+

Returns

+
+mixedPDOStatement / FALSE
+
+
+
+

query() +

+
query() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::query()
inherited_from\DB_PDO::query()
+
+
+
+

quote() +

+
quote() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::quote()
inherited_from\DB_PDO::quote()
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::quote_ident()
+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

rollBack() +

+
rollBack() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::rollBack()
inherited_from\DB_PDO::rollBack()
+
+
+
+

setAttribute() +

+
setAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::setAttribute()
inherited_from\DB_PDO::setAttribute()
+
+
+
+

Doesn't apply to sqlite

+
switch_db(string $name) : void
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Empty a table

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Unload a database from the current connection

+
unload_database(string $name) 
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::driver_query()
+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$sql
+
+
+ 
+

Reference to util sub class

+
$util 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$util
+
+
+ 
+

Character to escape identifiers

+
$escape_char 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$escape_char
+
+
+ 
+

Reference to the last executed sql query

+
$statement 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/SQLite_SQL.html b/docs/classes/SQLite_SQL.html new file mode 100644 index 0000000..cdd947c --- /dev/null +++ b/docs/classes/SQLite_SQL.html @@ -0,0 +1,272 @@ + + + + + +OpenSQLManager » \SQLite_SQL + + + + + + + + + + +
+ +
+ +
+
+

SQLite Specific SQL

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::avg()
+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::distinct()
+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::max()
+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::min()
+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Random ordering keyword

+
random() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::sum()
+

Returns

+
string
+
+
+
+

Overridden in SQLite class

+
system_table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list tables

+
table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list triggers

+
trigger_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Returns sql to list views

+
view_list() : string
+
+
+

+

Returns

+
string
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/SQLite_Util.html b/docs/classes/SQLite_Util.html new file mode 100644 index 0000000..1ea7796 --- /dev/null +++ b/docs/classes/SQLite_Util.html @@ -0,0 +1,199 @@ + + + + + +OpenSQLManager » \SQLite_Util + + + + + + + + + + +
+ +
+ +
+
+

SQLite-specific backup, import and creation methods

+
+

+

+ Methods

+
+

Enable calling driver methods

+
__call(string $method, array $args) 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::__call()
+

Parameters

+
+

$method

+string +
+
+

$args

+array +
+
+
+
+

Save a reference to the current connection object

+
__construct(object $conn) : void
+
+
+

+

Parameters

+
+

$conn

+object

&$conn

+
+
+
+
+

Create an SQL backup file for the current database's data

+
backup_data(array $excluded) : string
+
+
+

+

Parameters

+
+

$excluded

+array +
+

Returns

+
string
+
+
+
+

Create an SQL backup file for the current database's structure

+
backup_structure() : string
+
+
+

+

Returns

+
string
+
+
+
+

Convenience public function to create a new table

+
create_table(string $name, array $columns, array $constraints, array $indexes) : string
+
+
+

+

Parameters

+
+

$name

+string

//Name of the table

+
+
+

$columns

+array

//columns as straight array and/or column => type pairs

+
+
+

$constraints

+array

// column => constraint pairs

+
+
+

$indexes

+array

// column => index pairs

+
+

Returns

+
string
+
+
+
+

SQL to drop the specified table

+
delete_table(string $name) : string
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
string
+
+
+

+ Properties

+ 
+

Reference to the current connection object

+
$conn 
+
Inherited
+
+

+ + + +
inherited_from\DB_Util::$$conn
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/SSH.html b/docs/classes/SSH.html new file mode 100644 index 0000000..3c2cad5 --- /dev/null +++ b/docs/classes/SSH.html @@ -0,0 +1,139 @@ + + + + + +OpenSQLManager » \SSH + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

Class to create ssh tunnels to connect to protected database servers

+
+

+

+ Methods

+
+

Constructor

+
__construct(string $host, int $port) 
+
+
+

+

Parameters

+
+

$host

+string +
+
+

$port

+int +
+
+
+
+

Create a tunnel using the current ssh connection

+
tunnel(string $host, int $port, string $auth_type, array $auth_params) : \stream
+
+
+

+

Parameters

+
+

$host

+string +
+
+

$port

+int +
+
+

$auth_type

+string +
+
+

$auth_params

+array +
+

Returns

+
\stream
+
+
+

+ Properties

+ 
+

$stream

+
$stream 
+
+

+
+ 
+

$session

+
$session 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Settings.html b/docs/classes/Settings.html new file mode 100644 index 0000000..e099ef6 --- /dev/null +++ b/docs/classes/Settings.html @@ -0,0 +1,235 @@ + + + + + +OpenSQLManager » \Settings + + + + + + + + + + +
+ +
+ +
+
+

Class for manipulating datbase connections, and miscellaneous settings

+
+

Use JSON for compatibility

+

+ Methods

+
+

Output the settings on destruct

+
__destruct() 
+
+

+
+
+

Magic method to simplify isset checking for config options

+
__get(string $key) : mixed
+
+
+

+

Parameters

+
+

$key

+string +
+

Returns

+
mixed
+
+
+
+

Magic method to simplify setting config options

+
__set(string $key, $val) 
+
+
+

+

Parameters

+
+

$key

+string +
+
+

$val

+

mixed

+
+
+
+

Add a database connection

+
add_db(string $name, array $params) 
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$params

+array +
+
+
+
+

Edit a database connection

+
edit_db(string $name, array $params) 
+
+
+

+

Parameters

+
+

$name

+string +
+
+

$params

+array +
+
+
+
+

Retreive a specific database connection

+
get_db(string $name) : object
+
+
+

+

Parameters

+
+

$name

+string +
+

Returns

+
object
+
+
+
+

Retreive all db connections

+
get_dbs() : array
+
+
+

+

Returns

+
array
+
+
+
+

Static method to retreive current instance +of the singleton

+
get_instance() : \Settings
+
+
+

+

Returns

+ +
+
+
+

Remove a database connection

+
remove_db(string $name) 
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Load the settings file - private so it can't be loaded +directly - the settings should be safe!

+
__construct() 
+
+

+
+

+ Properties

+ 
+

Settings object represented by the currently loaded JSON file

+
$current 
+
+

+
+ 
+

Singleton instance

+
$instance 
+
+

+
+
+
+
+
+
+
+ + diff --git a/docs/classes/pgSQL.html b/docs/classes/pgSQL.html new file mode 100644 index 0000000..0fb5d9f --- /dev/null +++ b/docs/classes/pgSQL.html @@ -0,0 +1,842 @@ + + + + + +OpenSQLManager » \pgSQL + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+

PostgreSQL specifc class

+
+

Extends PDO to simplify cross-database issues

+ + + +
extendsDB_PDO
+

+ Methods

+
+

Connect to a PosgreSQL database

+
__construct(string $dsn, string $username, string $password, array $options) 
+
+
+

+

Parameters

+
+

$dsn

+string +
+
+

$username

+string +
+
+

$password

+string +
+
+

$options

+array +
+
+
+
+

__sleep() +

+
__sleep() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__sleep()
inherited_from\DB_PDO::__sleep()
+
+
+
+

__wakeup() +

+
__wakeup() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::__wakeup()
inherited_from\DB_PDO::__wakeup()
+
+
+
+

Returns number of rows affected by an INSERT, UPDATE, DELETE type query

+
affected_rows(\PDOStatement $statement) : int
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::affected_rows()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
int
+
+
+
+

beginTransaction() +

+
beginTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::beginTransaction()
inherited_from\DB_PDO::beginTransaction()
+
+
+
+

commit() +

+
commit() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::commit()
inherited_from\DB_PDO::commit()
+
+
+
+

Deletes all the rows from a table. Does the same as the truncate +method if the database does not support 'TRUNCATE';

+
empty_table(string $table) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::empty_table()
+

Parameters

+
+

$table

+string +
+

Returns

+
mixed
+
+
+
+

errorCode() +

+
errorCode() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorCode()
inherited_from\DB_PDO::errorCode()
+
+
+
+

errorInfo() +

+
errorInfo() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::errorInfo()
inherited_from\DB_PDO::errorInfo()
+
+
+
+

exec() +

+
exec() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::exec()
inherited_from\DB_PDO::exec()
+
+
+
+

getAttribute() +

+
getAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAttribute()
inherited_from\DB_PDO::getAttribute()
+
+
+
+

getAvailableDrivers() +

+
getAvailableDrivers() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::getAvailableDrivers()
inherited_from\DB_PDO::getAvailableDrivers()
+
+
+
+

Return list of dbs for the current connection, if possible

+
get_dbs() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_dbs()
+

Returns

+
array
+
+
+
+

Return list of function for the current database

+
get_functions() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_functions()
+

Returns

+
array
+
+
+
+

Return the last error for the current database connection

+
get_last_error() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_last_error()
+

Returns

+
string
+
+
+
+

Return list of stored procedures for the current database

+
get_procedures() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_procedures()
+

Returns

+
array
+
+
+
+

Retreives the data from a select query

+
get_query_data(\PDOStatement $statement) : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_query_data()
+

Parameters

+
+

$statement

+\PDOStatement +
+

Returns

+
array
+
+
+
+

Get a list of schemas for the current connection

+
get_schemas() : array
+
+
+

+

Returns

+
array
+
+
+
+

Return list of sequences for the current database, if they exist

+
get_sequences() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_sequences()
+

Returns

+
array
+
+
+
+

Retreives an array of non-user-created tables for +the connection/database

+
get_system_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_system_tables()
+

Returns

+
array
+
+
+
+

Return list of tables for the current database

+
get_tables() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_tables()
+

Returns

+
array
+
+
+
+

Return list of triggers for the current database

+
get_triggers() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_triggers()
+

Returns

+
array
+
+
+
+

Return list of views for the current database

+
get_views() : array
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::get_views()
+

Returns

+
array
+
+
+
+

inTransaction() +

+
inTransaction() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::inTransaction()
inherited_from\DB_PDO::inTransaction()
+
+
+
+

lastInsertId() +

+
lastInsertId() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::lastInsertId()
inherited_from\DB_PDO::lastInsertId()
+
+
+
+

Return the number of rows returned for a SELECT query

+
num_rows() : int
+
+
+

+

Returns

+
int
+
+
+
+

prepare() +

+
prepare() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::prepare()
inherited_from\DB_PDO::prepare()
+
+
+
+

Create and execute a prepared statement with the provided parameters

+
prepare_execute(string $sql, array $params) : \PDOStatement
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_execute()
+

Parameters

+
+

$sql

+string +
+
+

$params

+array +
+

Returns

+ +
+
+
+

Simplifies prepared statements for database queries

+
prepare_query(string $sql, array $data) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::prepare_query()
+

Parameters

+
+

$sql

+string +
+
+

$data

+array +
+

Returns

+
+mixedPDOStatement / FALSE
+
+
+
+

query() +

+
query() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::query()
inherited_from\DB_PDO::query()
+
+
+
+

quote() +

+
quote() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::quote()
inherited_from\DB_PDO::quote()
+
+
+
+

Surrounds the string with the databases identifier escape characters

+
quote_ident(mixed $ident) : string
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::quote_ident()
+

Parameters

+
+

$ident

+mixed +
+

Returns

+
string
+
+
+
+

rollBack() +

+
rollBack() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::rollBack()
inherited_from\DB_PDO::rollBack()
+
+
+
+

setAttribute() +

+
setAttribute() 
+
Inherited
+
+

+ + + + + + + + + +
inherited_fromPDO::setAttribute()
inherited_from\DB_PDO::setAttribute()
+
+
+
+

Connect to a different database

+
switch_db(string $name) : void
+
+
+

+

Parameters

+
+

$name

+string +
+
+
+
+

Empty a table

+
truncate(string $table) : void
+
+
+

+

Parameters

+
+

$table

+string +
+
+
+
+

Method to simplify retreiving db results for meta-data queries

+
driver_query(string $sql, bool $filtered_index) : mixed
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::driver_query()
+

Parameters

+
+

$sql

+string +
+
+

$filtered_index

+bool +
+

Returns

+
mixed
+
+
+

+ Properties

+ 
+

Reference to sql sub class

+
$sql 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$sql
+
+
+ 
+

Reference to util sub class

+
$util 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$util
+
+
+ 
+

Character to escape identifiers

+
$escape_char 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$escape_char
+
+
+ 
+

Reference to the last executed query

+
$statement 
+
Inherited
+
+

+ + + +
inherited_from\DB_PDO::$$statement
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/pgSQL_SQL.html b/docs/classes/pgSQL_SQL.html new file mode 100644 index 0000000..d8e3a1a --- /dev/null +++ b/docs/classes/pgSQL_SQL.html @@ -0,0 +1,288 @@ + + + + + +OpenSQLManager » \pgSQL_SQL + + + + + + + + + + +
+ +
+ +
+
+

PostgreSQL specifc SQL

+
+

+

+ Methods

+
+

Get the 'average' keyword

+
avg() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::avg()
+

Returns

+
string
+
+
+
+

Return sql to list columns of the specified table

+
column_list(string $table) : string
+
+
+

+

Parameters

+
+

$table

+string +
+

Returns

+
string
+
+
+
+

Returns sql to list other databases

+
db_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'distinct' keyword

+
distinct() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::distinct()
+

Returns

+
string
+
+
+
+

Return sql to list functions

+
function_list() : FALSE
+
+
+

+

Returns

+
FALSE
+
+
+
+

Limit clause

+
limit(string $sql, int $limit, int $offset) : string
+
+
+

+

Parameters

+
+

$sql

+string +
+
+

$limit

+int +
+
+

$offset

+int +
+

Returns

+
string
+
+
+
+

Get the max keyword sql

+
max() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::max()
+

Returns

+
string
+
+
+
+

Get the min keyword sql

+
min() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::min()
+

Returns

+
string
+
+
+
+

Return sql to list stored procedures

+
procedure_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Random ordering keyword

+
random() : string
+
+
+

+

Returns

+
string
+
+
+
+

Return sql to list sequences

+
sequence_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Get the 'sum' keyword

+
sum() : string
+
Inherited
+
+

+ + + +
inherited_from\DB_SQL::sum()
+

Returns

+
string
+
+
+
+

Returns sql to list system tables

+
system_table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list tables

+
table_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list triggers

+
trigger_list() : string
+
+
+

+

Returns

+
string
+
+
+
+

Returns sql to list views

+
view_list() : string
+
+
+

+

Returns

+
string
+
+
+
+
+
+
+
+
+ + diff --git a/docs/css/bootstrap-responsive.css b/docs/css/bootstrap-responsive.css new file mode 100644 index 0000000..4b032cd --- /dev/null +++ b/docs/css/bootstrap-responsive.css @@ -0,0 +1,567 @@ +/*! + * Bootstrap Responsive v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.hidden { + display: none; + visibility: hidden; +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + /* Older Webkit */ + + -moz-box-sizing: border-box; + /* Older FF */ + + -ms-box-sizing: border-box; + /* IE8 */ + + box-sizing: border-box; + /* CSS3 spec*/ + + } + .input-prepend input[class*="span"], .input-append input[class*="span"] { + width: auto; + } + input[type="checkbox"], input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .modal { + position: absolute; + top: 10px; + left: 10px; + right: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 768px) { + .container { + width: auto; + padding: 0 20px; + } + .row-fluid { + width: 100%; + } + .row { + margin-left: 0; + } + .row > [class*="span"], .row-fluid > [class*="span"] { + float: none; + display: block; + width: auto; + margin: 0; + } +} +@media (min-width: 768px) and (max-width: 980px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .span1 { + width: 42px; + } + .span2 { + width: 104px; + } + .span3 { + width: 166px; + } + .span4 { + width: 228px; + } + .span5 { + width: 290px; + } + .span6 { + width: 352px; + } + .span7 { + width: 414px; + } + .span8 { + width: 476px; + } + .span9 { + width: 538px; + } + .span10 { + width: 600px; + } + .span11 { + width: 662px; + } + .span12, .container { + width: 724px; + } + .offset1 { + margin-left: 82px; + } + .offset2 { + margin-left: 144px; + } + .offset3 { + margin-left: 206px; + } + .offset4 { + margin-left: 268px; + } + .offset5 { + margin-left: 330px; + } + .offset6 { + margin-left: 392px; + } + .offset7 { + margin-left: 454px; + } + .offset8 { + margin-left: 516px; + } + .offset9 { + margin-left: 578px; + } + .offset10 { + margin-left: 640px; + } + .offset11 { + margin-left: 702px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.762430939%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.801104972%; + } + .row-fluid .span2 { + width: 14.364640883%; + } + .row-fluid .span3 { + width: 22.928176794%; + } + .row-fluid .span4 { + width: 31.491712705%; + } + .row-fluid .span5 { + width: 40.055248616%; + } + .row-fluid .span6 { + width: 48.618784527%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + } + .row-fluid .span9 { + width: 74.30939226%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + } + .row-fluid .span11 { + width: 91.436464082%; + } + .row-fluid .span12 { + width: 99.999999993%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; + } +} +@media (max-width: 980px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .navbar .nav-collapse { + clear: left; + } + .navbar .nav { + float: none; + margin: 0 0 9px; + } + .navbar .nav > li { + float: none; + } + .navbar .nav > li > a { + margin-bottom: 2px; + } + .navbar .nav > .divider-vertical { + display: none; + } + .navbar .nav > li > a, .navbar .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .navbar .dropdown-menu li + li a { + margin-bottom: 2px; + } + .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { + background-color: #222222; + } + .navbar .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: block; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .dropdown-menu:before, .navbar .dropdown-menu:after { + display: none; + } + .navbar .dropdown-menu .divider { + display: none; + } + .navbar-form, .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav.pull-right { + float: none; + margin-left: 0; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + .btn-navbar { + display: block; + } + .nav-collapse { + overflow: hidden; + height: 0; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .span1 { + width: 70px; + } + .span2 { + width: 170px; + } + .span3 { + width: 270px; + } + .span4 { + width: 370px; + } + .span5 { + width: 470px; + } + .span6 { + width: 570px; + } + .span7 { + width: 670px; + } + .span8 { + width: 770px; + } + .span9 { + width: 870px; + } + .span10 { + width: 970px; + } + .span11 { + width: 1070px; + } + .span12, .container { + width: 1170px; + } + .offset1 { + margin-left: 130px; + } + .offset2 { + margin-left: 230px; + } + .offset3 { + margin-left: 330px; + } + .offset4 { + margin-left: 430px; + } + .offset5 { + margin-left: 530px; + } + .offset6 { + margin-left: 630px; + } + .offset7 { + margin-left: 730px; + } + .offset8 { + margin-left: 830px; + } + .offset9 { + margin-left: 930px; + } + .offset10 { + margin-left: 1030px; + } + .offset11 { + margin-left: 1130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.564102564%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span1 { + width: 5.982905983%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + } + .row-fluid .span3 { + width: 23.076923077%; + } + .row-fluid .span4 { + width: 31.623931624%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + } + .row-fluid .span6 { + width: 48.717948718%; + } + .row-fluid .span7 { + width: 57.264957265%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + } + .row-fluid .span9 { + width: 74.358974359%; + } + .row-fluid .span10 { + width: 82.905982906%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + } + .row-fluid .span12 { + width: 100%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } +} diff --git a/docs/css/bootstrap-responsive.min.css b/docs/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..bc3f2ab --- /dev/null +++ b/docs/css/bootstrap-responsive.min.css @@ -0,0 +1,3 @@ + +.hidden{display:none;visibility:hidden;} +@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:768px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:980px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.801104972%;} .row-fluid .span2{width:14.364640883%;} .row-fluid .span3{width:22.928176794%;} .row-fluid .span4{width:31.491712705%;} .row-fluid .span5{width:40.055248616%;} .row-fluid .span6{width:48.618784527%;} .row-fluid .span7{width:57.182320438000005%;} .row-fluid .span8{width:65.74585634900001%;} .row-fluid .span9{width:74.30939226%;} .row-fluid .span10{width:82.87292817100001%;} .row-fluid .span11{width:91.436464082%;} .row-fluid .span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:980px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.982905983%;} .row-fluid .span2{width:14.529914530000001%;} .row-fluid .span3{width:23.076923077%;} .row-fluid .span4{width:31.623931624%;} .row-fluid .span5{width:40.170940171000005%;} .row-fluid .span6{width:48.717948718%;} .row-fluid .span7{width:57.264957265%;} .row-fluid .span8{width:65.81196581200001%;} .row-fluid .span9{width:74.358974359%;} .row-fluid .span10{width:82.905982906%;} .row-fluid .span11{width:91.45299145300001%;} .row-fluid .span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/docs/css/bootstrap.css b/docs/css/bootstrap.css new file mode 100644 index 0000000..a90e319 --- /dev/null +++ b/docs/css/bootstrap.css @@ -0,0 +1,3365 @@ +/*! + * Bootstrap v2.0.0 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, a:active { + outline: 0; +} +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + max-width: 100%; + height: auto; + border: 0; + -ms-interpolation-mode: bicubic; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover { + color: #005580; + text-decoration: underline; +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, .row:after { + display: table; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + margin-left: 20px; +} +.span1 { + width: 60px; +} +.span2 { + width: 140px; +} +.span3 { + width: 220px; +} +.span4 { + width: 300px; +} +.span5 { + width: 380px; +} +.span6 { + width: 460px; +} +.span7 { + width: 540px; +} +.span8 { + width: 620px; +} +.span9 { + width: 700px; +} +.span10 { + width: 780px; +} +.span11 { + width: 860px; +} +.span12, .container { + width: 940px; +} +.offset1 { + margin-left: 100px; +} +.offset2 { + margin-left: 180px; +} +.offset3 { + margin-left: 260px; +} +.offset4 { + margin-left: 340px; +} +.offset5 { + margin-left: 420px; +} +.offset6 { + margin-left: 500px; +} +.offset7 { + margin-left: 580px; +} +.offset8 { + margin-left: 660px; +} +.offset9 { + margin-left: 740px; +} +.offset10 { + margin-left: 820px; +} +.offset11 { + margin-left: 900px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, .row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid > [class*="span"] { + float: left; + margin-left: 2.127659574%; +} +.row-fluid > [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .span1 { + width: 6.382978723%; +} +.row-fluid .span2 { + width: 14.89361702%; +} +.row-fluid .span3 { + width: 23.404255317%; +} +.row-fluid .span4 { + width: 31.914893614%; +} +.row-fluid .span5 { + width: 40.425531911%; +} +.row-fluid .span6 { + width: 48.93617020799999%; +} +.row-fluid .span7 { + width: 57.446808505%; +} +.row-fluid .span8 { + width: 65.95744680199999%; +} +.row-fluid .span9 { + width: 74.468085099%; +} +.row-fluid .span10 { + width: 82.97872339599999%; +} +.row-fluid .span11 { + width: 91.489361693%; +} +.row-fluid .span12 { + width: 99.99999998999999%; +} +.container { + width: 940px; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.container:before, .container:after { + display: table; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-left: 20px; + padding-right: 20px; + *zoom: 1; +} +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} +p small { + font-size: 11px; + color: #999999; +} +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-weight: bold; + color: #333333; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 18px; +} +h3 { + line-height: 27px; + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4, h5, h6 { + line-height: 18px; +} +h4 { + font-size: 14px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 12px; +} +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} +.page-header h1 { + line-height: 1; +} +ul, ol { + padding: 0; + margin: 0 0 9px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; +} +ul.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 18px; +} +dt, dd { + line-height: 18px; +} +dt { + font-weight: bold; +} +dd { + margin-left: 9px; +} +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #e5e5e5; + border-bottom: 1px solid #ffffff; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +.muted { + color: #999999; +} +abbr { + font-size: 90%; + text-transform: uppercase; + border-bottom: 1px dotted #ddd; + cursor: help; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 15px; + border-left: 0; + border-right: 5px solid #eeeeee; +} +blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 18px; + line-height: 18px; + font-style: normal; +} +small { + font-size: 100%; +} +cite { + font-style: normal; +} +code, pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 3px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12px; + line-height: 18px; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; +} +pre.prettyprint { + margin-bottom: 18px; +} +pre code { + padding: 0; + background-color: transparent; +} +form { + margin: 0 0 18px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} +label, +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; +} +label { + display: block; + margin-bottom: 5px; + color: #333333; +} +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.uneditable-textarea { + width: auto; + height: auto; +} +label input, label textarea, label select { + display: block; +} +input[type="image"], input[type="checkbox"], input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + border: 0; + cursor: pointer; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +input[type="file"] { + padding: initial; + line-height: initial; + border: initial; + background-color: #ffffff; + background-color: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type="button"], input[type="reset"], input[type="submit"] { + width: auto; + height: auto; +} +select, input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} +select { + width: 220px; + background-color: #ffffff; +} +select[multiple], select[size] { + height: auto; +} +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +textarea { + height: auto; +} +input[type="hidden"] { + display: none; +} +.radio, .checkbox { + padding-left: 18px; +} +.radio input[type="radio"], .checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.controls > .radio:first-child, .controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, .checkbox.inline { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.controls > .radio.inline:first-child, .controls > .checkbox.inline:first-child { + padding-top: 0; +} +input, textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +input:focus, textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; + /* IE6-8 */ + +} +input[type="file"]:focus, input[type="checkbox"]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input { + float: none; + margin-left: 0; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 50px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 130px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 210px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 290px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 370px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 450px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 530px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 610px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 690px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 770px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 850px; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 930px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #f5f5f5; + border-color: #ddd; + cursor: not-allowed; +} +.control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning input, .control-group.warning select, .control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} +.control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} +.control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline { + color: #b94a48; +} +.control-group.error input, .control-group.error select, .control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} +.control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} +.control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline { + color: #468847; +} +.control-group.success input, .control-group.success select, .control-group.success textarea { + color: #468847; + border-color: #468847; +} +.control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} +.control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; +} +.uneditable-input { + display: block; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +:-moz-placeholder { + color: #999999; +} +::-webkit-input-placeholder { + color: #999999; +} +.help-block { + margin-top: 5px; + margin-bottom: 0; + color: #999999; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 9px; + vertical-align: middle; + padding-left: 5px; +} +.input-prepend, .input-append { + margin-bottom: 5px; + *zoom: 1; +} +.input-prepend:before, +.input-append:before, +.input-prepend:after, +.input-append:after { + display: table; + content: ""; +} +.input-prepend:after, .input-append:after { + clear: both; +} +.input-prepend input, +.input-append input, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, +.input-append input:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + position: relative; + z-index: 2; +} +.input-prepend .uneditable-input, .input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, .input-append .add-on { + float: left; + display: block; + width: auto; + min-width: 16px; + height: 18px; + margin-right: -1px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + color: #999999; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #f5f5f5; + border: 1px solid #ccc; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, .input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on { + *margin-top: 1px; + /* IE6-7 */ + +} +.input-append input, .input-append .uneditable-input { + float: left; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-right-color: #ccc; +} +.input-append .add-on { + margin-right: 0; + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-append input:first-child { + *margin-left: -160px; +} +.input-append input:first-child + .add-on { + *margin-left: -21px; +} +.search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input { + display: inline-block; + margin-bottom: 0; +} +.form-search label, +.form-inline label, +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + display: inline-block; +} +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on, +.form-search .input-append .add-on, +.form-inline .input-prepend .add-on { + vertical-align: middle; +} +.control-group { + margin-bottom: 9px; +} +.form-horizontal legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + display: table; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-group > label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + margin-left: 160px; +} +.form-horizontal .form-actions { + padding-left: 160px; +} +table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 18px; +} +.table th, .table td { + padding: 8px; + line-height: 18px; + text-align: left; + border-top: 1px solid #ddd; +} +.table th { + font-weight: bold; + vertical-align: bottom; +} +.table td { + vertical-align: top; +} +.table thead:first-child tr th, .table thead:first-child tr td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #ddd; +} +.table-condensed th, .table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #ddd; + border-collapse: separate; + *border-collapse: collapsed; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th + th, +.table-bordered td + td, +.table-bordered th + td, +.table-bordered td + th { + border-left: 1px solid #ddd; +} +.table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} +[class^="icon-"] { + display: inline-block; + width: 14px; + height: 14px; + vertical-align: text-top; + background-image: url(../img/glyphicons-halflings.png); + background-position: 14px 14px; + background-repeat: no-repeat; + *margin-right: .3em; +} +[class^="icon-"]:last-child { + *margin-left: 0; +} +.icon-white { + background-image: url(../img/glyphicons-halflings-white.png); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; +} +.icon-folder-open { + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, .open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + text-indent: -99999px; + *text-indent: 0; + vertical-align: top; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000000; + opacity: 0.3; + filter: alpha(opacity=30); + content: "\2193"; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown:hover .caret, .open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + max-width: 220px; + _width: 160px; + padding: 4px 0; + margin: 0; + list-style: none; + background-color: #ffffff; + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; +} +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +.dropdown-menu .divider { + height: 1px; + margin: 5px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; + *width: 100%; + *margin: -5px 0 5px; +} +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #555555; + white-space: nowrap; +} +.dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} +.dropdown.open { + *z-index: 1000; +} +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.dropdown.open .dropdown-menu { + display: block; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.collapse { + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; + position: relative; + overflow: hidden; + height: 0; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + opacity: 0.4; + filter: alpha(opacity=40); + cursor: pointer; +} +.btn { + display: inline-block; + padding: 4px 10px 4px; + font-size: 13px; + line-height: 18px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #fafafa; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + cursor: pointer; + *margin-left: .3em; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, .btn:active { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + color: rgba(0, 0, 0, 0.5); + outline: 0; +} +.btn.disabled, .btn[disabled] { + cursor: default; + background-image: none; + background-color: #e6e6e6; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-large .icon { + margin-top: 1px; +} +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} +.btn-small .icon { + margin-top: -1px; +} +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #ffffff; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0044cc; +} +.btn-primary:active, .btn-primary.active { + background-color: #003399 \9; +} +.btn-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; +} +.btn-warning:active, .btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; +} +.btn-danger:active, .btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; +} +.btn-success:active, .btn-success.active { + background-color: #408140 \9; +} +.btn-info { + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; +} +.btn-info:active, .btn-info.active { + background-color: #24748c \9; +} +button.btn, input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} +button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.large, input[type="submit"].btn.large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.small, input[type="submit"].btn.small { + *padding-top: 3px; + *padding-bottom: 3px; +} +.btn-group { + position: relative; + *zoom: 1; + *margin-left: .3em; +} +.btn-group:before, .btn-group:after { + display: table; + content: ""; +} +.btn-group:after { + clear: both; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group .btn:last-child, .btn-group .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group .btn:hover, +.btn-group .btn:focus, +.btn-group .btn:active, +.btn-group .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group.open { + *z-index: 1000; +} +.btn-group.open .dropdown-menu { + display: block; + margin-top: 1px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn .caret { + margin-top: 7px; + margin-left: 0; +} +.btn:hover .caret, .open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.btn-primary .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret { + border-top-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} +.btn-small .caret { + margin-top: 4px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.alert, .alert-heading { + color: #c09853; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success, .alert-success .alert-heading { + color: #468847; +} +.alert-danger, .alert-error { + background-color: #f2dede; + border-color: #eed3d7; +} +.alert-danger, +.alert-error, +.alert-danger .alert-heading, +.alert-error .alert-heading { + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info, .alert-info .alert-heading { + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, .alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 18px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav-list { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; +} +.nav-list > li > a, .nav-list .nav-header { + display: block; + padding: 3px 15px; + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list .nav-header { + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-transform: uppercase; +} +.nav-list > li + .nav-header { + margin-top: 9px; +} +.nav-list .active > a, .nav-list .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"] { + margin-right: 2px; +} +.nav-tabs, .nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} +.nav-tabs:after, .nav-pills:after { + clear: both; +} +.nav-tabs > li, .nav-pills > li { + float: left; +} +.nav-tabs > li > a, .nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 9px; + padding-bottom: 9px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, .nav-tabs > .active > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills .active > a, .nav-pills .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { + margin-top: 1px; + border-width: 1px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { + border-top-color: #0088cc; + margin-top: 6px; +} +.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; +} +.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; +} +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > .open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { + border-top-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, .tabbable:after { + display: table; + content: ""; +} +.tabbable:after { + clear: both; +} +.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, .pill-content > .pill-pane { + display: none; +} +.tab-content > .active, .pill-content > .active { + display: block; +} +.tabs-below .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below .nav-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li { + float: none; +} +.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.navbar { + overflow: visible; + margin-bottom: 18px; +} +.navbar-inner { + padding-left: 20px; + padding-right: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.btn-navbar:hover, +.btn-navbar:active, +.btn-navbar.active, +.btn-navbar.disabled, +.btn-navbar[disabled] { + background-color: #222222; +} +.btn-navbar:active, .btn-navbar.active { + background-color: #080808 \9; +} +.btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.nav-collapse.collapse { + height: auto; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #ffffff; +} +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #999999; +} +.navbar .navbar-text a:hover { + color: #ffffff; + background-color: transparent; +} +.navbar .btn, .navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, .navbar-form:after { + display: table; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, .navbar-form select { + display: inline-block; + margin-top: 5px; + margin-bottom: 0; +} +.navbar-form .radio, .navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + color: rgba(255, 255, 255, 0.75); + background: #666; + background: rgba(255, 255, 255, 0.3); + border: 1px solid #111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.navbar-search .search-query :-moz-placeholder { + color: #eeeeee; +} +.navbar-search .search-query::-webkit-input-placeholder { + color: #eeeeee; +} +.navbar-search .search-query:hover { + color: #ffffff; + background-color: #999999; + background-color: rgba(255, 255, 255, 0.5); +} +.navbar-search .search-query:focus, .navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.navbar-fixed-top .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; +} +.navbar .nav > li { + display: block; + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 10px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .nav > li > a:hover { + background-color: transparent; + color: #ffffff; + text-decoration: none; +} +.navbar .nav .active > a, .navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; + background-color: rgba(0, 0, 0, 0.5); +} +.navbar .divider-vertical { + height: 40px; + width: 1px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} +.navbar .nav.pull-right { + margin-left: 10px; + margin-right: 0; +} +.navbar .dropdown-menu { + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { + border-top-color: #ffffff; +} +.navbar .nav .active .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.navbar .nav .open > .dropdown-toggle, .navbar .nav .active > .dropdown-toggle, .navbar .nav .open.active > .dropdown-toggle { + background-color: transparent; +} +.navbar .nav .active > .dropdown-toggle:hover { + color: #ffffff; +} +.navbar .nav.pull-right .dropdown-menu { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before { + left: auto; + right: 12px; +} +.navbar .nav.pull-right .dropdown-menu:after { + left: auto; + right: 13px; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} +.breadcrumb .active a { + color: #333333; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} +.pagination a:hover, .pagination .active a { + background-color: #f5f5f5; +} +.pagination .active a { + color: #999999; + cursor: default; +} +.pagination .disabled a, .pagination .disabled a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pager { + margin-left: 0; + margin-bottom: 18px; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, .pager:after { + display: table; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next a { + float: right; +} +.pager .previous a { + float: left; +} +.modal-open .dropdown-menu { + z-index: 2050; +} +.modal-open .dropdown.open { + *z-index: 2050; +} +.modal-open .popover { + z-index: 2060; +} +.modal-open .tooltip { + z-index: 2070; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, .modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + max-height: 500px; + overflow: auto; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-body { + padding: 15px; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn { + float: right; + margin-left: 5px; + margin-bottom: 0; +} +.tooltip { + position: absolute; + z-index: 1020; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -2px; +} +.tooltip.right { + margin-left: 2px; +} +.tooltip.bottom { + margin-top: 2px; +} +.tooltip.left { + margin-left: -2px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} +.popover.top { + margin-top: -5px; +} +.popover.right { + margin-left: 5px; +} +.popover.bottom { + margin-top: 5px; +} +.popover.left { + margin-left: -5px; +} +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover-inner { + padding: 3px; + width: 280px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover-content p, .popover-content ul, .popover-content ol { + margin-bottom: 0; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, .thumbnails:after { + display: table; + content: ""; +} +.thumbnails:after { + clear: both; +} +.thumbnails > li { + float: left; + margin: 0 0 18px 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; +} +.label { + padding: 1px 3px 2px; + font-size: 9.75px; + font-weight: bold; + color: #ffffff; + text-transform: uppercase; + background-color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label-important { + background-color: #b94a48; +} +.label-warning { + background-color: #f89406; +} +.label-success { + background-color: #468847; +} +.label-info { + background-color: #3a87ad; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 18px; + color: #ffffff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.accordion { + margin-bottom: 18px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item > img { + display: block; + line-height: 1; +} +.carousel .active, .carousel .next, .carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, .carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, .carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, .carousel-caption p { + color: #ffffff; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #f5f5f5; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} diff --git a/docs/css/bootstrap.min.css b/docs/css/bootstrap.min.css new file mode 100644 index 0000000..b01f92e --- /dev/null +++ b/docs/css/bootstrap.min.css @@ -0,0 +1,610 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} +input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} +.row:after{clear:both;} +[class*="span"]{float:left;margin-left:20px;} +.span1{width:60px;} +.span2{width:140px;} +.span3{width:220px;} +.span4{width:300px;} +.span5{width:380px;} +.span6{width:460px;} +.span7{width:540px;} +.span8{width:620px;} +.span9{width:700px;} +.span10{width:780px;} +.span11{width:860px;} +.span12,.container{width:940px;} +.offset1{margin-left:100px;} +.offset2{margin-left:180px;} +.offset3{margin-left:260px;} +.offset4{margin-left:340px;} +.offset5{margin-left:420px;} +.offset6{margin-left:500px;} +.offset7{margin-left:580px;} +.offset8{margin-left:660px;} +.offset9{margin-left:740px;} +.offset10{margin-left:820px;} +.offset11{margin-left:900px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} +.row-fluid:after{clear:both;} +.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} +.row-fluid>[class*="span"]:first-child{margin-left:0;} +.row-fluid .span1{width:6.382978723%;} +.row-fluid .span2{width:14.89361702%;} +.row-fluid .span3{width:23.404255317%;} +.row-fluid .span4{width:31.914893614%;} +.row-fluid .span5{width:40.425531911%;} +.row-fluid .span6{width:48.93617020799999%;} +.row-fluid .span7{width:57.446808505%;} +.row-fluid .span8{width:65.95744680199999%;} +.row-fluid .span9{width:74.468085099%;} +.row-fluid .span10{width:82.97872339599999%;} +.row-fluid .span11{width:91.489361693%;} +.row-fluid .span12{width:99.99999998999999%;} +.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} +.container:after{clear:both;} +.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} +.container-fluid:after{clear:both;} +p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;} +.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} +h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;} +h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} +h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} +h4,h5,h6{line-height:18px;} +h4{font-size:14px;}h4 small{font-size:12px;} +h5{font-size:12px;} +h6{font-size:11px;color:#999999;text-transform:uppercase;} +.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} +.page-header h1{line-height:1;} +ul,ol{padding:0;margin:0 0 9px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;} +ul.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:18px;} +dt,dd{line-height:18px;} +dt{font-weight:bold;} +dd{margin-left:9px;} +hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} +strong{font-weight:bold;} +em{font-style:italic;} +.muted{color:#999999;} +abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} +blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;} +blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} +small{font-size:100%;} +cite{font-style:normal;} +code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;} +pre code{padding:0;background-color:transparent;} +form{margin:0 0 18px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;} +label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} +label{display:block;margin-bottom:5px;color:#333333;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.uneditable-textarea{width:auto;height:auto;} +label input,label textarea,label select{display:block;} +input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} +select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} +select{width:220px;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +textarea{height:auto;} +input[type="hidden"]{display:none;} +.radio,.checkbox{padding-left:18px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} +input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;} +input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;} +input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} +input.span1,textarea.span1,.uneditable-input.span1{width:50px;} +input.span2,textarea.span2,.uneditable-input.span2{width:130px;} +input.span3,textarea.span3,.uneditable-input.span3{width:210px;} +input.span4,textarea.span4,.uneditable-input.span4{width:290px;} +input.span5,textarea.span5,.uneditable-input.span5{width:370px;} +input.span6,textarea.span6,.uneditable-input.span6{width:450px;} +input.span7,textarea.span7,.uneditable-input.span7{width:530px;} +input.span8,textarea.span8,.uneditable-input.span8{width:610px;} +input.span9,textarea.span9,.uneditable-input.span9{width:690px;} +input.span10,textarea.span10,.uneditable-input.span10{width:770px;} +input.span11,textarea.span11,.uneditable-input.span11{width:850px;} +input.span12,textarea.span12,.uneditable-input.span12{width:930px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;} +.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +:-moz-placeholder{color:#999999;} +::-webkit-input-placeholder{color:#999999;} +.help-block{margin-top:5px;margin-bottom:0;color:#999999;} +.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} +.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} +.input-prepend:after,.input-append:after{clear:both;} +.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} +.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} +.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#999999;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on{*margin-top:1px;} +.input-append input,.input-append .uneditable-input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-append .uneditable-input{border-right-color:#ccc;} +.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} +.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input{display:inline-block;margin-bottom:0;} +.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;} +.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;} +.control-group{margin-bottom:9px;} +.form-horizontal legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-group>label{float:left;width:140px;padding-top:5px;text-align:right;} +.form-horizontal .controls{margin-left:160px;} +.form-horizontal .form-actions{padding-left:160px;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} +.table th{font-weight:bold;vertical-align:bottom;} +.table td{vertical-align:top;} +.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;} +.table tbody+tbody{border-top:2px solid #ddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +table .span1{float:none;width:44px;margin-left:0;} +table .span2{float:none;width:124px;margin-left:0;} +table .span3{float:none;width:204px;margin-left:0;} +table .span4{float:none;width:284px;margin-left:0;} +table .span5{float:none;width:364px;margin-left:0;} +table .span6{float:none;width:444px;margin-left:0;} +table .span7{float:none;width:524px;margin-left:0;} +table .span8{float:none;width:604px;margin-left:0;} +table .span9{float:none;width:684px;margin-left:0;} +table .span10{float:none;width:764px;margin-left:0;} +table .span11{float:none;width:844px;margin-left:0;} +table .span12{float:none;width:924px;margin-left:0;} +[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child{*margin-left:0;} +.icon-white{background-image:url(../img/glyphicons-halflings-white.png);} +.icon-glass{background-position:0 0;} +.icon-music{background-position:-24px 0;} +.icon-search{background-position:-48px 0;} +.icon-envelope{background-position:-72px 0;} +.icon-heart{background-position:-96px 0;} +.icon-star{background-position:-120px 0;} +.icon-star-empty{background-position:-144px 0;} +.icon-user{background-position:-168px 0;} +.icon-film{background-position:-192px 0;} +.icon-th-large{background-position:-216px 0;} +.icon-th{background-position:-240px 0;} +.icon-th-list{background-position:-264px 0;} +.icon-ok{background-position:-288px 0;} +.icon-remove{background-position:-312px 0;} +.icon-zoom-in{background-position:-336px 0;} +.icon-zoom-out{background-position:-360px 0;} +.icon-off{background-position:-384px 0;} +.icon-signal{background-position:-408px 0;} +.icon-cog{background-position:-432px 0;} +.icon-trash{background-position:-456px 0;} +.icon-home{background-position:0 -24px;} +.icon-file{background-position:-24px -24px;} +.icon-time{background-position:-48px -24px;} +.icon-road{background-position:-72px -24px;} +.icon-download-alt{background-position:-96px -24px;} +.icon-download{background-position:-120px -24px;} +.icon-upload{background-position:-144px -24px;} +.icon-inbox{background-position:-168px -24px;} +.icon-play-circle{background-position:-192px -24px;} +.icon-repeat{background-position:-216px -24px;} +.icon-refresh{background-position:-240px -24px;} +.icon-list-alt{background-position:-264px -24px;} +.icon-lock{background-position:-287px -24px;} +.icon-flag{background-position:-312px -24px;} +.icon-headphones{background-position:-336px -24px;} +.icon-volume-off{background-position:-360px -24px;} +.icon-volume-down{background-position:-384px -24px;} +.icon-volume-up{background-position:-408px -24px;} +.icon-qrcode{background-position:-432px -24px;} +.icon-barcode{background-position:-456px -24px;} +.icon-tag{background-position:0 -48px;} +.icon-tags{background-position:-25px -48px;} +.icon-book{background-position:-48px -48px;} +.icon-bookmark{background-position:-72px -48px;} +.icon-print{background-position:-96px -48px;} +.icon-camera{background-position:-120px -48px;} +.icon-font{background-position:-144px -48px;} +.icon-bold{background-position:-167px -48px;} +.icon-italic{background-position:-192px -48px;} +.icon-text-height{background-position:-216px -48px;} +.icon-text-width{background-position:-240px -48px;} +.icon-align-left{background-position:-264px -48px;} +.icon-align-center{background-position:-288px -48px;} +.icon-align-right{background-position:-312px -48px;} +.icon-align-justify{background-position:-336px -48px;} +.icon-list{background-position:-360px -48px;} +.icon-indent-left{background-position:-384px -48px;} +.icon-indent-right{background-position:-408px -48px;} +.icon-facetime-video{background-position:-432px -48px;} +.icon-picture{background-position:-456px -48px;} +.icon-pencil{background-position:0 -72px;} +.icon-map-marker{background-position:-24px -72px;} +.icon-adjust{background-position:-48px -72px;} +.icon-tint{background-position:-72px -72px;} +.icon-edit{background-position:-96px -72px;} +.icon-share{background-position:-120px -72px;} +.icon-check{background-position:-144px -72px;} +.icon-move{background-position:-168px -72px;} +.icon-step-backward{background-position:-192px -72px;} +.icon-fast-backward{background-position:-216px -72px;} +.icon-backward{background-position:-240px -72px;} +.icon-play{background-position:-264px -72px;} +.icon-pause{background-position:-288px -72px;} +.icon-stop{background-position:-312px -72px;} +.icon-forward{background-position:-336px -72px;} +.icon-fast-forward{background-position:-360px -72px;} +.icon-step-forward{background-position:-384px -72px;} +.icon-eject{background-position:-408px -72px;} +.icon-chevron-left{background-position:-432px -72px;} +.icon-chevron-right{background-position:-456px -72px;} +.icon-plus-sign{background-position:0 -96px;} +.icon-minus-sign{background-position:-24px -96px;} +.icon-remove-sign{background-position:-48px -96px;} +.icon-ok-sign{background-position:-72px -96px;} +.icon-question-sign{background-position:-96px -96px;} +.icon-info-sign{background-position:-120px -96px;} +.icon-screenshot{background-position:-144px -96px;} +.icon-remove-circle{background-position:-168px -96px;} +.icon-ok-circle{background-position:-192px -96px;} +.icon-ban-circle{background-position:-216px -96px;} +.icon-arrow-left{background-position:-240px -96px;} +.icon-arrow-right{background-position:-264px -96px;} +.icon-arrow-up{background-position:-289px -96px;} +.icon-arrow-down{background-position:-312px -96px;} +.icon-share-alt{background-position:-336px -96px;} +.icon-resize-full{background-position:-360px -96px;} +.icon-resize-small{background-position:-384px -96px;} +.icon-plus{background-position:-408px -96px;} +.icon-minus{background-position:-433px -96px;} +.icon-asterisk{background-position:-456px -96px;} +.icon-exclamation-sign{background-position:0 -120px;} +.icon-gift{background-position:-24px -120px;} +.icon-leaf{background-position:-48px -120px;} +.icon-fire{background-position:-72px -120px;} +.icon-eye-open{background-position:-96px -120px;} +.icon-eye-close{background-position:-120px -120px;} +.icon-warning-sign{background-position:-144px -120px;} +.icon-plane{background-position:-168px -120px;} +.icon-calendar{background-position:-192px -120px;} +.icon-random{background-position:-216px -120px;} +.icon-comment{background-position:-240px -120px;} +.icon-magnet{background-position:-264px -120px;} +.icon-chevron-up{background-position:-288px -120px;} +.icon-chevron-down{background-position:-313px -119px;} +.icon-retweet{background-position:-336px -120px;} +.icon-shopping-cart{background-position:-360px -120px;} +.icon-folder-close{background-position:-384px -120px;} +.icon-folder-open{background-position:-408px -120px;} +.icon-resize-vertical{background-position:-432px -119px;} +.icon-resize-horizontal{background-position:-456px -118px;} +.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;} +.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} +.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.dropdown.open .dropdown-menu{display:block;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} +.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;color:rgba(0, 0, 0, 0.5);outline:0;} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-large .icon{margin-top:1px;} +.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} +.btn-small .icon{margin-top:-1px;} +.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-ms-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(top, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0044cc;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} +button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} +.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} +.btn-group:after{clear:both;} +.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} +.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn .caret{margin-top:7px;margin-left:0;} +.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} +.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.btn-small .caret{margin-top:4px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.alert,.alert-heading{color:#c09853;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;} +.alert-success,.alert-success .alert-heading{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} +.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;} +.alert-info,.alert-info .alert-heading{color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} +.nav-list>li+.nav-header{margin-top:9px;} +.nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"]{margin-right:2px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;} +.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;} +.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} +.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} +.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;background-color:rgba(0, 0, 0, 0.5);} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#999999;} +.breadcrumb .active a{color:#333333;} +.pagination{height:36px;margin:18px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination li{display:inline;} +.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} +.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} +.pagination .active a{color:#999999;cursor:default;} +.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager a:hover{text-decoration:none;background-color:#f5f5f5;} +.pager .next a{float:right;} +.pager .previous a{float:left;} +.modal-open .dropdown-menu{z-index:2050;} +.modal-open .dropdown.open{*z-index:2050;} +.modal-open .popover{z-index:2060;} +.modal-open .tooltip{z-index:2070;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-body{padding:15px;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} +.modal-footer:after{clear:both;} +.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} +.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-2px;} +.tooltip.right{margin-left:2px;} +.tooltip.bottom{margin-top:2px;} +.tooltip.left{margin-left:-2px;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} +.popover.right{margin-left:5px;} +.popover.bottom{margin-top:5px;} +.popover.left{margin-left:-5px;} +.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} +.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} +.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} +.thumbnails:after{clear:both;} +.thumbnails>li{float:left;margin:0 0 18px 20px;} +.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;} +.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.label-important{background-color:#b94a48;} +.label-warning{background-color:#f89406;} +.label-success{background-color:#468847;} +.label-info{background-color:#3a87ad;} +@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} +.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} +.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} +.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.accordion{margin-bottom:18px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:18px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;} +.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;} +.hero-unit p{font-size:18px;font-weight:200;line-height:27px;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} diff --git a/docs/css/jquery.iviewer.css b/docs/css/jquery.iviewer.css new file mode 100644 index 0000000..d68c642 --- /dev/null +++ b/docs/css/jquery.iviewer.css @@ -0,0 +1,91 @@ +.iviewer_common { + position:absolute; + bottom:10px; + border: 1px solid #000; + height: 28px; + z-index: 5000; +} + +.iviewer_cursor { + cursor: url(../img/iviewer/hand.cur) 6 8, pointer; +} + +.iviewer_drag_cursor { + cursor: url(../img/iviewer/grab.cur) 6 8, pointer; +} + +.iviewer_button { + width: 28px; + cursor: pointer; + background-position: center center; + background-repeat: no-repeat; +} + +.iviewer_zoom_in { + left: 20px; + background: url(../img/iviewer/iviewer.zoom_in.png); +} + +.iviewer_zoom_out { + left: 55px; + background: url(../img/iviewer/iviewer.zoom_out.png); +} + +.iviewer_zoom_zero { + left: 90px; + background: url(../img/iviewer/iviewer.zoom_zero.png); +} + +.iviewer_zoom_fit { + left: 125px; + background: url(../img/iviewer/iviewer.zoom_fit.png); +} + +.iviewer_zoom_status { + left: 160px; + font: 1em/28px Sans; + color: #000; + background-color: #fff; + text-align: center; + width: 60px; +} + +.iviewer_rotate_left { + left: 227px; + background: #fff url(../img/iviewer/iviewer.rotate_left.png) center center no-repeat; +} + +.iviewer_rotate_right { + left: 262px; + background: #fff url(../img/iviewer/iviewer.rotate_right.png) center center no-repeat; +} + +.viewer +{ + width: 100%; + height: 500px; + position: relative; + background: transparent url('../img/loader.gif') no-repeat center center; +} + +.viewer img +{ + max-width: none; +} + +.wrapper +{ + overflow: hidden; +} + +.iviewer_common +{ + border: 0; + bottom: auto; + top: 10px; +} + +.iviewer_zoom_status +{ + border: 1px solid black; +} diff --git a/docs/css/prettify.css b/docs/css/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/docs/css/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/css/template.css b/docs/css/template.css new file mode 100644 index 0000000..23265e6 --- /dev/null +++ b/docs/css/template.css @@ -0,0 +1,500 @@ +@import url(bootstrap.min.css); +@import url(bootstrap-responsive.css); +@import url(prettify.css); +@import url(jquery.iviewer.css); +@import url(http://fonts.googleapis.com/css?family=Crimson+Text|Philosopher|Forum); + +body +{ + padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ + background: #f9f9f9; + color: #444; +} + +a +{ + color: #55A72F; +} + +li.l0, li.l1, li.l2, li.l3, li.l5, li.l6, li.l7, li.l8 +{ + list-style-type: decimal; +} + +a.brand, h2, .hero-unit h1 +{ + font-family: 'Forum', "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.element .span4 +{ + width: 275px; +} + +.namespace-contents hr, .package-contents hr +{ + border-top: 3px dotted silver; +} + +.namespace-indent, .package-indent +{ + padding-left: 10px; border-left: 1px dashed #f0f0f0; +} + +.element h3 i, .namespace-contents h3 i, .package-contents h3 i +{ + margin-top: 2px; + margin-right: 5px; +} + +.element h3, .namespace-contents h3, .package-contents h3 +{ + margin-top: 25px; + margin-bottom: 20px; + border-bottom: 1px solid silver; +} + +.element h3:first-of-type, .namespace-contents h3:first-of-type, +.package-contents h3:first-of-type +{ + margin-top: 30px; +} + +.element h2 +{ + font-family: inherit; + font-size: 1.2em; + color: black; +} + +.element .type +{ + font-weight: bold; +} + +#search-query +{ + height: auto; +} + +.hero-unit, div.element, .well +{ + border: 1px solid #e0e0e0; + background: white; +} + +h2 +{ + border-bottom: 1px dashed #55A72F; + margin-bottom: 10px; + padding-bottom: 0; + padding-left: 5px; + color: #e9e9e9; + font-weight: normal; + margin-top: 40px; +} + +h2:first-of-type +{ + margin-top: 0; +} + +.hero-unit +{ + background: #75a70d; /* Old browsers */ + background: -moz-radial-gradient(center, ellipse cover, #bfd255 0%, #8eb92a 72%, #72aa00 96%, #9ecb2d 100%); /* FF3.6+ */ + background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#bfd255), color-stop(72%,#8eb92a), color-stop(96%,#72aa00), color-stop(100%,#9ecb2d)); /* Chrome,Safari4+ */ + background: -webkit-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Chrome10+,Safari5.1+ */ + background: -o-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Opera 12+ */ + background: -ms-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* IE10+ */ + background: radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bfd255', endColorstr='#9ecb2d',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ + + padding: 40px 0 15px 0; + box-shadow: inset 0 0 10px gray; +} + +.hero-unit h1 +{ + text-align: center; + font-weight: normal; + text-align: center; + color: white; + text-shadow: black 0px 0px 15px; +} + +.hero-unit h2 +{ + border: none; + color: white; + background: rgba(48, 48, 48, 0.5); + padding: 0; + margin: 0; + margin-top: 15px; + text-align: center; +} + +.namespace-contents h2, .package-contents h2 +{ + padding-left: 44px; + background: transparent url('../img/icons/icon-th-big.png') no-repeat 3px center; +} + +.package-contents h2 +{ + background-image: url('../img/icons/icon-folder-open-big.png'); +} + +.namespace-contents .element h2, .package-contents .element h2 +{ + padding-left: 0; + background: none; +} + +div.element +{ + border-left: 10px solid #55A72F; + border-radius: 5px; + padding: 7px 7px 2px 7px; + margin-bottom: 15px; + margin-left: 0; +} + +div.element.protected +{ + border-left-color: orange; +} + +div.element.private +{ + border-left-color: red; +} + +div.element.class, div.element.interface +{ + border-left-color: #e0e0e0; +} + +div.element.class.abstract h1, div.element.interface.abstract h1 +{ + font-style: italic; +} + +div.element h1 +{ + font-size: 1.2em; + line-height: 1.5em; + margin-bottom: 10px; + padding-left: 22px; + background: transparent no-repeat left 2px; + word-wrap: break-word; +} + +div.element h1 a +{ + color: transparent; + margin-left: 10px; +} + +div.element h1:hover a +{ + color: silver; +} + +div.element h1 a:hover +{ + color: navy; +} + +div.element a.more:hover +{ + background: #f0f0f0; + color: #444; + text-decoration: none; +} + +div.element a.more +{ + font-weight: bold; + text-align: center; + color: gray; + border-top: 1px dashed silver; + display: block; + margin-top: 5px; + padding: 5px 0; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +div.element p +{ + font-size: 0.9em; +} + +div.element .table +{ + font-size: 0.9em; +} + +div.element .table th +{ + text-transform: capitalize; +} + +body.invert +{ + background: white; +} + +body.invert div.element +{ + background: #f9f9f9; +} + +ul.side-nav +{ + clear: both; +} + +ul.side-nav li +{ + word-wrap: break-word; + padding-left: 10px; + text-indent: -10px; +} + +ul.side-nav li a +{ + background: transparent no-repeat 5px 3px; + padding-bottom: 10px; + font-style: italic; +} + +ul.side-nav li pre +{ + font-size: 0.8em; + margin: 5px 15px 0 15px; + padding: 2px 5px; + background-color: #f8f8f8; + color: gray; + font-style: normal; + word-wrap: break-word; + text-indent: 0; +} + +ul.side-nav li.view-simple span.description +{ + display: none; +} + +ul.side-nav li.view-simple pre +{ + font-size: inherit; + margin: inherit; + padding: inherit; + background-color: inherit; + border: none; + color: inherit; + font-family: inherit; + font-style: inherit; + padding-bottom: 0; + padding-left: 5px; +} + +ul.side-nav li.view-simple a +{ + padding-bottom: 0px; +} + +i.icon-custom +{ + width: 16px; + height: 16px; + background-position: 0; +} + +.table.markers +{ + background: white; +} + +/* JS only functionality; disable by default */ +.btn-group.visibility, .btn-group.view, .btn-group.type-filter +{ + display: none; +} + +.btn-group.view +{ + margin-left: 20px; + margin-bottom: 20px; +} + +.visibility button +{ + height: 24px; +} + +div.element.constant h1, +i.icon-constant { background-image: url('../img/icons/constant.png'); } + +div.element.function h1, +i.icon-function { background-image: url('../img/icons/function.png'); } + +div.element.method h1, +i.icon-method { background-image: url('../img/icons/method.png'); } + +div.element.class h1, +i.icon-class { background-image: url('../img/icons/class.png'); } + +div.element.interface h1, +i.icon-interface { background-image: url('../img/icons/interface.png'); } + +div.element.property h1, +i.icon-property { background-image: url('../img/icons/property.png'); } + +i.icon-show-public { background-image: url('../img/icons/visibility_public.png'); } +i.icon-show-protected { background-image: url('../img/icons/visibility_protected.png'); } +i.icon-show-private { background-image: url('../img/icons/visibility_private.png'); } + +span.empty-namespace +{ + color: silver; +} + +footer +{ + text-align: right; + font-size: 0.8em; + opacity: 0.5; +} + +#mapHolder +{ + border: 4px solid #555; + padding: 0 !important; + overflow: hidden +} + +div.element div.subelement +{ + margin-left: 10px; + padding-bottom: 5px; +} + +pre code +{ + border: none; +} + +div.element div.subelement > code +{ + font-size: 0.8em; + float: left; + margin-right: 10px; + padding: 0 5px; + line-height: 16px; +} + +div.element div.subelement > p +{ + margin-left: 20px; + margin-right: 40px; +} + +div.element div.subelement h4 +{ + color: #666; + margin-bottom: 5px; +} + +div.element div.subelement.response +{ + padding-bottom: 15px; +} + +div.labels +{ + text-align: right; +} + +.nav-list .nav-header +{ + font-size: 13px; +} + +.go_to_top +{ + float: right; + margin-right: 20px; + background: #2C2C2C; + color: #999; + padding: 3px 10px; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + line-height: 19px; +} + +.visibility .btn { + text-transform: uppercase; + font-size: 0.7em; + font-weight: bold; +} + +@media (min-width: 980px) +{ + a[name] + { + margin-top: -50px; + position: absolute; + } +} + +@media (min-width: 1200px) +{ + .method .span4 + { + width: 345px; + } +} + +/* redefined because twitter bootstrap assumes that bootstrap-responsive.css */ +@media (max-width: 980px) +{ + body + { + padding-top: 0; + } + + .go_to_top + { + display: none; + } + + .btn-group.visibility + { + font-size: 0.80em; + margin-bottom: 7px; + display: block; + float: right; + } +} + +@media (max-width: 768px) +{ + .hero-unit h1 { + font-size: 30px; + } + .hero-unit h2 { + font-size: 19px; + } + +} +@media (min-width: 768px) and (max-width: 980px) +{ + .method .span4 + { + width: 203px; + } +} diff --git a/docs/deprecated.html b/docs/deprecated.html new file mode 100644 index 0000000..606539c --- /dev/null +++ b/docs/deprecated.html @@ -0,0 +1,68 @@ + + + + + +OpenSQLManager + + + + + + + + + + +
+ +
+
+
+ +
No deprecated elements have been + found in this project. +
+
+
+
+
+
+ + diff --git a/docs/errors.html b/docs/errors.html new file mode 100644 index 0000000..50f18df --- /dev/null +++ b/docs/errors.html @@ -0,0 +1,104 @@ + + + + + +OpenSQLManager + + + + + + + + + + +
+ +
+
+
+ +
No errors have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/graph_class.html b/docs/graph_class.html new file mode 100644 index 0000000..fe96a8c --- /dev/null +++ b/docs/graph_class.html @@ -0,0 +1,65 @@ + + + + + +OpenSQLManager + + + + + + + + + + +
+ +
+
+
+ + diff --git a/docs/img/apple-touch-icon-114x114.png b/docs/img/apple-touch-icon-114x114.png new file mode 100644 index 0000000..1506f6a Binary files /dev/null and b/docs/img/apple-touch-icon-114x114.png differ diff --git a/docs/img/apple-touch-icon-72x72.png b/docs/img/apple-touch-icon-72x72.png new file mode 100644 index 0000000..d813259 Binary files /dev/null and b/docs/img/apple-touch-icon-72x72.png differ diff --git a/docs/img/apple-touch-icon.png b/docs/img/apple-touch-icon.png new file mode 100644 index 0000000..2d320cb Binary files /dev/null and b/docs/img/apple-touch-icon.png differ diff --git a/docs/img/favicon.ico b/docs/img/favicon.ico new file mode 100644 index 0000000..9575ac8 Binary files /dev/null and b/docs/img/favicon.ico differ diff --git a/docs/img/glyphicons-halflings-white.png b/docs/img/glyphicons-halflings-white.png new file mode 100644 index 0000000..a20760b Binary files /dev/null and b/docs/img/glyphicons-halflings-white.png differ diff --git a/docs/img/glyphicons-halflings.png b/docs/img/glyphicons-halflings.png new file mode 100644 index 0000000..92d4445 Binary files /dev/null and b/docs/img/glyphicons-halflings.png differ diff --git a/docs/img/icons/arrow_down.png b/docs/img/icons/arrow_down.png new file mode 100644 index 0000000..61505ad Binary files /dev/null and b/docs/img/icons/arrow_down.png differ diff --git a/docs/img/icons/arrow_right.png b/docs/img/icons/arrow_right.png new file mode 100644 index 0000000..60c5927 Binary files /dev/null and b/docs/img/icons/arrow_right.png differ diff --git a/docs/img/icons/class.png b/docs/img/icons/class.png new file mode 100644 index 0000000..87c2107 Binary files /dev/null and b/docs/img/icons/class.png differ diff --git a/docs/img/icons/constant.png b/docs/img/icons/constant.png new file mode 100644 index 0000000..f5f180d Binary files /dev/null and b/docs/img/icons/constant.png differ diff --git a/docs/img/icons/favicon.ico b/docs/img/icons/favicon.ico new file mode 100644 index 0000000..df28db3 Binary files /dev/null and b/docs/img/icons/favicon.ico differ diff --git a/docs/img/icons/file-php.png b/docs/img/icons/file-php.png new file mode 100644 index 0000000..c323f09 Binary files /dev/null and b/docs/img/icons/file-php.png differ diff --git a/docs/img/icons/file.gif b/docs/img/icons/file.gif new file mode 100644 index 0000000..7e62167 Binary files /dev/null and b/docs/img/icons/file.gif differ diff --git a/docs/img/icons/folder.gif b/docs/img/icons/folder.gif new file mode 100644 index 0000000..2b31631 Binary files /dev/null and b/docs/img/icons/folder.gif differ diff --git a/docs/img/icons/function.png b/docs/img/icons/function.png new file mode 100644 index 0000000..c430902 Binary files /dev/null and b/docs/img/icons/function.png differ diff --git a/docs/img/icons/icon-folder-open-big.png b/docs/img/icons/icon-folder-open-big.png new file mode 100644 index 0000000..fae384e Binary files /dev/null and b/docs/img/icons/icon-folder-open-big.png differ diff --git a/docs/img/icons/icon-th-big.png b/docs/img/icons/icon-th-big.png new file mode 100644 index 0000000..04b0ad8 Binary files /dev/null and b/docs/img/icons/icon-th-big.png differ diff --git a/docs/img/icons/icon_template.svg b/docs/img/icons/icon_template.svg new file mode 100644 index 0000000..b0428aa --- /dev/null +++ b/docs/img/icons/icon_template.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Co + + diff --git a/docs/img/icons/interface.png b/docs/img/icons/interface.png new file mode 100644 index 0000000..51a3a17 Binary files /dev/null and b/docs/img/icons/interface.png differ diff --git a/docs/img/icons/method.png b/docs/img/icons/method.png new file mode 100644 index 0000000..a7cc004 Binary files /dev/null and b/docs/img/icons/method.png differ diff --git a/docs/img/icons/ok.png b/docs/img/icons/ok.png new file mode 100644 index 0000000..39f287a Binary files /dev/null and b/docs/img/icons/ok.png differ diff --git a/docs/img/icons/property.png b/docs/img/icons/property.png new file mode 100644 index 0000000..e76d52b Binary files /dev/null and b/docs/img/icons/property.png differ diff --git a/docs/img/icons/search.gif b/docs/img/icons/search.gif new file mode 100644 index 0000000..eef46fc Binary files /dev/null and b/docs/img/icons/search.gif differ diff --git a/docs/img/icons/variable.png b/docs/img/icons/variable.png new file mode 100644 index 0000000..a39bc19 Binary files /dev/null and b/docs/img/icons/variable.png differ diff --git a/docs/img/icons/view_source.png b/docs/img/icons/view_source.png new file mode 100644 index 0000000..0c76bd1 Binary files /dev/null and b/docs/img/icons/view_source.png differ diff --git a/docs/img/icons/visibility_private.png b/docs/img/icons/visibility_private.png new file mode 100644 index 0000000..386dc2d Binary files /dev/null and b/docs/img/icons/visibility_private.png differ diff --git a/docs/img/icons/visibility_protected.png b/docs/img/icons/visibility_protected.png new file mode 100644 index 0000000..d3bd8e7 Binary files /dev/null and b/docs/img/icons/visibility_protected.png differ diff --git a/docs/img/icons/visibility_public.png b/docs/img/icons/visibility_public.png new file mode 100644 index 0000000..4e10063 Binary files /dev/null and b/docs/img/icons/visibility_public.png differ diff --git a/docs/img/iviewer/grab.cur b/docs/img/iviewer/grab.cur new file mode 100644 index 0000000..ef540be Binary files /dev/null and b/docs/img/iviewer/grab.cur differ diff --git a/docs/img/iviewer/hand.cur b/docs/img/iviewer/hand.cur new file mode 100644 index 0000000..1a5bafb Binary files /dev/null and b/docs/img/iviewer/hand.cur differ diff --git a/docs/img/iviewer/iviewer.rotate_left.png b/docs/img/iviewer/iviewer.rotate_left.png new file mode 100644 index 0000000..df0956d Binary files /dev/null and b/docs/img/iviewer/iviewer.rotate_left.png differ diff --git a/docs/img/iviewer/iviewer.rotate_right.png b/docs/img/iviewer/iviewer.rotate_right.png new file mode 100644 index 0000000..7a6c829 Binary files /dev/null and b/docs/img/iviewer/iviewer.rotate_right.png differ diff --git a/docs/img/iviewer/iviewer.zoom_fit.png b/docs/img/iviewer/iviewer.zoom_fit.png new file mode 100644 index 0000000..364e01d Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_fit.png differ diff --git a/docs/img/iviewer/iviewer.zoom_fit2.gif b/docs/img/iviewer/iviewer.zoom_fit2.gif new file mode 100644 index 0000000..3199a1e Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_fit2.gif differ diff --git a/docs/img/iviewer/iviewer.zoom_in.png b/docs/img/iviewer/iviewer.zoom_in.png new file mode 100644 index 0000000..7899332 Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_in.png differ diff --git a/docs/img/iviewer/iviewer.zoom_in2.gif b/docs/img/iviewer/iviewer.zoom_in2.gif new file mode 100644 index 0000000..5d59618 Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_in2.gif differ diff --git a/docs/img/iviewer/iviewer.zoom_out.png b/docs/img/iviewer/iviewer.zoom_out.png new file mode 100644 index 0000000..893f350 Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_out.png differ diff --git a/docs/img/iviewer/iviewer.zoom_out2.gif b/docs/img/iviewer/iviewer.zoom_out2.gif new file mode 100644 index 0000000..77ec19a Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_out2.gif differ diff --git a/docs/img/iviewer/iviewer.zoom_zero.png b/docs/img/iviewer/iviewer.zoom_zero.png new file mode 100644 index 0000000..c981db6 Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_zero.png differ diff --git a/docs/img/iviewer/iviewer.zoom_zero2.gif b/docs/img/iviewer/iviewer.zoom_zero2.gif new file mode 100644 index 0000000..e56c670 Binary files /dev/null and b/docs/img/iviewer/iviewer.zoom_zero2.gif differ diff --git a/docs/img/loader.gif b/docs/img/loader.gif new file mode 100644 index 0000000..1209425 Binary files /dev/null and b/docs/img/loader.gif differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..105e058 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,79 @@ + + + + + +OpenSQLManager + + + + + + + + + + +
+ +
+

OpenSQLManager

+

Documentation

+
+
+
+ +
+
+
+ + diff --git a/docs/js/SVGPan.js b/docs/js/SVGPan.js new file mode 100644 index 0000000..4966b99 --- /dev/null +++ b/docs/js/SVGPan.js @@ -0,0 +1,232 @@ +/** + * SVGPan library 1.2 - phpDocumentor1 + * ==================== + * + * Given an unique existing element with id "viewport", including the + * the library into any SVG adds the following capabilities: + * + * - Mouse panning + * - Mouse zooming (using the wheel) + * - Object dargging + * + * Known issues: + * + * - Zooming (while panning) on Safari has still some issues + * + * Releases: + * + * 1.2 - phpDocumentor1, Fri Apr 08 19:19:00 CET 2011, Mike van Riel + * Increased zoom speed with 20% + * Disabled element moving functionality + * + * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui + * Fixed a bug with browser mouse handler interaction + * + * 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui + * Updated the zoom code to support the mouse wheel on Safari/Chrome + * + * 1.0, Andrea Leofreddi + * First release + * + * This code is licensed under the following BSD license: + * + * Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Andrea Leofreddi. + */ + +var root = document.documentElement; + +var state = 'none', stateTarget, stateOrigin, stateTf; + +setupHandlers(root); + +/** + * Register handlers + */ +function setupHandlers(root){ + setAttributes(root, { + "onmouseup" : "add(evt)", + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)", +// "onmouseout" : "handleMouseUp(evt)" // Decomment this to stop the pan functionality when dragging out of the SVG element + }); + + if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari + else + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) { + var p = root.createSVGPoint(); + + p.x = evt.clientX; + p.y = evt.clientY; + + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) { + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + + element.setAttribute("transform", s); +} + +/** + * Dumps a matrix to a string (useful for debug). + */ +function dumpMatrix(matrix) { + var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]"; + + return s; +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes){ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +/** + * Handle mouse move event. + */ +function handleMouseWheel(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var delta; + + if(evt.wheelDelta) + delta = evt.wheelDelta / 3600; // Chrome/Safari + else + delta = evt.detail / -90; // Mozilla + + var z = 1 + (delta * 1.2); // Zoom factor: 0.9/1.1 + + var g = svgDoc.getElementById("viewport"); + + var p = getEventPoint(evt); + + p = p.matrixTransform(g.getCTM().inverse()); + + // Compute new scale matrix in current mouse position + var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y); + + setCTM(g, g.getCTM().multiply(k)); + + stateTf = stateTf.multiply(k.inverse()); +} + +/** + * Handle mouse move event. + */ +function handleMouseMove(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + + if(state == 'pan') { + // Pan mode + var p = getEventPoint(evt).matrixTransform(stateTf); + + setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y)); + } else if(state == 'move') { + // Move mode + var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse()); + + setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM())); + + stateOrigin = p; + } +} + +/** + * Handle click event. + */ +function handleMouseDown(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + var g = svgDoc.getElementById("viewport"); + +// if(evt.target.tagName == "svg") { + // Pan mode + state = 'pan'; + + stateTf = g.getCTM().inverse(); + + stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } else { + // Move mode +// state = 'move'; +// +// stateTarget = evt.target; +// +// stateTf = g.getCTM().inverse(); +// +// stateOrigin = getEventPoint(evt).matrixTransform(stateTf); +// } +} + +/** + * Handle mouse button release event. + */ +function handleMouseUp(evt) { + if(evt.preventDefault) + evt.preventDefault(); + + evt.returnValue = false; + + var svgDoc = evt.target.ownerDocument; + + if(state == 'pan' || state == 'move') { + // Quit pan mode + state = ''; + } +} + diff --git a/docs/js/bootstrap.js b/docs/js/bootstrap.js new file mode 100644 index 0000000..c832ccb --- /dev/null +++ b/docs/js/bootstrap.js @@ -0,0 +1,1722 @@ +/* =================================================== + * bootstrap-transition.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-alert.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.removeClass('in') + + function removeElement() { + $parent.remove() + $parent.trigger('closed') + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-button.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype = { + + constructor: Button + + , setState: function ( state ) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + , toggle: function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + $(e.target).button('toggle') + }) + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-carousel.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.carousel.defaults, options) + this.options.slide && this.slide(this.options.slide) + } + + Carousel.prototype = { + + cycle: function () { + this.interval = setInterval($.proxy(this.next, this), this.options.interval) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function () { + clearInterval(this.interval) + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if (!$.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger('slide') + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } else { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.trigger('slide') + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = typeof option == 'object' && option + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}( window.jQuery ) +/* ============================================================= + * bootstrap-collapse.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + var Collapse = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options["parent"]) { + this.$parent = $(this.options["parent"]) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension = this.dimension() + , scroll = $.camelCase(['scroll', dimension].join('-')) + , actives = this.$parent && this.$parent.find('.in') + , hasData + + if (actives && actives.length) { + hasData = actives.data('collapse') + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', 'show', 'shown') + this.$element[dimension](this.$element[0][scroll]) + + } + + , hide: function () { + var dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', 'hide', 'hidden') + this.$element[dimension](0) + } + + , reset: function ( size ) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element.addClass('collapse') + } + + , transition: function ( method, startEvent, completeEvent ) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.$element.trigger(completeEvent) + } + + this.$element + .trigger(startEvent) + [method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-dropdown.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ) +/* ========================================================= + * bootstrap-modal.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = $.extend({}, $.fn.modal.defaults, options) + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('