+
+ {% else %}
+
+ {% endif %}
+
+
+{% endmacro %}
diff --git a/login/app/sprinkles/FormGenerator/templates/FormGenerator/macros/textarea.html.twig b/login/app/sprinkles/FormGenerator/templates/FormGenerator/macros/textarea.html.twig
new file mode 100644
index 0000000..ce5e2e7
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/templates/FormGenerator/macros/textarea.html.twig
@@ -0,0 +1,5 @@
+{% macro generate(input) %}
+ {% if input.icon %}
{% endif %}
+
+ {% if input.icon %}
{% endif %}
+{% endmacro %}
\ No newline at end of file
diff --git a/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal-large.html.twig b/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal-large.html.twig
new file mode 100644
index 0000000..b2de3f9
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal-large.html.twig
@@ -0,0 +1,3 @@
+{% extends "FormGenerator/modal.html.twig" %}
+
+{% block modal_size %}modal-lg{% endblock %}
diff --git a/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal.html.twig b/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal.html.twig
new file mode 100644
index 0000000..3c66201
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/templates/FormGenerator/modal.html.twig
@@ -0,0 +1,62 @@
+{% block modal %}
+
+{% endblock %}
+
+{% block scripts_page %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/login/app/sprinkles/FormGenerator/templates/FormGenerator/typehead.html.twig b/login/app/sprinkles/FormGenerator/templates/FormGenerator/typehead.html.twig
new file mode 100644
index 0000000..150427a
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/templates/FormGenerator/typehead.html.twig
@@ -0,0 +1,15 @@
+{% extends "FormGenerator/modal.html.twig" %}
+
+{% block scripts_page %}
+{{ parent() }}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/login/app/sprinkles/FormGenerator/tests/Unit/FormGeneratorTest.php b/login/app/sprinkles/FormGenerator/tests/Unit/FormGeneratorTest.php
new file mode 100644
index 0000000..066e98d
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/tests/Unit/FormGeneratorTest.php
@@ -0,0 +1,408 @@
+basePath = __DIR__ . '/data';
+ }
+
+ /**
+ * Test the base `Test` element class works on it's own
+ */
+ public function testTextFormElement()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/good.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // Get TextInput from the `name` element of the schema
+ $inputSchema = $schema["name"]["form"];
+ $textInput = new \UserFrosting\Sprinkle\FormGenerator\Element\Text("name", $inputSchema);
+
+ // Test instanceof $textInput
+ $this->assertInstanceof(InputInterface::class, $textInput);
+
+ // Parse the input
+ $text = $textInput->parse();
+
+ // Test the parsing
+ $expected = [
+ "type" => "text",
+ "label" => "Project Name",
+ "icon" => "fa-flag",
+ "autocomplete" => "off",
+ "class" => "form-control",
+ "placeholder" => "Project Name",
+ 'name' => 'name',
+ 'id' => 'field_name',
+ 'value' => ''
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $text);
+ }
+
+ /**
+ * This test make sure the `Text` element works correctly when a current
+ * value is passed to the constructor. Should return the same as the
+ * previous test, but with the `value` setup instead of empty
+ */
+ public function testTextFormElementWithData()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/good.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // Get TextInput from the `name` element of the schema
+ $inputSchema = $schema["name"]["form"];
+ $textInput = new \UserFrosting\Sprinkle\FormGenerator\Element\Text("name", $inputSchema, "The Bar project");
+
+ // Test instanceof $textInput
+ $this->assertInstanceof(InputInterface::class, $textInput);
+
+ // Parse the input
+ $text = $textInput->parse();
+
+ // Test the parsing
+ $expected = [
+ "type" => "text",
+ "label" => "Project Name",
+ "icon" => "fa-flag",
+ "autocomplete" => "off",
+ "class" => "form-control",
+ "placeholder" => "Project Name",
+ 'name' => 'name',
+ 'id' => 'field_name',
+ 'value' => 'The Bar project'
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $text);
+ }
+
+ /**
+ * This test is the same as the one before, but we test the `owener` field with some data
+ * This make sure the `default` schema field will work correctly when empty data is passed
+ */
+ public function testTextFormElementWithEmptyData()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/good.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // Get TextInput from the `name` element of the schema
+ $inputSchema = $schema["owner"]["form"];
+ $textInput = new \UserFrosting\Sprinkle\FormGenerator\Element\Text("owner", $inputSchema, "");
+
+ // Test instanceof $textInput
+ $this->assertInstanceof(InputInterface::class, $textInput);
+
+ // Parse the input
+ $text = $textInput->parse();
+
+ // Test the parsing
+ $expected = [
+ 'label' => 'Project Owner',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '', //Shoudn't be a value here ! "" is overwritting "Foo"
+ 'name' => 'owner',
+ 'id' => 'owner',
+ 'type' => 'text',
+ 'icon' => 'fa-user',
+ 'placeholder' => 'Project Owner',
+ 'default' => 'Foo'
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $text);
+ }
+
+ /**
+ * Test the Form Class.
+ * Run the test with no current values (empty form)
+ */
+ public function testForm()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/good.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // Generate the form
+ $form = new Form($schema);
+
+ // Test to make sure the class creation is fine
+ $this->assertInstanceof(Form::class, $form);
+
+ // Test the form generation
+ $generatedForm = $form->generate();
+ $this->assertInternalType("array", $generatedForm);
+
+ // Test one of the form input
+ $expected = [
+ 'number' => [
+ 'label' => 'Project Number',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '',
+ 'name' => 'number',
+ 'id' => 'field_number',
+ 'type' => 'number',
+ 'icon' => 'fa-edit',
+ 'placeholder' => 'Project Number'
+ ],
+ 'owner' => [
+ 'label' => 'Project Owner',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => 'Foo',
+ 'name' => 'owner',
+ 'id' => 'owner',
+ 'type' => 'text',
+ 'icon' => 'fa-user',
+ 'placeholder' => 'Project Owner',
+ 'default' => 'Foo'
+ ],
+ 'name' => [
+ 'label' => 'Project Name',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '',
+ 'name' => 'name',
+ 'id' => 'field_name',
+ 'type' => 'text',
+ 'icon' => 'fa-flag',
+ 'placeholder' => 'Project Name'
+ ],
+ 'description' => [
+ 'label' => 'Project Description',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '',
+ 'name' => 'description',
+ 'rows' => 5,
+ 'id' => 'field_description',
+ 'type' => 'textarea',
+ 'icon' => 'fa-pencil',
+ 'placeholder' => 'Project Description'
+ ],
+ 'status' => [
+ 'label' => 'Project Status',
+ 'class' => 'form-control js-select2',
+ 'value' => '',
+ 'name' => 'status',
+ 'id' => 'field_status',
+ 'type' => 'select',
+ 'options' => [
+ 0 => 'Closed',
+ 1 => 'Open'
+ ]
+ ],
+ 'active' => [
+ 'label' => 'Active',
+ 'class' => 'js-icheck',
+ 'name' => 'active',
+ 'id' => 'field_active',
+ 'type' => 'checkbox',
+ 'binary' => true
+ ],
+ 'hidden' => [
+ 'value' => 'Something',
+ 'name' => 'hidden',
+ 'id' => 'field_hidden',
+ 'type' => 'hidden'
+ ],
+ 'alert' => [
+ 'class' => 'alert-success',
+ 'icon' => 'fa-check',
+ 'value' => 'You\'re awesome!',
+ 'name' => 'alert',
+ 'type' => 'alert'
+ ]
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $generatedForm);
+ }
+
+ /**
+ * Test the Form Clas with values to make sure filled form works correctly
+ */
+ public function testFormWithData()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/good.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // The data
+ $data = [
+ "name" => "Bar project",
+ "owner" => "",
+ "description" => "The bar project is less awesome, but at least it's open.",
+ "status" => 1,
+ "hiddenString" => "The Bar secret code is...",
+ "completion" => 12,
+ "active" => true
+ ];
+
+ // Generate the form
+ $form = new Form($schema, $data);
+
+ // Test to make sure the class creation is fine
+ $this->assertInstanceof(Form::class, $form);
+
+ // Test the form generation
+ $generatedForm = $form->generate();
+ $this->assertInternalType("array", $generatedForm);
+
+ // Test one of the form input
+ $expected = [
+ 'number' => [
+ 'label' => 'Project Number',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '',
+ 'name' => 'number',
+ 'id' => 'field_number',
+ 'type' => 'number',
+ 'icon' => 'fa-edit',
+ 'placeholder' => 'Project Number'
+ ],
+ 'name' => [
+ 'label' => 'Project Name',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => 'Bar project', //Value here !
+ 'name' => 'name',
+ 'id' => 'field_name',
+ 'type' => 'text',
+ 'icon' => 'fa-flag',
+ 'placeholder' => 'Project Name'
+ ],
+ 'owner' => [
+ 'label' => 'Project Owner',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => '', //Shoudn't be a value here ! "" is overwritting "Foo"
+ 'name' => 'owner',
+ 'id' => 'owner',
+ 'type' => 'text',
+ 'icon' => 'fa-user',
+ 'placeholder' => 'Project Owner',
+ 'default' => 'Foo'
+ ],
+ 'description' => [
+ 'label' => 'Project Description',
+ 'autocomplete' => 'off',
+ 'class' => 'form-control',
+ 'value' => 'The bar project is less awesome, but at least it\'s open.', //Value here !
+ 'name' => 'description',
+ 'rows' => 5,
+ 'id' => 'field_description',
+ 'type' => 'textarea',
+ 'icon' => 'fa-pencil',
+ 'placeholder' => 'Project Description'
+ ],
+ 'status' => [
+ 'label' => 'Project Status',
+ 'class' => 'form-control js-select2',
+ 'value' => 1, //Value here !
+ 'name' => 'status',
+ 'id' => 'field_status',
+ 'type' => 'select',
+ 'options' => [
+ 0 => 'Closed',
+ 1 => 'Open'
+ ]
+ ],
+ 'active' => [
+ 'label' => 'Active',
+ 'class' => 'js-icheck',
+ 'name' => 'active',
+ 'id' => 'field_active',
+ 'type' => 'checkbox',
+ 'checked' => 'checked', //Value here !
+ 'binary' => true
+ ],
+ 'hidden' => [
+ 'value' => 'Something',
+ 'name' => 'hidden',
+ 'id' => 'field_hidden',
+ 'type' => 'hidden'
+ ],
+ 'alert' => [
+ 'class' => 'alert-success',
+ 'icon' => 'fa-check',
+ 'value' => 'You\'re awesome!',
+ 'name' => 'alert',
+ 'type' => 'alert'
+ ]
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $generatedForm);
+ }
+
+ /**
+ * Test a non existant input type. It's supposed to not find the class and
+ * default back to the `Text` element class.
+ */
+ public function testUndefinedFormElement()
+ {
+ // Get Schema
+ $loader = new YamlFileLoader($this->basePath . '/bad.json');
+ $schema = new RequestSchemaRepository($loader->load());
+
+ // Generate the form
+ $form = new Form($schema);
+
+ // Test to make sure the class creation is fine
+ $this->assertInstanceof(Form::class, $form);
+
+ // Test the form generation
+ $generatedForm = $form->generate();
+ $this->assertInternalType("array", $generatedForm);
+
+ // Test one of the form input
+ $expected = [
+ "type" => "foo",
+ "autocomplete" => "off",
+ "class" => "form-control",
+ 'name' => 'myField',
+ 'id' => 'field_myField',
+ 'value' => ''
+ ];
+
+ // We test the generated result
+ $this->assertEquals($expected, $generatedForm['myField']);
+ }
+}
diff --git a/login/app/sprinkles/FormGenerator/tests/Unit/data/bad.json b/login/app/sprinkles/FormGenerator/tests/Unit/data/bad.json
new file mode 100644
index 0000000..683add2
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/tests/Unit/data/bad.json
@@ -0,0 +1,12 @@
+{
+ "myField" : {
+ "form" : {
+ "type" : "foo"
+ }
+ },
+ "myOtherField" : {
+ "form" : {
+ "value" : "Bar"
+ }
+ }
+}
diff --git a/login/app/sprinkles/FormGenerator/tests/Unit/data/good.json b/login/app/sprinkles/FormGenerator/tests/Unit/data/good.json
new file mode 100644
index 0000000..61d5233
--- /dev/null
+++ b/login/app/sprinkles/FormGenerator/tests/Unit/data/good.json
@@ -0,0 +1,67 @@
+{
+ "number" : {
+ "form" : {
+ "type" : "number",
+ "label" : "Project Number",
+ "icon" : "fa-edit",
+ "placeholder" : "Project Number"
+ }
+ },
+ "name" : {
+ "form" : {
+ "type" : "text",
+ "label" : "Project Name",
+ "icon" : "fa-flag",
+ "placeholder" : "Project Name"
+ }
+ },
+ "owner" : {
+ "form" : {
+ "type" : "text",
+ "label" : "Project Owner",
+ "icon" : "fa-user",
+ "id" : "owner",
+ "placeholder" : "Project Owner",
+ "default" : "Foo"
+ }
+ },
+ "description" : {
+ "form" : {
+ "type" : "textarea",
+ "label" : "Project Description",
+ "icon" : "fa-pencil",
+ "placeholder" : "Project Description",
+ "rows" : 5
+ }
+ },
+ "status" : {
+ "form" : {
+ "type" : "select",
+ "label" : "Project Status",
+ "options" : {
+ "0" : "Closed",
+ "1" : "Open"
+ }
+ }
+ },
+ "active" : {
+ "form" : {
+ "type" : "checkbox",
+ "label" : "Active"
+ }
+ },
+ "hidden" : {
+ "form" : {
+ "type" : "hidden",
+ "value" : "Something"
+ }
+ },
+ "alert" : {
+ "form" : {
+ "type" : "alert",
+ "class" : "alert-success",
+ "icon" : "fa-check",
+ "value" : "You're awesome!"
+ }
+ }
+}
diff --git a/login/app/sprinkles/admin/src/Controller/PermissionController.php b/login/app/sprinkles/admin/src/Controller/PermissionController.php
index 660e296..f3e93ce 100755
--- a/login/app/sprinkles/admin/src/Controller/PermissionController.php
+++ b/login/app/sprinkles/admin/src/Controller/PermissionController.php
@@ -146,7 +146,7 @@ class PermissionController extends SimpleController
*
* This checks that the currently logged-in user has permission to view permissions.
* Note that permissions cannot be modified through the interface. This is because
- * permissions are tighly coupled to the code and should only be modified by developers.
+ * permissions are highly coupled to the code and should only be modified by developers.
* This page requires authentication.
* Request type: GET
*/
diff --git a/login/app/sprinkles/admin/src/Controller/UserController.php b/login/app/sprinkles/admin/src/Controller/UserController.php
index ff41009..5bece6a 100755
--- a/login/app/sprinkles/admin/src/Controller/UserController.php
+++ b/login/app/sprinkles/admin/src/Controller/UserController.php
@@ -5,6 +5,7 @@
* @link https://github.com/userfrosting/UserFrosting
* @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License)
*/
+
namespace UserFrosting\Sprinkle\Admin\Controller;
use Carbon\Carbon;
@@ -46,8 +47,7 @@ class UserController extends SimpleController
* Request type: POST
* @see getModalCreate
*/
- public function create($request, $response, $args)
- {
+ public function create($request, $response, $args) {
// Get POST parameters: user_name, first_name, last_name, email, locale, (group)
$params = $request->getParsedBody();
@@ -72,13 +72,13 @@ class UserController extends SimpleController
$transformer = new RequestDataTransformer($schema);
$data = $transformer->transform($params);
- $error = false;
+ $error = FALSE;
// Validate request data
$validator = new ServerSideValidator($schema, $this->ci->translator);
if (!$validator->validate($data)) {
$ms->addValidationErrors($validator);
- $error = true;
+ $error = TRUE;
}
/** @var UserFrosting\Sprinkle\Core\Util\ClassMapper $classMapper */
@@ -87,12 +87,12 @@ class UserController extends SimpleController
// Check if username or email already exists
if ($classMapper->staticMethod('user', 'findUnique', $data['user_name'], 'user_name')) {
$ms->addMessageTranslated('danger', 'USERNAME.IN_USE', $data);
- $error = true;
+ $error = TRUE;
}
if ($classMapper->staticMethod('user', 'findUnique', $data['email'], 'email')) {
$ms->addMessageTranslated('danger', 'EMAIL.IN_USE', $data);
- $error = true;
+ $error = TRUE;
}
if ($error) {
@@ -123,7 +123,7 @@ class UserController extends SimpleController
// All checks passed! log events/activities, create user, and send verification email (if required)
// Begin transaction - DB will be rolled back if an exception occurs
- Capsule::transaction( function() use ($classMapper, $data, $ms, $config, $currentUser) {
+ Capsule::transaction(function () use ($classMapper, $data, $ms, $config, $currentUser) {
// Create the user
$user = $classMapper->createInstance('user', $data);
@@ -151,12 +151,12 @@ class UserController extends SimpleController
$message = new TwigMailMessage($this->ci->view, 'mail/password-create.html.twig');
$message->from($config['address_book.admin'])
- ->addEmailRecipient(new EmailRecipient($user->email, $user->full_name))
- ->addParams([
- 'user' => $user,
- 'create_password_expiration' => $config['password_reset.timeouts.create'] / 3600 . ' hours',
- 'token' => $passwordRequest->getToken()
- ]);
+ ->addEmailRecipient(new EmailRecipient($user->email, $user->full_name))
+ ->addParams([
+ 'user' => $user,
+ 'create_password_expiration' => $config['password_reset.timeouts.create'] / 3600 . ' hours',
+ 'token' => $passwordRequest->getToken()
+ ]);
$this->ci->mailer->send($message);
@@ -177,8 +177,7 @@ class UserController extends SimpleController
* This route requires authentication.
* Request type: POST
*/
- public function createPasswordReset($request, $response, $args)
- {
+ public function createPasswordReset($request, $response, $args) {
// Get the username from the URL
$user = $this->getUserFromParams($args);
@@ -207,7 +206,7 @@ class UserController extends SimpleController
$ms = $this->ci->alerts;
// Begin transaction - DB will be rolled back if an exception occurs
- Capsule::transaction( function() use ($user, $config) {
+ Capsule::transaction(function () use ($user, $config) {
// Create a password reset and shoot off an email
$passwordReset = $this->ci->repoPasswordReset->create($user, $config['password_reset.timeouts.reset']);
@@ -216,12 +215,12 @@ class UserController extends SimpleController
$message = new TwigMailMessage($this->ci->view, 'mail/password-reset.html.twig');
$message->from($config['address_book.admin'])
- ->addEmailRecipient(new EmailRecipient($user->email, $user->full_name))
- ->addParams([
- 'user' => $user,
- 'token' => $passwordReset->getToken(),
- 'request_date' => Carbon::now()->format('Y-m-d H:i:s')
- ]);
+ ->addEmailRecipient(new EmailRecipient($user->email, $user->full_name))
+ ->addParams([
+ 'user' => $user,
+ 'token' => $passwordReset->getToken(),
+ 'request_date' => Carbon::now()->format('Y-m-d H:i:s')
+ ]);
$this->ci->mailer->send($message);
});
@@ -242,8 +241,7 @@ class UserController extends SimpleController
* This route requires authentication (and should generally be limited to admins or the root user).
* Request type: DELETE
*/
- public function delete($request, $response, $args)
- {
+ public function delete($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user doesn't exist, return 404
@@ -278,7 +276,7 @@ class UserController extends SimpleController
$userName = $user->user_name;
// Begin transaction - DB will be rolled back if an exception occurs
- Capsule::transaction( function() use ($user, $userName, $currentUser) {
+ Capsule::transaction(function () use ($user, $userName, $currentUser) {
$user->delete();
unset($user);
@@ -305,8 +303,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getActivities($request, $response, $args)
- {
+ public function getActivities($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user doesn't exist, return 404
@@ -351,8 +348,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getInfo($request, $response, $args)
- {
+ public function getInfo($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user doesn't exist, return 404
@@ -365,10 +361,10 @@ class UserController extends SimpleController
// Join user's most recent activity
$user = $classMapper->createInstance('user')
- ->where('user_name', $user->user_name)
- ->joinLastActivity()
- ->with('lastActivity', 'group')
- ->first();
+ ->where('user_name', $user->user_name)
+ ->joinLastActivity()
+ ->with('lastActivity', 'group')
+ ->first();
/** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
$authorizer = $this->ci->authorizer;
@@ -397,8 +393,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getList($request, $response, $args)
- {
+ public function getList($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -430,8 +425,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getModalConfirmDelete($request, $response, $args)
- {
+ public function getModalConfirmDelete($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -483,8 +477,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getModalCreate($request, $response, $args)
- {
+ public function getModalCreate($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -534,8 +527,8 @@ class UserController extends SimpleController
// Create a dummy user to prepopulate fields
$data = [
'group_id' => $currentUser->group_id,
- 'locale' => $config['site.registration.user_defaults.locale'],
- 'theme' => ''
+ 'locale' => $config['site.registration.user_defaults.locale'],
+ 'theme' => ''
];
$user = $classMapper->createInstance('user', $data);
@@ -555,7 +548,7 @@ class UserController extends SimpleController
'submit_text' => $translator->translate('CREATE')
],
'page' => [
- 'validators' => $validator->rules('json', false)
+ 'validators' => $validator->rules('json', FALSE)
]
]);
}
@@ -567,8 +560,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getModalEdit($request, $response, $args)
- {
+ public function getModalEdit($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -642,7 +634,7 @@ class UserController extends SimpleController
'submit_text' => $translator->translate('UPDATE')
],
'page' => [
- 'validators' => $validator->rules('json', false)
+ 'validators' => $validator->rules('json', FALSE)
]
]);
}
@@ -654,8 +646,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getModalEditPassword($request, $response, $args)
- {
+ public function getModalEditPassword($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -687,7 +678,7 @@ class UserController extends SimpleController
return $this->ci->view->render($response, 'modals/user-set-password.html.twig', [
'user' => $user,
'page' => [
- 'validators' => $validator->rules('json', false)
+ 'validators' => $validator->rules('json', FALSE)
]
]);
}
@@ -699,8 +690,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getModalEditRoles($request, $response, $args)
- {
+ public function getModalEditRoles($request, $response, $args) {
// GET parameters
$params = $request->getQueryParams();
@@ -737,8 +727,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getPermissions($request, $response, $args)
- {
+ public function getPermissions($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user doesn't exist, return 404
@@ -782,8 +771,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function getRoles($request, $response, $args)
- {
+ public function getRoles($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user doesn't exist, return 404
@@ -830,8 +818,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function pageInfo($request, $response, $args)
- {
+ public function pageInfo($request, $response, $args) {
$user = $this->getUserFromParams($args);
// If the user no longer exists, forward to main user listing page
@@ -848,8 +835,8 @@ class UserController extends SimpleController
// Access-controlled page
if (!$authorizer->checkAccess($currentUser, 'uri_user', [
- 'user' => $user
- ])) {
+ 'user' => $user
+ ])) {
throw new ForbiddenException();
}
@@ -960,8 +947,7 @@ class UserController extends SimpleController
* This page requires authentication.
* Request type: GET
*/
- public function pageList($request, $response, $args)
- {
+ public function pageList($request, $response, $args) {
/** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
$authorizer = $this->ci->authorizer;
@@ -986,8 +972,7 @@ class UserController extends SimpleController
* This route requires authentication.
* Request type: PUT
*/
- public function updateInfo($request, $response, $args)
- {
+ public function updateInfo($request, $response, $args) {
// Get the username from the URL
$user = $this->getUserFromParams($args);
@@ -1011,13 +996,13 @@ class UserController extends SimpleController
$transformer = new RequestDataTransformer($schema);
$data = $transformer->transform($params);
- $error = false;
+ $error = FALSE;
// Validate request data
$validator = new ServerSideValidator($schema, $this->ci->translator);
if (!$validator->validate($data)) {
$ms->addValidationErrors($validator);
- $error = true;
+ $error = TRUE;
}
// Determine targeted fields
@@ -1064,7 +1049,7 @@ class UserController extends SimpleController
$classMapper->staticMethod('user', 'findUnique', $data['email'], 'email')
) {
$ms->addMessageTranslated('danger', 'EMAIL.IN_USE', $data);
- $error = true;
+ $error = TRUE;
}
if ($error) {
@@ -1072,7 +1057,7 @@ class UserController extends SimpleController
}
// Begin transaction - DB will be rolled back if an exception occurs
- Capsule::transaction( function() use ($data, $user, $currentUser) {
+ Capsule::transaction(function () use ($data, $user, $currentUser) {
// Update the user and generate success messages
foreach ($data as $name => $value) {
if ($value != $user->$name) {
@@ -1106,8 +1091,7 @@ class UserController extends SimpleController
* This route requires authentication.
* Request type: PUT
*/
- public function updateField($request, $response, $args)
- {
+ public function updateField($request, $response, $args) {
// Get the username from the URL
$user = $this->getUserFromParams($args);
@@ -1168,7 +1152,7 @@ class UserController extends SimpleController
// TODO: encapsulate the communication of error messages from ServerSideValidator to the BadRequestException
$e = new BadRequestException();
foreach ($validator->errors() as $idx => $field) {
- foreach($field as $eidx => $error) {
+ foreach ($field as $eidx => $error) {
$e->addUserMessage($error);
}
}
@@ -1204,7 +1188,7 @@ class UserController extends SimpleController
}
// Begin transaction - DB will be rolled back if an exception occurs
- Capsule::transaction( function() use ($fieldName, $fieldValue, $user, $currentUser) {
+ Capsule::transaction(function () use ($fieldName, $fieldValue, $user, $currentUser) {
if ($fieldName == 'roles') {
$newRoles = collect($fieldValue)->pluck('role_id')->all();
$user->roles()->sync($newRoles);
@@ -1244,8 +1228,7 @@ class UserController extends SimpleController
return $response->withStatus(200);
}
- protected function getUserFromParams($params)
- {
+ protected function getUserFromParams($params) {
// Load the request schema
$schema = new RequestSchema('schema://requests/user/get-by-username.yaml');
@@ -1259,7 +1242,7 @@ class UserController extends SimpleController
// TODO: encapsulate the communication of error messages from ServerSideValidator to the BadRequestException
$e = new BadRequestException();
foreach ($validator->errors() as $idx => $field) {
- foreach($field as $eidx => $error) {
+ foreach ($field as $eidx => $error) {
$e->addUserMessage($error);
}
}
diff --git a/login/app/sprinkles/admin/templates/navigation/sidebar-menu.html.twig b/login/app/sprinkles/admin/templates/navigation/sidebar-menu.html.twig
index e6d4a7c..bde2674 100755
--- a/login/app/sprinkles/admin/templates/navigation/sidebar-menu.html.twig
+++ b/login/app/sprinkles/admin/templates/navigation/sidebar-menu.html.twig
@@ -35,4 +35,9 @@
{{ translate("GROUP", 2) }}
{% endif %}
+ {% if checkAccess('update_site_config') %}
+
+ {{ translate("SITE.CONFIG.MANAGER") }}
+
+ {% endif %}
{% endblock %}
\ No newline at end of file
diff --git a/login/app/sprinkles/core/assets/userfrosting/css/AdminLTE.css b/login/app/sprinkles/core/assets/userfrosting/css/AdminLTE.css
index 103689d..38fe523 100755
--- a/login/app/sprinkles/core/assets/userfrosting/css/AdminLTE.css
+++ b/login/app/sprinkles/core/assets/userfrosting/css/AdminLTE.css
@@ -1,4 +1,5 @@
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
+
/*!
* AdminLTE v2.3.6
* Author: Almsaeed Studio
@@ -12,44 +13,52 @@
*/
html,
body {
- min-height: 100%;
+ min-height: 100%;
}
+
.layout-boxed html,
.layout-boxed body {
- height: 100%;
+ height: 100%;
}
+
body {
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
- font-weight: 400;
- overflow-x: hidden;
- overflow-y: auto;
-}
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-weight: 400;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
/* Layout */
.wrapper {
- min-height: 100%;
- position: relative;
- overflow: hidden;
+ min-height: 100%;
+ position: relative;
+ overflow: hidden;
}
+
.wrapper:before,
.wrapper:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.wrapper:after {
- clear: both;
+ clear: both;
}
+
.layout-boxed .wrapper {
- max-width: 1250px;
- margin: 0 auto;
- min-height: 100%;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
- position: relative;
+ max-width: 1250px;
+ margin: 0 auto;
+ min-height: 100%;
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
+ position: relative;
}
+
.layout-boxed {
- background: url('../img/boxed-bg.jpg') repeat fixed;
+ background: url('../img/boxed-bg.jpg') repeat fixed;
}
+
/*
* Content Wrapper - contains the main content
* ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ```
@@ -57,78 +66,90 @@ body {
.content-wrapper,
.right-side,
.main-footer {
- -webkit-transition: -webkit-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
- -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
- -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
- transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out;
- margin-left: 230px;
- z-index: 820;
-}
+ -webkit-transition: -webkit-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
+ -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
+ -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out;
+ margin-left: 230px;
+ z-index: 820;
+}
+
.layout-top-nav .content-wrapper,
.layout-top-nav .right-side,
.layout-top-nav .main-footer {
- margin-left: 0;
+ margin-left: 0;
}
+
@media (max-width: 767px) {
- .content-wrapper,
- .right-side,
- .main-footer {
- margin-left: 0;
- }
+ .content-wrapper,
+ .right-side,
+ .main-footer {
+ margin-left: 0;
+ }
}
+
@media (min-width: 768px) {
- .sidebar-collapse .content-wrapper,
- .sidebar-collapse .right-side,
- .sidebar-collapse .main-footer {
- margin-left: 0;
- }
+ .sidebar-collapse .content-wrapper,
+ .sidebar-collapse .right-side,
+ .sidebar-collapse .main-footer {
+ margin-left: 0;
+ }
}
+
@media (max-width: 767px) {
- .sidebar-open .content-wrapper,
- .sidebar-open .right-side,
- .sidebar-open .main-footer {
- -webkit-transform: translate(230px, 0);
- -ms-transform: translate(230px, 0);
- -o-transform: translate(230px, 0);
- transform: translate(230px, 0);
- }
-}
+ .sidebar-open .content-wrapper,
+ .sidebar-open .right-side,
+ .sidebar-open .main-footer {
+ -webkit-transform: translate(230px, 0);
+ -ms-transform: translate(230px, 0);
+ -o-transform: translate(230px, 0);
+ transform: translate(230px, 0);
+ }
+}
+
.content-wrapper,
.right-side {
- min-height: 100%;
- background-color: #ecf0f5;
- z-index: 800;
+ min-height: 100%;
+ background-color: #ecf0f5;
+ z-index: 800;
}
+
.main-footer {
- background: #fff;
- padding: 15px;
- color: #444;
- border-top: 1px solid #d2d6de;
+ background: #fff;
+ padding: 15px;
+ color: #444;
+ border-top: 1px solid #d2d6de;
}
+
/* Fixed layout */
.fixed .main-header,
.fixed .main-sidebar,
.fixed .left-side {
- position: fixed;
+ position: fixed;
}
+
.fixed .main-header {
- top: 0;
- right: 0;
- left: 0;
+ top: 0;
+ right: 0;
+ left: 0;
}
+
.fixed .content-wrapper,
.fixed .right-side {
- padding-top: 50px;
+ padding-top: 50px;
}
+
@media (max-width: 767px) {
- .fixed .content-wrapper,
- .fixed .right-side {
- padding-top: 100px;
- }
+ .fixed .content-wrapper,
+ .fixed .right-side {
+ padding-top: 100px;
+ }
}
+
.fixed.layout-boxed .wrapper {
- max-width: 100%;
+ max-width: 100%;
}
+
body.hold-transition .content-wrapper,
body.hold-transition .right-side,
body.hold-transition .main-footer,
@@ -136,20 +157,22 @@ body.hold-transition .main-sidebar,
body.hold-transition .left-side,
body.hold-transition .main-header .navbar,
body.hold-transition .main-header .logo {
- /* Fix for IE */
- -webkit-transition: none;
- -o-transition: none;
- transition: none;
+ /* Fix for IE */
+ -webkit-transition: none;
+ -o-transition: none;
+ transition: none;
}
+
/* Content */
.content {
- min-height: 250px;
- padding: 15px;
- margin-right: auto;
- margin-left: auto;
- padding-left: 15px;
- padding-right: 15px;
-}
+ min-height: 250px;
+ padding: 15px;
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
/* H1 - H6 font */
h1,
h2,
@@ -163,2264 +186,2710 @@ h6,
.h4,
.h5,
.h6 {
- font-family: 'Source Sans Pro', sans-serif;
+ font-family: 'Source Sans Pro', sans-serif;
}
+
/* General Links */
a {
- color: #3c8dbc;
+ color: #3c8dbc;
}
+
a:hover,
a:active,
a:focus {
- outline: none;
- text-decoration: none;
- color: #72afd2;
+ outline: none;
+ text-decoration: none;
+ color: #72afd2;
}
+
/* Page Header */
.page-header {
- margin: 10px 0 20px 0;
- font-size: 22px;
+ margin: 10px 0 20px 0;
+ font-size: 22px;
}
+
.page-header > small {
- color: #666;
- display: block;
- margin-top: 5px;
+ color: #666;
+ display: block;
+ margin-top: 5px;
}
+
/*
* Component: Main Header
* ----------------------
*/
.main-header {
- position: relative;
- max-height: 100px;
- z-index: 1030;
+ position: relative;
+ max-height: 100px;
+ z-index: 1030;
}
+
.main-header .navbar {
- -webkit-transition: margin-left 0.3s ease-in-out;
- -o-transition: margin-left 0.3s ease-in-out;
- transition: margin-left 0.3s ease-in-out;
- margin-bottom: 0;
- margin-left: 230px;
- border: none;
- min-height: 50px;
- border-radius: 0;
-}
+ -webkit-transition: margin-left 0.3s ease-in-out;
+ -o-transition: margin-left 0.3s ease-in-out;
+ transition: margin-left 0.3s ease-in-out;
+ margin-bottom: 0;
+ margin-left: 230px;
+ border: none;
+ min-height: 50px;
+ border-radius: 0;
+}
+
.layout-top-nav .main-header .navbar {
- margin-left: 0;
+ margin-left: 0;
}
+
.main-header #navbar-search-input.form-control {
- background: rgba(255, 255, 255, 0.2);
- border-color: transparent;
+ background: rgba(255, 255, 255, 0.2);
+ border-color: transparent;
}
+
.main-header #navbar-search-input.form-control:focus,
.main-header #navbar-search-input.form-control:active {
- border-color: rgba(0, 0, 0, 0.1);
- background: rgba(255, 255, 255, 0.9);
+ border-color: rgba(0, 0, 0, 0.1);
+ background: rgba(255, 255, 255, 0.9);
}
+
.main-header #navbar-search-input.form-control::-moz-placeholder {
- color: #ccc;
- opacity: 1;
+ color: #ccc;
+ opacity: 1;
}
+
.main-header #navbar-search-input.form-control:-ms-input-placeholder {
- color: #ccc;
+ color: #ccc;
}
+
.main-header #navbar-search-input.form-control::-webkit-input-placeholder {
- color: #ccc;
+ color: #ccc;
}
+
.main-header .navbar-custom-menu,
.main-header .navbar-right {
- float: right;
+ float: right;
}
+
@media (max-width: 991px) {
- .main-header .navbar-custom-menu a,
- .main-header .navbar-right a {
- color: inherit;
- background: transparent;
- }
+ .main-header .navbar-custom-menu a,
+ .main-header .navbar-right a {
+ color: inherit;
+ background: transparent;
+ }
}
+
@media (max-width: 767px) {
- .main-header .navbar-right {
- float: none;
- }
- .navbar-collapse .main-header .navbar-right {
- margin: 7.5px -15px;
- }
- .main-header .navbar-right > li {
- color: inherit;
- border: 0;
- }
-}
+ .main-header .navbar-right {
+ float: none;
+ }
+
+ .navbar-collapse .main-header .navbar-right {
+ margin: 7.5px -15px;
+ }
+
+ .main-header .navbar-right > li {
+ color: inherit;
+ border: 0;
+ }
+}
+
.main-header .sidebar-toggle {
- float: left;
- background-color: transparent;
- background-image: none;
- padding: 15px 15px;
- font-family: fontAwesome;
+ float: left;
+ background-color: transparent;
+ background-image: none;
+ padding: 15px 15px;
+ font-family: fontAwesome;
}
+
.main-header .sidebar-toggle:before {
- content: "\f0c9";
+ content: "\f0c9";
}
+
.main-header .sidebar-toggle:hover {
- color: #fff;
+ color: #fff;
}
+
.main-header .sidebar-toggle:focus,
.main-header .sidebar-toggle:active {
- background: transparent;
+ background: transparent;
}
+
.main-header .sidebar-toggle .icon-bar {
- display: none;
+ display: none;
}
+
.main-header .navbar .nav > li.user > a > .fa,
.main-header .navbar .nav > li.user > a > .glyphicon,
.main-header .navbar .nav > li.user > a > .ion {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.main-header .navbar .nav > li > a > .label {
- position: absolute;
- top: 9px;
- right: 7px;
- text-align: center;
- font-size: 9px;
- padding: 2px 3px;
- line-height: .9;
+ position: absolute;
+ top: 9px;
+ right: 7px;
+ text-align: center;
+ font-size: 9px;
+ padding: 2px 3px;
+ line-height: .9;
}
+
.main-header .logo {
- -webkit-transition: width 0.3s ease-in-out;
- -o-transition: width 0.3s ease-in-out;
- transition: width 0.3s ease-in-out;
- display: block;
- float: left;
- height: 50px;
- font-size: 20px;
- line-height: 50px;
- text-align: center;
- width: 230px;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- padding: 0 15px;
- font-weight: 300;
- overflow: hidden;
+ -webkit-transition: width 0.3s ease-in-out;
+ -o-transition: width 0.3s ease-in-out;
+ transition: width 0.3s ease-in-out;
+ display: block;
+ float: left;
+ height: 50px;
+ font-size: 20px;
+ line-height: 50px;
+ text-align: center;
+ width: 230px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ padding: 0 15px;
+ font-weight: 300;
+ overflow: hidden;
}
+
.main-header .logo .logo-lg {
- display: block;
+ display: block;
}
+
.main-header .logo .logo-mini {
- display: none;
+ display: none;
}
+
.main-header .navbar-brand {
- color: #fff;
+ color: #fff;
}
+
.content-header {
- position: relative;
- padding: 15px 15px 0 15px;
+ position: relative;
+ padding: 15px 15px 0 15px;
}
+
.content-header > h1 {
- margin: 0;
- font-size: 24px;
+ margin: 0;
+ font-size: 24px;
}
+
.content-header > h1 > small {
- font-size: 15px;
- display: inline-block;
- padding-left: 4px;
- font-weight: 300;
+ font-size: 15px;
+ display: inline-block;
+ padding-left: 4px;
+ font-weight: 300;
}
+
.content-header > .breadcrumb {
- float: right;
- background: transparent;
- margin-top: 0;
- margin-bottom: 0;
- font-size: 12px;
- padding: 7px 5px;
- position: absolute;
- top: 15px;
- right: 10px;
- border-radius: 2px;
+ float: right;
+ background: transparent;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 12px;
+ padding: 7px 5px;
+ position: absolute;
+ top: 15px;
+ right: 10px;
+ border-radius: 2px;
}
+
.content-header > .breadcrumb > li > a {
- color: #444;
- text-decoration: none;
- display: inline-block;
+ color: #444;
+ text-decoration: none;
+ display: inline-block;
}
+
.content-header > .breadcrumb > li > a > .fa,
.content-header > .breadcrumb > li > a > .glyphicon,
.content-header > .breadcrumb > li > a > .ion {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.content-header > .breadcrumb > li + li:before {
- content: '>\00a0';
+ content: '>\00a0';
}
+
@media (max-width: 991px) {
- .content-header > .breadcrumb {
- position: relative;
- margin-top: 5px;
- top: 0;
- right: 0;
- float: none;
- background: #d2d6de;
- padding-left: 10px;
- }
- .content-header > .breadcrumb li:before {
- color: #97a0b3;
- }
-}
+ .content-header > .breadcrumb {
+ position: relative;
+ margin-top: 5px;
+ top: 0;
+ right: 0;
+ float: none;
+ background: #d2d6de;
+ padding-left: 10px;
+ }
+
+ .content-header > .breadcrumb li:before {
+ color: #97a0b3;
+ }
+}
+
.navbar-toggle {
- color: #fff;
- border: 0;
- margin: 0;
- padding: 15px 15px;
-}
-@media (max-width: 991px) {
- .navbar-custom-menu .navbar-nav > li {
- float: left;
- }
- .navbar-custom-menu .navbar-nav {
+ color: #fff;
+ border: 0;
margin: 0;
- float: left;
- }
- .navbar-custom-menu .navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
- line-height: 20px;
- }
+ padding: 15px 15px;
}
+
+@media (max-width: 991px) {
+ .navbar-custom-menu .navbar-nav > li {
+ float: left;
+ }
+
+ .navbar-custom-menu .navbar-nav {
+ margin: 0;
+ float: left;
+ }
+
+ .navbar-custom-menu .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ line-height: 20px;
+ }
+}
+
@media (max-width: 767px) {
- .main-header {
- position: relative;
- }
- .main-header .logo,
- .main-header .navbar {
- width: 100%;
- float: none;
- }
- .main-header .navbar {
- margin: 0;
- }
- .main-header .navbar-custom-menu {
- float: right;
- }
-}
+ .main-header {
+ position: relative;
+ }
+
+ .main-header .logo,
+ .main-header .navbar {
+ width: 100%;
+ float: none;
+ }
+
+ .main-header .navbar {
+ margin: 0;
+ }
+
+ .main-header .navbar-custom-menu {
+ float: right;
+ }
+}
+
@media (max-width: 991px) {
- .navbar-collapse.pull-left {
- float: none !important;
- }
- .navbar-collapse.pull-left + .navbar-custom-menu {
- display: block;
- position: absolute;
- top: 0;
- right: 40px;
- }
-}
+ .navbar-collapse.pull-left {
+ float: none !important;
+ }
+
+ .navbar-collapse.pull-left + .navbar-custom-menu {
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 40px;
+ }
+}
+
/*
* Component: Sidebar
* ------------------
*/
.main-sidebar,
.left-side {
- position: absolute;
- top: 0;
- left: 0;
- padding-top: 50px;
- min-height: 100%;
- width: 230px;
- z-index: 810;
- -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out;
- -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out;
- -o-transition: -o-transform 0.3s ease-in-out, width 0.3s ease-in-out;
- transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;
-}
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding-top: 50px;
+ min-height: 100%;
+ width: 230px;
+ z-index: 810;
+ -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out;
+ -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out;
+ -o-transition: -o-transform 0.3s ease-in-out, width 0.3s ease-in-out;
+ transition: transform 0.3s ease-in-out, width 0.3s ease-in-out;
+}
+
@media (max-width: 767px) {
- .main-sidebar,
- .left-side {
- padding-top: 100px;
- }
+ .main-sidebar,
+ .left-side {
+ padding-top: 100px;
+ }
}
+
@media (max-width: 767px) {
- .main-sidebar,
- .left-side {
- -webkit-transform: translate(-230px, 0);
- -ms-transform: translate(-230px, 0);
- -o-transform: translate(-230px, 0);
- transform: translate(-230px, 0);
- }
-}
+ .main-sidebar,
+ .left-side {
+ -webkit-transform: translate(-230px, 0);
+ -ms-transform: translate(-230px, 0);
+ -o-transform: translate(-230px, 0);
+ transform: translate(-230px, 0);
+ }
+}
+
@media (min-width: 768px) {
- .sidebar-collapse .main-sidebar,
- .sidebar-collapse .left-side {
- -webkit-transform: translate(-230px, 0);
- -ms-transform: translate(-230px, 0);
- -o-transform: translate(-230px, 0);
- transform: translate(-230px, 0);
- }
-}
+ .sidebar-collapse .main-sidebar,
+ .sidebar-collapse .left-side {
+ -webkit-transform: translate(-230px, 0);
+ -ms-transform: translate(-230px, 0);
+ -o-transform: translate(-230px, 0);
+ transform: translate(-230px, 0);
+ }
+}
+
@media (max-width: 767px) {
- .sidebar-open .main-sidebar,
- .sidebar-open .left-side {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
- }
-}
+ .sidebar-open .main-sidebar,
+ .sidebar-open .left-side {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+ }
+}
+
.sidebar {
- padding-bottom: 10px;
+ padding-bottom: 10px;
}
+
.sidebar-form input:focus {
- border-color: transparent;
+ border-color: transparent;
}
+
.user-panel {
- position: relative;
- width: 100%;
- padding: 10px;
- overflow: hidden;
+ position: relative;
+ width: 100%;
+ padding: 10px;
+ overflow: hidden;
}
+
.user-panel:before,
.user-panel:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.user-panel:after {
- clear: both;
+ clear: both;
}
+
.user-panel > .image > img {
- width: 100%;
- max-width: 45px;
- height: auto;
+ width: 100%;
+ max-width: 45px;
+ height: auto;
}
+
.user-panel > .info {
- padding: 5px 5px 5px 15px;
- line-height: 1;
- position: absolute;
- left: 55px;
+ padding: 5px 5px 5px 15px;
+ line-height: 1;
+ position: absolute;
+ left: 55px;
}
+
.user-panel > .info > p {
- font-weight: 600;
- margin-bottom: 9px;
+ font-weight: 600;
+ margin-bottom: 9px;
}
+
.user-panel > .info > a {
- text-decoration: none;
- padding-right: 5px;
- margin-top: 3px;
- font-size: 11px;
+ text-decoration: none;
+ padding-right: 5px;
+ margin-top: 3px;
+ font-size: 11px;
}
+
.user-panel > .info > a > .fa,
.user-panel > .info > a > .ion,
.user-panel > .info > a > .glyphicon {
- margin-right: 3px;
+ margin-right: 3px;
}
+
.sidebar-menu {
- list-style: none;
- margin: 0;
- padding: 0;
+ list-style: none;
+ margin: 0;
+ padding: 0;
}
+
.sidebar-menu > li {
- position: relative;
- margin: 0;
- padding: 0;
+ position: relative;
+ margin: 0;
+ padding: 0;
}
+
.sidebar-menu > li > a {
- padding: 12px 5px 12px 15px;
- display: block;
+ padding: 12px 5px 12px 15px;
+ display: block;
}
+
.sidebar-menu > li > a > .fa,
.sidebar-menu > li > a > .glyphicon,
.sidebar-menu > li > a > .ion {
- width: 20px;
+ width: 20px;
}
+
.sidebar-menu > li .label,
.sidebar-menu > li .badge {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.sidebar-menu > li .badge {
- margin-top: 3px;
+ margin-top: 3px;
}
+
.sidebar-menu li.header {
- padding: 10px 25px 10px 15px;
- font-size: 12px;
+ padding: 10px 25px 10px 15px;
+ font-size: 12px;
}
+
.sidebar-menu li > a > .fa-angle-left,
.sidebar-menu li > a > .pull-right-container > .fa-angle-left {
- width: auto;
- height: auto;
- padding: 0;
- margin-right: 10px;
+ width: auto;
+ height: auto;
+ padding: 0;
+ margin-right: 10px;
}
+
.sidebar-menu li.active > a > .fa-angle-left,
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left {
- -webkit-transform: rotate(-90deg);
- -ms-transform: rotate(-90deg);
- -o-transform: rotate(-90deg);
- transform: rotate(-90deg);
+ -webkit-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ -o-transform: rotate(-90deg);
+ transform: rotate(-90deg);
}
+
.sidebar-menu li.active > .treeview-menu {
- display: block;
+ display: block;
}
+
.sidebar-menu .treeview-menu {
- display: none;
- list-style: none;
- padding: 0;
- margin: 0;
- padding-left: 5px;
+ display: none;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ padding-left: 5px;
}
+
.sidebar-menu .treeview-menu .treeview-menu {
- padding-left: 20px;
+ padding-left: 20px;
}
+
.sidebar-menu .treeview-menu > li {
- margin: 0;
+ margin: 0;
}
+
.sidebar-menu .treeview-menu > li > a {
- padding: 5px 5px 5px 15px;
- display: block;
- font-size: 14px;
+ padding: 5px 5px 5px 15px;
+ display: block;
+ font-size: 14px;
}
+
.sidebar-menu .treeview-menu > li > a > .fa,
.sidebar-menu .treeview-menu > li > a > .glyphicon,
.sidebar-menu .treeview-menu > li > a > .ion {
- width: 20px;
+ width: 20px;
}
+
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .pull-right-container > .fa-angle-down,
.sidebar-menu .treeview-menu > li > a > .fa-angle-left,
.sidebar-menu .treeview-menu > li > a > .fa-angle-down {
- width: auto;
+ width: auto;
}
+
/*
* Component: Sidebar Mini
*/
@media (min-width: 768px) {
- .sidebar-mini.sidebar-collapse .content-wrapper,
- .sidebar-mini.sidebar-collapse .right-side,
- .sidebar-mini.sidebar-collapse .main-footer {
- margin-left: 50px !important;
- z-index: 840;
- }
- .sidebar-mini.sidebar-collapse .main-sidebar {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
- width: 50px !important;
- z-index: 850;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li {
- position: relative;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > a {
- margin-right: 0;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span {
- border-top-right-radius: 4px;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:not(.treeview) > a > span {
- border-bottom-right-radius: 4px;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
- padding-top: 5px;
- padding-bottom: 5px;
- border-bottom-right-radius: 4px;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
- display: block !important;
- position: absolute;
- width: 180px;
- left: 50px;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {
- top: 0;
- margin-left: -3px;
- padding: 12px 5px 12px 20px;
- background-color: inherit;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
- float: right;
- width: auto!important;
- left: 200px!important;
- top: 10px!important;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
- display: none;
- }
- .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
- top: 44px;
- margin-left: 0;
- }
- .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info,
- .sidebar-mini.sidebar-collapse .sidebar-form,
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu,
- .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right,
- .sidebar-mini.sidebar-collapse .sidebar-menu li.header {
- display: none !important;
- -webkit-transform: translateZ(0);
- }
- .sidebar-mini.sidebar-collapse .main-header .logo {
- width: 50px;
- }
- .sidebar-mini.sidebar-collapse .main-header .logo > .logo-mini {
- display: block;
- margin-left: -15px;
- margin-right: -15px;
- font-size: 18px;
- }
- .sidebar-mini.sidebar-collapse .main-header .logo > .logo-lg {
- display: none;
- }
- .sidebar-mini.sidebar-collapse .main-header .navbar {
- margin-left: 50px;
- }
-}
+ .sidebar-mini.sidebar-collapse .content-wrapper,
+ .sidebar-mini.sidebar-collapse .right-side,
+ .sidebar-mini.sidebar-collapse .main-footer {
+ margin-left: 50px !important;
+ z-index: 840;
+ }
+
+ .sidebar-mini.sidebar-collapse .main-sidebar {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+ width: 50px !important;
+ z-index: 850;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li {
+ position: relative;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > a {
+ margin-right: 0;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span {
+ border-top-right-radius: 4px;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:not(.treeview) > a > span {
+ border-bottom-right-radius: 4px;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
+ padding-top: 5px;
+ padding-bottom: 5px;
+ border-bottom-right-radius: 4px;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span:not(.pull-right),
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
+ display: block !important;
+ position: absolute;
+ width: 180px;
+ left: 50px;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > span {
+ top: 0;
+ margin-left: -3px;
+ padding: 12px 5px 12px 20px;
+ background-color: inherit;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
+ float: right;
+ width: auto !important;
+ left: 200px !important;
+ top: 10px !important;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container > .label:not(:first-of-type) {
+ display: none;
+ }
+
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > .treeview-menu {
+ top: 44px;
+ margin-left: 0;
+ }
+
+ .sidebar-mini.sidebar-collapse .main-sidebar .user-panel > .info,
+ .sidebar-mini.sidebar-collapse .sidebar-form,
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > span,
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu,
+ .sidebar-mini.sidebar-collapse .sidebar-menu > li > a > .pull-right,
+ .sidebar-mini.sidebar-collapse .sidebar-menu li.header {
+ display: none !important;
+ -webkit-transform: translateZ(0);
+ }
+
+ .sidebar-mini.sidebar-collapse .main-header .logo {
+ width: 50px;
+ }
+
+ .sidebar-mini.sidebar-collapse .main-header .logo > .logo-mini {
+ display: block;
+ margin-left: -15px;
+ margin-right: -15px;
+ font-size: 18px;
+ }
+
+ .sidebar-mini.sidebar-collapse .main-header .logo > .logo-lg {
+ display: none;
+ }
+
+ .sidebar-mini.sidebar-collapse .main-header .navbar {
+ margin-left: 50px;
+ }
+}
+
.sidebar-menu,
.main-sidebar .user-panel,
.sidebar-menu > li.header {
- white-space: nowrap;
- overflow: hidden;
+ white-space: nowrap;
+ overflow: hidden;
}
+
.sidebar-menu:hover {
- overflow: visible;
+ overflow: visible;
}
+
.sidebar-form,
.sidebar-menu > li.header {
- overflow: hidden;
- text-overflow: clip;
+ overflow: hidden;
+ text-overflow: clip;
}
+
.sidebar-menu li > a {
- position: relative;
+ position: relative;
}
+
.sidebar-menu li > a > .pull-right-container {
- position: absolute;
- right: 10px;
- top: 50%;
- margin-top: -7px;
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ margin-top: -7px;
}
+
/*
* Component: Control sidebar. By default, this is the right sidebar.
*/
.control-sidebar-bg {
- position: fixed;
- z-index: 1000;
- bottom: 0;
+ position: fixed;
+ z-index: 1000;
+ bottom: 0;
}
+
.control-sidebar-bg,
.control-sidebar {
- top: 0;
- right: -230px;
- width: 230px;
- -webkit-transition: right 0.3s ease-in-out;
- -o-transition: right 0.3s ease-in-out;
- transition: right 0.3s ease-in-out;
+ top: 0;
+ right: -230px;
+ width: 230px;
+ -webkit-transition: right 0.3s ease-in-out;
+ -o-transition: right 0.3s ease-in-out;
+ transition: right 0.3s ease-in-out;
}
+
.control-sidebar {
- position: absolute;
- padding-top: 50px;
- z-index: 1010;
+ position: absolute;
+ padding-top: 50px;
+ z-index: 1010;
}
+
@media (max-width: 768px) {
- .control-sidebar {
- padding-top: 100px;
- }
+ .control-sidebar {
+ padding-top: 100px;
+ }
}
+
.control-sidebar > .tab-content {
- padding: 10px 15px;
+ padding: 10px 15px;
}
+
.control-sidebar.control-sidebar-open,
.control-sidebar.control-sidebar-open + .control-sidebar-bg {
- right: 0;
+ right: 0;
}
+
.control-sidebar-open .control-sidebar-bg,
.control-sidebar-open .control-sidebar {
- right: 0;
+ right: 0;
}
+
@media (min-width: 768px) {
- .control-sidebar-open .content-wrapper,
- .control-sidebar-open .right-side,
- .control-sidebar-open .main-footer {
- margin-right: 230px;
- }
+ .control-sidebar-open .content-wrapper,
+ .control-sidebar-open .right-side,
+ .control-sidebar-open .main-footer {
+ margin-right: 230px;
+ }
}
+
.nav-tabs.control-sidebar-tabs > li:first-of-type > a,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:hover,
.nav-tabs.control-sidebar-tabs > li:first-of-type > a:focus {
- border-left-width: 0;
+ border-left-width: 0;
}
+
.nav-tabs.control-sidebar-tabs > li > a {
- border-radius: 0;
+ border-radius: 0;
}
+
.nav-tabs.control-sidebar-tabs > li > a,
.nav-tabs.control-sidebar-tabs > li > a:hover {
- border-top: none;
- border-right: none;
- border-left: 1px solid transparent;
- border-bottom: 1px solid transparent;
+ border-top: none;
+ border-right: none;
+ border-left: 1px solid transparent;
+ border-bottom: 1px solid transparent;
}
+
.nav-tabs.control-sidebar-tabs > li > a .icon {
- font-size: 16px;
+ font-size: 16px;
}
+
.nav-tabs.control-sidebar-tabs > li.active > a,
.nav-tabs.control-sidebar-tabs > li.active > a:hover,
.nav-tabs.control-sidebar-tabs > li.active > a:focus,
.nav-tabs.control-sidebar-tabs > li.active > a:active {
- border-top: none;
- border-right: none;
- border-bottom: none;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
}
+
@media (max-width: 768px) {
- .nav-tabs.control-sidebar-tabs {
- display: table;
- }
- .nav-tabs.control-sidebar-tabs > li {
- display: table-cell;
- }
-}
+ .nav-tabs.control-sidebar-tabs {
+ display: table;
+ }
+
+ .nav-tabs.control-sidebar-tabs > li {
+ display: table-cell;
+ }
+}
+
.control-sidebar-heading {
- font-weight: 400;
- font-size: 16px;
- padding: 10px 0;
- margin-bottom: 10px;
+ font-weight: 400;
+ font-size: 16px;
+ padding: 10px 0;
+ margin-bottom: 10px;
}
+
.control-sidebar-subheading {
- display: block;
- font-weight: 400;
- font-size: 14px;
+ display: block;
+ font-weight: 400;
+ font-size: 14px;
}
+
.control-sidebar-menu {
- list-style: none;
- padding: 0;
- margin: 0 -15px;
+ list-style: none;
+ padding: 0;
+ margin: 0 -15px;
}
+
.control-sidebar-menu > li > a {
- display: block;
- padding: 10px 15px;
+ display: block;
+ padding: 10px 15px;
}
+
.control-sidebar-menu > li > a:before,
.control-sidebar-menu > li > a:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.control-sidebar-menu > li > a:after {
- clear: both;
+ clear: both;
}
+
.control-sidebar-menu > li > a > .control-sidebar-subheading {
- margin-top: 0;
+ margin-top: 0;
}
+
.control-sidebar-menu .menu-icon {
- float: left;
- width: 35px;
- height: 35px;
- border-radius: 50%;
- text-align: center;
- line-height: 35px;
+ float: left;
+ width: 35px;
+ height: 35px;
+ border-radius: 50%;
+ text-align: center;
+ line-height: 35px;
}
+
.control-sidebar-menu .menu-info {
- margin-left: 45px;
- margin-top: 3px;
+ margin-left: 45px;
+ margin-top: 3px;
}
+
.control-sidebar-menu .menu-info > .control-sidebar-subheading {
- margin: 0;
+ margin: 0;
}
+
.control-sidebar-menu .menu-info > p {
- margin: 0;
- font-size: 11px;
+ margin: 0;
+ font-size: 11px;
}
+
.control-sidebar-menu .progress {
- margin: 0;
+ margin: 0;
}
+
.control-sidebar-dark {
- color: #b8c7ce;
+ color: #b8c7ce;
}
+
.control-sidebar-dark,
.control-sidebar-dark + .control-sidebar-bg {
- background: #222d32;
+ background: #222d32;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs {
- border-bottom: #1c2529;
+ border-bottom: #1c2529;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a {
- background: #181f23;
- color: #b8c7ce;
+ background: #181f23;
+ color: #b8c7ce;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus {
- border-left-color: #141a1d;
- border-bottom-color: #141a1d;
+ border-left-color: #141a1d;
+ border-bottom-color: #141a1d;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:focus,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:active {
- background: #1c2529;
+ background: #1c2529;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li > a:hover {
- color: #fff;
+ color: #fff;
}
+
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:hover,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:focus,
.control-sidebar-dark .nav-tabs.control-sidebar-tabs > li.active > a:active {
- background: #222d32;
- color: #fff;
+ background: #222d32;
+ color: #fff;
}
+
.control-sidebar-dark .control-sidebar-heading,
.control-sidebar-dark .control-sidebar-subheading {
- color: #fff;
+ color: #fff;
}
+
.control-sidebar-dark .control-sidebar-menu > li > a:hover {
- background: #1e282c;
+ background: #1e282c;
}
+
.control-sidebar-dark .control-sidebar-menu > li > a .menu-info > p {
- color: #b8c7ce;
+ color: #b8c7ce;
}
+
.control-sidebar-light {
- color: #5e5e5e;
+ color: #5e5e5e;
}
+
.control-sidebar-light,
.control-sidebar-light + .control-sidebar-bg {
- background: #f9fafc;
- border-left: 1px solid #d2d6de;
+ background: #f9fafc;
+ border-left: 1px solid #d2d6de;
}
+
.control-sidebar-light .nav-tabs.control-sidebar-tabs {
- border-bottom: #d2d6de;
+ border-bottom: #d2d6de;
}
+
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a {
- background: #e8ecf4;
- color: #444444;
+ background: #e8ecf4;
+ color: #444444;
}
+
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus {
- border-left-color: #d2d6de;
- border-bottom-color: #d2d6de;
+ border-left-color: #d2d6de;
+ border-bottom-color: #d2d6de;
}
+
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:focus,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li > a:active {
- background: #eff1f7;
+ background: #eff1f7;
}
+
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:hover,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:focus,
.control-sidebar-light .nav-tabs.control-sidebar-tabs > li.active > a:active {
- background: #f9fafc;
- color: #111;
+ background: #f9fafc;
+ color: #111;
}
+
.control-sidebar-light .control-sidebar-heading,
.control-sidebar-light .control-sidebar-subheading {
- color: #111;
+ color: #111;
}
+
.control-sidebar-light .control-sidebar-menu {
- margin-left: -14px;
+ margin-left: -14px;
}
+
.control-sidebar-light .control-sidebar-menu > li > a:hover {
- background: #f4f4f5;
+ background: #f4f4f5;
}
+
.control-sidebar-light .control-sidebar-menu > li > a .menu-info > p {
- color: #5e5e5e;
+ color: #5e5e5e;
}
+
/*
* Component: Dropdown menus
* -------------------------
*/
/*Dropdowns in general*/
.dropdown-menu {
- box-shadow: none;
- border-color: #eee;
+ box-shadow: none;
+ border-color: #eee;
}
+
.dropdown-menu > li > a {
- color: #777;
+ color: #777;
}
+
.dropdown-menu > li > a > .glyphicon,
.dropdown-menu > li > a > .fa,
.dropdown-menu > li > a > .ion {
- margin-right: 10px;
+ margin-right: 10px;
}
+
.dropdown-menu > li > a:hover {
- background-color: #e1e3e9;
- color: #333;
+ background-color: #e1e3e9;
+ color: #333;
}
+
.dropdown-menu > .divider {
- background-color: #eee;
+ background-color: #eee;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu,
.navbar-nav > .messages-menu > .dropdown-menu,
.navbar-nav > .tasks-menu > .dropdown-menu {
- width: 280px;
- padding: 0 0 0 0;
- margin: 0;
- top: 100%;
+ width: 280px;
+ padding: 0 0 0 0;
+ margin: 0;
+ top: 100%;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li,
.navbar-nav > .messages-menu > .dropdown-menu > li,
.navbar-nav > .tasks-menu > .dropdown-menu > li {
- position: relative;
+ position: relative;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li.header,
.navbar-nav > .messages-menu > .dropdown-menu > li.header,
.navbar-nav > .tasks-menu > .dropdown-menu > li.header {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- background-color: #ffffff;
- padding: 7px 10px;
- border-bottom: 1px solid #f4f4f4;
- color: #444444;
- font-size: 14px;
-}
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ background-color: #ffffff;
+ padding: 7px 10px;
+ border-bottom: 1px solid #f4f4f4;
+ color: #444444;
+ font-size: 14px;
+}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a,
.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a,
.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
- font-size: 12px;
- background-color: #fff;
- padding: 7px 10px;
- border-bottom: 1px solid #eeeeee;
- color: #444 !important;
- text-align: center;
-}
-@media (max-width: 991px) {
- .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a,
- .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a,
- .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a {
- background: #fff !important;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+ font-size: 12px;
+ background-color: #fff;
+ padding: 7px 10px;
+ border-bottom: 1px solid #eeeeee;
color: #444 !important;
- }
+ text-align: center;
}
+
+@media (max-width: 991px) {
+ .navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a,
+ .navbar-nav > .messages-menu > .dropdown-menu > li.footer > a,
+ .navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a {
+ background: #fff !important;
+ color: #444 !important;
+ }
+}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover,
.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover,
.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover {
- text-decoration: none;
- font-weight: normal;
+ text-decoration: none;
+ font-weight: normal;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu,
.navbar-nav > .messages-menu > .dropdown-menu > li .menu,
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu {
- max-height: 200px;
- margin: 0;
- padding: 0;
- list-style: none;
- overflow-x: hidden;
+ max-height: 200px;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ overflow-x: hidden;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a,
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a,
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a {
- display: block;
- white-space: nowrap;
- /* Prevent text from breaking */
- border-bottom: 1px solid #f4f4f4;
+ display: block;
+ white-space: nowrap;
+ /* Prevent text from breaking */
+ border-bottom: 1px solid #f4f4f4;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover,
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover,
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover {
- background: #f4f4f4;
- text-decoration: none;
+ background: #f4f4f4;
+ text-decoration: none;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a {
- color: #444444;
- overflow: hidden;
- text-overflow: ellipsis;
- padding: 10px;
+ color: #444444;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding: 10px;
}
+
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon,
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa,
.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion {
- width: 20px;
+ width: 20px;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a {
- margin: 0;
- padding: 10px 10px;
+ margin: 0;
+ padding: 10px 10px;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img {
- margin: auto 10px auto auto;
- width: 40px;
- height: 40px;
+ margin: auto 10px auto auto;
+ width: 40px;
+ height: 40px;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 {
- padding: 0;
- margin: 0 0 0 45px;
- color: #444444;
- font-size: 15px;
- position: relative;
+ padding: 0;
+ margin: 0 0 0 45px;
+ color: #444444;
+ font-size: 15px;
+ position: relative;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small {
- color: #999999;
- font-size: 10px;
- position: absolute;
- top: 0;
- right: 0;
+ color: #999999;
+ font-size: 10px;
+ position: absolute;
+ top: 0;
+ right: 0;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p {
- margin: 0 0 0 45px;
- font-size: 12px;
- color: #888888;
+ margin: 0 0 0 45px;
+ font-size: 12px;
+ color: #888888;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before,
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after {
- clear: both;
+ clear: both;
}
+
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a {
- padding: 10px;
+ padding: 10px;
}
+
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 {
- font-size: 14px;
- padding: 0;
- margin: 0 0 10px 0;
- color: #666666;
+ font-size: 14px;
+ padding: 0;
+ margin: 0 0 10px 0;
+ color: #666666;
}
+
.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress {
- padding: 0;
- margin: 0;
+ padding: 0;
+ margin: 0;
}
+
.navbar-nav > .user-menu > .dropdown-menu {
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- padding: 1px 0 0 0;
- border-top-width: 0;
- width: 280px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+ padding: 1px 0 0 0;
+ border-top-width: 0;
+ width: 280px;
}
+
.navbar-nav > .user-menu > .dropdown-menu,
.navbar-nav > .user-menu > .dropdown-menu > .user-body {
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
}
+
.navbar-nav > .user-menu > .dropdown-menu > li.user-header {
- height: 175px;
- padding: 10px;
- text-align: center;
+ height: 175px;
+ padding: 10px;
+ text-align: center;
}
+
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {
- z-index: 5;
- height: 90px;
- width: 90px;
- border: 3px solid;
- border-color: transparent;
- border-color: rgba(255, 255, 255, 0.2);
-}
+ z-index: 5;
+ height: 90px;
+ width: 90px;
+ border: 3px solid;
+ border-color: transparent;
+ border-color: rgba(255, 255, 255, 0.2);
+}
+
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {
- z-index: 5;
- color: #fff;
- color: rgba(255, 255, 255, 0.8);
- font-size: 17px;
- margin-top: 10px;
+ z-index: 5;
+ color: #fff;
+ color: rgba(255, 255, 255, 0.8);
+ font-size: 17px;
+ margin-top: 10px;
}
+
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {
- display: block;
- font-size: 12px;
+ display: block;
+ font-size: 12px;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-body {
- padding: 15px;
- border-bottom: 1px solid #f4f4f4;
- border-top: 1px solid #dddddd;
+ padding: 15px;
+ border-bottom: 1px solid #f4f4f4;
+ border-top: 1px solid #dddddd;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-body:before,
.navbar-nav > .user-menu > .dropdown-menu > .user-body:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-body:after {
- clear: both;
+ clear: both;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-body a {
- color: #444 !important;
+ color: #444 !important;
}
+
@media (max-width: 991px) {
- .navbar-nav > .user-menu > .dropdown-menu > .user-body a {
- background: #fff !important;
- color: #444 !important;
- }
+ .navbar-nav > .user-menu > .dropdown-menu > .user-body a {
+ background: #fff !important;
+ color: #444 !important;
+ }
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-footer {
- background-color: #f9f9f9;
- padding: 10px;
+ background-color: #f9f9f9;
+ padding: 10px;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-footer:before,
.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-footer:after {
- clear: both;
+ clear: both;
}
+
.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {
- color: #666666;
+ color: #666666;
}
+
@media (max-width: 991px) {
- .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {
- background-color: #f9f9f9;
- }
+ .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {
+ background-color: #f9f9f9;
+ }
}
+
.navbar-nav > .user-menu .user-image {
- float: left;
- width: 25px;
- height: 25px;
- border-radius: 50%;
- margin-right: 10px;
- margin-top: -2px;
+ float: left;
+ width: 25px;
+ height: 25px;
+ border-radius: 50%;
+ margin-right: 10px;
+ margin-top: -2px;
}
+
@media (max-width: 767px) {
- .navbar-nav > .user-menu .user-image {
- float: none;
- margin-right: 0;
- margin-top: -8px;
- line-height: 10px;
- }
-}
+ .navbar-nav > .user-menu .user-image {
+ float: none;
+ margin-right: 0;
+ margin-top: -8px;
+ line-height: 10px;
+ }
+}
+
/* Add fade animation to dropdown menus by appending
the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/
.open:not(.dropup) > .animated-dropdown-menu {
- backface-visibility: visible !important;
- -webkit-animation: flipInX 0.7s both;
- -o-animation: flipInX 0.7s both;
- animation: flipInX 0.7s both;
+ backface-visibility: visible !important;
+ -webkit-animation: flipInX 0.7s both;
+ -o-animation: flipInX 0.7s both;
+ animation: flipInX 0.7s both;
}
+
@keyframes flipInX {
- 0% {
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- transition-timing-function: ease-in;
- opacity: 0;
- }
- 40% {
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- transition-timing-function: ease-in;
- }
- 60% {
- transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- opacity: 1;
- }
- 80% {
- transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- }
- 100% {
- transform: perspective(400px);
- }
-}
+ 0% {
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transition-timing-function: ease-in;
+ opacity: 0;
+ }
+ 40% {
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transition-timing-function: ease-in;
+ }
+ 60% {
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ 100% {
+ transform: perspective(400px);
+ }
+}
+
@-webkit-keyframes flipInX {
- 0% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
- -webkit-transition-timing-function: ease-in;
- opacity: 0;
- }
- 40% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
- -webkit-transition-timing-function: ease-in;
- }
- 60% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
- opacity: 1;
- }
- 80% {
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
- }
- 100% {
- -webkit-transform: perspective(400px);
- }
-}
+ 0% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-transition-timing-function: ease-in;
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-transition-timing-function: ease-in;
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ 100% {
+ -webkit-transform: perspective(400px);
+ }
+}
+
/* Fix dropdown menu in navbars */
.navbar-custom-menu > .navbar-nav > li {
- position: relative;
+ position: relative;
}
+
.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {
- position: absolute;
- right: 0;
- left: auto;
-}
-@media (max-width: 991px) {
- .navbar-custom-menu > .navbar-nav {
- float: right;
- }
- .navbar-custom-menu > .navbar-nav > li {
- position: static;
- }
- .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {
position: absolute;
- right: 5%;
+ right: 0;
left: auto;
- border: 1px solid #ddd;
- background: #fff;
- }
}
+
+@media (max-width: 991px) {
+ .navbar-custom-menu > .navbar-nav {
+ float: right;
+ }
+
+ .navbar-custom-menu > .navbar-nav > li {
+ position: static;
+ }
+
+ .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {
+ position: absolute;
+ right: 5%;
+ left: auto;
+ border: 1px solid #ddd;
+ background: #fff;
+ }
+}
+
/*
* Component: Form
* ---------------
*/
.form-control {
- border-radius: 0;
- box-shadow: none;
- border-color: #d2d6de;
+ border-radius: 0;
+ box-shadow: none;
+ border-color: #d2d6de;
}
+
.form-control:focus {
- border-color: #3c8dbc;
- box-shadow: none;
+ border-color: #3c8dbc;
+ box-shadow: none;
}
+
.form-control::-moz-placeholder,
.form-control:-ms-input-placeholder,
.form-control::-webkit-input-placeholder {
- color: #bbb;
- opacity: 1;
+ color: #bbb;
+ opacity: 1;
}
+
.form-control:not(select) {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
}
+
.form-group.has-success label {
- color: #00a65a;
+ color: #00a65a;
}
+
.form-group.has-success .form-control,
.form-group.has-success .input-group-addon {
- border-color: #00a65a;
- box-shadow: none;
+ border-color: #00a65a;
+ box-shadow: none;
}
+
.form-group.has-success .help-block {
- color: #00a65a;
+ color: #00a65a;
}
+
.form-group.has-warning label {
- color: #f39c12;
+ color: #f39c12;
}
+
.form-group.has-warning .form-control,
.form-group.has-warning .input-group-addon {
- border-color: #f39c12;
- box-shadow: none;
+ border-color: #f39c12;
+ box-shadow: none;
}
+
.form-group.has-warning .help-block {
- color: #f39c12;
+ color: #f39c12;
}
+
.form-group.has-error label {
- color: #dd4b39;
+ color: #dd4b39;
}
+
.form-group.has-error .form-control,
.form-group.has-error .input-group-addon {
- border-color: #dd4b39;
- box-shadow: none;
+ border-color: #dd4b39;
+ box-shadow: none;
}
+
.form-group.has-error .help-block {
- color: #dd4b39;
+ color: #dd4b39;
}
+
/* Input group */
.input-group .input-group-addon {
- border-radius: 0;
- border-color: #d2d6de;
- background-color: #fff;
+ border-radius: 0;
+ border-color: #d2d6de;
+ background-color: #fff;
}
+
/* button groups */
.btn-group-vertical .btn.btn-flat:first-of-type,
.btn-group-vertical .btn.btn-flat:last-of-type {
- border-radius: 0;
+ border-radius: 0;
}
+
.icheck > label {
- padding-left: 0;
+ padding-left: 0;
}
+
/* support Font Awesome icons in form-control */
.form-control-feedback.fa {
- line-height: 34px;
+ line-height: 34px;
}
+
.input-lg + .form-control-feedback.fa,
.input-group-lg + .form-control-feedback.fa,
.form-group-lg .form-control + .form-control-feedback.fa {
- line-height: 46px;
+ line-height: 46px;
}
+
.input-sm + .form-control-feedback.fa,
.input-group-sm + .form-control-feedback.fa,
.form-group-sm .form-control + .form-control-feedback.fa {
- line-height: 30px;
+ line-height: 30px;
}
+
/*
* Component: Progress Bar
* -----------------------
*/
.progress,
.progress > .progress-bar {
- -webkit-box-shadow: none;
- box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
+
.progress,
.progress > .progress-bar,
.progress .progress-bar,
.progress > .progress-bar .progress-bar {
- border-radius: 1px;
+ border-radius: 1px;
}
+
/* size variation */
.progress.sm,
.progress-sm {
- height: 10px;
+ height: 10px;
}
+
.progress.sm,
.progress-sm,
.progress.sm .progress-bar,
.progress-sm .progress-bar {
- border-radius: 1px;
+ border-radius: 1px;
}
+
.progress.xs,
.progress-xs {
- height: 7px;
+ height: 7px;
}
+
.progress.xs,
.progress-xs,
.progress.xs .progress-bar,
.progress-xs .progress-bar {
- border-radius: 1px;
+ border-radius: 1px;
}
+
.progress.xxs,
.progress-xxs {
- height: 3px;
+ height: 3px;
}
+
.progress.xxs,
.progress-xxs,
.progress.xxs .progress-bar,
.progress-xxs .progress-bar {
- border-radius: 1px;
+ border-radius: 1px;
}
+
/* Vertical bars */
.progress.vertical {
- position: relative;
- width: 30px;
- height: 200px;
- display: inline-block;
- margin-right: 10px;
+ position: relative;
+ width: 30px;
+ height: 200px;
+ display: inline-block;
+ margin-right: 10px;
}
+
.progress.vertical > .progress-bar {
- width: 100%;
- position: absolute;
- bottom: 0;
+ width: 100%;
+ position: absolute;
+ bottom: 0;
}
+
.progress.vertical.sm,
.progress.vertical.progress-sm {
- width: 20px;
+ width: 20px;
}
+
.progress.vertical.xs,
.progress.vertical.progress-xs {
- width: 10px;
+ width: 10px;
}
+
.progress.vertical.xxs,
.progress.vertical.progress-xxs {
- width: 3px;
+ width: 3px;
}
+
.progress-group .progress-text {
- font-weight: 600;
+ font-weight: 600;
}
+
.progress-group .progress-number {
- float: right;
+ float: right;
}
+
/* Remove margins from progress bars when put in a table */
.table tr > td .progress {
- margin: 0;
+ margin: 0;
}
+
.progress-bar-light-blue,
.progress-bar-primary {
- background-color: #3c8dbc;
+ background-color: #3c8dbc;
}
+
.progress-striped .progress-bar-light-blue,
.progress-striped .progress-bar-primary {
- 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: -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);
+ 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: -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-bar-green,
.progress-bar-success {
- background-color: #00a65a;
+ background-color: #00a65a;
}
+
.progress-striped .progress-bar-green,
.progress-striped .progress-bar-success {
- 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: -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);
+ 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: -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-bar-aqua,
.progress-bar-info {
- background-color: #00c0ef;
+ background-color: #00c0ef;
}
+
.progress-striped .progress-bar-aqua,
.progress-striped .progress-bar-info {
- 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: -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);
+ 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: -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-bar-yellow,
.progress-bar-warning {
- background-color: #f39c12;
+ background-color: #f39c12;
}
+
.progress-striped .progress-bar-yellow,
.progress-striped .progress-bar-warning {
- 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: -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);
+ 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: -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-bar-red,
.progress-bar-danger {
- background-color: #dd4b39;
+ background-color: #dd4b39;
}
+
.progress-striped .progress-bar-red,
.progress-striped .progress-bar-danger {
- 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: -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);
+ 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: -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);
}
+
/*
* Component: Small Box
* --------------------
*/
.small-box {
- border-radius: 2px;
- position: relative;
- display: block;
- margin-bottom: 20px;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+ position: relative;
+ display: block;
+ margin-bottom: 20px;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}
+
.small-box > .inner {
- padding: 10px;
+ padding: 10px;
}
+
.small-box > .small-box-footer {
- position: relative;
- text-align: center;
- padding: 3px 0;
- color: #fff;
- color: rgba(255, 255, 255, 0.8);
- display: block;
- z-index: 10;
- background: rgba(0, 0, 0, 0.1);
- text-decoration: none;
+ position: relative;
+ text-align: center;
+ padding: 3px 0;
+ color: #fff;
+ color: rgba(255, 255, 255, 0.8);
+ display: block;
+ z-index: 10;
+ background: rgba(0, 0, 0, 0.1);
+ text-decoration: none;
}
+
.small-box > .small-box-footer:hover {
- color: #fff;
- background: rgba(0, 0, 0, 0.15);
+ color: #fff;
+ background: rgba(0, 0, 0, 0.15);
}
+
.small-box h3 {
- font-size: 38px;
- font-weight: bold;
- margin: 0 0 10px 0;
- white-space: nowrap;
- padding: 0;
+ font-size: 38px;
+ font-weight: bold;
+ margin: 0 0 10px 0;
+ white-space: nowrap;
+ padding: 0;
}
+
.small-box p {
- font-size: 15px;
+ font-size: 15px;
}
+
.small-box p > small {
- display: block;
- color: #f9f9f9;
- font-size: 13px;
- margin-top: 5px;
+ display: block;
+ color: #f9f9f9;
+ font-size: 13px;
+ margin-top: 5px;
}
+
.small-box h3,
.small-box p {
- z-index: 5;
+ z-index: 5;
}
+
.small-box .icon {
- -webkit-transition: all 0.3s linear;
- -o-transition: all 0.3s linear;
- transition: all 0.3s linear;
- position: absolute;
- top: -10px;
- right: 10px;
- z-index: 0;
- font-size: 90px;
- color: rgba(0, 0, 0, 0.15);
+ -webkit-transition: all 0.3s linear;
+ -o-transition: all 0.3s linear;
+ transition: all 0.3s linear;
+ position: absolute;
+ top: -10px;
+ right: 10px;
+ z-index: 0;
+ font-size: 90px;
+ color: rgba(0, 0, 0, 0.15);
}
+
.small-box:hover {
- text-decoration: none;
- color: #f9f9f9;
+ text-decoration: none;
+ color: #f9f9f9;
}
+
.small-box:hover .icon {
- font-size: 95px;
+ font-size: 95px;
}
+
@media (max-width: 767px) {
- .small-box {
- text-align: center;
- }
- .small-box .icon {
- display: none;
- }
- .small-box p {
- font-size: 12px;
- }
-}
+ .small-box {
+ text-align: center;
+ }
+
+ .small-box .icon {
+ display: none;
+ }
+
+ .small-box p {
+ font-size: 12px;
+ }
+}
+
/*
* Component: Box
* --------------
*/
.box {
- position: relative;
- border-radius: 3px;
- background: #ffffff;
- border-top: 3px solid #d2d6de;
- margin-bottom: 20px;
- width: 100%;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ position: relative;
+ border-radius: 3px;
+ background: #ffffff;
+ border-top: 3px solid #d2d6de;
+ margin-bottom: 20px;
+ width: 100%;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}
+
.box.box-primary {
- border-top-color: #3c8dbc;
+ border-top-color: #3c8dbc;
}
+
.box.box-info {
- border-top-color: #00c0ef;
+ border-top-color: #00c0ef;
}
+
.box.box-danger {
- border-top-color: #dd4b39;
+ border-top-color: #dd4b39;
}
+
.box.box-warning {
- border-top-color: #f39c12;
+ border-top-color: #f39c12;
}
+
.box.box-success {
- border-top-color: #00a65a;
+ border-top-color: #00a65a;
}
+
.box.box-default {
- border-top-color: #d2d6de;
+ border-top-color: #d2d6de;
}
+
.box.collapsed-box .box-body,
.box.collapsed-box .box-footer {
- display: none;
+ display: none;
}
+
.box .nav-stacked > li {
- border-bottom: 1px solid #f4f4f4;
- margin: 0;
+ border-bottom: 1px solid #f4f4f4;
+ margin: 0;
}
+
.box .nav-stacked > li:last-of-type {
- border-bottom: none;
+ border-bottom: none;
}
+
.box.height-control .box-body {
- max-height: 300px;
- overflow: auto;
+ max-height: 300px;
+ overflow: auto;
}
+
.box .border-right {
- border-right: 1px solid #f4f4f4;
+ border-right: 1px solid #f4f4f4;
}
+
.box .border-left {
- border-left: 1px solid #f4f4f4;
+ border-left: 1px solid #f4f4f4;
}
+
.box.box-solid {
- border-top: 0;
+ border-top: 0;
}
+
.box.box-solid > .box-header .btn.btn-default {
- background: transparent;
+ background: transparent;
}
+
.box.box-solid > .box-header .btn:hover,
.box.box-solid > .box-header a:hover {
- background: rgba(0, 0, 0, 0.1);
+ background: rgba(0, 0, 0, 0.1);
}
+
.box.box-solid.box-default {
- border: 1px solid #d2d6de;
+ border: 1px solid #d2d6de;
}
+
.box.box-solid.box-default > .box-header {
- color: #444444;
- background: #d2d6de;
- background-color: #d2d6de;
+ color: #444444;
+ background: #d2d6de;
+ background-color: #d2d6de;
}
+
.box.box-solid.box-default > .box-header a,
.box.box-solid.box-default > .box-header .btn {
- color: #444444;
+ color: #444444;
}
+
.box.box-solid.box-primary {
- border: 1px solid #3c8dbc;
+ border: 1px solid #3c8dbc;
}
+
.box.box-solid.box-primary > .box-header {
- color: #ffffff;
- background: #3c8dbc;
- background-color: #3c8dbc;
+ color: #ffffff;
+ background: #3c8dbc;
+ background-color: #3c8dbc;
}
+
.box.box-solid.box-primary > .box-header a,
.box.box-solid.box-primary > .box-header .btn {
- color: #ffffff;
+ color: #ffffff;
}
+
.box.box-solid.box-info {
- border: 1px solid #00c0ef;
+ border: 1px solid #00c0ef;
}
+
.box.box-solid.box-info > .box-header {
- color: #ffffff;
- background: #00c0ef;
- background-color: #00c0ef;
+ color: #ffffff;
+ background: #00c0ef;
+ background-color: #00c0ef;
}
+
.box.box-solid.box-info > .box-header a,
.box.box-solid.box-info > .box-header .btn {
- color: #ffffff;
+ color: #ffffff;
}
+
.box.box-solid.box-danger {
- border: 1px solid #dd4b39;
+ border: 1px solid #dd4b39;
}
+
.box.box-solid.box-danger > .box-header {
- color: #ffffff;
- background: #dd4b39;
- background-color: #dd4b39;
+ color: #ffffff;
+ background: #dd4b39;
+ background-color: #dd4b39;
}
+
.box.box-solid.box-danger > .box-header a,
.box.box-solid.box-danger > .box-header .btn {
- color: #ffffff;
+ color: #ffffff;
}
+
.box.box-solid.box-warning {
- border: 1px solid #f39c12;
+ border: 1px solid #f39c12;
}
+
.box.box-solid.box-warning > .box-header {
- color: #ffffff;
- background: #f39c12;
- background-color: #f39c12;
+ color: #ffffff;
+ background: #f39c12;
+ background-color: #f39c12;
}
+
.box.box-solid.box-warning > .box-header a,
.box.box-solid.box-warning > .box-header .btn {
- color: #ffffff;
+ color: #ffffff;
}
+
.box.box-solid.box-success {
- border: 1px solid #00a65a;
+ border: 1px solid #00a65a;
}
+
.box.box-solid.box-success > .box-header {
- color: #ffffff;
- background: #00a65a;
- background-color: #00a65a;
+ color: #ffffff;
+ background: #00a65a;
+ background-color: #00a65a;
}
+
.box.box-solid.box-success > .box-header a,
.box.box-solid.box-success > .box-header .btn {
- color: #ffffff;
+ color: #ffffff;
}
+
.box.box-solid > .box-header > .box-tools .btn {
- border: 0;
- box-shadow: none;
+ border: 0;
+ box-shadow: none;
}
+
.box.box-solid[class*='bg'] > .box-header {
- color: #fff;
+ color: #fff;
}
+
.box .box-group > .box {
- margin-bottom: 5px;
+ margin-bottom: 5px;
}
+
.box .knob-label {
- text-align: center;
- color: #333;
- font-weight: 100;
- font-size: 12px;
- margin-bottom: 0.3em;
+ text-align: center;
+ color: #333;
+ font-weight: 100;
+ font-size: 12px;
+ margin-bottom: 0.3em;
}
+
.box > .overlay,
.overlay-wrapper > .overlay,
.box > .loading-img,
.overlay-wrapper > .loading-img {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
}
+
.box .overlay,
.overlay-wrapper .overlay {
- z-index: 50;
- background: rgba(255, 255, 255, 0.7);
- border-radius: 3px;
+ z-index: 50;
+ background: rgba(255, 255, 255, 0.7);
+ border-radius: 3px;
}
+
.box .overlay > .fa,
.overlay-wrapper .overlay > .fa {
- position: absolute;
- top: 50%;
- left: 50%;
- margin-left: -15px;
- margin-top: -15px;
- color: #000;
- font-size: 30px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-left: -15px;
+ margin-top: -15px;
+ color: #000;
+ font-size: 30px;
}
+
.box .overlay.dark,
.overlay-wrapper .overlay.dark {
- background: rgba(0, 0, 0, 0.5);
+ background: rgba(0, 0, 0, 0.5);
}
+
.box-header:before,
.box-body:before,
.box-footer:before,
.box-header:after,
.box-body:after,
.box-footer:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.box-header:after,
.box-body:after,
.box-footer:after {
- clear: both;
+ clear: both;
}
+
.box-header {
- color: #444;
- display: block;
- padding: 10px;
- position: relative;
+ color: #444;
+ display: block;
+ padding: 10px;
+ position: relative;
}
+
.box-header.with-border {
- border-bottom: 1px solid #f4f4f4;
+ border-bottom: 1px solid #f4f4f4;
}
+
.collapsed-box .box-header.with-border {
- border-bottom: none;
+ border-bottom: none;
}
+
.box-header > .fa,
.box-header > .glyphicon,
.box-header > .ion,
.box-header .box-title {
- display: inline-block;
- font-size: 18px;
- margin: 0;
- line-height: 1;
+ display: inline-block;
+ font-size: 18px;
+ margin: 0;
+ line-height: 1;
}
+
.box-header > .fa,
.box-header > .glyphicon,
.box-header > .ion {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.box-header > .box-tools {
- position: absolute;
- right: 10px;
- top: 5px;
+ position: absolute;
+ right: 10px;
+ top: 5px;
}
+
.box-header > .box-tools [data-toggle="tooltip"] {
- position: relative;
+ position: relative;
}
+
.box-header > .box-tools.pull-right .dropdown-menu {
- right: 0;
- left: auto;
+ right: 0;
+ left: auto;
}
+
.btn-box-tool {
- padding: 5px;
- font-size: 12px;
- background: transparent;
- color: #97a0b3;
+ padding: 5px;
+ font-size: 12px;
+ background: transparent;
+ color: #97a0b3;
}
+
.open .btn-box-tool,
.btn-box-tool:hover {
- color: #606c84;
+ color: #606c84;
}
+
.btn-box-tool.btn:active {
- box-shadow: none;
+ box-shadow: none;
}
+
.box-body {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- padding: 10px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ padding: 10px;
}
+
.no-header .box-body {
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
}
+
.box-body > .table {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
.box-body .fc {
- margin-top: 5px;
+ margin-top: 5px;
}
+
.box-body .full-width-chart {
- margin: -19px;
+ margin: -19px;
}
+
.box-body.no-padding .full-width-chart {
- margin: -9px;
+ margin: -9px;
}
+
.box-body .box-pane {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 3px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 3px;
}
+
.box-body .box-pane-right {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 0;
}
+
.box-footer {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top: 1px solid #f4f4f4;
- padding: 10px;
- background-color: #ffffff;
-}
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ border-top: 1px solid #f4f4f4;
+ padding: 10px;
+ background-color: #ffffff;
+}
+
.chart-legend {
- margin: 10px 0;
+ margin: 10px 0;
}
+
@media (max-width: 991px) {
- .chart-legend > li {
- float: left;
- margin-right: 10px;
- }
+ .chart-legend > li {
+ float: left;
+ margin-right: 10px;
+ }
}
+
.box-comments {
- background: #f7f7f7;
+ background: #f7f7f7;
}
+
.box-comments .box-comment {
- padding: 8px 0;
- border-bottom: 1px solid #eee;
+ padding: 8px 0;
+ border-bottom: 1px solid #eee;
}
+
.box-comments .box-comment:before,
.box-comments .box-comment:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.box-comments .box-comment:after {
- clear: both;
+ clear: both;
}
+
.box-comments .box-comment:last-of-type {
- border-bottom: 0;
+ border-bottom: 0;
}
+
.box-comments .box-comment:first-of-type {
- padding-top: 0;
+ padding-top: 0;
}
+
.box-comments .box-comment img {
- float: left;
+ float: left;
}
+
.box-comments .comment-text {
- margin-left: 40px;
- color: #555;
+ margin-left: 40px;
+ color: #555;
}
+
.box-comments .username {
- color: #444;
- display: block;
- font-weight: 600;
+ color: #444;
+ display: block;
+ font-weight: 600;
}
+
.box-comments .text-muted {
- font-weight: 400;
- font-size: 12px;
+ font-weight: 400;
+ font-size: 12px;
}
+
/* Widget: TODO LIST */
.todo-list {
- margin: 0;
- padding: 0;
- list-style: none;
- overflow: auto;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ overflow: auto;
}
+
.todo-list > li {
- border-radius: 2px;
- padding: 10px;
- background: #f4f4f4;
- margin-bottom: 2px;
- border-left: 2px solid #e6e7e8;
- color: #444;
-}
+ border-radius: 2px;
+ padding: 10px;
+ background: #f4f4f4;
+ margin-bottom: 2px;
+ border-left: 2px solid #e6e7e8;
+ color: #444;
+}
+
.todo-list > li:last-of-type {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
.todo-list > li > input[type='checkbox'] {
- margin: 0 10px 0 5px;
+ margin: 0 10px 0 5px;
}
+
.todo-list > li .text {
- display: inline-block;
- margin-left: 5px;
- font-weight: 600;
+ display: inline-block;
+ margin-left: 5px;
+ font-weight: 600;
}
+
.todo-list > li .label {
- margin-left: 10px;
- font-size: 9px;
+ margin-left: 10px;
+ font-size: 9px;
}
+
.todo-list > li .tools {
- display: none;
- float: right;
- color: #dd4b39;
+ display: none;
+ float: right;
+ color: #dd4b39;
}
+
.todo-list > li .tools > .fa,
.todo-list > li .tools > .glyphicon,
.todo-list > li .tools > .ion {
- margin-right: 5px;
- cursor: pointer;
+ margin-right: 5px;
+ cursor: pointer;
}
+
.todo-list > li:hover .tools {
- display: inline-block;
+ display: inline-block;
}
+
.todo-list > li.done {
- color: #999;
+ color: #999;
}
+
.todo-list > li.done .text {
- text-decoration: line-through;
- font-weight: 500;
+ text-decoration: line-through;
+ font-weight: 500;
}
+
.todo-list > li.done .label {
- background: #d2d6de !important;
+ background: #d2d6de !important;
}
+
.todo-list .danger {
- border-left-color: #dd4b39;
+ border-left-color: #dd4b39;
}
+
.todo-list .warning {
- border-left-color: #f39c12;
+ border-left-color: #f39c12;
}
+
.todo-list .info {
- border-left-color: #00c0ef;
+ border-left-color: #00c0ef;
}
+
.todo-list .success {
- border-left-color: #00a65a;
+ border-left-color: #00a65a;
}
+
.todo-list .primary {
- border-left-color: #3c8dbc;
+ border-left-color: #3c8dbc;
}
+
.todo-list .handle {
- display: inline-block;
- cursor: move;
- margin: 0 5px;
+ display: inline-block;
+ cursor: move;
+ margin: 0 5px;
}
+
/* Chat widget (DEPRECATED - this will be removed in the next major release. Use Direct Chat instead)*/
.chat {
- padding: 5px 20px 5px 10px;
+ padding: 5px 20px 5px 10px;
}
+
.chat .item {
- margin-bottom: 10px;
+ margin-bottom: 10px;
}
+
.chat .item:before,
.chat .item:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.chat .item:after {
- clear: both;
+ clear: both;
}
+
.chat .item > img {
- width: 40px;
- height: 40px;
- border: 2px solid transparent;
- border-radius: 50%;
+ width: 40px;
+ height: 40px;
+ border: 2px solid transparent;
+ border-radius: 50%;
}
+
.chat .item > .online {
- border: 2px solid #00a65a;
+ border: 2px solid #00a65a;
}
+
.chat .item > .offline {
- border: 2px solid #dd4b39;
+ border: 2px solid #dd4b39;
}
+
.chat .item > .message {
- margin-left: 55px;
- margin-top: -40px;
+ margin-left: 55px;
+ margin-top: -40px;
}
+
.chat .item > .message > .name {
- display: block;
- font-weight: 600;
+ display: block;
+ font-weight: 600;
}
+
.chat .item > .attachment {
- border-radius: 3px;
- background: #f4f4f4;
- margin-left: 65px;
- margin-right: 15px;
- padding: 10px;
+ border-radius: 3px;
+ background: #f4f4f4;
+ margin-left: 65px;
+ margin-right: 15px;
+ padding: 10px;
}
+
.chat .item > .attachment > h4 {
- margin: 0 0 5px 0;
- font-weight: 600;
- font-size: 14px;
+ margin: 0 0 5px 0;
+ font-weight: 600;
+ font-size: 14px;
}
+
.chat .item > .attachment > p,
.chat .item > .attachment > .filename {
- font-weight: 600;
- font-size: 13px;
- font-style: italic;
- margin: 0;
+ font-weight: 600;
+ font-size: 13px;
+ font-style: italic;
+ margin: 0;
}
+
.chat .item > .attachment:before,
.chat .item > .attachment:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.chat .item > .attachment:after {
- clear: both;
+ clear: both;
}
+
.box-input {
- max-width: 200px;
+ max-width: 200px;
}
+
.modal .panel-body {
- color: #444;
+ color: #444;
}
+
/*
* Component: Info Box
* -------------------
*/
.info-box {
- display: block;
- min-height: 90px;
- background: #fff;
- width: 100%;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- border-radius: 2px;
- margin-bottom: 15px;
+ display: block;
+ min-height: 90px;
+ background: #fff;
+ width: 100%;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 2px;
+ margin-bottom: 15px;
}
+
.info-box small {
- font-size: 14px;
+ font-size: 14px;
}
+
.info-box .progress {
- background: rgba(0, 0, 0, 0.2);
- margin: 5px -10px 5px -10px;
- height: 2px;
+ background: rgba(0, 0, 0, 0.2);
+ margin: 5px -10px 5px -10px;
+ height: 2px;
}
+
.info-box .progress,
.info-box .progress .progress-bar {
- border-radius: 0;
+ border-radius: 0;
}
+
.info-box .progress .progress-bar {
- background: #fff;
+ background: #fff;
}
+
.info-box-icon {
- border-top-left-radius: 2px;
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 2px;
- display: block;
- float: left;
- height: 90px;
- width: 90px;
- text-align: center;
- font-size: 45px;
- line-height: 90px;
- background: rgba(0, 0, 0, 0.2);
+ border-top-left-radius: 2px;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 2px;
+ display: block;
+ float: left;
+ height: 90px;
+ width: 90px;
+ text-align: center;
+ font-size: 45px;
+ line-height: 90px;
+ background: rgba(0, 0, 0, 0.2);
}
+
.info-box-icon > img {
- max-width: 100%;
+ max-width: 100%;
}
+
.info-box-content {
- padding: 5px 10px;
- margin-left: 90px;
+ padding: 5px 10px;
+ margin-left: 90px;
}
+
.info-box-number {
- display: block;
- font-weight: bold;
- font-size: 18px;
+ display: block;
+ font-weight: bold;
+ font-size: 18px;
}
+
.progress-description,
.info-box-text {
- display: block;
- font-size: 14px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+ display: block;
+ font-size: 14px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
+
.info-box-text {
- text-transform: uppercase;
+ text-transform: uppercase;
}
+
.info-box-more {
- display: block;
+ display: block;
}
+
.progress-description {
- margin: 0;
+ margin: 0;
}
+
/*
* Component: Timeline
* -------------------
*/
.timeline {
- position: relative;
- margin: 0 0 30px 0;
- padding: 0;
- list-style: none;
+ position: relative;
+ margin: 0 0 30px 0;
+ padding: 0;
+ list-style: none;
}
+
.timeline:before {
- content: '';
- position: absolute;
- top: 0;
- bottom: 0;
- width: 4px;
- background: #ddd;
- left: 31px;
- margin: 0;
- border-radius: 2px;
+ content: '';
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 4px;
+ background: #ddd;
+ left: 31px;
+ margin: 0;
+ border-radius: 2px;
}
+
.timeline > li {
- position: relative;
- margin-right: 10px;
- margin-bottom: 15px;
+ position: relative;
+ margin-right: 10px;
+ margin-bottom: 15px;
}
+
.timeline > li:before,
.timeline > li:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.timeline > li:after {
- clear: both;
+ clear: both;
}
+
.timeline > li > .timeline-item {
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- border-radius: 3px;
- margin-top: 0;
- background: #fff;
- color: #444;
- margin-left: 60px;
- margin-right: 15px;
- padding: 0;
- position: relative;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 3px;
+ margin-top: 0;
+ background: #fff;
+ color: #444;
+ margin-left: 60px;
+ margin-right: 15px;
+ padding: 0;
+ position: relative;
}
+
.timeline > li > .timeline-item > .time {
- color: #999;
- float: right;
- padding: 10px;
- font-size: 12px;
+ color: #999;
+ float: right;
+ padding: 10px;
+ font-size: 12px;
}
+
.timeline > li > .timeline-item > .timeline-header {
- margin: 0;
- color: #555;
- border-bottom: 1px solid #f4f4f4;
- padding: 10px;
- font-size: 16px;
- line-height: 1.1;
+ margin: 0;
+ color: #555;
+ border-bottom: 1px solid #f4f4f4;
+ padding: 10px;
+ font-size: 16px;
+ line-height: 1.1;
}
+
.timeline > li > .timeline-item > .timeline-header > a {
- font-weight: 600;
+ font-weight: 600;
}
+
.timeline > li > .timeline-item > .timeline-body,
.timeline > li > .timeline-item > .timeline-footer {
- padding: 10px;
+ padding: 10px;
}
+
.timeline > li > .fa,
.timeline > li > .glyphicon,
.timeline > li > .ion {
- width: 30px;
- height: 30px;
- font-size: 15px;
- line-height: 30px;
- position: absolute;
- color: #666;
- background: #d2d6de;
- border-radius: 50%;
- text-align: center;
- left: 18px;
- top: 0;
+ width: 30px;
+ height: 30px;
+ font-size: 15px;
+ line-height: 30px;
+ position: absolute;
+ color: #666;
+ background: #d2d6de;
+ border-radius: 50%;
+ text-align: center;
+ left: 18px;
+ top: 0;
}
+
.timeline > .time-label > span {
- font-weight: 600;
- padding: 5px;
- display: inline-block;
- background-color: #fff;
- border-radius: 4px;
+ font-weight: 600;
+ padding: 5px;
+ display: inline-block;
+ background-color: #fff;
+ border-radius: 4px;
}
+
.timeline-inverse > li > .timeline-item {
- background: #f0f0f0;
- border: 1px solid #ddd;
- -webkit-box-shadow: none;
- box-shadow: none;
+ background: #f0f0f0;
+ border: 1px solid #ddd;
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
+
.timeline-inverse > li > .timeline-item > .timeline-header {
- border-bottom-color: #ddd;
+ border-bottom-color: #ddd;
}
+
/*
* Component: Button
* -----------------
*/
.btn {
- border-radius: 3px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid transparent;
+ border-radius: 3px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border: 1px solid transparent;
}
+
.btn.uppercase {
- text-transform: uppercase;
+ text-transform: uppercase;
}
+
.btn.btn-flat {
- border-radius: 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
- border-width: 1px;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border-width: 1px;
}
+
.btn:active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
+
.btn:focus {
- outline: none;
+ outline: none;
}
+
.btn.btn-file {
- position: relative;
- overflow: hidden;
+ position: relative;
+ overflow: hidden;
}
+
.btn.btn-file > input[type='file'] {
- position: absolute;
- top: 0;
- right: 0;
- min-width: 100%;
- min-height: 100%;
- font-size: 100px;
- text-align: right;
- opacity: 0;
- filter: alpha(opacity=0);
- outline: none;
- background: white;
- cursor: inherit;
- display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ min-width: 100%;
+ min-height: 100%;
+ font-size: 100px;
+ text-align: right;
+ opacity: 0;
+ filter: alpha(opacity=0);
+ outline: none;
+ background: white;
+ cursor: inherit;
+ display: block;
}
+
.btn-default {
- background-color: #f4f4f4;
- color: #444;
- border-color: #ddd;
+ background-color: #f4f4f4;
+ color: #444;
+ border-color: #ddd;
}
+
.btn-default:hover,
.btn-default:active,
.btn-default.hover {
- background-color: #e7e7e7;
+ background-color: #e7e7e7;
}
+
.btn-primary {
- background-color: #3c8dbc;
- border-color: #367fa9;
+ background-color: #3c8dbc;
+ border-color: #367fa9;
}
+
.btn-primary:hover,
.btn-primary:active,
.btn-primary.hover {
- background-color: #367fa9;
+ background-color: #367fa9;
}
+
.btn-success {
- background-color: #00a65a;
- border-color: #008d4c;
+ background-color: #00a65a;
+ border-color: #008d4c;
}
+
.btn-success:hover,
.btn-success:active,
.btn-success.hover {
- background-color: #008d4c;
+ background-color: #008d4c;
}
+
.btn-info {
- background-color: #00c0ef;
- border-color: #00acd6;
+ background-color: #00c0ef;
+ border-color: #00acd6;
}
+
.btn-info:hover,
.btn-info:active,
.btn-info.hover {
- background-color: #00acd6;
+ background-color: #00acd6;
}
+
.btn-danger {
- background-color: #dd4b39;
- border-color: #d73925;
+ background-color: #dd4b39;
+ border-color: #d73925;
}
+
.btn-danger:hover,
.btn-danger:active,
.btn-danger.hover {
- background-color: #d73925;
+ background-color: #d73925;
}
+
.btn-warning {
- background-color: #f39c12;
- border-color: #e08e0b;
+ background-color: #f39c12;
+ border-color: #e08e0b;
}
+
.btn-warning:hover,
.btn-warning:active,
.btn-warning.hover {
- background-color: #e08e0b;
+ background-color: #e08e0b;
}
+
.btn-outline {
- border: 1px solid #fff;
- background: transparent;
- color: #fff;
+ border: 1px solid #fff;
+ background: transparent;
+ color: #fff;
}
+
.btn-outline:hover,
.btn-outline:focus,
.btn-outline:active {
- color: rgba(255, 255, 255, 0.7);
- border-color: rgba(255, 255, 255, 0.7);
+ color: rgba(255, 255, 255, 0.7);
+ border-color: rgba(255, 255, 255, 0.7);
}
+
.btn-link {
- -webkit-box-shadow: none;
- box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
+
.btn[class*='bg-']:hover {
- -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);
- box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);
+ box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.2);
}
+
.btn-app {
- border-radius: 3px;
- position: relative;
- padding: 15px 5px;
- margin: 0 0 10px 10px;
- min-width: 80px;
- height: 60px;
- text-align: center;
- color: #666;
- border: 1px solid #ddd;
- background-color: #f4f4f4;
- font-size: 12px;
+ border-radius: 3px;
+ position: relative;
+ padding: 15px 5px;
+ margin: 0 0 10px 10px;
+ min-width: 80px;
+ height: 60px;
+ text-align: center;
+ color: #666;
+ border: 1px solid #ddd;
+ background-color: #f4f4f4;
+ font-size: 12px;
}
+
.btn-app > .fa,
.btn-app > .glyphicon,
.btn-app > .ion {
- font-size: 20px;
- display: block;
+ font-size: 20px;
+ display: block;
}
+
.btn-app:hover {
- background: #f4f4f4;
- color: #444;
- border-color: #aaa;
+ background: #f4f4f4;
+ color: #444;
+ border-color: #aaa;
}
+
.btn-app:active,
.btn-app:focus {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
+
.btn-app > .badge {
- position: absolute;
- top: -3px;
- right: -10px;
- font-size: 10px;
- font-weight: 400;
+ position: absolute;
+ top: -3px;
+ right: -10px;
+ font-size: 10px;
+ font-weight: 400;
}
+
/*
* Component: Callout
* ------------------
*/
.callout {
- border-radius: 3px;
- margin: 0 0 20px 0;
- padding: 15px 30px 15px 15px;
- border-left: 5px solid #eee;
+ border-radius: 3px;
+ margin: 0 0 20px 0;
+ padding: 15px 30px 15px 15px;
+ border-left: 5px solid #eee;
}
+
.callout a {
- color: #fff;
- text-decoration: underline;
+ color: #fff;
+ text-decoration: underline;
}
+
.callout a:hover {
- color: #eee;
+ color: #eee;
}
+
.callout h4 {
- margin-top: 0;
- font-weight: 600;
+ margin-top: 0;
+ font-weight: 600;
}
+
.callout p:last-child {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
.callout code,
.callout .highlight {
- background-color: #fff;
+ background-color: #fff;
}
+
.callout.callout-danger {
- border-color: #c23321;
+ border-color: #c23321;
}
+
.callout.callout-warning {
- border-color: #c87f0a;
+ border-color: #c87f0a;
}
+
.callout.callout-info {
- border-color: #0097bc;
+ border-color: #0097bc;
}
+
.callout.callout-success {
- border-color: #00733e;
+ border-color: #00733e;
}
+
/*
* Component: alert
* ----------------
*/
.alert {
- border-radius: 3px;
+ border-radius: 3px;
}
+
.alert h4 {
- font-weight: 600;
+ font-weight: 600;
}
+
.alert .icon {
- margin-right: 10px;
+ margin-right: 10px;
}
+
.alert .close {
- color: #000;
- opacity: 0.2;
- filter: alpha(opacity=20);
+ color: #000;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
}
+
.alert .close:hover {
- opacity: 0.5;
- filter: alpha(opacity=50);
+ opacity: 0.5;
+ filter: alpha(opacity=50);
}
+
.alert a {
- color: #fff;
- text-decoration: underline;
+ color: #fff;
+ text-decoration: underline;
}
+
.alert-success {
- border-color: #008d4c;
+ border-color: #008d4c;
}
+
.alert-danger,
.alert-error {
- border-color: #d73925;
+ border-color: #d73925;
}
+
.alert-warning {
- border-color: #e08e0b;
+ border-color: #e08e0b;
}
+
.alert-info {
- border-color: #00acd6;
+ border-color: #00acd6;
}
+
/*
* Component: Nav
* --------------
@@ -2428,223 +2897,272 @@ a:focus {
.nav > li > a:hover,
.nav > li > a:active,
.nav > li > a:focus {
- color: #444;
- background: #f7f7f7;
+ color: #444;
+ background: #f7f7f7;
}
+
/* NAV PILLS */
.nav-pills > li > a {
- border-radius: 0;
- border-top: 3px solid transparent;
- color: #444;
+ border-radius: 0;
+ border-top: 3px solid transparent;
+ color: #444;
}
+
.nav-pills > li > a > .fa,
.nav-pills > li > a > .glyphicon,
.nav-pills > li > a > .ion {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
- border-top-color: #3c8dbc;
+ border-top-color: #3c8dbc;
}
+
.nav-pills > li.active > a {
- font-weight: 600;
+ font-weight: 600;
}
+
/* NAV STACKED */
.nav-stacked > li > a {
- border-radius: 0;
- border-top: 0;
- border-left: 3px solid transparent;
- color: #444;
+ border-radius: 0;
+ border-top: 0;
+ border-left: 3px solid transparent;
+ color: #444;
}
+
.nav-stacked > li.active > a,
.nav-stacked > li.active > a:hover {
- background: transparent;
- color: #444;
- border-top: 0;
- border-left-color: #3c8dbc;
+ background: transparent;
+ color: #444;
+ border-top: 0;
+ border-left-color: #3c8dbc;
}
+
.nav-stacked > li.header {
- border-bottom: 1px solid #ddd;
- color: #777;
- margin-bottom: 10px;
- padding: 5px 10px;
- text-transform: uppercase;
+ border-bottom: 1px solid #ddd;
+ color: #777;
+ margin-bottom: 10px;
+ padding: 5px 10px;
+ text-transform: uppercase;
}
+
/* NAV TABS */
.nav-tabs-custom {
- margin-bottom: 20px;
- background: #fff;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- border-radius: 3px;
+ margin-bottom: 20px;
+ background: #fff;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 3px;
}
+
.nav-tabs-custom > .nav-tabs {
- margin: 0;
- border-bottom-color: #f4f4f4;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
+ margin: 0;
+ border-bottom-color: #f4f4f4;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
}
+
.nav-tabs-custom > .nav-tabs > li {
- border-top: 3px solid transparent;
- margin-bottom: -2px;
- margin-right: 5px;
+ border-top: 3px solid transparent;
+ margin-bottom: -2px;
+ margin-right: 5px;
}
+
.nav-tabs-custom > .nav-tabs > li > a {
- color: #444;
- border-radius: 0;
+ color: #444;
+ border-radius: 0;
}
+
.nav-tabs-custom > .nav-tabs > li > a.text-muted {
- color: #999;
+ color: #999;
}
+
.nav-tabs-custom > .nav-tabs > li > a,
.nav-tabs-custom > .nav-tabs > li > a:hover {
- background: transparent;
- margin: 0;
+ background: transparent;
+ margin: 0;
}
+
.nav-tabs-custom > .nav-tabs > li > a:hover {
- color: #999;
+ color: #999;
}
+
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover,
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus,
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active {
- border-color: transparent;
+ border-color: transparent;
}
+
.nav-tabs-custom > .nav-tabs > li.active {
- border-top-color: #3c8dbc;
+ border-top-color: #3c8dbc;
}
+
.nav-tabs-custom > .nav-tabs > li.active > a,
.nav-tabs-custom > .nav-tabs > li.active:hover > a {
- background-color: #fff;
- color: #444;
+ background-color: #fff;
+ color: #444;
}
+
.nav-tabs-custom > .nav-tabs > li.active > a {
- border-top-color: transparent;
- border-left-color: #f4f4f4;
- border-right-color: #f4f4f4;
+ border-top-color: transparent;
+ border-left-color: #f4f4f4;
+ border-right-color: #f4f4f4;
}
+
.nav-tabs-custom > .nav-tabs > li:first-of-type {
- margin-left: 0;
+ margin-left: 0;
}
+
.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a {
- border-left-color: transparent;
+ border-left-color: transparent;
}
+
.nav-tabs-custom > .nav-tabs.pull-right {
- float: none !important;
+ float: none !important;
}
+
.nav-tabs-custom > .nav-tabs.pull-right > li {
- float: right;
+ float: right;
}
+
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type {
- margin-right: 0;
+ margin-right: 0;
}
+
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type > a {
- border-left-width: 1px;
+ border-left-width: 1px;
}
+
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a {
- border-left-color: #f4f4f4;
- border-right-color: transparent;
+ border-left-color: #f4f4f4;
+ border-right-color: transparent;
}
+
.nav-tabs-custom > .nav-tabs > li.header {
- line-height: 35px;
- padding: 0 10px;
- font-size: 20px;
- color: #444;
+ line-height: 35px;
+ padding: 0 10px;
+ font-size: 20px;
+ color: #444;
}
+
.nav-tabs-custom > .nav-tabs > li.header > .fa,
.nav-tabs-custom > .nav-tabs > li.header > .glyphicon,
.nav-tabs-custom > .nav-tabs > li.header > .ion {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.nav-tabs-custom > .tab-content {
- background: #fff;
- padding: 10px;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
+ background: #fff;
+ padding: 10px;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
}
+
.nav-tabs-custom .dropdown.open > a:active,
.nav-tabs-custom .dropdown.open > a:focus {
- background: transparent;
- color: #999;
+ background: transparent;
+ color: #999;
}
+
.nav-tabs-custom.tab-primary > .nav-tabs > li.active {
- border-top-color: #3c8dbc;
+ border-top-color: #3c8dbc;
}
+
.nav-tabs-custom.tab-info > .nav-tabs > li.active {
- border-top-color: #00c0ef;
+ border-top-color: #00c0ef;
}
+
.nav-tabs-custom.tab-danger > .nav-tabs > li.active {
- border-top-color: #dd4b39;
+ border-top-color: #dd4b39;
}
+
.nav-tabs-custom.tab-warning > .nav-tabs > li.active {
- border-top-color: #f39c12;
+ border-top-color: #f39c12;
}
+
.nav-tabs-custom.tab-success > .nav-tabs > li.active {
- border-top-color: #00a65a;
+ border-top-color: #00a65a;
}
+
.nav-tabs-custom.tab-default > .nav-tabs > li.active {
- border-top-color: #d2d6de;
+ border-top-color: #d2d6de;
}
+
/* PAGINATION */
.pagination > li > a {
- background: #fafafa;
- color: #666;
+ background: #fafafa;
+ color: #666;
}
+
.pagination.pagination-flat > li > a {
- border-radius: 0 !important;
+ border-radius: 0 !important;
}
+
/*
* Component: Products List
* ------------------------
*/
.products-list {
- list-style: none;
- margin: 0;
- padding: 0;
+ list-style: none;
+ margin: 0;
+ padding: 0;
}
+
.products-list > .item {
- border-radius: 3px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- padding: 10px 0;
- background: #fff;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ padding: 10px 0;
+ background: #fff;
}
+
.products-list > .item:before,
.products-list > .item:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.products-list > .item:after {
- clear: both;
+ clear: both;
}
+
.products-list .product-img {
- float: left;
+ float: left;
}
+
.products-list .product-img img {
- width: 50px;
- height: 50px;
+ width: 50px;
+ height: 50px;
}
+
.products-list .product-info {
- margin-left: 60px;
+ margin-left: 60px;
}
+
.products-list .product-title {
- font-weight: 600;
+ font-weight: 600;
}
+
.products-list .product-description {
- display: block;
- color: #999;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
+ display: block;
+ color: #999;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
}
+
.product-list-in-box > .item {
- -webkit-box-shadow: none;
- box-shadow: none;
- border-radius: 0;
- border-bottom: 1px solid #f4f4f4;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0;
+ border-bottom: 1px solid #f4f4f4;
}
+
.product-list-in-box > .item:last-of-type {
- border-bottom-width: 0;
+ border-bottom-width: 0;
}
+
/*
* Component: Table
* ----------------
@@ -2655,695 +3173,830 @@ a:focus {
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
- border-top: 1px solid #f4f4f4;
+ border-top: 1px solid #f4f4f4;
}
+
.table > thead > tr > th {
- border-bottom: 2px solid #f4f4f4;
+ border-bottom: 2px solid #f4f4f4;
}
+
.table tr td .progress {
- margin-top: 5px;
+ margin-top: 5px;
}
+
.table-bordered {
- border: 1px solid #f4f4f4;
+ border: 1px solid #f4f4f4;
}
+
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
- border: 1px solid #f4f4f4;
+ border: 1px solid #f4f4f4;
}
+
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
- border-bottom-width: 2px;
+ border-bottom-width: 2px;
}
+
.table.no-border,
.table.no-border td,
.table.no-border th {
- border: 0;
+ border: 0;
}
+
/* .text-center in tables */
table.text-center,
table.text-center td,
table.text-center th {
- text-align: center;
+ text-align: center;
}
+
.table.align th {
- text-align: left;
+ text-align: left;
}
+
.table.align td {
- text-align: right;
+ text-align: right;
}
+
/*
* Component: Label
* ----------------
*/
.label-default {
- background-color: #d2d6de;
- color: #444;
+ background-color: #d2d6de;
+ color: #444;
}
+
/*
* Component: Direct Chat
* ----------------------
*/
.direct-chat .box-body {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- position: relative;
- overflow-x: hidden;
- padding: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ position: relative;
+ overflow-x: hidden;
+ padding: 0;
}
+
.direct-chat.chat-pane-open .direct-chat-contacts {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
}
+
.direct-chat-messages {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
- padding: 10px;
- height: 250px;
- overflow: auto;
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+ padding: 10px;
+ height: 250px;
+ overflow: auto;
}
+
.direct-chat-msg,
.direct-chat-text {
- display: block;
+ display: block;
}
+
.direct-chat-msg {
- margin-bottom: 10px;
+ margin-bottom: 10px;
}
+
.direct-chat-msg:before,
.direct-chat-msg:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.direct-chat-msg:after {
- clear: both;
+ clear: both;
}
+
.direct-chat-messages,
.direct-chat-contacts {
- -webkit-transition: -webkit-transform 0.5s ease-in-out;
- -moz-transition: -moz-transform 0.5s ease-in-out;
- -o-transition: -o-transform 0.5s ease-in-out;
- transition: transform 0.5s ease-in-out;
+ -webkit-transition: -webkit-transform 0.5s ease-in-out;
+ -moz-transition: -moz-transform 0.5s ease-in-out;
+ -o-transition: -o-transform 0.5s ease-in-out;
+ transition: transform 0.5s ease-in-out;
}
+
.direct-chat-text {
- border-radius: 5px;
- position: relative;
- padding: 5px 10px;
- background: #d2d6de;
- border: 1px solid #d2d6de;
- margin: 5px 0 0 50px;
- color: #444444;
+ border-radius: 5px;
+ position: relative;
+ padding: 5px 10px;
+ background: #d2d6de;
+ border: 1px solid #d2d6de;
+ margin: 5px 0 0 50px;
+ color: #444444;
}
+
.direct-chat-text:after,
.direct-chat-text:before {
- position: absolute;
- right: 100%;
- top: 15px;
- border: solid transparent;
- border-right-color: #d2d6de;
- content: ' ';
- height: 0;
- width: 0;
- pointer-events: none;
-}
+ position: absolute;
+ right: 100%;
+ top: 15px;
+ border: solid transparent;
+ border-right-color: #d2d6de;
+ content: ' ';
+ height: 0;
+ width: 0;
+ pointer-events: none;
+}
+
.direct-chat-text:after {
- border-width: 5px;
- margin-top: -5px;
+ border-width: 5px;
+ margin-top: -5px;
}
+
.direct-chat-text:before {
- border-width: 6px;
- margin-top: -6px;
+ border-width: 6px;
+ margin-top: -6px;
}
+
.right .direct-chat-text {
- margin-right: 50px;
- margin-left: 0;
+ margin-right: 50px;
+ margin-left: 0;
}
+
.right .direct-chat-text:after,
.right .direct-chat-text:before {
- right: auto;
- left: 100%;
- border-right-color: transparent;
- border-left-color: #d2d6de;
+ right: auto;
+ left: 100%;
+ border-right-color: transparent;
+ border-left-color: #d2d6de;
}
+
.direct-chat-img {
- border-radius: 50%;
- float: left;
- width: 40px;
- height: 40px;
+ border-radius: 50%;
+ float: left;
+ width: 40px;
+ height: 40px;
}
+
.right .direct-chat-img {
- float: right;
+ float: right;
}
+
.direct-chat-info {
- display: block;
- margin-bottom: 2px;
- font-size: 12px;
+ display: block;
+ margin-bottom: 2px;
+ font-size: 12px;
}
+
.direct-chat-name {
- font-weight: 600;
+ font-weight: 600;
}
+
.direct-chat-timestamp {
- color: #999;
+ color: #999;
}
+
.direct-chat-contacts-open .direct-chat-contacts {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
}
+
.direct-chat-contacts {
- -webkit-transform: translate(101%, 0);
- -ms-transform: translate(101%, 0);
- -o-transform: translate(101%, 0);
- transform: translate(101%, 0);
- position: absolute;
- top: 0;
- bottom: 0;
- height: 250px;
- width: 100%;
- background: #222d32;
- color: #fff;
- overflow: auto;
+ -webkit-transform: translate(101%, 0);
+ -ms-transform: translate(101%, 0);
+ -o-transform: translate(101%, 0);
+ transform: translate(101%, 0);
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ height: 250px;
+ width: 100%;
+ background: #222d32;
+ color: #fff;
+ overflow: auto;
}
+
.contacts-list > li {
- border-bottom: 1px solid rgba(0, 0, 0, 0.2);
- padding: 10px;
- margin: 0;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ padding: 10px;
+ margin: 0;
}
+
.contacts-list > li:before,
.contacts-list > li:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.contacts-list > li:after {
- clear: both;
+ clear: both;
}
+
.contacts-list > li:last-of-type {
- border-bottom: none;
+ border-bottom: none;
}
+
.contacts-list-img {
- border-radius: 50%;
- width: 40px;
- float: left;
+ border-radius: 50%;
+ width: 40px;
+ float: left;
}
+
.contacts-list-info {
- margin-left: 45px;
- color: #fff;
+ margin-left: 45px;
+ color: #fff;
}
+
.contacts-list-name,
.contacts-list-status {
- display: block;
+ display: block;
}
+
.contacts-list-name {
- font-weight: 600;
+ font-weight: 600;
}
+
.contacts-list-status {
- font-size: 12px;
+ font-size: 12px;
}
+
.contacts-list-date {
- color: #aaa;
- font-weight: normal;
+ color: #aaa;
+ font-weight: normal;
}
+
.contacts-list-msg {
- color: #999;
+ color: #999;
}
+
.direct-chat-danger .right > .direct-chat-text {
- background: #dd4b39;
- border-color: #dd4b39;
- color: #ffffff;
+ background: #dd4b39;
+ border-color: #dd4b39;
+ color: #ffffff;
}
+
.direct-chat-danger .right > .direct-chat-text:after,
.direct-chat-danger .right > .direct-chat-text:before {
- border-left-color: #dd4b39;
+ border-left-color: #dd4b39;
}
+
.direct-chat-primary .right > .direct-chat-text {
- background: #3c8dbc;
- border-color: #3c8dbc;
- color: #ffffff;
+ background: #3c8dbc;
+ border-color: #3c8dbc;
+ color: #ffffff;
}
+
.direct-chat-primary .right > .direct-chat-text:after,
.direct-chat-primary .right > .direct-chat-text:before {
- border-left-color: #3c8dbc;
+ border-left-color: #3c8dbc;
}
+
.direct-chat-warning .right > .direct-chat-text {
- background: #f39c12;
- border-color: #f39c12;
- color: #ffffff;
+ background: #f39c12;
+ border-color: #f39c12;
+ color: #ffffff;
}
+
.direct-chat-warning .right > .direct-chat-text:after,
.direct-chat-warning .right > .direct-chat-text:before {
- border-left-color: #f39c12;
+ border-left-color: #f39c12;
}
+
.direct-chat-info .right > .direct-chat-text {
- background: #00c0ef;
- border-color: #00c0ef;
- color: #ffffff;
+ background: #00c0ef;
+ border-color: #00c0ef;
+ color: #ffffff;
}
+
.direct-chat-info .right > .direct-chat-text:after,
.direct-chat-info .right > .direct-chat-text:before {
- border-left-color: #00c0ef;
+ border-left-color: #00c0ef;
}
+
.direct-chat-success .right > .direct-chat-text {
- background: #00a65a;
- border-color: #00a65a;
- color: #ffffff;
+ background: #00a65a;
+ border-color: #00a65a;
+ color: #ffffff;
}
+
.direct-chat-success .right > .direct-chat-text:after,
.direct-chat-success .right > .direct-chat-text:before {
- border-left-color: #00a65a;
+ border-left-color: #00a65a;
}
+
/*
* Component: Users List
* ---------------------
*/
.users-list > li {
- width: 25%;
- float: left;
- padding: 10px;
- text-align: center;
+ width: 25%;
+ float: left;
+ padding: 10px;
+ text-align: center;
}
+
.users-list > li img {
- border-radius: 50%;
- max-width: 100%;
- height: auto;
+ border-radius: 50%;
+ max-width: 100%;
+ height: auto;
}
+
.users-list > li > a:hover,
.users-list > li > a:hover .users-list-name {
- color: #999;
+ color: #999;
}
+
.users-list-name,
.users-list-date {
- display: block;
+ display: block;
}
+
.users-list-name {
- font-weight: 600;
- color: #444;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
+ font-weight: 600;
+ color: #444;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
}
+
.users-list-date {
- color: #999;
- font-size: 12px;
+ color: #999;
+ font-size: 12px;
}
+
/*
* Component: Carousel
* -------------------
*/
.carousel-control.left,
.carousel-control.right {
- background-image: none;
+ background-image: none;
}
+
.carousel-control > .fa {
- font-size: 40px;
- position: absolute;
- top: 50%;
- z-index: 5;
- display: inline-block;
- margin-top: -20px;
+ font-size: 40px;
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ margin-top: -20px;
}
+
/*
* Component: modal
* ----------------
*/
.modal {
- background: rgba(0, 0, 0, 0.3);
+ background: rgba(0, 0, 0, 0.3);
}
+
.modal-content {
- border-radius: 0;
- -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
- box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
- border: 0;
-}
-@media (min-width: 768px) {
- .modal-content {
+ border-radius: 0;
-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
- }
+ border: 0;
+}
+
+@media (min-width: 768px) {
+ .modal-content {
+ -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
+ box-shadow: 0 2px 3px rgba(0, 0, 0, 0.125);
+ }
}
+
.modal-header {
- border-bottom-color: #f4f4f4;
+ border-bottom-color: #f4f4f4;
}
+
.modal-footer {
- border-top-color: #f4f4f4;
+ border-top-color: #f4f4f4;
}
+
.modal-primary .modal-header,
.modal-primary .modal-footer {
- border-color: #307095;
+ border-color: #307095;
}
+
.modal-warning .modal-header,
.modal-warning .modal-footer {
- border-color: #c87f0a;
+ border-color: #c87f0a;
}
+
.modal-info .modal-header,
.modal-info .modal-footer {
- border-color: #0097bc;
+ border-color: #0097bc;
}
+
.modal-success .modal-header,
.modal-success .modal-footer {
- border-color: #00733e;
+ border-color: #00733e;
}
+
.modal-danger .modal-header,
.modal-danger .modal-footer {
- border-color: #c23321;
+ border-color: #c23321;
}
+
/*
* Component: Social Widgets
* -------------------------
*/
.box-widget {
- border: none;
- position: relative;
+ border: none;
+ position: relative;
}
+
.widget-user .widget-user-header {
- padding: 20px;
- height: 120px;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
+ padding: 20px;
+ height: 120px;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
}
+
.widget-user .widget-user-username {
- margin-top: 0;
- margin-bottom: 5px;
- font-size: 25px;
- font-weight: 300;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+ margin-top: 0;
+ margin-bottom: 5px;
+ font-size: 25px;
+ font-weight: 300;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}
+
.widget-user .widget-user-desc {
- margin-top: 0;
+ margin-top: 0;
}
+
.widget-user .widget-user-image {
- position: absolute;
- top: 65px;
- left: 50%;
- margin-left: -45px;
+ position: absolute;
+ top: 65px;
+ left: 50%;
+ margin-left: -45px;
}
+
.widget-user .widget-user-image > img {
- width: 90px;
- height: auto;
- border: 3px solid #fff;
+ width: 90px;
+ height: auto;
+ border: 3px solid #fff;
}
+
.widget-user .box-footer {
- padding-top: 30px;
+ padding-top: 30px;
}
+
.widget-user-2 .widget-user-header {
- padding: 20px;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
+ padding: 20px;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
}
+
.widget-user-2 .widget-user-username {
- margin-top: 5px;
- margin-bottom: 5px;
- font-size: 25px;
- font-weight: 300;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-size: 25px;
+ font-weight: 300;
}
+
.widget-user-2 .widget-user-desc {
- margin-top: 0;
+ margin-top: 0;
}
+
.widget-user-2 .widget-user-username,
.widget-user-2 .widget-user-desc {
- margin-left: 75px;
+ margin-left: 75px;
}
+
.widget-user-2 .widget-user-image > img {
- width: 65px;
- height: auto;
- float: left;
+ width: 65px;
+ height: auto;
+ float: left;
}
+
/*
* Page: Mailbox
* -------------
*/
.mailbox-messages > .table {
- margin: 0;
+ margin: 0;
}
+
.mailbox-controls {
- padding: 5px;
+ padding: 5px;
}
+
.mailbox-controls.with-border {
- border-bottom: 1px solid #f4f4f4;
+ border-bottom: 1px solid #f4f4f4;
}
+
.mailbox-read-info {
- border-bottom: 1px solid #f4f4f4;
- padding: 10px;
+ border-bottom: 1px solid #f4f4f4;
+ padding: 10px;
}
+
.mailbox-read-info h3 {
- font-size: 20px;
- margin: 0;
+ font-size: 20px;
+ margin: 0;
}
+
.mailbox-read-info h5 {
- margin: 0;
- padding: 5px 0 0 0;
+ margin: 0;
+ padding: 5px 0 0 0;
}
+
.mailbox-read-time {
- color: #999;
- font-size: 13px;
+ color: #999;
+ font-size: 13px;
}
+
.mailbox-read-message {
- padding: 10px;
+ padding: 10px;
}
+
.mailbox-attachments li {
- float: left;
- width: 200px;
- border: 1px solid #eee;
- margin-bottom: 10px;
- margin-right: 10px;
+ float: left;
+ width: 200px;
+ border: 1px solid #eee;
+ margin-bottom: 10px;
+ margin-right: 10px;
}
+
.mailbox-attachment-name {
- font-weight: bold;
- color: #666;
+ font-weight: bold;
+ color: #666;
}
+
.mailbox-attachment-icon,
.mailbox-attachment-info,
.mailbox-attachment-size {
- display: block;
+ display: block;
}
+
.mailbox-attachment-info {
- padding: 10px;
- background: #f4f4f4;
+ padding: 10px;
+ background: #f4f4f4;
}
+
.mailbox-attachment-size {
- color: #999;
- font-size: 12px;
+ color: #999;
+ font-size: 12px;
}
+
.mailbox-attachment-icon {
- text-align: center;
- font-size: 65px;
- color: #666;
- padding: 20px 10px;
+ text-align: center;
+ font-size: 65px;
+ color: #666;
+ padding: 20px 10px;
}
+
.mailbox-attachment-icon.has-img {
- padding: 0;
+ padding: 0;
}
+
.mailbox-attachment-icon.has-img > img {
- max-width: 100%;
- height: auto;
+ max-width: 100%;
+ height: auto;
}
+
/*
* Page: Lock Screen
* -----------------
*/
/* ADD THIS CLASS TO THE TAG */
.lockscreen {
- background: #d2d6de;
+ background: #d2d6de;
}
+
.lockscreen-logo {
- font-size: 35px;
- text-align: center;
- margin-bottom: 25px;
- font-weight: 300;
+ font-size: 35px;
+ text-align: center;
+ margin-bottom: 25px;
+ font-weight: 300;
}
+
.lockscreen-logo a {
- color: #444;
+ color: #444;
}
+
.lockscreen-wrapper {
- max-width: 400px;
- margin: 0 auto;
- margin-top: 10%;
+ max-width: 400px;
+ margin: 0 auto;
+ margin-top: 10%;
}
+
/* User name [optional] */
.lockscreen .lockscreen-name {
- text-align: center;
- font-weight: 600;
+ text-align: center;
+ font-weight: 600;
}
+
/* Will contain the image and the sign in form */
.lockscreen-item {
- border-radius: 4px;
- padding: 0;
- background: #fff;
- position: relative;
- margin: 10px auto 30px auto;
- width: 290px;
+ border-radius: 4px;
+ padding: 0;
+ background: #fff;
+ position: relative;
+ margin: 10px auto 30px auto;
+ width: 290px;
}
+
/* User image */
.lockscreen-image {
- border-radius: 50%;
- position: absolute;
- left: -10px;
- top: -25px;
- background: #fff;
- padding: 5px;
- z-index: 10;
+ border-radius: 50%;
+ position: absolute;
+ left: -10px;
+ top: -25px;
+ background: #fff;
+ padding: 5px;
+ z-index: 10;
}
+
.lockscreen-image > img {
- border-radius: 50%;
- width: 70px;
- height: 70px;
+ border-radius: 50%;
+ width: 70px;
+ height: 70px;
}
+
/* Contains the password input and the login button */
.lockscreen-credentials {
- margin-left: 70px;
+ margin-left: 70px;
}
+
.lockscreen-credentials .form-control {
- border: 0;
+ border: 0;
}
+
.lockscreen-credentials .btn {
- background-color: #fff;
- border: 0;
- padding: 0 10px;
+ background-color: #fff;
+ border: 0;
+ padding: 0 10px;
}
+
.lockscreen-footer {
- margin-top: 10px;
+ margin-top: 10px;
}
+
/*
* Page: Login & Register
* ----------------------
*/
.login-logo,
.register-logo {
- font-size: 35px;
- text-align: center;
- margin-bottom: 25px;
- font-weight: 300;
+ font-size: 35px;
+ text-align: center;
+ margin-bottom: 25px;
+ font-weight: 300;
}
+
.login-logo a,
.register-logo a {
- color: #444;
+ color: #444;
}
+
.login-page,
.register-page {
- background: #d2d6de;
+ background: #d2d6de;
}
+
.login-box,
.register-box {
- width: 360px;
- margin: 7% auto;
+ width: 360px;
+ margin: 7% auto;
}
+
@media (max-width: 768px) {
- .login-box,
- .register-box {
- width: 90%;
- margin-top: 20px;
- }
+ .login-box,
+ .register-box {
+ width: 90%;
+ margin-top: 20px;
+ }
}
+
.login-box-body,
.register-box-body {
- background: #fff;
- padding: 20px;
- border-top: 0;
- color: #666;
+ background: #fff;
+ padding: 20px;
+ border-top: 0;
+ color: #666;
}
+
.login-box-body .form-control-feedback,
.register-box-body .form-control-feedback {
- color: #777;
+ color: #777;
}
+
.login-box-msg,
.register-box-msg {
- margin: 0;
- text-align: center;
- padding: 0 20px 20px 20px;
+ margin: 0;
+ text-align: center;
+ padding: 0 20px 20px 20px;
}
+
.social-auth-links {
- margin: 10px 0;
+ margin: 10px 0;
}
+
/*
* Page: 400 and 500 error pages
* ------------------------------
*/
.error-page {
- width: 600px;
- margin: 20px auto 0 auto;
+ width: 600px;
+ margin: 20px auto 0 auto;
}
+
@media (max-width: 991px) {
- .error-page {
- width: 100%;
- }
+ .error-page {
+ width: 100%;
+ }
}
+
.error-page > .headline {
- float: left;
- font-size: 100px;
- font-weight: 300;
+ float: left;
+ font-size: 100px;
+ font-weight: 300;
}
+
@media (max-width: 991px) {
- .error-page > .headline {
- float: none;
- text-align: center;
- }
+ .error-page > .headline {
+ float: none;
+ text-align: center;
+ }
}
+
.error-page > .error-content {
- margin-left: 190px;
- display: block;
+ margin-left: 190px;
+ display: block;
}
+
@media (max-width: 991px) {
- .error-page > .error-content {
- margin-left: 0;
- }
+ .error-page > .error-content {
+ margin-left: 0;
+ }
}
+
.error-page > .error-content > h3 {
- font-weight: 300;
- font-size: 25px;
+ font-weight: 300;
+ font-size: 25px;
}
+
@media (max-width: 991px) {
- .error-page > .error-content > h3 {
- text-align: center;
- }
+ .error-page > .error-content > h3 {
+ text-align: center;
+ }
}
+
/*
* Page: Invoice
* -------------
*/
.invoice {
- position: relative;
- background: #fff;
- border: 1px solid #f4f4f4;
- padding: 20px;
- margin: 10px 25px;
+ position: relative;
+ background: #fff;
+ border: 1px solid #f4f4f4;
+ padding: 20px;
+ margin: 10px 25px;
}
+
.invoice-title {
- margin-top: 0;
+ margin-top: 0;
}
+
/*
* Page: Profile
* -------------
*/
.profile-user-img {
- margin: 0 auto;
- width: 100px;
- padding: 3px;
- border: 3px solid #d2d6de;
+ margin: 0 auto;
+ width: 100px;
+ padding: 3px;
+ border: 3px solid #d2d6de;
}
+
.profile-username {
- font-size: 21px;
- margin-top: 5px;
+ font-size: 21px;
+ margin-top: 5px;
}
+
.post {
- border-bottom: 1px solid #d2d6de;
- margin-bottom: 15px;
- padding-bottom: 15px;
- color: #666;
+ border-bottom: 1px solid #d2d6de;
+ margin-bottom: 15px;
+ padding-bottom: 15px;
+ color: #666;
}
+
.post:last-of-type {
- border-bottom: 0;
- margin-bottom: 0;
- padding-bottom: 0;
+ border-bottom: 0;
+ margin-bottom: 0;
+ padding-bottom: 0;
}
+
.post .user-block {
- margin-bottom: 15px;
+ margin-bottom: 15px;
}
+
/*
* Social Buttons for Bootstrap
*
@@ -3353,850 +4006,1008 @@ table.text-center th {
* https://github.com/lipis/bootstrap-social
*/
.btn-social {
- position: relative;
- padding-left: 44px;
- text-align: left;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+ position: relative;
+ padding-left: 44px;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
+
.btn-social > :first-child {
- position: absolute;
- left: 0;
- top: 0;
- bottom: 0;
- width: 32px;
- line-height: 34px;
- font-size: 1.6em;
- text-align: center;
- border-right: 1px solid rgba(0, 0, 0, 0.2);
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 32px;
+ line-height: 34px;
+ font-size: 1.6em;
+ text-align: center;
+ border-right: 1px solid rgba(0, 0, 0, 0.2);
}
+
.btn-social.btn-lg {
- padding-left: 61px;
+ padding-left: 61px;
}
+
.btn-social.btn-lg > :first-child {
- line-height: 45px;
- width: 45px;
- font-size: 1.8em;
+ line-height: 45px;
+ width: 45px;
+ font-size: 1.8em;
}
+
.btn-social.btn-sm {
- padding-left: 38px;
+ padding-left: 38px;
}
+
.btn-social.btn-sm > :first-child {
- line-height: 28px;
- width: 28px;
- font-size: 1.4em;
+ line-height: 28px;
+ width: 28px;
+ font-size: 1.4em;
}
+
.btn-social.btn-xs {
- padding-left: 30px;
+ padding-left: 30px;
}
+
.btn-social.btn-xs > :first-child {
- line-height: 20px;
- width: 20px;
- font-size: 1.2em;
+ line-height: 20px;
+ width: 20px;
+ font-size: 1.2em;
}
+
.btn-social-icon {
- position: relative;
- padding-left: 44px;
- text-align: left;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- height: 34px;
- width: 34px;
- padding: 0;
+ position: relative;
+ padding-left: 44px;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 34px;
+ width: 34px;
+ padding: 0;
}
+
.btn-social-icon > :first-child {
- position: absolute;
- left: 0;
- top: 0;
- bottom: 0;
- width: 32px;
- line-height: 34px;
- font-size: 1.6em;
- text-align: center;
- border-right: 1px solid rgba(0, 0, 0, 0.2);
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 32px;
+ line-height: 34px;
+ font-size: 1.6em;
+ text-align: center;
+ border-right: 1px solid rgba(0, 0, 0, 0.2);
}
+
.btn-social-icon.btn-lg {
- padding-left: 61px;
+ padding-left: 61px;
}
+
.btn-social-icon.btn-lg > :first-child {
- line-height: 45px;
- width: 45px;
- font-size: 1.8em;
+ line-height: 45px;
+ width: 45px;
+ font-size: 1.8em;
}
+
.btn-social-icon.btn-sm {
- padding-left: 38px;
+ padding-left: 38px;
}
+
.btn-social-icon.btn-sm > :first-child {
- line-height: 28px;
- width: 28px;
- font-size: 1.4em;
+ line-height: 28px;
+ width: 28px;
+ font-size: 1.4em;
}
+
.btn-social-icon.btn-xs {
- padding-left: 30px;
+ padding-left: 30px;
}
+
.btn-social-icon.btn-xs > :first-child {
- line-height: 20px;
- width: 20px;
- font-size: 1.2em;
+ line-height: 20px;
+ width: 20px;
+ font-size: 1.2em;
}
+
.btn-social-icon > :first-child {
- border: none;
- text-align: center;
- width: 100%;
+ border: none;
+ text-align: center;
+ width: 100%;
}
+
.btn-social-icon.btn-lg {
- height: 45px;
- width: 45px;
- padding-left: 0;
- padding-right: 0;
+ height: 45px;
+ width: 45px;
+ padding-left: 0;
+ padding-right: 0;
}
+
.btn-social-icon.btn-sm {
- height: 30px;
- width: 30px;
- padding-left: 0;
- padding-right: 0;
+ height: 30px;
+ width: 30px;
+ padding-left: 0;
+ padding-right: 0;
}
+
.btn-social-icon.btn-xs {
- height: 22px;
- width: 22px;
- padding-left: 0;
- padding-right: 0;
+ height: 22px;
+ width: 22px;
+ padding-left: 0;
+ padding-right: 0;
}
+
.btn-adn {
- color: #ffffff;
- background-color: #d87a68;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #d87a68;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-adn:focus,
.btn-adn.focus {
- color: #ffffff;
- background-color: #ce563f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #ce563f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-adn:hover {
- color: #ffffff;
- background-color: #ce563f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #ce563f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-adn:active,
.btn-adn.active,
.open > .dropdown-toggle.btn-adn {
- color: #ffffff;
- background-color: #ce563f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #ce563f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-adn:active,
.btn-adn.active,
.open > .dropdown-toggle.btn-adn {
- background-image: none;
+ background-image: none;
}
+
.btn-adn .badge {
- color: #d87a68;
- background-color: #ffffff;
+ color: #d87a68;
+ background-color: #ffffff;
}
+
.btn-bitbucket {
- color: #ffffff;
- background-color: #205081;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #205081;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-bitbucket:focus,
.btn-bitbucket.focus {
- color: #ffffff;
- background-color: #163758;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #163758;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-bitbucket:hover {
- color: #ffffff;
- background-color: #163758;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #163758;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-bitbucket:active,
.btn-bitbucket.active,
.open > .dropdown-toggle.btn-bitbucket {
- color: #ffffff;
- background-color: #163758;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #163758;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-bitbucket:active,
.btn-bitbucket.active,
.open > .dropdown-toggle.btn-bitbucket {
- background-image: none;
+ background-image: none;
}
+
.btn-bitbucket .badge {
- color: #205081;
- background-color: #ffffff;
+ color: #205081;
+ background-color: #ffffff;
}
+
.btn-dropbox {
- color: #ffffff;
- background-color: #1087dd;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1087dd;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-dropbox:focus,
.btn-dropbox.focus {
- color: #ffffff;
- background-color: #0d6aad;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #0d6aad;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-dropbox:hover {
- color: #ffffff;
- background-color: #0d6aad;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #0d6aad;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-dropbox:active,
.btn-dropbox.active,
.open > .dropdown-toggle.btn-dropbox {
- color: #ffffff;
- background-color: #0d6aad;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #0d6aad;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-dropbox:active,
.btn-dropbox.active,
.open > .dropdown-toggle.btn-dropbox {
- background-image: none;
+ background-image: none;
}
+
.btn-dropbox .badge {
- color: #1087dd;
- background-color: #ffffff;
+ color: #1087dd;
+ background-color: #ffffff;
}
+
.btn-facebook {
- color: #ffffff;
- background-color: #3b5998;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #3b5998;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-facebook:focus,
.btn-facebook.focus {
- color: #ffffff;
- background-color: #2d4373;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2d4373;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-facebook:hover {
- color: #ffffff;
- background-color: #2d4373;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2d4373;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-facebook:active,
.btn-facebook.active,
.open > .dropdown-toggle.btn-facebook {
- color: #ffffff;
- background-color: #2d4373;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2d4373;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-facebook:active,
.btn-facebook.active,
.open > .dropdown-toggle.btn-facebook {
- background-image: none;
+ background-image: none;
}
+
.btn-facebook .badge {
- color: #3b5998;
- background-color: #ffffff;
+ color: #3b5998;
+ background-color: #ffffff;
}
+
.btn-flickr {
- color: #ffffff;
- background-color: #ff0084;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #ff0084;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-flickr:focus,
.btn-flickr.focus {
- color: #ffffff;
- background-color: #cc006a;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc006a;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-flickr:hover {
- color: #ffffff;
- background-color: #cc006a;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc006a;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-flickr:active,
.btn-flickr.active,
.open > .dropdown-toggle.btn-flickr {
- color: #ffffff;
- background-color: #cc006a;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc006a;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-flickr:active,
.btn-flickr.active,
.open > .dropdown-toggle.btn-flickr {
- background-image: none;
+ background-image: none;
}
+
.btn-flickr .badge {
- color: #ff0084;
- background-color: #ffffff;
+ color: #ff0084;
+ background-color: #ffffff;
}
+
.btn-foursquare {
- color: #ffffff;
- background-color: #f94877;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #f94877;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-foursquare:focus,
.btn-foursquare.focus {
- color: #ffffff;
- background-color: #f71752;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #f71752;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-foursquare:hover {
- color: #ffffff;
- background-color: #f71752;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #f71752;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-foursquare:active,
.btn-foursquare.active,
.open > .dropdown-toggle.btn-foursquare {
- color: #ffffff;
- background-color: #f71752;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #f71752;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-foursquare:active,
.btn-foursquare.active,
.open > .dropdown-toggle.btn-foursquare {
- background-image: none;
+ background-image: none;
}
+
.btn-foursquare .badge {
- color: #f94877;
- background-color: #ffffff;
+ color: #f94877;
+ background-color: #ffffff;
}
+
.btn-github {
- color: #ffffff;
- background-color: #444444;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #444444;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-github:focus,
.btn-github.focus {
- color: #ffffff;
- background-color: #2b2b2b;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2b2b2b;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-github:hover {
- color: #ffffff;
- background-color: #2b2b2b;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2b2b2b;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-github:active,
.btn-github.active,
.open > .dropdown-toggle.btn-github {
- color: #ffffff;
- background-color: #2b2b2b;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2b2b2b;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-github:active,
.btn-github.active,
.open > .dropdown-toggle.btn-github {
- background-image: none;
+ background-image: none;
}
+
.btn-github .badge {
- color: #444444;
- background-color: #ffffff;
+ color: #444444;
+ background-color: #ffffff;
}
+
.btn-google {
- color: #ffffff;
- background-color: #dd4b39;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #dd4b39;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-google:focus,
.btn-google.focus {
- color: #ffffff;
- background-color: #c23321;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #c23321;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-google:hover {
- color: #ffffff;
- background-color: #c23321;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #c23321;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-google:active,
.btn-google.active,
.open > .dropdown-toggle.btn-google {
- color: #ffffff;
- background-color: #c23321;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #c23321;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-google:active,
.btn-google.active,
.open > .dropdown-toggle.btn-google {
- background-image: none;
+ background-image: none;
}
+
.btn-google .badge {
- color: #dd4b39;
- background-color: #ffffff;
+ color: #dd4b39;
+ background-color: #ffffff;
}
+
.btn-instagram {
- color: #ffffff;
- background-color: #3f729b;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #3f729b;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-instagram:focus,
.btn-instagram.focus {
- color: #ffffff;
- background-color: #305777;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #305777;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-instagram:hover {
- color: #ffffff;
- background-color: #305777;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #305777;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-instagram:active,
.btn-instagram.active,
.open > .dropdown-toggle.btn-instagram {
- color: #ffffff;
- background-color: #305777;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #305777;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-instagram:active,
.btn-instagram.active,
.open > .dropdown-toggle.btn-instagram {
- background-image: none;
+ background-image: none;
}
+
.btn-instagram .badge {
- color: #3f729b;
- background-color: #ffffff;
+ color: #3f729b;
+ background-color: #ffffff;
}
+
.btn-linkedin {
- color: #ffffff;
- background-color: #007bb6;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #007bb6;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-linkedin:focus,
.btn-linkedin.focus {
- color: #ffffff;
- background-color: #005983;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #005983;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-linkedin:hover {
- color: #ffffff;
- background-color: #005983;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #005983;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-linkedin:active,
.btn-linkedin.active,
.open > .dropdown-toggle.btn-linkedin {
- color: #ffffff;
- background-color: #005983;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #005983;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-linkedin:active,
.btn-linkedin.active,
.open > .dropdown-toggle.btn-linkedin {
- background-image: none;
+ background-image: none;
}
+
.btn-linkedin .badge {
- color: #007bb6;
- background-color: #ffffff;
+ color: #007bb6;
+ background-color: #ffffff;
}
+
.btn-microsoft {
- color: #ffffff;
- background-color: #2672ec;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2672ec;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-microsoft:focus,
.btn-microsoft.focus {
- color: #ffffff;
- background-color: #125acd;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #125acd;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-microsoft:hover {
- color: #ffffff;
- background-color: #125acd;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #125acd;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-microsoft:active,
.btn-microsoft.active,
.open > .dropdown-toggle.btn-microsoft {
- color: #ffffff;
- background-color: #125acd;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #125acd;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-microsoft:active,
.btn-microsoft.active,
.open > .dropdown-toggle.btn-microsoft {
- background-image: none;
+ background-image: none;
}
+
.btn-microsoft .badge {
- color: #2672ec;
- background-color: #ffffff;
+ color: #2672ec;
+ background-color: #ffffff;
}
+
.btn-openid {
- color: #ffffff;
- background-color: #f7931e;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #f7931e;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-openid:focus,
.btn-openid.focus {
- color: #ffffff;
- background-color: #da7908;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #da7908;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-openid:hover {
- color: #ffffff;
- background-color: #da7908;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #da7908;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-openid:active,
.btn-openid.active,
.open > .dropdown-toggle.btn-openid {
- color: #ffffff;
- background-color: #da7908;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #da7908;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-openid:active,
.btn-openid.active,
.open > .dropdown-toggle.btn-openid {
- background-image: none;
+ background-image: none;
}
+
.btn-openid .badge {
- color: #f7931e;
- background-color: #ffffff;
+ color: #f7931e;
+ background-color: #ffffff;
}
+
.btn-pinterest {
- color: #ffffff;
- background-color: #cb2027;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cb2027;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-pinterest:focus,
.btn-pinterest.focus {
- color: #ffffff;
- background-color: #9f191f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #9f191f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-pinterest:hover {
- color: #ffffff;
- background-color: #9f191f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #9f191f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-pinterest:active,
.btn-pinterest.active,
.open > .dropdown-toggle.btn-pinterest {
- color: #ffffff;
- background-color: #9f191f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #9f191f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-pinterest:active,
.btn-pinterest.active,
.open > .dropdown-toggle.btn-pinterest {
- background-image: none;
+ background-image: none;
}
+
.btn-pinterest .badge {
- color: #cb2027;
- background-color: #ffffff;
+ color: #cb2027;
+ background-color: #ffffff;
}
+
.btn-reddit {
- color: #000000;
- background-color: #eff7ff;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #000000;
+ background-color: #eff7ff;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-reddit:focus,
.btn-reddit.focus {
- color: #000000;
- background-color: #bcddff;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #000000;
+ background-color: #bcddff;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-reddit:hover {
- color: #000000;
- background-color: #bcddff;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #000000;
+ background-color: #bcddff;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-reddit:active,
.btn-reddit.active,
.open > .dropdown-toggle.btn-reddit {
- color: #000000;
- background-color: #bcddff;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #000000;
+ background-color: #bcddff;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-reddit:active,
.btn-reddit.active,
.open > .dropdown-toggle.btn-reddit {
- background-image: none;
+ background-image: none;
}
+
.btn-reddit .badge {
- color: #eff7ff;
- background-color: #000000;
+ color: #eff7ff;
+ background-color: #000000;
}
+
.btn-soundcloud {
- color: #ffffff;
- background-color: #ff5500;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #ff5500;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-soundcloud:focus,
.btn-soundcloud.focus {
- color: #ffffff;
- background-color: #cc4400;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc4400;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-soundcloud:hover {
- color: #ffffff;
- background-color: #cc4400;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc4400;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-soundcloud:active,
.btn-soundcloud.active,
.open > .dropdown-toggle.btn-soundcloud {
- color: #ffffff;
- background-color: #cc4400;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #cc4400;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-soundcloud:active,
.btn-soundcloud.active,
.open > .dropdown-toggle.btn-soundcloud {
- background-image: none;
+ background-image: none;
}
+
.btn-soundcloud .badge {
- color: #ff5500;
- background-color: #ffffff;
+ color: #ff5500;
+ background-color: #ffffff;
}
+
.btn-tumblr {
- color: #ffffff;
- background-color: #2c4762;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2c4762;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-tumblr:focus,
.btn-tumblr.focus {
- color: #ffffff;
- background-color: #1c2d3f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1c2d3f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-tumblr:hover {
- color: #ffffff;
- background-color: #1c2d3f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1c2d3f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-tumblr:active,
.btn-tumblr.active,
.open > .dropdown-toggle.btn-tumblr {
- color: #ffffff;
- background-color: #1c2d3f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1c2d3f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-tumblr:active,
.btn-tumblr.active,
.open > .dropdown-toggle.btn-tumblr {
- background-image: none;
+ background-image: none;
}
+
.btn-tumblr .badge {
- color: #2c4762;
- background-color: #ffffff;
+ color: #2c4762;
+ background-color: #ffffff;
}
+
.btn-twitter {
- color: #ffffff;
- background-color: #55acee;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #55acee;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-twitter:focus,
.btn-twitter.focus {
- color: #ffffff;
- background-color: #2795e9;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2795e9;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-twitter:hover {
- color: #ffffff;
- background-color: #2795e9;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2795e9;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-twitter:active,
.btn-twitter.active,
.open > .dropdown-toggle.btn-twitter {
- color: #ffffff;
- background-color: #2795e9;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #2795e9;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-twitter:active,
.btn-twitter.active,
.open > .dropdown-toggle.btn-twitter {
- background-image: none;
+ background-image: none;
}
+
.btn-twitter .badge {
- color: #55acee;
- background-color: #ffffff;
+ color: #55acee;
+ background-color: #ffffff;
}
+
.btn-vimeo {
- color: #ffffff;
- background-color: #1ab7ea;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1ab7ea;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vimeo:focus,
.btn-vimeo.focus {
- color: #ffffff;
- background-color: #1295bf;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1295bf;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vimeo:hover {
- color: #ffffff;
- background-color: #1295bf;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1295bf;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vimeo:active,
.btn-vimeo.active,
.open > .dropdown-toggle.btn-vimeo {
- color: #ffffff;
- background-color: #1295bf;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #1295bf;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vimeo:active,
.btn-vimeo.active,
.open > .dropdown-toggle.btn-vimeo {
- background-image: none;
+ background-image: none;
}
+
.btn-vimeo .badge {
- color: #1ab7ea;
- background-color: #ffffff;
+ color: #1ab7ea;
+ background-color: #ffffff;
}
+
.btn-vk {
- color: #ffffff;
- background-color: #587ea3;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #587ea3;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vk:focus,
.btn-vk.focus {
- color: #ffffff;
- background-color: #466482;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #466482;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vk:hover {
- color: #ffffff;
- background-color: #466482;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #466482;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vk:active,
.btn-vk.active,
.open > .dropdown-toggle.btn-vk {
- color: #ffffff;
- background-color: #466482;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #466482;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-vk:active,
.btn-vk.active,
.open > .dropdown-toggle.btn-vk {
- background-image: none;
+ background-image: none;
}
+
.btn-vk .badge {
- color: #587ea3;
- background-color: #ffffff;
+ color: #587ea3;
+ background-color: #ffffff;
}
+
.btn-yahoo {
- color: #ffffff;
- background-color: #720e9e;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #720e9e;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-yahoo:focus,
.btn-yahoo.focus {
- color: #ffffff;
- background-color: #500a6f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #500a6f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-yahoo:hover {
- color: #ffffff;
- background-color: #500a6f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #500a6f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-yahoo:active,
.btn-yahoo.active,
.open > .dropdown-toggle.btn-yahoo {
- color: #ffffff;
- background-color: #500a6f;
- border-color: rgba(0, 0, 0, 0.2);
+ color: #ffffff;
+ background-color: #500a6f;
+ border-color: rgba(0, 0, 0, 0.2);
}
+
.btn-yahoo:active,
.btn-yahoo.active,
.open > .dropdown-toggle.btn-yahoo {
- background-image: none;
+ background-image: none;
}
+
.btn-yahoo .badge {
- color: #720e9e;
- background-color: #ffffff;
+ color: #720e9e;
+ background-color: #ffffff;
}
+
/*
* Plugin: Full Calendar
* ---------------------
*/
.fc-button {
- background: #f4f4f4;
- background-image: none;
- color: #444;
- border-color: #ddd;
- border-bottom-color: #ddd;
+ background: #f4f4f4;
+ background-image: none;
+ color: #444;
+ border-color: #ddd;
+ border-bottom-color: #ddd;
}
+
.fc-button:hover,
.fc-button:active,
.fc-button.hover {
- background-color: #e9e9e9;
+ background-color: #e9e9e9;
}
+
.fc-header-title h2 {
- font-size: 15px;
- line-height: 1.6em;
- color: #666;
- margin-left: 10px;
+ font-size: 15px;
+ line-height: 1.6em;
+ color: #666;
+ margin-left: 10px;
}
+
.fc-header-right {
- padding-right: 10px;
+ padding-right: 10px;
}
+
.fc-header-left {
- padding-left: 10px;
+ padding-left: 10px;
}
+
.fc-widget-header {
- background: #fafafa;
+ background: #fafafa;
}
+
.fc-grid {
- width: 100%;
- border: 0;
+ width: 100%;
+ border: 0;
}
+
.fc-widget-header:first-of-type,
.fc-widget-content:first-of-type {
- border-left: 0;
- border-right: 0;
+ border-left: 0;
+ border-right: 0;
}
+
.fc-widget-header:last-of-type,
.fc-widget-content:last-of-type {
- border-right: 0;
+ border-right: 0;
}
+
.fc-toolbar {
- padding: 10px;
- margin: 0;
+ padding: 10px;
+ margin: 0;
}
+
.fc-day-number {
- font-size: 20px;
- font-weight: 300;
- padding-right: 10px;
+ font-size: 20px;
+ font-weight: 300;
+ padding-right: 10px;
}
+
.fc-color-picker {
- list-style: none;
- margin: 0;
- padding: 0;
+ list-style: none;
+ margin: 0;
+ padding: 0;
}
+
.fc-color-picker > li {
- float: left;
- font-size: 30px;
- margin-right: 5px;
- line-height: 30px;
+ float: left;
+ font-size: 30px;
+ margin-right: 5px;
+ line-height: 30px;
}
+
.fc-color-picker > li .fa {
- -webkit-transition: -webkit-transform linear 0.3s;
- -moz-transition: -moz-transform linear 0.3s;
- -o-transition: -o-transform linear 0.3s;
- transition: transform linear 0.3s;
+ -webkit-transition: -webkit-transform linear 0.3s;
+ -moz-transition: -moz-transform linear 0.3s;
+ -o-transition: -o-transform linear 0.3s;
+ transition: transform linear 0.3s;
}
+
.fc-color-picker > li .fa:hover {
- -webkit-transform: rotate(30deg);
- -ms-transform: rotate(30deg);
- -o-transform: rotate(30deg);
- transform: rotate(30deg);
+ -webkit-transform: rotate(30deg);
+ -ms-transform: rotate(30deg);
+ -o-transform: rotate(30deg);
+ transform: rotate(30deg);
}
+
#add-new-event {
- -webkit-transition: all linear 0.3s;
- -o-transition: all linear 0.3s;
- transition: all linear 0.3s;
+ -webkit-transition: all linear 0.3s;
+ -o-transition: all linear 0.3s;
+ transition: all linear 0.3s;
}
+
.external-event {
- padding: 5px 10px;
- font-weight: bold;
- margin-bottom: 4px;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
- border-radius: 3px;
- cursor: move;
-}
+ padding: 5px 10px;
+ font-weight: bold;
+ margin-bottom: 4px;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 3px;
+ cursor: move;
+}
+
.external-event:hover {
- box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);
+ box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);
}
+
/*
* Plugin: Select2
* ---------------
@@ -4207,132 +5018,164 @@ table.text-center th {
.select2-selection:focus,
.select2-container--default:active,
.select2-selection:active {
- outline: none;
+ outline: none;
}
+
.select2-container--default .select2-selection--single,
.select2-selection .select2-selection--single {
- border: 1px solid #d2d6de;
- border-radius: 0;
- padding: 6px 12px;
- height: 34px;
+ border: 1px solid #d2d6de;
+ border-radius: 0;
+ padding: 6px 12px;
+ height: 34px;
}
+
.select2-container--default.select2-container--open {
- border-color: #3c8dbc;
+ border-color: #3c8dbc;
}
+
.select2-dropdown {
- border: 1px solid #d2d6de;
- border-radius: 0;
+ border: 1px solid #d2d6de;
+ border-radius: 0;
}
+
.select2-container--default .select2-results__option--highlighted[aria-selected] {
- background-color: #3c8dbc;
- color: white;
+ background-color: #3c8dbc;
+ color: white;
}
+
.select2-results__option {
- padding: 6px 12px;
- user-select: none;
- -webkit-user-select: none;
+ padding: 6px 12px;
+ user-select: none;
+ -webkit-user-select: none;
}
+
.select2-container .select2-selection--single .select2-selection__rendered {
- padding-left: 0;
- padding-right: 0;
- height: auto;
- margin-top: -4px;
+ padding-left: 0;
+ padding-right: 0;
+ height: auto;
+ margin-top: -4px;
}
+
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
- padding-right: 6px;
- padding-left: 20px;
+ padding-right: 6px;
+ padding-left: 20px;
}
+
.select2-container--default .select2-selection--single .select2-selection__arrow {
- height: 28px;
- right: 3px;
+ height: 28px;
+ right: 3px;
}
+
.select2-container--default .select2-selection--single .select2-selection__arrow b {
- margin-top: 0;
+ margin-top: 0;
}
+
.select2-dropdown .select2-search__field,
.select2-search--inline .select2-search__field {
- border: 1px solid #d2d6de;
+ border: 1px solid #d2d6de;
}
+
.select2-dropdown .select2-search__field:focus,
.select2-search--inline .select2-search__field:focus {
- outline: none;
- border: 1px solid #3c8dbc;
+ outline: none;
+ border: 1px solid #3c8dbc;
}
+
.select2-container--default .select2-results__option[aria-disabled=true] {
- color: #999;
+ color: #999;
}
+
.select2-container--default .select2-results__option[aria-selected=true] {
- background-color: #ddd;
+ background-color: #ddd;
}
+
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[aria-selected=true]:hover {
- color: #444;
+ color: #444;
}
+
.select2-container--default .select2-selection--multiple {
- border: 1px solid #d2d6de;
- border-radius: 0;
+ border: 1px solid #d2d6de;
+ border-radius: 0;
}
+
.select2-container--default .select2-selection--multiple:focus {
- border-color: #3c8dbc;
+ border-color: #3c8dbc;
}
+
.select2-container--default.select2-container--focus .select2-selection--multiple {
- border-color: #d2d6de;
+ border-color: #d2d6de;
}
+
.select2-container--default .select2-selection--multiple .select2-selection__choice {
- background-color: #3c8dbc;
- border-color: #367fa9;
- padding: 1px 10px;
- color: #fff;
+ background-color: #3c8dbc;
+ border-color: #367fa9;
+ padding: 1px 10px;
+ color: #fff;
}
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
- margin-right: 5px;
- color: rgba(255, 255, 255, 0.7);
+ margin-right: 5px;
+ color: rgba(255, 255, 255, 0.7);
}
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
- color: #fff;
+ color: #fff;
}
+
.select2-container .select2-selection--single .select2-selection__rendered {
- padding-right: 10px;
+ padding-right: 10px;
}
+
/*
* General: Miscellaneous
* ----------------------
*/
.pad {
- padding: 10px;
+ padding: 10px;
}
+
.margin {
- margin: 10px;
+ margin: 10px;
}
+
.margin-bottom {
- margin-bottom: 20px;
+ margin-bottom: 20px;
}
+
.margin-bottom-none {
- margin-bottom: 0;
+ margin-bottom: 0;
}
+
.margin-r-5 {
- margin-right: 5px;
+ margin-right: 5px;
}
+
.inline {
- display: inline;
+ display: inline;
}
+
.description-block {
- display: block;
- margin: 10px 0;
- text-align: center;
+ display: block;
+ margin: 10px 0;
+ text-align: center;
}
+
.description-block.margin-bottom {
- margin-bottom: 25px;
+ margin-bottom: 25px;
}
+
.description-block > .description-header {
- margin: 0;
- padding: 0;
- font-weight: 600;
- font-size: 16px;
+ margin: 0;
+ padding: 0;
+ font-weight: 600;
+ font-size: 16px;
}
+
.description-block > .description-text {
- text-transform: uppercase;
+ text-transform: uppercase;
}
+
.bg-red,
.bg-yellow,
.bg-aqua,
@@ -4392,541 +5235,660 @@ table.text-center th {
.modal-danger .modal-body,
.modal-danger .modal-header,
.modal-danger .modal-footer {
- color: #fff !important;
+ color: #fff !important;
}
+
.bg-gray {
- color: #000;
- background-color: #d2d6de !important;
+ color: #000;
+ background-color: #d2d6de !important;
}
+
.bg-gray-light {
- background-color: #f7f7f7;
+ background-color: #f7f7f7;
}
+
.bg-black {
- background-color: #111111 !important;
+ background-color: #111111 !important;
}
+
.bg-red,
.callout.callout-danger,
.alert-danger,
.alert-error,
.label-danger,
.modal-danger .modal-body {
- background-color: #dd4b39 !important;
+ background-color: #dd4b39 !important;
}
+
.bg-yellow,
.callout.callout-warning,
.alert-warning,
.label-warning,
.modal-warning .modal-body {
- background-color: #f39c12 !important;
+ background-color: #f39c12 !important;
}
+
.bg-aqua,
.callout.callout-info,
.alert-info,
.label-info,
.modal-info .modal-body {
- background-color: #00c0ef !important;
+ background-color: #00c0ef !important;
}
+
.bg-blue {
- background-color: #0073b7 !important;
+ background-color: #0073b7 !important;
}
+
.bg-light-blue,
.label-primary,
.modal-primary .modal-body {
- background-color: #3c8dbc !important;
+ background-color: #3c8dbc !important;
}
+
.bg-green,
.callout.callout-success,
.alert-success,
.label-success,
.modal-success .modal-body {
- background-color: #00a65a !important;
+ background-color: #00a65a !important;
}
+
.bg-navy {
- background-color: #001f3f !important;
+ background-color: #001f3f !important;
}
+
.bg-teal {
- background-color: #39cccc !important;
+ background-color: #39cccc !important;
}
+
.bg-olive {
- background-color: #3d9970 !important;
+ background-color: #3d9970 !important;
}
+
.bg-lime {
- background-color: #01ff70 !important;
+ background-color: #01ff70 !important;
}
+
.bg-orange {
- background-color: #ff851b !important;
+ background-color: #ff851b !important;
}
+
.bg-fuchsia {
- background-color: #f012be !important;
+ background-color: #f012be !important;
}
+
.bg-purple {
- background-color: #605ca8 !important;
+ background-color: #605ca8 !important;
}
+
.bg-maroon {
- background-color: #d81b60 !important;
+ background-color: #d81b60 !important;
}
+
.bg-gray-active {
- color: #000;
- background-color: #b5bbc8 !important;
+ color: #000;
+ background-color: #b5bbc8 !important;
}
+
.bg-black-active {
- background-color: #000000 !important;
+ background-color: #000000 !important;
}
+
.bg-red-active,
.modal-danger .modal-header,
.modal-danger .modal-footer {
- background-color: #d33724 !important;
+ background-color: #d33724 !important;
}
+
.bg-yellow-active,
.modal-warning .modal-header,
.modal-warning .modal-footer {
- background-color: #db8b0b !important;
+ background-color: #db8b0b !important;
}
+
.bg-aqua-active,
.modal-info .modal-header,
.modal-info .modal-footer {
- background-color: #00a7d0 !important;
+ background-color: #00a7d0 !important;
}
+
.bg-blue-active {
- background-color: #005384 !important;
+ background-color: #005384 !important;
}
+
.bg-light-blue-active,
.modal-primary .modal-header,
.modal-primary .modal-footer {
- background-color: #357ca5 !important;
+ background-color: #357ca5 !important;
}
+
.bg-green-active,
.modal-success .modal-header,
.modal-success .modal-footer {
- background-color: #008d4c !important;
+ background-color: #008d4c !important;
}
+
.bg-navy-active {
- background-color: #001a35 !important;
+ background-color: #001a35 !important;
}
+
.bg-teal-active {
- background-color: #30bbbb !important;
+ background-color: #30bbbb !important;
}
+
.bg-olive-active {
- background-color: #368763 !important;
+ background-color: #368763 !important;
}
+
.bg-lime-active {
- background-color: #00e765 !important;
+ background-color: #00e765 !important;
}
+
.bg-orange-active {
- background-color: #ff7701 !important;
+ background-color: #ff7701 !important;
}
+
.bg-fuchsia-active {
- background-color: #db0ead !important;
+ background-color: #db0ead !important;
}
+
.bg-purple-active {
- background-color: #555299 !important;
+ background-color: #555299 !important;
}
+
.bg-maroon-active {
- background-color: #ca195a !important;
+ background-color: #ca195a !important;
}
+
[class^="bg-"].disabled {
- opacity: 0.65;
- filter: alpha(opacity=65);
+ opacity: 0.65;
+ filter: alpha(opacity=65);
}
+
.text-red {
- color: #dd4b39 !important;
+ color: #dd4b39 !important;
}
+
.text-yellow {
- color: #f39c12 !important;
+ color: #f39c12 !important;
}
+
.text-aqua {
- color: #00c0ef !important;
+ color: #00c0ef !important;
}
+
.text-blue {
- color: #0073b7 !important;
+ color: #0073b7 !important;
}
+
.text-black {
- color: #111111 !important;
+ color: #111111 !important;
}
+
.text-light-blue {
- color: #3c8dbc !important;
+ color: #3c8dbc !important;
}
+
.text-green {
- color: #00a65a !important;
+ color: #00a65a !important;
}
+
.text-gray {
- color: #d2d6de !important;
+ color: #d2d6de !important;
}
+
.text-navy {
- color: #001f3f !important;
+ color: #001f3f !important;
}
+
.text-teal {
- color: #39cccc !important;
+ color: #39cccc !important;
}
+
.text-olive {
- color: #3d9970 !important;
+ color: #3d9970 !important;
}
+
.text-lime {
- color: #01ff70 !important;
+ color: #01ff70 !important;
}
+
.text-orange {
- color: #ff851b !important;
+ color: #ff851b !important;
}
+
.text-fuchsia {
- color: #f012be !important;
+ color: #f012be !important;
}
+
.text-purple {
- color: #605ca8 !important;
+ color: #605ca8 !important;
}
+
.text-maroon {
- color: #d81b60 !important;
+ color: #d81b60 !important;
}
+
.link-muted {
- color: #7a869d;
+ color: #7a869d;
}
+
.link-muted:hover,
.link-muted:focus {
- color: #606c84;
+ color: #606c84;
}
+
.link-black {
- color: #666;
+ color: #666;
}
+
.link-black:hover,
.link-black:focus {
- color: #999;
+ color: #999;
}
+
.hide {
- display: none !important;
+ display: none !important;
}
+
.no-border {
- border: 0 !important;
+ border: 0 !important;
}
+
.no-padding {
- padding: 0 !important;
+ padding: 0 !important;
}
+
.no-margin {
- margin: 0 !important;
+ margin: 0 !important;
}
+
.no-shadow {
- box-shadow: none !important;
+ box-shadow: none !important;
}
+
.list-unstyled,
.chart-legend,
.contacts-list,
.users-list,
.mailbox-attachments {
- list-style: none;
- margin: 0;
- padding: 0;
+ list-style: none;
+ margin: 0;
+ padding: 0;
}
+
.list-group-unbordered > .list-group-item {
- border-left: 0;
- border-right: 0;
- border-radius: 0;
- padding-left: 0;
- padding-right: 0;
+ border-left: 0;
+ border-right: 0;
+ border-radius: 0;
+ padding-left: 0;
+ padding-right: 0;
}
+
.flat {
- border-radius: 0 !important;
+ border-radius: 0 !important;
}
+
.text-bold,
.text-bold.table td,
.text-bold.table th {
- font-weight: 700;
+ font-weight: 700;
}
+
.text-sm {
- font-size: 12px;
+ font-size: 12px;
}
+
.jqstooltip {
- padding: 5px !important;
- width: auto !important;
- height: auto !important;
+ padding: 5px !important;
+ width: auto !important;
+ height: auto !important;
}
+
.bg-teal-gradient {
- background: #39cccc !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;
- background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important;
- background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important;
- background: -o-linear-gradient(#7adddd, #39cccc) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;
- color: #fff;
-}
+ background: #39cccc !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;
+ background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important;
+ background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important;
+ background: -o-linear-gradient(#7adddd, #39cccc) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-light-blue-gradient {
- background: #3c8dbc !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;
- background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;
- background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important;
- background: -o-linear-gradient(#67a8ce, #3c8dbc) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;
- color: #fff;
-}
+ background: #3c8dbc !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;
+ background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;
+ background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important;
+ background: -o-linear-gradient(#67a8ce, #3c8dbc) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-blue-gradient {
- background: #0073b7 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;
- background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important;
- background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important;
- background: -o-linear-gradient(#0089db, #0073b7) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;
- color: #fff;
-}
+ background: #0073b7 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;
+ background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important;
+ background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important;
+ background: -o-linear-gradient(#0089db, #0073b7) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-aqua-gradient {
- background: #00c0ef !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;
- background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;
- background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important;
- background: -o-linear-gradient(#14d1ff, #00c0ef) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;
- color: #fff;
-}
+ background: #00c0ef !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;
+ background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;
+ background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important;
+ background: -o-linear-gradient(#14d1ff, #00c0ef) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-yellow-gradient {
- background: #f39c12 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;
- background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;
- background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important;
- background: -o-linear-gradient(#f7bc60, #f39c12) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;
- color: #fff;
-}
+ background: #f39c12 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;
+ background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;
+ background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important;
+ background: -o-linear-gradient(#f7bc60, #f39c12) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-purple-gradient {
- background: #605ca8 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;
- background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important;
- background: -moz-linear-gradient(center bottom, #605ca8 0%, #9491c4 100%) !important;
- background: -o-linear-gradient(#9491c4, #605ca8) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;
- color: #fff;
-}
+ background: #605ca8 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;
+ background: -ms-linear-gradient(bottom, #605ca8, #9491c4) !important;
+ background: -moz-linear-gradient(center bottom, #605ca8 0%, #9491c4 100%) !important;
+ background: -o-linear-gradient(#9491c4, #605ca8) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-green-gradient {
- background: #00a65a !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;
- background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;
- background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important;
- background: -o-linear-gradient(#00ca6d, #00a65a) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;
- color: #fff;
-}
+ background: #00a65a !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;
+ background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;
+ background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important;
+ background: -o-linear-gradient(#00ca6d, #00a65a) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-red-gradient {
- background: #dd4b39 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;
- background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important;
- background: -moz-linear-gradient(center bottom, #dd4b39 0%, #e47365 100%) !important;
- background: -o-linear-gradient(#e47365, #dd4b39) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;
- color: #fff;
-}
+ background: #dd4b39 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;
+ background: -ms-linear-gradient(bottom, #dd4b39, #e47365) !important;
+ background: -moz-linear-gradient(center bottom, #dd4b39 0%, #e47365 100%) !important;
+ background: -o-linear-gradient(#e47365, #dd4b39) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-black-gradient {
- background: #111111 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111111), color-stop(1, #2b2b2b)) !important;
- background: -ms-linear-gradient(bottom, #111111, #2b2b2b) !important;
- background: -moz-linear-gradient(center bottom, #111111 0%, #2b2b2b 100%) !important;
- background: -o-linear-gradient(#2b2b2b, #111111) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;
- color: #fff;
-}
+ background: #111111 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #111111), color-stop(1, #2b2b2b)) !important;
+ background: -ms-linear-gradient(bottom, #111111, #2b2b2b) !important;
+ background: -moz-linear-gradient(center bottom, #111111 0%, #2b2b2b 100%) !important;
+ background: -o-linear-gradient(#2b2b2b, #111111) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;
+ color: #fff;
+}
+
.bg-maroon-gradient {
- background: #d81b60 !important;
- background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;
- background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;
- background: -moz-linear-gradient(center bottom, #d81b60 0%, #e73f7c 100%) !important;
- background: -o-linear-gradient(#e73f7c, #d81b60) !important;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;
- color: #fff;
-}
+ background: #d81b60 !important;
+ background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;
+ background: -ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;
+ background: -moz-linear-gradient(center bottom, #d81b60 0%, #e73f7c 100%) !important;
+ background: -o-linear-gradient(#e73f7c, #d81b60) !important;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;
+ color: #fff;
+}
+
.description-block .description-icon {
- font-size: 16px;
+ font-size: 16px;
}
+
.no-pad-top {
- padding-top: 0;
+ padding-top: 0;
}
+
.position-static {
- position: static !important;
+ position: static !important;
}
+
.list-header {
- font-size: 15px;
- padding: 10px 4px;
- font-weight: bold;
- color: #666;
+ font-size: 15px;
+ padding: 10px 4px;
+ font-weight: bold;
+ color: #666;
}
+
.list-seperator {
- height: 1px;
- background: #f4f4f4;
- margin: 15px 0 9px 0;
+ height: 1px;
+ background: #f4f4f4;
+ margin: 15px 0 9px 0;
}
+
.list-link > a {
- padding: 4px;
- color: #777;
+ padding: 4px;
+ color: #777;
}
+
.list-link > a:hover {
- color: #222;
+ color: #222;
}
+
.font-light {
- font-weight: 300;
+ font-weight: 300;
}
+
.user-block:before,
.user-block:after {
- content: " ";
- display: table;
+ content: " ";
+ display: table;
}
+
.user-block:after {
- clear: both;
+ clear: both;
}
+
.user-block img {
- width: 40px;
- height: 40px;
- float: left;
+ width: 40px;
+ height: 40px;
+ float: left;
}
+
.user-block .username,
.user-block .description,
.user-block .comment {
- display: block;
- margin-left: 50px;
+ display: block;
+ margin-left: 50px;
}
+
.user-block .username {
- font-size: 16px;
- font-weight: 600;
+ font-size: 16px;
+ font-weight: 600;
}
+
.user-block .description {
- color: #999;
- font-size: 13px;
+ color: #999;
+ font-size: 13px;
}
+
.user-block.user-block-sm .username,
.user-block.user-block-sm .description,
.user-block.user-block-sm .comment {
- margin-left: 40px;
+ margin-left: 40px;
}
+
.user-block.user-block-sm .username {
- font-size: 14px;
+ font-size: 14px;
}
+
.img-sm,
.img-md,
.img-lg,
.box-comments .box-comment img,
.user-block.user-block-sm img {
- float: left;
+ float: left;
}
+
.img-sm,
.box-comments .box-comment img,
.user-block.user-block-sm img {
- width: 30px !important;
- height: 30px !important;
+ width: 30px !important;
+ height: 30px !important;
}
+
.img-sm + .img-push {
- margin-left: 40px;
+ margin-left: 40px;
}
+
.img-md {
- width: 60px;
- height: 60px;
+ width: 60px;
+ height: 60px;
}
+
.img-md + .img-push {
- margin-left: 70px;
+ margin-left: 70px;
}
+
.img-lg {
- width: 100px;
- height: 100px;
+ width: 100px;
+ height: 100px;
}
+
.img-lg + .img-push {
- margin-left: 110px;
+ margin-left: 110px;
}
+
.img-bordered {
- border: 3px solid #d2d6de;
- padding: 3px;
+ border: 3px solid #d2d6de;
+ padding: 3px;
}
+
.img-bordered-sm {
- border: 2px solid #d2d6de;
- padding: 2px;
+ border: 2px solid #d2d6de;
+ padding: 2px;
}
+
.attachment-block {
- border: 1px solid #f4f4f4;
- padding: 5px;
- margin-bottom: 10px;
- background: #f7f7f7;
+ border: 1px solid #f4f4f4;
+ padding: 5px;
+ margin-bottom: 10px;
+ background: #f7f7f7;
}
+
.attachment-block .attachment-img {
- max-width: 100px;
- max-height: 100px;
- height: auto;
- float: left;
+ max-width: 100px;
+ max-height: 100px;
+ height: auto;
+ float: left;
}
+
.attachment-block .attachment-pushed {
- margin-left: 110px;
+ margin-left: 110px;
}
+
.attachment-block .attachment-heading {
- margin: 0;
+ margin: 0;
}
+
.attachment-block .attachment-text {
- color: #555;
+ color: #555;
}
+
.connectedSortable {
- min-height: 100px;
+ min-height: 100px;
}
+
.ui-helper-hidden-accessible {
- border: 0;
- clip: rect(0 0 0 0);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px;
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
}
+
.sort-highlight {
- background: #f4f4f4;
- border: 1px dashed #ddd;
- margin-bottom: 10px;
+ background: #f4f4f4;
+ border: 1px dashed #ddd;
+ margin-bottom: 10px;
}
+
.full-opacity-hover {
- opacity: 0.65;
- filter: alpha(opacity=65);
+ opacity: 0.65;
+ filter: alpha(opacity=65);
}
+
.full-opacity-hover:hover {
- opacity: 1;
- filter: alpha(opacity=100);
+ opacity: 1;
+ filter: alpha(opacity=100);
}
+
.chart {
- position: relative;
- overflow: hidden;
- width: 100%;
+ position: relative;
+ overflow: hidden;
+ width: 100%;
}
+
.chart svg,
.chart canvas {
- width: 100% !important;
+ width: 100% !important;
}
+
/*
* Misc: print
* -----------
*/
@media print {
- .no-print,
- .main-sidebar,
- .left-side,
- .main-header,
- .content-header {
- display: none !important;
- }
- .content-wrapper,
- .right-side,
- .main-footer {
- margin-left: 0 !important;
- min-height: 0 !important;
- -webkit-transform: translate(0, 0) !important;
- -ms-transform: translate(0, 0) !important;
- -o-transform: translate(0, 0) !important;
- transform: translate(0, 0) !important;
- }
- .fixed .content-wrapper,
- .fixed .right-side {
- padding-top: 0 !important;
- }
- .invoice {
- width: 100%;
- border: 0;
- margin: 0;
- padding: 0;
- }
- .invoice-col {
- float: left;
- width: 33.3333333%;
- }
- .table-responsive {
- overflow: auto;
- }
- .table-responsive > .table tr th,
- .table-responsive > .table tr td {
- white-space: normal !important;
- }
+ .no-print,
+ .main-sidebar,
+ .left-side,
+ .main-header,
+ .content-header {
+ display: none !important;
+ }
+
+ .content-wrapper,
+ .right-side,
+ .main-footer {
+ margin-left: 0 !important;
+ min-height: 0 !important;
+ -webkit-transform: translate(0, 0) !important;
+ -ms-transform: translate(0, 0) !important;
+ -o-transform: translate(0, 0) !important;
+ transform: translate(0, 0) !important;
+ }
+
+ .fixed .content-wrapper,
+ .fixed .right-side {
+ padding-top: 0 !important;
+ }
+
+ .invoice {
+ width: 100%;
+ border: 0;
+ margin: 0;
+ padding: 0;
+ }
+
+ .invoice-col {
+ float: left;
+ width: 33.3333333%;
+ }
+
+ .table-responsive {
+ overflow: auto;
+ }
+
+ .table-responsive > .table tr th,
+ .table-responsive > .table tr td {
+ white-space: normal !important;
+ }
}
diff --git a/login/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js b/login/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js
index 06a889c..77f35c7 100755
--- a/login/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js
+++ b/login/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js
@@ -1,6 +1,6 @@
/**
* ufAlerts jQuery plugin. Fetches and renders alerts from the UF alert stream.
- *
+ *
* Based on template from https://github.com/jquery-boilerplate/jquery-boilerplate
*
* === USAGE ===
@@ -33,23 +33,23 @@
* UserFrosting https://www.userfrosting.com
* @author Alexander Weissman
*/
-;(function($, window, document, undefined) {
- 'use strict';
+;(function ($, window, document, undefined) {
+ 'use strict';
// Define plugin name and defaults.
var pluginName = 'ufAlerts',
defaults = {
- url : site.uri.public + '/alerts',
- scrollToTop : true,
- scrollWhenVisible : false,
- agglomerate : false,
- alertMessageClass : 'uf-alert-message',
- alertTemplateId : 'uf-alert-template',
- DEBUG : false
+ url: site.uri.public + '/alerts',
+ scrollToTop: true,
+ scrollWhenVisible: false,
+ agglomerate: false,
+ alertMessageClass: 'uf-alert-message',
+ alertTemplateId: 'uf-alert-template',
+ DEBUG: false
};
// Constructor
- function Plugin (element, options) {
+ function Plugin(element, options) {
this.element = element[0];
this.$element = $(this.element);
this.settings = $.extend(true, {}, defaults, options);
@@ -57,23 +57,27 @@
this._name = pluginName;
// Detect changes to element attributes
- this.$element.attrchange({ callback: function (event) { this.element = event.target; }.bind(this) });
+ this.$element.attrchange({
+ callback: function (event) {
+ this.element = event.target;
+ }.bind(this)
+ });
// Plugin variables
this.alerts = [];
this._newAlertsPromise = $.Deferred().resolve();
this._alertTemplateHtml = $('#' + this.settings.alertTemplateId).html();
this._alertTypePriorities = {
- danger : 3,
+ danger: 3,
warning: 2,
success: 1,
- info : 0
+ info: 0
};
this._alertTypeIcon = {
- danger : 'fa-ban',
+ danger: 'fa-ban',
warning: 'fa-warning',
success: 'fa-check',
- info : 'fa-info'
+ info: 'fa-info'
};
return this;
@@ -84,7 +88,7 @@
/**
* Clear all alerts from the current uf-alerts collection.
*/
- clear: function() {
+ clear: function () {
// See http://stackoverflow.com/a/1232046/2970321
this.alerts.length = 0;
@@ -104,7 +108,7 @@
/**
* Fetches alerts from the alert stream
*/
- fetch: function() {
+ fetch: function () {
// Set a promise, so that any chained calls after fetch can wait until the messages have been retrieved
this._newAlertsPromise = $.ajax({
url: this.settings.url,
@@ -115,36 +119,36 @@
// Failure
this._fetchFailure.bind(this)
);
-
+
return this.$element;
},
/**
* Success callback for fetch
*/
- _fetchSuccess: function(alerts) {
+ _fetchSuccess: function (alerts) {
if (alerts != null) this.alerts = $.merge(this.alerts, alerts);
this.$element.trigger('fetch.' + this._name);
},
/**
* Failure callback for fetch
*/
- _fetchFailure: function(response) {
+ _fetchFailure: function (response) {
this.$element.trigger('error.' + this._name);
if ((typeof site !== 'undefined') && site.debug.ajax && response.responseText) {
document.write(response.responseText);
document.close();
} else {
if (this.settings.DEBUG) {
- console.warn('Error (' + response.status + '): ' + response.responseText );
+ console.warn('Error (' + response.status + '): ' + response.responseText);
}
}
},
/**
* Push a given message to the current uf-alerts collection.
*/
- push: function(options) {
+ push: function (options) {
this.alerts.push({
- type : options[0],
+ type: options[0],
message: options[1]
});
@@ -153,7 +157,7 @@
/**
* Renders the alerts.
*/
- render: function() {
+ render: function () {
// Wait for promise completion, only if promise is unresolved.
if (this._newAlertsPromise.state() == 'resolved' || this._newAlertsPromise.state() == 'rejected') {
this._render();
@@ -167,7 +171,7 @@
/*
* Internal private method that physically handles rendering operation.
*/
- _render: function() {
+ _render: function () {
// Holds generated HTML
var alertHtml = '';
// Only compile alerts if there are alerts to display
@@ -198,9 +202,9 @@
// Generate complete alert HTML
alertHtml = alertTemplate({
- type : alertContainerType,
+ type: alertContainerType,
message: alertMessage,
- icon : this._alertTypeIcon[alertContainerType]
+ icon: this._alertTypeIcon[alertContainerType]
});
}
else {
@@ -214,7 +218,7 @@
// Compile alert
alertHtml += alertTemplate(alert);
}
- }
+ }
}
// Show alerts
this.$element.html(alertHtml);
@@ -223,7 +227,7 @@
if (this.settings.scrollToTop && alertHtml !== '') {
// Don't scroll if already visible, unless scrollWhenVisible is true
if (!this._alertsVisible() || this.settings.scrollWhenVisible) {
- $('html, body').animate({ scrollTop: this.$element.offset().top }, 'fast');
+ $('html, body').animate({scrollTop: this.$element.offset().top}, 'fast');
}
}
@@ -233,19 +237,19 @@
/**
* Returns true if alerts container is completely within the viewport.
*/
- _alertsVisible: function() {
+ _alertsVisible: function () {
var rect = this.element.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
- rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
},
/**
* Completely destroy the ufAlerts plugin on the element.
*/
- destroy: function() {
+ destroy: function () {
// Unbind any bound events
this.$element.off('.' + this._name);
@@ -257,7 +261,7 @@
});
// Handles instantiation and access to non-private methods.
- $.fn[pluginName] = function(methodOrOptions) {
+ $.fn[pluginName] = function (methodOrOptions) {
// Grab plugin instance
var instance = $(this).data(pluginName);
// If undefined or object, initalise plugin.
@@ -272,14 +276,14 @@
else if (typeof methodOrOptions === 'string' && typeof instance[methodOrOptions] === 'function') {
// Ensure not a private function
if (methodOrOptions.indexOf('_') !== 0) {
- return instance[methodOrOptions]( Array.prototype.slice.call(arguments, 1));
+ return instance[methodOrOptions](Array.prototype.slice.call(arguments, 1));
}
else {
- console.warn('Method ' + methodOrOptions + ' is private!');
+ console.warn('Method ' + methodOrOptions + ' is private!');
}
}
else {
- console.warn('Method ' + methodOrOptions + ' does not exist.');
+ console.warn('Method ' + methodOrOptions + ' does not exist.');
}
};
})(jQuery, window, document);
\ No newline at end of file
diff --git a/login/app/sprinkles/core/config/default.php b/login/app/sprinkles/core/config/default.php
index b6862e6..e560493 100755
--- a/login/app/sprinkles/core/config/default.php
+++ b/login/app/sprinkles/core/config/default.php
@@ -82,9 +82,9 @@
'mail' => [
'mailer' => 'smtp', // Set to one of 'smtp', 'mail', 'qmail', 'sendmail'
'host' => getenv('SMTP_HOST') ?: null,
- 'port' => 587,
+ 'port' => 465,
'auth' => true,
- 'secure' => 'tls',
+ 'secure' => 'ssl',
'username' => getenv('SMTP_USER') ?: null,
'password' => getenv('SMTP_PASSWORD') ?: null,
'smtp_debug' => 4,
@@ -154,7 +154,7 @@
// This can be a comma-separated list, to load multiple fallback locales
'default' => 'en_US'
],
- 'title' => 'UserFrosting',
+ 'title' => 'SocialNetwork',
// Global ufTable settings
'uf_table' => [
'use_loading_transition' => true
@@ -167,15 +167,15 @@
'port' => isset($_SERVER['SERVER_PORT']) ? (int) $_SERVER['SERVER_PORT'] : null,
'path' => isset($_SERVER['SCRIPT_NAME']) ? trim(dirname($_SERVER['SCRIPT_NAME']), '/\\') : ''
],
- 'author' => 'https://www.userfrosting.com',
- 'publisher' => ''
+ 'author' => 'Marvin Borner',
+ 'publisher' => 'Marvin Borner'
]
],
'php' => [
- 'timezone' => 'America/New_York',
+ 'timezone' => 'Europe/Berlin',
'error_reporting' => E_ALL, // Development - report all errors and suggestions
- 'display_errors' => 'true',
- 'log_errors' => 'false',
+ 'display_errors' => 'false',
+ 'log_errors' => 'true',
// Let PHP itself render errors natively. Useful if a fatal error is raised in our custom shutdown handler.
'display_errors_native' => 'false'
]
diff --git a/login/app/sprinkles/core/src/Controller/CoreController.php b/login/app/sprinkles/core/src/Controller/CoreController.php
index 0dd8165..b5f6e3c 100755
--- a/login/app/sprinkles/core/src/Controller/CoreController.php
+++ b/login/app/sprinkles/core/src/Controller/CoreController.php
@@ -5,6 +5,7 @@
* @link https://github.com/userfrosting/UserFrosting
* @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License)
*/
+
namespace UserFrosting\Sprinkle\Core\Controller;
use Psr\Http\Message\ServerRequestInterface as Request;
@@ -26,8 +27,7 @@ class CoreController extends SimpleController
* By default, this is the page that non-authenticated users will first see when they navigate to your website's root.
* Request type: GET
*/
- public function pageIndex($request, $response, $args)
- {
+ public function pageIndex($request, $response, $args) {
return $this->ci->view->render($response, 'pages/index.html.twig');
}
@@ -36,8 +36,7 @@ class CoreController extends SimpleController
*
* Request type: GET
*/
- public function pageAbout($request, $response, $args)
- {
+ public function pageAbout($request, $response, $args) {
return $this->ci->view->render($response, 'pages/about.html.twig');
}
@@ -46,8 +45,7 @@ class CoreController extends SimpleController
*
* Request type: GET
*/
- public function pageLegal($request, $response, $args)
- {
+ public function pageLegal($request, $response, $args) {
return $this->ci->view->render($response, 'pages/legal.html.twig');
}
@@ -56,8 +54,7 @@ class CoreController extends SimpleController
*
* Request type: GET
*/
- public function pagePrivacy($request, $response, $args)
- {
+ public function pagePrivacy($request, $response, $args) {
return $this->ci->view->render($response, 'pages/privacy.html.twig');
}
@@ -67,8 +64,7 @@ class CoreController extends SimpleController
* The alert stream contains messages which have been generated by calls to `MessageStream::addMessage` and `MessageStream::addMessageTranslated`.
* Request type: GET
*/
- public function jsonAlerts($request, $response, $args)
- {
+ public function jsonAlerts($request, $response, $args) {
return $response->withJson($this->ci->alerts->getAndClearMessages());
}
@@ -76,8 +72,7 @@ class CoreController extends SimpleController
* Handle all requests for raw assets.
* Request type: GET
*/
- public function getAsset($request, $response, $args)
- {
+ public function getAsset($request, $response, $args) {
// By starting this service, we ensure that the timezone gets set.
$config = $this->ci->config;
diff --git a/login/app/sprinkles/core/src/ServicesProvider/ServicesProvider.php b/login/app/sprinkles/core/src/ServicesProvider/ServicesProvider.php
index 5fcffbc..c67b886 100755
--- a/login/app/sprinkles/core/src/ServicesProvider/ServicesProvider.php
+++ b/login/app/sprinkles/core/src/ServicesProvider/ServicesProvider.php
@@ -5,6 +5,7 @@
* @link https://github.com/userfrosting/UserFrosting
* @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License)
*/
+
namespace UserFrosting\Sprinkle\Core\ServicesProvider;
use Dotenv\Dotenv;
@@ -70,8 +71,7 @@ class ServicesProvider
*
* @param ContainerInterface $container A DI container implementing ArrayAccess and container-interop.
*/
- public function register(ContainerInterface $container)
- {
+ public function register(ContainerInterface $container) {
/**
* Flash messaging service.
*
@@ -126,7 +126,7 @@ class ServicesProvider
// TODO: move this out into PathBuilder and Loader classes in userfrosting/assets
// This would also allow us to define and load bundles in themes
- $bundleSchemas = array_reverse($locator->findResources('sprinkles://' . $config['assets.raw.schema'], true, true));
+ $bundleSchemas = array_reverse($locator->findResources('sprinkles://' . $config['assets.raw.schema'], TRUE, TRUE));
foreach ($bundleSchemas as $schema) {
if (file_exists($schema)) {
@@ -138,7 +138,7 @@ class ServicesProvider
$aub = new CompiledAssetUrlBuilder($baseUrl);
$as = new AssetBundleSchema($aub);
- $as->loadCompiledSchemaFile($locator->findResource("build://" . $config['assets.compiled.schema'], true, true));
+ $as->loadCompiledSchemaFile($locator->findResource("build://" . $config['assets.compiled.schema'], TRUE, TRUE));
}
$am = new AssetManager($aub, $as);
@@ -156,7 +156,7 @@ class ServicesProvider
$config = $c->config;
if ($config['cache.driver'] == 'file') {
- $path = $c->locator->findResource('cache://', true, true);
+ $path = $c->locator->findResource('cache://', TRUE, TRUE);
$cacheStore = new TaggableFileStore($path);
} elseif ($config['cache.driver'] == 'memcached') {
// We need to inject the prefix in the memcached config
@@ -307,9 +307,9 @@ class ServicesProvider
// Register listener
$queryEventDispatcher->listen(QueryExecuted::class, function ($query) use ($logger) {
$logger->debug("Query executed on database [{$query->connectionName}]:", [
- 'query' => $query->sql,
+ 'query' => $query->sql,
'bindings' => $query->bindings,
- 'time' => $query->time . ' ms'
+ 'time' => $query->time . ' ms'
]);
});
}
@@ -325,11 +325,11 @@ class ServicesProvider
$container['debugLogger'] = function ($c) {
$logger = new Logger('debug');
- $logFile = $c->locator->findResource('log://userfrosting.log', true, true);
+ $logFile = $c->locator->findResource('log://userfrosting.log', TRUE, TRUE);
$handler = new StreamHandler($logFile);
- $formatter = new MixedFormatter(null, null, true);
+ $formatter = new MixedFormatter(NULL, NULL, TRUE);
$handler->setFormatter($formatter);
$logger->pushHandler($handler);
@@ -365,11 +365,11 @@ class ServicesProvider
$container['errorLogger'] = function ($c) {
$log = new Logger('errors');
- $logFile = $c->locator->findResource('log://userfrosting.log', true, true);
+ $logFile = $c->locator->findResource('log://userfrosting.log', TRUE, TRUE);
$handler = new StreamHandler($logFile, Logger::WARNING);
- $formatter = new LineFormatter(null, null, true);
+ $formatter = new LineFormatter(NULL, NULL, TRUE);
$handler->setFormatter($formatter);
$log->pushHandler($handler);
@@ -385,7 +385,7 @@ class ServicesProvider
$container['factory'] = function ($c) {
// Get the path of all of the sprinkle's factories
- $factoriesPath = $c->locator->findResources('factories://', true, true);
+ $factoriesPath = $c->locator->findResources('factories://', TRUE, TRUE);
// Create a new Factory Muffin instance
$fm = new FactoryMuffin();
@@ -439,10 +439,10 @@ class ServicesProvider
$container['mailLogger'] = function ($c) {
$log = new Logger('mail');
- $logFile = $c->locator->findResource('log://userfrosting.log', true, true);
+ $logFile = $c->locator->findResource('log://userfrosting.log', TRUE, TRUE);
$handler = new StreamHandler($logFile);
- $formatter = new LineFormatter(null, null, true);
+ $formatter = new LineFormatter(NULL, NULL, TRUE);
$handler->setFormatter($formatter);
$log->pushHandler($handler);
@@ -478,11 +478,11 @@ class ServicesProvider
$container['queryLogger'] = function ($c) {
$logger = new Logger('query');
- $logFile = $c->locator->findResource('log://userfrosting.log', true, true);
+ $logFile = $c->locator->findResource('log://userfrosting.log', TRUE, TRUE);
$handler = new StreamHandler($logFile);
- $formatter = new MixedFormatter(null, null, true);
+ $formatter = new MixedFormatter(NULL, NULL, TRUE);
$handler->setFormatter($formatter);
$logger->pushHandler($handler);
@@ -494,7 +494,7 @@ class ServicesProvider
* Override Slim's default router with the UF router.
*/
$container['router'] = function ($c) {
- $routerCacheFile = false;
+ $routerCacheFile = FALSE;
if (isset($c->config['settings.routerCacheFile'])) {
$routerCacheFile = $c->config['settings.routerCacheFile'];
}
@@ -537,13 +537,13 @@ class ServicesProvider
$config = $c->config;
- if ($config->has('throttles') && ($config['throttles'] !== null)) {
+ if ($config->has('throttles') && ($config['throttles'] !== NULL)) {
foreach ($config['throttles'] as $type => $rule) {
if ($rule) {
$throttleRule = new ThrottleRule($rule['method'], $rule['interval'], $rule['delays']);
$throttler->addThrottleRule($type, $throttleRule);
} else {
- $throttler->addThrottleRule($type, null);
+ $throttler->addThrottleRule($type, NULL);
}
}
}
@@ -571,7 +571,7 @@ class ServicesProvider
* Also adds the UserFrosting core Twig extension, which provides additional functions, filters, global variables, etc.
*/
$container['view'] = function ($c) {
- $templatePaths = $c->locator->findResources('templates://', true, true);
+ $templatePaths = $c->locator->findResources('templates://', TRUE, TRUE);
$view = new Twig($templatePaths);
@@ -593,7 +593,7 @@ class ServicesProvider
$twig = $view->getEnvironment();
if ($c->config['cache.twig']) {
- $twig->setCache($c->locator->findResource('cache://twig', true, true));
+ $twig->setCache($c->locator->findResource('cache://twig', TRUE, TRUE));
}
if ($c->config['debug.twig']) {
diff --git a/login/app/sprinkles/core/templates/pages/index.html.twig b/login/app/sprinkles/core/templates/pages/index.html.twig
index fea1213..e3a7b58 100755
--- a/login/app/sprinkles/core/templates/pages/index.html.twig
+++ b/login/app/sprinkles/core/templates/pages/index.html.twig
@@ -20,22 +20,16 @@
-
-
First Slide
-
-
Second Slide
-
-
Third Slide
diff --git a/login/app/sprinkles/extend-user/.gitignore b/login/app/sprinkles/extend-user/.gitignore
new file mode 100644
index 0000000..5a664d4
--- /dev/null
+++ b/login/app/sprinkles/extend-user/.gitignore
@@ -0,0 +1,3 @@
+.DS_Store
+.idea
+*.komodoproject
diff --git a/login/app/sprinkles/extend-user/README.md b/login/app/sprinkles/extend-user/README.md
new file mode 100644
index 0000000..60a4bcd
--- /dev/null
+++ b/login/app/sprinkles/extend-user/README.md
@@ -0,0 +1,29 @@
+# User Extension Sprinkle (UserFrosting 4.1)
+
+Example sprinkle for extending the User class to contain additional fields.
+
+# Installation
+
+Edit UserFrosting `app/sprinkles.json` and add the following to the `require` list : `"userfrosting/extend-user": "~4.1.1"`. Also add `extend-user` to the `base` list. For example:
+
+```
+{
+ "require": {
+ "userfrosting/extend-user": "~4.1.1"
+ },
+ "base": [
+ "core",
+ "account",
+ "admin",
+ "extend-user"
+ ]
+}
+```
+
+### Update Composer
+
+- Run `composer update` from the root project directory.
+
+### Run migration
+
+- Run `php bakery bake` from the root project directory.
diff --git a/login/app/sprinkles/extend-user/composer.json b/login/app/sprinkles/extend-user/composer.json
new file mode 100644
index 0000000..4c8a0fa
--- /dev/null
+++ b/login/app/sprinkles/extend-user/composer.json
@@ -0,0 +1,22 @@
+{
+ "name": "userfrosting/extend-user",
+ "type": "userfrosting-sprinkle",
+ "description": "An example Sprinkle for extending the User model and table with additional fields or relationships.",
+ "homepage": "https://github.com/userfrosting/extend-user",
+ "license" : "MIT",
+ "authors" : [
+ {
+ "name": "Alexander Weissman",
+ "homepage": "https://alexanderweissman.com"
+ }
+ ],
+ "autoload": {
+ "psr-4": {
+ "UserFrosting\\Sprinkle\\ExtendUser\\": "src/"
+ }
+ },
+ "extra": {
+ "installer-name": "extend-user"
+ }
+}
+
diff --git a/login/app/sprinkles/extend-user/routes/member.php b/login/app/sprinkles/extend-user/routes/member.php
new file mode 100644
index 0000000..19028ac
--- /dev/null
+++ b/login/app/sprinkles/extend-user/routes/member.php
@@ -0,0 +1,7 @@
+group('/admin/users', function () {
+ $this->get('/u/{user_name}', 'UserFrosting\Sprinkle\ExtendUser\Controller\MemberController:pageInfo');
+})->add('authGuard');
\ No newline at end of file
diff --git a/login/app/sprinkles/extend-user/schema/requests/user/create.yaml b/login/app/sprinkles/extend-user/schema/requests/user/create.yaml
new file mode 100644
index 0000000..2df2955
--- /dev/null
+++ b/login/app/sprinkles/extend-user/schema/requests/user/create.yaml
@@ -0,0 +1,86 @@
+---
+user_name:
+ validators:
+ length:
+ label: "&USERNAME"
+ min: 1
+ max: 50
+ message: VALIDATE.LENGTH_RANGE
+ no_leading_whitespace:
+ label: "&USERNAME"
+ message: VALIDATE.NO_LEAD_WS
+ no_trailing_whitespace:
+ label: "&USERNAME"
+ message: VALIDATE.NO_TRAIL_WS
+ required:
+ label: "&USERNAME"
+ message: VALIDATE.REQUIRED
+ username:
+ label: "&USERNAME"
+ message: VALIDATE.USERNAME
+first_name:
+ validators:
+ length:
+ label: "&FIRST_NAME"
+ min: 1
+ max: 20
+ message: VALIDATE.LENGTH_RANGE
+ required:
+ label: "&FIRST_NAME"
+ message: VALIDATE.REQUIRED
+ transformations:
+ - trim
+last_name:
+ validators:
+ length:
+ label: "&LAST_NAME"
+ min: 1
+ max: 30
+ message: VALIDATE.LENGTH_RANGE
+ transformations:
+ - trim
+email:
+ validators:
+ required:
+ label: "&EMAIL"
+ message: VALIDATE.REQUIRED
+ length:
+ label: "&EMAIL"
+ min: 1
+ max: 150
+ message: VALIDATE.LENGTH_RANGE
+ email:
+ message: VALIDATE.INVALID_EMAIL
+locale:
+ default: en_US
+ validators:
+ required:
+ label: "&LOCALE"
+ domain: server
+ message: VALIDATE.REQUIRED
+ length:
+ label: "&LOCALE"
+ min: 1
+ max: 10
+ domain: server
+ message: VALIDATE.LENGTH_RANGE
+group_id:
+ validators:
+ integer:
+ label: "&GROUP"
+ domain: server
+ message: VALIDATE.INTEGER
+city:
+ validators:
+ length:
+ label: City
+ min: 1
+ max: 255
+ message: VALIDATE.LENGTH_RANGE
+country:
+ validators:
+ length:
+ label: Country
+ min: 1
+ max: 255
+ message: VALIDATE.LENGTH_RANGE
diff --git a/login/app/sprinkles/extend-user/schema/requests/user/edit-info.yaml b/login/app/sprinkles/extend-user/schema/requests/user/edit-info.yaml
new file mode 100644
index 0000000..edfae6e
--- /dev/null
+++ b/login/app/sprinkles/extend-user/schema/requests/user/edit-info.yaml
@@ -0,0 +1,50 @@
+---
+first_name:
+ validators:
+ length:
+ label: "&FIRST_NAME"
+ min: 1
+ max: 20
+ message: VALIDATE.LENGTH_RANGE
+last_name:
+ validators:
+ length:
+ label: "&LAST_NAME"
+ min: 1
+ max: 30
+ message: VALIDATE.LENGTH_RANGE
+email:
+ validators:
+ length:
+ label: "&EMAIL"
+ min: 1
+ max: 150
+ message: VALIDATE.LENGTH_RANGE
+ email:
+ message: VALIDATE.INVALID_EMAIL
+locale:
+ validators:
+ length:
+ label: "&LOCALE"
+ min: 1
+ max: 10
+ message: VALIDATE.LENGTH_RANGE
+group_id:
+ validators:
+ integer:
+ label: "&GROUP"
+ message: VALIDATE.INTEGER
+city:
+ validators:
+ length:
+ label: City
+ min: 1
+ max: 255
+ message: VALIDATE.LENGTH_RANGE
+country:
+ validators:
+ length:
+ label: Country
+ min: 1
+ max: 255
+ message: VALIDATE.LENGTH_RANGE
\ No newline at end of file
diff --git a/login/app/sprinkles/extend-user/src/Controller/MemberController.php b/login/app/sprinkles/extend-user/src/Controller/MemberController.php
new file mode 100644
index 0000000..c584286
--- /dev/null
+++ b/login/app/sprinkles/extend-user/src/Controller/MemberController.php
@@ -0,0 +1,123 @@
+getUserFromParams($args);
+
+ // If the user no longer exists, forward to main user listing page
+ if (!$user) {
+ $usersPage = $this->ci->router->pathFor('uri_users');
+ return $response->withRedirect($usersPage, 404);
+ }
+
+ /** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
+ $authorizer = $this->ci->authorizer;
+
+ /** @var UserFrosting\Sprinkle\Account\Database\Models\User $currentUser */
+ $currentUser = $this->ci->currentUser;
+
+ // Access-controlled page
+ if (!$authorizer->checkAccess($currentUser, 'uri_user', [
+ 'user' => $user
+ ])) {
+ throw new ForbiddenException();
+ }
+
+ /** @var UserFrosting\Config\Config $config */
+ $config = $this->ci->config;
+
+ // Get a list of all locales
+ $locales = $config->getDefined('site.locales.available');
+
+ // Determine fields that currentUser is authorized to view
+ $fieldNames = ['user_name', 'name', 'email', 'locale', 'group', 'roles', 'address'];
+
+ // Generate form
+ $fields = [
+ // Always hide these
+ 'hidden' => ['theme']
+ ];
+
+ // Determine which fields should be hidden
+ foreach ($fieldNames as $field) {
+ if (!$authorizer->checkAccess($currentUser, 'view_user_field', [
+ 'user' => $user,
+ 'property' => $field
+ ])) {
+ $fields['hidden'][] = $field;
+ }
+ }
+
+ // Determine buttons to display
+ $editButtons = [
+ 'hidden' => []
+ ];
+
+ if (!$authorizer->checkAccess($currentUser, 'update_user_field', [
+ 'user' => $user,
+ 'fields' => ['name', 'email', 'locale']
+ ])) {
+ $editButtons['hidden'][] = 'edit';
+ }
+
+ if (!$authorizer->checkAccess($currentUser, 'update_user_field', [
+ 'user' => $user,
+ 'fields' => ['flag_enabled']
+ ])) {
+ $editButtons['hidden'][] = 'enable';
+ }
+
+ if (!$authorizer->checkAccess($currentUser, 'update_user_field', [
+ 'user' => $user,
+ 'fields' => ['flag_verified']
+ ])) {
+ $editButtons['hidden'][] = 'activate';
+ }
+
+ if (!$authorizer->checkAccess($currentUser, 'update_user_field', [
+ 'user' => $user,
+ 'fields' => ['password']
+ ])) {
+ $editButtons['hidden'][] = 'password';
+ }
+
+ if (!$authorizer->checkAccess($currentUser, 'update_user_field', [
+ 'user' => $user,
+ 'fields' => ['roles']
+ ])) {
+ $editButtons['hidden'][] = 'roles';
+ }
+
+ if (!$authorizer->checkAccess($currentUser, 'delete_user', [
+ 'user' => $user
+ ])) {
+ $editButtons['hidden'][] = 'delete';
+ }
+
+ return $this->ci->view->render($response, 'pages/user.html.twig', [
+ 'user' => $user,
+ 'locales' => $locales,
+ 'fields' => $fields,
+ 'tools' => $editButtons
+ ]);
+ }
+}
diff --git a/login/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php b/login/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php
new file mode 100644
index 0000000..a27d485
--- /dev/null
+++ b/login/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php
@@ -0,0 +1,34 @@
+schema->hasTable('members')) {
+ $this->schema->create('members', function (Blueprint $table) {
+ $table->increments('id');
+ $table->string('city', 255)->nullable();
+ $table->string('country', 255)->nullable();
+
+ $table->engine = 'InnoDB';
+ $table->collation = 'utf8_unicode_ci';
+ $table->charset = 'utf8';
+ $table->foreign('id')->references('id')->on('users');
+ });
+ }
+ }
+
+ public function down()
+ {
+ $this->schema->drop('members');
+ }
+}
diff --git a/login/app/sprinkles/extend-user/src/Database/Models/Member.php b/login/app/sprinkles/extend-user/src/Database/Models/Member.php
new file mode 100644
index 0000000..98d9d70
--- /dev/null
+++ b/login/app/sprinkles/extend-user/src/Database/Models/Member.php
@@ -0,0 +1,124 @@
+createAuxIfNotExists();
+
+ if ($member->auxType) {
+ // Set the aux PK, if it hasn't been set yet
+ if (!$member->aux->id) {
+ $member->aux->id = $member->id;
+ }
+
+ $member->aux->save();
+ }
+ });
+ }
+}
+
+class Member extends User
+{
+ use LinkMemberAux;
+
+ protected $fillable = [
+ 'user_name',
+ 'first_name',
+ 'last_name',
+ 'email',
+ 'locale',
+ 'theme',
+ 'group_id',
+ 'flag_verified',
+ 'flag_enabled',
+ 'last_activity_id',
+ 'password',
+ 'deleted_at',
+ 'city',
+ 'country'
+ ];
+
+ protected $auxType = 'UserFrosting\Sprinkle\ExtendUser\Database\Models\MemberAux';
+
+ /**
+ * Required to be able to access the `aux` relationship in Twig without needing to do eager loading.
+ * @see http://stackoverflow.com/questions/29514081/cannot-access-eloquent-attributes-on-twig/35908957#35908957
+ */
+ public function __isset($name)
+ {
+ if (in_array($name, [
+ 'aux'
+ ])) {
+ return true;
+ } else {
+ return parent::__isset($name);
+ }
+ }
+
+ /**
+ * Globally joins the `members` table to access additional properties.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::addGlobalScope(new MemberAuxScope);
+ }
+
+ /**
+ * Custom mutator for Member property
+ */
+ public function setCityAttribute($value)
+ {
+ $this->createAuxIfNotExists();
+
+ $this->aux->city = $value;
+ }
+
+ /**
+ * Custom mutator for Member property
+ */
+ public function setCountryAttribute($value)
+ {
+ $this->createAuxIfNotExists();
+
+ $this->aux->country = $value;
+ }
+
+ /**
+ * Relationship for interacting with aux model (`members` table).
+ */
+ public function aux()
+ {
+ return $this->hasOne($this->auxType, 'id');
+ }
+
+ /**
+ * If this instance doesn't already have a related aux model (either in the db on in the current object), then create one
+ */
+ protected function createAuxIfNotExists()
+ {
+ if ($this->auxType && !count($this->aux)) {
+ // Create aux model and set primary key to be the same as the main user's
+ $aux = new $this->auxType;
+
+ // Needed to immediately hydrate the relation. It will actually get saved in the bootLinkMemberAux method.
+ $this->setRelation('aux', $aux);
+ }
+ }
+}
diff --git a/login/app/sprinkles/extend-user/src/Database/Models/MemberAux.php b/login/app/sprinkles/extend-user/src/Database/Models/MemberAux.php
new file mode 100644
index 0000000..c826409
--- /dev/null
+++ b/login/app/sprinkles/extend-user/src/Database/Models/MemberAux.php
@@ -0,0 +1,20 @@
+getTable();
+ // Hardcode the table name here, or you can access it using the classMapper and `getTable`
+ $auxTable = 'members';
+
+ // Specify columns to load from base table and aux table
+ $builder->addSelect(
+ "$baseTable.*",
+ "$auxTable.city as city",
+ "$auxTable.country as country"
+ );
+
+ // Join on matching `member` records
+ $builder->leftJoin($auxTable, function ($join) use ($baseTable, $auxTable) {
+ $join->on("$auxTable.id", '=', "$baseTable.id");
+ });
+ }
+}
diff --git a/login/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php b/login/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php
new file mode 100644
index 0000000..8ea3860
--- /dev/null
+++ b/login/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php
@@ -0,0 +1,26 @@
+extend('classMapper', function ($classMapper, $c) {
+ $classMapper->setClassMapping('user', 'UserFrosting\Sprinkle\ExtendUser\Database\Models\Member');
+ return $classMapper;
+ });
+ }
+}
diff --git a/login/app/sprinkles/extend-user/templates/forms/user.html.twig b/login/app/sprinkles/extend-user/templates/forms/user.html.twig
new file mode 100644
index 0000000..b7c98a9
--- /dev/null
+++ b/login/app/sprinkles/extend-user/templates/forms/user.html.twig
@@ -0,0 +1,145 @@
+
+
+
diff --git a/login/app/sprinkles/extend-user/templates/pages/user.html.twig b/login/app/sprinkles/extend-user/templates/pages/user.html.twig
new file mode 100644
index 0000000..46e79aa
--- /dev/null
+++ b/login/app/sprinkles/extend-user/templates/pages/user.html.twig
@@ -0,0 +1,11 @@
+{% extends "@admin/pages/user.html.twig" %}
+
+{% block user_profile %}
+ {% if 'locale' not in fields.hidden %}
+
+
Location
+
+ {{user.city}}, {{user.country}}
+
+ {% endif %}
+{% endblock %}
--
cgit v1.2.3