first commit
This commit is contained in:
15
.editorconfig
Executable file
15
.editorconfig
Executable file
@ -0,0 +1,15 @@
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
# Matches multiple files with brace expansion notation
|
||||
# Set default charset
|
||||
[*]
|
||||
charset = utf-8
|
||||
|
||||
# Tab indentation (no size specified)
|
||||
indent_style = tab
|
||||
31
.gitignore
vendored
Executable file
31
.gitignore
vendored
Executable file
@ -0,0 +1,31 @@
|
||||
.DS_Store
|
||||
|
||||
application/cache/*
|
||||
!application/cache/index.html
|
||||
|
||||
application/logs/*
|
||||
!application/logs/index.html
|
||||
|
||||
!application/*/.htaccess
|
||||
|
||||
composer.lock
|
||||
|
||||
user_guide_src/build/*
|
||||
user_guide_src/cilexer/build/*
|
||||
user_guide_src/cilexer/dist/*
|
||||
user_guide_src/cilexer/pycilexer.egg-info/*
|
||||
# /vendor/
|
||||
|
||||
# IDE Files
|
||||
#-------------------------
|
||||
/nbproject/
|
||||
.idea/*
|
||||
|
||||
## Sublime Text cache files
|
||||
*.tmlanguage.cache
|
||||
*.tmPreferences.cache
|
||||
*.stTheme.cache
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
/tests/tests/
|
||||
/tests/results/
|
||||
4
.htaccess
Executable file
4
.htaccess
Executable file
@ -0,0 +1,4 @@
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule .* index.php/$0 [PT,L]
|
||||
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"intelephense.diagnostics.undefinedProperties": false
|
||||
}
|
||||
6
application/.htaccess
Executable file
6
application/.htaccess
Executable file
@ -0,0 +1,6 @@
|
||||
<IfModule authz_core_module>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !authz_core_module>
|
||||
Deny from all
|
||||
</IfModule>
|
||||
11
application/cache/index.html
vendored
Executable file
11
application/cache/index.html
vendored
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
135
application/config/autoload.php
Executable file
135
application/config/autoload.php
Executable file
@ -0,0 +1,135 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| AUTO-LOADER
|
||||
| -------------------------------------------------------------------
|
||||
| This file specifies which systems should be loaded by default.
|
||||
|
|
||||
| In order to keep the framework as light-weight as possible only the
|
||||
| absolute minimal resources are loaded by default. For example,
|
||||
| the database is not connected to automatically since no assumption
|
||||
| is made regarding whether you intend to use it. This file lets
|
||||
| you globally define which systems you would like loaded with every
|
||||
| request.
|
||||
|
|
||||
| -------------------------------------------------------------------
|
||||
| Instructions
|
||||
| -------------------------------------------------------------------
|
||||
|
|
||||
| These are the things you can load automatically:
|
||||
|
|
||||
| 1. Packages
|
||||
| 2. Libraries
|
||||
| 3. Drivers
|
||||
| 4. Helper files
|
||||
| 5. Custom config files
|
||||
| 6. Language files
|
||||
| 7. Models
|
||||
|
|
||||
*/
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Packages
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
||||
|
|
||||
*/
|
||||
$autoload['packages'] = array();
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Libraries
|
||||
| -------------------------------------------------------------------
|
||||
| These are the classes located in system/libraries/ or your
|
||||
| application/libraries/ directory, with the addition of the
|
||||
| 'database' library, which is somewhat of a special case.
|
||||
|
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['libraries'] = array('database', 'email', 'session');
|
||||
|
|
||||
| You can also supply an alternative library name to be assigned
|
||||
| in the controller:
|
||||
|
|
||||
| $autoload['libraries'] = array('user_agent' => 'ua');
|
||||
*/
|
||||
$autoload['libraries'] = array('database','session');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Drivers
|
||||
| -------------------------------------------------------------------
|
||||
| These classes are located in system/libraries/ or in your
|
||||
| application/libraries/ directory, but are also placed inside their
|
||||
| own subdirectory and they extend the CI_Driver_Library class. They
|
||||
| offer multiple interchangeable driver options.
|
||||
|
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['drivers'] = array('cache');
|
||||
|
|
||||
| You can also supply an alternative property name to be assigned in
|
||||
| the controller:
|
||||
|
|
||||
| $autoload['drivers'] = array('cache' => 'cch');
|
||||
|
|
||||
*/
|
||||
$autoload['drivers'] = array();
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Helper Files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['helper'] = array('url', 'file');
|
||||
*/
|
||||
$autoload['helper'] = array('url','form');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Config files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['config'] = array('config1', 'config2');
|
||||
|
|
||||
| NOTE: This item is intended for use ONLY if you have created custom
|
||||
| config files. Otherwise, leave it blank.
|
||||
|
|
||||
*/
|
||||
$autoload['config'] = array();
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Language files
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['language'] = array('lang1', 'lang2');
|
||||
|
|
||||
| NOTE: Do not include the "_lang" part of your file. For example
|
||||
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
||||
|
|
||||
*/
|
||||
$autoload['language'] = array();
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Auto-load Models
|
||||
| -------------------------------------------------------------------
|
||||
| Prototype:
|
||||
|
|
||||
| $autoload['model'] = array('first_model', 'second_model');
|
||||
|
|
||||
| You can also supply an alternative model name to be assigned
|
||||
| in the controller:
|
||||
|
|
||||
| $autoload['model'] = array('first_model' => 'first');
|
||||
*/
|
||||
$autoload['model'] = array();
|
||||
526
application/config/config.php
Executable file
526
application/config/config.php
Executable file
@ -0,0 +1,526 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Base Site URL
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| URL to your CodeIgniter root. Typically this will be your base URL,
|
||||
| WITH a trailing slash:
|
||||
|
|
||||
| http://example.com/
|
||||
|
|
||||
| WARNING: You MUST set this value!
|
||||
|
|
||||
| If it is not set, then CodeIgniter will try guess the protocol and path
|
||||
| your installation, but due to security concerns the hostname will be set
|
||||
| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
|
||||
| The auto-detection mechanism exists only for convenience during
|
||||
| development and MUST NOT be used in production!
|
||||
|
|
||||
| If you need to allow multiple domains, remember that this file is still
|
||||
| a PHP script and you can easily do that on your own.
|
||||
|
|
||||
*/
|
||||
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
|
||||
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
|
||||
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Index File
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Typically this will be your index.php file, unless you've renamed it to
|
||||
| something else. If you are using mod_rewrite to remove the page set this
|
||||
| variable so that it is blank.
|
||||
|
|
||||
*/
|
||||
$config['index_page'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| URI PROTOCOL
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This item determines which server global should be used to retrieve the
|
||||
| URI string. The default setting of 'REQUEST_URI' works for most servers.
|
||||
| If your links do not seem to work, try one of the other delicious flavors:
|
||||
|
|
||||
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
|
||||
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
|
||||
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
||||
|
|
||||
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
|
||||
*/
|
||||
$config['uri_protocol'] = 'REQUEST_URI';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| URL suffix
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
|
||||
| For more information please see the user guide:
|
||||
|
|
||||
| https://codeigniter.com/user_guide/general/urls.html
|
||||
*/
|
||||
$config['url_suffix'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Language
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This determines which set of language files should be used. Make sure
|
||||
| there is an available translation if you intend to use something other
|
||||
| than english.
|
||||
|
|
||||
*/
|
||||
$config['language'] = 'english';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Character Set
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This determines which character set is used by default in various methods
|
||||
| that require a character set to be provided.
|
||||
|
|
||||
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
||||
|
|
||||
*/
|
||||
$config['charset'] = 'UTF-8';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable/Disable System Hooks
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you would like to use the 'hooks' feature you must enable it by
|
||||
| setting this variable to TRUE (boolean). See the user guide for details.
|
||||
|
|
||||
*/
|
||||
$config['enable_hooks'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Class Extension Prefix
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This item allows you to set the filename/classname prefix when extending
|
||||
| native libraries. For more information please see the user guide:
|
||||
|
|
||||
| https://codeigniter.com/user_guide/general/core_classes.html
|
||||
| https://codeigniter.com/user_guide/general/creating_libraries.html
|
||||
|
|
||||
*/
|
||||
$config['subclass_prefix'] = 'MY_';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Composer auto-loading
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Enabling this setting will tell CodeIgniter to look for a Composer
|
||||
| package auto-loader script in application/vendor/autoload.php.
|
||||
|
|
||||
| $config['composer_autoload'] = TRUE;
|
||||
|
|
||||
| Or if you have your vendor/ directory located somewhere else, you
|
||||
| can opt to set a specific path as well:
|
||||
|
|
||||
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
||||
|
|
||||
| For more information about Composer, please visit http://getcomposer.org/
|
||||
|
|
||||
| Note: This will NOT disable or override the CodeIgniter-specific
|
||||
| autoloading (application/config/autoload.php)
|
||||
*/
|
||||
$config['composer_autoload'] = FCPATH . 'vendor/autoload.php';
|
||||
// $config['composer_autoload'] = TRUE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Allowed URL Characters
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This lets you specify which characters are permitted within your URLs.
|
||||
| When someone tries to submit a URL with disallowed characters they will
|
||||
| get a warning message.
|
||||
|
|
||||
| As a security measure you are STRONGLY encouraged to restrict URLs to
|
||||
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
||||
|
|
||||
| Leave blank to allow all characters -- but only if you are insane.
|
||||
|
|
||||
| The configured value is actually a regular expression character group
|
||||
| and it will be executed as: ! preg_match('/^[<permitted_uri_chars>]+$/i
|
||||
|
|
||||
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
||||
|
|
||||
*/
|
||||
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable Query Strings
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| By default CodeIgniter uses search-engine friendly segment based URLs:
|
||||
| example.com/who/what/where/
|
||||
|
|
||||
| You can optionally enable standard query string based URLs:
|
||||
| example.com?who=me&what=something&where=here
|
||||
|
|
||||
| Options are: TRUE or FALSE (boolean)
|
||||
|
|
||||
| The other items let you set the query string 'words' that will
|
||||
| invoke your controllers and its functions:
|
||||
| example.com/index.php?c=controller&m=function
|
||||
|
|
||||
| Please note that some of the helpers won't work as expected when
|
||||
| this feature is enabled, since CodeIgniter is designed primarily to
|
||||
| use segment based URLs.
|
||||
|
|
||||
*/
|
||||
$config['enable_query_strings'] = FALSE;
|
||||
$config['controller_trigger'] = 'c';
|
||||
$config['function_trigger'] = 'm';
|
||||
$config['directory_trigger'] = 'd';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Allow $_GET array
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| By default CodeIgniter enables access to the $_GET array. If for some
|
||||
| reason you would like to disable it, set 'allow_get_array' to FALSE.
|
||||
|
|
||||
| WARNING: This feature is DEPRECATED and currently available only
|
||||
| for backwards compatibility purposes!
|
||||
|
|
||||
*/
|
||||
$config['allow_get_array'] = TRUE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Error Logging Threshold
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| You can enable error logging by setting a threshold over zero. The
|
||||
| threshold determines what gets logged. Threshold options are:
|
||||
|
|
||||
| 0 = Disables logging, Error logging TURNED OFF
|
||||
| 1 = Error Messages (including PHP errors)
|
||||
| 2 = Debug Messages
|
||||
| 3 = Informational Messages
|
||||
| 4 = All Messages
|
||||
|
|
||||
| You can also pass an array with threshold levels to show individual error types
|
||||
|
|
||||
| array(2) = Debug Messages, without Error Messages
|
||||
|
|
||||
| For a live site you'll usually only enable Errors (1) to be logged otherwise
|
||||
| your log files will fill up very fast.
|
||||
|
|
||||
*/
|
||||
$config['log_threshold'] = 0;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Error Logging Directory Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leave this BLANK unless you would like to set something other than the default
|
||||
| application/logs/ directory. Use a full server path with trailing slash.
|
||||
|
|
||||
*/
|
||||
$config['log_path'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log File Extension
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The default filename extension for log files. The default 'php' allows for
|
||||
| protecting the log files via basic scripting, when they are to be stored
|
||||
| under a publicly accessible directory.
|
||||
|
|
||||
| Note: Leaving it blank will default to 'php'.
|
||||
|
|
||||
*/
|
||||
$config['log_file_extension'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log File Permissions
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The file system permissions to be applied on newly created log files.
|
||||
|
|
||||
| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
|
||||
| integer notation (i.e. 0700, 0644, etc.)
|
||||
*/
|
||||
$config['log_file_permissions'] = 0644;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Date Format for Logs
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Each item that is logged has an associated date. You can use PHP date
|
||||
| codes to set your own date formatting
|
||||
|
|
||||
*/
|
||||
$config['log_date_format'] = 'Y-m-d H:i:s';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Error Views Directory Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leave this BLANK unless you would like to set something other than the default
|
||||
| application/views/errors/ directory. Use a full server path with trailing slash.
|
||||
|
|
||||
*/
|
||||
$config['error_views_path'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache Directory Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Leave this BLANK unless you would like to set something other than the default
|
||||
| application/cache/ directory. Use a full server path with trailing slash.
|
||||
|
|
||||
*/
|
||||
$config['cache_path'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cache Include Query String
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Whether to take the URL query string into consideration when generating
|
||||
| output cache files. Valid options are:
|
||||
|
|
||||
| FALSE = Disabled
|
||||
| TRUE = Enabled, take all query parameters into account.
|
||||
| Please be aware that this may result in numerous cache
|
||||
| files generated for the same page over and over again.
|
||||
| array('q') = Enabled, but only take into account the specified list
|
||||
| of query parameters.
|
||||
|
|
||||
*/
|
||||
$config['cache_query_string'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Encryption Key
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If you use the Encryption class, you must set an encryption key.
|
||||
| See the user guide for more info.
|
||||
|
|
||||
| https://codeigniter.com/user_guide/libraries/encryption.html
|
||||
|
|
||||
*/
|
||||
$config['encryption_key'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Session Variables
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 'sess_driver'
|
||||
|
|
||||
| The storage driver to use: files, database, redis, memcached
|
||||
|
|
||||
| 'sess_cookie_name'
|
||||
|
|
||||
| The session cookie name, must contain only [0-9a-z_-] characters
|
||||
|
|
||||
| 'sess_expiration'
|
||||
|
|
||||
| The number of SECONDS you want the session to last.
|
||||
| Setting to 0 (zero) means expire when the browser is closed.
|
||||
|
|
||||
| 'sess_save_path'
|
||||
|
|
||||
| The location to save sessions to, driver dependent.
|
||||
|
|
||||
| For the 'files' driver, it's a path to a writable directory.
|
||||
| WARNING: Only absolute paths are supported!
|
||||
|
|
||||
| For the 'database' driver, it's a table name.
|
||||
| Please read up the manual for the format with other session drivers.
|
||||
|
|
||||
| IMPORTANT: You are REQUIRED to set a valid save path!
|
||||
|
|
||||
| 'sess_match_ip'
|
||||
|
|
||||
| Whether to match the user's IP address when reading the session data.
|
||||
|
|
||||
| WARNING: If you're using the database driver, don't forget to update
|
||||
| your session table's PRIMARY KEY when changing this setting.
|
||||
|
|
||||
| 'sess_time_to_update'
|
||||
|
|
||||
| How many seconds between CI regenerating the session ID.
|
||||
|
|
||||
| 'sess_regenerate_destroy'
|
||||
|
|
||||
| Whether to destroy session data associated with the old session ID
|
||||
| when auto-regenerating the session ID. When set to FALSE, the data
|
||||
| will be later deleted by the garbage collector.
|
||||
|
|
||||
| Other session cookie settings are shared with the rest of the application,
|
||||
| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
|
||||
|
|
||||
*/
|
||||
$config['sess_driver'] = 'files';
|
||||
$config['sess_cookie_name'] = 'ci_session';
|
||||
$config['sess_expiration'] = 7200;
|
||||
$config['sess_save_path'] = NULL;
|
||||
$config['sess_match_ip'] = FALSE;
|
||||
$config['sess_time_to_update'] = 300;
|
||||
$config['sess_regenerate_destroy'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cookie Related Variables
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions
|
||||
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
|
||||
| 'cookie_path' = Typically will be a forward slash
|
||||
| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
|
||||
| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
|
||||
|
|
||||
| Note: These settings (with the exception of 'cookie_prefix' and
|
||||
| 'cookie_httponly') will also affect sessions.
|
||||
|
|
||||
*/
|
||||
$config['cookie_prefix'] = '';
|
||||
$config['cookie_domain'] = '';
|
||||
$config['cookie_path'] = '/';
|
||||
$config['cookie_secure'] = FALSE;
|
||||
$config['cookie_httponly'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Standardize newlines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Determines whether to standardize newline characters in input data,
|
||||
| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value.
|
||||
|
|
||||
| WARNING: This feature is DEPRECATED and currently available only
|
||||
| for backwards compatibility purposes!
|
||||
|
|
||||
*/
|
||||
$config['standardize_newlines'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global XSS Filtering
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Determines whether the XSS filter is always active when GET, POST or
|
||||
| COOKIE data is encountered
|
||||
|
|
||||
| WARNING: This feature is DEPRECATED and currently available only
|
||||
| for backwards compatibility purposes!
|
||||
|
|
||||
*/
|
||||
$config['global_xss_filtering'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Cross Site Request Forgery
|
||||
|--------------------------------------------------------------------------
|
||||
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
|
||||
| checked on a submitted form. If you are accepting user data, it is strongly
|
||||
| recommended CSRF protection be enabled.
|
||||
|
|
||||
| 'csrf_token_name' = The token name
|
||||
| 'csrf_cookie_name' = The cookie name
|
||||
| 'csrf_expire' = The number in seconds the token should expire.
|
||||
| 'csrf_regenerate' = Regenerate token on every submission
|
||||
| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
|
||||
*/
|
||||
$config['csrf_protection'] = FALSE;
|
||||
$config['csrf_token_name'] = 'csrf_test_name';
|
||||
$config['csrf_cookie_name'] = 'csrf_cookie_name';
|
||||
$config['csrf_expire'] = 7200;
|
||||
$config['csrf_regenerate'] = TRUE;
|
||||
$config['csrf_exclude_uris'] = array();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Output Compression
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Enables Gzip output compression for faster page loads. When enabled,
|
||||
| the output class will test whether your server supports Gzip.
|
||||
| Even if it does, however, not all browsers support compression
|
||||
| so enable only if you are reasonably sure your visitors can handle it.
|
||||
|
|
||||
| Only used if zlib.output_compression is turned off in your php.ini.
|
||||
| Please do not use it together with httpd-level output compression.
|
||||
|
|
||||
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
|
||||
| means you are prematurely outputting something to your browser. It could
|
||||
| even be a line of whitespace at the end of one of your scripts. For
|
||||
| compression to work, nothing can be sent before the output buffer is called
|
||||
| by the output class. Do not 'echo' any values with compression enabled.
|
||||
|
|
||||
*/
|
||||
$config['compress_output'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Master Time Reference
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Options are 'local' or any PHP supported timezone. This preference tells
|
||||
| the system whether to use your server's local time as the master 'now'
|
||||
| reference, or convert it to the configured one timezone. See the 'date
|
||||
| helper' page of the user guide for information regarding date handling.
|
||||
|
|
||||
*/
|
||||
$config['time_reference'] = 'local';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Rewrite PHP Short Tags
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If your PHP installation does not have short tag support enabled CI
|
||||
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
|
||||
| in your view files. Options are TRUE or FALSE (boolean)
|
||||
|
|
||||
| Note: You need to have eval() enabled for this to work.
|
||||
|
|
||||
*/
|
||||
$config['rewrite_short_tags'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Reverse Proxy IPs
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If your server is behind a reverse proxy, you must whitelist the proxy
|
||||
| IP addresses from which CodeIgniter should trust headers such as
|
||||
| HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
|
||||
| the visitor's IP address.
|
||||
|
|
||||
| You can use both an array or a comma-separated list of proxy addresses,
|
||||
| as well as specifying whole subnets. Here are a few examples:
|
||||
|
|
||||
| Comma-separated: '10.0.1.200,192.168.5.0/24'
|
||||
| Array: array('10.0.1.200', '192.168.5.0/24')
|
||||
*/
|
||||
$config['proxy_ips'] = '';
|
||||
85
application/config/constants.php
Executable file
85
application/config/constants.php
Executable file
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Display Debug backtrace
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If set to TRUE, a backtrace will be displayed along with php errors. If
|
||||
| error_reporting is disabled, the backtrace will not display, regardless
|
||||
| of this setting
|
||||
|
|
||||
*/
|
||||
defined('SHOW_DEBUG_BACKTRACE') OR define('SHOW_DEBUG_BACKTRACE', TRUE);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| File and Directory Modes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These prefs are used when checking and setting modes when working
|
||||
| with the file system. The defaults are fine on servers with proper
|
||||
| security, but you may wish (or even need) to change the values in
|
||||
| certain environments (Apache running a separate process for each
|
||||
| user, PHP under CGI with Apache suEXEC, etc.). Octal values should
|
||||
| always be used to set the mode correctly.
|
||||
|
|
||||
*/
|
||||
defined('FILE_READ_MODE') OR define('FILE_READ_MODE', 0644);
|
||||
defined('FILE_WRITE_MODE') OR define('FILE_WRITE_MODE', 0666);
|
||||
defined('DIR_READ_MODE') OR define('DIR_READ_MODE', 0755);
|
||||
defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755);
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| File Stream Modes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These modes are used when working with fopen()/popen()
|
||||
|
|
||||
*/
|
||||
defined('FOPEN_READ') OR define('FOPEN_READ', 'rb');
|
||||
defined('FOPEN_READ_WRITE') OR define('FOPEN_READ_WRITE', 'r+b');
|
||||
defined('FOPEN_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
|
||||
defined('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
|
||||
defined('FOPEN_WRITE_CREATE') OR define('FOPEN_WRITE_CREATE', 'ab');
|
||||
defined('FOPEN_READ_WRITE_CREATE') OR define('FOPEN_READ_WRITE_CREATE', 'a+b');
|
||||
defined('FOPEN_WRITE_CREATE_STRICT') OR define('FOPEN_WRITE_CREATE_STRICT', 'xb');
|
||||
defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Exit Status Codes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used to indicate the conditions under which the script is exit()ing.
|
||||
| While there is no universal standard for error codes, there are some
|
||||
| broad conventions. Three such conventions are mentioned below, for
|
||||
| those who wish to make use of them. The CodeIgniter defaults were
|
||||
| chosen for the least overlap with these conventions, while still
|
||||
| leaving room for others to be defined in future versions and user
|
||||
| applications.
|
||||
|
|
||||
| The three main conventions used for determining exit status codes
|
||||
| are as follows:
|
||||
|
|
||||
| Standard C/C++ Library (stdlibc):
|
||||
| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
|
||||
| (This link also contains other GNU-specific conventions)
|
||||
| BSD sysexits.h:
|
||||
| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
|
||||
| Bash scripting:
|
||||
| http://tldp.org/LDP/abs/html/exitcodes.html
|
||||
|
|
||||
*/
|
||||
defined('EXIT_SUCCESS') OR define('EXIT_SUCCESS', 0); // no errors
|
||||
defined('EXIT_ERROR') OR define('EXIT_ERROR', 1); // generic error
|
||||
defined('EXIT_CONFIG') OR define('EXIT_CONFIG', 3); // configuration error
|
||||
defined('EXIT_UNKNOWN_FILE') OR define('EXIT_UNKNOWN_FILE', 4); // file not found
|
||||
defined('EXIT_UNKNOWN_CLASS') OR define('EXIT_UNKNOWN_CLASS', 5); // unknown class
|
||||
defined('EXIT_UNKNOWN_METHOD') OR define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
|
||||
defined('EXIT_USER_INPUT') OR define('EXIT_USER_INPUT', 7); // invalid user input
|
||||
defined('EXIT_DATABASE') OR define('EXIT_DATABASE', 8); // database error
|
||||
defined('EXIT__AUTO_MIN') OR define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
|
||||
defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
|
||||
96
application/config/database.php
Executable file
96
application/config/database.php
Executable file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| DATABASE CONNECTIVITY SETTINGS
|
||||
| -------------------------------------------------------------------
|
||||
| This file will contain the settings needed to access your database.
|
||||
|
|
||||
| For complete instructions please consult the 'Database Connection'
|
||||
| page of the User Guide.
|
||||
|
|
||||
| -------------------------------------------------------------------
|
||||
| EXPLANATION OF VARIABLES
|
||||
| -------------------------------------------------------------------
|
||||
|
|
||||
| ['dsn'] The full DSN string describe a connection to the database.
|
||||
| ['hostname'] The hostname of your database server.
|
||||
| ['username'] The username used to connect to the database
|
||||
| ['password'] The password used to connect to the database
|
||||
| ['database'] The name of the database you want to connect to
|
||||
| ['dbdriver'] The database driver. e.g.: mysqli.
|
||||
| Currently supported:
|
||||
| cubrid, ibase, mssql, mysql, mysqli, oci8,
|
||||
| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv
|
||||
| ['dbprefix'] You can add an optional prefix, which will be added
|
||||
| to the table name when using the Query Builder class
|
||||
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
|
||||
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
|
||||
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
|
||||
| ['cachedir'] The path to the folder where cache files should be stored
|
||||
| ['char_set'] The character set used in communicating with the database
|
||||
| ['dbcollat'] The character collation used in communicating with the database
|
||||
| NOTE: For MySQL and MySQLi databases, this setting is only used
|
||||
| as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7
|
||||
| (and in table creation queries made with DB Forge).
|
||||
| There is an incompatibility in PHP with mysql_real_escape_string() which
|
||||
| can make your site vulnerable to SQL injection if you are using a
|
||||
| multi-byte character set and are running versions lower than these.
|
||||
| Sites using Latin-1 or UTF-8 database character set and collation are unaffected.
|
||||
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
|
||||
| ['encrypt'] Whether or not to use an encrypted connection.
|
||||
|
|
||||
| 'mysql' (deprecated), 'sqlsrv' and 'pdo/sqlsrv' drivers accept TRUE/FALSE
|
||||
| 'mysqli' and 'pdo/mysql' drivers accept an array with the following options:
|
||||
|
|
||||
| 'ssl_key' - Path to the private key file
|
||||
| 'ssl_cert' - Path to the public key certificate file
|
||||
| 'ssl_ca' - Path to the certificate authority file
|
||||
| 'ssl_capath' - Path to a directory containing trusted CA certificates in PEM format
|
||||
| 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':')
|
||||
| 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not
|
||||
|
|
||||
| ['compress'] Whether or not to use client compression (MySQL only)
|
||||
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
|
||||
| - good for ensuring strict SQL while developing
|
||||
| ['ssl_options'] Used to set various SSL options that can be used when making SSL connections.
|
||||
| ['failover'] array - A array with 0 or more data for connections if the main should fail.
|
||||
| ['save_queries'] TRUE/FALSE - Whether to "save" all executed queries.
|
||||
| NOTE: Disabling this will also effectively disable both
|
||||
| $this->db->last_query() and profiling of DB queries.
|
||||
| When you run a query, with this setting set to TRUE (default),
|
||||
| CodeIgniter will store the SQL statement for debugging purposes.
|
||||
| However, this may cause high memory usage, especially if you run
|
||||
| a lot of SQL queries ... disable this to avoid that problem.
|
||||
|
|
||||
| The $active_group variable lets you choose which connection group to
|
||||
| make active. By default there is only one group (the 'default' group).
|
||||
|
|
||||
| The $query_builder variables lets you determine whether or not to load
|
||||
| the query builder class.
|
||||
*/
|
||||
$active_group = 'default';
|
||||
$query_builder = TRUE;
|
||||
|
||||
$db['default'] = array(
|
||||
'dsn' => '',
|
||||
'hostname' => 'localhost',
|
||||
'username' => 'root',
|
||||
'password' => '',
|
||||
'database' => 'db_parkir',
|
||||
'dbdriver' => 'mysqli',
|
||||
'dbprefix' => '',
|
||||
'pconnect' => FALSE,
|
||||
'db_debug' => (ENVIRONMENT !== 'production'),
|
||||
'cache_on' => FALSE,
|
||||
'cachedir' => '',
|
||||
'char_set' => 'utf8',
|
||||
'dbcollat' => 'utf8_general_ci',
|
||||
'swap_pre' => '',
|
||||
'encrypt' => FALSE,
|
||||
'compress' => FALSE,
|
||||
'stricton' => FALSE,
|
||||
'failover' => array(),
|
||||
'save_queries' => TRUE
|
||||
);
|
||||
24
application/config/doctypes.php
Executable file
24
application/config/doctypes.php
Executable file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
$_doctypes = array(
|
||||
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
|
||||
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
||||
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
|
||||
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
|
||||
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
|
||||
'html5' => '<!DOCTYPE html>',
|
||||
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
|
||||
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
|
||||
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
|
||||
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
|
||||
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
|
||||
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
|
||||
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
|
||||
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
|
||||
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
|
||||
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
||||
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
|
||||
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
|
||||
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">'
|
||||
);
|
||||
114
application/config/foreign_chars.php
Executable file
114
application/config/foreign_chars.php
Executable file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| Foreign Characters
|
||||
| -------------------------------------------------------------------
|
||||
| This file contains an array of foreign characters for transliteration
|
||||
| conversion used by the Text helper
|
||||
|
|
||||
*/
|
||||
$foreign_characters = array(
|
||||
'/ä|æ|ǽ/' => 'ae',
|
||||
'/ö|œ/' => 'oe',
|
||||
'/ü/' => 'ue',
|
||||
'/Ä/' => 'Ae',
|
||||
'/Ü/' => 'Ue',
|
||||
'/Ö/' => 'Oe',
|
||||
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
|
||||
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
|
||||
'/Б/' => 'B',
|
||||
'/б/' => 'b',
|
||||
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
|
||||
'/ç|ć|ĉ|ċ|č/' => 'c',
|
||||
'/Д|Δ/' => 'D',
|
||||
'/д|δ/' => 'd',
|
||||
'/Ð|Ď|Đ/' => 'Dj',
|
||||
'/ð|ď|đ/' => 'dj',
|
||||
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E',
|
||||
'/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e',
|
||||
'/Ф/' => 'F',
|
||||
'/ф/' => 'f',
|
||||
'/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G',
|
||||
'/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g',
|
||||
'/Ĥ|Ħ/' => 'H',
|
||||
'/ĥ|ħ/' => 'h',
|
||||
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I',
|
||||
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i',
|
||||
'/Ĵ/' => 'J',
|
||||
'/ĵ/' => 'j',
|
||||
'/Θ/' => 'TH',
|
||||
'/θ/' => 'th',
|
||||
'/Ķ|Κ|К/' => 'K',
|
||||
'/ķ|κ|к/' => 'k',
|
||||
'/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
|
||||
'/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
|
||||
'/М/' => 'M',
|
||||
'/м/' => 'm',
|
||||
'/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
|
||||
'/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
|
||||
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
|
||||
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
|
||||
'/П/' => 'P',
|
||||
'/п/' => 'p',
|
||||
'/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
|
||||
'/ŕ|ŗ|ř|ρ|р/' => 'r',
|
||||
'/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
|
||||
'/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
|
||||
'/Ț|Ţ|Ť|Ŧ|Τ|Т/' => 'T',
|
||||
'/ț|ţ|ť|ŧ|τ|т/' => 't',
|
||||
'/Þ|þ/' => 'th',
|
||||
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
|
||||
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
|
||||
'/Ƴ|Ɏ|Ỵ|Ẏ|Ӳ|Ӯ|Ў|Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y',
|
||||
'/ẙ|ʏ|ƴ|ɏ|ỵ|ẏ|ӳ|ӯ|ў|ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y',
|
||||
'/В/' => 'V',
|
||||
'/в/' => 'v',
|
||||
'/Ŵ/' => 'W',
|
||||
'/ŵ/' => 'w',
|
||||
'/Φ/' => 'F',
|
||||
'/φ/' => 'f',
|
||||
'/Χ/' => 'CH',
|
||||
'/χ/' => 'ch',
|
||||
'/Ź|Ż|Ž|Ζ|З/' => 'Z',
|
||||
'/ź|ż|ž|ζ|з/' => 'z',
|
||||
'/Æ|Ǽ/' => 'AE',
|
||||
'/ß/' => 'ss',
|
||||
'/IJ/' => 'IJ',
|
||||
'/ij/' => 'ij',
|
||||
'/Œ/' => 'OE',
|
||||
'/ƒ/' => 'f',
|
||||
'/Ξ/' => 'KS',
|
||||
'/ξ/' => 'ks',
|
||||
'/Π/' => 'P',
|
||||
'/π/' => 'p',
|
||||
'/Β/' => 'V',
|
||||
'/β/' => 'v',
|
||||
'/Μ/' => 'M',
|
||||
'/μ/' => 'm',
|
||||
'/Ψ/' => 'PS',
|
||||
'/ψ/' => 'ps',
|
||||
'/Ё/' => 'Yo',
|
||||
'/ё/' => 'yo',
|
||||
'/Є/' => 'Ye',
|
||||
'/є/' => 'ye',
|
||||
'/Ї/' => 'Yi',
|
||||
'/Ж/' => 'Zh',
|
||||
'/ж/' => 'zh',
|
||||
'/Х/' => 'Kh',
|
||||
'/х/' => 'kh',
|
||||
'/Ц/' => 'Ts',
|
||||
'/ц/' => 'ts',
|
||||
'/Ч/' => 'Ch',
|
||||
'/ч/' => 'ch',
|
||||
'/Ш/' => 'Sh',
|
||||
'/ш/' => 'sh',
|
||||
'/Щ/' => 'Shch',
|
||||
'/щ/' => 'shch',
|
||||
'/Ъ|ъ|Ь|ь/' => '',
|
||||
'/Ю/' => 'Yu',
|
||||
'/ю/' => 'yu',
|
||||
'/Я/' => 'Ya',
|
||||
'/я/' => 'ya'
|
||||
);
|
||||
13
application/config/hooks.php
Executable file
13
application/config/hooks.php
Executable file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| Hooks
|
||||
| -------------------------------------------------------------------------
|
||||
| This file lets you define "hooks" to extend CI without hacking the core
|
||||
| files. Please see the user guide for info:
|
||||
|
|
||||
| https://codeigniter.com/user_guide/general/hooks.html
|
||||
|
|
||||
*/
|
||||
11
application/config/index.html
Executable file
11
application/config/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
19
application/config/memcached.php
Executable file
19
application/config/memcached.php
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| Memcached settings
|
||||
| -------------------------------------------------------------------------
|
||||
| Your Memcached servers can be specified below.
|
||||
|
|
||||
| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached
|
||||
|
|
||||
*/
|
||||
$config = array(
|
||||
'default' => array(
|
||||
'hostname' => '127.0.0.1',
|
||||
'port' => '11211',
|
||||
'weight' => '1',
|
||||
),
|
||||
);
|
||||
84
application/config/migration.php
Executable file
84
application/config/migration.php
Executable file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable/Disable Migrations
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Migrations are disabled by default for security reasons.
|
||||
| You should enable migrations whenever you intend to do a schema migration
|
||||
| and disable it back when you're done.
|
||||
|
|
||||
*/
|
||||
$config['migration_enabled'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migration Type
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Migration file names may be based on a sequential identifier or on
|
||||
| a timestamp. Options are:
|
||||
|
|
||||
| 'sequential' = Sequential migration naming (001_add_blog.php)
|
||||
| 'timestamp' = Timestamp migration naming (20121031104401_add_blog.php)
|
||||
| Use timestamp format YYYYMMDDHHIISS.
|
||||
|
|
||||
| Note: If this configuration value is missing the Migration library
|
||||
| defaults to 'sequential' for backward compatibility with CI2.
|
||||
|
|
||||
*/
|
||||
$config['migration_type'] = 'timestamp';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migrations table
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is the name of the table that will store the current migrations state.
|
||||
| When migrations runs it will store in a database table which migration
|
||||
| level the system is at. It then compares the migration level in this
|
||||
| table to the $config['migration_version'] if they are not the same it
|
||||
| will migrate up. This must be set.
|
||||
|
|
||||
*/
|
||||
$config['migration_table'] = 'migrations';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Auto Migrate To Latest
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If this is set to TRUE when you load the migrations class and have
|
||||
| $config['migration_enabled'] set to TRUE the system will auto migrate
|
||||
| to your latest migration (whatever $config['migration_version'] is
|
||||
| set to). This way you do not have to call migrations anywhere else
|
||||
| in your code to have the latest migration.
|
||||
|
|
||||
*/
|
||||
$config['migration_auto_latest'] = FALSE;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migrations version
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This is used to set migration version that the file system should be on.
|
||||
| If you run $this->migration->current() this is the version that schema will
|
||||
| be upgraded / downgraded to.
|
||||
|
|
||||
*/
|
||||
$config['migration_version'] = 0;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Migrations Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Path to your migrations folder.
|
||||
| Typically, it will be within your application path.
|
||||
| Also, writing permission is required within the migrations path.
|
||||
|
|
||||
*/
|
||||
$config['migration_path'] = APPPATH.'migrations/';
|
||||
184
application/config/mimes.php
Executable file
184
application/config/mimes.php
Executable file
@ -0,0 +1,184 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| MIME TYPES
|
||||
| -------------------------------------------------------------------
|
||||
| This file contains an array of mime types. It is used by the
|
||||
| Upload class to help identify allowed file types.
|
||||
|
|
||||
*/
|
||||
return array(
|
||||
'hqx' => array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'),
|
||||
'cpt' => 'application/mac-compactpro',
|
||||
'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'),
|
||||
'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'),
|
||||
'dms' => 'application/octet-stream',
|
||||
'lha' => 'application/octet-stream',
|
||||
'lzh' => 'application/octet-stream',
|
||||
'exe' => array('application/octet-stream', 'application/x-msdownload'),
|
||||
'class' => 'application/octet-stream',
|
||||
'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'),
|
||||
'so' => 'application/octet-stream',
|
||||
'sea' => 'application/octet-stream',
|
||||
'dll' => 'application/octet-stream',
|
||||
'oda' => 'application/oda',
|
||||
'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'),
|
||||
'ai' => array('application/pdf', 'application/postscript'),
|
||||
'eps' => 'application/postscript',
|
||||
'ps' => 'application/postscript',
|
||||
'smi' => 'application/smil',
|
||||
'smil' => 'application/smil',
|
||||
'mif' => 'application/vnd.mif',
|
||||
'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'),
|
||||
'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'),
|
||||
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'),
|
||||
'wbxml' => 'application/wbxml',
|
||||
'wmlc' => 'application/wmlc',
|
||||
'dcr' => 'application/x-director',
|
||||
'dir' => 'application/x-director',
|
||||
'dxr' => 'application/x-director',
|
||||
'dvi' => 'application/x-dvi',
|
||||
'gtar' => 'application/x-gtar',
|
||||
'gz' => 'application/x-gzip',
|
||||
'gzip' => 'application/x-gzip',
|
||||
'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'),
|
||||
'php4' => 'application/x-httpd-php',
|
||||
'php3' => 'application/x-httpd-php',
|
||||
'phtml' => 'application/x-httpd-php',
|
||||
'phps' => 'application/x-httpd-php-source',
|
||||
'js' => array('application/x-javascript', 'text/plain'),
|
||||
'swf' => 'application/x-shockwave-flash',
|
||||
'sit' => 'application/x-stuffit',
|
||||
'tar' => 'application/x-tar',
|
||||
'tgz' => array('application/x-tar', 'application/x-gzip-compressed'),
|
||||
'z' => 'application/x-compress',
|
||||
'xhtml' => 'application/xhtml+xml',
|
||||
'xht' => 'application/xhtml+xml',
|
||||
'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'),
|
||||
'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'),
|
||||
'mid' => 'audio/midi',
|
||||
'midi' => 'audio/midi',
|
||||
'mpga' => 'audio/mpeg',
|
||||
'mp2' => 'audio/mpeg',
|
||||
'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
|
||||
'aif' => array('audio/x-aiff', 'audio/aiff'),
|
||||
'aiff' => array('audio/x-aiff', 'audio/aiff'),
|
||||
'aifc' => 'audio/x-aiff',
|
||||
'ram' => 'audio/x-pn-realaudio',
|
||||
'rm' => 'audio/x-pn-realaudio',
|
||||
'rpm' => 'audio/x-pn-realaudio-plugin',
|
||||
'ra' => 'audio/x-realaudio',
|
||||
'rv' => 'video/vnd.rn-realvideo',
|
||||
'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'),
|
||||
'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'),
|
||||
'gif' => 'image/gif',
|
||||
'jpeg' => array('image/jpeg', 'image/pjpeg'),
|
||||
'jpg' => array('image/jpeg', 'image/pjpeg'),
|
||||
'jpe' => array('image/jpeg', 'image/pjpeg'),
|
||||
'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'),
|
||||
'png' => array('image/png', 'image/x-png'),
|
||||
'tiff' => 'image/tiff',
|
||||
'tif' => 'image/tiff',
|
||||
'css' => array('text/css', 'text/plain'),
|
||||
'html' => array('text/html', 'text/plain'),
|
||||
'htm' => array('text/html', 'text/plain'),
|
||||
'shtml' => array('text/html', 'text/plain'),
|
||||
'txt' => 'text/plain',
|
||||
'text' => 'text/plain',
|
||||
'log' => array('text/plain', 'text/x-log'),
|
||||
'rtx' => 'text/richtext',
|
||||
'rtf' => 'text/rtf',
|
||||
'xml' => array('application/xml', 'text/xml', 'text/plain'),
|
||||
'xsl' => array('application/xml', 'text/xsl', 'text/xml'),
|
||||
'mpeg' => 'video/mpeg',
|
||||
'mpg' => 'video/mpeg',
|
||||
'mpe' => 'video/mpeg',
|
||||
'qt' => 'video/quicktime',
|
||||
'mov' => 'video/quicktime',
|
||||
'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'),
|
||||
'movie' => 'video/x-sgi-movie',
|
||||
'doc' => array('application/msword', 'application/vnd.ms-office'),
|
||||
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'),
|
||||
'dot' => array('application/msword', 'application/vnd.ms-office'),
|
||||
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'),
|
||||
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'),
|
||||
'word' => array('application/msword', 'application/octet-stream'),
|
||||
'xl' => 'application/excel',
|
||||
'eml' => 'message/rfc822',
|
||||
'json' => array('application/json', 'text/json'),
|
||||
'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'),
|
||||
'p10' => array('application/x-pkcs10', 'application/pkcs10'),
|
||||
'p12' => 'application/x-pkcs12',
|
||||
'p7a' => 'application/x-pkcs7-signature',
|
||||
'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
|
||||
'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'),
|
||||
'p7r' => 'application/x-pkcs7-certreqresp',
|
||||
'p7s' => 'application/pkcs7-signature',
|
||||
'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'),
|
||||
'crl' => array('application/pkix-crl', 'application/pkcs-crl'),
|
||||
'der' => 'application/x-x509-ca-cert',
|
||||
'kdb' => 'application/octet-stream',
|
||||
'pgp' => 'application/pgp',
|
||||
'gpg' => 'application/gpg-keys',
|
||||
'sst' => 'application/octet-stream',
|
||||
'csr' => 'application/octet-stream',
|
||||
'rsa' => 'application/x-pkcs7',
|
||||
'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'),
|
||||
'3g2' => 'video/3gpp2',
|
||||
'3gp' => array('video/3gp', 'video/3gpp'),
|
||||
'mp4' => 'video/mp4',
|
||||
'm4a' => 'audio/x-m4a',
|
||||
'f4v' => array('video/mp4', 'video/x-f4v'),
|
||||
'flv' => 'video/x-flv',
|
||||
'webm' => 'video/webm',
|
||||
'aac' => array('audio/x-aac', 'audio/aac'),
|
||||
'm4u' => 'application/vnd.mpegurl',
|
||||
'm3u' => 'text/plain',
|
||||
'xspf' => 'application/xspf+xml',
|
||||
'vlc' => 'application/videolan',
|
||||
'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'),
|
||||
'au' => 'audio/x-au',
|
||||
'ac3' => 'audio/ac3',
|
||||
'flac' => 'audio/x-flac',
|
||||
'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'),
|
||||
'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'),
|
||||
'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'),
|
||||
'ics' => 'text/calendar',
|
||||
'ical' => 'text/calendar',
|
||||
'zsh' => 'text/x-scriptzsh',
|
||||
'7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||
'7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'),
|
||||
'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'),
|
||||
'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'),
|
||||
'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'),
|
||||
'svg' => array('image/svg+xml', 'application/xml', 'text/xml'),
|
||||
'vcf' => 'text/x-vcard',
|
||||
'srt' => array('text/srt', 'text/plain'),
|
||||
'vtt' => array('text/vtt', 'text/plain'),
|
||||
'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'),
|
||||
'odc' => 'application/vnd.oasis.opendocument.chart',
|
||||
'otc' => 'application/vnd.oasis.opendocument.chart-template',
|
||||
'odf' => 'application/vnd.oasis.opendocument.formula',
|
||||
'otf' => 'application/vnd.oasis.opendocument.formula-template',
|
||||
'odg' => 'application/vnd.oasis.opendocument.graphics',
|
||||
'otg' => 'application/vnd.oasis.opendocument.graphics-template',
|
||||
'odi' => 'application/vnd.oasis.opendocument.image',
|
||||
'oti' => 'application/vnd.oasis.opendocument.image-template',
|
||||
'odp' => 'application/vnd.oasis.opendocument.presentation',
|
||||
'otp' => 'application/vnd.oasis.opendocument.presentation-template',
|
||||
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
|
||||
'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
|
||||
'odt' => 'application/vnd.oasis.opendocument.text',
|
||||
'odm' => 'application/vnd.oasis.opendocument.text-master',
|
||||
'ott' => 'application/vnd.oasis.opendocument.text-template',
|
||||
'oth' => 'application/vnd.oasis.opendocument.text-web'
|
||||
);
|
||||
14
application/config/profiler.php
Executable file
14
application/config/profiler.php
Executable file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| Profiler Sections
|
||||
| -------------------------------------------------------------------------
|
||||
| This file lets you determine whether or not various sections of Profiler
|
||||
| data are displayed when the Profiler is enabled.
|
||||
| Please see the user guide for info:
|
||||
|
|
||||
| https://codeigniter.com/user_guide/general/profiling.html
|
||||
|
|
||||
*/
|
||||
626
application/config/rest.php
Executable file
626
application/config/rest.php
Executable file
@ -0,0 +1,626 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| HTTP protocol
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to force the use of HTTPS for REST API calls
|
||||
|
|
||||
*/
|
||||
$config['force_https'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Output Format
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The default format of the response
|
||||
|
|
||||
| 'array': Array data structure
|
||||
| 'csv': Comma separated file
|
||||
| 'json': Uses json_encode(). Note: If a GET query string
|
||||
| called 'callback' is passed, then jsonp will be returned
|
||||
| 'html' HTML using the table library in CodeIgniter
|
||||
| 'php': Uses var_export()
|
||||
| 'serialized': Uses serialize()
|
||||
| 'xml': Uses simplexml_load_string()
|
||||
|
|
||||
*/
|
||||
$config['rest_default_format'] = 'json';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Supported Output Formats
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following setting contains a list of the supported/allowed formats.
|
||||
| You may remove those formats that you don't want to use.
|
||||
| If the default format $config['rest_default_format'] is missing within
|
||||
| $config['rest_supported_formats'], it will be added silently during
|
||||
| REST_Controller initialization.
|
||||
|
|
||||
*/
|
||||
$config['rest_supported_formats'] = [
|
||||
'json',
|
||||
'array',
|
||||
'csv',
|
||||
'html',
|
||||
'jsonp',
|
||||
'php',
|
||||
'serialized',
|
||||
'xml',
|
||||
];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Status Field Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The field name for the status inside the response
|
||||
|
|
||||
*/
|
||||
$config['rest_status_field_name'] = 'status';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Message Field Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The field name for the message inside the response
|
||||
|
|
||||
*/
|
||||
$config['rest_message_field_name'] = 'error';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Enable Emulate Request
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Should we enable emulation of the request (e.g. used in Mootools request)
|
||||
|
|
||||
*/
|
||||
$config['enable_emulate_request'] = true;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Realm
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Name of the password protected REST API displayed on login dialogs
|
||||
|
|
||||
| e.g: My Secret REST API
|
||||
|
|
||||
*/
|
||||
$config['rest_realm'] = 'REST API';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Login
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to specify the REST API requires to be logged in
|
||||
|
|
||||
| FALSE No login required
|
||||
| 'basic' Unsecured login
|
||||
| 'digest' More secured login
|
||||
| 'session' Check for a PHP session variable. See 'auth_source' to set the
|
||||
| authorization key
|
||||
|
|
||||
*/
|
||||
$config['rest_auth'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Login Source
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Is login required and if so, the user store to use
|
||||
|
|
||||
| '' Use config based users or wildcard testing
|
||||
| 'ldap' Use LDAP authentication
|
||||
| 'library' Use a authentication library
|
||||
|
|
||||
| Note: If 'rest_auth' is set to 'session' then change 'auth_source' to the name of the session variable
|
||||
|
|
||||
*/
|
||||
$config['auth_source'] = 'ldap';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Allow Authentication and API Keys
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Where you wish to have Basic, Digest or Session login, but also want to use API Keys (for limiting
|
||||
| requests etc), set to TRUE;
|
||||
|
|
||||
*/
|
||||
$config['allow_auth_and_keys'] = true;
|
||||
$config['strict_api_and_auth'] = true; // force the use of both api and auth before a valid api request is made
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Login Class and Function
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If library authentication is used define the class and function name
|
||||
|
|
||||
| The function should accept two parameters: class->function($username, $password)
|
||||
| In other cases override the function _perform_library_auth in your controller
|
||||
|
|
||||
| For digest authentication the library function should return already a stored
|
||||
| md5(username:restrealm:password) for that username
|
||||
|
|
||||
| e.g: md5('admin:REST API:1234') = '1e957ebc35631ab22d5bd6526bd14ea2'
|
||||
|
|
||||
*/
|
||||
$config['auth_library_class'] = '';
|
||||
$config['auth_library_function'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Override auth types for specific class/method
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set specific authentication types for methods within a class (controller)
|
||||
|
|
||||
| Set as many config entries as needed. Any methods not set will use the default 'rest_auth' config value.
|
||||
|
|
||||
| e.g:
|
||||
|
|
||||
| $config['auth_override_class_method']['deals']['view'] = 'none';
|
||||
| $config['auth_override_class_method']['deals']['insert'] = 'digest';
|
||||
| $config['auth_override_class_method']['accounts']['user'] = 'basic';
|
||||
| $config['auth_override_class_method']['dashboard']['*'] = 'none|digest|basic';
|
||||
|
|
||||
| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. An asterisk may also be used to specify an authentication method for an entire classes methods. Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end of the method name)
|
||||
| Acceptable values are; 'none', 'digest' and 'basic'.
|
||||
|
|
||||
*/
|
||||
// $config['auth_override_class_method']['deals']['view'] = 'none';
|
||||
// $config['auth_override_class_method']['deals']['insert'] = 'digest';
|
||||
// $config['auth_override_class_method']['accounts']['user'] = 'basic';
|
||||
// $config['auth_override_class_method']['dashboard']['*'] = 'basic';
|
||||
|
||||
// ---Uncomment list line for the wildard unit test
|
||||
// $config['auth_override_class_method']['wildcard_test_cases']['*'] = 'basic';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Override auth types for specific 'class/method/HTTP method'
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| example:
|
||||
|
|
||||
| $config['auth_override_class_method_http']['deals']['view']['get'] = 'none';
|
||||
| $config['auth_override_class_method_http']['deals']['insert']['post'] = 'none';
|
||||
| $config['auth_override_class_method_http']['deals']['*']['options'] = 'none';
|
||||
*/
|
||||
|
||||
// ---Uncomment list line for the wildard unit test
|
||||
// $config['auth_override_class_method_http']['wildcard_test_cases']['*']['options'] = 'basic';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Login Usernames
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Array of usernames and passwords for login, if ldap is configured this is ignored
|
||||
|
|
||||
*/
|
||||
$config['rest_valid_logins'] = ['admin' => '1234'];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global IP White-listing
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Limit connections to your REST server to White-listed IP addresses
|
||||
|
|
||||
| Usage:
|
||||
| 1. Set to TRUE and select an auth option for extreme security (client's IP
|
||||
| address must be in white-list and they must also log in)
|
||||
| 2. Set to TRUE with auth set to FALSE to allow White-listed IPs access with no login
|
||||
| 3. Set to FALSE but set 'auth_override_class_method' to 'white-list' to
|
||||
| restrict certain methods to IPs in your white-list
|
||||
|
|
||||
*/
|
||||
$config['rest_ip_whitelist_enabled'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Handle Exceptions
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Handle exceptions caused by the controller
|
||||
|
|
||||
*/
|
||||
$config['rest_handle_exceptions'] = true;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST IP White-list
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Limit connections to your REST server with a comma separated
|
||||
| list of IP addresses
|
||||
|
|
||||
| e.g: '123.456.789.0, 987.654.32.1'
|
||||
|
|
||||
| 127.0.0.1 and 0.0.0.0 are allowed by default
|
||||
|
|
||||
*/
|
||||
$config['rest_ip_whitelist'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global IP Blacklisting
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Prevent connections to the REST server from blacklisted IP addresses
|
||||
|
|
||||
| Usage:
|
||||
| 1. Set to TRUE and add any IP address to 'rest_ip_blacklist'
|
||||
|
|
||||
*/
|
||||
$config['rest_ip_blacklist_enabled'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST IP Blacklist
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Prevent connections from the following IP addresses
|
||||
|
|
||||
| e.g: '123.456.789.0, 987.654.32.1'
|
||||
|
|
||||
*/
|
||||
$config['rest_ip_blacklist'] = '';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Database Group
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Connect to a database group for keys, logging, etc. It will only connect
|
||||
| if you have any of these features enabled
|
||||
|
|
||||
*/
|
||||
$config['rest_database_group'] = 'default';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Keys Table Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The table name in your database that stores API keys
|
||||
|
|
||||
*/
|
||||
$config['rest_keys_table'] = 'keys';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Enable Keys
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to TRUE, the REST API will look for a column name called 'key'.
|
||||
| If no key is provided, the request will result in an error. To override the
|
||||
| column name see 'rest_key_column'
|
||||
|
|
||||
| Default table schema:
|
||||
| CREATE TABLE `keys` (
|
||||
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
| `user_id` INT(11) NOT NULL,
|
||||
| `key` VARCHAR(40) NOT NULL,
|
||||
| `level` INT(2) NOT NULL,
|
||||
| `ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
| `is_private_key` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
| `ip_addresses` TEXT NULL DEFAULT NULL,
|
||||
| `date_created` INT(11) NOT NULL,
|
||||
| PRIMARY KEY (`id`)
|
||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
||||
*/
|
||||
$config['rest_enable_keys'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Table Key Column Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If not using the default table schema in 'rest_enable_keys', specify the
|
||||
| column name to match e.g. my_key
|
||||
|
|
||||
*/
|
||||
$config['rest_key_column'] = 'key';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Limits method
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Specify the method used to limit the API calls
|
||||
|
|
||||
| Available methods are :
|
||||
| $config['rest_limits_method'] = 'IP_ADDRESS'; // Put a limit per ip address
|
||||
| $config['rest_limits_method'] = 'API_KEY'; // Put a limit per api key
|
||||
| $config['rest_limits_method'] = 'METHOD_NAME'; // Put a limit on method calls
|
||||
| $config['rest_limits_method'] = 'ROUTED_URL'; // Put a limit on the routed URL
|
||||
|
|
||||
*/
|
||||
$config['rest_limits_method'] = 'ROUTED_URL';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Key Length
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Length of the created keys. Check your default database schema on the
|
||||
| maximum length allowed
|
||||
|
|
||||
| Note: The maximum length is 40
|
||||
|
|
||||
*/
|
||||
$config['rest_key_length'] = 40;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Key Variable
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Custom header to specify the API key
|
||||
|
||||
| Note: Custom headers with the X- prefix are deprecated as of
|
||||
| 2012/06/12. See RFC 6648 specification for more details
|
||||
|
|
||||
*/
|
||||
$config['rest_key_name'] = 'X-API-KEY';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Enable Logging
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to TRUE, the REST API will log actions based on the column names 'key', 'date',
|
||||
| 'time' and 'ip_address'. This is a general rule that can be overridden in the
|
||||
| $this->method array for each controller
|
||||
|
|
||||
| Default table schema:
|
||||
| CREATE TABLE `logs` (
|
||||
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
| `uri` VARCHAR(255) NOT NULL,
|
||||
| `method` VARCHAR(6) NOT NULL,
|
||||
| `params` TEXT DEFAULT NULL,
|
||||
| `api_key` VARCHAR(40) NOT NULL,
|
||||
| `ip_address` VARCHAR(45) NOT NULL,
|
||||
| `time` INT(11) NOT NULL,
|
||||
| `rtime` FLOAT DEFAULT NULL,
|
||||
| `authorized` VARCHAR(1) NOT NULL,
|
||||
| `response_code` smallint(3) DEFAULT '0',
|
||||
| PRIMARY KEY (`id`)
|
||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
||||
*/
|
||||
$config['rest_enable_logging'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Logs Table Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If not using the default table schema in 'rest_enable_logging', specify the
|
||||
| table name to match e.g. my_logs
|
||||
|
|
||||
*/
|
||||
$config['rest_logs_table'] = 'logs';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Method Access Control
|
||||
|--------------------------------------------------------------------------
|
||||
| When set to TRUE, the REST API will check the access table to see if
|
||||
| the API key can access that controller. 'rest_enable_keys' must be enabled
|
||||
| to use this
|
||||
|
|
||||
| Default table schema:
|
||||
| CREATE TABLE `access` (
|
||||
| `id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
| `key` VARCHAR(40) NOT NULL DEFAULT '',
|
||||
| `all_access` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
| `controller` VARCHAR(50) NOT NULL DEFAULT '',
|
||||
| `date_created` DATETIME DEFAULT NULL,
|
||||
| `date_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
| PRIMARY KEY (`id`)
|
||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
||||
*/
|
||||
$config['rest_enable_access'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Access Table Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If not using the default table schema in 'rest_enable_access', specify the
|
||||
| table name to match e.g. my_access
|
||||
|
|
||||
*/
|
||||
$config['rest_access_table'] = 'access';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Param Log Format
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to TRUE, the REST API log parameters will be stored in the database as JSON
|
||||
| Set to FALSE to log as serialized PHP
|
||||
|
|
||||
*/
|
||||
$config['rest_logs_json_params'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Enable Limits
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to TRUE, the REST API will count the number of uses of each method
|
||||
| by an API key each hour. This is a general rule that can be overridden in the
|
||||
| $this->method array in each controller
|
||||
|
|
||||
| Default table schema:
|
||||
| CREATE TABLE `limits` (
|
||||
| `id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
| `uri` VARCHAR(255) NOT NULL,
|
||||
| `count` INT(10) NOT NULL,
|
||||
| `hour_started` INT(11) NOT NULL,
|
||||
| `api_key` VARCHAR(40) NOT NULL,
|
||||
| PRIMARY KEY (`id`)
|
||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
||||
| To specify the limits within the controller's __construct() method, add per-method
|
||||
| limits with:
|
||||
|
|
||||
| $this->methods['METHOD_NAME']['limit'] = [NUM_REQUESTS_PER_HOUR];
|
||||
|
|
||||
| See application/controllers/api/example.php for examples
|
||||
*/
|
||||
$config['rest_enable_limits'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST API Limits Table Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If not using the default table schema in 'rest_enable_limits', specify the
|
||||
| table name to match e.g. my_limits
|
||||
|
|
||||
*/
|
||||
$config['rest_limits_table'] = 'limits';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Ignore HTTP Accept
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to TRUE to ignore the HTTP Accept and speed up each request a little.
|
||||
| Only do this if you are using the $this->rest_format or /format/xml in URLs
|
||||
|
|
||||
*/
|
||||
$config['rest_ignore_http_accept'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST AJAX Only
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to TRUE to allow AJAX requests only. Set to FALSE to accept HTTP requests
|
||||
|
|
||||
| Note: If set to TRUE and the request is not AJAX, a 505 response with the
|
||||
| error message 'Only AJAX requests are accepted.' will be returned.
|
||||
|
|
||||
| Hint: This is good for production environments
|
||||
|
|
||||
*/
|
||||
$config['rest_ajax_only'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| REST Language File
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Language file to load from the language directory
|
||||
|
|
||||
*/
|
||||
$config['rest_language'] = 'english';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Check
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to TRUE to enable Cross-Origin Resource Sharing (CORS). Useful if you
|
||||
| are hosting your API on a different domain from the application that
|
||||
| will access it through a browser
|
||||
|
|
||||
*/
|
||||
$config['check_cors'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Allowable Headers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If using CORS checks, set the allowable headers here
|
||||
|
|
||||
*/
|
||||
$config['allowed_cors_headers'] = [
|
||||
'Origin',
|
||||
'X-Requested-With',
|
||||
'Content-Type',
|
||||
'Accept',
|
||||
'Access-Control-Request-Method',
|
||||
];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Allowable Methods
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If using CORS checks, you can set the methods you want to be allowed
|
||||
|
|
||||
*/
|
||||
$config['allowed_cors_methods'] = [
|
||||
'GET',
|
||||
'POST',
|
||||
'OPTIONS',
|
||||
'PUT',
|
||||
'PATCH',
|
||||
'DELETE',
|
||||
];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Allow Any Domain
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Set to TRUE to enable Cross-Origin Resource Sharing (CORS) from any
|
||||
| source domain
|
||||
|
|
||||
*/
|
||||
$config['allow_any_cors_domain'] = false;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Allowable Domains
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Used if $config['check_cors'] is set to TRUE and $config['allow_any_cors_domain']
|
||||
| is set to FALSE. Set all the allowable domains within the array
|
||||
|
|
||||
| e.g. $config['allowed_origins'] = ['http://www.example.com', 'https://spa.example.com']
|
||||
|
|
||||
*/
|
||||
$config['allowed_cors_origins'] = [];
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| CORS Forced Headers
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| If using CORS checks, always include the headers and values specified here
|
||||
| in the OPTIONS client preflight.
|
||||
| Example:
|
||||
| $config['forced_cors_headers'] = [
|
||||
| 'Access-Control-Allow-Credentials' => 'true'
|
||||
| ];
|
||||
|
|
||||
| Added because of how Sencha Ext JS framework requires the header
|
||||
| Access-Control-Allow-Credentials to be set to true to allow the use of
|
||||
| credentials in the REST Proxy.
|
||||
| See documentation here:
|
||||
| http://docs.sencha.com/extjs/6.5.2/classic/Ext.data.proxy.Rest.html#cfg-withCredentials
|
||||
|
|
||||
*/
|
||||
$config['forced_cors_headers'] = [];
|
||||
54
application/config/routes.php
Executable file
54
application/config/routes.php
Executable file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------------
|
||||
| URI ROUTING
|
||||
| -------------------------------------------------------------------------
|
||||
| This file lets you re-map URI requests to specific controller functions.
|
||||
|
|
||||
| Typically there is a one-to-one relationship between a URL string
|
||||
| and its corresponding controller class/method. The segments in a
|
||||
| URL normally follow this pattern:
|
||||
|
|
||||
| example.com/class/method/id/
|
||||
|
|
||||
| In some instances, however, you may want to remap this relationship
|
||||
| so that a different class/function is called than the one
|
||||
| corresponding to the URL.
|
||||
|
|
||||
| Please see the user guide for complete details:
|
||||
|
|
||||
| https://codeigniter.com/user_guide/general/routing.html
|
||||
|
|
||||
| -------------------------------------------------------------------------
|
||||
| RESERVED ROUTES
|
||||
| -------------------------------------------------------------------------
|
||||
|
|
||||
| There are three reserved routes:
|
||||
|
|
||||
| $route['default_controller'] = 'welcome';
|
||||
|
|
||||
| This route indicates which controller class should be loaded if the
|
||||
| URI contains no data. In the above example, the "welcome" class
|
||||
| would be loaded.
|
||||
|
|
||||
| $route['404_override'] = 'errors/page_missing';
|
||||
|
|
||||
| This route will tell the Router which controller/method to use if those
|
||||
| provided in the URL cannot be matched to a valid route.
|
||||
|
|
||||
| $route['translate_uri_dashes'] = FALSE;
|
||||
|
|
||||
| This is not exactly a route, but allows you to automatically route
|
||||
| controller and method names that contain dashes. '-' isn't a valid
|
||||
| class or method name character, so it requires translation.
|
||||
| When you set this option to TRUE, it will replace ALL dashes in the
|
||||
| controller and method URI segments.
|
||||
|
|
||||
| Examples: my-controller/index -> my_controller/index
|
||||
| my-controller/my-method -> my_controller/my_method
|
||||
*/
|
||||
$route['default_controller'] = 'login';
|
||||
$route['404_override'] = '';
|
||||
$route['translate_uri_dashes'] = FALSE;
|
||||
64
application/config/smileys.php
Executable file
64
application/config/smileys.php
Executable file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| SMILEYS
|
||||
| -------------------------------------------------------------------
|
||||
| This file contains an array of smileys for use with the emoticon helper.
|
||||
| Individual images can be used to replace multiple smileys. For example:
|
||||
| :-) and :) use the same image replacement.
|
||||
|
|
||||
| Please see user guide for more info:
|
||||
| https://codeigniter.com/user_guide/helpers/smiley_helper.html
|
||||
|
|
||||
*/
|
||||
$smileys = array(
|
||||
|
||||
// smiley image name width height alt
|
||||
|
||||
':-)' => array('grin.gif', '19', '19', 'grin'),
|
||||
':lol:' => array('lol.gif', '19', '19', 'LOL'),
|
||||
':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
|
||||
':)' => array('smile.gif', '19', '19', 'smile'),
|
||||
';-)' => array('wink.gif', '19', '19', 'wink'),
|
||||
';)' => array('wink.gif', '19', '19', 'wink'),
|
||||
':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
|
||||
':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
|
||||
':-S' => array('confused.gif', '19', '19', 'confused'),
|
||||
':wow:' => array('surprise.gif', '19', '19', 'surprised'),
|
||||
':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
|
||||
':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
|
||||
'%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
|
||||
';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
|
||||
':P' => array('raspberry.gif', '19', '19', 'raspberry'),
|
||||
':blank:' => array('blank.gif', '19', '19', 'blank stare'),
|
||||
':long:' => array('longface.gif', '19', '19', 'long face'),
|
||||
':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
|
||||
':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
|
||||
':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
|
||||
'8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
|
||||
':down:' => array('downer.gif', '19', '19', 'downer'),
|
||||
':red:' => array('embarrassed.gif', '19', '19', 'red face'),
|
||||
':sick:' => array('sick.gif', '19', '19', 'sick'),
|
||||
':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
|
||||
':-/' => array('hmm.gif', '19', '19', 'hmmm'),
|
||||
'>:(' => array('mad.gif', '19', '19', 'mad'),
|
||||
':mad:' => array('mad.gif', '19', '19', 'mad'),
|
||||
'>:-(' => array('angry.gif', '19', '19', 'angry'),
|
||||
':angry:' => array('angry.gif', '19', '19', 'angry'),
|
||||
':zip:' => array('zip.gif', '19', '19', 'zipper'),
|
||||
':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
|
||||
':ahhh:' => array('shock.gif', '19', '19', 'shock'),
|
||||
':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
|
||||
':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
|
||||
':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
|
||||
':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
|
||||
':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
|
||||
':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
|
||||
':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
|
||||
':snake:' => array('snake.gif', '19', '19', 'snake'),
|
||||
':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'),
|
||||
':question:' => array('question.gif', '19', '19', 'question')
|
||||
|
||||
);
|
||||
216
application/config/user_agents.php
Executable file
216
application/config/user_agents.php
Executable file
@ -0,0 +1,216 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
| USER AGENT TYPES
|
||||
| -------------------------------------------------------------------
|
||||
| This file contains four arrays of user agent data. It is used by the
|
||||
| User Agent Class to help identify browser, platform, robot, and
|
||||
| mobile device data. The array keys are used to identify the device
|
||||
| and the array values are used to set the actual name of the item.
|
||||
*/
|
||||
$platforms = array(
|
||||
'windows nt 10.0' => 'Windows 10',
|
||||
'windows nt 6.3' => 'Windows 8.1',
|
||||
'windows nt 6.2' => 'Windows 8',
|
||||
'windows nt 6.1' => 'Windows 7',
|
||||
'windows nt 6.0' => 'Windows Vista',
|
||||
'windows nt 5.2' => 'Windows 2003',
|
||||
'windows nt 5.1' => 'Windows XP',
|
||||
'windows nt 5.0' => 'Windows 2000',
|
||||
'windows nt 4.0' => 'Windows NT 4.0',
|
||||
'winnt4.0' => 'Windows NT 4.0',
|
||||
'winnt 4.0' => 'Windows NT',
|
||||
'winnt' => 'Windows NT',
|
||||
'windows 98' => 'Windows 98',
|
||||
'win98' => 'Windows 98',
|
||||
'windows 95' => 'Windows 95',
|
||||
'win95' => 'Windows 95',
|
||||
'windows phone' => 'Windows Phone',
|
||||
'windows' => 'Unknown Windows OS',
|
||||
'android' => 'Android',
|
||||
'blackberry' => 'BlackBerry',
|
||||
'iphone' => 'iOS',
|
||||
'ipad' => 'iOS',
|
||||
'ipod' => 'iOS',
|
||||
'os x' => 'Mac OS X',
|
||||
'ppc mac' => 'Power PC Mac',
|
||||
'freebsd' => 'FreeBSD',
|
||||
'ppc' => 'Macintosh',
|
||||
'linux' => 'Linux',
|
||||
'debian' => 'Debian',
|
||||
'sunos' => 'Sun Solaris',
|
||||
'beos' => 'BeOS',
|
||||
'apachebench' => 'ApacheBench',
|
||||
'aix' => 'AIX',
|
||||
'irix' => 'Irix',
|
||||
'osf' => 'DEC OSF',
|
||||
'hp-ux' => 'HP-UX',
|
||||
'netbsd' => 'NetBSD',
|
||||
'bsdi' => 'BSDi',
|
||||
'openbsd' => 'OpenBSD',
|
||||
'gnu' => 'GNU/Linux',
|
||||
'unix' => 'Unknown Unix OS',
|
||||
'symbian' => 'Symbian OS'
|
||||
);
|
||||
|
||||
|
||||
// The order of this array should NOT be changed. Many browsers return
|
||||
// multiple browser types so we want to identify the sub-type first.
|
||||
$browsers = array(
|
||||
'OPR' => 'Opera',
|
||||
'Flock' => 'Flock',
|
||||
'Edge' => 'Edge',
|
||||
'Chrome' => 'Chrome',
|
||||
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
|
||||
'Opera.*?Version' => 'Opera',
|
||||
'Opera' => 'Opera',
|
||||
'MSIE' => 'Internet Explorer',
|
||||
'Internet Explorer' => 'Internet Explorer',
|
||||
'Trident.* rv' => 'Internet Explorer',
|
||||
'Shiira' => 'Shiira',
|
||||
'Firefox' => 'Firefox',
|
||||
'Chimera' => 'Chimera',
|
||||
'Phoenix' => 'Phoenix',
|
||||
'Firebird' => 'Firebird',
|
||||
'Camino' => 'Camino',
|
||||
'Netscape' => 'Netscape',
|
||||
'OmniWeb' => 'OmniWeb',
|
||||
'Safari' => 'Safari',
|
||||
'Mozilla' => 'Mozilla',
|
||||
'Konqueror' => 'Konqueror',
|
||||
'icab' => 'iCab',
|
||||
'Lynx' => 'Lynx',
|
||||
'Links' => 'Links',
|
||||
'hotjava' => 'HotJava',
|
||||
'amaya' => 'Amaya',
|
||||
'IBrowse' => 'IBrowse',
|
||||
'Maxthon' => 'Maxthon',
|
||||
'Ubuntu' => 'Ubuntu Web Browser'
|
||||
);
|
||||
|
||||
$mobiles = array(
|
||||
// legacy array, old values commented out
|
||||
'mobileexplorer' => 'Mobile Explorer',
|
||||
// 'openwave' => 'Open Wave',
|
||||
// 'opera mini' => 'Opera Mini',
|
||||
// 'operamini' => 'Opera Mini',
|
||||
// 'elaine' => 'Palm',
|
||||
'palmsource' => 'Palm',
|
||||
// 'digital paths' => 'Palm',
|
||||
// 'avantgo' => 'Avantgo',
|
||||
// 'xiino' => 'Xiino',
|
||||
'palmscape' => 'Palmscape',
|
||||
// 'nokia' => 'Nokia',
|
||||
// 'ericsson' => 'Ericsson',
|
||||
// 'blackberry' => 'BlackBerry',
|
||||
// 'motorola' => 'Motorola'
|
||||
|
||||
// Phones and Manufacturers
|
||||
'motorola' => 'Motorola',
|
||||
'nokia' => 'Nokia',
|
||||
'nexus' => 'Nexus',
|
||||
'palm' => 'Palm',
|
||||
'iphone' => 'Apple iPhone',
|
||||
'ipad' => 'iPad',
|
||||
'ipod' => 'Apple iPod Touch',
|
||||
'sony' => 'Sony Ericsson',
|
||||
'ericsson' => 'Sony Ericsson',
|
||||
'blackberry' => 'BlackBerry',
|
||||
'cocoon' => 'O2 Cocoon',
|
||||
'blazer' => 'Treo',
|
||||
'lg' => 'LG',
|
||||
'amoi' => 'Amoi',
|
||||
'xda' => 'XDA',
|
||||
'mda' => 'MDA',
|
||||
'vario' => 'Vario',
|
||||
'htc' => 'HTC',
|
||||
'samsung' => 'Samsung',
|
||||
'sharp' => 'Sharp',
|
||||
'sie-' => 'Siemens',
|
||||
'alcatel' => 'Alcatel',
|
||||
'benq' => 'BenQ',
|
||||
'ipaq' => 'HP iPaq',
|
||||
'mot-' => 'Motorola',
|
||||
'playstation portable' => 'PlayStation Portable',
|
||||
'playstation 3' => 'PlayStation 3',
|
||||
'playstation vita' => 'PlayStation Vita',
|
||||
'hiptop' => 'Danger Hiptop',
|
||||
'nec-' => 'NEC',
|
||||
'panasonic' => 'Panasonic',
|
||||
'philips' => 'Philips',
|
||||
'sagem' => 'Sagem',
|
||||
'sanyo' => 'Sanyo',
|
||||
'spv' => 'SPV',
|
||||
'zte' => 'ZTE',
|
||||
'sendo' => 'Sendo',
|
||||
'nintendo dsi' => 'Nintendo DSi',
|
||||
'nintendo ds' => 'Nintendo DS',
|
||||
'nintendo 3ds' => 'Nintendo 3DS',
|
||||
'wii' => 'Nintendo Wii',
|
||||
'open web' => 'Open Web',
|
||||
'openweb' => 'OpenWeb',
|
||||
'meizu' => 'Meizu',
|
||||
|
||||
// Operating Systems
|
||||
'android' => 'Android',
|
||||
'symbian' => 'Symbian',
|
||||
'SymbianOS' => 'SymbianOS',
|
||||
'elaine' => 'Palm',
|
||||
'series60' => 'Symbian S60',
|
||||
'windows ce' => 'Windows CE',
|
||||
|
||||
// Browsers
|
||||
'obigo' => 'Obigo',
|
||||
'netfront' => 'Netfront Browser',
|
||||
'openwave' => 'Openwave Browser',
|
||||
'mobilexplorer' => 'Mobile Explorer',
|
||||
'operamini' => 'Opera Mini',
|
||||
'opera mini' => 'Opera Mini',
|
||||
'opera mobi' => 'Opera Mobile',
|
||||
'fennec' => 'Firefox Mobile',
|
||||
|
||||
// Other
|
||||
'digital paths' => 'Digital Paths',
|
||||
'avantgo' => 'AvantGo',
|
||||
'xiino' => 'Xiino',
|
||||
'novarra' => 'Novarra Transcoder',
|
||||
'vodafone' => 'Vodafone',
|
||||
'docomo' => 'NTT DoCoMo',
|
||||
'o2' => 'O2',
|
||||
|
||||
// Fallback
|
||||
'mobile' => 'Generic Mobile',
|
||||
'wireless' => 'Generic Mobile',
|
||||
'j2me' => 'Generic Mobile',
|
||||
'midp' => 'Generic Mobile',
|
||||
'cldc' => 'Generic Mobile',
|
||||
'up.link' => 'Generic Mobile',
|
||||
'up.browser' => 'Generic Mobile',
|
||||
'smartphone' => 'Generic Mobile',
|
||||
'cellphone' => 'Generic Mobile'
|
||||
);
|
||||
|
||||
// There are hundreds of bots but these are the most common.
|
||||
$robots = array(
|
||||
'googlebot' => 'Googlebot',
|
||||
'msnbot' => 'MSNBot',
|
||||
'baiduspider' => 'Baiduspider',
|
||||
'bingbot' => 'Bing',
|
||||
'slurp' => 'Inktomi Slurp',
|
||||
'yahoo' => 'Yahoo',
|
||||
'ask jeeves' => 'Ask Jeeves',
|
||||
'fastcrawler' => 'FastCrawler',
|
||||
'infoseek' => 'InfoSeek Robot 1.0',
|
||||
'lycos' => 'Lycos',
|
||||
'yandex' => 'YandexBot',
|
||||
'mediapartners-google' => 'MediaPartners Google',
|
||||
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
|
||||
'adsbot-google' => 'AdsBot Google',
|
||||
'feedfetcher-google' => 'Feedfetcher Google',
|
||||
'curious george' => 'Curious George',
|
||||
'ia_archiver' => 'Alexa Crawler',
|
||||
'MJ12bot' => 'Majestic-12',
|
||||
'Uptimebot' => 'Uptimebot'
|
||||
);
|
||||
208
application/controllers/Api.php
Executable file
208
application/controllers/Api.php
Executable file
@ -0,0 +1,208 @@
|
||||
<?php
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Access-Control-Allow-Methods: GET, POST, DELETE, PUT');
|
||||
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization');
|
||||
header('Access-Control-Allow-Credentials: true');
|
||||
header('Content-Type: application/json');
|
||||
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
use chriskacerguis\RestServer\RestController;
|
||||
|
||||
class Api extends RestController
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('model');;
|
||||
// $this->db->query("SET sql_mode = '' ");
|
||||
date_default_timezone_set("Asia/Kuala_Lumpur");
|
||||
}
|
||||
|
||||
public function index_get()
|
||||
{
|
||||
$this->response(['message' => 'Halo Bosku', 'status' => true], 200);
|
||||
// redirect(base_url());
|
||||
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------
|
||||
|
||||
public function login_get()
|
||||
{
|
||||
$username = $this->get('username');
|
||||
$password = $this->get('password');
|
||||
|
||||
if ($username != "admin" && $password != "admin") return
|
||||
$this->response(['message' => 'Username atau Password Salah', 'status' => false], 400);
|
||||
|
||||
// set session
|
||||
$this->session->set_userdata('level', 'admin');
|
||||
$this->response(['message' => 'Login Berhasil', 'status' => true], 200);
|
||||
}
|
||||
|
||||
public function login_tukang_parkir_get()
|
||||
{
|
||||
$username = $this->get('username');
|
||||
$password = $this->get('password');
|
||||
|
||||
$cek_login = $this->model->tampil_data_where('tb_tukang_parkir', array('nik' => $username, 'password' => $password))->result();
|
||||
|
||||
if (count($cek_login) == 0) return
|
||||
$this->response(['message' => 'Username atau Password Salah', 'status' => false], 400);
|
||||
|
||||
$cek_data = $this->model->tampil_data_where('tb_area_parkir', array('nik' => $cek_login[0]->nik))->result();
|
||||
|
||||
$this->session->set_userdata('nik', $cek_login[0]->nik);
|
||||
$this->session->set_userdata('nama', $cek_login[0]->nama);
|
||||
$this->session->set_userdata('id_parkir', $cek_data[0]->id_parkir);
|
||||
|
||||
// set session
|
||||
$this->session->set_userdata('level', 'tukang_parkir');
|
||||
$this->response(['message' => 'Login Berhasil', 'status' => true], 200);
|
||||
}
|
||||
|
||||
public function kabupaten_maps_get()
|
||||
{
|
||||
$check_data = $this->model->tampil_data_where('tb_kabupaten', array('no' => '1'))->result();
|
||||
|
||||
$data = $check_data[0]->kordinat;
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => json_decode($data,true)], 200);
|
||||
}
|
||||
|
||||
public function all_kecamatan_get(){
|
||||
$check_data = $this->model->tampil_data_keseluruhan('tb_kecamatan')->result();
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $check_data], 200);
|
||||
}
|
||||
|
||||
public function all_kelurahan_get(){
|
||||
$id_kecamatan = $this->get('id_kecamatan');
|
||||
$check_data = $this->model->tampil_data_where('tb_kelurahan' , ['kecamatan' => $id_kecamatan])->result();
|
||||
$check_maps = $this->model->tampil_data_where('tb_kecamatan' , ['no' => $id_kecamatan])->result();
|
||||
|
||||
if(count($check_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
$maps = $check_maps[0]->kordinat;
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $check_data , 'maps' => json_decode($maps,true)], 200);
|
||||
}
|
||||
|
||||
public function kelurahan_maps_get(){
|
||||
$id_kelurahan = $this->get('id_kelurahan');
|
||||
$check_data = $this->model->tampil_data_where('tb_kelurahan' , ['no' => $id_kelurahan])->result();
|
||||
|
||||
if(count($check_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
$maps = $check_data[0]->kordinat;
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => json_decode($maps,true)], 200);
|
||||
}
|
||||
|
||||
public function tambah_parkir_post(){
|
||||
$id_kecamatan = $this->post('kecamatan_id');
|
||||
$id_kelurahan = $this->post('kelurahan_id');
|
||||
$kordinat = $this->post('kordinat');
|
||||
$center = $this->post('center');
|
||||
$alamat = $this->post('alamat');
|
||||
$luas = $this->post('luas');
|
||||
$nik = $this->post('nik');
|
||||
$nama = $this->post('nama');
|
||||
$biaya_motor = $this->post('biaya_motor');
|
||||
$biaya_mobil = $this->post('biaya_mobil');
|
||||
|
||||
if($id_kecamatan == null || $id_kelurahan == null || $kordinat == null || $center == null || $alamat == null || $luas == null) return $this->response(['message' => 'Data Tidak Boleh Kosong', 'status' => false], 400);
|
||||
|
||||
|
||||
$array = [
|
||||
// 'kecamatan' => $id_kecamatan,
|
||||
'id_kelurahan' => $id_kelurahan,
|
||||
'kordinat' => $kordinat,
|
||||
'center' => $center,
|
||||
'alamat' => $alamat,
|
||||
'luas' => $luas,
|
||||
];
|
||||
|
||||
$this->model->insert('tb_tukang_parkir', array('nik' => $nik, 'nama' => $nama, 'password' => 12345678));
|
||||
$this->model->insert('tb_area_parkir', $array);
|
||||
|
||||
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $array], 200);
|
||||
|
||||
}
|
||||
|
||||
public function area_parkir_get(){
|
||||
$check_data = $this->model->tampil_data_keseluruhan('tb_area_parkir')->result();
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $check_data], 200);
|
||||
}
|
||||
|
||||
|
||||
public function area_parkir_delete(){
|
||||
$id = $this->delete('id');
|
||||
|
||||
if($id == null) return $this->response(['message' => 'Data Tidak Boleh Kosong', 'status' => false], 400);
|
||||
|
||||
$this->model->delete('tb_area_parkir', ['id_parkir' => $id]);
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true,"id" => $id], 200);
|
||||
}
|
||||
|
||||
public function data_tukang_parkir_get(){
|
||||
$check_data = $this->model->custom_query("SELECT * FROM tb_tukang_parkir a join tb_area_parkir b on a.nik = b.nik where a.nik = '".$this->session->userdata('nik')."'")->result();
|
||||
if (count($check_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
$check_kelurahan = $this->model->tampil_data_where('tb_kelurahan', ['no' => $check_data[0]->id_kelurahan])->result();
|
||||
$check_kecamatan = $this->model->tampil_data_where('tb_kecamatan', ['no' => $check_kelurahan[0]->kecamatan])->result();
|
||||
|
||||
$kecamatan = $check_kecamatan[0]->kecamatan;
|
||||
$kelurahan = $check_kelurahan[0]->kelurahan;
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $check_data[0], 'kecamatan' => $kecamatan, 'kelurahan' => $kelurahan], 200);
|
||||
|
||||
// $this->response(['message' => 'Berhasil', 'status' => true, 'data' => "ini dia"], 200);
|
||||
}
|
||||
|
||||
public function ganti_password_post(){
|
||||
$password_lama = $this->post('password_lama');
|
||||
$password_baru = $this->post('password_baru');
|
||||
|
||||
$cek_data = $this->model->tampil_data_where('tb_tukang_parkir', ['nik' => $this->session->userdata('nik')])->result();
|
||||
|
||||
if(count($cek_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
if($cek_data[0]->password != $password_lama) return $this->response(['message' => 'Password Lama Salah', 'status' => false], 200);
|
||||
|
||||
$this->model->update('tb_tukang_parkir', ['nik' => $this->session->userdata('nik')], ['password' => $password_baru]);
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true], 200);
|
||||
}
|
||||
|
||||
public function kritik_post(){
|
||||
$id_parkir = $this->post('id_parkir');
|
||||
$nama = $this->post('nama');
|
||||
$kritik = $this->post('kritik');
|
||||
|
||||
$cek_data = $this->model->tampil_data_where('tb_area_parkir', ['id_parkir' => $id_parkir])->result();
|
||||
|
||||
if(count($cek_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
$this->model->insert('tb_kritik', ['id_parkir' => $id_parkir, 'kritik' => $kritik, 'nama' => $nama]);
|
||||
|
||||
$this->response(['message' => 'Kritik Berhasil Dikirim', 'status' => true], 200);
|
||||
}
|
||||
|
||||
|
||||
public function kritik_get(){
|
||||
$id_kritik = $this->get('id_kritik');
|
||||
|
||||
$cek_data = $this->model->tampil_data_where('tb_kritik', ['id_kritik' => $id_kritik])->result();
|
||||
|
||||
if(count($cek_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'status' => false], 400);
|
||||
|
||||
$this->response(['message' => 'Berhasil', 'status' => true, 'data' => $cek_data[0]], 200);
|
||||
}
|
||||
|
||||
}
|
||||
230
application/controllers/Home.php
Executable file
230
application/controllers/Home.php
Executable file
@ -0,0 +1,230 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Home extends CI_Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('model');
|
||||
$this->load->model('m_tabel_ss');
|
||||
|
||||
if ($this->session->userdata('level') != "admin") {
|
||||
// remove session
|
||||
$this->session->unset_userdata('level');
|
||||
redirect(base_url("login"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function index()
|
||||
{
|
||||
$main['header'] = "Halaman Utama";
|
||||
// $main['content'] = "admin/content/index";
|
||||
$this->load->view('admin/index', $main);
|
||||
}
|
||||
|
||||
function parkir()
|
||||
{
|
||||
if ($this->input->post('proses') == "table_area_parkir") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*");
|
||||
$data = array();
|
||||
$no = $_POST['start'];
|
||||
foreach ($list as $field) {
|
||||
|
||||
|
||||
|
||||
$kecamatan = '';
|
||||
$kelurahan = '';
|
||||
$cek_kelurahan = $this->model->tampil_data_where('tb_kelurahan', array('no' => $field->id_kelurahan))->result();
|
||||
$kelurahan = $cek_kelurahan[0]->kelurahan;
|
||||
$cek_kecamatan = $this->model->tampil_data_where('tb_kecamatan', array('no' => $cek_kelurahan[0]->kecamatan))->result();
|
||||
$kecamatan = $cek_kecamatan[0]->kecamatan;
|
||||
|
||||
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $no;
|
||||
$row[] = $field->alamat;
|
||||
$row[] = $kecamatan;
|
||||
$row[] = $kelurahan;
|
||||
$row[] = $field->luas . " m<sup>2</sup>";
|
||||
$row[] = "Rp." . number_format($field->biaya_motor, 0, ',', '.');
|
||||
$row[] = "Rp." . number_format($field->biaya_mobil, 0, ',', '.');
|
||||
$row[] = "<center><button type='button' onclick='hapus_area_parkir(".$field->id_parkir.")' title='Hapus Area Parkir' class='btn btn-danger btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-delete'></i></button></center>";
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_area_parkir", null, null, "*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
} else {
|
||||
$main['header'] = "Pengaturan Parkir";
|
||||
// $main['content'] = "admin/content/pengaturan_parkir";
|
||||
$this->load->view('admin/content/parkir', $main);
|
||||
}
|
||||
}
|
||||
|
||||
function tukang_parkir()
|
||||
{
|
||||
if ($this->input->post('proses') == "table_tukang_parkir") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('nik','nama'), array(null, 'nik','nama', null, null), array('nik' => 'desc'), "tb_tukang_parkir", null,null, "*");
|
||||
$data = array();
|
||||
$no = $_POST['start'];
|
||||
foreach ($list as $field) {
|
||||
|
||||
$cek_data = $this->model->tampil_data_where('tb_area_parkir', array('nik' => $field->nik))->result();
|
||||
|
||||
$kecamatan = '';
|
||||
$kelurahan = '';
|
||||
$cek_kelurahan = $this->model->tampil_data_where('tb_kelurahan', array('no' => $cek_data[0]->id_kelurahan))->result();
|
||||
$kelurahan = $cek_kelurahan[0]->kelurahan;
|
||||
$cek_kecamatan = $this->model->tampil_data_where('tb_kecamatan', array('no' => $cek_kelurahan[0]->kecamatan))->result();
|
||||
$kecamatan = $cek_kecamatan[0]->kecamatan;
|
||||
|
||||
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $no;
|
||||
$row[] = $field->nik;
|
||||
$row[] = $field->nama;
|
||||
$row[] = $kecamatan;
|
||||
$row[] = $kelurahan;
|
||||
$row[] = $cek_data[0]->alamat;
|
||||
// $row[] = $field->luas . " m<sup>2</sup>";
|
||||
// $row[] = "Rp." . number_format($field->biaya_motor, 0, ',', '.');
|
||||
// $row[] = "Rp." . number_format($field->biaya_mobil, 0, ',', '.');
|
||||
// $row[] = "<center><button type='button' onclick='hapus_area_parkir(".$field->id_parkir.")' title='Hapus Area Parkir' class='btn btn-danger btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-delete'></i></button></center>";
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_area_parkir", null, null, "*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('nik','nama'), array(null, 'nik','nama', null, null), array('nik' => 'desc'), "tb_tukang_parkir", null,null, "*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
} else {
|
||||
$main['header'] = "List Tukang Parkir";
|
||||
// $main['content'] = "admin/content/pengaturan_parkir";
|
||||
$this->load->view('admin/content/tukang_parkir', $main);
|
||||
}
|
||||
}
|
||||
|
||||
function parkir_index()
|
||||
{
|
||||
if ($this->input->post('proses') == "table_area_parkir") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*");
|
||||
$data = array();
|
||||
$no = $_POST['start'];
|
||||
foreach ($list as $field) {
|
||||
|
||||
|
||||
|
||||
$kecamatan = '';
|
||||
$kelurahan = '';
|
||||
$cek_kelurahan = $this->model->tampil_data_where('tb_kelurahan', array('no' => $field->id_kelurahan))->result();
|
||||
$kelurahan = $cek_kelurahan[0]->kelurahan;
|
||||
$cek_kecamatan = $this->model->tampil_data_where('tb_kecamatan', array('no' => $cek_kelurahan[0]->kecamatan))->result();
|
||||
$kecamatan = $cek_kecamatan[0]->kecamatan;
|
||||
|
||||
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $no;
|
||||
$row[] = $field->alamat;
|
||||
$row[] = $kecamatan;
|
||||
$row[] = $kelurahan;
|
||||
$row[] = $field->luas . " m<sup>2</sup>";
|
||||
$row[] = "Rp." . number_format($field->biaya_motor, 0, ',', '.');
|
||||
$row[] = "Rp." . number_format($field->biaya_mobil, 0, ',', '.');
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_area_parkir", null, null, "*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
} else {
|
||||
$main['header'] = "Pengaturan Parkir";
|
||||
// $main['content'] = "admin/content/pengaturan_parkir";
|
||||
$this->load->view('admin/content/parkir', $main);
|
||||
}
|
||||
}
|
||||
|
||||
function logout(){
|
||||
$this->session->sess_destroy();
|
||||
redirect(base_url("login"));
|
||||
}
|
||||
|
||||
function coba()
|
||||
{
|
||||
$check_data = $this->model->tampil_data_where('tb_kelurahan', array('no' => '21'))->result();
|
||||
|
||||
$data = $check_data[0]->kordinat;
|
||||
|
||||
$data = json_decode($data, true);
|
||||
|
||||
print_r($data[0]['kordinat']);
|
||||
}
|
||||
|
||||
|
||||
function coba1()
|
||||
{
|
||||
$string = '';
|
||||
// replace lng and lat to "lng" and "lat" and remove space and last comma
|
||||
$string = str_replace('lng:', '"lng":', $string);
|
||||
$string = str_replace('lat:', '"lat":', $string);
|
||||
$string = str_replace(' ', '', $string);
|
||||
$string = substr($string, 0, -1);
|
||||
// add square bracket
|
||||
$string = '[' . $string . ']';
|
||||
print_r($string);
|
||||
}
|
||||
|
||||
function coba2()
|
||||
{
|
||||
$array = '';
|
||||
|
||||
$array = json_decode($array, true);
|
||||
print_r($array);
|
||||
// print_r(json_encode($array));
|
||||
}
|
||||
|
||||
|
||||
function coba_input()
|
||||
{
|
||||
$check_data = $this->model->tampil_data_keseluruhan('tb_area_parkir')->result();
|
||||
|
||||
foreach ($check_data as $key => $value) {
|
||||
$data = $value->kordinat;
|
||||
|
||||
$ktp =737202300;
|
||||
$random8 = rand(10000000, 99999999);
|
||||
$nik = $ktp . $random8;
|
||||
|
||||
// create random indonesia name
|
||||
|
||||
$this->model->insert('tb_tukang_parkir', array(
|
||||
'nik' => $nik,
|
||||
'password' => 12345678,
|
||||
));
|
||||
$this->model->update('tb_area_parkir', array('id_parkir' => $value->id_parkir),array('nik' => $nik));
|
||||
}
|
||||
}
|
||||
}
|
||||
19
application/controllers/Login.php
Executable file
19
application/controllers/Login.php
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Login extends CI_Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('model');
|
||||
$this->load->model('m_tabel_ss');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('login/index');
|
||||
}
|
||||
}
|
||||
?>
|
||||
98
application/controllers/Tukang_parkir.php
Normal file
98
application/controllers/Tukang_parkir.php
Normal file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class Tukang_parkir extends CI_Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('model');
|
||||
$this->load->model('m_tabel_ss');
|
||||
|
||||
// if ($this->session->userdata('level') != "tukang_parkir") {
|
||||
// // remove session
|
||||
// $this->session->unset_userdata('level');
|
||||
// redirect(base_url("tukang_parkir/login"));
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
function index()
|
||||
{
|
||||
if ($this->session->userdata('level') != "tukang_parkir") {
|
||||
// remove session
|
||||
$this->session->unset_userdata(array('level', 'nik', 'nama'));
|
||||
redirect(base_url("tukang_parkir/login"));
|
||||
}
|
||||
$main['header'] = "Area Parkir Parepare";
|
||||
// $main['content'] = "admin/content/index";
|
||||
$this->load->view('tukang_parkir/index', $main);
|
||||
}
|
||||
|
||||
function kritik()
|
||||
{
|
||||
if ($this->session->userdata('level') != "tukang_parkir") {
|
||||
// remove session
|
||||
$this->session->unset_userdata(array('level', 'nik', 'nama'));
|
||||
redirect(base_url("tukang_parkir/login"));
|
||||
}
|
||||
|
||||
if ($this->input->post('proses') == "table_area_parkir") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('created_at','nama'), array('created_at','nama',null), array('id_kritik' => 'desc'), "tb_kritik", null,['id_parkir' =>$this->session->userdata('id_parkir')], "*");
|
||||
$data = array();
|
||||
$no = $_POST['start'];
|
||||
foreach ($list as $field) {
|
||||
|
||||
|
||||
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $field->created_at;
|
||||
$row[] = $field->nama;
|
||||
$row[] = "<center><button type='button' onclick='lihat_kritik(".$field->id_kritik.")' title='Hapus Area Parkir' class='btn btn-info btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-info'></i></button></center>";
|
||||
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_kritik", null, null, "*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('created_at','nama'), array('created_at','nama',null), array('id_kritik' => 'desc'), "tb_area_parkir", null,['id_parkir' =>$this->session->userdata('id_parkir')], "*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
} else {
|
||||
$main['header'] = "Kritik Dan Komen";
|
||||
// $main['content'] = "admin/content/index";
|
||||
$this->load->view('tukang_parkir/content/kritik', $main);
|
||||
}
|
||||
}
|
||||
|
||||
function password()
|
||||
{
|
||||
if ($this->session->userdata('level') != "tukang_parkir") {
|
||||
// remove session
|
||||
$this->session->unset_userdata(array('level', 'nik', 'nama'));
|
||||
redirect(base_url("tukang_parkir/login"));
|
||||
}
|
||||
|
||||
$main['header'] = "Ganti Password";
|
||||
// $main['content'] = "admin/content/index";
|
||||
$this->load->view('tukang_parkir/content/password', $main);
|
||||
}
|
||||
|
||||
function login()
|
||||
{
|
||||
$this->load->view('tukang_parkir/login');
|
||||
}
|
||||
|
||||
function logout()
|
||||
{
|
||||
// remove session
|
||||
$this->session->unset_userdata(array('level', 'nik', 'nama'));
|
||||
redirect(base_url("tukang_parkir/login"));
|
||||
}
|
||||
}
|
||||
70
application/controllers/User.php
Executable file
70
application/controllers/User.php
Executable file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
defined('BASEPATH') or exit('No direct script access allowed');
|
||||
|
||||
class User extends CI_Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('model');
|
||||
$this->load->model('m_tabel_ss');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function index()
|
||||
{
|
||||
$main['header'] = "Area Parkir Parepare";
|
||||
// $main['content'] = "admin/content/index";
|
||||
$this->load->view('user/index', $main);
|
||||
}
|
||||
|
||||
function parkir_index()
|
||||
{
|
||||
if ($this->input->post('proses') == "table_area_parkir") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*");
|
||||
$data = array();
|
||||
$no = $_POST['start'];
|
||||
foreach ($list as $field) {
|
||||
|
||||
|
||||
|
||||
$kecamatan = '';
|
||||
$kelurahan = '';
|
||||
$cek_kelurahan = $this->model->tampil_data_where('tb_kelurahan', array('no' => $field->id_kelurahan))->result();
|
||||
$kelurahan = $cek_kelurahan[0]->kelurahan;
|
||||
$cek_kecamatan = $this->model->tampil_data_where('tb_kecamatan', array('no' => $cek_kelurahan[0]->kecamatan))->result();
|
||||
$kecamatan = $cek_kecamatan[0]->kecamatan;
|
||||
|
||||
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $no;
|
||||
$row[] = $field->alamat;
|
||||
$row[] = $kecamatan;
|
||||
$row[] = $kelurahan;
|
||||
$row[] = $field->luas . " m<sup>2</sup>";
|
||||
$row[] = "Rp." . number_format($field->biaya_motor, 0, ',', '.');
|
||||
$row[] = "Rp." . number_format($field->biaya_mobil, 0, ',', '.');
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_area_parkir", null, null, "*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('luas','alamat'), array(null, 'alamat',null, null, 'luas', null), array('id_parkir' => 'desc'), "tb_area_parkir", null,null, "*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
} else {
|
||||
$main['header'] = "Pengaturan Parkir";
|
||||
// $main['content'] = "admin/content/pengaturan_parkir";
|
||||
$this->load->view('admin/content/parkir', $main);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
25
application/controllers/Welcome.php
Executable file
25
application/controllers/Welcome.php
Executable file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Welcome extends CI_Controller {
|
||||
|
||||
/**
|
||||
* Index Page for this controller.
|
||||
*
|
||||
* Maps to the following URL
|
||||
* http://example.com/index.php/welcome
|
||||
* - or -
|
||||
* http://example.com/index.php/welcome/index
|
||||
* - or -
|
||||
* Since this controller is set as the default controller in
|
||||
* config/routes.php, it's displayed at http://example.com/
|
||||
*
|
||||
* So any other public methods not prefixed with an underscore will
|
||||
* map to /index.php/welcome/<method_name>
|
||||
* @see https://codeigniter.com/user_guide/general/urls.html
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('welcome_message');
|
||||
}
|
||||
}
|
||||
11
application/controllers/index.html
Executable file
11
application/controllers/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/core/index.html
Executable file
11
application/core/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/helpers/index.html
Executable file
11
application/helpers/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/hooks/index.html
Executable file
11
application/hooks/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/index.html
Executable file
11
application/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/language/english/index.html
Executable file
11
application/language/english/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/language/index.html
Executable file
11
application/language/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/libraries/index.html
Executable file
11
application/libraries/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/logs/index.html
Executable file
11
application/logs/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
109
application/models/M_tabel_ss.php
Executable file
109
application/models/M_tabel_ss.php
Executable file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
class M_tabel_ss extends CI_Model {
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->database();
|
||||
}
|
||||
|
||||
private function _get_datatables_query($column_search,$column_order,$order,$table,$table_join,$where,$as)
|
||||
{
|
||||
|
||||
|
||||
|
||||
$column_search = $column_search;
|
||||
$column_order = $column_order;
|
||||
$order = $order;
|
||||
$this->db->select($as);
|
||||
$this->db->from($table);
|
||||
|
||||
if ($where != null) {
|
||||
$this->db->where($where);
|
||||
}
|
||||
|
||||
if ($table_join != null) {
|
||||
// $this->db->where($where);
|
||||
foreach ($table_join as $key => $value) {
|
||||
$this->db->join($value['table'],$value['join']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$i = 0;
|
||||
|
||||
|
||||
// foreach ($this->column_search as $item) // looping awal
|
||||
foreach ($column_search as $item) // looping awal
|
||||
{
|
||||
if($_POST['search']['value']) // jika datatable mengirimkan pencarian dengan metode POST
|
||||
{
|
||||
|
||||
if($i===0) // looping awal
|
||||
{
|
||||
$this->db->group_start();
|
||||
$this->db->like($item, $_POST['search']['value']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->or_like($item, $_POST['search']['value']);
|
||||
}
|
||||
|
||||
// if(count($this->column_search) - 1 == $i)
|
||||
if(count($column_search) - 1 == $i)
|
||||
$this->db->group_end();
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
if(isset($_POST['order']))
|
||||
{
|
||||
$this->db->order_by($column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
|
||||
// $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
|
||||
}
|
||||
else if(isset($this->order))
|
||||
{
|
||||
$order = $this->order;
|
||||
$this->db->order_by(key($order), $order[key($order)]);
|
||||
}
|
||||
}
|
||||
|
||||
function get_datatables($column_search,$column_order,$order,$table,$table_join,$where,$as)
|
||||
{
|
||||
$this->_get_datatables_query($column_search,$column_order,$order,$table,$table_join,$where,$as);
|
||||
if($_POST['length'] != -1)
|
||||
$this->db->limit($_POST['length'], $_POST['start']);
|
||||
$query = $this->db->get();
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
function count_filtered($column_search,$column_order,$order,$table,$table_join,$where,$as)
|
||||
{
|
||||
$this->_get_datatables_query($column_search,$column_order,$order,$table,$table_join,$where,$as);
|
||||
$query = $this->db->get();
|
||||
return $query->num_rows();
|
||||
}
|
||||
|
||||
public function count_all($table,$table_join,$where,$as)
|
||||
{
|
||||
|
||||
$this->db->select($as);
|
||||
$this->db->from($table);
|
||||
|
||||
if ($where != null) {
|
||||
$this->db->where($where);
|
||||
}
|
||||
|
||||
if ($table_join != null) {
|
||||
// $this->db->where($where);
|
||||
foreach ($table_join as $key => $value) {
|
||||
$this->db->join($value['table'],$value['join']);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->db->count_all_results();
|
||||
}
|
||||
|
||||
}
|
||||
308
application/models/Model.php
Executable file
308
application/models/Model.php
Executable file
@ -0,0 +1,308 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Model extends CI_Model {
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
}
|
||||
|
||||
function index(){
|
||||
|
||||
}
|
||||
|
||||
function tampil_data_keseluruhan($namatabel) //gunakan ini untuk menampilkan tabel yg lebih spesifik 'where'
|
||||
{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function tampil_data_where($namatabel,$array) //gunakan ini untuk menampilkan tabel yg lebih spesifik 'where'
|
||||
{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
$this->db->where($array);
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function tampil_data_where1($namatabel,$array,$bintang) //gunakan ini untuk menampilkan tabel yg lebih spesifik 'where'
|
||||
{
|
||||
$this->db->select($bintang);
|
||||
$this->db->from($namatabel);
|
||||
$this->db->where($array);
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function tampil_data_keseluruhan_order_by($namatabel,$order_by,$order) //gunakan ini untuk menampilkan tabel yg lebih spesifik 'where'
|
||||
{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
// $this->db->where($array);
|
||||
$this->db->order_by($order_by, $order);
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function tampil_data_where_order_by($namatabel,$array,$order_by,$order) //gunakan ini untuk menampilkan tabel yg lebih spesifik 'where'
|
||||
{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
$this->db->where($array);
|
||||
$this->db->order_by($order_by, $order);
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function tampil_data_last($namatabel,$kolom)
|
||||
{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
$this->db->limit(1);
|
||||
$this->db->order_by($kolom,"DESC");
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
|
||||
function custom_query($query)
|
||||
{
|
||||
$query1 = $this->db->query($query);
|
||||
return $query1;
|
||||
|
||||
}
|
||||
|
||||
function insert($namatabel,$array)
|
||||
{
|
||||
return $this->db->insert($namatabel,$array);
|
||||
}
|
||||
|
||||
function update($table,$array,$array_condition)
|
||||
{
|
||||
$this->db->where($array);
|
||||
$this->db->update($table, $array_condition);
|
||||
}
|
||||
|
||||
function delete($table,$array_condition)
|
||||
{
|
||||
// $this->db->where($array);
|
||||
$this->db->delete($table, $array_condition);
|
||||
// $this->db->delete(table_name, where_clause)
|
||||
}
|
||||
|
||||
|
||||
|
||||
function like($namatabel,$field,$like,$kategori)
|
||||
{
|
||||
if ($kategori == '') {
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
$this->db->like($field, $like, 'both');
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}else{
|
||||
$this->db->select("*");
|
||||
$this->db->from($namatabel);
|
||||
$this->db->where(array('kategori'=>$kategori));
|
||||
$this->db->like($field, $like, 'both');
|
||||
// $this->db->limit(1);
|
||||
$query = $this->db->get();
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
|
||||
function data_user($nik,$pencarian)
|
||||
{
|
||||
$data = $this->tampil_data_where('tb_staff_kelurahan',array('nik' => $nik));
|
||||
foreach ($data->result() as $key => $value) ;
|
||||
if ($pencarian == "data_diri") {
|
||||
return $value;
|
||||
}else if ($pencarian == "kelurahan") {
|
||||
$kelurahan = $this->tampil_data_where('tb_kelurahan',array('no' => $value->kelurahan));
|
||||
foreach ($kelurahan->result() as $key1 => $value1) ;
|
||||
return $value1->kelurahan;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function serialize($data){
|
||||
$keys = array_column($data,'name');
|
||||
$values = array_column($data,'value');
|
||||
$data = array_combine($keys, $values);
|
||||
return $data;
|
||||
}
|
||||
|
||||
function cek_penamaan_foto($imageFileType)
|
||||
{
|
||||
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" ) {
|
||||
|
||||
return 0;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function upload_foto($value,$key,$cek_no,$kategori) {
|
||||
|
||||
$data = $value;
|
||||
$data = substr($data, 0, -2);
|
||||
// $data = 'data:image/'.$data;
|
||||
// print_r($data);
|
||||
// define('UPLOAD_DIR', 'images/');
|
||||
$image_parts = explode(";base64,", $data);
|
||||
$image_type_aux = explode("image/", $image_parts[0]);
|
||||
$image_type = $image_type_aux[1];
|
||||
$image_base64 = base64_decode($image_parts[1]);
|
||||
// if ($e == 1) {
|
||||
// $edit = '_edit';
|
||||
// $file = 'images/'.$cek_no. '/foto'.$edit.$key.'.png';
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// $edit = '';
|
||||
if ($kategori == 'berita') {
|
||||
$file = 'assets/admin_assets/images/berita/'.$cek_no. '/foto'.$key.'.png';
|
||||
}
|
||||
if ($kategori == 'iklan') {
|
||||
$file = 'assets/admin_assets/images/iklan/'.$cek_no. '/foto'.$key.'.png';
|
||||
}
|
||||
file_put_contents($file, $image_base64);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function bulan($bulan)
|
||||
{
|
||||
|
||||
switch ($bulan) {
|
||||
case '01':
|
||||
$bulannya = 'Januari';
|
||||
break;
|
||||
|
||||
case '02':
|
||||
$bulannya = 'Februari';
|
||||
break;
|
||||
|
||||
case '03':
|
||||
$bulannya = 'Maret';
|
||||
break;
|
||||
|
||||
case '04':
|
||||
$bulannya = 'April';
|
||||
break;
|
||||
|
||||
case '05':
|
||||
$bulannya = 'Mei';
|
||||
break;
|
||||
|
||||
case '06':
|
||||
$bulannya = 'Juni';
|
||||
break;
|
||||
|
||||
case '07':
|
||||
$bulannya = 'Juli';
|
||||
break;
|
||||
|
||||
case '08':
|
||||
$bulannya = 'Agustus';
|
||||
break;
|
||||
|
||||
case '09':
|
||||
$bulannya = 'September';
|
||||
break;
|
||||
|
||||
case '10':
|
||||
$bulannya = 'Oktober';
|
||||
break;
|
||||
|
||||
case '11':
|
||||
$bulannya = 'November';
|
||||
break;
|
||||
|
||||
case '12':
|
||||
$bulannya = 'Desember';
|
||||
break;
|
||||
|
||||
default:
|
||||
$bulannya = '';
|
||||
break;
|
||||
}
|
||||
|
||||
return $bulannya;
|
||||
}
|
||||
|
||||
function hari($hari)
|
||||
{
|
||||
// $ini = ''
|
||||
switch ($hari) {
|
||||
case 'Sunday':
|
||||
$ini = 'Ahad';
|
||||
break;
|
||||
case 'Monday':
|
||||
$ini = 'Senin';
|
||||
break;
|
||||
case 'Tuesday':
|
||||
$ini = 'Selasa';
|
||||
break;
|
||||
case 'Wednesday':
|
||||
$ini = 'Rabu';
|
||||
break;
|
||||
case 'Thursday':
|
||||
$ini = 'Kamis';
|
||||
break;
|
||||
case 'Friday':
|
||||
$ini = 'Jumat';
|
||||
break;
|
||||
case 'Saturday':
|
||||
$ini = 'Sabtu';
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return $ini;
|
||||
}
|
||||
|
||||
// function qrcode_buku($kode){
|
||||
// include "phpqrcode/qrlib.php";
|
||||
// $kode = $kode;
|
||||
|
||||
// // $PNG_TEMP_DIR = 'images/'.$kategori;
|
||||
|
||||
// $PNG_WEB_DIR = 'images/buku/';
|
||||
|
||||
// if (!file_exists($PNG_WEB_DIR))
|
||||
// mkdir($PNG_WEB_DIR);
|
||||
|
||||
// $errorCorrectionLevel = 'H';
|
||||
|
||||
// $matrixPointSize = 10;
|
||||
|
||||
// $filename =$PNG_WEB_DIR.md5($kode).'.png';
|
||||
// QRcode::png($kode, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
|
||||
|
||||
// if (file_exists($PNG_WEB_DIR.md5($kode).'.png') > 0) {
|
||||
// return "ada";
|
||||
// }else{
|
||||
// return "tiada";
|
||||
// }
|
||||
// }
|
||||
|
||||
function cek_last_ai($tables){
|
||||
return $this->db->query("SELECT `AUTO_INCREMENT` as no
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = '".$this->db->database."'
|
||||
AND TABLE_NAME = '".$tables."'")->result()[0]->no;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
11
application/models/index.html
Executable file
11
application/models/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/third_party/index.html
vendored
Executable file
11
application/third_party/index.html
vendored
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
704
application/views/admin/content/parkir.php
Normal file
704
application/views/admin/content/parkir.php
Normal file
@ -0,0 +1,704 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('admin/header'); ?>
|
||||
<link rel="stylesheet" href="<?= base_url() ?>assets/fonts/material-design-iconic-font/css/material-design-iconic-font.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('admin/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Form Tambah Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<form id="form_tambah">
|
||||
<div class="form-group">
|
||||
<label for="luas">Nama Tukang Parkir</label>
|
||||
<input type="text" id="nama" class="form-control" placeholder="Masukkan Nama Tukang Parkir">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">NIK Tukang Parkir</label>
|
||||
<input type="text" id="nik" class="form-control" placeholder="Masukkan NIK Tukang Parkir" maxlength="16">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="kecamatan_select">Kecamatan</label>
|
||||
<select name="kecamatan_select" id="kecamatan_select" class="form-control" onchange="get_kelurahan(this.value)">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="kelurahan_select">Kelurahan</label>
|
||||
<select name="kelurahan_select" id="kelurahan_select" class="form-control" onchange="get_kelurahan_maps(this.value)">
|
||||
<option value="" selected disabled>-Pilih Kecamatan Terlebih Dahulu</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="luas">Luas Area</label>
|
||||
<input type="text" id="luas_input" class="form-control" placeholder="Sila Tanda Area Parkir" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="alamat">Alamat Tempat Parkir</label>
|
||||
<textarea name="alamat" id="alamat" cols="30" rows="10" class="form-control" placeholder="Masukkan Alamat" style="resize:none"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Biaya Parkir Per Motor</label>
|
||||
<input type="text" id="biaya_motor" class="form-control" placeholder="Masukkan Biaya Parkir Per Motor" maxlength="5">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Biaya Parkir Per Mobil</label>
|
||||
<input type="text" id="biaya_mobil" class="form-control" placeholder="Masukkan Biaya Parkir Per Mobil" maxlength="5">
|
||||
</div>
|
||||
|
||||
|
||||
<center><button type="button" class="btn btn-primary btn-sm waves-effect waves-light text" onclick="tambah_parkir()">Tambah Area Parkir</button></center>
|
||||
</form>
|
||||
<br>
|
||||
<div id="div_map" style="display: none;">
|
||||
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">List Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<div style="overflow-x: auto;">
|
||||
<table id="table_area_parkir" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Alamat</th>
|
||||
<th>Kecamatan</th>
|
||||
<th>Kelurahan</th>
|
||||
<th>Luas Area</th>
|
||||
<th>Biaya Parkir Motor</th>
|
||||
<th>Biaya Parkir Mobil</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php $this->load->view('admin/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
<?php $this->load->view('admin/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script>
|
||||
const input_array = ['nik', 'biaya_motor', 'biaya_mobil'];
|
||||
for (let i = 0; i < input_array.length; i++) {
|
||||
const numericInput = document.getElementById(input_array[i]);
|
||||
numericInput.addEventListener('input', function(event) {
|
||||
const value = event.target.value;
|
||||
if (isNaN(value)) {
|
||||
event.target.value = '';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function datatables() {
|
||||
table = $('#table_area_parkir').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [
|
||||
[5, 10, 15, -1],
|
||||
[5, 10, 15, "All"]
|
||||
],
|
||||
"pageLength": 10,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
// "order": [[ 4, 'desc' ]],
|
||||
|
||||
"ajax": {
|
||||
"url": "<?php echo base_url('home/parkir'); ?>",
|
||||
"type": "POST",
|
||||
data: {
|
||||
proses: 'table_area_parkir'
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
"columnDefs": [{
|
||||
"targets": [0],
|
||||
"orderable": false,
|
||||
}, ],
|
||||
});
|
||||
}
|
||||
datatables()
|
||||
|
||||
|
||||
var map = new google.maps.Map(document.getElementById('map'), {
|
||||
zoom: 12,
|
||||
center: {
|
||||
lat: -5.041461,
|
||||
lng: 121.628891
|
||||
},
|
||||
streetViewControl: false,
|
||||
});
|
||||
|
||||
var polygon = new google.maps.Polygon();
|
||||
var parkir_polygon = new google.maps.Polygon();
|
||||
var parkir_polygon_coord = null;
|
||||
var center_parkir;
|
||||
var kecamatan_id;
|
||||
var kelurahan_id;
|
||||
var luas_parkirnya;
|
||||
|
||||
// know the zoom level
|
||||
google.maps.event.addListener(map, 'zoom_changed', function() {
|
||||
var zoomLevel = map.getZoom();
|
||||
console.log(zoomLevel);
|
||||
});
|
||||
|
||||
// drawing manager set the hand tool as default
|
||||
var drawingManager = new google.maps.drawing.DrawingManager({
|
||||
drawingMode: google.maps.drawing.OverlayType.POLYGON,
|
||||
drawingControl: true,
|
||||
drawingControlOptions: {
|
||||
position: google.maps.ControlPosition.TOP_CENTER,
|
||||
drawingModes: ['polygon']
|
||||
},
|
||||
polygonOptions: {
|
||||
fillColor: '#ffff00',
|
||||
fillOpacity: 0.5,
|
||||
strokeWeight: 1,
|
||||
clickable: false,
|
||||
editable: true,
|
||||
zIndex: 1
|
||||
}
|
||||
});
|
||||
|
||||
// get the polygon coordinates
|
||||
|
||||
|
||||
|
||||
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
|
||||
if (event.type == google.maps.drawing.OverlayType.POLYGON) {
|
||||
var newShape = event.overlay;
|
||||
// console.log(newShape);
|
||||
var newShape_polygon_coords = (newShape.getPath().getArray());
|
||||
|
||||
setSelection(newShape);
|
||||
// polygon onchange event
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var addListenerOnPolygon = function(the_polygon) {
|
||||
google.maps.event.addListener(the_polygon, 'click', function(event) {
|
||||
// var parkir_polygon_coords_array = [];
|
||||
// setSelection(the_polygon);
|
||||
console.log("this is the polygon");
|
||||
google.maps.event.addListener(the_polygon.getPath(), 'set_at', function() {
|
||||
console.log("this is the polygon set_at");
|
||||
var polygon_coords = (the_polygon.getPath().getArray());
|
||||
// console.log(polygon_coords);
|
||||
|
||||
// change the polygon_coords to [{"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}]
|
||||
var polygon_coords_array = [];
|
||||
for (var i = 0; i < polygon_coords.length; i++) {
|
||||
var polygon_coords_obj = {
|
||||
"lat": polygon_coords[i].lat(),
|
||||
"lng": polygon_coords[i].lng()
|
||||
};
|
||||
polygon_coords_array.push(polygon_coords_obj);
|
||||
}
|
||||
console.log(polygon_coords_array);
|
||||
|
||||
// get the center of the polygon_coords by bounds
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
for (var i = 0; i < polygon_coords.length; i++) {
|
||||
bounds.extend(polygon_coords[i]);
|
||||
}
|
||||
var center = bounds.getCenter();
|
||||
// console.log(center);
|
||||
// chnage the center to {"lat" : lat, "lng" : lng}
|
||||
center_parkir = {
|
||||
"lat": center.lat(),
|
||||
"lng": center.lng()
|
||||
};
|
||||
console.log(center_parkir);
|
||||
|
||||
// get luas
|
||||
var luas = google.maps.geometry.spherical.computeArea(polygon_coords);
|
||||
// 2 digit after the decimal point
|
||||
luas = luas.toFixed(2);
|
||||
console.log(luas);
|
||||
$("#luas_input").val(luas + " m2");
|
||||
luas_parkirnya = luas;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
google.maps.event.addListener(the_polygon.getPath(), 'insert_at', function() {
|
||||
console.log("this is the polygon insert_at");
|
||||
var polygon_coords = (the_polygon.getPath().getArray());
|
||||
// console.log(polygon_coords);
|
||||
|
||||
// change the polygon_coords to [{"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}]
|
||||
var polygon_coords_array = [];
|
||||
for (var i = 0; i < polygon_coords.length; i++) {
|
||||
var polygon_coords_obj = {
|
||||
"lat": polygon_coords[i].lat(),
|
||||
"lng": polygon_coords[i].lng()
|
||||
};
|
||||
polygon_coords_array.push(polygon_coords_obj);
|
||||
}
|
||||
console.log(polygon_coords_array);
|
||||
|
||||
// get the center of the polygon_coords by bounds
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
for (var i = 0; i < polygon_coords.length; i++) {
|
||||
bounds.extend(polygon_coords[i]);
|
||||
}
|
||||
var center = bounds.getCenter();
|
||||
// console.log(center);
|
||||
// chnage the center to {"lat" : lat, "lng" : lng}
|
||||
center_parkir = {
|
||||
"lat": center.lat(),
|
||||
"lng": center.lng()
|
||||
};
|
||||
console.log(center_parkir);
|
||||
|
||||
// get luas
|
||||
var luas = google.maps.geometry.spherical.computeArea(polygon_coords);
|
||||
// 2 digit after the decimal point
|
||||
luas = luas.toFixed(2);
|
||||
console.log(luas);
|
||||
$("#luas_input").val(luas + " m2");
|
||||
luas_parkirnya = luas;
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
function setSelection(shape) {
|
||||
clearSelection();
|
||||
var the_polygon = shape;
|
||||
parkir_polygon = the_polygon;
|
||||
|
||||
var parkir_polygon_coords = (parkir_polygon.getPath().getArray());
|
||||
// var polygon_coords = (polygon.getPath().getArray());
|
||||
|
||||
// if parkir_polygon_coords is outside polygon_coords
|
||||
if (google.maps.geometry.poly.containsLocation(parkir_polygon_coords[0], polygon) == false) {
|
||||
alert('Area Parkir Tidak Boleh Diluar Area Parkir');
|
||||
parkir_polygon.setMap(null);
|
||||
} else {
|
||||
// change the parkir_polygon_coords to [{"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}, {"lat" : lat, "lng" : lng}]
|
||||
var parkir_polygon_coords_array = [];
|
||||
for (var i = 0; i < parkir_polygon_coords.length; i++) {
|
||||
var parkir_polygon_coords_obj = {
|
||||
"lat": parkir_polygon_coords[i].lat(),
|
||||
"lng": parkir_polygon_coords[i].lng()
|
||||
};
|
||||
parkir_polygon_coords_array.push(parkir_polygon_coords_obj);
|
||||
}
|
||||
// console.log(parkir_polygon_coords_array);
|
||||
|
||||
parkir_polygon_coord = parkir_polygon_coords_array;
|
||||
console.log(parkir_polygon_coord);
|
||||
|
||||
// get the center of the parkir_polygon_coords by bounds
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
for (var i = 0; i < parkir_polygon_coords.length; i++) {
|
||||
bounds.extend(parkir_polygon_coords[i]);
|
||||
}
|
||||
var center = bounds.getCenter();
|
||||
// chnage the center to {"lat" : lat, "lng" : lng}
|
||||
center_parkir = {
|
||||
"lat": center.lat(),
|
||||
"lng": center.lng()
|
||||
};
|
||||
|
||||
console.log(center_parkir);
|
||||
|
||||
// get luas
|
||||
var luas = google.maps.geometry.spherical.computeArea(parkir_polygon_coords);
|
||||
// 2 digit after the decimal point
|
||||
luas = luas.toFixed(2);
|
||||
console.log(luas);
|
||||
$("#luas_input").val(luas + " m2");
|
||||
luas_parkirnya = luas;
|
||||
addListenerOnPolygon(parkir_polygon);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function clearSelection() {
|
||||
if (parkir_polygon) {
|
||||
parkir_polygon.setMap(null);
|
||||
parkir_polygon_coord = null;
|
||||
center_parkir = null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function get_all_kecamatan() {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/all_kecamatan') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
let all_kecamatan = data.data;
|
||||
// console.log(all_kecamatan);
|
||||
$("#kecamatan_select").append('<option value="" selected disabled>Pilih Kecamatan</option>');
|
||||
|
||||
$.each(all_kecamatan, function(index, value) {
|
||||
$("#kecamatan_select").append('<option value="' + value.no + '">' + value.kecamatan + '</option>');
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
get_all_kecamatan();
|
||||
|
||||
|
||||
function get_kelurahan(id_kecamatan) {
|
||||
kecamatan_id = id_kecamatan;
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/all_kelurahan') ?>?id_kecamatan=" + id_kecamatan,
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data)
|
||||
let data_kelurahan = data.data;
|
||||
|
||||
$("#kelurahan_select").empty();
|
||||
$("#kelurahan_select").append('<option value="" selected disabled>Pilih Kelurahan</option>');
|
||||
|
||||
$.each(data_kelurahan, function(index, value) {
|
||||
$("#kelurahan_select").append('<option value="' + value.no + '">' + value.kelurahan + '</option>');
|
||||
});
|
||||
|
||||
let maps = data.maps[0].kordinat;
|
||||
polygon.setMap(null);
|
||||
// console.log(maps)
|
||||
|
||||
the_polygon = []
|
||||
|
||||
for (let i = 0; i < maps.length; i++) {
|
||||
the_polygon.push({
|
||||
lat: parseFloat(maps[i].lat),
|
||||
lng: parseFloat(maps[i].lng)
|
||||
});
|
||||
}
|
||||
|
||||
polygon = new google.maps.Polygon({
|
||||
paths: the_polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
polygon.setMap(map);
|
||||
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
for (var i = 0; i < polygon.getPath().getLength(); i++) {
|
||||
bounds.extend(polygon.getPath().getAt(i));
|
||||
}
|
||||
map.fitBounds(bounds);
|
||||
|
||||
// drawing manager
|
||||
drawingManager.setMap(null);
|
||||
|
||||
$("#div_map").attr('style', 'display:block;');
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function get_kelurahan_maps(id_kelurahan) {
|
||||
kelurahan_id = id_kelurahan;
|
||||
// console.log(id_kelurahan)
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kelurahan_maps') ?>?id_kelurahan=" + id_kelurahan,
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data)
|
||||
|
||||
let maps = data.data[0].kordinat;
|
||||
polygon.setMap(null);
|
||||
|
||||
the_polygon = []
|
||||
|
||||
for (let i = 0; i < maps.length; i++) {
|
||||
the_polygon.push({
|
||||
lat: parseFloat(maps[i].lat),
|
||||
lng: parseFloat(maps[i].lng)
|
||||
});
|
||||
}
|
||||
|
||||
polygon = new google.maps.Polygon({
|
||||
paths: the_polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1,
|
||||
// editable: true
|
||||
});
|
||||
|
||||
polygon.setMap(map);
|
||||
|
||||
var bounds = new google.maps.LatLngBounds();
|
||||
for (var i = 0; i < polygon.getPath().getLength(); i++) {
|
||||
bounds.extend(polygon.getPath().getAt(i));
|
||||
}
|
||||
|
||||
map.fitBounds(bounds);
|
||||
|
||||
drawingManager.setMap(map);
|
||||
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function tambah_parkir() {
|
||||
if (parkir_polygon_coord == null) {
|
||||
alert('Silahkan tanda lokasi area parkir');
|
||||
return false;
|
||||
}
|
||||
|
||||
const alamat = $("#alamat").val();
|
||||
const nik = $("#nik").val();
|
||||
const nama = $("#nama").val();
|
||||
const biaya_motor = $("#biaya_motor").val();
|
||||
const biaya_mobil = $("#biaya_mobil").val();
|
||||
|
||||
if (alamat == '') {
|
||||
alert('Silahkan isi alamat parkir');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (nik == '') {
|
||||
alert('Silahkan isi NIK');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(nik.length != 16){
|
||||
alert('NIK harus 16 digit');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (confirm("Area parkir baru akan ditambahkan ke sistem")) {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/tambah_parkir') ?>",
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
kecamatan_id: kecamatan_id,
|
||||
kelurahan_id: kelurahan_id,
|
||||
kordinat: JSON.stringify(parkir_polygon_coord),
|
||||
center: JSON.stringify(center_parkir),
|
||||
luas: luas_parkirnya,
|
||||
alamat: alamat,
|
||||
nik: nik,
|
||||
nama: nama,
|
||||
biaya_motor: biaya_motor,
|
||||
biaya_mobil: biaya_mobil
|
||||
},
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
console.log(data)
|
||||
|
||||
parkir_polygon_coord = null;
|
||||
center_parkir = null;
|
||||
luas_parkirnya = null;
|
||||
$("#alamat").val('');
|
||||
$("#luas_input").val('');
|
||||
|
||||
// parkir_polygon.setMap(null);
|
||||
clearSelection();
|
||||
$('#table_area_parkir').dataTable().fnDestroy();
|
||||
datatables()
|
||||
alert('Area parkir berhasil ditambahkan');
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
console.log(jqXHR)
|
||||
console.log(textStatus)
|
||||
console.log(errorThrown)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function hapus_area_parkir(id_parkir) {
|
||||
// console.log(id_parkir)
|
||||
if (confirm("Area parkir akan dihapus dari sistem")) {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/area_parkir') ?>",
|
||||
type: "DELETE",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
id: id_parkir
|
||||
},
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
console.log(data)
|
||||
|
||||
$('#table_area_parkir').dataTable().fnDestroy();
|
||||
datatables()
|
||||
alert('Area parkir berhasil dihapus');
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
console.log(jqXHR)
|
||||
console.log(textStatus)
|
||||
console.log(errorThrown)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
88
application/views/admin/content/tukang_parkir.php
Normal file
88
application/views/admin/content/tukang_parkir.php
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('admin/header'); ?>
|
||||
<link rel="stylesheet" href="<?= base_url() ?>assets/fonts/material-design-iconic-font/css/material-design-iconic-font.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('admin/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">List Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<div style="overflow-x: auto;">
|
||||
<table id="table_tukang_parkir" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>NIK</th>
|
||||
<th>Nama</th>
|
||||
<th>Kecamatan</th>
|
||||
<th>Kelurahan</th>
|
||||
<th>Alamat Parkir</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php $this->load->view('admin/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
<?php $this->load->view('admin/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script>
|
||||
|
||||
|
||||
function datatables() {
|
||||
table = $('#table_tukang_parkir').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [
|
||||
[5, 10, 15, -1],
|
||||
[5, 10, 15, "All"]
|
||||
],
|
||||
"pageLength": 10,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
// "order": [[ 4, 'desc' ]],
|
||||
|
||||
"ajax": {
|
||||
"url": "<?php echo base_url('home/tukang_parkir'); ?>",
|
||||
"type": "POST",
|
||||
data: {
|
||||
proses: 'table_tukang_parkir'
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
"columnDefs": [{
|
||||
"targets": [0,3,4,5],
|
||||
"orderable": false,
|
||||
}, ],
|
||||
});
|
||||
}
|
||||
datatables()
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
8
application/views/admin/footer.php
Normal file
8
application/views/admin/footer.php
Normal file
@ -0,0 +1,8 @@
|
||||
<footer class="footer">
|
||||
<ul class="list-inline">
|
||||
<li>2023 © Kicap Karan.</li>
|
||||
<li><a href="#">Privacy</a></li>
|
||||
<li><a href="#">Terms</a></li>
|
||||
<li><a href="#">Help</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
28
application/views/admin/header.php
Normal file
28
application/views/admin/header.php
Normal file
@ -0,0 +1,28 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Sistem Parkir Parepare - <?=$header?></title>
|
||||
|
||||
<!-- Main Styles -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/styles/style.min.css">
|
||||
|
||||
<!-- mCustomScrollbar -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.min.css">
|
||||
|
||||
<!-- Waves Effect -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/waves/waves.min.css">
|
||||
|
||||
<!-- Sweet Alert -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.css">
|
||||
|
||||
<!-- Color Picker -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/color-switcher/color-switcher.min.css">
|
||||
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/fonts/material-design/css/materialdesignicons.css">
|
||||
|
||||
<!-- Data Tables -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/extensions/Responsive/css/responsive.bootstrap.min.css">
|
||||
421
application/views/admin/index.php
Normal file
421
application/views/admin/index.php
Normal file
@ -0,0 +1,421 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('admin/header'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('admin/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Peta Lahan Parkir Parepare</h4>
|
||||
<div class="card-content">
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">List Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<div style="overflow-x: auto;">
|
||||
<table id="table_area_parkir" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Alamat</th>
|
||||
<th>Kecamatan</th>
|
||||
<th>Kelurahan</th>
|
||||
<th>Luas Area</th>
|
||||
<th>Biaya Parkir Motor</th>
|
||||
<th>Biaya Parkir Mobil</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view('admin/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
<?php $this->load->view('admin/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
|
||||
<!-- <script src="<?= base_url() ?>assets/cluster.js"></script> -->
|
||||
<script>
|
||||
// import { MarkerClusterer } from "https://cdn.skypack.dev/@googlemaps/markerclusterer@2.0.3";
|
||||
var map = new google.maps.Map(document.getElementById('map'), {
|
||||
zoom: 12,
|
||||
center: {
|
||||
lat: -5.041461,
|
||||
lng: 121.628891
|
||||
},
|
||||
});
|
||||
var markers = [];
|
||||
var markers1 = [];
|
||||
var polygon_parkir = [];
|
||||
var polygon_parkir1 = [];
|
||||
var cluster;
|
||||
var infowindow_data = [];
|
||||
|
||||
|
||||
|
||||
|
||||
function get_kabupaten() {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kabupaten_maps') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
let map_data = data.data;
|
||||
// console.log(map_data[0])
|
||||
var bound = new google.maps.LatLngBounds();
|
||||
for (let i = 0; i < map_data.length; i++) {
|
||||
let map_1 = map_data[i].kordinat;
|
||||
let polygon = [];
|
||||
|
||||
for (let i = 0; i < map_1.length; i++) {
|
||||
// map_1[i].lng value return like 119.62361145
|
||||
// map_1[i].lat value return like -4.00000000
|
||||
// push value to polygon array
|
||||
polygon.push({
|
||||
lat: parseFloat(map_1[i].lat),
|
||||
lng: parseFloat(map_1[i].lng)
|
||||
});
|
||||
}
|
||||
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
show_polygon.setMap(map);
|
||||
|
||||
for (var j = 0; j < polygon.length; j++) {
|
||||
bound.extend(polygon[j]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
map.fitBounds(bound);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
get_kabupaten();
|
||||
|
||||
|
||||
async function get_marker_parkir() {
|
||||
try {
|
||||
const data = await $.ajax({
|
||||
url: "<?php echo base_url('api/area_parkir') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
async: false,
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
}
|
||||
}).responseJSON;
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
let area_parkir = data.data;
|
||||
|
||||
// console.log(area_parkir.length)
|
||||
if (area_parkir.length > 0) {
|
||||
|
||||
|
||||
for (let i = 0; i < area_parkir.length; i++) {
|
||||
let area_parkir_1 = area_parkir[i];
|
||||
// console.log(JSON.parse(area_parkir_1.center))
|
||||
let coordinate = JSON.parse(area_parkir_1.center);
|
||||
let marker = new google.maps.Marker({
|
||||
position: {
|
||||
lat: parseFloat(coordinate.lat),
|
||||
lng: parseFloat(coordinate.lng)
|
||||
},
|
||||
map: map,
|
||||
title: area_parkir_1.alamat,
|
||||
|
||||
});
|
||||
|
||||
markers1.push(marker);
|
||||
var biaya_motor = area_parkir_1.biaya_motor;
|
||||
var biaya_mobil = area_parkir_1.biaya_mobil;
|
||||
|
||||
let infowindow = new google.maps.InfoWindow({
|
||||
content: "Alamat : " + area_parkir_1.alamat + "<br>Luas : " + area_parkir_1.luas + " m2<br>Biaya Parkir Motor : " + biaya_motor + "<br>Biaya Parkir Mobil : " + biaya_mobil
|
||||
});
|
||||
infowindow_data.push(infowindow);
|
||||
marker.addListener('click', function() {
|
||||
// console.log(area_parkir_1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
infowindow.open(map, marker);
|
||||
});
|
||||
markers.push(marker);
|
||||
}
|
||||
|
||||
// marker cluster
|
||||
cluster = new markerClusterer.MarkerClusterer({
|
||||
map,
|
||||
markers
|
||||
});
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
$.unblockUI();
|
||||
console.log(error)
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get_marker_parkir();
|
||||
|
||||
async function get_polygon_parkir() {
|
||||
try {
|
||||
const data = await $.ajax({
|
||||
url: "<?php echo base_url('api/area_parkir') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
async: false,
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
}
|
||||
}).responseJSON;
|
||||
$.unblockUI();
|
||||
// console.log(data)
|
||||
let area_parkir = data.data;
|
||||
|
||||
// // console.log(area_parkir)
|
||||
if (area_parkir.length > 0) {
|
||||
if (polygon_parkir.length == 0) {
|
||||
for (let i = 0; i < area_parkir.length; i++) {
|
||||
let the_polygon = JSON.parse(area_parkir[i].kordinat);
|
||||
// console.log(the_polygon)
|
||||
|
||||
let polygon = [];
|
||||
for (let i = 0; i < the_polygon.length; i++) {
|
||||
// map_1[i].lng value return like 119.62361145
|
||||
// map_1[i].lat value return like -4.00000000
|
||||
// push value to polygon array
|
||||
polygon.push({
|
||||
lat: parseFloat(the_polygon[i].lat),
|
||||
lng: parseFloat(the_polygon[i].lng)
|
||||
});
|
||||
}
|
||||
polygon_parkir.push(polygon);
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
polygon_parkir1.push(show_polygon);
|
||||
show_polygon.setMap(map);
|
||||
|
||||
|
||||
// google.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
} catch (error) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get_polygon_parkir();
|
||||
|
||||
google.maps.event.addListener(map, 'zoom_changed', function() {
|
||||
var zoomLevel = map.getZoom();
|
||||
console.log(zoomLevel);
|
||||
if (zoomLevel >= 16) {
|
||||
// console.log('zoom in')
|
||||
console.log(markers.length)
|
||||
for (let i = 0; i < markers.length; i++) {
|
||||
markers[i].setMap(null);
|
||||
}
|
||||
markers = [];
|
||||
// clear all marker
|
||||
// get_polygon_parkir();
|
||||
// for (let i = 0; i < polygon_parkir.length; i++) {
|
||||
// polygon_parkir1[i].setMap(map);
|
||||
// }
|
||||
// console.log(polygon_parkir)
|
||||
for (let i = 0; i < polygon_parkir.length; i++) {
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon_parkir[i],
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
show_polygon.setMap(map);
|
||||
polygon_parkir1.push(show_polygon);
|
||||
|
||||
google.maps.event.addListener(show_polygon, 'click', function(event) {
|
||||
// console.log("click polygon")
|
||||
// console.log(event.latLng.lng())
|
||||
console.log(infowindow_data)
|
||||
let infowindow = infowindow_data[i];
|
||||
// console.log(infowindow)
|
||||
|
||||
// get the lat and lng of the point
|
||||
var latLng = event.latLng;
|
||||
// console.log(latLng)
|
||||
infowindow.setPosition(latLng);
|
||||
infowindow.open(map);
|
||||
// infowindow_data.push(infowindow);
|
||||
|
||||
// infowindow.open(map, show_polygon);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// remove cluster
|
||||
cluster.clearMarkers();
|
||||
|
||||
|
||||
}
|
||||
if (zoomLevel < 16) {
|
||||
console.log('zoom out')
|
||||
console.log(markers.length)
|
||||
console.log(markers1.length)
|
||||
if (polygon_parkir1.length > 0) {
|
||||
// clear all polygon
|
||||
for (let i = 0; i < polygon_parkir1.length; i++) {
|
||||
polygon_parkir1[i].setMap(null);
|
||||
}
|
||||
}
|
||||
|
||||
markers = markers1;
|
||||
for (let i = 0; i < markers.length; i++) {
|
||||
markers[i].setMap(map);
|
||||
}
|
||||
// add cluster
|
||||
cluster.addMarkers(markers);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
function datatables() {
|
||||
table = $('#table_area_parkir').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [
|
||||
[5, 10, 15, -1],
|
||||
[5, 10, 15, "All"]
|
||||
],
|
||||
"pageLength": 10,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
// "order": [[ 4, 'desc' ]],
|
||||
|
||||
"ajax": {
|
||||
"url": "<?php echo base_url('home/parkir_index'); ?>",
|
||||
"type": "POST",
|
||||
data: {
|
||||
proses: 'table_area_parkir'
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
"columnDefs": [{
|
||||
"targets": [0],
|
||||
"orderable": false,
|
||||
}, ],
|
||||
});
|
||||
}
|
||||
datatables()
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
33
application/views/admin/scripts.php
Normal file
33
application/views/admin/scripts.php
Normal file
@ -0,0 +1,33 @@
|
||||
<!--/#wrapper -->
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<?=base_url()?>assets/script/html5shiv.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/script/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!--
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="<?=base_url()?>assets/scripts/jquery.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/modernizr.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/nprogress/nprogress.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/waves/waves.min.js"></script>
|
||||
<!-- Full Screen Plugin -->
|
||||
<script src="<?=base_url()?>assets/plugin/fullscreen/jquery.fullscreen-min.js"></script>
|
||||
<script src="<?=base_url()?>assets/block/jquery.blockUI.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
|
||||
|
||||
<script src="<?=base_url()?>assets/scripts/main.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/color-switcher/color-switcher.min.js"></script>
|
||||
|
||||
<script>
|
||||
function logout(){
|
||||
if(confirm("Apakah anda yakin ingin keluar?")){
|
||||
window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
// window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
</script>
|
||||
62
application/views/admin/sidebar.php
Normal file
62
application/views/admin/sidebar.php
Normal file
@ -0,0 +1,62 @@
|
||||
<div class="main-menu">
|
||||
<header class="header">
|
||||
<a href="index.html" class="logo">Parepare</a>
|
||||
<button type="button" class="button-close fa fa-times js__menu_close"></button>
|
||||
<div class="user">
|
||||
<a href="#" class="avatar"><img src="<?=base_url()?>assets/images/admin.png" alt=""><span class="status online"></span></a>
|
||||
<h5 class="name"><a href="profile.html">Admin</a></h5>
|
||||
<h5 class="position">Administrator</h5>
|
||||
|
||||
</div>
|
||||
<!-- /.user -->
|
||||
</header>
|
||||
<!-- /.header -->
|
||||
<div class="content">
|
||||
|
||||
<div class="navigation">
|
||||
<h5 class="title">Navigasi</h5>
|
||||
<!-- /.title -->
|
||||
<ul class="menu js__accordion">
|
||||
<li <?php if ($header == 'Halaman Utama') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('home') ?>"><i class="menu-icon fa fa-home"></i><span>Halaman Utama</span></a>
|
||||
</li>
|
||||
<li <?php if ($header == 'Pengaturan Parkir') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('home/parkir') ?>"><i class="menu-icon fa fa-car"></i><span>Pengaturan Parkir</span></a>
|
||||
</li>
|
||||
|
||||
<li <?php if ($header == 'List Tukang Parkir') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('home/tukang_parkir') ?>"><i class="menu-icon fa fa-car"></i><span>List Tukang Parkir</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="waves-effect" href="#" onclick="logout()"><i class="menu-icon mdi mdi-logout"></i><span>Logout</span></a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!-- /.navigation -->
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.main-menu -->
|
||||
|
||||
<div class="fixed-navbar">
|
||||
<div class="pull-left">
|
||||
<button type="button" class="menu-mobile-button glyphicon glyphicon-menu-hamburger js__menu_mobile"></button>
|
||||
<h1 class="page-title"><?= $header ?></h1>
|
||||
<!-- /.page-title -->
|
||||
</div>
|
||||
<!-- /.pull-left -->
|
||||
<div class="pull-right">
|
||||
|
||||
<a href="#" class="ico-item fa fa-power-off js__logout"></a>
|
||||
</div>
|
||||
<!-- /.pull-right -->
|
||||
</div>
|
||||
8
application/views/errors/cli/error_404.php
Executable file
8
application/views/errors/cli/error_404.php
Executable file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nERROR: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
8
application/views/errors/cli/error_db.php
Executable file
8
application/views/errors/cli/error_db.php
Executable file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nDatabase error: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
21
application/views/errors/cli/error_exception.php
Executable file
21
application/views/errors/cli/error_exception.php
Executable file
@ -0,0 +1,21 @@
|
||||
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
|
||||
|
||||
An uncaught Exception was encountered
|
||||
|
||||
Type: <?php echo get_class($exception), "\n"; ?>
|
||||
Message: <?php echo $message, "\n"; ?>
|
||||
Filename: <?php echo $exception->getFile(), "\n"; ?>
|
||||
Line Number: <?php echo $exception->getLine(); ?>
|
||||
|
||||
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
|
||||
|
||||
Backtrace:
|
||||
<?php foreach ($exception->getTrace() as $error): ?>
|
||||
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
|
||||
File: <?php echo $error['file'], "\n"; ?>
|
||||
Line: <?php echo $error['line'], "\n"; ?>
|
||||
Function: <?php echo $error['function'], "\n\n"; ?>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php endif ?>
|
||||
8
application/views/errors/cli/error_general.php
Executable file
8
application/views/errors/cli/error_general.php
Executable file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nERROR: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
21
application/views/errors/cli/error_php.php
Executable file
21
application/views/errors/cli/error_php.php
Executable file
@ -0,0 +1,21 @@
|
||||
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
|
||||
|
||||
A PHP Error was encountered
|
||||
|
||||
Severity: <?php echo $severity, "\n"; ?>
|
||||
Message: <?php echo $message, "\n"; ?>
|
||||
Filename: <?php echo $filepath, "\n"; ?>
|
||||
Line Number: <?php echo $line; ?>
|
||||
|
||||
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
|
||||
|
||||
Backtrace:
|
||||
<?php foreach (debug_backtrace() as $error): ?>
|
||||
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
|
||||
File: <?php echo $error['file'], "\n"; ?>
|
||||
Line: <?php echo $error['line'], "\n"; ?>
|
||||
Function: <?php echo $error['function'], "\n\n"; ?>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php endif ?>
|
||||
11
application/views/errors/cli/index.html
Executable file
11
application/views/errors/cli/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
64
application/views/errors/html/error_404.php
Executable file
64
application/views/errors/html/error_404.php
Executable file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>404 Page Not Found</title>
|
||||
<style type="text/css">
|
||||
|
||||
::selection { background-color: #E13300; color: white; }
|
||||
::-moz-selection { background-color: #E13300; color: white; }
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
margin: 40px;
|
||||
font: 13px/20px normal Helvetica, Arial, sans-serif;
|
||||
color: #4F5155;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #003399;
|
||||
background-color: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #D0D0D0;
|
||||
font-size: 19px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 14px 0;
|
||||
padding: 14px 15px 10px 15px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Consolas, Monaco, Courier New, Courier, monospace;
|
||||
font-size: 12px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #D0D0D0;
|
||||
color: #002166;
|
||||
display: block;
|
||||
margin: 14px 0 14px 0;
|
||||
padding: 12px 10px 12px 10px;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: 10px;
|
||||
border: 1px solid #D0D0D0;
|
||||
box-shadow: 0 0 8px #D0D0D0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 12px 15px 12px 15px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<h1><?php echo $heading; ?></h1>
|
||||
<?php echo $message; ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
64
application/views/errors/html/error_db.php
Executable file
64
application/views/errors/html/error_db.php
Executable file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Database Error</title>
|
||||
<style type="text/css">
|
||||
|
||||
::selection { background-color: #E13300; color: white; }
|
||||
::-moz-selection { background-color: #E13300; color: white; }
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
margin: 40px;
|
||||
font: 13px/20px normal Helvetica, Arial, sans-serif;
|
||||
color: #4F5155;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #003399;
|
||||
background-color: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #D0D0D0;
|
||||
font-size: 19px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 14px 0;
|
||||
padding: 14px 15px 10px 15px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Consolas, Monaco, Courier New, Courier, monospace;
|
||||
font-size: 12px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #D0D0D0;
|
||||
color: #002166;
|
||||
display: block;
|
||||
margin: 14px 0 14px 0;
|
||||
padding: 12px 10px 12px 10px;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: 10px;
|
||||
border: 1px solid #D0D0D0;
|
||||
box-shadow: 0 0 8px #D0D0D0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 12px 15px 12px 15px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<h1><?php echo $heading; ?></h1>
|
||||
<?php echo $message; ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
32
application/views/errors/html/error_exception.php
Executable file
32
application/views/errors/html/error_exception.php
Executable file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?>
|
||||
|
||||
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
|
||||
|
||||
<h4>An uncaught Exception was encountered</h4>
|
||||
|
||||
<p>Type: <?php echo get_class($exception); ?></p>
|
||||
<p>Message: <?php echo $message; ?></p>
|
||||
<p>Filename: <?php echo $exception->getFile(); ?></p>
|
||||
<p>Line Number: <?php echo $exception->getLine(); ?></p>
|
||||
|
||||
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
|
||||
|
||||
<p>Backtrace:</p>
|
||||
<?php foreach ($exception->getTrace() as $error): ?>
|
||||
|
||||
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
|
||||
|
||||
<p style="margin-left:10px">
|
||||
File: <?php echo $error['file']; ?><br />
|
||||
Line: <?php echo $error['line']; ?><br />
|
||||
Function: <?php echo $error['function']; ?>
|
||||
</p>
|
||||
<?php endif ?>
|
||||
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php endif ?>
|
||||
|
||||
</div>
|
||||
64
application/views/errors/html/error_general.php
Executable file
64
application/views/errors/html/error_general.php
Executable file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Error</title>
|
||||
<style type="text/css">
|
||||
|
||||
::selection { background-color: #E13300; color: white; }
|
||||
::-moz-selection { background-color: #E13300; color: white; }
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
margin: 40px;
|
||||
font: 13px/20px normal Helvetica, Arial, sans-serif;
|
||||
color: #4F5155;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #003399;
|
||||
background-color: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #D0D0D0;
|
||||
font-size: 19px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 14px 0;
|
||||
padding: 14px 15px 10px 15px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Consolas, Monaco, Courier New, Courier, monospace;
|
||||
font-size: 12px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #D0D0D0;
|
||||
color: #002166;
|
||||
display: block;
|
||||
margin: 14px 0 14px 0;
|
||||
padding: 12px 10px 12px 10px;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: 10px;
|
||||
border: 1px solid #D0D0D0;
|
||||
box-shadow: 0 0 8px #D0D0D0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 12px 15px 12px 15px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<h1><?php echo $heading; ?></h1>
|
||||
<?php echo $message; ?>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
33
application/views/errors/html/error_php.php
Executable file
33
application/views/errors/html/error_php.php
Executable file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?>
|
||||
|
||||
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
|
||||
|
||||
<h4>A PHP Error was encountered</h4>
|
||||
|
||||
<p>Severity: <?php echo $severity; ?></p>
|
||||
<p>Message: <?php echo $message; ?></p>
|
||||
<p>Filename: <?php echo $filepath; ?></p>
|
||||
<p>Line Number: <?php echo $line; ?></p>
|
||||
|
||||
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
|
||||
|
||||
<p>Backtrace:</p>
|
||||
<?php foreach (debug_backtrace() as $error): ?>
|
||||
|
||||
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
|
||||
|
||||
<p style="margin-left:10px">
|
||||
File: <?php echo $error['file'] ?><br />
|
||||
Line: <?php echo $error['line'] ?><br />
|
||||
Function: <?php echo $error['function'] ?>
|
||||
</p>
|
||||
|
||||
<?php endif ?>
|
||||
|
||||
<?php endforeach ?>
|
||||
|
||||
<?php endif ?>
|
||||
|
||||
</div>
|
||||
11
application/views/errors/html/index.html
Executable file
11
application/views/errors/html/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/views/errors/index.html
Executable file
11
application/views/errors/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/views/index.html
Executable file
11
application/views/index.html
Executable file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
96
application/views/login/index.php
Normal file
96
application/views/login/index.php
Normal file
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Sistem Parkir Parepare - Halaman Login</title>
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/styles/style.min.css">
|
||||
|
||||
<!-- Waves Effect -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/waves/waves.min.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="single-wrapper">
|
||||
<form onsubmit="login(event)" class="frm-single">
|
||||
<div class="inside">
|
||||
<div class="title"><strong>Sistem Parkir </strong>Parepare</div>
|
||||
<!-- /.title -->
|
||||
<div class="frm-title">Form Login</div>
|
||||
<!-- /.frm-title -->
|
||||
<div class="frm-input"><input type="text" placeholder="Username" id="username" name="username" class="frm-inp" required><i class="fa fa-user frm-ico"></i></div>
|
||||
<!-- /.frm-input -->
|
||||
<div class="frm-input"><input type="password" placeholder="Password" class="frm-inp" id="password" name="password" required><i class="fa fa-lock frm-ico"></i></div>
|
||||
|
||||
<button type="submit" class="frm-submit">Login<i class="fa fa-arrow-circle-right"></i></button>
|
||||
|
||||
<!-- <a href="page-register.html" class="a-link"><i class="fa fa-key"></i>New to NinjaAdmin? Register.</a> -->
|
||||
<div class="frm-footer">Kicap Karan © 2023.</div>
|
||||
<!-- /.footer -->
|
||||
</div>
|
||||
<!-- .inside -->
|
||||
</form>
|
||||
<!-- /.frm-single -->
|
||||
</div><!--/#single-wrapper -->
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="assets/script/html5shiv.min.js"></script>
|
||||
<script src="assets/script/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!--
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="<?=base_url()?>assets/scripts/jquery.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/modernizr.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/nprogress/nprogress.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/waves/waves.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/block/jquery.blockUI.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/main.min.js"></script>
|
||||
<script>
|
||||
function login(e){
|
||||
e.preventDefault();
|
||||
var username = $('#username').val();
|
||||
var password = $('#password').val();
|
||||
|
||||
// ajax
|
||||
$.ajax({
|
||||
url: '<?= base_url('api/login') ?>?username='+username+'&password='+password,
|
||||
type: 'GET',
|
||||
dataType: 'JSON',
|
||||
|
||||
beforeSend: function(){
|
||||
// loading
|
||||
$.blockUI({
|
||||
message: 'Login',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data){
|
||||
$.unblockUI();
|
||||
window.location.href = '<?= base_url('home') ?>';
|
||||
},
|
||||
error: function( XMLHttpRequest, textStatus, errorThrown ){
|
||||
$.unblockUI();
|
||||
alert('Username atau Password Salah');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
149
application/views/tukang_parkir/content/kritik.php
Normal file
149
application/views/tukang_parkir/content/kritik.php
Normal file
@ -0,0 +1,149 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('tukang_parkir/header'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('tukang_parkir/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">List Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<div style="overflow-x: auto;">
|
||||
<table id="table_kritik" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Waktu</th>
|
||||
<th>Nama</th>
|
||||
<th>Aksi</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="boostrapModal-1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title" id="myModalLabel">Kritik Dan Komen</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="alamat">Waktu</label>
|
||||
<input type="text" name="waktu" id="waktu" class="form-control" disabled>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="alamat">Nama</label>
|
||||
<input type="text" name="nama" id="nama" class="form-control" disabled>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="alamat">Kritik Dan Komen</label>
|
||||
<textarea name="kritik" id="kritik" cols="30" rows="10" class="form-control" style="resize:none" disabled></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default btn-sm waves-effect waves-light" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="send_kritik()">Send</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
|
||||
<!-- <script src="<?= base_url() ?>assets/cluster.js"></script> -->
|
||||
<script>
|
||||
function datatables() {
|
||||
table = $('#table_kritik').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [
|
||||
[5, 10, 15, -1],
|
||||
[5, 10, 15, "All"]
|
||||
],
|
||||
"pageLength": 10,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
// "order": [[ 4, 'desc' ]],
|
||||
|
||||
"ajax": {
|
||||
"url": "<?php echo base_url('tukang_parkir/kritik'); ?>",
|
||||
"type": "POST",
|
||||
data: {
|
||||
proses: 'table_area_parkir'
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
"columnDefs": [{
|
||||
"targets": [0],
|
||||
"orderable": false,
|
||||
}, ],
|
||||
});
|
||||
}
|
||||
datatables()
|
||||
|
||||
function lihat_kritik(id_kritik){
|
||||
console.log(id_kritik)
|
||||
try {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kritik') ?>?id_kritik="+id_kritik,
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
console.log(data)
|
||||
$.unblockUI();
|
||||
// show modal
|
||||
$('#boostrapModal-1').modal('show');
|
||||
$('#waktu').val(data.data.created_at)
|
||||
$('#nama').val(data.data.nama)
|
||||
$('#kritik').val(data.data.kritik)
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error Loading Data');
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
alert(error)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
116
application/views/tukang_parkir/content/password.php
Normal file
116
application/views/tukang_parkir/content/password.php
Normal file
@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('tukang_parkir/header'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('tukang_parkir/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Ganti Password</h4>
|
||||
<div class="card-content">
|
||||
<form id="form_tambah">
|
||||
<div class="form-group">
|
||||
<label for="luas">Passowrd Lama</label>
|
||||
<input type="password" id="password_lama" class="form-control" >
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Password Baru</label>
|
||||
<input type="password" id="password_baru" class="form-control" >
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Konfirmasi Password Baru</label>
|
||||
<input type="password" id="konfirmasi_password_baru" class="form-control" >
|
||||
</div>
|
||||
|
||||
<center><button type="button" class="btn btn-primary btn-sm waves-effect waves-light text" onclick="ganti_password()">Ganti Password</button></center>
|
||||
</form>
|
||||
<br>
|
||||
<div id="div_map" style="display: none;">
|
||||
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/scripts'); ?>
|
||||
<script>
|
||||
function ganti_password(){
|
||||
var password_lama = $('#password_lama').val();
|
||||
var password_baru = $('#password_baru').val();
|
||||
var konfirmasi_password_baru = $('#konfirmasi_password_baru').val();
|
||||
|
||||
if(password_baru.length < 8){
|
||||
alert('Password Baru Minimal 8 Karakter');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(password_baru != konfirmasi_password_baru){
|
||||
alert('Password Baru dan Konfirmasi Password Baru Tidak Sama');
|
||||
}else{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/ganti_password') ?>",
|
||||
type: "POST",
|
||||
data: {
|
||||
password_lama: password_lama,
|
||||
password_baru: password_baru
|
||||
},
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
console.log(data);
|
||||
if(data.status == true){
|
||||
alert('Password Berhasil Diganti');
|
||||
// clear all input
|
||||
$('#password_lama').val('');
|
||||
$('#password_baru').val('');
|
||||
$('#konfirmasi_password_baru').val('');
|
||||
}else{
|
||||
alert('Password Lama Salah');
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
8
application/views/tukang_parkir/footer.php
Normal file
8
application/views/tukang_parkir/footer.php
Normal file
@ -0,0 +1,8 @@
|
||||
<footer class="footer">
|
||||
<ul class="list-inline">
|
||||
<li>2023 © Kicap Karan.</li>
|
||||
<li><a href="#">Privacy</a></li>
|
||||
<li><a href="#">Terms</a></li>
|
||||
<li><a href="#">Help</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
30
application/views/tukang_parkir/header.php
Normal file
30
application/views/tukang_parkir/header.php
Normal file
@ -0,0 +1,30 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Sistem Parkir Parepare - <?=$header?></title>
|
||||
|
||||
<!-- Main Styles -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/styles/style.min.css">
|
||||
|
||||
<!-- mCustomScrollbar -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.min.css">
|
||||
|
||||
<!-- Waves Effect -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/waves/waves.min.css">
|
||||
|
||||
<!-- Sweet Alert -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.css">
|
||||
|
||||
<!-- Color Picker -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/color-switcher/color-switcher.min.css">
|
||||
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/fonts/material-design/css/materialdesignicons.css">
|
||||
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/fonts/material-design-iconic-font/css/material-design-iconic-font.min.css">
|
||||
|
||||
<!-- Data Tables -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/extensions/Responsive/css/responsive.bootstrap.min.css">
|
||||
287
application/views/tukang_parkir/index.php
Normal file
287
application/views/tukang_parkir/index.php
Normal file
@ -0,0 +1,287 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('tukang_parkir/header'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('tukang_parkir/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Peta Lahan Parkir Parepare</h4>
|
||||
<div class="card-content">
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Infomasi Parkir</h4>
|
||||
<div class="card-content">
|
||||
<form id="form_tambah">
|
||||
<div class="form-group">
|
||||
<label for="luas">Nama Tukang Parkir</label>
|
||||
<input type="text" id="nama" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">NIK Tukang Parkir</label>
|
||||
<input type="text" id="nik" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="kecamatan_select">Kecamatan</label>
|
||||
<input type="text" id="kecamatan" class="form-control" disabled>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="kelurahan_select">Kelurahan</label>
|
||||
<input type="text" id="kelurahan" class="form-control" disabled>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="luas">Luas Area</label>
|
||||
<input type="text" id="luas_input" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="alamat">Alamat Tempat Parkir</label>
|
||||
<textarea name="alamat" id="alamat" cols="30" rows="10" class="form-control"style="resize:none" disabled></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Biaya Parkir Per Motor</label>
|
||||
<input type="text" id="biaya_motor" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="luas">Biaya Parkir Per Mobil</label>
|
||||
<input type="text" id="biaya_mobil" class="form-control" disabled>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<br>
|
||||
<div id="div_map" style="display: none;">
|
||||
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
<?php $this->load->view('tukang_parkir/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
|
||||
<!-- <script src="<?= base_url() ?>assets/cluster.js"></script> -->
|
||||
<script>
|
||||
// import { MarkerClusterer } from "https://cdn.skypack.dev/@googlemaps/markerclusterer@2.0.3";
|
||||
var map = new google.maps.Map(document.getElementById('map'), {
|
||||
zoom: 12,
|
||||
center: {
|
||||
lat: -4.012433155366426,
|
||||
lng: 119.62193318059713
|
||||
},
|
||||
});
|
||||
|
||||
var marker_parkir;
|
||||
var markers = [];
|
||||
var polygon_parkir;
|
||||
var polygons = [];
|
||||
var infowindow
|
||||
|
||||
function get_kabupaten() {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kabupaten_maps') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
let map_data = data.data;
|
||||
// console.log(map_data[0])
|
||||
var bound = new google.maps.LatLngBounds();
|
||||
for (let i = 0; i < map_data.length; i++) {
|
||||
let map_1 = map_data[i].kordinat;
|
||||
let polygon = [];
|
||||
|
||||
for (let i = 0; i < map_1.length; i++) {
|
||||
// map_1[i].lng value return like 119.62361145
|
||||
// map_1[i].lat value return like -4.00000000
|
||||
// push value to polygon array
|
||||
polygon.push({
|
||||
lat: parseFloat(map_1[i].lat),
|
||||
lng: parseFloat(map_1[i].lng)
|
||||
});
|
||||
}
|
||||
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
show_polygon.setMap(map);
|
||||
|
||||
for (var j = 0; j < polygon.length; j++) {
|
||||
bound.extend(polygon[j]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
map.fitBounds(bound);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
get_kabupaten();
|
||||
|
||||
async function get_data_tukang_parkir() {
|
||||
try {
|
||||
const data = await $.ajax({
|
||||
url: "<?php echo base_url('api/data_tukang_parkir') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
async: false,
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
}
|
||||
}).responseJSON;
|
||||
// console.log(data);
|
||||
$.unblockUI();
|
||||
|
||||
let detail = data.data;
|
||||
|
||||
// add data to detail
|
||||
$('#nama').val(detail.nama);
|
||||
$('#nik').val(detail.nik);
|
||||
$('#kecamatan').val(data.kecamatan);
|
||||
$('#kelurahan').val(data.kelurahan);
|
||||
$('#luas_input').val(detail.luas + " m2");
|
||||
$('#alamat').val(detail.alamat);
|
||||
$('#biaya_motor').val("Rp. " + detail.biaya_motor);
|
||||
$('#biaya_mobil').val("Rp. " + detail.biaya_mobil);
|
||||
|
||||
marker_parkir = JSON.parse(detail.center);
|
||||
polygon_parkir = JSON.parse(detail.kordinat);
|
||||
console.log(polygon_parkir);
|
||||
console.log(marker_parkir);
|
||||
|
||||
marker = new google.maps.Marker({
|
||||
position: marker_parkir,
|
||||
map: map,
|
||||
title: 'Lahan Parkir'
|
||||
});
|
||||
markers.push(marker);
|
||||
|
||||
infowindow = new google.maps.InfoWindow({
|
||||
content: "Alamat : " + detail.alamat + "<br>Luas : " + detail.luas + " m2<br>Biaya Parkir Motor : " + detail.biaya_motor + "<br>Biaya Parkir Mobil : " + detail.biaya_mobil
|
||||
});
|
||||
|
||||
marker.addListener("click", () => {
|
||||
|
||||
infowindow.open(map, marker);
|
||||
});
|
||||
|
||||
marker.setMap(map);
|
||||
} catch (error) {
|
||||
alert("Gagal mengambil data tukang parkir");
|
||||
}
|
||||
}
|
||||
get_data_tukang_parkir();
|
||||
|
||||
google.maps.event.addListener(map, 'zoom_changed', function() {
|
||||
let zoomLevel = map.getZoom();
|
||||
console.log(zoomLevel);
|
||||
if(zoomLevel > 15){
|
||||
// clear all marker on map
|
||||
markers.forEach(function(marker) {
|
||||
marker.setMap(null);
|
||||
});
|
||||
markers = [];
|
||||
var polygon = new google.maps.Polygon({
|
||||
paths: polygon_parkir,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 2,
|
||||
fillColor: '#FF0000',
|
||||
fillOpacity: 0.35
|
||||
});
|
||||
|
||||
polygons.push(polygon);
|
||||
|
||||
polygon.addListener("click", () => {
|
||||
|
||||
infowindow.open(map, polygon);
|
||||
});
|
||||
polygon.setMap(map);
|
||||
}else{
|
||||
// clear all polygon on map
|
||||
polygons.forEach(function(polygon) {
|
||||
polygon.setMap(null);
|
||||
});
|
||||
polygons = [];
|
||||
var marker = new google.maps.Marker({
|
||||
position: marker_parkir,
|
||||
map: map,
|
||||
title: 'Lahan Parkir'
|
||||
});
|
||||
markers.push(marker);
|
||||
marker.addListener("click", () => {
|
||||
|
||||
infowindow.open(map, marker);
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
102
application/views/tukang_parkir/login.php
Normal file
102
application/views/tukang_parkir/login.php
Normal file
@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Sistem Parkir Parepare - Halaman Login</title>
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/styles/style.min.css">
|
||||
|
||||
<!-- Waves Effect -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/waves/waves.min.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="single-wrapper">
|
||||
<form onsubmit="login(event)" class="frm-single">
|
||||
<div class="inside">
|
||||
<div class="title"><strong>Sistem Parkir </strong>Parepare</div>
|
||||
<!-- /.title -->
|
||||
<div class="frm-title">Form Login Tukang Parkir</div>
|
||||
<!-- /.frm-title -->
|
||||
<div class="frm-input"><input type="text" placeholder="Username" id="username" name="username" class="frm-inp" required><i class="fa fa-user frm-ico"></i></div>
|
||||
<!-- /.frm-input -->
|
||||
<div class="frm-input"><input type="password" placeholder="Password" class="frm-inp" id="password" name="password" required><i class="fa fa-lock frm-ico"></i></div>
|
||||
|
||||
<button type="submit" class="frm-submit">Login<i class="fa fa-arrow-circle-right"></i></button>
|
||||
|
||||
<a href="<?=base_url()?>user" class="a-link">Kembali Ke Halaman Utama</a>
|
||||
|
||||
<!-- <a href="page-register.html" class="a-link"><i class="fa fa-key"></i>New to NinjaAdmin? Register.</a> -->
|
||||
<div class="frm-footer">Kicap Karan © 2023.</div>
|
||||
<!-- /.footer -->
|
||||
</div>
|
||||
<!-- .inside -->
|
||||
</form>
|
||||
<!-- /.frm-single -->
|
||||
</div><!--/#single-wrapper -->
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="assets/script/html5shiv.min.js"></script>
|
||||
<script src="assets/script/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!--
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="<?=base_url()?>assets/scripts/jquery.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/modernizr.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/nprogress/nprogress.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/waves/waves.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/block/jquery.blockUI.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/main.min.js"></script>
|
||||
<script>
|
||||
function login(e){
|
||||
e.preventDefault();
|
||||
var username = $('#username').val();
|
||||
var password = $('#password').val();
|
||||
|
||||
// ajax
|
||||
$.ajax({
|
||||
url: '<?= base_url('api/login_tukang_parkir') ?>?username='+username+'&password='+password,
|
||||
type: 'GET',
|
||||
dataType: 'JSON',
|
||||
|
||||
beforeSend: function(){
|
||||
// loading
|
||||
$.blockUI({
|
||||
message: 'Login',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data){
|
||||
console.log(data);
|
||||
$.unblockUI();
|
||||
window.location.href = '<?= base_url('tukang_parkir') ?>';
|
||||
},
|
||||
error: function( XMLHttpRequest, textStatus, errorThrown ){
|
||||
console.log( errorThrown );
|
||||
console.log( textStatus );
|
||||
console.log( XMLHttpRequest );
|
||||
$.unblockUI();
|
||||
alert('Username atau Password Salah');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
33
application/views/tukang_parkir/scripts.php
Normal file
33
application/views/tukang_parkir/scripts.php
Normal file
@ -0,0 +1,33 @@
|
||||
<!--/#wrapper -->
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<?=base_url()?>assets/script/html5shiv.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/script/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!--
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="<?=base_url()?>assets/scripts/jquery.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/modernizr.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/nprogress/nprogress.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/waves/waves.min.js"></script>
|
||||
<!-- Full Screen Plugin -->
|
||||
<script src="<?=base_url()?>assets/plugin/fullscreen/jquery.fullscreen-min.js"></script>
|
||||
<script src="<?=base_url()?>assets/block/jquery.blockUI.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
|
||||
|
||||
<script src="<?=base_url()?>assets/scripts/main.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/color-switcher/color-switcher.min.js"></script>
|
||||
|
||||
<script>
|
||||
function logout(){
|
||||
if(confirm("Apakah anda yakin ingin keluar?")){
|
||||
window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
// window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
</script>
|
||||
64
application/views/tukang_parkir/sidebar.php
Normal file
64
application/views/tukang_parkir/sidebar.php
Normal file
@ -0,0 +1,64 @@
|
||||
<div class="main-menu">
|
||||
<header class="header">
|
||||
<a href="index.html" class="logo">Parepare</a>
|
||||
<button type="button" class="button-close fa fa-times js__menu_close"></button>
|
||||
<div class="user">
|
||||
<a href="#" class="avatar"><img src="<?=base_url()?>assets/images/admin.png" alt=""><span class="status online"></span></a>
|
||||
<h5 class="name"><a href="profile.html"><?=$this->session->userdata('nama')?></a></h5>
|
||||
<h5 class="position"><?=$this->session->userdata('nik')?></h5>
|
||||
|
||||
</div>
|
||||
<!-- /.user -->
|
||||
</header>
|
||||
<!-- /.header -->
|
||||
<div class="content">
|
||||
|
||||
<div class="navigation">
|
||||
<h5 class="title">Navigasi</h5>
|
||||
<!-- /.title -->
|
||||
<ul class="menu js__accordion">
|
||||
<li <?php if ($header == 'Area Parkir Parepare') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('tukang_parkir') ?>"><i class="menu-icon fa fa-home"></i><span>Halaman Utama</span></a>
|
||||
</li>
|
||||
<li <?php if ($header == 'Kritik Dan Komen') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('tukang_parkir/kritik') ?>"><i class="menu-icon fa fa-car"></i><span>Kritik Dan Komen</span></a>
|
||||
</li>
|
||||
|
||||
<li <?php if ($header == 'Ganti Password') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('tukang_parkir/password') ?>"><i class="menu-icon fa fa-car"></i><span>Ganti Password</span></a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a class="waves-effect"href="<?= base_url('tukang_parkir/logout') ?>"><i class="menu-icon mdi mdi-logout"></i><span>Logout</span></a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!-- /.navigation -->
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.main-menu -->
|
||||
|
||||
<div class="fixed-navbar">
|
||||
<div class="pull-left">
|
||||
<button type="button" class="menu-mobile-button glyphicon glyphicon-menu-hamburger js__menu_mobile"></button>
|
||||
<h1 class="page-title"><?= $header ?></h1>
|
||||
<!-- /.page-title -->
|
||||
</div>
|
||||
<!-- /.pull-left -->
|
||||
<div class="pull-right">
|
||||
|
||||
<a href="#" class="ico-item fa fa-power-off"></a>
|
||||
</div>
|
||||
<!-- /.pull-right -->
|
||||
</div>
|
||||
8
application/views/user/footer.php
Normal file
8
application/views/user/footer.php
Normal file
@ -0,0 +1,8 @@
|
||||
<footer class="footer">
|
||||
<ul class="list-inline">
|
||||
<li>2023 © Kicap Karan.</li>
|
||||
<li><a href="#">Privacy</a></li>
|
||||
<li><a href="#">Terms</a></li>
|
||||
<li><a href="#">Help</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
28
application/views/user/header.php
Normal file
28
application/views/user/header.php
Normal file
@ -0,0 +1,28 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>Sistem Parkir Parepare - <?=$header?></title>
|
||||
|
||||
<!-- Main Styles -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/styles/style.min.css">
|
||||
|
||||
<!-- mCustomScrollbar -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.min.css">
|
||||
|
||||
<!-- Waves Effect -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/waves/waves.min.css">
|
||||
|
||||
<!-- Sweet Alert -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.css">
|
||||
|
||||
<!-- Color Picker -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/color-switcher/color-switcher.min.css">
|
||||
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/fonts/material-design/css/materialdesignicons.css">
|
||||
|
||||
<!-- Data Tables -->
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/extensions/Responsive/css/responsive.bootstrap.min.css">
|
||||
514
application/views/user/index.php
Normal file
514
application/views/user/index.php
Normal file
@ -0,0 +1,514 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<?php $this->load->view('user/header'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('user/sidebar'); ?>
|
||||
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">Peta Lahan Parkir Parepare</h4>
|
||||
<div class="card-content">
|
||||
<div id="map" style="width: 100%; height: 500px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="box-content card white">
|
||||
<h4 class="box-title">List Area Parkir</h4>
|
||||
<div class="card-content">
|
||||
<div style="overflow-x: auto;">
|
||||
<table id="table_area_parkir" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Alamat</th>
|
||||
<th>Kecamatan</th>
|
||||
<th>Kelurahan</th>
|
||||
<th>Luas Area</th>
|
||||
<th>Biaya Parkir Motor</th>
|
||||
<th>Biaya Parkir Mobil</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view('user/footer'); ?>
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="boostrapModal-1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title" id="myModalLabel">Kritik Dan Komen</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="alamat">Nama</label>
|
||||
<input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan Nama">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="alamat">Kritik Dan Komen</label>
|
||||
<textarea name="kritik" id="kritik" cols="30" rows="10" class="form-control" placeholder="Masukkan Kritik Dan Komen" style="resize:none"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default btn-sm waves-effect waves-light" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="send_kritik()">Send</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view('user/scripts'); ?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=drawing,places,geometry"></script>
|
||||
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
|
||||
<!-- <script src="<?= base_url() ?>assets/cluster.js"></script> -->
|
||||
<script>
|
||||
// import { MarkerClusterer } from "https://cdn.skypack.dev/@googlemaps/markerclusterer@2.0.3";
|
||||
var map = new google.maps.Map(document.getElementById('map'), {
|
||||
zoom: 12,
|
||||
center: {
|
||||
lat: -5.041461,
|
||||
lng: 121.628891
|
||||
},
|
||||
});
|
||||
var markers = [];
|
||||
var markers1 = [];
|
||||
var polygon_parkir = [];
|
||||
var polygon_parkir1 = [];
|
||||
var cluster;
|
||||
var infowindow_data = [];
|
||||
|
||||
var id_parkir_global;
|
||||
|
||||
|
||||
function kritik(id_parkir) {
|
||||
console.log(id_parkir)
|
||||
id_parkir_global = id_parkir;
|
||||
// open the modal
|
||||
|
||||
|
||||
$('#boostrapModal-1').modal('show');
|
||||
}
|
||||
|
||||
|
||||
function send_kritik(){
|
||||
console.log(id_parkir_global)
|
||||
const kritik = $('#kritik').val();
|
||||
const nama = $('#nama').val();
|
||||
|
||||
if(nama == ''){
|
||||
alert('Nama Tidak Boleh Kosong')
|
||||
return false;
|
||||
}
|
||||
|
||||
if(kritik == ''){
|
||||
alert('Kritik dan Komen Tidak Boleh Kosong')
|
||||
return false;
|
||||
}
|
||||
|
||||
// create a yes/no confirm box
|
||||
if (confirm('Apakah Anda Yakin Ingin Mengirim Kritik Dan Komen?')) {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kritik') ?>",
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
id_parkir: id_parkir_global,
|
||||
nama: nama,
|
||||
kritik: kritik
|
||||
},
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
alert(data.message)
|
||||
// close the modal
|
||||
$('#boostrapModal-1').modal('hide');
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error Adding / Update Data');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function get_kabupaten() {
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('api/kabupaten_maps') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
let map_data = data.data;
|
||||
// console.log(map_data[0])
|
||||
var bound = new google.maps.LatLngBounds();
|
||||
for (let i = 0; i < map_data.length; i++) {
|
||||
let map_1 = map_data[i].kordinat;
|
||||
let polygon = [];
|
||||
|
||||
for (let i = 0; i < map_1.length; i++) {
|
||||
// map_1[i].lng value return like 119.62361145
|
||||
// map_1[i].lat value return like -4.00000000
|
||||
// push value to polygon array
|
||||
polygon.push({
|
||||
lat: parseFloat(map_1[i].lat),
|
||||
lng: parseFloat(map_1[i].lng)
|
||||
});
|
||||
}
|
||||
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
show_polygon.setMap(map);
|
||||
|
||||
for (var j = 0; j < polygon.length; j++) {
|
||||
bound.extend(polygon[j]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
map.fitBounds(bound);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
get_kabupaten();
|
||||
|
||||
|
||||
async function get_marker_parkir() {
|
||||
try {
|
||||
const data = await $.ajax({
|
||||
url: "<?php echo base_url('api/area_parkir') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
async: false,
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
}
|
||||
}).responseJSON;
|
||||
$.unblockUI();
|
||||
// console.log(data.area_parkir.length)
|
||||
let area_parkir = data.data;
|
||||
|
||||
// console.log(area_parkir.length)
|
||||
if (area_parkir.length > 0) {
|
||||
|
||||
|
||||
for (let i = 0; i < area_parkir.length; i++) {
|
||||
let area_parkir_1 = area_parkir[i];
|
||||
// console.log(JSON.parse(area_parkir_1.center))
|
||||
let coordinate = JSON.parse(area_parkir_1.center);
|
||||
let marker = new google.maps.Marker({
|
||||
position: {
|
||||
lat: parseFloat(coordinate.lat),
|
||||
lng: parseFloat(coordinate.lng)
|
||||
},
|
||||
map: map,
|
||||
title: area_parkir_1.alamat,
|
||||
|
||||
});
|
||||
|
||||
markers1.push(marker);
|
||||
var biaya_motor = area_parkir_1.biaya_motor;
|
||||
var biaya_mobil = area_parkir_1.biaya_mobil;
|
||||
let infowindow = new google.maps.InfoWindow({
|
||||
content: "Alamat : " + area_parkir_1.alamat + "<br>Luas : " + area_parkir_1.luas + " m2<br>Biaya Parkir Motor : " + biaya_motor + "<br>Biaya Parkir Mobil : " + biaya_mobil + "<br><br><center><a onclick='kritik(" + area_parkir_1.id_parkir + ")' class='btn btn-primary btn-xs'>Kritik Dan Komen</a></center>"
|
||||
});
|
||||
infowindow_data.push(infowindow);
|
||||
marker.addListener('click', function() {
|
||||
// console.log(area_parkir_1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
infowindow.open(map, marker);
|
||||
});
|
||||
markers.push(marker);
|
||||
}
|
||||
|
||||
// marker cluster
|
||||
cluster = new markerClusterer.MarkerClusterer({
|
||||
map,
|
||||
markers
|
||||
});
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
$.unblockUI();
|
||||
console.log(error)
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get_marker_parkir();
|
||||
|
||||
async function get_polygon_parkir() {
|
||||
try {
|
||||
const data = await $.ajax({
|
||||
url: "<?php echo base_url('api/area_parkir') ?>",
|
||||
type: "GET",
|
||||
dataType: "JSON",
|
||||
async: false,
|
||||
beforeSend: function() {
|
||||
$.blockUI({
|
||||
message: 'Loading...',
|
||||
css: {
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
}
|
||||
}).responseJSON;
|
||||
$.unblockUI();
|
||||
// console.log(data)
|
||||
let area_parkir = data.data;
|
||||
|
||||
// // console.log(area_parkir)
|
||||
if (area_parkir.length > 0) {
|
||||
if (polygon_parkir.length == 0) {
|
||||
for (let i = 0; i < area_parkir.length; i++) {
|
||||
let the_polygon = JSON.parse(area_parkir[i].kordinat);
|
||||
// console.log(the_polygon)
|
||||
|
||||
let polygon = [];
|
||||
for (let i = 0; i < the_polygon.length; i++) {
|
||||
// map_1[i].lng value return like 119.62361145
|
||||
// map_1[i].lat value return like -4.00000000
|
||||
// push value to polygon array
|
||||
polygon.push({
|
||||
lat: parseFloat(the_polygon[i].lat),
|
||||
lng: parseFloat(the_polygon[i].lng)
|
||||
});
|
||||
}
|
||||
polygon_parkir.push(polygon);
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon,
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
polygon_parkir1.push(show_polygon);
|
||||
show_polygon.setMap(map);
|
||||
|
||||
|
||||
// google.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
} catch (error) {
|
||||
$.unblockUI();
|
||||
alert('Error get data from ajax');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get_polygon_parkir();
|
||||
|
||||
google.maps.event.addListener(map, 'zoom_changed', function() {
|
||||
var zoomLevel = map.getZoom();
|
||||
console.log(zoomLevel);
|
||||
if (zoomLevel >= 16) {
|
||||
// console.log('zoom in')
|
||||
console.log(markers.length)
|
||||
for (let i = 0; i < markers.length; i++) {
|
||||
markers[i].setMap(null);
|
||||
}
|
||||
markers = [];
|
||||
// clear all marker
|
||||
// get_polygon_parkir();
|
||||
// for (let i = 0; i < polygon_parkir.length; i++) {
|
||||
// polygon_parkir1[i].setMap(map);
|
||||
// }
|
||||
// console.log(polygon_parkir)
|
||||
for (let i = 0; i < polygon_parkir.length; i++) {
|
||||
let show_polygon = new google.maps.Polygon({
|
||||
paths: polygon_parkir[i],
|
||||
strokeColor: '#FF0000',
|
||||
strokeOpacity: 0.8,
|
||||
strokeWeight: 0.8,
|
||||
// fillColor: '#FF0000',
|
||||
fillOpacity: 0.1
|
||||
});
|
||||
|
||||
show_polygon.setMap(map);
|
||||
polygon_parkir1.push(show_polygon);
|
||||
|
||||
google.maps.event.addListener(show_polygon, 'click', function(event) {
|
||||
// console.log("click polygon")
|
||||
// console.log(event.latLng.lng())
|
||||
console.log(infowindow_data)
|
||||
let infowindow = infowindow_data[i];
|
||||
// console.log(infowindow)
|
||||
|
||||
// get the lat and lng of the point
|
||||
var latLng = event.latLng;
|
||||
// console.log(latLng)
|
||||
infowindow.setPosition(latLng);
|
||||
infowindow.open(map);
|
||||
// infowindow_data.push(infowindow);
|
||||
|
||||
// infowindow.open(map, show_polygon);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// remove cluster
|
||||
cluster.clearMarkers();
|
||||
|
||||
|
||||
}
|
||||
if (zoomLevel < 16) {
|
||||
console.log('zoom out')
|
||||
console.log(markers.length)
|
||||
console.log(markers1.length)
|
||||
if (polygon_parkir1.length > 0) {
|
||||
// clear all polygon
|
||||
for (let i = 0; i < polygon_parkir1.length; i++) {
|
||||
polygon_parkir1[i].setMap(null);
|
||||
}
|
||||
}
|
||||
|
||||
markers = markers1;
|
||||
for (let i = 0; i < markers.length; i++) {
|
||||
markers[i].setMap(map);
|
||||
}
|
||||
// add cluster
|
||||
cluster.addMarkers(markers);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function datatables() {
|
||||
table = $('#table_area_parkir').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [
|
||||
[5, 10, 15, -1],
|
||||
[5, 10, 15, "All"]
|
||||
],
|
||||
"pageLength": 10,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
// "order": [[ 4, 'desc' ]],
|
||||
|
||||
"ajax": {
|
||||
"url": "<?php echo base_url('user/parkir_index'); ?>",
|
||||
"type": "POST",
|
||||
data: {
|
||||
proses: 'table_area_parkir'
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
"columnDefs": [{
|
||||
"targets": [0],
|
||||
"orderable": false,
|
||||
}, ],
|
||||
});
|
||||
}
|
||||
datatables()
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
33
application/views/user/scripts.php
Normal file
33
application/views/user/scripts.php
Normal file
@ -0,0 +1,33 @@
|
||||
<!--/#wrapper -->
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<?=base_url()?>assets/script/html5shiv.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/script/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!--
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="<?=base_url()?>assets/scripts/jquery.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/scripts/modernizr.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/nprogress/nprogress.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/sweet-alert/sweetalert.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/waves/waves.min.js"></script>
|
||||
<!-- Full Screen Plugin -->
|
||||
<script src="<?=base_url()?>assets/plugin/fullscreen/jquery.fullscreen-min.js"></script>
|
||||
<script src="<?=base_url()?>assets/block/jquery.blockUI.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
|
||||
|
||||
<script src="<?=base_url()?>assets/scripts/main.min.js"></script>
|
||||
<script src="<?=base_url()?>assets/color-switcher/color-switcher.min.js"></script>
|
||||
|
||||
<script>
|
||||
function logout(){
|
||||
if(confirm("Apakah anda yakin ingin keluar?")){
|
||||
window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
// window.location.href = "<?=base_url()?>home/logout";
|
||||
}
|
||||
</script>
|
||||
53
application/views/user/sidebar.php
Normal file
53
application/views/user/sidebar.php
Normal file
@ -0,0 +1,53 @@
|
||||
<div class="main-menu">
|
||||
<header class="header">
|
||||
<a href="index.html" class="logo">Parepare</a>
|
||||
<button type="button" class="button-close fa fa-times js__menu_close"></button>
|
||||
<div class="user">
|
||||
<a href="#" class="avatar"><img src="<?=base_url()?>assets/images/admin.png" alt=""><span class="status online"></span></a>
|
||||
<h5 class="name"><a href="#">Pengunjung</a></h5>
|
||||
<h5 class="position">Pengunjung</h5>
|
||||
|
||||
</div>
|
||||
<!-- /.user -->
|
||||
</header>
|
||||
<!-- /.header -->
|
||||
<div class="content">
|
||||
|
||||
<div class="navigation">
|
||||
<h5 class="title">Navigasi</h5>
|
||||
<!-- /.title -->
|
||||
<ul class="menu js__accordion">
|
||||
<li <?php if ($header == 'Area Parkir Parepare') {
|
||||
echo 'class="current"';
|
||||
} ?>>
|
||||
<a class="waves-effect" href="<?= base_url('user') ?>"><i class="menu-icon fa fa-home"></i><span>Halaman Utama</span></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="waves-effect" href="<?= base_url('tukang_parkir/login') ?>" ><i class="menu-icon mdi mdi-login"></i><span>Login Tukang Parkir</span></a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!-- /.navigation -->
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.main-menu -->
|
||||
|
||||
<div class="fixed-navbar">
|
||||
<div class="pull-left">
|
||||
<button type="button" class="menu-mobile-button glyphicon glyphicon-menu-hamburger js__menu_mobile"></button>
|
||||
<h1 class="page-title"><?= $header ?></h1>
|
||||
<!-- /.page-title -->
|
||||
</div>
|
||||
<!-- /.pull-left -->
|
||||
<div class="pull-right">
|
||||
|
||||
<!-- <a href="#" class="ico-item fa fa-power-off"></a> -->
|
||||
</div>
|
||||
<!-- /.pull-right -->
|
||||
</div>
|
||||
89
application/views/welcome_message.php
Executable file
89
application/views/welcome_message.php
Executable file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Welcome to CodeIgniter</title>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
::selection { background-color: #E13300; color: white; }
|
||||
::-moz-selection { background-color: #E13300; color: white; }
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
margin: 40px;
|
||||
font: 13px/20px normal Helvetica, Arial, sans-serif;
|
||||
color: #4F5155;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #003399;
|
||||
background-color: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #D0D0D0;
|
||||
font-size: 19px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 14px 0;
|
||||
padding: 14px 15px 10px 15px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Consolas, Monaco, Courier New, Courier, monospace;
|
||||
font-size: 12px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #D0D0D0;
|
||||
color: #002166;
|
||||
display: block;
|
||||
margin: 14px 0 14px 0;
|
||||
padding: 12px 10px 12px 10px;
|
||||
}
|
||||
|
||||
#body {
|
||||
margin: 0 15px 0 15px;
|
||||
}
|
||||
|
||||
p.footer {
|
||||
text-align: right;
|
||||
font-size: 11px;
|
||||
border-top: 1px solid #D0D0D0;
|
||||
line-height: 32px;
|
||||
padding: 0 10px 0 10px;
|
||||
margin: 20px 0 0 0;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: 10px;
|
||||
border: 1px solid #D0D0D0;
|
||||
box-shadow: 0 0 8px #D0D0D0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
<h1>Welcome to CodeIgniter!</h1>
|
||||
|
||||
<div id="body">
|
||||
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
|
||||
|
||||
<p>If you would like to edit this page you'll find it located at:</p>
|
||||
<code>application/views/welcome_message.php</code>
|
||||
|
||||
<p>The corresponding controller for this page is found at:</p>
|
||||
<code>application/controllers/Welcome.php</code>
|
||||
|
||||
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
|
||||
</div>
|
||||
|
||||
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
2
assets/block/css/aos.css
Normal file
2
assets/block/css/aos.css
Normal file
File diff suppressed because one or more lines are too long
471
assets/block/css/bootstrap-datepicker.css
vendored
Normal file
471
assets/block/css/bootstrap-datepicker.css
vendored
Normal file
@ -0,0 +1,471 @@
|
||||
/*!
|
||||
* Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker)
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
|
||||
*/
|
||||
.datepicker {
|
||||
padding: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
direction: ltr;
|
||||
}
|
||||
.datepicker-inline {
|
||||
width: 220px;
|
||||
}
|
||||
.datepicker.datepicker-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
.datepicker.datepicker-rtl table tr td span {
|
||||
float: right;
|
||||
}
|
||||
.datepicker-dropdown {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.datepicker-dropdown:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #999;
|
||||
border-top: 0;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
}
|
||||
.datepicker-dropdown:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #fff;
|
||||
border-top: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-left:before {
|
||||
left: 6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-left:after {
|
||||
left: 7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-right:before {
|
||||
right: 6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-right:after {
|
||||
right: 7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-bottom:before {
|
||||
top: -7px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-bottom:after {
|
||||
top: -6px;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-top:before {
|
||||
bottom: -7px;
|
||||
border-bottom: 0;
|
||||
border-top: 7px solid #999;
|
||||
}
|
||||
.datepicker-dropdown.datepicker-orient-top:after {
|
||||
bottom: -6px;
|
||||
border-bottom: 0;
|
||||
border-top: 6px solid #fff;
|
||||
}
|
||||
.datepicker table {
|
||||
margin: 0;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.datepicker td,
|
||||
.datepicker th {
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
.table-striped .datepicker table tr td,
|
||||
.table-striped .datepicker table tr th {
|
||||
background-color: transparent;
|
||||
}
|
||||
.datepicker table tr td.day:hover,
|
||||
.datepicker table tr td.day.focused {
|
||||
background: #eee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker table tr td.old,
|
||||
.datepicker table tr td.new {
|
||||
color: #999;
|
||||
}
|
||||
.datepicker table tr td.disabled,
|
||||
.datepicker table tr td.disabled:hover {
|
||||
background: none;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td.highlighted {
|
||||
background: #d9edf7;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.today,
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today.disabled:hover {
|
||||
background-color: #fde19a;
|
||||
background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
|
||||
background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
|
||||
border-color: #fdf59a #fdf59a #fbed50;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today:hover,
|
||||
.datepicker table tr td.today:hover:hover,
|
||||
.datepicker table tr td.today.disabled:hover,
|
||||
.datepicker table tr td.today.disabled:hover:hover,
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active,
|
||||
.datepicker table tr td.today.disabled,
|
||||
.datepicker table tr td.today:hover.disabled,
|
||||
.datepicker table tr td.today.disabled.disabled,
|
||||
.datepicker table tr td.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.today[disabled],
|
||||
.datepicker table tr td.today:hover[disabled],
|
||||
.datepicker table tr td.today.disabled[disabled],
|
||||
.datepicker table tr td.today.disabled:hover[disabled] {
|
||||
background-color: #fdf59a;
|
||||
}
|
||||
.datepicker table tr td.today:active,
|
||||
.datepicker table tr td.today:hover:active,
|
||||
.datepicker table tr td.today.disabled:active,
|
||||
.datepicker table tr td.today.disabled:hover:active,
|
||||
.datepicker table tr td.today.active,
|
||||
.datepicker table tr td.today:hover.active,
|
||||
.datepicker table tr td.today.disabled.active,
|
||||
.datepicker table tr td.today.disabled:hover.active {
|
||||
background-color: #fbf069 \9;
|
||||
}
|
||||
.datepicker table tr td.today:hover:hover {
|
||||
color: #000;
|
||||
}
|
||||
.datepicker table tr td.today.active:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.datepicker table tr td.range,
|
||||
.datepicker table tr td.range:hover,
|
||||
.datepicker table tr td.range.disabled,
|
||||
.datepicker table tr td.range.disabled:hover {
|
||||
background: #eee;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today,
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover {
|
||||
background-color: #f3d17a;
|
||||
background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
|
||||
background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
|
||||
border-color: #f3e97a #f3e97a #edde34;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.datepicker table tr td.range.today:hover,
|
||||
.datepicker table tr td.range.today:hover:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover,
|
||||
.datepicker table tr td.range.today.disabled:hover:hover,
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active,
|
||||
.datepicker table tr td.range.today.disabled,
|
||||
.datepicker table tr td.range.today:hover.disabled,
|
||||
.datepicker table tr td.range.today.disabled.disabled,
|
||||
.datepicker table tr td.range.today.disabled:hover.disabled,
|
||||
.datepicker table tr td.range.today[disabled],
|
||||
.datepicker table tr td.range.today:hover[disabled],
|
||||
.datepicker table tr td.range.today.disabled[disabled],
|
||||
.datepicker table tr td.range.today.disabled:hover[disabled] {
|
||||
background-color: #f3e97a;
|
||||
}
|
||||
.datepicker table tr td.range.today:active,
|
||||
.datepicker table tr td.range.today:hover:active,
|
||||
.datepicker table tr td.range.today.disabled:active,
|
||||
.datepicker table tr td.range.today.disabled:hover:active,
|
||||
.datepicker table tr td.range.today.active,
|
||||
.datepicker table tr td.range.today:hover.active,
|
||||
.datepicker table tr td.range.today.disabled.active,
|
||||
.datepicker table tr td.range.today.disabled:hover.active {
|
||||
background-color: #efe24b \9;
|
||||
}
|
||||
.datepicker table tr td.selected,
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover {
|
||||
background-color: #9e9e9e;
|
||||
background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
|
||||
background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-image: linear-gradient(to bottom, #b3b3b3, #808080);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
|
||||
border-color: #808080 #808080 #595959;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.selected:hover,
|
||||
.datepicker table tr td.selected:hover:hover,
|
||||
.datepicker table tr td.selected.disabled:hover,
|
||||
.datepicker table tr td.selected.disabled:hover:hover,
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active,
|
||||
.datepicker table tr td.selected.disabled,
|
||||
.datepicker table tr td.selected:hover.disabled,
|
||||
.datepicker table tr td.selected.disabled.disabled,
|
||||
.datepicker table tr td.selected.disabled:hover.disabled,
|
||||
.datepicker table tr td.selected[disabled],
|
||||
.datepicker table tr td.selected:hover[disabled],
|
||||
.datepicker table tr td.selected.disabled[disabled],
|
||||
.datepicker table tr td.selected.disabled:hover[disabled] {
|
||||
background-color: #808080;
|
||||
}
|
||||
.datepicker table tr td.selected:active,
|
||||
.datepicker table tr td.selected:hover:active,
|
||||
.datepicker table tr td.selected.disabled:active,
|
||||
.datepicker table tr td.selected.disabled:hover:active,
|
||||
.datepicker table tr td.selected.active,
|
||||
.datepicker table tr td.selected:hover.active,
|
||||
.datepicker table tr td.selected.disabled.active,
|
||||
.datepicker table tr td.selected.disabled:hover.active {
|
||||
background-color: #666666 \9;
|
||||
}
|
||||
.datepicker table tr td.active,
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td.active:hover,
|
||||
.datepicker table tr td.active:hover:hover,
|
||||
.datepicker table tr td.active.disabled:hover,
|
||||
.datepicker table tr td.active.disabled:hover:hover,
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active,
|
||||
.datepicker table tr td.active.disabled,
|
||||
.datepicker table tr td.active:hover.disabled,
|
||||
.datepicker table tr td.active.disabled.disabled,
|
||||
.datepicker table tr td.active.disabled:hover.disabled,
|
||||
.datepicker table tr td.active[disabled],
|
||||
.datepicker table tr td.active:hover[disabled],
|
||||
.datepicker table tr td.active.disabled[disabled],
|
||||
.datepicker table tr td.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td.active:active,
|
||||
.datepicker table tr td.active:hover:active,
|
||||
.datepicker table tr td.active.disabled:active,
|
||||
.datepicker table tr td.active.disabled:hover:active,
|
||||
.datepicker table tr td.active.active,
|
||||
.datepicker table tr td.active:hover.active,
|
||||
.datepicker table tr td.active.disabled.active,
|
||||
.datepicker table tr td.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.datepicker table tr td span:hover,
|
||||
.datepicker table tr td span.focused {
|
||||
background: #eee;
|
||||
}
|
||||
.datepicker table tr td span.disabled,
|
||||
.datepicker table tr td span.disabled:hover {
|
||||
background: none;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
.datepicker table tr td span.active,
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover {
|
||||
background-color: #006dcc;
|
||||
background-image: -moz-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -ms-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc));
|
||||
background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: -o-linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-image: linear-gradient(to bottom, #08c, #0044cc);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
|
||||
border-color: #0044cc #0044cc #002a80;
|
||||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.datepicker table tr td span.active:hover,
|
||||
.datepicker table tr td span.active:hover:hover,
|
||||
.datepicker table tr td span.active.disabled:hover,
|
||||
.datepicker table tr td span.active.disabled:hover:hover,
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active,
|
||||
.datepicker table tr td span.active.disabled,
|
||||
.datepicker table tr td span.active:hover.disabled,
|
||||
.datepicker table tr td span.active.disabled.disabled,
|
||||
.datepicker table tr td span.active.disabled:hover.disabled,
|
||||
.datepicker table tr td span.active[disabled],
|
||||
.datepicker table tr td span.active:hover[disabled],
|
||||
.datepicker table tr td span.active.disabled[disabled],
|
||||
.datepicker table tr td span.active.disabled:hover[disabled] {
|
||||
background-color: #0044cc;
|
||||
}
|
||||
.datepicker table tr td span.active:active,
|
||||
.datepicker table tr td span.active:hover:active,
|
||||
.datepicker table tr td span.active.disabled:active,
|
||||
.datepicker table tr td span.active.disabled:hover:active,
|
||||
.datepicker table tr td span.active.active,
|
||||
.datepicker table tr td span.active:hover.active,
|
||||
.datepicker table tr td span.active.disabled.active,
|
||||
.datepicker table tr td span.active.disabled:hover.active {
|
||||
background-color: #003399 \9;
|
||||
}
|
||||
.datepicker table tr td span.old,
|
||||
.datepicker table tr td span.new {
|
||||
color: #999;
|
||||
}
|
||||
.datepicker .datepicker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.datepicker .datepicker-switch,
|
||||
.datepicker .prev,
|
||||
.datepicker .next,
|
||||
.datepicker tfoot tr th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.datepicker .datepicker-switch:hover,
|
||||
.datepicker .prev:hover,
|
||||
.datepicker .next:hover,
|
||||
.datepicker tfoot tr th:hover {
|
||||
background: #eee;
|
||||
}
|
||||
.datepicker .cw {
|
||||
font-size: 10px;
|
||||
width: 12px;
|
||||
padding: 0 2px 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.input-append.date .add-on,
|
||||
.input-prepend.date .add-on {
|
||||
cursor: pointer;
|
||||
}
|
||||
.input-append.date .add-on i,
|
||||
.input-prepend.date .add-on i {
|
||||
margin-top: 3px;
|
||||
}
|
||||
.input-daterange input {
|
||||
text-align: center;
|
||||
}
|
||||
.input-daterange input:first-child {
|
||||
-webkit-border-radius: 3px 0 0 3px;
|
||||
-moz-border-radius: 3px 0 0 3px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.input-daterange input:last-child {
|
||||
-webkit-border-radius: 0 3px 3px 0;
|
||||
-moz-border-radius: 0 3px 3px 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.input-daterange .add-on {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: 18px;
|
||||
padding: 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
vertical-align: middle;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-datepicker.css.map */
|
||||
7352
assets/block/css/bootstrap.min.css
vendored
Normal file
7352
assets/block/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1723
assets/block/css/bootstrap/bootstrap-grid.css
vendored
Normal file
1723
assets/block/css/bootstrap/bootstrap-grid.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
273
assets/block/css/bootstrap/bootstrap-reboot.css
vendored
Normal file
273
assets/block/css/bootstrap/bootstrap-reboot.css
vendored
Normal file
@ -0,0 +1,273 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v4.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-ms-overflow-style: scrollbar;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
|
||||
|
||||
@-ms-viewport {
|
||||
width: device-width; }
|
||||
|
||||
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
display: block; }
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
text-align: left;
|
||||
background-color: #fff; }
|
||||
|
||||
[tabindex="-1"]:focus {
|
||||
outline: 0 !important; }
|
||||
|
||||
hr {
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible; }
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem; }
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
abbr[title],
|
||||
abbr[data-original-title] {
|
||||
text-decoration: underline;
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
border-bottom: 0; }
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit; }
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0; }
|
||||
|
||||
dt {
|
||||
font-weight: 700; }
|
||||
|
||||
dd {
|
||||
margin-bottom: .5rem;
|
||||
margin-left: 0; }
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem; }
|
||||
|
||||
dfn {
|
||||
font-style: italic; }
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder; }
|
||||
|
||||
small {
|
||||
font-size: 80%; }
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline; }
|
||||
|
||||
sub {
|
||||
bottom: -.25em; }
|
||||
|
||||
sup {
|
||||
top: -.5em; }
|
||||
|
||||
a {
|
||||
color: #0d0cb5;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: objects; }
|
||||
a:hover {
|
||||
color: #08076d;
|
||||
text-decoration: underline; }
|
||||
|
||||
a:not([href]):not([tabindex]) {
|
||||
color: inherit;
|
||||
text-decoration: none; }
|
||||
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||
color: inherit;
|
||||
text-decoration: none; }
|
||||
a:not([href]):not([tabindex]):focus {
|
||||
outline: 0; }
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em; }
|
||||
|
||||
pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
-ms-overflow-style: scrollbar; }
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem; }
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border-style: none; }
|
||||
|
||||
svg {
|
||||
overflow: hidden;
|
||||
vertical-align: middle; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse; }
|
||||
|
||||
caption {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
caption-side: bottom; }
|
||||
|
||||
th {
|
||||
text-align: inherit; }
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
margin-bottom: 0.5rem; }
|
||||
|
||||
button {
|
||||
border-radius: 0; }
|
||||
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color; }
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit; }
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible; }
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none; }
|
||||
|
||||
button,
|
||||
html [type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button; }
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none; }
|
||||
|
||||
input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
padding: 0; }
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
-webkit-appearance: listbox; }
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical; }
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0; }
|
||||
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: .5rem;
|
||||
font-size: 1.5rem;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
white-space: normal; }
|
||||
|
||||
progress {
|
||||
vertical-align: baseline; }
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto; }
|
||||
|
||||
[type="search"] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: none; }
|
||||
|
||||
[type="search"]::-webkit-search-cancel-button,
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none; }
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button; }
|
||||
|
||||
output {
|
||||
display: inline-block; }
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer; }
|
||||
|
||||
template {
|
||||
display: none; }
|
||||
|
||||
[hidden] {
|
||||
display: none !important; }
|
||||
7352
assets/block/css/bootstrap/bootstrap.css
vendored
Normal file
7352
assets/block/css/bootstrap/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
654
assets/block/css/jquery-ui.css
vendored
Normal file
654
assets/block/css/jquery-ui.css
vendored
Normal file
@ -0,0 +1,654 @@
|
||||
/*! jQuery UI - v1.11.4 - 2015-12-03
|
||||
* http://jqueryui.com
|
||||
* Includes: core.css, button.css, slider.css, theme.css
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=gloss_wave&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=inset_hard&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=glass&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=inset_hard&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=flat&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden {
|
||||
display: none;
|
||||
}
|
||||
.ui-helper-hidden-accessible {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
.ui-helper-reset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
line-height: 1.3;
|
||||
text-decoration: none;
|
||||
font-size: 100%;
|
||||
list-style: none;
|
||||
}
|
||||
.ui-helper-clearfix:before,
|
||||
.ui-helper-clearfix:after {
|
||||
content: "";
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.ui-helper-clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
.ui-helper-clearfix {
|
||||
min-height: 0; /* support: IE7 */
|
||||
}
|
||||
.ui-helper-zfix {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled {
|
||||
cursor: default !important;
|
||||
}
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon {
|
||||
display: block;
|
||||
text-indent: -99999px;
|
||||
overflow: hidden;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-button {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
line-height: normal;
|
||||
margin-right: .1em;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
overflow: visible; /* removes extra width in IE */
|
||||
}
|
||||
.ui-button,
|
||||
.ui-button:link,
|
||||
.ui-button:visited,
|
||||
.ui-button:hover,
|
||||
.ui-button:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
/* to make room for the icon, a width needs to be set here */
|
||||
.ui-button-icon-only {
|
||||
width: 2.2em;
|
||||
}
|
||||
/* button elements seem to need a little more width */
|
||||
button.ui-button-icon-only {
|
||||
width: 2.4em;
|
||||
}
|
||||
.ui-button-icons-only {
|
||||
width: 3.4em;
|
||||
}
|
||||
button.ui-button-icons-only {
|
||||
width: 3.7em;
|
||||
}
|
||||
|
||||
/* button text element */
|
||||
.ui-button .ui-button-text {
|
||||
display: block;
|
||||
line-height: normal;
|
||||
}
|
||||
.ui-button-text-only .ui-button-text {
|
||||
padding: .4em 1em;
|
||||
}
|
||||
.ui-button-icon-only .ui-button-text,
|
||||
.ui-button-icons-only .ui-button-text {
|
||||
padding: .4em;
|
||||
text-indent: -9999999px;
|
||||
}
|
||||
.ui-button-text-icon-primary .ui-button-text,
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding: .4em 1em .4em 2.1em;
|
||||
}
|
||||
.ui-button-text-icon-secondary .ui-button-text,
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding: .4em 2.1em .4em 1em;
|
||||
}
|
||||
.ui-button-text-icons .ui-button-text {
|
||||
padding-left: 2.1em;
|
||||
padding-right: 2.1em;
|
||||
}
|
||||
/* no icon support for input elements, provide padding by default */
|
||||
input.ui-button {
|
||||
padding: .4em 1em;
|
||||
}
|
||||
|
||||
/* button icon element(s) */
|
||||
.ui-button-icon-only .ui-icon,
|
||||
.ui-button-text-icon-primary .ui-icon,
|
||||
.ui-button-text-icon-secondary .ui-icon,
|
||||
.ui-button-text-icons .ui-icon,
|
||||
.ui-button-icons-only .ui-icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -8px;
|
||||
}
|
||||
.ui-button-icon-only .ui-icon {
|
||||
left: 50%;
|
||||
margin-left: -8px;
|
||||
}
|
||||
.ui-button-text-icon-primary .ui-button-icon-primary,
|
||||
.ui-button-text-icons .ui-button-icon-primary,
|
||||
.ui-button-icons-only .ui-button-icon-primary {
|
||||
left: .5em;
|
||||
}
|
||||
.ui-button-text-icon-secondary .ui-button-icon-secondary,
|
||||
.ui-button-text-icons .ui-button-icon-secondary,
|
||||
.ui-button-icons-only .ui-button-icon-secondary {
|
||||
right: .5em;
|
||||
}
|
||||
|
||||
/* button sets */
|
||||
.ui-buttonset {
|
||||
margin-right: 7px;
|
||||
}
|
||||
.ui-buttonset .ui-button {
|
||||
margin-left: 0;
|
||||
margin-right: -.3em;
|
||||
}
|
||||
|
||||
/* workarounds */
|
||||
/* reset extra padding in Firefox, see h5bp.com/l */
|
||||
input.ui-button::-moz-focus-inner,
|
||||
button.ui-button::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ui-slider {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
}
|
||||
.ui-slider .ui-slider-handle {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-slider .ui-slider-range {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
font-size: .7em;
|
||||
display: block;
|
||||
border: 0;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
/* support: IE8 - See #6727 */
|
||||
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||
-webkit-filter: inherit;
|
||||
filter: inherit;
|
||||
}
|
||||
|
||||
.ui-slider-horizontal {
|
||||
height: .8em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-handle {
|
||||
top: -.3em;
|
||||
margin-left: -.6em;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range {
|
||||
top: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-min {
|
||||
left: 0;
|
||||
}
|
||||
.ui-slider-horizontal .ui-slider-range-max {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.ui-slider-vertical {
|
||||
width: .8em;
|
||||
height: 100px;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-handle {
|
||||
left: -.3em;
|
||||
margin-left: 0;
|
||||
margin-bottom: -.6em;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-min {
|
||||
bottom: 0;
|
||||
}
|
||||
.ui-slider-vertical .ui-slider-range-max {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget {
|
||||
font-family: Lucida Grande,Lucida Sans,Arial,sans-serif;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.ui-widget .ui-widget {
|
||||
font-size: 1em;
|
||||
}
|
||||
.ui-widget input,
|
||||
.ui-widget select,
|
||||
.ui-widget textarea,
|
||||
.ui-widget button {
|
||||
font-family: Lucida Grande,Lucida Sans,Arial,sans-serif;
|
||||
font-size: 1em;
|
||||
}
|
||||
.ui-widget-content {
|
||||
border: 1px solid #a6c9e2;
|
||||
color: #222222;
|
||||
}
|
||||
.ui-widget-content a {
|
||||
color: #222222;
|
||||
}
|
||||
.ui-widget-header {
|
||||
border: 1px solid #4297d7;
|
||||
background: #5c9ccc url("images/ui-bg_gloss-wave_55_5c9ccc_500x100.png") 50% 50% repeat-x;
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-widget-header a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default,
|
||||
.ui-widget-content .ui-state-default,
|
||||
.ui-widget-header .ui-state-default {
|
||||
border: 1px solid #c5dbec;
|
||||
background: #dfeffc url("images/ui-bg_glass_85_dfeffc_1x400.png") 50% 50% repeat-x;
|
||||
font-weight: bold;
|
||||
color: #2e6e9e;
|
||||
}
|
||||
.ui-state-default a,
|
||||
.ui-state-default a:link,
|
||||
.ui-state-default a:visited {
|
||||
color: #2e6e9e;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-state-hover,
|
||||
.ui-widget-content .ui-state-hover,
|
||||
.ui-widget-header .ui-state-hover,
|
||||
.ui-state-focus,
|
||||
.ui-widget-content .ui-state-focus,
|
||||
.ui-widget-header .ui-state-focus {
|
||||
border: 1px solid #79b7e7;
|
||||
background: #d0e5f5 url("images/ui-bg_glass_75_d0e5f5_1x400.png") 50% 50% repeat-x;
|
||||
font-weight: bold;
|
||||
color: #1d5987;
|
||||
}
|
||||
.ui-state-hover a,
|
||||
.ui-state-hover a:hover,
|
||||
.ui-state-hover a:link,
|
||||
.ui-state-hover a:visited,
|
||||
.ui-state-focus a,
|
||||
.ui-state-focus a:hover,
|
||||
.ui-state-focus a:link,
|
||||
.ui-state-focus a:visited {
|
||||
color: #1d5987;
|
||||
text-decoration: none;
|
||||
}
|
||||
.ui-state-active,
|
||||
.ui-widget-content .ui-state-active,
|
||||
.ui-widget-header .ui-state-active {
|
||||
border: 1px solid #79b7e7;
|
||||
background: #f5f8f9 url("images/ui-bg_inset-hard_100_f5f8f9_1x100.png") 50% 50% repeat-x;
|
||||
font-weight: bold;
|
||||
color: #e17009;
|
||||
}
|
||||
.ui-state-active a,
|
||||
.ui-state-active a:link,
|
||||
.ui-state-active a:visited {
|
||||
color: #e17009;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight,
|
||||
.ui-widget-content .ui-state-highlight,
|
||||
.ui-widget-header .ui-state-highlight {
|
||||
border: 1px solid #fad42e;
|
||||
background: #fbec88;
|
||||
color: #363636;
|
||||
}
|
||||
.ui-state-highlight a,
|
||||
.ui-widget-content .ui-state-highlight a,
|
||||
.ui-widget-header .ui-state-highlight a {
|
||||
color: #363636;
|
||||
}
|
||||
.ui-state-error,
|
||||
.ui-widget-content .ui-state-error,
|
||||
.ui-widget-header .ui-state-error {
|
||||
border: 1px solid #cd0a0a;
|
||||
background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
|
||||
color: #cd0a0a;
|
||||
}
|
||||
.ui-state-error a,
|
||||
.ui-widget-content .ui-state-error a,
|
||||
.ui-widget-header .ui-state-error a {
|
||||
color: #cd0a0a;
|
||||
}
|
||||
.ui-state-error-text,
|
||||
.ui-widget-content .ui-state-error-text,
|
||||
.ui-widget-header .ui-state-error-text {
|
||||
color: #cd0a0a;
|
||||
}
|
||||
.ui-priority-primary,
|
||||
.ui-widget-content .ui-priority-primary,
|
||||
.ui-widget-header .ui-priority-primary {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-priority-secondary,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.ui-icon,
|
||||
.ui-widget-content .ui-icon {
|
||||
background-image: url("images/ui-icons_469bdd_256x240.png");
|
||||
}
|
||||
.ui-widget-header .ui-icon {
|
||||
background-image: url("images/ui-icons_d8e7f3_256x240.png");
|
||||
}
|
||||
.ui-state-default .ui-icon {
|
||||
background-image: url("images/ui-icons_6da8d5_256x240.png");
|
||||
}
|
||||
.ui-state-hover .ui-icon,
|
||||
.ui-state-focus .ui-icon {
|
||||
background-image: url("images/ui-icons_217bc0_256x240.png");
|
||||
}
|
||||
.ui-state-active .ui-icon {
|
||||
background-image: url("images/ui-icons_f9bd01_256x240.png");
|
||||
}
|
||||
.ui-state-highlight .ui-icon {
|
||||
background-image: url("images/ui-icons_2e83ff_256x240.png");
|
||||
}
|
||||
.ui-state-error .ui-icon,
|
||||
.ui-state-error-text .ui-icon {
|
||||
background-image: url("images/ui-icons_cd0a0a_256x240.png");
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-on { background-position: -96px -144px; }
|
||||
.ui-icon-radio-off { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-left,
|
||||
.ui-corner-tl {
|
||||
border-top-left-radius: 5px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-top,
|
||||
.ui-corner-right,
|
||||
.ui-corner-tr {
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-left,
|
||||
.ui-corner-bl {
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
.ui-corner-all,
|
||||
.ui-corner-bottom,
|
||||
.ui-corner-right,
|
||||
.ui-corner-br {
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa;
|
||||
opacity: .3;
|
||||
filter: Alpha(Opacity=30); /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
margin: -8px 0 0 -8px;
|
||||
padding: 8px;
|
||||
background: #aaaaaa;
|
||||
opacity: .3;
|
||||
filter: Alpha(Opacity=30); /* support: IE8 */
|
||||
border-radius: 8px;
|
||||
}
|
||||
351
assets/block/css/magnific-popup.css
Normal file
351
assets/block/css/magnific-popup.css
Normal file
@ -0,0 +1,351 @@
|
||||
/* Magnific Popup CSS */
|
||||
.mfp-bg {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 2042;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
background: #0b0b0b;
|
||||
opacity: 0.8; }
|
||||
|
||||
.mfp-wrap {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 2043;
|
||||
position: fixed;
|
||||
outline: none !important;
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
.mfp-container {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0 8px;
|
||||
box-sizing: border-box; }
|
||||
|
||||
.mfp-container:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle; }
|
||||
|
||||
.mfp-align-top .mfp-container:before {
|
||||
display: none; }
|
||||
|
||||
.mfp-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
z-index: 2045; }
|
||||
|
||||
.mfp-inline-holder .mfp-content,
|
||||
.mfp-ajax-holder .mfp-content {
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-ajax-cur {
|
||||
cursor: progress; }
|
||||
|
||||
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
||||
cursor: -moz-zoom-out;
|
||||
cursor: -webkit-zoom-out;
|
||||
cursor: zoom-out; }
|
||||
|
||||
.mfp-zoom {
|
||||
cursor: pointer;
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in; }
|
||||
|
||||
.mfp-auto-cursor .mfp-content {
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-close,
|
||||
.mfp-arrow,
|
||||
.mfp-preloader,
|
||||
.mfp-counter {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.mfp-loading.mfp-figure {
|
||||
display: none; }
|
||||
|
||||
.mfp-hide {
|
||||
display: none !important; }
|
||||
|
||||
.mfp-preloader {
|
||||
color: #CCC;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
margin-top: -0.8em;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
z-index: 2044; }
|
||||
.mfp-preloader a {
|
||||
color: #CCC; }
|
||||
.mfp-preloader a:hover {
|
||||
color: #FFF; }
|
||||
|
||||
.mfp-s-ready .mfp-preloader {
|
||||
display: none; }
|
||||
|
||||
.mfp-s-error .mfp-content {
|
||||
display: none; }
|
||||
|
||||
button.mfp-close,
|
||||
button.mfp-arrow {
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
z-index: 2046;
|
||||
box-shadow: none;
|
||||
touch-action: manipulation; }
|
||||
|
||||
button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
|
||||
.mfp-close {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
opacity: 0.65;
|
||||
padding: 0 0 18px 10px;
|
||||
color: #FFF;
|
||||
font-style: normal;
|
||||
font-size: 28px;
|
||||
font-family: Arial, Baskerville, monospace; }
|
||||
.mfp-close:hover,
|
||||
.mfp-close:focus {
|
||||
opacity: 1; }
|
||||
.mfp-close:active {
|
||||
top: 1px; }
|
||||
|
||||
.mfp-close-btn-in .mfp-close {
|
||||
color: #333; }
|
||||
|
||||
.mfp-image-holder .mfp-close,
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
color: #FFF;
|
||||
right: -6px;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
width: 100%; }
|
||||
|
||||
.mfp-counter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #CCC;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap; }
|
||||
|
||||
.mfp-arrow {
|
||||
position: absolute;
|
||||
opacity: 0.65;
|
||||
margin: 0;
|
||||
top: 50%;
|
||||
margin-top: -55px;
|
||||
padding: 0;
|
||||
width: 90px;
|
||||
height: 110px;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.mfp-arrow:active {
|
||||
margin-top: -54px; }
|
||||
.mfp-arrow:hover,
|
||||
.mfp-arrow:focus {
|
||||
opacity: 1; }
|
||||
.mfp-arrow:before,
|
||||
.mfp-arrow:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin-top: 35px;
|
||||
margin-left: 35px;
|
||||
border: medium inset transparent; }
|
||||
.mfp-arrow:after {
|
||||
border-top-width: 13px;
|
||||
border-bottom-width: 13px;
|
||||
top: 8px; }
|
||||
.mfp-arrow:before {
|
||||
border-top-width: 21px;
|
||||
border-bottom-width: 21px;
|
||||
opacity: 0.7; }
|
||||
|
||||
.mfp-arrow-left {
|
||||
left: 0; }
|
||||
.mfp-arrow-left:after {
|
||||
border-right: 17px solid #FFF;
|
||||
margin-left: 31px; }
|
||||
.mfp-arrow-left:before {
|
||||
margin-left: 25px;
|
||||
border-right: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-arrow-right {
|
||||
right: 0; }
|
||||
.mfp-arrow-right:after {
|
||||
border-left: 17px solid #FFF;
|
||||
margin-left: 39px; }
|
||||
.mfp-arrow-right:before {
|
||||
border-left: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-iframe-holder {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px; }
|
||||
.mfp-iframe-holder .mfp-content {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
max-width: 900px; }
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
top: -40px; }
|
||||
|
||||
.mfp-iframe-scaler {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-top: 56.25%; }
|
||||
.mfp-iframe-scaler iframe {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #000; }
|
||||
|
||||
/* Main image in popup */
|
||||
img.mfp-img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
line-height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 40px 0 40px;
|
||||
margin: 0 auto; }
|
||||
|
||||
/* The shadow behind the image */
|
||||
.mfp-figure {
|
||||
line-height: 0; }
|
||||
.mfp-figure:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 40px;
|
||||
bottom: 40px;
|
||||
display: block;
|
||||
right: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #444; }
|
||||
.mfp-figure small {
|
||||
color: #BDBDBD;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px; }
|
||||
.mfp-figure figure {
|
||||
margin: 0; }
|
||||
|
||||
.mfp-bottom-bar {
|
||||
margin-top: -36px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-title {
|
||||
text-align: left;
|
||||
line-height: 18px;
|
||||
color: #F3F3F3;
|
||||
word-wrap: break-word;
|
||||
padding-right: 36px; }
|
||||
|
||||
.mfp-image-holder .mfp-content {
|
||||
max-width: 100%; }
|
||||
|
||||
.mfp-gallery .mfp-image-holder .mfp-figure {
|
||||
cursor: pointer; }
|
||||
|
||||
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
||||
/**
|
||||
* Remove all paddings around the image on small screen
|
||||
*/
|
||||
.mfp-img-mobile .mfp-image-holder {
|
||||
padding-left: 0;
|
||||
padding-right: 0; }
|
||||
.mfp-img-mobile img.mfp-img {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-figure:after {
|
||||
top: 0;
|
||||
bottom: 0; }
|
||||
.mfp-img-mobile .mfp-figure small {
|
||||
display: inline;
|
||||
margin-left: 5px; }
|
||||
.mfp-img-mobile .mfp-bottom-bar {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
top: auto;
|
||||
padding: 3px 5px;
|
||||
position: fixed;
|
||||
box-sizing: border-box; }
|
||||
.mfp-img-mobile .mfp-bottom-bar:empty {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-counter {
|
||||
right: 5px;
|
||||
top: 3px; }
|
||||
.mfp-img-mobile .mfp-close {
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
padding: 0; } }
|
||||
|
||||
@media all and (max-width: 900px) {
|
||||
.mfp-arrow {
|
||||
-webkit-transform: scale(0.75);
|
||||
transform: scale(0.75); }
|
||||
.mfp-arrow-left {
|
||||
-webkit-transform-origin: 0;
|
||||
transform-origin: 0; }
|
||||
.mfp-arrow-right {
|
||||
-webkit-transform-origin: 100%;
|
||||
transform-origin: 100%; }
|
||||
.mfp-container {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px; } }
|
||||
773
assets/block/css/mediaelementplayer.css
Normal file
773
assets/block/css/mediaelementplayer.css
Normal file
@ -0,0 +1,773 @@
|
||||
/* Accessibility: hide screen reader texts (and prefer "top" for RTL languages).
|
||||
Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-how/ */
|
||||
.mejs__offscreen {
|
||||
border: 0;
|
||||
clip: rect( 1px, 1px, 1px, 1px );
|
||||
-webkit-clip-path: inset( 50% );
|
||||
clip-path: inset( 50% );
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
.mejs__container {
|
||||
background: #000;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Helvetica', Arial, serif;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
text-indent: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.mejs__container * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Hide native play button and control bar from iOS to favor plugin button */
|
||||
.mejs__container video::-webkit-media-controls,
|
||||
.mejs__container video::-webkit-media-controls-panel,
|
||||
.mejs__container video::-webkit-media-controls-panel-container,
|
||||
.mejs__container video::-webkit-media-controls-start-playback-button {
|
||||
-webkit-appearance: none;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.mejs__fill-container,
|
||||
.mejs__fill-container .mejs__container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__fill-container {
|
||||
background: transparent;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mejs__container:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.mejs__iframe-overlay {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__embed,
|
||||
.mejs__embed body {
|
||||
background: #000;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__fullscreen {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.mejs__container-fullscreen {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mejs__container-fullscreen .mejs__mediaelement,
|
||||
.mejs__container-fullscreen video {
|
||||
height: 100% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Start: LAYERS */
|
||||
.mejs__background {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.mejs__mediaelement {
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.mejs__poster {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
:root .mejs__poster-img {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mejs__poster-img {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.mejs__overlay {
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.mejs__layer {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.mejs__overlay-play {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mejs__overlay-button {
|
||||
background: url('mejs-controls.svg') no-repeat;
|
||||
background-position: 0 -39px;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.mejs__overlay:hover > .mejs__overlay-button {
|
||||
background-position: -80px -39px;
|
||||
}
|
||||
|
||||
.mejs__overlay-loading {
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.mejs__overlay-loading-bg-img {
|
||||
-webkit-animation: mejs__loading-spinner 1s linear infinite;
|
||||
animation: mejs__loading-spinner 1s linear infinite;
|
||||
background: transparent url('mejs-controls.svg') -160px -40px no-repeat;
|
||||
display: block;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@-webkit-keyframes mejs__loading-spinner {
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes mejs__loading-spinner {
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* End: LAYERS */
|
||||
|
||||
/* Start: CONTROL BAR */
|
||||
.mejs__controls {
|
||||
bottom: 0;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
height: 40px;
|
||||
left: 0;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0 10px;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.mejs__controls:not([style*='display: none']) {
|
||||
background: rgba(255, 0, 0, 0.7);
|
||||
background: -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.35));
|
||||
background: linear-gradient(transparent, rgba(0, 0, 0, 0.35));
|
||||
}
|
||||
|
||||
.mejs__button,
|
||||
.mejs__time,
|
||||
.mejs__time-rail {
|
||||
font-size: 10px;
|
||||
height: 40px;
|
||||
line-height: 10px;
|
||||
margin: 0;
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
.mejs__button > button {
|
||||
background: transparent url('mejs-controls.svg');
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
height: 20px;
|
||||
line-height: 0;
|
||||
margin: 10px 6px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-decoration: none;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
/* :focus for accessibility */
|
||||
.mejs__button > button:focus {
|
||||
outline: dotted 1px #999;
|
||||
}
|
||||
|
||||
.mejs__container-keyboard-inactive a,
|
||||
.mejs__container-keyboard-inactive a:focus,
|
||||
.mejs__container-keyboard-inactive button,
|
||||
.mejs__container-keyboard-inactive button:focus,
|
||||
.mejs__container-keyboard-inactive [role=slider],
|
||||
.mejs__container-keyboard-inactive [role=slider]:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* End: CONTROL BAR */
|
||||
|
||||
/* Start: Time (Current / Duration) */
|
||||
.mejs__time {
|
||||
box-sizing: content-box;
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
height: 24px;
|
||||
overflow: hidden;
|
||||
padding: 16px 6px 0;
|
||||
text-align: center;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* End: Time (Current / Duration) */
|
||||
|
||||
/* Start: Play/Pause/Stop */
|
||||
.mejs__play > button {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.mejs__pause > button {
|
||||
background-position: -20px 0;
|
||||
}
|
||||
|
||||
.mejs__replay > button {
|
||||
background-position: -160px 0;
|
||||
}
|
||||
|
||||
/* End: Play/Pause/Stop */
|
||||
|
||||
/* Start: Progress Bar */
|
||||
.mejs__time-rail {
|
||||
direction: ltr;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
height: 40px;
|
||||
margin: 0 10px;
|
||||
padding-top: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mejs__time-total,
|
||||
.mejs__time-buffering,
|
||||
.mejs__time-loaded,
|
||||
.mejs__time-current,
|
||||
.mejs__time-float,
|
||||
.mejs__time-hovered,
|
||||
.mejs__time-float-current,
|
||||
.mejs__time-float-corner,
|
||||
.mejs__time-marker {
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.mejs__time-total {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
margin: 5px 0 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__time-buffering {
|
||||
-webkit-animation: buffering-stripes 2s linear infinite;
|
||||
animation: buffering-stripes 2s linear infinite;
|
||||
background: -webkit-linear-gradient(135deg, rgba(255, 255, 255, 0.4) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.4) 75%, transparent 75%, transparent);
|
||||
background: linear-gradient(-45deg, rgba(255, 255, 255, 0.4) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.4) 75%, transparent 75%, transparent);
|
||||
background-size: 15px 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@-webkit-keyframes buffering-stripes {
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
to {
|
||||
background-position: 30px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes buffering-stripes {
|
||||
from {
|
||||
background-position: 0 0;
|
||||
}
|
||||
to {
|
||||
background-position: 30px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mejs__time-loaded {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.mejs__time-current,
|
||||
.mejs__time-handle-content {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.mejs__time-hovered {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.mejs__time-hovered.negative {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.mejs__time-current,
|
||||
.mejs__time-buffering,
|
||||
.mejs__time-loaded,
|
||||
.mejs__time-hovered {
|
||||
left: 0;
|
||||
-webkit-transform: scaleX(0);
|
||||
-ms-transform: scaleX(0);
|
||||
transform: scaleX(0);
|
||||
-webkit-transform-origin: 0 0;
|
||||
-ms-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transition: 0.15s ease-in all;
|
||||
transition: 0.15s ease-in all;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__time-buffering {
|
||||
-webkit-transform: scaleX(1);
|
||||
-ms-transform: scaleX(1);
|
||||
transform: scaleX(1);
|
||||
}
|
||||
|
||||
.mejs__time-hovered {
|
||||
-webkit-transition: height 0.1s cubic-bezier(0.44, 0, 1, 1);
|
||||
transition: height 0.1s cubic-bezier(0.44, 0, 1, 1);
|
||||
}
|
||||
|
||||
.mejs__time-hovered.no-hover {
|
||||
-webkit-transform: scaleX(0) !important;
|
||||
-ms-transform: scaleX(0) !important;
|
||||
transform: scaleX(0) !important;
|
||||
}
|
||||
|
||||
.mejs__time-handle,
|
||||
.mejs__time-handle-content {
|
||||
border: 4px solid transparent;
|
||||
cursor: pointer;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
.mejs__time-handle-content {
|
||||
border: 4px solid rgba(255, 255, 255, 0.9);
|
||||
border-radius: 50%;
|
||||
height: 10px;
|
||||
left: -7px;
|
||||
top: -4px;
|
||||
-webkit-transform: scale(0);
|
||||
-ms-transform: scale(0);
|
||||
transform: scale(0);
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
.mejs__time-rail:hover .mejs__time-handle-content,
|
||||
.mejs__time-rail .mejs__time-handle-content:focus,
|
||||
.mejs__time-rail .mejs__time-handle-content:active {
|
||||
-webkit-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.mejs__time-float {
|
||||
background: #eee;
|
||||
border: solid 1px #333;
|
||||
bottom: 100%;
|
||||
color: #111;
|
||||
display: none;
|
||||
height: 17px;
|
||||
margin-bottom: 9px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
width: 36px;
|
||||
}
|
||||
|
||||
.mejs__time-float-current {
|
||||
display: block;
|
||||
left: 0;
|
||||
margin: 2px;
|
||||
text-align: center;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.mejs__time-float-corner {
|
||||
border: solid 5px #eee;
|
||||
border-color: #eee transparent transparent;
|
||||
border-radius: 0;
|
||||
display: block;
|
||||
height: 0;
|
||||
left: 50%;
|
||||
line-height: 0;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.mejs__long-video .mejs__time-float {
|
||||
margin-left: -23px;
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
.mejs__long-video .mejs__time-float-current {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.mejs__broadcast {
|
||||
color: #fff;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* End: Progress Bar */
|
||||
|
||||
/* Start: Fullscreen */
|
||||
.mejs__fullscreen-button > button {
|
||||
background-position: -80px 0;
|
||||
}
|
||||
|
||||
.mejs__unfullscreen > button {
|
||||
background-position: -100px 0;
|
||||
}
|
||||
|
||||
/* End: Fullscreen */
|
||||
|
||||
/* Start: Mute/Volume */
|
||||
.mejs__mute > button {
|
||||
background-position: -60px 0;
|
||||
}
|
||||
|
||||
.mejs__unmute > button {
|
||||
background-position: -40px 0;
|
||||
}
|
||||
|
||||
.mejs__volume-button {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mejs__volume-button > .mejs__volume-slider {
|
||||
-webkit-backface-visibility: hidden;
|
||||
background: rgba(50, 50, 50, 0.7);
|
||||
border-radius: 0;
|
||||
bottom: 100%;
|
||||
display: none;
|
||||
height: 115px;
|
||||
left: 50%;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
width: 25px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.mejs__volume-button:hover {
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
|
||||
.mejs__volume-total {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
height: 100px;
|
||||
left: 50%;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
width: 2px;
|
||||
}
|
||||
|
||||
.mejs__volume-current {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
left: 0;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__volume-handle {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
border-radius: 1px;
|
||||
cursor: ns-resize;
|
||||
height: 6px;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
-webkit-transform: translateX(-50%);
|
||||
-ms-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.mejs__horizontal-volume-slider {
|
||||
display: block;
|
||||
height: 36px;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: 56px;
|
||||
}
|
||||
|
||||
.mejs__horizontal-volume-total {
|
||||
background: rgba(50, 50, 50, 0.8);
|
||||
border-radius: 2px;
|
||||
font-size: 1px;
|
||||
height: 8px;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.mejs__horizontal-volume-current {
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
border-radius: 2px;
|
||||
font-size: 1px;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__horizontal-volume-handle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* End: Mute/Volume */
|
||||
|
||||
/* Start: Track (Captions and Chapters) */
|
||||
.mejs__captions-button,
|
||||
.mejs__chapters-button {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mejs__captions-button > button {
|
||||
background-position: -140px 0;
|
||||
}
|
||||
|
||||
.mejs__chapters-button > button {
|
||||
background-position: -180px 0;
|
||||
}
|
||||
|
||||
.mejs__captions-button > .mejs__captions-selector,
|
||||
.mejs__chapters-button > .mejs__chapters-selector {
|
||||
background: rgba(50, 50, 50, 0.7);
|
||||
border: solid 1px transparent;
|
||||
border-radius: 0;
|
||||
bottom: 100%;
|
||||
margin-right: -43px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: 50%;
|
||||
visibility: visible;
|
||||
width: 86px;
|
||||
}
|
||||
|
||||
.mejs__chapters-button > .mejs__chapters-selector {
|
||||
margin-right: -55px;
|
||||
width: 110px;
|
||||
}
|
||||
|
||||
.mejs__captions-selector-list,
|
||||
.mejs__chapters-selector-list {
|
||||
list-style-type: none !important;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.mejs__captions-selector-list-item,
|
||||
.mejs__chapters-selector-list-item {
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
list-style-type: none !important;
|
||||
margin: 0 0 6px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.mejs__captions-selector-list-item:hover,
|
||||
.mejs__chapters-selector-list-item:hover {
|
||||
background-color: rgb(200, 200, 200) !important;
|
||||
background-color: rgba(255, 255, 255, 0.4) !important;
|
||||
}
|
||||
|
||||
.mejs__captions-selector-input,
|
||||
.mejs__chapters-selector-input {
|
||||
clear: both;
|
||||
float: left;
|
||||
left: -1000px;
|
||||
margin: 3px 3px 0 5px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.mejs__captions-selector-label,
|
||||
.mejs__chapters-selector-label {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
font-size: 10px;
|
||||
line-height: 15px;
|
||||
padding: 4px 10px 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__captions-selected,
|
||||
.mejs__chapters-selected {
|
||||
color: rgba(33, 248, 248, 1);
|
||||
}
|
||||
|
||||
.mejs__captions-translations {
|
||||
font-size: 10px;
|
||||
margin: 0 0 5px;
|
||||
}
|
||||
|
||||
.mejs__captions-layer {
|
||||
bottom: 0;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
left: 0;
|
||||
line-height: 20px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mejs__captions-layer a {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.mejs__captions-layer[lang=ar] {
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.mejs__captions-position {
|
||||
bottom: 15px;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mejs__captions-position-hover {
|
||||
bottom: 35px;
|
||||
}
|
||||
|
||||
.mejs__captions-text,
|
||||
.mejs__captions-text * {
|
||||
background: rgba(20, 20, 20, 0.5);
|
||||
box-shadow: 5px 0 0 rgba(20, 20, 20, 0.5), -5px 0 0 rgba(20, 20, 20, 0.5);
|
||||
padding: 0;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.mejs__container.mejs__hide-cues video::-webkit-media-text-track-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* End: Track (Captions and Chapters) */
|
||||
|
||||
/* Start: Error */
|
||||
.mejs__overlay-error {
|
||||
position: relative;
|
||||
}
|
||||
.mejs__overlay-error > img {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
.mejs__cannotplay,
|
||||
.mejs__cannotplay a {
|
||||
color: #fff;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.mejs__cannotplay {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mejs__cannotplay p,
|
||||
.mejs__cannotplay a {
|
||||
display: inline-block;
|
||||
padding: 0 15px;
|
||||
width: 100%;
|
||||
}
|
||||
/* End: Error */
|
||||
6
assets/block/css/owl.carousel.min.css
vendored
Normal file
6
assets/block/css/owl.carousel.min.css
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Owl Carousel v2.2.1
|
||||
* Copyright 2013-2017 David Deutsch
|
||||
* Licensed under ()
|
||||
*/
|
||||
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
|
||||
15
assets/block/css/owl.theme.default.min.css
vendored
Normal file
15
assets/block/css/owl.theme.default.min.css
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Owl Carousel v2.2.1
|
||||
* Copyright 2013-2017 David Deutsch
|
||||
* Licensed under ()
|
||||
*/
|
||||
.owl-theme .owl-dots,
|
||||
.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}
|
||||
.owl-theme .owl-nav{margin-top:10px}
|
||||
.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px;position: absolute;}
|
||||
.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}
|
||||
.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}
|
||||
.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}
|
||||
.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}
|
||||
.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}
|
||||
.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}
|
||||
1702
assets/block/css/style.css
Normal file
1702
assets/block/css/style.css
Normal file
File diff suppressed because it is too large
Load Diff
1
assets/block/fonts/flaticon/backup.txt
Normal file
1
assets/block/fonts/flaticon/backup.txt
Normal file
@ -0,0 +1 @@
|
||||
eyIxIjp7IklEIjoxLCJuYW1lIjoiTXkgaWNvbnMgY29sbGVjdGlvbiIsImJvb2ttYXJrX2lkIjoiaDR0NjQzbjFrOWQwMDAwMCIsImNyZWF0ZWQiOm51bGwsInVwZGF0ZWQiOjE1NDk4ODU2MjgsImFjdGl2ZSI6MSwic291cmNlIjoibG9jYWwiLCJvcmRlciI6MCwiY29sb3IiOiIwMDAwMDAiLCJzdGF0dXMiOjF9LCJoNHQ2NDNuMWs5ZDAwMDAwIjpbeyJpZCI6MTQyMTEyMiwidGVhbSI6MCwibmFtZSI6Imd1aXRhciIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjN9LHsiaWQiOjExMjU0NiwidGVhbSI6MCwibmFtZSI6ImhvdXNlIiwiY29sb3IiOiIjMDAwMDAwIiwicHJlbWl1bSI6MCwic29ydCI6Mn0seyJpZCI6MTUwOTk5NiwidGVhbSI6MCwibmFtZSI6Imd5bSIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjR9LHsiaWQiOjEwMDgwMTAsInRlYW0iOjAsIm5hbWUiOiJzaG9wcGluZy1iYWciLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0Ijo1fSx7ImlkIjoxNDg4NjMwLCJ0ZWFtIjowLCJuYW1lIjoiY29ja3RhaWwiLCJjb2xvciI6IiMwMDAwMDAiLCJwcmVtaXVtIjowLCJzb3J0Ijo2fSx7ImlkIjo2NjY0MiwidGVhbSI6MCwibmFtZSI6Im1leGljYW4tdGFjbyIsImNvbG9yIjoiIzAwMDAwMCIsInByZW1pdW0iOjAsInNvcnQiOjF9XX0=
|
||||
BIN
assets/block/fonts/flaticon/font/Flaticon.eot
Normal file
BIN
assets/block/fonts/flaticon/font/Flaticon.eot
Normal file
Binary file not shown.
102
assets/block/fonts/flaticon/font/Flaticon.svg
Normal file
102
assets/block/fonts/flaticon/font/Flaticon.svg
Normal file
@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<!--
|
||||
2019-2-11: Created with FontForge (http://fontforge.org)
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
||||
<metadata>
|
||||
Created by FontForge 20170731 at Mon Feb 11 11:47:16 2019
|
||||
By root
|
||||
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="Flaticon" horiz-adv-x="512" >
|
||||
<font-face
|
||||
font-family="Flaticon"
|
||||
font-weight="400"
|
||||
font-stretch="normal"
|
||||
units-per-em="512"
|
||||
panose-1="2 0 5 3 0 0 0 0 0 0"
|
||||
ascent="448"
|
||||
descent="-64"
|
||||
bbox="-0.000785705 -64 513.002 448"
|
||||
underline-thickness="25.6"
|
||||
underline-position="-51.2"
|
||||
unicode-range="U+0020-F105"
|
||||
/>
|
||||
<missing-glyph />
|
||||
<glyph glyph-name="space" unicode=" " horiz-adv-x="200"
|
||||
/>
|
||||
<glyph glyph-name="004-gym" unicode=""
|
||||
d="M497.973 324.271c8.30176 0 15.0293 -6.72852 15.0293 -15.0303c0 -8.30078 -6.72754 -15.0293 -15.0293 -15.0293h-25.3115v-35.4951c0 -23.9248 -19.4639 -43.3926 -43.3926 -43.3926h-13.6367c-2.50488 -21.5615 -20.8682 -38.3564 -43.0918 -38.3564
|
||||
c-23.9297 0 -43.3936 19.4678 -43.3936 43.3975v73.8467h-145.612v-73.8467c0 -23.9297 -19.4678 -43.3975 -43.3975 -43.3975c-22.2188 0 -40.583 16.7949 -43.0918 38.3564h-13.6357c-23.9297 0 -43.3936 19.4678 -43.3936 43.3965v35.4912h-24.9863
|
||||
c-8.30176 0 -15.0293 6.72852 -15.0293 15.0293c0 8.30176 6.72754 15.0303 15.0293 15.0303h24.9863v35.4912c0 23.9287 19.4639 43.3926 43.3936 43.3926h13.334v0.947266c0 23.9297 19.4678 43.3975 43.3936 43.3975c23.9297 0 43.3975 -19.4678 43.3975 -43.3975
|
||||
v-79.8311h145.608v79.835c0 23.9258 19.4678 43.3936 43.3975 43.3936c23.9258 0 43.3936 -19.4678 43.3936 -43.3936v-0.947266h13.335c23.9287 0 43.3926 -19.4678 43.3926 -43.3965v-35.4912h25.3115zM70.0742 258.72c0 -7.35352 5.98047 -13.3379 13.335 -13.3379
|
||||
h13.334v127.718h-13.334c-7.35449 0 -13.335 -5.98438 -13.335 -13.3379v-101.042zM153.476 220.364v183.737c0 7.35449 -5.98438 13.3389 -13.3389 13.3389c-7.34961 0 -13.334 -5.98438 -13.334 -13.3389v-183.737c0 -7.35449 5.98438 -13.335 13.334 -13.335
|
||||
c7.35449 0 13.3389 5.98047 13.3389 13.335zM372.54 207.029c7.35449 0 13.335 5.98047 13.335 13.335v183.737c0 7.35449 -5.98047 13.3389 -13.335 13.3389s-13.335 -5.98438 -13.335 -13.3389v-183.737c0 -7.35449 5.98047 -13.335 13.335 -13.335zM442.603 258.72
|
||||
v101.042c0 7.35352 -5.98047 13.334 -13.334 13.334h-13.335v-127.714h13.335c7.35352 0 13.334 5.98438 13.334 13.3379zM442.603 258.72z" />
|
||||
<glyph glyph-name="005-shopping-bag" unicode=""
|
||||
d="M458.737 25.7822c1.77148 -23.1143 -6.23242 -46.0859 -21.958 -63.0654c-15.7275 -16.9785 -38.0215 -26.7168 -61.1631 -26.7168h-239.231c-23.1426 0 -45.4355 9.73926 -61.1621 26.7168c-15.7256 16.9785 -23.7305 39.9512 -21.9609 63.0264l22.8721 288.193
|
||||
c1.41992 18.5244 17.1191 33.0645 35.7363 33.0645h45.1621v2.03027c0 54.5713 44.3965 98.9688 98.9688 98.9688s98.9688 -44.3975 98.9688 -98.9688v-2.03027h45.1631c18.6162 0 34.3145 -14.541 35.7393 -33.1025zM187.022 349.031v-2.03027h137.958v2.03027
|
||||
c0 38.0342 -30.9453 68.9785 -68.9795 68.9785s-68.9785 -30.9434 -68.9785 -68.9785zM414.776 -16.9053c10.2168 11.0322 15.2119 25.3633 14.0615 40.3555l-22.8652 288.115c-0.235352 3.07031 -2.7998 5.44531 -5.83984 5.44531h-45.1631v-36.9346
|
||||
c0 -8.28125 -6.71387 -14.9951 -14.9951 -14.9951c-8.28027 0 -14.9941 6.71387 -14.9941 14.9951v36.9346h-137.958v-36.9346c0 -8.28125 -6.71484 -14.9951 -14.9951 -14.9951c-8.28125 0 -14.9951 6.71387 -14.9951 14.9951v36.9346h-45.1621
|
||||
c-3.04102 0 -5.60547 -2.37402 -5.83691 -5.40527l-22.8701 -288.195c-1.14844 -14.9521 3.8457 -29.2842 14.0625 -40.3154c10.2188 -11.0293 24.124 -17.1045 39.1602 -17.1045h239.23c15.0361 0 28.9414 6.0752 39.1602 17.1045zM323.556 193.715
|
||||
c5.85645 -5.85547 5.85645 -15.3496 -0.000976562 -21.207l-77.5576 -77.5576c-2.92676 -2.92871 -6.76562 -4.39355 -10.6025 -4.39355c-3.83594 0 -7.67383 1.46582 -10.6016 4.39355l-36.3486 36.3486c-5.85645 5.85645 -5.85645 15.3506 0 21.2061
|
||||
c5.85547 5.85645 15.3506 5.85645 21.2061 0l25.7461 -25.7461l66.9551 66.9561c5.85547 5.85645 15.3506 5.85645 21.2041 0z" />
|
||||
<glyph glyph-name="002-house" unicode=""
|
||||
d="M510.81 187.237c2.99219 -6.50391 0.149414 -14.2021 -6.35352 -17.1982c-13.498 -6.21484 -27.7959 -9.28613 -42.0029 -9.28613c-16.8945 0 -33.6602 4.35156 -48.8213 12.9141c-12.9277 -7.22559 -26.6064 -12.5068 -40.6377 -15.8398v-169.019
|
||||
c0 -7.15918 -5.80371 -12.9629 -12.9629 -12.9629h-347.068c-7.15918 0 -12.9629 5.80371 -12.9629 12.9629v220.322c0 4.06836 1.91113 7.90039 5.15918 10.3486l173.533 130.859c3.67969 2.77637 8.46094 3.30176 12.5938 1.6543
|
||||
c6.06836 3.52539 12.3184 6.59766 18.6924 9.25293l-23.4824 17.709l-165.729 -124.973c-5.7168 -4.31152 -13.8447 -3.1709 -18.1533 2.54395c-4.30957 5.7168 -3.1709 13.8438 2.5459 18.1553l173.533 130.86c4.61816 3.48438 10.9902 3.48438 15.6094 0l46.4209 -35.0049
|
||||
c40.5859 7.86035 83.4941 -0.299805 118.964 -24.3428c49.458 -33.5264 75.5869 -91.9238 68.2119 -150.752c20.3496 -10.8662 44.3711 -11.6797 65.7148 -1.85156c6.50586 2.99219 14.2031 0.148438 17.1963 -6.35352zM207.727 1.77051v93.998h-42.458v-93.998h42.458z
|
||||
M233.652 1.77051v0.00195312h113.416v152.113c-3.56836 -0.242188 -7.14258 -0.366211 -10.7148 -0.366211c-31.0449 0 -62.0391 9.10352 -88.8057 27.2471c-45.5186 30.8574 -71.2979 82.7803 -69.3643 136.72l-152.258 -114.816v-200.899h113.418v106.961
|
||||
c0 7.15918 5.80273 12.9629 12.9619 12.9629h68.3838c7.15918 0 12.9629 -5.80371 12.9629 -12.9629v-106.961zM262.096 202.224c37.7109 -25.5645 85.4824 -29.6621 126.529 -12.0312l-114.222 77.4268c-5.92578 4.0166 -7.47363 12.0771 -3.45703 18.0029
|
||||
s12.0771 7.47168 18.0029 3.45703l114.222 -77.4258c1.17773 44.6582 -20.3203 87.5146 -58.0322 113.077c-41.877 28.3887 -96.1592 30.3193 -139.859 5.40723c-6.95605 -49.8232 14.9414 -99.5293 56.8164 -127.914z" />
|
||||
<glyph glyph-name="006-cocktail" unicode=""
|
||||
d="M497 448c8.28418 0 15 -6.71582 15 -15s-6.71582 -15 -15 -15h-37.6436c-13.1621 0 -25.5342 -5.12402 -34.8389 -14.4277c-14.8242 -14.8232 -35.6367 -35.6357 -51.9727 -51.9727h60.1885c6.06543 0 11.5352 -3.65332 13.8574 -9.25977
|
||||
c2.32227 -5.60547 1.03809 -12.0566 -3.25195 -16.3467l-64.2637 -64.2646c-0.00195312 -0.000976562 -0.00292969 -0.00292969 -0.00488281 -0.00488281l-60.207 -60.207c-2.76855 -26.751 -22.291 -48.5986 -47.8633 -54.8477v-91.6836
|
||||
c0 -38.6025 21.4482 -73.3057 55.9727 -90.5693c6.22363 -3.11035 9.49023 -10.0908 7.8916 -16.8623c-1.59961 -6.77051 -7.64258 -11.5537 -14.5996 -11.5537h-128.532c-6.95703 0 -13.001 4.7832 -14.5996 11.5537c-1.59766 6.77051 1.66895 13.752 7.8916 16.8623
|
||||
c34.5264 17.2627 55.9746 51.9658 55.9746 90.5693v91.6836c-25.5723 6.24902 -45.0947 28.0977 -47.8633 54.8477l-60.207 60.207c-0.00195312 0.000976562 -0.00292969 0.00292969 -0.00488281 0.00488281l-9.22559 9.22656
|
||||
c-13.0146 -8.85254 -28.3564 -13.6221 -44.4316 -13.6221c-43.708 0 -79.2666 35.5586 -79.2666 79.2666s35.5586 79.2666 79.2666 79.2676c38.5781 0 70.791 -27.709 77.8242 -64.2676h173.029c12.7188 12.7207 50.168 50.1719 73.1855 73.1846
|
||||
c14.9678 14.9707 34.874 23.2158 56.0508 23.2158h37.6436zM79.2666 287.333c7.9873 0 15.6875 1.8916 22.5898 5.46484l-33.1953 33.1943c-4.58301 4.58301 -5.41113 11.1357 -3.25195 16.3477c2.32129 5.60645 7.79102 9.25977 13.8574 9.25977h46.9326
|
||||
c-6.36035 19.8555 -24.9941 34.2676 -46.9326 34.2676c-27.166 0 -49.2666 -22.1016 -49.2666 -49.2676s22.1006 -49.2666 49.2666 -49.2666zM275.763 -34c-4.62109 5.01172 -12.624 14.4336 -19.7627 28.0508c-7.14258 -13.626 -15.1523 -23.0498 -19.7627 -28.0508
|
||||
h39.5254zM293.594 218.673l38.6592 38.6602h-152.507l38.6602 -38.6602c2.8125 -2.81152 4.39355 -6.62695 4.39355 -10.6055c0 -18.3066 14.8945 -33.2002 33.2002 -33.2002s33.2002 14.8926 33.2002 33.2002c0 3.97754 1.58105 7.79297 4.39355 10.6055zM362.254 287.333
|
||||
l34.2656 34.2666h-281.038l34.2646 -34.2666h212.508z" />
|
||||
<glyph glyph-name="003-guitar" unicode=""
|
||||
d="M55.4688 -8.53125c-59.8281 59.8281 -77.7773 155.52 -21.207 212.09c31.6719 31.6719 57.418 29.5234 76.2188 27.957c13.6445 -1.14062 19.4922 -1.29297 27.1758 6.38672c8.11328 8.11328 10.6562 15.6211 13.8789 25.125
|
||||
c3.69922 10.9141 7.89453 23.2812 20.582 35.9688c31.4883 31.4883 84.0781 21.2461 123.699 -3.55469l47.4219 47.4219l-10.6055 10.6055c-5.85547 5.85547 -5.85547 15.3516 0 21.207c5.85547 5.85938 15.3516 5.85938 21.207 0l8.26562 -8.26172l14.1367 28.2773
|
||||
l-22.4023 22.4023c-5.85547 5.85938 -5.85547 15.3516 0 21.2109c5.85938 5.85547 15.3555 5.85547 21.2109 0l15.332 -15.3359l8.36719 16.7383c3.33984 6.67578 11.082 9.88281 18.1562 7.51953c44.2969 -14.7617 79.5586 -50.0234 94.3203 -94.3203
|
||||
c2.36328 -7.07812 -0.84375 -14.8164 -7.51953 -18.1562l-16.7383 -8.36719l15.3359 -15.332c5.85547 -5.85938 5.85547 -15.3516 0 -21.2109c-5.85938 -5.85547 -15.3555 -5.85547 -21.2109 0l-22.4023 22.4023l-28.2773 -14.1367l8.26172 -8.26562
|
||||
c5.85938 -5.85547 5.85938 -15.3516 0 -21.207c-5.85547 -5.85547 -15.3516 -5.85547 -21.207 0l-10.6055 10.6055l-47.4219 -47.4219c24.2812 -38.7891 35.543 -91.707 3.55469 -123.699c-12.6875 -12.6875 -25.0469 -16.875 -35.9531 -20.5703
|
||||
c-9.50391 -3.22266 -17.0117 -5.76562 -25.1406 -13.8906c-7.67578 -7.67969 -7.52344 -13.5352 -6.39844 -27.207c1.55078 -18.8086 3.67578 -44.5664 -27.9453 -76.1875c-55.5508 -55.5508 -150.98 -39.9023 -212.09 21.207zM419.441 414.02l-36.2812 -72.5625
|
||||
c-0.71875 -1.4375 -1.66797 -2.75391 -2.80859 -3.89453l-134.609 -134.609c3.43359 -2.23828 6.6875 -4.85156 9.69922 -7.86328c4.27344 -4.27344 7.82031 -9.08203 10.582 -14.2734l135.539 135.535c1.13672 1.14062 2.45312 2.08984 3.89453 2.80859
|
||||
c15.4375 7.71875 58.8164 29.4062 72.5625 36.2812c-11.8828 25.7891 -32.7891 46.6953 -58.5781 58.5781zM234.234 173.883c-11.6953 11.6953 -30.7227 11.6914 -42.418 0c-11.6953 -11.6953 -11.6953 -30.7227 0 -42.418s30.7227 -11.6953 42.418 0
|
||||
s11.6953 30.7227 0 42.418zM55.4688 182.348c-40.9297 -40.9297 -31.418 -117.043 21.207 -169.672c57.5 -57.5 132.816 -58.0625 169.672 -21.207c21.793 21.7969 20.6211 36.0312 19.2617 52.5156c-1.21484 14.7344 -2.72656 33.0703 15.082 50.8789
|
||||
c13.082 13.0781 25.6406 17.3359 36.7266 21.0898c9.29297 3.14844 16.6328 5.63672 24.3672 13.3711c16.0898 16.0898 13.8867 48.3594 -4.23047 80.6055l-65.082 -65.082c-1.6875 -13.0664 -7.57812 -25.1406 -17.0312 -34.5938
|
||||
c-23.3945 -23.3906 -61.4492 -23.3828 -84.8359 0c-23.418 23.418 -23.418 61.4219 0 84.8359c11.6914 11.6914 27.043 17.5352 42.3984 17.543l60.9219 60.918c-32.2461 18.1211 -64.5156 20.3203 -80.6016 4.23438c-7.73828 -7.73828 -10.2305 -15.0859 -13.3828 -24.3906
|
||||
c-3.75781 -11.0781 -8.01562 -23.6367 -21.0781 -36.6992c-17.8281 -17.8281 -36.1523 -16.3008 -50.875 -15.0742c-16.4648 1.375 -30.6836 2.5625 -52.5195 -19.2734zM55.4688 182.348zM161.512 12.6797l-84.832 84.832c-5.85938 5.85938 -5.85938 15.3516 0 21.2109
|
||||
c5.85547 5.85547 15.3516 5.85547 21.207 0l84.8359 -84.8359c5.85547 -5.85547 5.85547 -15.3516 0 -21.207c-5.85938 -5.85938 -15.3516 -5.85938 -21.2109 0zM161.512 12.6797z" />
|
||||
<glyph glyph-name="001-mexican-taco" unicode=""
|
||||
d="M485.523 175.597c15.5508 -33.6094 36.9521 -95.4805 20.6201 -117.126c-8.00098 -10.5986 -11.5537 -9.95312 -22.0361 -9.95312c-2.29492 0 -475.664 0.710938 -475.664 0.710938c-2.3584 0 -4.61035 0.988281 -6.20898 2.72168
|
||||
c-1.59863 1.73438 -2.39941 4.06055 -2.20703 6.41016c1.99414 24.3633 7.55078 60.3291 22.5967 95.3555c-6.56934 5.60156 -21.5859 20.5977 -18.8789 38.7061c1.74121 11.6631 10.3623 21.5176 25.6641 29.374c-5.68457 10.3301 -12.2891 27.8252 -2.89258 42.5635
|
||||
c10.7988 16.9326 26.127 14.626 34.8662 11.8311c6.71973 11.6992 22.957 33.1201 51.793 33.1201c10.6602 0 21.9463 -3.04785 33.6279 -9.07227c10.2217 11.2891 35.9287 35.2588 69.8184 35.2588c8.55859 0 17.3809 -1.32324 24.2402 -2.18457
|
||||
c70.5527 -8.81641 113.589 -27.0947 159.272 -59.5508c38.3936 -27.2725 68.7188 -62.1387 85.3887 -98.165zM17.7256 66.1113l373.951 -0.00292969c-16.6299 46.6973 -43.3623 90.0791 -76.042 123.128c-36.5088 36.9297 -77.5264 57.2676 -115.495 57.2676
|
||||
c-79.125 0 -130.488 -41.0654 -152.169 -79.4961c-1.41602 -2.50684 -2.84766 -5.19629 -4.37891 -8.22363c-1.35059 -2.68164 -2.68457 -5.48145 -3.95801 -8.31836c-13.4395 -29.8799 -19.3467 -61.0273 -21.9082 -84.3545zM427.048 65.8662
|
||||
c7.29492 8.30859 18.9961 25.7188 12.7012 38.2881c-8.12598 16.2471 -30.0947 22.0361 -31.2852 22.3359c-2.8623 0.650391 -5.23145 2.75684 -6.16504 5.62891c-1.13086 3.4834 0.110352 7.29297 3.07227 9.43945c0.155273 0.118164 17.4307 13.2227 11.2158 23.4355
|
||||
c-7.36523 12.0957 -28.5254 9.16113 -28.7334 9.12402c-3.0752 -0.475586 -6.1543 0.765625 -8.0332 3.24023c-1.87891 2.47363 -2.24707 5.77637 -0.956055 8.60547c2.41699 5.37988 7.16797 21.2764 0.129883 29.8545c-8.36133 10.1934 -25.8535 6.06445 -26.0234 6.01953
|
||||
c-2.99512 -0.767578 -6.1748 0.167969 -8.28125 2.43457c-1.61426 1.73633 -2.40234 4.0459 -2.2373 6.34961c-0.290039 3.85254 -4.4502 25.4443 -18.6182 35.9287c-11.8613 8.7793 -33.2344 1.2168 -40.4678 -2.43652
|
||||
c-2.61719 -1.32324 -5.74121 -1.19531 -8.23828 0.34082s-4.02539 4.25488 -4.02539 7.1875l-0.0078125 0.12207c0 0.015625 -0.00195312 0.0283203 -0.00195312 0.0400391c-0.0527344 0.576172 -1.28125 12.8369 -8.97168 24.6357
|
||||
c-9.58496 14.7061 -24.8965 22.1641 -45.5068 22.1641c-35.0381 0 -60.8418 -33.8574 -61.0996 -34.2002c-2.59473 -3.46289 -7.38574 -4.39844 -11.0986 -2.17383c-11.2676 6.75977 -21.7832 10.1875 -31.25 10.1875c-27.5176 0 -39.6719 -29.5693 -39.792 -29.8672
|
||||
c-1.56836 -3.91797 -5.78418 -6.0791 -9.88477 -5.05371c-1.18066 0.294922 -2.35156 0.757812 -3.70508 1.29883c-9.0791 3.60449 -14.2432 3.99707 -19.0342 -3.51758c-6.35742 -9.9707 3.65527 -26.8252 7.66309 -31.9443
|
||||
c1.63867 -2.09375 2.19629 -4.83594 1.50586 -7.40234c-0.69043 -2.56738 -2.54883 -4.6582 -5.01855 -5.64453c-10.3896 -4.15527 -23.0693 -11.0576 -24.46 -20.3652c-1.04883 -7.0127 4.49316 -14.8535 9.77441 -20.2197
|
||||
c1.03613 1.97949 2.04102 3.84082 3.04199 5.61426c14.168 25.1133 35.9746 46.5391 63.0518 61.9609c30.0098 17.0869 65.9131 26.1211 103.829 26.1211c42.5166 0 87.7998 -22.1211 127.507 -62.2803c35.7061 -36.1191 64.6367 -83.8672 81.8975 -135.018
|
||||
c8.71875 -0.0351562 14.2383 -0.142578 17.5059 -0.234375zM494.905 70.8867c3.5293 4.67578 5.96387 31.3262 -24.7109 97.6123c-26.8672 58.0625 -96.9912 120.967 -197.311 141.892c1.46387 -1.86621 2.7666 -3.73242 3.91797 -5.55371
|
||||
c4.89844 -7.75098 7.66797 -15.5186 9.22461 -21.4912c12.1514 4.06055 32.5713 8.08887 47.8594 -3.22656c11.5244 -8.52637 17.8564 -21.1758 21.1387 -30.2852c0.0322266 -0.0898438 1.75391 -4.96387 3.00488 -10.3506
|
||||
c9.48145 0.515625 24.1826 -0.958008 34.0293 -12.959c9.01953 -10.9834 8.28125 -25.291 6.08496 -35.3438c10.5332 -0.733398 24.916 -4.32812 32.8818 -17.415c7.94824 -13.0479 2.43164 -26.3096 -5.19629 -35.7793c10.0225 -4.68555 22.3613 -12.9346 29.0391 -26.2891
|
||||
c8.28613 -16.5703 0.980469 -34.0527 -6.77734 -45.9795c0 0 24.8154 -0.0898438 27.4375 -0.177734c11.8965 -0.394531 15.0908 -0.332031 19.377 5.34668zM277.734 183.94c14.4883 0 26.2744 -11.791 26.2744 -26.2871c0 -14.4883 -11.7861 -26.2744 -26.2744 -26.2744
|
||||
c-14.4873 0 -26.2744 11.7861 -26.2744 26.2744c0 14.4961 11.7871 26.2871 26.2744 26.2871zM277.734 148.267c5.17383 0 9.3877 4.21094 9.3877 9.38672c0 5.18164 -4.21387 9.39941 -9.3877 9.39941c-5.17578 0 -9.38672 -4.21777 -9.38672 -9.39941
|
||||
c0 -5.17578 4.21289 -9.38672 9.38672 -9.38672zM233.015 135.402c14.4854 0 26.2715 -11.792 26.2744 -26.2852c0 -14.4873 -11.7861 -26.2734 -26.2744 -26.2734s-26.2744 11.7861 -26.2744 26.2734c0 14.4932 11.7861 26.2852 26.2744 26.2852zM233.015 99.7305
|
||||
c5.17383 0 9.38379 4.20605 9.38672 9.38672c0 5.18164 -4.21289 9.39746 -9.38672 9.39746c-5.17676 0 -9.3877 -4.21777 -9.3877 -9.39746c0 -5.17871 4.21094 -9.38672 9.3877 -9.38672zM218.286 207.726c14.498 0 26.2891 -11.7861 26.2871 -26.2773
|
||||
c0 -14.4932 -11.792 -26.2871 -26.2871 -26.2842c-14.4883 0 -26.2744 11.791 -26.2744 26.2842c0 14.4912 11.7861 26.2773 26.2744 26.2773zM218.291 172.052c5.18359 0 9.39941 4.21777 9.39941 9.39648c0 5.17676 -4.21777 9.39258 -9.39941 9.39258
|
||||
c-5.17676 0 -9.38672 -4.21875 -9.38672 -9.39258c0 -5.18359 4.20801 -9.39941 9.38672 -9.39648z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/block/fonts/flaticon/font/Flaticon.ttf
Normal file
BIN
assets/block/fonts/flaticon/font/Flaticon.ttf
Normal file
Binary file not shown.
BIN
assets/block/fonts/flaticon/font/Flaticon.woff
Normal file
BIN
assets/block/fonts/flaticon/font/Flaticon.woff
Normal file
Binary file not shown.
BIN
assets/block/fonts/flaticon/font/Flaticon.woff2
Normal file
BIN
assets/block/fonts/flaticon/font/Flaticon.woff2
Normal file
Binary file not shown.
52
assets/block/fonts/flaticon/font/_flaticon.scss
Normal file
52
assets/block/fonts/flaticon/font/_flaticon.scss
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
Flaticon icon font: Flaticon
|
||||
Creation date: 11/02/2019 11:47
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: "Flaticon";
|
||||
src: url("./Flaticon.eot");
|
||||
src: url("./Flaticon.eot?#iefix") format("embedded-opentype"),
|
||||
url("./Flaticon.woff2") format("woff2"),
|
||||
url("./Flaticon.woff") format("woff"),
|
||||
url("./Flaticon.ttf") format("truetype"),
|
||||
url("./Flaticon.svg#Flaticon") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: "Flaticon";
|
||||
src: url("./Flaticon.svg#Flaticon") format("svg");
|
||||
}
|
||||
}
|
||||
|
||||
.fi:before{
|
||||
display: inline-block;
|
||||
font-family: "Flaticon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
line-height: 1;
|
||||
text-decoration: inherit;
|
||||
text-rendering: optimizeLegibility;
|
||||
text-transform: none;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.flaticon-mexican-taco:before { content: "\f100"; }
|
||||
.flaticon-house:before { content: "\f101"; }
|
||||
.flaticon-guitar:before { content: "\f102"; }
|
||||
.flaticon-gym:before { content: "\f103"; }
|
||||
.flaticon-shopping-bag:before { content: "\f104"; }
|
||||
.flaticon-cocktail:before { content: "\f105"; }
|
||||
|
||||
$font-Flaticon-mexican-taco: "\f100";
|
||||
$font-Flaticon-house: "\f101";
|
||||
$font-Flaticon-guitar: "\f102";
|
||||
$font-Flaticon-gym: "\f103";
|
||||
$font-Flaticon-shopping-bag: "\f104";
|
||||
$font-Flaticon-cocktail: "\f105";
|
||||
44
assets/block/fonts/flaticon/font/flaticon.css
Normal file
44
assets/block/fonts/flaticon/font/flaticon.css
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
Flaticon icon font: Flaticon
|
||||
Creation date: 11/02/2019 11:47
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: "Flaticon";
|
||||
src: url("./Flaticon.eot");
|
||||
src: url("./Flaticon.eot?#iefix") format("embedded-opentype"),
|
||||
url("./Flaticon.woff2") format("woff2"),
|
||||
url("./Flaticon.woff") format("woff"),
|
||||
url("./Flaticon.ttf") format("truetype"),
|
||||
url("./Flaticon.svg#Flaticon") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: "Flaticon";
|
||||
src: url("./Flaticon.svg#Flaticon") format("svg");
|
||||
}
|
||||
}
|
||||
|
||||
[class^="flaticon-"]:before, [class*=" flaticon-"]:before,
|
||||
[class^="flaticon-"]:after, [class*=" flaticon-"]:after {
|
||||
font-family: Flaticon;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
|
||||
/* Better Font Rendering =========== */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.flaticon-mexican-taco:before { content: "\f100"; }
|
||||
.flaticon-house:before { content: "\f101"; }
|
||||
.flaticon-guitar:before { content: "\f102"; }
|
||||
.flaticon-gym:before { content: "\f103"; }
|
||||
.flaticon-shopping-bag:before { content: "\f104"; }
|
||||
.flaticon-cocktail:before { content: "\f105"; }
|
||||
485
assets/block/fonts/flaticon/font/flaticon.html
Normal file
485
assets/block/fonts/flaticon/font/flaticon.html
Normal file
@ -0,0 +1,485 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Flaticon icon font: Flaticon
|
||||
Creation date: 11/02/2019 11:47
|
||||
-->
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Flaticon WebFont</title>
|
||||
<link href="http://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="flaticon.css">
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
body {
|
||||
font-family: 'Varela Round', Helvetica, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #222;
|
||||
}
|
||||
a {
|
||||
color: #333;
|
||||
border-bottom: 1px solid #a9fd00;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
* {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
[class^="flaticon-"]:before, [class*=" flaticon-"]:before, [class^="flaticon-"]:after, [class*=" flaticon-"]:after {
|
||||
font-family: Flaticon;
|
||||
font-size: 30px;
|
||||
font-style: normal;
|
||||
margin-left: 20px;
|
||||
color: #333;
|
||||
}
|
||||
.wrapper {
|
||||
max-width: 600px;
|
||||
margin: auto;
|
||||
padding: 0 1em;
|
||||
}
|
||||
.title {
|
||||
font-size: 1.25em;
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
header {
|
||||
text-align: center;
|
||||
background-color: #222;
|
||||
color: #fff;
|
||||
padding: 1em;
|
||||
}
|
||||
header .logo {
|
||||
width: 210px;
|
||||
height: 38px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 1em;
|
||||
border: none;
|
||||
}
|
||||
header strong {
|
||||
font-size: 1.95em;
|
||||
font-weight: bold;
|
||||
vertical-align: middle;
|
||||
margin-top: 5px;
|
||||
display: inline-block;
|
||||
}
|
||||
.demo {
|
||||
margin: 2em auto;
|
||||
line-height: 1.25em;
|
||||
}
|
||||
.demo ul li {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.demo ul li .num {
|
||||
color: #222;
|
||||
border-radius: 20px;
|
||||
display: inline-block;
|
||||
width: 26px;
|
||||
padding: 3px;
|
||||
height: 26px;
|
||||
text-align: center;
|
||||
margin-right: 0.5em;
|
||||
border: 1px solid #222;
|
||||
}
|
||||
.demo ul li code {
|
||||
background-color: #222;
|
||||
border-radius: 4px;
|
||||
padding: 0.25em 0.5em;
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
|
||||
font-weight: lighter;
|
||||
margin-top: 1em;
|
||||
font-size: 0.8em;
|
||||
word-break: break-all;
|
||||
}
|
||||
.demo ul li code.big {
|
||||
padding: 1em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.demo ul li code .red {
|
||||
color: #EF3159;
|
||||
}
|
||||
.demo ul li code .green {
|
||||
color: #ACFF65;
|
||||
}
|
||||
.demo ul li code .yellow {
|
||||
color: #FFFF99;
|
||||
}
|
||||
.demo ul li code .blue {
|
||||
color: #99D3FF;
|
||||
}
|
||||
.demo ul li code .purple {
|
||||
color: #A295FF;
|
||||
}
|
||||
.demo ul li code .dots {
|
||||
margin-top: 0.5em;
|
||||
display: block;
|
||||
}
|
||||
#glyphs {
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 2em 0;
|
||||
text-align: center;
|
||||
}
|
||||
.glyph {
|
||||
display: inline-block;
|
||||
width: 9em;
|
||||
margin: 1em;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
background: #FFF;
|
||||
}
|
||||
.glyph .glyph-icon {
|
||||
padding: 10px;
|
||||
display: block;
|
||||
font-family:"Flaticon";
|
||||
font-size: 64px;
|
||||
line-height: 1;
|
||||
}
|
||||
.glyph .glyph-icon:before {
|
||||
font-size: 64px;
|
||||
color: #222;
|
||||
margin-left: 0;
|
||||
}
|
||||
.class-name {
|
||||
font-size: 0.65em;
|
||||
background-color: #222;
|
||||
color: #fff;
|
||||
border-radius: 4px 4px 0 0;
|
||||
padding: 0.5em;
|
||||
color: #FFFF99;
|
||||
font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
|
||||
}
|
||||
.author-name {
|
||||
font-size: 0.6em;
|
||||
background-color: #fcfcfd;
|
||||
border: 1px solid #DEDEE4;
|
||||
border-top: 0;
|
||||
border-radius: 0 0 4px 4px;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.class-name:last-child {
|
||||
font-size: 10px;
|
||||
color:#888;
|
||||
}
|
||||
.class-name:last-child a {
|
||||
font-size: 10px;
|
||||
color:#555;
|
||||
}
|
||||
.class-name:last-child a:hover {
|
||||
color:#a9fd00;
|
||||
}
|
||||
.glyph > input {
|
||||
display: block;
|
||||
width: 100px;
|
||||
margin: 5px auto;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
cursor: text;
|
||||
}
|
||||
.glyph > input.icon-input {
|
||||
font-family:"Flaticon";
|
||||
font-size: 16px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.attribution .title {
|
||||
margin-top: 2em;
|
||||
}
|
||||
.attribution textarea {
|
||||
background-color: #fcfcfd;
|
||||
padding: 1em;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
border: 1px solid #DEDEE4;
|
||||
border-radius: 4px;
|
||||
resize: none;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
font-size: 0.8em;
|
||||
font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.iconsuse {
|
||||
margin: 2em auto;
|
||||
text-align: center;
|
||||
max-width: 1200px;
|
||||
}
|
||||
.iconsuse:after {
|
||||
content: '';
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.iconsuse .image {
|
||||
float: left;
|
||||
width: 25%;
|
||||
padding: 0 1em;
|
||||
}
|
||||
.iconsuse .image p {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.iconsuse .image span {
|
||||
display: block;
|
||||
font-size: 0.65em;
|
||||
background-color: #222;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
padding: 0.5em;
|
||||
color: #FFFF99;
|
||||
margin-top: 1em;
|
||||
font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
|
||||
}
|
||||
#footer {
|
||||
text-align: center;
|
||||
background-color: #4C5B5C;
|
||||
color: #7c9192;
|
||||
padding: 1em;
|
||||
}
|
||||
#footer a {
|
||||
border: none;
|
||||
color: #a9fd00;
|
||||
font-weight: normal;
|
||||
}
|
||||
@media (max-width: 960px) {
|
||||
.iconsuse .image {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
@media (max-width: 560px) {
|
||||
.iconsuse .image {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="characters-off">
|
||||
|
||||
<header>
|
||||
<a href="https://www.flaticon.com" target="_blank" class="logo">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" viewBox="0 0 560.875 102.036" enable-background="new 0 0 560.875 102.036" xml:space="preserve">
|
||||
<defs>
|
||||
</defs>
|
||||
<g>
|
||||
<g class="letters">
|
||||
<path fill="#ffffff" d="M141.596,29.675c0-3.777,2.985-6.767,6.764-6.767h34.438c3.426,0,6.15,2.728,6.15,6.15
|
||||
c0,3.43-2.724,6.149-6.15,6.149h-27.674v13.091h23.719c3.429,0,6.151,2.724,6.151,6.15c0,3.43-2.723,6.149-6.151,6.149h-23.719
|
||||
v17.574c0,3.773-2.986,6.761-6.764,6.761c-3.779,0-6.764-2.989-6.764-6.761V29.675z"></path>
|
||||
<path fill="#ffffff" d="M193.844,29.149c0-3.781,2.985-6.767,6.764-6.767c3.776,0,6.763,2.985,6.763,6.767v42.957h25.039
|
||||
c3.426,0,6.149,2.726,6.149,6.153c0,3.425-2.723,6.15-6.149,6.15h-31.802c-3.779,0-6.764-2.986-6.764-6.768V29.149z"></path>
|
||||
<path fill="#ffffff" d="M241.891,75.71l21.438-48.407c1.492-3.341,4.215-5.357,7.906-5.357h0.792
|
||||
c3.686,0,6.323,2.017,7.815,5.357l21.439,48.407c0.436,0.967,0.701,1.845,0.701,2.723c0,3.602-2.809,6.501-6.414,6.501
|
||||
c-3.161,0-5.269-1.845-6.499-4.655l-4.132-9.661h-27.059l-4.301,10.102c-1.144,2.631-3.426,4.214-6.237,4.214
|
||||
c-3.517,0-6.24-2.81-6.24-6.325C241.1,77.64,241.451,76.677,241.891,75.71z M279.932,58.666l-8.521-20.297l-8.526,20.297H279.932
|
||||
z"></path>
|
||||
<path fill="#ffffff" d="M314.864,35.387H301.86c-3.429,0-6.239-2.813-6.239-6.238c0-3.429,2.811-6.24,6.239-6.24h39.533
|
||||
c3.426,0,6.237,2.811,6.237,6.24c0,3.425-2.811,6.238-6.237,6.238h-13.001v42.785c0,3.773-2.99,6.761-6.764,6.761
|
||||
c-3.779,0-6.764-2.989-6.764-6.761V35.387z"></path>
|
||||
<path fill="#A9FD00" d="M352.615,29.149c0-3.781,2.985-6.767,6.767-6.767c3.774,0,6.761,2.985,6.761,6.767v49.024
|
||||
c0,3.773-2.987,6.761-6.761,6.761c-3.781,0-6.767-2.989-6.767-6.761V29.149z"></path>
|
||||
<path fill="#A9FD00" d="M374.132,53.836v-0.179c0-17.481,13.178-31.801,32.065-31.801c9.22,0,15.459,2.458,20.557,6.238
|
||||
c1.402,1.054,2.637,2.985,2.637,5.357c0,3.692-2.985,6.59-6.681,6.59c-1.845,0-3.071-0.702-4.044-1.319
|
||||
c-3.776-2.813-7.729-4.393-12.562-4.393c-10.364,0-17.831,8.611-17.831,19.154v0.173c0,10.542,7.291,19.329,17.831,19.329
|
||||
c5.715,0,9.492-1.756,13.359-4.834c1.049-0.874,2.458-1.491,4.039-1.491c3.429,0,6.325,2.813,6.325,6.236
|
||||
c0,2.106-1.056,3.78-2.282,4.834c-5.539,4.834-12.036,7.733-21.878,7.733C387.572,85.464,374.132,71.493,374.132,53.836z"></path>
|
||||
<path fill="#A9FD00" d="M433.009,53.836v-0.179c0-17.481,13.79-31.801,32.766-31.801c18.981,0,32.592,14.143,32.592,31.628v0.173
|
||||
c0,17.483-13.785,31.807-32.769,31.807C446.625,85.464,433.009,71.32,433.009,53.836z M484.224,53.836v-0.179
|
||||
c0-10.539-7.725-19.326-18.626-19.326c-10.893,0-18.449,8.611-18.449,19.154v0.173c0,10.542,7.73,19.329,18.626,19.329
|
||||
C476.676,72.986,484.224,64.378,484.224,53.836z"></path>
|
||||
<path fill="#A9FD00" d="M506.233,29.321c0-3.774,2.99-6.763,6.767-6.763h1.401c3.252,0,5.183,1.583,7.029,3.953l26.093,34.265
|
||||
V29.059c0-3.692,2.99-6.677,6.681-6.677c3.683,0,6.671,2.985,6.671,6.677v48.934c0,3.78-2.987,6.765-6.764,6.765h-0.436
|
||||
c-3.257,0-5.188-1.581-7.034-3.953l-27.056-35.492v32.944c0,3.687-2.985,6.676-6.678,6.676c-3.683,0-6.673-2.989-6.673-6.676
|
||||
V29.321z"></path>
|
||||
</g>
|
||||
<g class="insignia">
|
||||
<path fill="#ffffff" d="M48.372,56.137h12.517l11.156-18.537H37.186L25.688,18.539h57.825L94.668,0H9.271
|
||||
C5.925,0,2.842,1.801,1.198,4.716c-1.644,2.907-1.593,6.482,0.134,9.343l50.38,83.501c1.678,2.781,4.689,4.476,7.938,4.476
|
||||
c3.246,0,6.257-1.695,7.935-4.476l2.898-4.804L48.372,56.137z"></path>
|
||||
<g class="i">
|
||||
<path fill="#A9FD00" d="M93.575,18.539h0.031v0.004l21.652,0.004l2.705-4.488c1.727-2.861,1.778-6.436,0.133-9.343
|
||||
C116.454,1.801,113.371,0,110.026,0h-5.294L93.575,18.539z"></path>
|
||||
<polygon fill="#A9FD00" points="88.291,27.356 64.725,66.486 75.519,84.404 109.942,27.356"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<strong>Font Demo</strong>
|
||||
</header>
|
||||
|
||||
|
||||
<section class="demo wrapper">
|
||||
|
||||
<p class="title">Instructions</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<span class="num">1</span>Copy the "Fonts" files and CSS files to your website CSS folder.
|
||||
</li>
|
||||
<li>
|
||||
<span class="num">2</span>Add the CSS link to your website source code on header.
|
||||
<code class="big">
|
||||
<<span class="red">head</span>>
|
||||
<br/><span class="dots">...</span>
|
||||
<br/><<span class="red">link</span> <span class="green">rel</span>=<span class="yellow">"stylesheet"</span> <span class="green">type</span>=<span class="yellow">"text/css"</span> <span class="green">href</span>=<span class="yellow">"your_website_domain/css_root/flaticon.css"</span>>
|
||||
<br/><span class="dots">...</span>
|
||||
<br/></<span class="red">head</span>>
|
||||
</code>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>
|
||||
<span class="num">3</span>Use the icon class on <code>"<span class="blue">display</span>:<span class="purple"> inline</span>"</code> elements:
|
||||
<br />
|
||||
Use example: <code><<span class="red">i</span> <span class="green">class</span>=<span class="yellow">"flaticon-airplane49"</span>></<span class="red">i</span>></code> or <code><<span class="red">span</span> <span class="green">class</span>=<span class="yellow">"flaticon-airplane49"</span>></<span class="red">span</span>></code>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="glyphs">
|
||||
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-mexican-taco"></div>
|
||||
<div class="class-name">.flaticon-mexican-taco</div>
|
||||
<div class="author-name">Author: <a data-file="001-mexican-taco" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-house"></div>
|
||||
<div class="class-name">.flaticon-house</div>
|
||||
<div class="author-name">Author: <a data-file="002-house" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-guitar"></div>
|
||||
<div class="class-name">.flaticon-guitar</div>
|
||||
<div class="author-name">Author: <a data-file="003-guitar" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-gym"></div>
|
||||
<div class="class-name">.flaticon-gym</div>
|
||||
<div class="author-name">Author: <a data-file="004-gym" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-shopping-bag"></div>
|
||||
<div class="class-name">.flaticon-shopping-bag</div>
|
||||
<div class="author-name">Author: <a data-file="005-shopping-bag" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
<div class="glyph"><div class="glyph-icon flaticon-cocktail"></div>
|
||||
<div class="class-name">.flaticon-cocktail</div>
|
||||
<div class="author-name">Author: <a data-file="006-cocktail" href="http://www.freepik.com">Freepik</a> </div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<section class="attribution wrapper" style="text-align:center;">
|
||||
|
||||
<div class="title">License and attribution:</div><div class="attrDiv">Font generated by <a href="https://www.flaticon.com">flaticon.com</a>. <div><p>Under <a href="http://creativecommons.org/licenses/by/3.0/">CC</a>: <a data-file="001-mexican-taco" href="http://www.freepik.com">Freepik</a></p> </div>
|
||||
</div>
|
||||
<div class="title">Copy the Attribution License:</div>
|
||||
|
||||
<textarea onclick="this.focus();this.select();">Font generated by <a href="https://www.flaticon.com">flaticon.com</a>. <p>Under <a href="http://creativecommons.org/licenses/by/3.0/">CC</a>: <a data-file="001-mexican-taco" href="http://www.freepik.com">Freepik</a></p>
|
||||
</textarea>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="iconsuse">
|
||||
|
||||
<div class="title">Examples:</div>
|
||||
|
||||
<div class="image">
|
||||
<p>
|
||||
<i class="glyph-icon flaticon-mexican-taco"></i>
|
||||
<span><i class="flaticon-mexican-taco"></i></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<p>
|
||||
<i class="glyph-icon flaticon-house"></i>
|
||||
<span><i class="flaticon-house"></i></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<p>
|
||||
<i class="glyph-icon flaticon-guitar"></i>
|
||||
<span><i class="flaticon-guitar"></i></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="image">
|
||||
<p>
|
||||
<i class="glyph-icon flaticon-gym"></i>
|
||||
<span><i class="flaticon-gym"></i></span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<div id="footer">
|
||||
<div>Generated by <a href="https://www.flaticon.com">flaticon.com</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
assets/block/fonts/flaticon/license/license.pdf
Normal file
BIN
assets/block/fonts/flaticon/license/license.pdf
Normal file
Binary file not shown.
7
assets/block/fonts/icomoon/Read Me.txt
Normal file
7
assets/block/fonts/icomoon/Read Me.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures.
|
||||
|
||||
To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts
|
||||
|
||||
You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects.
|
||||
|
||||
You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user