├── .docker ├── .env ├── docker-compose.yml ├── exec.sh ├── install_db.sh ├── install_migrate_generate.sh ├── pg_service.conf ├── postgis_connexions.ini ├── processing_doc.sh ├── reformat_sql_install.sh ├── schemaspy.sh ├── start.sh └── stop.sh ├── .gitattributes ├── .github ├── dependabot.yml └── workflows │ ├── ci.yml │ ├── publish-doc.yml │ └── transifex.yml ├── .gitignore ├── .gitmodules ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── docs ├── changelog.md ├── contributing.md ├── database │ ├── anomalies.html │ ├── anomalies.js │ ├── bower │ │ ├── admin-lte │ │ │ ├── bootstrap │ │ │ │ ├── css │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ │ ├── bootstrap-theme.min.css.map │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ └── bootstrap.min.css.map │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── js │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ ├── bootstrap.min.js │ │ │ │ │ └── npm.js │ │ │ ├── dist │ │ │ │ ├── css │ │ │ │ │ ├── AdminLTE.css │ │ │ │ │ ├── AdminLTE.min.css │ │ │ │ │ ├── alt │ │ │ │ │ │ ├── AdminLTE-bootstrap-social.css │ │ │ │ │ │ ├── AdminLTE-bootstrap-social.min.css │ │ │ │ │ │ ├── AdminLTE-fullcalendar.css │ │ │ │ │ │ ├── AdminLTE-fullcalendar.min.css │ │ │ │ │ │ ├── AdminLTE-select2.css │ │ │ │ │ │ ├── AdminLTE-select2.min.css │ │ │ │ │ │ ├── AdminLTE-without-plugins.css │ │ │ │ │ │ └── AdminLTE-without-plugins.min.css │ │ │ │ │ └── skins │ │ │ │ │ │ ├── _all-skins.css │ │ │ │ │ │ ├── _all-skins.min.css │ │ │ │ │ │ ├── skin-black-light.css │ │ │ │ │ │ ├── skin-black-light.min.css │ │ │ │ │ │ ├── skin-black.css │ │ │ │ │ │ ├── skin-black.min.css │ │ │ │ │ │ ├── skin-blue-light.css │ │ │ │ │ │ ├── skin-blue-light.min.css │ │ │ │ │ │ ├── skin-blue.css │ │ │ │ │ │ ├── skin-blue.min.css │ │ │ │ │ │ ├── skin-green-light.css │ │ │ │ │ │ ├── skin-green-light.min.css │ │ │ │ │ │ ├── skin-green.css │ │ │ │ │ │ ├── skin-green.min.css │ │ │ │ │ │ ├── skin-purple-light.css │ │ │ │ │ │ ├── skin-purple-light.min.css │ │ │ │ │ │ ├── skin-purple.css │ │ │ │ │ │ ├── skin-purple.min.css │ │ │ │ │ │ ├── skin-red-light.css │ │ │ │ │ │ ├── skin-red-light.min.css │ │ │ │ │ │ ├── skin-red.css │ │ │ │ │ │ ├── skin-red.min.css │ │ │ │ │ │ ├── skin-yellow-light.css │ │ │ │ │ │ ├── skin-yellow-light.min.css │ │ │ │ │ │ ├── skin-yellow.css │ │ │ │ │ │ └── skin-yellow.min.css │ │ │ │ └── js │ │ │ │ │ ├── app.js │ │ │ │ │ ├── app.min.js │ │ │ │ │ ├── demo.js │ │ │ │ │ └── pages │ │ │ │ │ ├── dashboard.js │ │ │ │ │ └── dashboard2.js │ │ │ └── plugins │ │ │ │ ├── fastclick │ │ │ │ ├── fastclick.js │ │ │ │ └── fastclick.min.js │ │ │ │ ├── jQuery │ │ │ │ └── jquery-2.2.3.min.js │ │ │ │ ├── jQueryUI │ │ │ │ ├── jquery-ui.js │ │ │ │ └── jquery-ui.min.js │ │ │ │ └── slimScroll │ │ │ │ ├── jquery.slimscroll.js │ │ │ │ └── jquery.slimscroll.min.js │ │ ├── anchor-js │ │ │ └── anchor.min.js │ │ ├── codemirror │ │ │ ├── codemirror.css │ │ │ ├── codemirror.js │ │ │ └── sql.js │ │ ├── datatables.net-bs │ │ │ ├── css │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ └── dataTables.bootstrap.min.css │ │ │ └── js │ │ │ │ ├── dataTables.bootstrap.js │ │ │ │ └── dataTables.bootstrap.min.js │ │ ├── datatables.net-buttons-bs │ │ │ ├── css │ │ │ │ ├── buttons.bootstrap.css │ │ │ │ └── buttons.bootstrap.min.css │ │ │ └── js │ │ │ │ ├── buttons.bootstrap.js │ │ │ │ └── buttons.bootstrap.min.js │ │ ├── datatables.net-buttons │ │ │ ├── buttons.colVis.js │ │ │ ├── buttons.colVis.min.js │ │ │ ├── buttons.flash.js │ │ │ ├── buttons.flash.min.js │ │ │ ├── buttons.html5.js │ │ │ ├── buttons.html5.min.js │ │ │ ├── buttons.print.js │ │ │ ├── buttons.print.min.js │ │ │ ├── dataTables.buttons.js │ │ │ └── dataTables.buttons.min.js │ │ ├── datatables.net │ │ │ └── jquery.dataTables.min.js │ │ ├── font-awesome │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ ├── font-awesome.css.map │ │ │ │ └── font-awesome.min.css │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ ├── html5shiv │ │ │ └── html5shiv.min.js │ │ ├── ionicons │ │ │ ├── css │ │ │ │ ├── ionicons.css │ │ │ │ └── ionicons.min.css │ │ │ └── fonts │ │ │ │ ├── ionicons.eot │ │ │ │ ├── ionicons.svg │ │ │ │ ├── ionicons.ttf │ │ │ │ └── ionicons.woff │ │ ├── jquery │ │ │ └── jquery.js │ │ ├── js-xlsx │ │ │ └── xlsx.full.min.js │ │ ├── pdfmake │ │ │ ├── pdfmake.min.js │ │ │ └── vfs_fonts.js │ │ ├── respond │ │ │ └── respond.min.js │ │ └── salvattore │ │ │ ├── salvattore.css │ │ │ └── salvattore.min.js │ ├── column.js │ ├── columns.html │ ├── constraint.js │ ├── constraints.html │ ├── deletionOrder.txt │ ├── diagrams │ │ ├── orphans │ │ │ ├── glossary.1degree.dot │ │ │ ├── glossary.1degree.png │ │ │ ├── html_template.1degree.dot │ │ │ ├── html_template.1degree.png │ │ │ ├── qgis_plugin.1degree.dot │ │ │ ├── qgis_plugin.1degree.png │ │ │ ├── theme.1degree.dot │ │ │ └── theme.1degree.png │ │ ├── summary │ │ │ ├── relationships.real.compact.dot │ │ │ ├── relationships.real.compact.png │ │ │ ├── relationships.real.large.dot │ │ │ └── relationships.real.large.png │ │ └── tables │ │ │ ├── contact.1degree.dot │ │ │ ├── contact.1degree.png │ │ │ ├── contact.2degrees.dot │ │ │ ├── contact.2degrees.png │ │ │ ├── dataset.1degree.dot │ │ │ ├── dataset.1degree.png │ │ │ ├── dataset.2degrees.dot │ │ │ ├── dataset.2degrees.png │ │ │ ├── dataset_contact.1degree.dot │ │ │ ├── dataset_contact.1degree.png │ │ │ ├── dataset_contact.2degrees.dot │ │ │ ├── dataset_contact.2degrees.png │ │ │ ├── link.1degree.dot │ │ │ ├── link.1degree.png │ │ │ ├── link.2degrees.dot │ │ │ └── link.2degrees.png │ ├── favicon.png │ ├── fonts │ │ ├── indieflower │ │ │ ├── indie-flower-v8-latin-regular.eot │ │ │ ├── indie-flower-v8-latin-regular.svg │ │ │ ├── indie-flower-v8-latin-regular.ttf │ │ │ ├── indie-flower-v8-latin-regular.woff │ │ │ ├── indie-flower-v8-latin-regular.woff2 │ │ │ └── indie-flower.css │ │ └── source-sans-pro │ │ │ ├── source-sans-pro-v10-latin-300.eot │ │ │ ├── source-sans-pro-v10-latin-300.svg │ │ │ ├── source-sans-pro-v10-latin-300.ttf │ │ │ ├── source-sans-pro-v10-latin-300.woff │ │ │ ├── source-sans-pro-v10-latin-300.woff2 │ │ │ ├── source-sans-pro-v10-latin-300italic.eot │ │ │ ├── source-sans-pro-v10-latin-300italic.svg │ │ │ ├── source-sans-pro-v10-latin-300italic.ttf │ │ │ ├── source-sans-pro-v10-latin-300italic.woff │ │ │ ├── source-sans-pro-v10-latin-300italic.woff2 │ │ │ ├── source-sans-pro-v10-latin-600.eot │ │ │ ├── source-sans-pro-v10-latin-600.svg │ │ │ ├── source-sans-pro-v10-latin-600.ttf │ │ │ ├── source-sans-pro-v10-latin-600.woff │ │ │ ├── source-sans-pro-v10-latin-600.woff2 │ │ │ ├── source-sans-pro-v10-latin-600italic.eot │ │ │ ├── source-sans-pro-v10-latin-600italic.svg │ │ │ ├── source-sans-pro-v10-latin-600italic.ttf │ │ │ ├── source-sans-pro-v10-latin-600italic.woff │ │ │ ├── source-sans-pro-v10-latin-600italic.woff2 │ │ │ ├── source-sans-pro-v10-latin-700.eot │ │ │ ├── source-sans-pro-v10-latin-700.svg │ │ │ ├── source-sans-pro-v10-latin-700.ttf │ │ │ ├── source-sans-pro-v10-latin-700.woff │ │ │ ├── source-sans-pro-v10-latin-700.woff2 │ │ │ ├── source-sans-pro-v10-latin-regular.eot │ │ │ ├── source-sans-pro-v10-latin-regular.svg │ │ │ ├── source-sans-pro-v10-latin-regular.ttf │ │ │ ├── source-sans-pro-v10-latin-regular.woff │ │ │ ├── source-sans-pro-v10-latin-regular.woff2 │ │ │ └── source-sans-pro.css │ ├── gis.pgmetadata.xml │ ├── images │ │ ├── foreignKey.png │ │ ├── foreignKeys.png │ │ ├── primaryKey.png │ │ └── primaryKeys.png │ ├── index.html │ ├── info-html.txt │ ├── insertionOrder.txt │ ├── main.js │ ├── orphans.html │ ├── relationships.html │ ├── relationships.js │ ├── routines.html │ ├── routines.js │ ├── routines │ │ ├── calculate_fields_from_data.html │ │ ├── export_datasets_as_flat_table.html │ │ ├── generate_html_from_json.html │ │ ├── get_dataset_item_html_content.html │ │ ├── get_datasets_as_dcat_xml.html │ │ ├── refresh_dataset_calculated_fields.html │ │ ├── routine.js │ │ ├── update_postgresql_table_comment.html │ │ └── update_table_comment_from_dataset.html │ ├── schemaSpy.css │ ├── schemaSpy.js │ └── tables │ │ ├── contact.html │ │ ├── dataset.html │ │ ├── dataset_contact.html │ │ ├── glossary.html │ │ ├── html_template.html │ │ ├── link.html │ │ ├── qgis_plugin.html │ │ ├── table.js │ │ ├── theme.html │ │ ├── v_contact.html │ │ ├── v_dataset.html │ │ ├── v_dataset_as_dcat.html │ │ ├── v_export_table.html │ │ ├── v_glossary.html │ │ ├── v_link.html │ │ ├── v_locales.html │ │ ├── v_orphan_dataset_items.html │ │ ├── v_orphan_tables.html │ │ ├── v_schema_list.html │ │ ├── v_table_comment_from_metadata.html │ │ ├── v_table_list.html │ │ └── v_valid_dataset.html ├── icon.png ├── img │ └── logo_original.png ├── index.md ├── lizmap.md ├── media │ ├── attribute_table_add_cantact_dataset.png │ ├── attribute_table_add_contact.png │ ├── attribute_table_add_contact_dataset.png │ ├── attribute_table_add_dataset.png │ ├── attribute_table_add_dataset_1.png │ ├── attribute_table_add_dataset_2.png │ ├── attribute_table_add_link.png │ ├── attribute_table_add_theme.png │ ├── attribute_table_edit_mode.png │ ├── attribute_table_new_row.png │ ├── attribute_table_save.png │ ├── attribute_table_view_form.png │ ├── cd_30.png │ ├── datasource_manager.png │ ├── dock_qgis.png │ ├── dockpgmetadata_with_metadata.png │ ├── dockpgmetadatawithoutmetadata.png │ ├── example.gpkg │ ├── lizmap_module.jpeg │ └── locator.gif ├── processing │ ├── README.md │ ├── pg_metadata-create_administration_project.png │ ├── pg_metadata-create_database_structure.png │ ├── pg_metadata-recompute_values_dataset.png │ ├── pg_metadata-reset_html_templates.png │ ├── pg_metadata-set_connections.png │ └── pg_metadata-upgrade_database_structure.png ├── references.md ├── roadmap.md └── user-guide │ ├── advanced.md │ ├── end-user.md │ ├── gis-admin.md │ ├── index.md │ ├── sys-admin.md │ └── tutorials.md ├── mkdocs.yml ├── pg_metadata ├── __init__.py ├── connection_manager.py ├── dock.py ├── install │ └── sql │ │ ├── 00_initialize_database.sql │ │ ├── 99_finalize_database.sql │ │ ├── README.md │ │ ├── export_database_structure_to_SQL.sh │ │ ├── pgmetadata │ │ ├── 10_FUNCTION.sql │ │ ├── 20_TABLE_SEQUENCE_DEFAULT.sql │ │ ├── 30_VIEW.sql │ │ ├── 40_INDEX.sql │ │ ├── 50_TRIGGER.sql │ │ ├── 60_CONSTRAINT.sql │ │ ├── 70_COMMENT.sql │ │ └── 90_GLOSSARY.sql │ │ └── upgrade │ │ ├── upgrade_to_0.0.1.sql │ │ ├── upgrade_to_0.0.3.sql │ │ ├── upgrade_to_0.1.0.sql │ │ ├── upgrade_to_0.2.0.sql │ │ ├── upgrade_to_0.2.1.sql │ │ ├── upgrade_to_0.2.2.sql │ │ ├── upgrade_to_0.2.3.sql │ │ ├── upgrade_to_0.4.0.sql │ │ ├── upgrade_to_0.5.0.sql │ │ ├── upgrade_to_1.1.0.sql │ │ ├── upgrade_to_1.2.0.sql │ │ ├── upgrade_to_1.2.2.sql │ │ └── upgrade_to_1.3.0.sql ├── locator.py ├── metadata.txt ├── pg_metadata.py ├── plausible.py ├── processing │ ├── __init__.py │ ├── administration │ │ ├── __init__.py │ │ ├── create_administration_project.py │ │ └── set_connections.py │ ├── database │ │ ├── __init__.py │ │ ├── base.py │ │ ├── create.py │ │ ├── recompute_values.py │ │ ├── reset_html_template.py │ │ └── upgrade.py │ └── provider.py └── resources │ ├── css │ └── dock.css │ ├── html │ ├── contact.html │ ├── link.html │ └── main.html │ ├── icons │ └── icon.png │ ├── projects │ └── pg_metadata_administration.qgs │ ├── ui │ └── dock.ui │ └── xml │ └── dcat.xml ├── requirements ├── dev.txt ├── doc.txt └── packaging.txt └── setup.cfg /.docker/.env: -------------------------------------------------------------------------------- 1 | PLUGIN_NAME="pg_metadata" 2 | SCHEMA="pgmetadata" 3 | NETWORK="qgis_plugin_network" 4 | -------------------------------------------------------------------------------- /.docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | networks: 2 | qgis_plugin_network: 3 | 4 | services: 5 | db: 6 | profiles: 7 | - "qgis" 8 | - "db" 9 | image: kartoza/postgis:13-3 10 | container_name: postgis 11 | networks: 12 | qgis_plugin_network: 13 | environment: 14 | - POSTGRES_USER=docker 15 | - POSTGRES_PASS=docker 16 | - POSTGRES_DBNAME=gis 17 | # Uncomment to expose the postgis database on the network 18 | # - ALLOW_IP_RANGE= 0.0.0.0/0 19 | #- POSTGRES_MULTIPLE_EXTENSIONS=postgis,postgis_raster 20 | volumes: 21 | - ../${PLUGIN_NAME}:/tests_directory/${PLUGIN_NAME} 22 | # Uncomment to use the postgis database from outside the docker network 23 | ports: 24 | - "35432:5432" 25 | # Only supported in version 3 26 | # But we need version 2 for extends 27 | #healthcheck: 28 | # test: "exit 0" 29 | 30 | qgis: 31 | profiles: 32 | - "qgis" 33 | image: qgis/qgis:release-3_28 34 | container_name: qgis 35 | networks: 36 | qgis_plugin_network: 37 | volumes: 38 | # - /tmp/.X11-unix:/tmp/.X11-unix 39 | - ../${PLUGIN_NAME}:/tests_directory/${PLUGIN_NAME} 40 | environment: 41 | # - DISPLAY=unix$DISPLAY 42 | - DISPLAY=:99 43 | -------------------------------------------------------------------------------- /.docker/exec.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | docker exec -t qgis sh \ 5 | -c "cd /tests_directory/${PLUGIN_NAME} && qgis_testrunner.sh qgis_plugin_tools.infrastructure.test_runner.test_package" 6 | -------------------------------------------------------------------------------- /.docker/install_db.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | docker cp pg_service.conf postgis:/etc/postgresql-common/ 5 | 6 | echo "Test if PostgreSQL is ready" 7 | until docker exec postgis bash -c "psql service=test -c 'SELECT version()'" 1> /dev/null 2>&1 8 | do 9 | echo "." 10 | sleep 1 11 | done 12 | echo "PostgreSQL is now ready !" 13 | 14 | echo 'Installation from latest version' 15 | docker exec postgis bash -c "psql service=test -c 'DROP SCHEMA IF EXISTS ${SCHEMA} CASCADE;'" > /dev/null 16 | docker exec postgis bash -c "psql service=test -f /tests_directory/${PLUGIN_NAME}/install/sql/00_initialize_database.sql" > /dev/null 17 | for sql_file in `ls -v ../${PLUGIN_NAME}/install/sql/${SCHEMA}/*.sql`; do 18 | echo "${sql_file}" 19 | docker exec postgis bash -c "psql service=test -f /tests_directory/${PLUGIN_NAME}/${sql_file}" > /dev/null; 20 | done; 21 | -------------------------------------------------------------------------------- /.docker/install_migrate_generate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | if [ -n "$(git status --porcelain -uno)" ]; 5 | then 6 | echo "Git working directory is not clean. Aborting." 7 | exit 1 8 | fi 9 | 10 | echo "Installing the service file" 11 | docker cp pg_service.conf postgis:/etc/postgresql-common/ 12 | 13 | echo "Test if PostgreSQL is ready" 14 | until docker exec postgis bash -c "psql service=test -c 'SELECT version()'" 1> /dev/null 2>&1 15 | do 16 | echo "." 17 | sleep 1 18 | done 19 | echo "PostgreSQL is now ready !" 20 | 21 | echo "Installation from version ${INSTALL_VERSION}" 22 | docker exec postgis bash -c "psql service=test -c 'DROP SCHEMA IF EXISTS ${SCHEMA} CASCADE;'" > /dev/null 23 | docker exec postgis bash -c "psql service=test -f /tests_directory/${PLUGIN_NAME}/test/data/install/sql/00_initialize_database.sql" > /dev/null 24 | for sql_file in `ls -v ../${PLUGIN_NAME}/test/data/install/sql/${SCHEMA}/*.sql`; do 25 | echo "${sql_file}" 26 | docker exec postgis bash -c "psql service=test -f /tests_directory/${PLUGIN_NAME}/${sql_file}" > /dev/null; 27 | done; 28 | 29 | echo 'Run migrations' 30 | for migration in `ls -v ../${PLUGIN_NAME}/install/sql/upgrade/*.sql`; do 31 | echo "${migration}" 32 | docker exec postgis bash -c "psql service=test -v 'ON_ERROR_STOP=1' -f /tests_directory/${PLUGIN_NAME}/${migration}" > /dev/null; 33 | if [ $? -ne 0 ] 34 | then 35 | echo "Migration ${migration} is incorrect" 36 | exit 1; 37 | fi 38 | done; 39 | 40 | echo 'Generate doc' 41 | docker exec postgis bash -c "apt-get update && apt-get install -y rename" > /dev/null 42 | docker exec postgis bash -c "cd /tests_directory/${PLUGIN_NAME}/install/sql/ && ./export_database_structure_to_SQL.sh test ${SCHEMA}" 43 | docker exec postgis bash -c "cd /tests_directory/${PLUGIN_NAME}/install/sql/${SCHEMA} && chmod 777 *.sql" 44 | 45 | git diff 46 | [[ -z $(git status --porcelain -uno) ]] 47 | exit $? 48 | -------------------------------------------------------------------------------- /.docker/pg_service.conf: -------------------------------------------------------------------------------- 1 | [test] 2 | host=db 3 | port=5432 4 | user=docker 5 | password=docker 6 | dbname=gis 7 | -------------------------------------------------------------------------------- /.docker/postgis_connexions.ini: -------------------------------------------------------------------------------- 1 | [PostgreSQL] 2 | connections\test_database\allowGeometrylessTables=true 3 | connections\test_database\authcfg= 4 | connections\test_database\database=gis 5 | connections\test_database\dontResolveType=false 6 | connections\test_database\estimatedMetadata=false 7 | connections\test_database\geometryColumnsOnly=false 8 | connections\test_database\host=db 9 | connections\test_database\password=docker 10 | connections\test_database\port=5432 11 | connections\test_database\projectsInDatabase=false 12 | connections\test_database\publicOnly=false 13 | connections\test_database\savePassword=true 14 | connections\test_database\saveUsername=true 15 | connections\test_database\service= 16 | connections\test_database\sslmode=SslDisable 17 | connections\test_database\username=docker 18 | -------------------------------------------------------------------------------- /.docker/processing_doc.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | #xhost + 5 | 6 | docker run -d \ 7 | --name qgis-testing-environment \ 8 | -v $(pwd)/../${PLUGIN_NAME}:/tests_directory/${PLUGIN_NAME} \ 9 | -v $(pwd)/../docs/processing:/processing \ 10 | -e DISPLAY=:99 \ 11 | qgis/qgis:release-3_10 12 | 13 | sleep 10 14 | 15 | echo "Setting up" 16 | docker exec -t qgis-testing-environment sh -c "qgis_setup.sh ${PLUGIN_NAME}" 17 | docker exec -t qgis-testing-environment sh \ 18 | -c "qgis_testrunner.sh ${PLUGIN_NAME}.qgis_plugin_tools.infrastructure.doc_processing.generate_processing_doc" 19 | 20 | docker kill qgis-testing-environment 21 | docker rm qgis-testing-environment 22 | -------------------------------------------------------------------------------- /.docker/reformat_sql_install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | if [ -n "$(git status --porcelain -uno)" ]; 5 | then 6 | echo "Git working directory is not clean. Aborting." 7 | exit 1 8 | fi 9 | 10 | docker exec postgis bash -c "apt-get install -y rename" > /dev/null 11 | 12 | echo 'Generating SQL files' 13 | docker exec postgis bash -c "cd /tests_directory/${PLUGIN_NAME}/install/sql/ && ./export_database_structure_to_SQL.sh test ${SCHEMA}" 14 | 15 | docker exec postgis bash -c "cd /tests_directory/${PLUGIN_NAME}/install/sql/${SCHEMA} && chmod 777 *.sql" 16 | -------------------------------------------------------------------------------- /.docker/schemaspy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | chmod 777 -R "${PWD}"/../docs/database 5 | docker run \ 6 | -v "${PWD}/../docs/database:/output" \ 7 | --network=docker_${NETWORK} \ 8 | etrimaille/schemaspy-pg:latest \ 9 | -t pgsql-mat \ 10 | -dp /drivers \ 11 | -host db \ 12 | -db gis \ 13 | -u docker \ 14 | -p docker \ 15 | -port 5432 \ 16 | -s ${SCHEMA} 17 | -------------------------------------------------------------------------------- /.docker/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export $(grep -v '^#' .env | xargs) 3 | 4 | WITH_QGIS=${1:-noqgis} 5 | 6 | if [ "$WITH_QGIS" = with-qgis ]; then 7 | PROFILE="qgis" 8 | else 9 | PROFILE="db" 10 | fi 11 | 12 | docker compose --profile ${PROFILE} up -d --force-recreate --remove-orphans 13 | echo "Wait 10 seconds" 14 | sleep 10 15 | if [ "$WITH_QGIS" = with-qgis ]; then 16 | echo "Installation of the plugin ${PLUGIN_NAME}" 17 | docker exec -t qgis sh -c "qgis_setup.sh ${PLUGIN_NAME}" 18 | echo "Setup the database link from QGIS" 19 | docker cp postgis_connexions.ini qgis:/tmp 20 | docker exec qgis bash -c "cat /tmp/postgis_connexions.ini >> /root/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini" 21 | fi 22 | echo "Containers are running" 23 | -------------------------------------------------------------------------------- /.docker/stop.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo 'Stopping/killing containers' 4 | docker compose -f docker-compose.yml kill 5 | docker compose -f docker-compose.yml rm -f 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | pg_metadata/test/ export-ignore 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | 4 | - package-ecosystem: "pip" 5 | directory: "/requirements/" 6 | schedule: 7 | interval: "monthly" 8 | assignees: 9 | - Gustry 10 | 11 | - package-ecosystem: "github-actions" 12 | directory: "/" 13 | schedule: 14 | interval: "monthly" 15 | assignees: 16 | - Gustry 17 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: 🧪 Tests 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' 7 | branches: 8 | - '*' 9 | paths: 10 | - 'pg_metadata/**' 11 | pull_request: 12 | 13 | jobs: 14 | unittests: 15 | runs-on: ubuntu-latest 16 | defaults: 17 | run: 18 | working-directory: .docker 19 | 20 | steps: 21 | - name: Check out repository 22 | uses: actions/checkout@v4 23 | with: 24 | submodules: 'true' 25 | 26 | - name: Launching docker-compose 27 | run: ./start.sh with-qgis 28 | 29 | - name: Running tests 30 | run: ./exec.sh 31 | 32 | migration: 33 | runs-on: ubuntu-latest 34 | defaults: 35 | run: 36 | working-directory: .docker 37 | 38 | steps: 39 | - name: Check out repository 40 | uses: actions/checkout@v4 41 | 42 | - name: Launching docker-compose 43 | run: ./start.sh 44 | 45 | - name: Running tests 46 | run: ./install_migrate_generate.sh 47 | 48 | flake8: 49 | runs-on: ubuntu-latest 50 | steps: 51 | - name: Checkout 52 | uses: actions/checkout@v4 53 | 54 | - name: Setup Python 55 | uses: actions/setup-python@v5 56 | with: 57 | python-version: "3.10" 58 | architecture: x64 59 | cache: "pip" 60 | cache-dependency-path: "requirements/dev.txt" 61 | 62 | - name: Install Python requirements 63 | run: pip install -r requirements/dev.txt 64 | 65 | - name: Run flake8 66 | run: flake8 --statistics --show-source 67 | 68 | packaging: 69 | needs: [flake8, unittests, migration] 70 | runs-on: ubuntu-latest 71 | if: github.repository == '3liz/qgis-pgmetadata-plugin' && contains(github.ref, 'refs/tags/') 72 | 73 | steps: 74 | 75 | - name: Set env 76 | run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV 77 | 78 | - uses: actions/checkout@v4 79 | 80 | - name: Set up Python 3.10 81 | uses: actions/setup-python@v5 82 | with: 83 | python-version: "3.10" 84 | cache: "pip" 85 | cache-dependency-path: "requirements/packaging.txt" 86 | 87 | - name: Install Qt lrelease 88 | run: | 89 | sudo apt-get update 90 | sudo apt-get install qttools5-dev-tools 91 | 92 | - name: Install Python requirements 93 | run: pip install -r requirements/packaging.txt 94 | 95 | - name : Get current changelog 96 | run: qgis-plugin-ci changelog ${{ env.RELEASE_VERSION }} >> release.md 97 | 98 | - name: Create release on GitHub 99 | uses: ncipollo/release-action@v1.16.0 100 | with: 101 | bodyFile: release.md 102 | token: ${{ secrets.BOT_HUB_TOKEN }} 103 | 104 | - name: Package the plugin and deploy it in the release 105 | run: >- 106 | qgis-plugin-ci 107 | release ${{ env.RELEASE_VERSION }} 108 | --github-token ${{ secrets.BOT_HUB_TOKEN }} 109 | --transifex-token ${{ secrets.TRANSIFEX_TOKEN }} 110 | --osgeo-username ${{ secrets.OSGEO_USERNAME }} 111 | --osgeo-password ${{ secrets.OSGEO_PASSWORD }} 112 | --create-plugin-repo 113 | 114 | - name: Repository Dispatch 115 | uses: peter-evans/repository-dispatch@v3 116 | with: 117 | token: ${{ secrets.BOT_HUB_TOKEN }} 118 | repository: 3liz/3liz.github.io 119 | event-type: merge-plugins 120 | client-payload: '{"name": "pg_metadata", "version": "${{ env.RELEASE_VERSION }}", "url": "https://github.com/3liz/qgis-pgmetadata-plugin/releases/latest/download/plugins.xml"}' 121 | -------------------------------------------------------------------------------- /.github/workflows/publish-doc.yml: -------------------------------------------------------------------------------- 1 | name: 📖 Documentation 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - 'CHANGELOG.md' 9 | - 'CONTRIBUTING.md' 10 | - 'docs/**' 11 | - 'mkdocs.yml' 12 | - '.github/workflows/publish-doc.yml' 13 | 14 | jobs: 15 | deploy: 16 | runs-on: ubuntu-latest 17 | steps: 18 | 19 | - name: Get source code 20 | uses: actions/checkout@v4 21 | with: 22 | fetch-depth: 0 23 | 24 | - name: Set up Python 3.10 25 | uses: actions/setup-python@v5 26 | with: 27 | python-version: "3.10" 28 | cache: "pip" 29 | cache-dependency-path: "requirements/doc.txt" 30 | 31 | - name: Set up NodeJS (for search index prebuilding) 32 | uses: actions/setup-node@v4 33 | with: 34 | node-version: '20' 35 | 36 | - name: Install dependencies 37 | run: | 38 | python -m pip install --upgrade pip setuptools wheel 39 | python -m pip install -r requirements/doc.txt 40 | 41 | - name: Copy CHANGELOG.md and CONTRIBUTING.md 42 | run: | 43 | cp CHANGELOG.md docs/ 44 | cp CONTRIBUTING.md docs/ 45 | 46 | - name: Deploy to Github Pages 47 | run: | 48 | git config --global user.name "${{ secrets.BOT_NAME }}" 49 | git config --global user.email "${{ secrets.BOT_MAIL }}" 50 | mkdocs gh-deploy --clean --force --verbose 51 | -------------------------------------------------------------------------------- /.github/workflows/transifex.yml: -------------------------------------------------------------------------------- 1 | name: 🗺 Transifex 2 | 3 | on: 4 | push: 5 | paths: 6 | - '**.py' 7 | - '**.ui' 8 | 9 | jobs: 10 | push: 11 | name: Push to Transifex 12 | runs-on: ubuntu-latest 13 | if: github.repository == '3liz/qgis-pgmetadata-plugin' 14 | 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - name: Set up Python 3.10 19 | uses: actions/setup-python@v5 20 | with: 21 | python-version: "3.10" 22 | cache: "pip" 23 | cache-dependency-path: "requirements/packaging.txt" 24 | 25 | - name: Install Python requirements 26 | run: pip install -r requirements/packaging.txt 27 | 28 | - name: Push to Transifex 29 | run: qgis-plugin-ci push-translation ${{ secrets.TRANSIFEX_TOKEN }} 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Python 2 | __pycache__/ 3 | *.pyc 4 | venv/ 5 | .venv/ 6 | 7 | # Mkdocs 8 | build/ 9 | docs/CHANGELOG.md 10 | docs/CONTRIBUTING.md 11 | 12 | # OS 13 | .DS_Store 14 | 15 | # IDE 16 | .idea/ 17 | 18 | # Plugins, QGIS-plugin-CI 19 | pg_metadata.*.zip 20 | plugins.xml 21 | pg_metadata/i18n/*.ts 22 | pg_metadata/i18n/*.qm 23 | 24 | # Temp files 25 | *~ 26 | *.bak 27 | *.gpkg-wal 28 | *.gpkg-shm 29 | .~lock.* 30 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "pg_metadata/qgis_plugin_tools"] 2 | path = pg_metadata/qgis_plugin_tools 3 | url = https://github.com/3liz/qgis_plugin_tools.git 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | This project is hosted on GitHub. 4 | 5 | [Visit GitHub](https://github.com/3liz/qgis-pgmetadata-plugin/){: .md-button .md-button--primary } 6 | 7 | ## Translation 8 | 9 | [![🗺 Transifex](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/transifex.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/transifex.yml) 10 | 11 | The UI is available on [Transifex](https://www.transifex.com/3liz-1/pgmetadata/dashboard/), no development 12 | knowledge is required. You need to create an account, request the language if your language is not available by default (we will happily accept) and start to translate strings. 13 | 14 | To translate the metadata glossary, the 15 | [SQL file](https://github.com/3liz/qgis-pgmetadata-plugin/blob/master/pg_metadata/install/sql/pgmetadata/90_GLOSSARY.sql) 16 | needs to be edited. 17 | 18 | If you change an SQL file, you need to add a migration file, located in `pg_metadata/install/sql/upgrade/`. 19 | These files are run according to the current version of the database to be sure that an **existing** database 20 | can also be upgraded to a newer version of the plugin. 21 | 22 | SQL files located in `pg_metadata/install/sql/pgmetadata` are run **only** on a new database. 23 | 24 | Example of a migration file to update the glossary with German language : 25 | 26 | ```sql 27 | CREATE TABLE pgmetadata.t_glossary (field text, code text, label_de text, description_de text); 28 | 29 | INSERT INTO pgmetadata.t_glossary (field, code, label_de, description_de) 30 | VALUES 31 | ('dataset.publication_frequency', 'WEE', 'wöchentlich', 'Daten werden wöchentlich aktualisiert') 32 | ON CONFLICT DO NOTHING; 33 | 34 | UPDATE pgmetadata.glossary AS g 35 | SET (label_de, description_de) 36 | = (t.label_de, t.description_de) 37 | FROM pgmetadata.t_glossary AS t 38 | WHERE g.field = t.field AND g.code = t.code; 39 | 40 | DROP TABLE pgmetadata.t_glossary; 41 | ``` 42 | 43 | You can submit a 44 | [PR](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) 45 | on GitHub or feel free to contact us for any assistance. There are some languages available already. 46 | 47 | ## Code 48 | 49 | [![🧪 Tests](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/ci.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/ci.yml) 50 | 51 | SQL and Python are covered by unittests with Docker. 52 | 53 | ```bash 54 | pip install -r requirements/dev.txt 55 | # Check errors 56 | flake8 57 | # Sort imports 58 | isort . 59 | make tests 60 | make test_migration 61 | ``` 62 | 63 | On a new database, if you want to install the database by using migrations : 64 | 65 | ```python 66 | import os 67 | os.environ['TEST_DATABASE_INSTALL_PGMETADATA'] = '0.0.1' # Enable 68 | del os.environ['TEST_DATABASE_INSTALL_PGMETADATA'] # Disable 69 | ``` 70 | 71 | ## Documentation 72 | 73 | [![📖 Documentation](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/publish-doc.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/publish-doc.yml) 74 | 75 | The documentation is using [MkDocs](https://www.mkdocs.org/) with [Material](https://squidfunk.github.io/mkdocs-material/). 76 | 77 | ```bash 78 | pip install -r requirements/doc.txt 79 | mkdocs serve 80 | ``` 81 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | start_tests: 2 | @echo 'Start docker compose' 3 | @cd .docker && ./start.sh with-qgis 4 | 5 | run_tests: 6 | @echo 'Running tests, containers must be running' 7 | @cd .docker && ./exec.sh 8 | 9 | stop_tests: 10 | @echo 'Stopping/killing containers' 11 | @cd .docker && ./stop.sh 12 | 13 | tests: start_tests run_tests stop_tests flake8 14 | 15 | test_migration: 16 | @echo 'Testing migrations' 17 | @cd .docker && ./start.sh 18 | @cd .docker && ./install_migrate_generate.sh 19 | @cd .docker && ./stop.sh 20 | 21 | schemaspy: 22 | @echo 'Generating schemaspy documentation' 23 | @cd .docker && ./start.sh 24 | rm -rf docs/database 25 | mkdir docs/database 26 | @cd .docker && ./install_db.sh 27 | @cd .docker && ./schemaspy.sh 28 | @cd .docker && ./stop.sh 29 | 30 | generate_sql: 31 | @echo 'Generate SQL into install files' 32 | cd pg_metadata/install/sql && ./export_database_structure_to_SQL.sh pgmetadata pgmetadata 33 | git diff -p -R --no-ext-diff --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply 34 | 35 | reformat_sql: 36 | @echo 'Reformat SQL' 37 | @cd .docker && ./start.sh 38 | @cd .docker && ./install_db.sh 39 | @cd .docker && ./reformat_sql_install.sh 40 | @cd .docker && ./stop.sh 41 | 42 | flake8: 43 | @echo 'Running flake8' 44 | @flake8 45 | 46 | processing-doc: 47 | cd .docker && ./processing_doc.sh 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PgMetadata 2 | 3 | [![QGIS.org](https://img.shields.io/badge/QGIS.org-published-green)](https://plugins.qgis.org/plugins/pg_metadata/) 4 | [![📖 Documentation](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/publish-doc.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/publish-doc.yml) 5 | [![🗺 Transifex](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/transifex.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/transifex.yml) 6 | [![🧪 Tests](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/ci.yml/badge.svg)](https://github.com/3liz/qgis-pgmetadata-plugin/actions/workflows/ci.yml) 7 | 8 | 9 | ![icon](pg_metadata/resources/icons/icon.png) 10 | 11 | Store metadata in a PostgreSQL database and manage it from QGIS. 12 | 13 | ## License 14 | 15 | **PgMetadata** is released under [GNU General Public License v2.0](./LICENSE.md) or any later version. 16 | 17 | ## Documentation 18 | 19 | Presentation, user guide, installation, Lizmap Web Client, everything is there. 20 | 21 | https://docs.3liz.org/qgis-pgmetadata-plugin/ 22 | -------------------------------------------------------------------------------- /docs/changelog.md: -------------------------------------------------------------------------------- 1 | --- 2 | hide: 3 | - navigation 4 | --- 5 | 6 | 10 | 11 | --8<-- "./CHANGELOG.md" 12 | -------------------------------------------------------------------------------- /docs/contributing.md: -------------------------------------------------------------------------------- 1 | --- 2 | hide: 3 | - navigation 4 | --- 5 | 6 | 10 | 11 | --8<-- "./CONTRIBUTING.md" 12 | -------------------------------------------------------------------------------- /docs/database/anomalies.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3liz/qgis-pgmetadata-plugin/a109770346b0306bda6f0b3fedd66167dcce1943/docs/database/anomalies.js -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3liz/qgis-pgmetadata-plugin/a109770346b0306bda6f0b3fedd66167dcce1943/docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3liz/qgis-pgmetadata-plugin/a109770346b0306bda6f0b3fedd66167dcce1943/docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3liz/qgis-pgmetadata-plugin/a109770346b0306bda6f0b3fedd66167dcce1943/docs/database/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/bootstrap/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Plugin: Full Calendar 3 | * --------------------- 4 | */ 5 | .fc-button { 6 | background: #f4f4f4; 7 | background-image: none; 8 | color: #444; 9 | border-color: #ddd; 10 | border-bottom-color: #ddd; 11 | } 12 | .fc-button:hover, 13 | .fc-button:active, 14 | .fc-button.hover { 15 | background-color: #e9e9e9; 16 | } 17 | .fc-header-title h2 { 18 | font-size: 15px; 19 | line-height: 1.6em; 20 | color: #666; 21 | margin-left: 10px; 22 | } 23 | .fc-header-right { 24 | padding-right: 10px; 25 | } 26 | .fc-header-left { 27 | padding-left: 10px; 28 | } 29 | .fc-widget-header { 30 | background: #fafafa; 31 | } 32 | .fc-grid { 33 | width: 100%; 34 | border: 0; 35 | } 36 | .fc-widget-header:first-of-type, 37 | .fc-widget-content:first-of-type { 38 | border-left: 0; 39 | border-right: 0; 40 | } 41 | .fc-widget-header:last-of-type, 42 | .fc-widget-content:last-of-type { 43 | border-right: 0; 44 | } 45 | .fc-toolbar { 46 | padding: 10px; 47 | margin: 0; 48 | } 49 | .fc-day-number { 50 | font-size: 20px; 51 | font-weight: 300; 52 | padding-right: 10px; 53 | } 54 | .fc-color-picker { 55 | list-style: none; 56 | margin: 0; 57 | padding: 0; 58 | } 59 | .fc-color-picker > li { 60 | float: left; 61 | font-size: 30px; 62 | margin-right: 5px; 63 | line-height: 30px; 64 | } 65 | .fc-color-picker > li .fa { 66 | -webkit-transition: -webkit-transform linear 0.3s; 67 | -moz-transition: -moz-transform linear 0.3s; 68 | -o-transition: -o-transform linear 0.3s; 69 | transition: transform linear 0.3s; 70 | } 71 | .fc-color-picker > li .fa:hover { 72 | -webkit-transform: rotate(30deg); 73 | -ms-transform: rotate(30deg); 74 | -o-transform: rotate(30deg); 75 | transform: rotate(30deg); 76 | } 77 | #add-new-event { 78 | -webkit-transition: all linear 0.3s; 79 | -o-transition: all linear 0.3s; 80 | transition: all linear 0.3s; 81 | } 82 | .external-event { 83 | padding: 5px 10px; 84 | font-weight: bold; 85 | margin-bottom: 4px; 86 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); 87 | text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); 88 | border-radius: 3px; 89 | cursor: move; 90 | } 91 | .external-event:hover { 92 | box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2); 93 | } 94 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.min.css: -------------------------------------------------------------------------------- 1 | .fc-button{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}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-header:first-of-type,.fc-widget-content:first-of-type{border-left:0;border-right:0}.fc-widget-header:last-of-type,.fc-widget-content:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .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}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,0.2)} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/alt/AdminLTE-select2.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Plugin: Select2 3 | * --------------- 4 | */ 5 | .select2-container--default.select2-container--focus, 6 | .select2-selection.select2-container--focus, 7 | .select2-container--default:focus, 8 | .select2-selection:focus, 9 | .select2-container--default:active, 10 | .select2-selection:active { 11 | outline: none; 12 | } 13 | .select2-container--default .select2-selection--single, 14 | .select2-selection .select2-selection--single { 15 | border: 1px solid #d2d6de; 16 | border-radius: 0; 17 | padding: 6px 12px; 18 | height: 34px; 19 | } 20 | .select2-container--default.select2-container--open { 21 | border-color: #3c8dbc; 22 | } 23 | .select2-dropdown { 24 | border: 1px solid #d2d6de; 25 | border-radius: 0; 26 | } 27 | .select2-container--default .select2-results__option--highlighted[aria-selected] { 28 | background-color: #3c8dbc; 29 | color: white; 30 | } 31 | .select2-results__option { 32 | padding: 6px 12px; 33 | user-select: none; 34 | -webkit-user-select: none; 35 | } 36 | .select2-container .select2-selection--single .select2-selection__rendered { 37 | padding-left: 0; 38 | padding-right: 0; 39 | height: auto; 40 | margin-top: -4px; 41 | } 42 | .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { 43 | padding-right: 6px; 44 | padding-left: 20px; 45 | } 46 | .select2-container--default .select2-selection--single .select2-selection__arrow { 47 | height: 28px; 48 | right: 3px; 49 | } 50 | .select2-container--default .select2-selection--single .select2-selection__arrow b { 51 | margin-top: 0; 52 | } 53 | .select2-dropdown .select2-search__field, 54 | .select2-search--inline .select2-search__field { 55 | border: 1px solid #d2d6de; 56 | } 57 | .select2-dropdown .select2-search__field:focus, 58 | .select2-search--inline .select2-search__field:focus { 59 | outline: none; 60 | border: 1px solid #3c8dbc; 61 | } 62 | .select2-container--default .select2-results__option[aria-disabled=true] { 63 | color: #999; 64 | } 65 | .select2-container--default .select2-results__option[aria-selected=true] { 66 | background-color: #ddd; 67 | } 68 | .select2-container--default .select2-results__option[aria-selected=true], 69 | .select2-container--default .select2-results__option[aria-selected=true]:hover { 70 | color: #444; 71 | } 72 | .select2-container--default .select2-selection--multiple { 73 | border: 1px solid #d2d6de; 74 | border-radius: 0; 75 | } 76 | .select2-container--default .select2-selection--multiple:focus { 77 | border-color: #3c8dbc; 78 | } 79 | .select2-container--default.select2-container--focus .select2-selection--multiple { 80 | border-color: #d2d6de; 81 | } 82 | .select2-container--default .select2-selection--multiple .select2-selection__choice { 83 | background-color: #3c8dbc; 84 | border-color: #367fa9; 85 | padding: 1px 10px; 86 | color: #fff; 87 | } 88 | .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { 89 | margin-right: 5px; 90 | color: rgba(255, 255, 255, 0.7); 91 | } 92 | .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { 93 | color: #fff; 94 | } 95 | .select2-container .select2-selection--single .select2-selection__rendered { 96 | padding-right: 10px; 97 | } 98 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/alt/AdminLTE-select2.min.css: -------------------------------------------------------------------------------- 1 | .select2-container--default.select2-container--focus,.select2-selection.select2-container--focus,.select2-container--default:focus,.select2-selection:focus,.select2-container--default:active,.select2-selection:active{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}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:white}.select2-results__option{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}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:none;border:1px solid #3c8dbc}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{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)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-black-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav>li>a:hover,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-black.min.css: -------------------------------------------------------------------------------- 1 | .skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav>li>a:hover,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-blue-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .content-wrapper,.skin-blue-light .main-footer{border-left:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-blue.min.css: -------------------------------------------------------------------------------- 1 | .skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-green-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-green.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Green 3 | * ----------- 4 | */ 5 | .skin-green .main-header .navbar { 6 | background-color: #00a65a; 7 | } 8 | .skin-green .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-green .main-header .navbar .nav > li > a:hover, 12 | .skin-green .main-header .navbar .nav > li > a:active, 13 | .skin-green .main-header .navbar .nav > li > a:focus, 14 | .skin-green .main-header .navbar .nav .open > a, 15 | .skin-green .main-header .navbar .nav .open > a:hover, 16 | .skin-green .main-header .navbar .nav .open > a:focus, 17 | .skin-green .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-green .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-green .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-green .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-green .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #008d4c; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-green .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-green .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-green .main-header .navbar .dropdown-menu li a:hover { 42 | background: #008d4c; 43 | } 44 | } 45 | .skin-green .main-header .logo { 46 | background-color: #008d4c; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-green .main-header .logo:hover { 51 | background-color: #008749; 52 | } 53 | .skin-green .main-header li.user-header { 54 | background-color: #00a65a; 55 | } 56 | .skin-green .content-header { 57 | background: transparent; 58 | } 59 | .skin-green .wrapper, 60 | .skin-green .main-sidebar, 61 | .skin-green .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-green .user-panel > .info, 65 | .skin-green .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-green .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-green .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-green .sidebar-menu > li:hover > a, 76 | .skin-green .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #00a65a; 80 | } 81 | .skin-green .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-green .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-green .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-green .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-green .treeview-menu > li.active > a, 95 | .skin-green .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-green .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-green .sidebar-form input[type="text"], 104 | .skin-green .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | } 110 | .skin-green .sidebar-form input[type="text"] { 111 | color: #666; 112 | border-top-left-radius: 2px; 113 | border-top-right-radius: 0; 114 | border-bottom-right-radius: 0; 115 | border-bottom-left-radius: 2px; 116 | } 117 | .skin-green .sidebar-form input[type="text"]:focus, 118 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 119 | background-color: #fff; 120 | color: #666; 121 | } 122 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 123 | border-left-color: #fff; 124 | } 125 | .skin-green .sidebar-form .btn { 126 | color: #999; 127 | border-top-left-radius: 0; 128 | border-top-right-radius: 2px; 129 | border-bottom-right-radius: 2px; 130 | border-bottom-left-radius: 0; 131 | } 132 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-green.min.css: -------------------------------------------------------------------------------- 1 | .skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-purple-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-purple.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Purple 3 | * ------------ 4 | */ 5 | .skin-purple .main-header .navbar { 6 | background-color: #605ca8; 7 | } 8 | .skin-purple .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-purple .main-header .navbar .nav > li > a:hover, 12 | .skin-purple .main-header .navbar .nav > li > a:active, 13 | .skin-purple .main-header .navbar .nav > li > a:focus, 14 | .skin-purple .main-header .navbar .nav .open > a, 15 | .skin-purple .main-header .navbar .nav .open > a:hover, 16 | .skin-purple .main-header .navbar .nav .open > a:focus, 17 | .skin-purple .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-purple .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-purple .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-purple .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #555299; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-purple .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-purple .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-purple .main-header .navbar .dropdown-menu li a:hover { 42 | background: #555299; 43 | } 44 | } 45 | .skin-purple .main-header .logo { 46 | background-color: #555299; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-purple .main-header .logo:hover { 51 | background-color: #545096; 52 | } 53 | .skin-purple .main-header li.user-header { 54 | background-color: #605ca8; 55 | } 56 | .skin-purple .content-header { 57 | background: transparent; 58 | } 59 | .skin-purple .wrapper, 60 | .skin-purple .main-sidebar, 61 | .skin-purple .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-purple .user-panel > .info, 65 | .skin-purple .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-purple .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-purple .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-purple .sidebar-menu > li:hover > a, 76 | .skin-purple .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #605ca8; 80 | } 81 | .skin-purple .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-purple .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-purple .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-purple .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-purple .treeview-menu > li.active > a, 95 | .skin-purple .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-purple .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-purple .sidebar-form input[type="text"], 104 | .skin-purple .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | } 110 | .skin-purple .sidebar-form input[type="text"] { 111 | color: #666; 112 | border-top-left-radius: 2px; 113 | border-top-right-radius: 0; 114 | border-bottom-right-radius: 0; 115 | border-bottom-left-radius: 2px; 116 | } 117 | .skin-purple .sidebar-form input[type="text"]:focus, 118 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 119 | background-color: #fff; 120 | color: #666; 121 | } 122 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 123 | border-left-color: #fff; 124 | } 125 | .skin-purple .sidebar-form .btn { 126 | color: #999; 127 | border-top-left-radius: 0; 128 | border-top-right-radius: 2px; 129 | border-bottom-right-radius: 2px; 130 | border-bottom-left-radius: 0; 131 | } 132 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-purple.min.css: -------------------------------------------------------------------------------- 1 | .skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-red-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-red.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Red 3 | * --------- 4 | */ 5 | .skin-red .main-header .navbar { 6 | background-color: #dd4b39; 7 | } 8 | .skin-red .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-red .main-header .navbar .nav > li > a:hover, 12 | .skin-red .main-header .navbar .nav > li > a:active, 13 | .skin-red .main-header .navbar .nav > li > a:focus, 14 | .skin-red .main-header .navbar .nav .open > a, 15 | .skin-red .main-header .navbar .nav .open > a:hover, 16 | .skin-red .main-header .navbar .nav .open > a:focus, 17 | .skin-red .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-red .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-red .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-red .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-red .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #d73925; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-red .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-red .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-red .main-header .navbar .dropdown-menu li a:hover { 42 | background: #d73925; 43 | } 44 | } 45 | .skin-red .main-header .logo { 46 | background-color: #d73925; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-red .main-header .logo:hover { 51 | background-color: #d33724; 52 | } 53 | .skin-red .main-header li.user-header { 54 | background-color: #dd4b39; 55 | } 56 | .skin-red .content-header { 57 | background: transparent; 58 | } 59 | .skin-red .wrapper, 60 | .skin-red .main-sidebar, 61 | .skin-red .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-red .user-panel > .info, 65 | .skin-red .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-red .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-red .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-red .sidebar-menu > li:hover > a, 76 | .skin-red .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #dd4b39; 80 | } 81 | .skin-red .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-red .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-red .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-red .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-red .treeview-menu > li.active > a, 95 | .skin-red .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-red .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-red .sidebar-form input[type="text"], 104 | .skin-red .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | } 110 | .skin-red .sidebar-form input[type="text"] { 111 | color: #666; 112 | border-top-left-radius: 2px; 113 | border-top-right-radius: 0; 114 | border-bottom-right-radius: 0; 115 | border-bottom-left-radius: 2px; 116 | } 117 | .skin-red .sidebar-form input[type="text"]:focus, 118 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 119 | background-color: #fff; 120 | color: #666; 121 | } 122 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 123 | border-left-color: #fff; 124 | } 125 | .skin-red .sidebar-form .btn { 126 | color: #999; 127 | border-top-left-radius: 0; 128 | border-top-right-radius: 2px; 129 | border-bottom-right-radius: 2px; 130 | border-bottom-left-radius: 0; 131 | } 132 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-red.min.css: -------------------------------------------------------------------------------- 1 | .skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-yellow-light.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-yellow.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skin: Yellow 3 | * ------------ 4 | */ 5 | .skin-yellow .main-header .navbar { 6 | background-color: #f39c12; 7 | } 8 | .skin-yellow .main-header .navbar .nav > li > a { 9 | color: #ffffff; 10 | } 11 | .skin-yellow .main-header .navbar .nav > li > a:hover, 12 | .skin-yellow .main-header .navbar .nav > li > a:active, 13 | .skin-yellow .main-header .navbar .nav > li > a:focus, 14 | .skin-yellow .main-header .navbar .nav .open > a, 15 | .skin-yellow .main-header .navbar .nav .open > a:hover, 16 | .skin-yellow .main-header .navbar .nav .open > a:focus, 17 | .skin-yellow .main-header .navbar .nav > .active > a { 18 | background: rgba(0, 0, 0, 0.1); 19 | color: #f6f6f6; 20 | } 21 | .skin-yellow .main-header .navbar .sidebar-toggle { 22 | color: #ffffff; 23 | } 24 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 25 | color: #f6f6f6; 26 | background: rgba(0, 0, 0, 0.1); 27 | } 28 | .skin-yellow .main-header .navbar .sidebar-toggle { 29 | color: #fff; 30 | } 31 | .skin-yellow .main-header .navbar .sidebar-toggle:hover { 32 | background-color: #e08e0b; 33 | } 34 | @media (max-width: 767px) { 35 | .skin-yellow .main-header .navbar .dropdown-menu li.divider { 36 | background-color: rgba(255, 255, 255, 0.1); 37 | } 38 | .skin-yellow .main-header .navbar .dropdown-menu li a { 39 | color: #fff; 40 | } 41 | .skin-yellow .main-header .navbar .dropdown-menu li a:hover { 42 | background: #e08e0b; 43 | } 44 | } 45 | .skin-yellow .main-header .logo { 46 | background-color: #e08e0b; 47 | color: #ffffff; 48 | border-bottom: 0 solid transparent; 49 | } 50 | .skin-yellow .main-header .logo:hover { 51 | background-color: #db8b0b; 52 | } 53 | .skin-yellow .main-header li.user-header { 54 | background-color: #f39c12; 55 | } 56 | .skin-yellow .content-header { 57 | background: transparent; 58 | } 59 | .skin-yellow .wrapper, 60 | .skin-yellow .main-sidebar, 61 | .skin-yellow .left-side { 62 | background-color: #222d32; 63 | } 64 | .skin-yellow .user-panel > .info, 65 | .skin-yellow .user-panel > .info > a { 66 | color: #fff; 67 | } 68 | .skin-yellow .sidebar-menu > li.header { 69 | color: #4b646f; 70 | background: #1a2226; 71 | } 72 | .skin-yellow .sidebar-menu > li > a { 73 | border-left: 3px solid transparent; 74 | } 75 | .skin-yellow .sidebar-menu > li:hover > a, 76 | .skin-yellow .sidebar-menu > li.active > a { 77 | color: #ffffff; 78 | background: #1e282c; 79 | border-left-color: #f39c12; 80 | } 81 | .skin-yellow .sidebar-menu > li > .treeview-menu { 82 | margin: 0 1px; 83 | background: #2c3b41; 84 | } 85 | .skin-yellow .sidebar a { 86 | color: #b8c7ce; 87 | } 88 | .skin-yellow .sidebar a:hover { 89 | text-decoration: none; 90 | } 91 | .skin-yellow .treeview-menu > li > a { 92 | color: #8aa4af; 93 | } 94 | .skin-yellow .treeview-menu > li.active > a, 95 | .skin-yellow .treeview-menu > li > a:hover { 96 | color: #ffffff; 97 | } 98 | .skin-yellow .sidebar-form { 99 | border-radius: 3px; 100 | border: 1px solid #374850; 101 | margin: 10px 10px; 102 | } 103 | .skin-yellow .sidebar-form input[type="text"], 104 | .skin-yellow .sidebar-form .btn { 105 | box-shadow: none; 106 | background-color: #374850; 107 | border: 1px solid transparent; 108 | height: 35px; 109 | } 110 | .skin-yellow .sidebar-form input[type="text"] { 111 | color: #666; 112 | border-top-left-radius: 2px; 113 | border-top-right-radius: 0; 114 | border-bottom-right-radius: 0; 115 | border-bottom-left-radius: 2px; 116 | } 117 | .skin-yellow .sidebar-form input[type="text"]:focus, 118 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 119 | background-color: #fff; 120 | color: #666; 121 | } 122 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { 123 | border-left-color: #fff; 124 | } 125 | .skin-yellow .sidebar-form .btn { 126 | color: #999; 127 | border-top-left-radius: 0; 128 | border-top-right-radius: 2px; 129 | border-bottom-right-radius: 2px; 130 | border-bottom-left-radius: 0; 131 | } 132 | -------------------------------------------------------------------------------- /docs/database/bower/admin-lte/dist/css/skins/skin-yellow.min.css: -------------------------------------------------------------------------------- 1 | .skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} -------------------------------------------------------------------------------- /docs/database/bower/datatables.net-bs/css/dataTables.bootstrap.min.css: -------------------------------------------------------------------------------- 1 | table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody>table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody>tr:first-child>th,div.dataTables_scrollBody>table>tbody>tr:first-child>td{border-top:none}div.dataTables_scrollFoot>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0} 2 | -------------------------------------------------------------------------------- /docs/database/bower/datatables.net-bs/js/dataTables.bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 3 integration 3 | ©2011-2015 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, 6 | {sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; 7 | l=0;for(h=f.length;l",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", 8 | "aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('