├── .gitignore
├── application
├── .htaccess
├── cache
│ ├── .htaccess
│ └── index.html
├── config
│ ├── autoload.php
│ ├── config.php
│ ├── constants.php
│ ├── database.php
│ ├── doctypes.php
│ ├── foreign_chars.php
│ ├── hooks.php
│ ├── index.html
│ ├── memcached.php
│ ├── migration.php
│ ├── mimes.php
│ ├── profiler.php
│ ├── routes.php
│ ├── smileys.php
│ └── user_agents.php
├── controllers
│ ├── Auth.php
│ ├── Chat.php
│ ├── Dashboard.php
│ ├── Group.php
│ ├── Magazine.php
│ ├── User.php
│ ├── Welcome.php
│ └── index.html
├── core
│ └── index.html
├── helpers
│ ├── index.html
│ └── session_helper.php
├── hooks
│ ├── index.html
│ └── ssl.php
├── index.html
├── language
│ ├── english
│ │ └── index.html
│ └── index.html
├── libraries
│ ├── Template.php
│ └── index.html
├── logs
│ └── index.html
├── models
│ ├── Auth_model.php
│ ├── Chat_model.php
│ ├── Dashboard_model.php
│ ├── Group_model.php
│ ├── Magazine_model.php
│ ├── Segment_model.php
│ ├── User_model.php
│ └── index.html
├── third_party
│ └── index.html
└── views
│ ├── auth
│ └── index.php
│ ├── chat
│ ├── group
│ │ ├── add.php
│ │ ├── chat.php
│ │ └── index.php
│ ├── index.php
│ └── video.php
│ ├── dashboard
│ ├── admin
│ │ └── index.php
│ ├── index.js
│ └── index.php
│ ├── errors
│ ├── cli
│ │ ├── error_404.php
│ │ ├── error_db.php
│ │ ├── error_exception.php
│ │ ├── error_general.php
│ │ ├── error_php.php
│ │ └── index.html
│ ├── html
│ │ ├── error_404.php
│ │ ├── error_db.php
│ │ ├── error_exception.php
│ │ ├── error_general.php
│ │ ├── error_php.php
│ │ └── index.html
│ └── index.html
│ ├── index.html
│ ├── magazine
│ └── index.php
│ ├── register
│ └── index.php
│ ├── template
│ ├── chat.php
│ ├── login_template.php
│ ├── main_template.php
│ └── welcome_template.php
│ ├── test
│ └── index.php
│ ├── user
│ ├── add.php
│ └── setting
│ │ └── index.php
│ ├── welcome
│ └── index.php
│ └── welcome_message.php
├── assets
├── css
│ ├── bootstrap-theme.css
│ ├── bootstrap-theme.css.map
│ ├── bootstrap-theme.min.css
│ ├── bootstrap-theme.min.css.map
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ ├── bootstrap.min.css
│ ├── bootstrap.min.css.map
│ ├── camera.css
│ ├── chat.css
│ ├── chat_admin.css
│ ├── easyrtc.css
│ ├── font-awesome.css
│ ├── font-awesome.min.css
│ ├── ie10-viewport-bug-workaround.css
│ ├── landing.css
│ ├── login
│ │ └── signin.css
│ ├── pretiffy.css
│ ├── signin.css
│ └── theme.css
├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── icons
│ └── favicon.ico
├── images
│ ├── easyrtc_logo.png
│ ├── logo.png
│ └── user_default.png
├── js
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── README.md
│ ├── backup
│ │ └── jquery.min.js
│ ├── bootstrap.js
│ ├── bootstrap.min.js
│ ├── bower.json
│ ├── camera.js
│ ├── chat.js
│ ├── composer.json
│ ├── demo_audio_video_simple.js
│ ├── docs.min.js
│ ├── easyrtc.js
│ ├── gulpfile.js
│ ├── holder.js
│ ├── holder.min.js
│ ├── ie-emulation-modes-warning.js
│ ├── ie10-viewport-bug-workaround.js
│ ├── jquery.min.js
│ ├── latest-v2.js
│ ├── loadAndFilter.js
│ ├── npm.js
│ ├── package.js
│ ├── package.json
│ ├── prettify.js
│ ├── socket.io.js
│ ├── src
│ │ ├── index.js
│ │ ├── lib
│ │ │ ├── color.js
│ │ │ ├── constants.js
│ │ │ ├── dom.js
│ │ │ ├── index.js
│ │ │ ├── renderers
│ │ │ │ ├── canvas.js
│ │ │ │ ├── svg-dom.js
│ │ │ │ └── svg-text.js
│ │ │ ├── scenegraph.js
│ │ │ ├── svg.js
│ │ │ ├── utils.js
│ │ │ └── vendor
│ │ │ │ ├── ondomready.js
│ │ │ │ ├── polyfills.js
│ │ │ │ └── querystring.js
│ │ └── meteor
│ │ │ ├── package.js
│ │ │ └── shim.js
│ └── test
│ │ ├── .gitignore
│ │ ├── detach.html
│ │ ├── holder.js
│ │ ├── image.jpg
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── phantom.js
│ │ ├── renderperf
│ │ ├── .gitignore
│ │ ├── fps.html
│ │ ├── index.html
│ │ ├── releases
│ │ │ └── holder-master
│ │ │ │ └── holder.js
│ │ ├── setup.sh
│ │ └── testcase.html
│ │ └── runner.js
├── less
│ ├── animated.less
│ ├── bordered-pulled.less
│ ├── core.less
│ ├── fixed-width.less
│ ├── font-awesome.less
│ ├── icons.less
│ ├── larger.less
│ ├── list.less
│ ├── mixins.less
│ ├── path.less
│ ├── rotated-flipped.less
│ ├── screen-reader.less
│ ├── stacked.less
│ └── variables.less
└── scss
│ ├── _animated.scss
│ ├── _bordered-pulled.scss
│ ├── _core.scss
│ ├── _fixed-width.scss
│ ├── _icons.scss
│ ├── _larger.scss
│ ├── _list.scss
│ ├── _mixins.scss
│ ├── _path.scss
│ ├── _rotated-flipped.scss
│ ├── _screen-reader.scss
│ ├── _stacked.scss
│ ├── _variables.scss
│ └── font-awesome.scss
├── chatapp.sql
├── composer.json
├── contributing.md
├── index.php
├── js
└── dashboard.js
├── license.txt
├── package.json
├── readme.rst
├── system
├── .htaccess
├── core
│ ├── Benchmark.php
│ ├── CodeIgniter.php
│ ├── Common.php
│ ├── Config.php
│ ├── Controller.php
│ ├── Exceptions.php
│ ├── Hooks.php
│ ├── Input.php
│ ├── Lang.php
│ ├── Loader.php
│ ├── Log.php
│ ├── Model.php
│ ├── Output.php
│ ├── Router.php
│ ├── Security.php
│ ├── URI.php
│ ├── Utf8.php
│ ├── compat
│ │ ├── hash.php
│ │ ├── index.html
│ │ ├── mbstring.php
│ │ ├── password.php
│ │ └── standard.php
│ └── index.html
├── database
│ ├── DB.php
│ ├── DB_cache.php
│ ├── DB_driver.php
│ ├── DB_forge.php
│ ├── DB_query_builder.php
│ ├── DB_result.php
│ ├── DB_utility.php
│ ├── drivers
│ │ ├── cubrid
│ │ │ ├── cubrid_driver.php
│ │ │ ├── cubrid_forge.php
│ │ │ ├── cubrid_result.php
│ │ │ ├── cubrid_utility.php
│ │ │ └── index.html
│ │ ├── ibase
│ │ │ ├── ibase_driver.php
│ │ │ ├── ibase_forge.php
│ │ │ ├── ibase_result.php
│ │ │ ├── ibase_utility.php
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── mssql
│ │ │ ├── index.html
│ │ │ ├── mssql_driver.php
│ │ │ ├── mssql_forge.php
│ │ │ ├── mssql_result.php
│ │ │ └── mssql_utility.php
│ │ ├── mysql
│ │ │ ├── index.html
│ │ │ ├── mysql_driver.php
│ │ │ ├── mysql_forge.php
│ │ │ ├── mysql_result.php
│ │ │ └── mysql_utility.php
│ │ ├── mysqli
│ │ │ ├── index.html
│ │ │ ├── mysqli_driver.php
│ │ │ ├── mysqli_forge.php
│ │ │ ├── mysqli_result.php
│ │ │ └── mysqli_utility.php
│ │ ├── oci8
│ │ │ ├── index.html
│ │ │ ├── oci8_driver.php
│ │ │ ├── oci8_forge.php
│ │ │ ├── oci8_result.php
│ │ │ └── oci8_utility.php
│ │ ├── odbc
│ │ │ ├── index.html
│ │ │ ├── odbc_driver.php
│ │ │ ├── odbc_forge.php
│ │ │ ├── odbc_result.php
│ │ │ └── odbc_utility.php
│ │ ├── pdo
│ │ │ ├── index.html
│ │ │ ├── pdo_driver.php
│ │ │ ├── pdo_forge.php
│ │ │ ├── pdo_result.php
│ │ │ ├── pdo_utility.php
│ │ │ └── subdrivers
│ │ │ │ ├── index.html
│ │ │ │ ├── pdo_4d_driver.php
│ │ │ │ ├── pdo_4d_forge.php
│ │ │ │ ├── pdo_cubrid_driver.php
│ │ │ │ ├── pdo_cubrid_forge.php
│ │ │ │ ├── pdo_dblib_driver.php
│ │ │ │ ├── pdo_dblib_forge.php
│ │ │ │ ├── pdo_firebird_driver.php
│ │ │ │ ├── pdo_firebird_forge.php
│ │ │ │ ├── pdo_ibm_driver.php
│ │ │ │ ├── pdo_ibm_forge.php
│ │ │ │ ├── pdo_informix_driver.php
│ │ │ │ ├── pdo_informix_forge.php
│ │ │ │ ├── pdo_mysql_driver.php
│ │ │ │ ├── pdo_mysql_forge.php
│ │ │ │ ├── pdo_oci_driver.php
│ │ │ │ ├── pdo_oci_forge.php
│ │ │ │ ├── pdo_odbc_driver.php
│ │ │ │ ├── pdo_odbc_forge.php
│ │ │ │ ├── pdo_pgsql_driver.php
│ │ │ │ ├── pdo_pgsql_forge.php
│ │ │ │ ├── pdo_sqlite_driver.php
│ │ │ │ ├── pdo_sqlite_forge.php
│ │ │ │ ├── pdo_sqlsrv_driver.php
│ │ │ │ └── pdo_sqlsrv_forge.php
│ │ ├── postgre
│ │ │ ├── index.html
│ │ │ ├── postgre_driver.php
│ │ │ ├── postgre_forge.php
│ │ │ ├── postgre_result.php
│ │ │ └── postgre_utility.php
│ │ ├── sqlite
│ │ │ ├── index.html
│ │ │ ├── sqlite_driver.php
│ │ │ ├── sqlite_forge.php
│ │ │ ├── sqlite_result.php
│ │ │ └── sqlite_utility.php
│ │ ├── sqlite3
│ │ │ ├── index.html
│ │ │ ├── sqlite3_driver.php
│ │ │ ├── sqlite3_forge.php
│ │ │ ├── sqlite3_result.php
│ │ │ └── sqlite3_utility.php
│ │ └── sqlsrv
│ │ │ ├── index.html
│ │ │ ├── sqlsrv_driver.php
│ │ │ ├── sqlsrv_forge.php
│ │ │ ├── sqlsrv_result.php
│ │ │ └── sqlsrv_utility.php
│ └── index.html
├── fonts
│ ├── index.html
│ └── texb.ttf
├── helpers
│ ├── array_helper.php
│ ├── captcha_helper.php
│ ├── cookie_helper.php
│ ├── date_helper.php
│ ├── directory_helper.php
│ ├── download_helper.php
│ ├── email_helper.php
│ ├── file_helper.php
│ ├── form_helper.php
│ ├── html_helper.php
│ ├── index.html
│ ├── inflector_helper.php
│ ├── language_helper.php
│ ├── number_helper.php
│ ├── path_helper.php
│ ├── security_helper.php
│ ├── smiley_helper.php
│ ├── string_helper.php
│ ├── text_helper.php
│ ├── typography_helper.php
│ ├── url_helper.php
│ └── xml_helper.php
├── index.html
├── language
│ ├── english
│ │ ├── calendar_lang.php
│ │ ├── date_lang.php
│ │ ├── db_lang.php
│ │ ├── email_lang.php
│ │ ├── form_validation_lang.php
│ │ ├── ftp_lang.php
│ │ ├── imglib_lang.php
│ │ ├── index.html
│ │ ├── migration_lang.php
│ │ ├── number_lang.php
│ │ ├── pagination_lang.php
│ │ ├── profiler_lang.php
│ │ ├── unit_test_lang.php
│ │ └── upload_lang.php
│ └── index.html
└── libraries
│ ├── Cache
│ ├── Cache.php
│ ├── drivers
│ │ ├── Cache_apc.php
│ │ ├── Cache_dummy.php
│ │ ├── Cache_file.php
│ │ ├── Cache_memcached.php
│ │ ├── Cache_redis.php
│ │ ├── Cache_wincache.php
│ │ └── index.html
│ └── index.html
│ ├── Calendar.php
│ ├── Cart.php
│ ├── Driver.php
│ ├── Email.php
│ ├── Encrypt.php
│ ├── Encryption.php
│ ├── Form_validation.php
│ ├── Ftp.php
│ ├── Image_lib.php
│ ├── Javascript.php
│ ├── Javascript
│ ├── Jquery.php
│ └── index.html
│ ├── Migration.php
│ ├── Pagination.php
│ ├── Parser.php
│ ├── Profiler.php
│ ├── Session
│ ├── Session.php
│ ├── SessionHandlerInterface.php
│ ├── Session_driver.php
│ ├── drivers
│ │ ├── Session_database_driver.php
│ │ ├── Session_files_driver.php
│ │ ├── Session_memcached_driver.php
│ │ ├── Session_redis_driver.php
│ │ └── index.html
│ └── index.html
│ ├── Table.php
│ ├── Trackback.php
│ ├── Typography.php
│ ├── Unit_test.php
│ ├── Upload.php
│ ├── User_agent.php
│ ├── Xmlrpc.php
│ ├── Xmlrpcs.php
│ ├── Zip.php
│ └── index.html
└── uploads
├── 167003.jpg
├── 5Lns4jE.jpg
├── 5Lns4jE1.jpg
├── Desert.jpg
├── FOD-_ActivityDiagram.jpg
├── Jellyfish.jpg
├── LEMBAR_PENGESAHAN_DOSEN_PEMBIMBING_AGUNG.docx
├── Laporan_v10.pdf
├── Laporan_v101.pdf
├── Laporan_v2.docx
├── Laporan_v21.docx
├── Laporan_v22.docx
├── Laporan_v23.docx
├── Laporan_v24.docx
├── Laporan_v25.docx
├── Laporan_v4.pdf
├── ava.jpg
├── ava1.jpg
├── ava2.jpg
├── ava3.jpg
├── ava4.jpg
├── ava5.jpg
├── avatars
├── 1.png
├── 1501904638307.jpg
├── 167003.jpg
├── FOD-_ActivityDiagram.jpg
├── FOD-_ActivityDiagram1.jpg
├── IMG_0199.JPG
├── IMG_20160109_120132_1_1.jpg
├── YO2jGz3.jpg
├── default.jpeg
├── images.png
├── logo.png
└── logo1.png
├── eromanga_sensei-sagiri_izumi-anime-(17819).jpg
├── eromanga_sensei-sagiri_izumi-anime-(17819)1.jpg
├── eromanga_sensei-sagiri_izumi-anime-(17835).jpg
├── hqdefault.jpg
├── mpdf.pdf
├── phone-call-icon-759235.png
└── starrynight2.jpg
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
3 | application/cache/*
4 | !application/cache/index.html
5 | !application/cache/.htaccess
6 |
7 | application/logs/*
8 | !application/logs/index.html
9 | !application/logs/.htaccess
10 |
11 | composer.lock
12 |
13 | user_guide_src/build/*
14 | user_guide_src/cilexer/build/*
15 | user_guide_src/cilexer/dist/*
16 | user_guide_src/cilexer/pycilexer.egg-info/*
17 | /vendor/
18 |
19 | # IDE Files
20 | #-------------------------
21 | /nbproject/
22 | .idea/*
23 |
24 | ## Sublime Text cache files
25 | *.tmlanguage.cache
26 | *.tmPreferences.cache
27 | *.stTheme.cache
28 | *.sublime-workspace
29 | *.sublime-project
30 | .editorconfig
31 | .phpintel/
32 | user_guide/
--------------------------------------------------------------------------------
/application/.htaccess:
--------------------------------------------------------------------------------
1 | RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2 |
3 |
4 | Require all denied
5 |
6 |
7 | Deny from all
8 |
--------------------------------------------------------------------------------
/application/cache/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | Require all denied
3 |
4 |
5 | Deny from all
6 |
--------------------------------------------------------------------------------
/application/cache/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/config/doctypes.php:
--------------------------------------------------------------------------------
1 | '',
6 | 'xhtml1-strict' => '',
7 | 'xhtml1-trans' => '',
8 | 'xhtml1-frame' => '',
9 | 'xhtml-basic11' => '',
10 | 'html5' => '',
11 | 'html4-strict' => '',
12 | 'html4-trans' => '',
13 | 'html4-frame' => '',
14 | 'mathml1' => '',
15 | 'mathml2' => '',
16 | 'svg10' => '',
17 | 'svg11' => '',
18 | 'svg11-basic' => '',
19 | 'svg11-tiny' => '',
20 | 'xhtml-math-svg-xh' => '',
21 | 'xhtml-math-svg-sh' => '',
22 | 'xhtml-rdfa-1' => '',
23 | 'xhtml-rdfa-2' => ''
24 | );
25 |
--------------------------------------------------------------------------------
/application/config/foreign_chars.php:
--------------------------------------------------------------------------------
1 | 'ae',
14 | '/ö|œ/' => 'oe',
15 | '/ü/' => 'ue',
16 | '/Ä/' => 'Ae',
17 | '/Ü/' => 'Ue',
18 | '/Ö/' => 'Oe',
19 | '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
20 | '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
21 | '/Б/' => 'B',
22 | '/б/' => 'b',
23 | '/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
24 | '/ç|ć|ĉ|ċ|č/' => 'c',
25 | '/Д/' => 'D',
26 | '/д/' => 'd',
27 | '/Ð|Ď|Đ|Δ/' => 'Dj',
28 | '/ð|ď|đ|δ/' => 'dj',
29 | '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E',
30 | '/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e',
31 | '/Ф/' => 'F',
32 | '/ф/' => 'f',
33 | '/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G',
34 | '/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g',
35 | '/Ĥ|Ħ/' => 'H',
36 | '/ĥ|ħ/' => 'h',
37 | '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I',
38 | '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i',
39 | '/Ĵ/' => 'J',
40 | '/ĵ/' => 'j',
41 | '/Ķ|Κ|К/' => 'K',
42 | '/ķ|κ|к/' => 'k',
43 | '/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
44 | '/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
45 | '/М/' => 'M',
46 | '/м/' => 'm',
47 | '/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
48 | '/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
49 | '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
50 | '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
51 | '/П/' => 'P',
52 | '/п/' => 'p',
53 | '/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
54 | '/ŕ|ŗ|ř|ρ|р/' => 'r',
55 | '/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
56 | '/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
57 | '/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T',
58 | '/ț|ţ|ť|ŧ|т/' => 't',
59 | '/Þ|þ/' => 'th',
60 | '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
61 | '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
62 | '/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y',
63 | '/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y',
64 | '/В/' => 'V',
65 | '/в/' => 'v',
66 | '/Ŵ/' => 'W',
67 | '/ŵ/' => 'w',
68 | '/Ź|Ż|Ž|Ζ|З/' => 'Z',
69 | '/ź|ż|ž|ζ|з/' => 'z',
70 | '/Æ|Ǽ/' => 'AE',
71 | '/ß/' => 'ss',
72 | '/IJ/' => 'IJ',
73 | '/ij/' => 'ij',
74 | '/Œ/' => 'OE',
75 | '/ƒ/' => 'f',
76 | '/ξ/' => 'ks',
77 | '/π/' => 'p',
78 | '/β/' => 'v',
79 | '/μ/' => 'm',
80 | '/ψ/' => 'ps',
81 | '/Ё/' => 'Yo',
82 | '/ё/' => 'yo',
83 | '/Є/' => 'Ye',
84 | '/є/' => 'ye',
85 | '/Ї/' => 'Yi',
86 | '/Ж/' => 'Zh',
87 | '/ж/' => 'zh',
88 | '/Х/' => 'Kh',
89 | '/х/' => 'kh',
90 | '/Ц/' => 'Ts',
91 | '/ц/' => 'ts',
92 | '/Ч/' => 'Ch',
93 | '/ч/' => 'ch',
94 | '/Ш/' => 'Sh',
95 | '/ш/' => 'sh',
96 | '/Щ/' => 'Shch',
97 | '/щ/' => 'shch',
98 | '/Ъ|ъ|Ь|ь/' => '',
99 | '/Ю/' => 'Yu',
100 | '/ю/' => 'yu',
101 | '/Я/' => 'Ya',
102 | '/я/' => 'ya'
103 | );
104 |
--------------------------------------------------------------------------------
/application/config/hooks.php:
--------------------------------------------------------------------------------
1 | 'redirect_ssl',
17 | 'filename' => 'ssl.php',
18 | 'filepath' => 'hooks'
19 | );
--------------------------------------------------------------------------------
/application/config/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/config/memcached.php:
--------------------------------------------------------------------------------
1 | array(
15 | 'hostname' => '127.0.0.1',
16 | 'port' => '11211',
17 | 'weight' => '1',
18 | ),
19 | );
20 |
--------------------------------------------------------------------------------
/application/config/profiler.php:
--------------------------------------------------------------------------------
1 | my_controller/index
50 | | my-controller/my-method -> my_controller/my_method
51 | */
52 | $route['default_controller'] = 'auth';
53 | $route['404_override'] = '';
54 | $route['translate_uri_dashes'] = false;
55 |
56 | $route['chat/(:num)'] = 'chat/index/(:num)';
57 |
--------------------------------------------------------------------------------
/application/controllers/Dashboard.php:
--------------------------------------------------------------------------------
1 | load->model(['Dashboard_model', 'Chat_model', 'User_model']);
10 | $this->dashboard = $this->Dashboard_model;
11 | $this->chat = $this->Chat_model;
12 | $this->user = $this->User_model;
13 |
14 | checkSession();
15 | }
16 |
17 | public function index()
18 | {
19 | if ($this->session->userdata('role') == 1) {
20 | $data['record'] = $this->user->get($this->session->userdata('user_id'));
21 |
22 | $this->template->load('template/main_template', 'dashboard/index', $data);
23 | } else {
24 | $data['record'] = $this->db->get('users');
25 | $this->template->load('template/main_template', 'dashboard/admin/index', $data);
26 | }
27 | }
28 |
29 | public function post()
30 | {
31 |
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/application/controllers/Magazine.php:
--------------------------------------------------------------------------------
1 | load->model(['Magazine_model']);
9 | $this->magazine = $this->Magazine_model;
10 | }
11 |
12 | public function index()
13 | {
14 | if (isset($_POST['submit'])) {
15 | $data['messages'] = $this->input->post('messages');
16 | $data['user_id'] = $this->session->userdata('user_id');
17 |
18 | $this->db->insert('dashboard', $data);
19 |
20 | redirect('magazine');
21 | } else {
22 | $data['record'] = $this->magazine->index();
23 |
24 | $this->template->load('template/main_template', 'magazine/index', $data);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/application/controllers/User.php:
--------------------------------------------------------------------------------
1 | load->model('User_model');
9 | $this->user = $this->User_model;
10 | }
11 |
12 | public function index()
13 | {
14 | redirect('user/setting');
15 | }
16 |
17 | public function activate()
18 | {
19 | $id = $this->uri->segment(3);
20 |
21 | $this->db->where('id', $id);
22 | $this->db->update('users', ['is_activated' => '1']);
23 | redirect('dashboard');
24 | }
25 |
26 | public function add()
27 | {
28 | if (isset($_POST['submit'])) {
29 | echo 1;
30 | } else {
31 | $this->template->load('template/main_template', 'user/add');
32 | }
33 | }
34 |
35 | public function setting()
36 | {
37 | $id = $this->uri->segment(3);
38 |
39 | if (isset($_POST['submit'])) {
40 | $config['upload_path'] = './uploads/avatars/';
41 | $config['allowed_types'] = 'gif|jpg|png';
42 | $config['max_size'] = 1000000;
43 |
44 | /* Identify the config as load the library */
45 | $this->load->library('upload', $config);
46 |
47 | if (! $this->upload->do_upload('userfile'))
48 | {
49 | $error = array('error' => $this->upload->display_errors());
50 |
51 | echo $error['error'];
52 | die();
53 | } else {
54 | $image = array('upload_data' => $this->upload->data());
55 |
56 | $data['avatar'] = $image['upload_data']['file_name'];
57 | }
58 |
59 | $data['first_name'] = $this->input->post('first_name');
60 | $data['last_name'] = $this->input->post('last_name');
61 | $data['email'] = $this->input->post('email');
62 | $data['username'] = $this->input->post('username');
63 | $data['password'] = $this->input->post('password');
64 |
65 | $this->db->where('id', $this->uri->segment(3));
66 | $this->db->update('users', $data);
67 |
68 | $this->session->set_userdata('avatar', $data['avatar']);
69 |
70 | redirect('dashboard');
71 | } elseif (isset($_POST['submit_request_photo'])) {
72 | /* Button foto on view */
73 | $id = $this->uri->segment(3);
74 |
75 | $data['record'] = $this->user->getOne($id)->row_array();
76 | $data['photo'] = 1;
77 |
78 | $this->template->load('template/main_template', 'user/setting/index', $data);
79 | } else {
80 | /* Button foto on view */
81 | $id = $this->uri->segment(3);
82 |
83 | $data['record'] = $this->user->getOne($id)->row_array();
84 | $data['photo'] = 0;
85 |
86 | $this->template->load('template/main_template', 'user/setting/index', $data);
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/application/controllers/Welcome.php:
--------------------------------------------------------------------------------
1 |
19 | * @see https://codeigniter.com/user_guide/general/urls.html
20 | */
21 | public function index()
22 | {
23 | $this->load->view('welcome_message');
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/application/controllers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/core/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/helpers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/helpers/session_helper.php:
--------------------------------------------------------------------------------
1 | session->userdata('login_status');
7 | if ($session!=='ok') {
8 | redirect('auth/login');
9 | }
10 | }
11 |
12 | function checkLoginSession()
13 | {
14 | $CI = & get_instance();
15 | $session = $CI->session->userdata('login_status');
16 | if ($session=='ok') {
17 | redirect('dashboard');
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/application/hooks/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/hooks/ssl.php:
--------------------------------------------------------------------------------
1 | router->fetch_class();
6 | $exclude = array('client'); // add more controller name to exclude ssl.
7 | if(!in_array($class,$exclude)) {
8 | // redirecting to ssl.
9 | $CI->config->config['base_url'] = str_replace('http://', 'https://', $CI->config->config['base_url']);
10 | if ($_SERVER['SERVER_PORT'] != 443) redirect($CI->uri->uri_string());
11 | } else {
12 | // redirecting with no ssl.
13 | $CI->config->config['base_url'] = str_replace('https://', 'http://', $CI->config->config['base_url']);
14 | if ($_SERVER['SERVER_PORT'] == 443) redirect($CI->uri->uri_string());
15 | }
16 | }
--------------------------------------------------------------------------------
/application/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/language/english/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/language/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/libraries/Template.php:
--------------------------------------------------------------------------------
1 | template_data[$name] = $value;
11 | }
12 |
13 | function load($template = '', $view = '' , $view_data = array(), $return = FALSE)
14 | {
15 | $this->CI =& get_instance();
16 | $this->set('contents', $this->CI->load->view($view, $view_data, TRUE));
17 | return $this->CI->load->view($template, $this->template_data, $return);
18 | }
19 | }
20 |
21 | /* End of file Template.php */
22 | /* Location: ./system/application/libraries/Template.php */
--------------------------------------------------------------------------------
/application/libraries/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/logs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/models/Auth_model.php:
--------------------------------------------------------------------------------
1 | db->get_where('users', ['username' => $username, 'password' => $password]);
14 |
15 | $data = $user->row_array();
16 | $user_array = $user->row_array();
17 |
18 | if ($user->num_rows() > 0) {
19 | if ($user_array['is_activated'] == '1') {
20 | $this->session->set_userdata([
21 | 'user_id' => $data['id'],
22 | 'first_name' => $data['first_name'],
23 | 'avatar' => $data['avatar'],
24 | 'role' => $data['role']
25 | ]);
26 | return 1;
27 | } else {
28 | $this->session->set_userdata('error', 'Silahkan minta admin untuk memberikan verifikasi terhadap akun anda!!');
29 | redirect('auth/login');
30 | }
31 | } else {
32 | return 0;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/application/models/Chat_model.php:
--------------------------------------------------------------------------------
1 | db->insert('chats', $data);
22 |
23 | if ($chat) {
24 | return 1;
25 | } else {
26 | return 0;
27 | }
28 | }
29 |
30 | /**
31 | * Description
32 | * @param int $chat_id
33 | * @param int $user_id
34 | * @param text $content
35 | * @return array
36 | */
37 | public function add_chat_message($chat_id, $user_id, $content)
38 | {
39 | $query = "INSERT INTO chats_messages (chat_id, user_id, content) VALUES (?, ?, ?)";
40 |
41 | return $this->db->query($query, array($chat_id, $user_id, $content));
42 | }
43 |
44 | public function get_chats_messages($chat_id, $last_chat_message_id = 0)
45 | {
46 | $query = "SELECT
47 | cm.id,
48 | cm.user_id,
49 | cm.content,
50 | DATE_FORMAT(cm.created_at, '%D of %M %Y at %H:%i:%s') AS timestamp,
51 | cm.is_image,
52 | cm.is_doc,
53 | u.username,
54 | u.first_name,
55 | u.last_name
56 | FROM
57 | chats_messages AS cm
58 | JOIN
59 | users AS u
60 | ON
61 | cm.user_id = u.id
62 | WHERE
63 | cm.chat_id = ?
64 | AND
65 | cm.id > ?
66 | ORDER BY
67 | cm.id
68 | ASC";
69 |
70 | $result = $this->db->query($query, [$chat_id, $last_chat_message_id]);
71 |
72 | return $result;
73 | }
74 |
75 | public function getOne($id)
76 | {
77 | return $this->db->get_where('chats', ['id' => $id]);
78 | }
79 |
80 | public function get()
81 | {
82 | $this->db->select('chats.*, users.username');
83 | $this->db->from('chats as chats, users as users');
84 | $this->db->where('chats.user_id = users.id');
85 | return $this->db->get();
86 | }
87 |
88 | public function obtain($topic)
89 | {
90 | return $this->db->get_where('chats', ['topic' => $topic]);
91 | }
92 |
93 | }
94 |
--------------------------------------------------------------------------------
/application/models/Dashboard_model.php:
--------------------------------------------------------------------------------
1 | db->select('*');
13 | $this->db->from('chats');
14 | return $this->db->get();
15 | }
16 |
17 | // public function getAll()
18 | // {
19 | // $query = "SELECT
20 | // uc.id,
21 | // uc.user_id,
22 | // uc.chat_id,
23 | // ct.topic,
24 | // ct.created_at,
25 | // us.username
26 | // FROM
27 | // users_chats AS uc,
28 | // chats AS ct,
29 | // users AS us
30 | // WHERE
31 | // uc.chat_id = ct.id
32 | // AND
33 | // uc.user_id = us.id";
34 | // return $this->db->query($query);
35 | // }
36 |
37 | }
--------------------------------------------------------------------------------
/application/models/Group_model.php:
--------------------------------------------------------------------------------
1 | db->select('group.*, chats.*');
12 | $this->db->from('groups_chats as group, chats as chats');
13 | $this->db->where('group.chat_id = chats.id');
14 | return $this->db->get();
15 | }
16 |
17 | public function check($user_id, $chat_id)
18 | {
19 | $check = $this->db->get_where('groups_members', ['chat_id' => $chat_id, 'user_id' => $user_id]);
20 |
21 | if ($check->num_rows() > 0) {
22 | return 1;
23 | } else {
24 | return 0;
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/application/models/Magazine_model.php:
--------------------------------------------------------------------------------
1 | db->query($query);
15 | }
16 | }
--------------------------------------------------------------------------------
/application/models/Segment_model.php:
--------------------------------------------------------------------------------
1 | db->insert('uri_segments', $data);
13 |
14 | if ($segment) {
15 | return 1;
16 | } else {
17 | return 0;
18 | }
19 | }
20 |
21 | public function select($first, $second)
22 | {
23 | $query = "SELECT
24 | *
25 | FROM
26 | uri_segments AS uri
27 | WHERE
28 | (first = $first
29 | AND
30 | second = $second)
31 | OR
32 | (first = $second
33 | AND
34 | second = $first)";
35 |
36 | return $this->db->query($query);
37 | }
38 |
39 | /**
40 | * Locate the id on uri_segments table
41 | * @param int $first_id
42 | * @param int $second_id
43 | * @return bool
44 | */
45 | public function locate($first_id, $second_id)
46 | {
47 | $query = "SELECT
48 | *
49 | FROM
50 | uri_segments AS uri
51 | WHERE
52 | (first = '$first_id'
53 | AND
54 | second = '$second_id')
55 | OR
56 | (first = '$second_id'
57 | AND
58 | second = '$first_id')
59 | ORDER BY
60 | uri.id
61 | DESC";
62 |
63 | $record_array = $this->db->query($query)->row_array();
64 | $this->session->set_userdata(['chat_id' => $record_array['chat_id']]);
65 |
66 | $result = $this->db->query($query)->num_rows();
67 |
68 | if ($result > 0) {
69 | return 1;
70 | } else {
71 | return 0;
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/application/models/User_model.php:
--------------------------------------------------------------------------------
1 | db->select();
13 | $this->db->from('users as users');
14 | $this->db->where('users.id != ', $user_id);
15 | $this->db->where('users.id != 0');
16 | return $this->db->get();
17 | }
18 |
19 | public function getOne($id)
20 | {
21 | $this->db->where('id', $id);
22 | return $this->db->get('users');
23 | }
24 |
25 | public function logged($user_id)
26 | {
27 | $this->db->where('id', $user_id);
28 | $this->db->update('users', ['is_logged_in' => 1, 'last_login' => date('Y-m-d')]);
29 |
30 | return 1;
31 | }
32 | }
--------------------------------------------------------------------------------
/application/models/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/third_party/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/auth/index.php:
--------------------------------------------------------------------------------
1 | 'form-signin']);
3 |
4 | echo $error;
5 | $this->session->unset_userdata('error');
6 | ?>
7 |
8 |
24 |
25 | 'btn btn-lg btn-info btn-block']); ?>
26 |
--------------------------------------------------------------------------------
/application/views/chat/group/add.php:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/application/views/chat/group/chat.php:
--------------------------------------------------------------------------------
1 | Grup Chat
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
23 | |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/application/views/chat/group/index.php:
--------------------------------------------------------------------------------
1 | Daftar Chat Group
2 | 'btn btn-primary btn-sm']); ?>
3 |
4 |
5 |
6 |
7 |
8 |
9 | No |
10 | Nama Grup |
11 | Dibuat Oleh |
12 | Jumlah Member |
13 | Aksi |
14 |
15 |
16 |
17 |
18 | result() as $r) {
21 | $no++;
22 | echo "
23 | $no |
24 | $r->topic |
25 | $r->created_by |
26 | $r->total_member |
27 | ".
28 | anchor('group/check/'. $r->chat_id, 'Chat', ['class' => 'btn btn-success btn-sm'])
29 | ." |
30 |
";
31 | }
32 | ?>
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/application/views/chat/video.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/dashboard/admin/index.php:
--------------------------------------------------------------------------------
1 | Daftar User
2 |
3 |
4 |
5 |
6 |
7 | No |
8 | Username
9 | | Email
10 | | Nama Depan
11 | | Nama Belakang
12 | | Divisi
13 | | Status Keaktifan
14 | | Aksi
15 | |
16 | result() as $r) {
21 | if ($r->is_activated == 1) {
22 | $aktif_status = 'Aktif';
23 | $button_activate = '';
24 | } else {
25 | $aktif_status = 'Belum Aktif';
26 | $button_activate = anchor('user/activate/'.$r->id, 'Aktifkan!', ['class' => 'btn btn-success btn-sm']);
27 | }
28 | $no++;
29 | echo "
30 | $no |
31 | $r->username |
32 | $r->email |
33 | $r->first_name |
34 | $r->last_name |
35 | $r->division |
36 | $aktif_status |
37 | ".
38 | $button_activate
39 | ." |
40 |
";
41 | }
42 | ?>
43 |
--------------------------------------------------------------------------------
/application/views/dashboard/index.js:
--------------------------------------------------------------------------------
1 | this is js
--------------------------------------------------------------------------------
/application/views/dashboard/index.php:
--------------------------------------------------------------------------------
1 | Daftar Kontak
2 |
3 |
4 |
5 |
6 |
7 |
8 | No |
9 | Username |
10 | Status |
11 | Aksi |
12 |
13 |
14 |
15 |
16 | result() as $r) {
20 | $no++;
21 |
22 | if ($r->is_logged_in == 1) {
23 | $logged_status = ' > Online';
24 | } else {
25 | $logged_status = 'Offline';
26 | }
27 |
28 | echo "
29 | $no |
30 | $r->username |
31 | $logged_status |
32 | ". anchor('chat/redirect/'.$this->session->userdata('user_id').'/'.$r->id, 'Chat', ['class' => 'btn btn-primary btn-sm']) ." |
33 |
";
34 | }
35 | ?>
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/application/views/errors/cli/error_404.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | An uncaught Exception was encountered
4 |
5 | Type:
6 | Message:
7 | Filename: getFile(), "\n"; ?>
8 | Line Number: getLine(); ?>
9 |
10 |
11 |
12 | Backtrace:
13 | getTrace() as $error): ?>
14 |
15 | File:
16 | Line:
17 | Function:
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/application/views/errors/cli/error_general.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | A PHP Error was encountered
4 |
5 | Severity:
6 | Message:
7 | Filename:
8 | Line Number:
9 |
10 |
11 |
12 | Backtrace:
13 |
14 |
15 | File:
16 | Line:
17 | Function:
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/application/views/errors/cli/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/errors/html/error_404.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | 404 Page Not Found
8 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/application/views/errors/html/error_db.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Database Error
8 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/application/views/errors/html/error_exception.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
An uncaught Exception was encountered
8 |
9 |
Type:
10 |
Message:
11 |
Filename: getFile(); ?>
12 |
Line Number: getLine(); ?>
13 |
14 |
15 |
16 |
Backtrace:
17 | getTrace() as $error): ?>
18 |
19 |
20 |
21 |
22 | File:
23 | Line:
24 | Function:
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/application/views/errors/html/error_general.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Error
8 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/application/views/errors/html/error_php.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
A PHP Error was encountered
8 |
9 |
Severity:
10 |
Message:
11 |
Filename:
12 |
Line Number:
13 |
14 |
15 |
16 |
Backtrace:
17 |
18 |
19 |
20 |
21 |
22 | File:
23 | Line:
24 | Function:
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/application/views/errors/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/errors/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/application/views/magazine/index.php:
--------------------------------------------------------------------------------
1 |
4 |
10 |
11 |
12 | Sticky Notes |
13 |
14 |
15 | Tanggal |
16 | Nama |
17 | Pesan |
18 |
19 | result() AS $r) {
21 | echo "
22 | $r->created_at |
23 | $r->first_name |
24 | $r->messages |
25 |
";
26 | }
27 | ?>
28 |
--------------------------------------------------------------------------------
/application/views/register/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/views/template/chat.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Chat App
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
43 |
44 |
--------------------------------------------------------------------------------
/application/views/template/login_template.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Chat App
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/application/views/test/index.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/application/views/user/add.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/application/views/user/add.php
--------------------------------------------------------------------------------
/application/views/user/setting/index.php:
--------------------------------------------------------------------------------
1 | uri->segment(3)); ?>
2 |
52 |
--------------------------------------------------------------------------------
/application/views/welcome/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | SELAMAT DATANG DI APLIKASI POST CHAT INDONESIA
4 | SILAHKAN LOGIN TERLEBIH DAHULU SEBELUM
5 | MENJALANKAN APLIKASI INI
6 |
7 |
--------------------------------------------------------------------------------
/application/views/welcome_message.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Welcome to CodeIgniter
8 |
9 |
67 |
68 |
69 |
70 |
71 |
Welcome to CodeIgniter!
72 |
73 |
74 |
The page you are looking at is being generated dynamically by CodeIgniter.
75 |
76 |
If you would like to edit this page you'll find it located at:
77 |
application/views/welcome_message.php
78 |
79 |
The corresponding controller for this page is found at:
80 |
application/controllers/Welcome.php
81 |
82 |
If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.
83 |
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/assets/css/camera.css:
--------------------------------------------------------------------------------
1 | #container {
2 | margin: 0px auto;
3 | width: 320px;
4 | height: 480px;
5 | border: 3px #333 solid;
6 | background-color: #666;
7 | }
8 |
9 | #localVideo {
10 | width: 320px;
11 | height: 200px;
12 | background-color: #666;
13 | }
14 |
15 | .videoContainer {
16 | width: 320px;
17 | height: 200px;
18 | background-color: #666;
19 | }
20 | .videoContainer video {
21 | width: 320px;
22 | height: 200px;
23 | background-color: #666;
24 | }
--------------------------------------------------------------------------------
/assets/css/chat.css:
--------------------------------------------------------------------------------
1 | div#chat_viewport {
2 | font-family: Verdana, Arial, sans-serif;
3 | padding: 20px;
4 | border-top: 2px dashed #585858;
5 | min-height: 390px;
6 | color: black;
7 | max-height: 280px;
8 | overflow: auto;
9 | margin-bottom: 10px;
10 | width: 750px;
11 | }
12 |
13 | div#chat_viewport ul {
14 | list-style-type: none;
15 | padding-left: 10px;
16 | }
17 |
18 | div#chat_viewport ul li {
19 | margin-top: 10px;
20 | width: 85%;
21 | }
22 |
23 | span.chat_message_header {
24 | font-size: 0.7em;
25 | font-family: "MS Trebuchet", Arial, sans-serif;
26 | color: #547980;
27 | }
28 |
29 | p.message_content {
30 | margin-top: 0px;
31 | margin-bottom: 5px;
32 | padding-left: 10px;
33 | margin-right: 0px;
34 | }
35 |
36 | input#chat_message {
37 | margin-top: 5px;
38 | border: 1px solid #585858;
39 | width: 70%;
40 | font-size: 1.2em;
41 | margin-right: 10px;
42 | }
43 |
44 | input#submit_message {
45 | font-size: 2em;
46 | padding: 5px 10px;
47 | vertical-align: top;
48 | margin-top: 5px;
49 | }
50 |
51 | div#chat_input {
52 | margin-bottom: 10px;
53 | }
54 |
55 | div#chat_viewport ul li.by_current_user span.chat_message_header {
56 | color: #e9561b;
57 | }
58 |
59 | div#container {
60 | margin: 0px auto;
61 | width: 327.5px;
62 | height: 400px;
63 | border: 3px #333 solid;
64 | background-color: #666;
65 | }
--------------------------------------------------------------------------------
/assets/css/chat_admin.css:
--------------------------------------------------------------------------------
1 | div#chat_viewport {
2 | font-family: Verdana, Arial, sans-serif;
3 | padding: 20px;
4 | border-top: 2px dashed #585858;
5 | min-height: 400px;
6 | color: black;
7 | max-height: 300px;
8 | overflow: auto;
9 | margin-bottom: 10px;
10 | width: 1100px;
11 | }
12 |
13 | div#chat_viewport ul {
14 | list-style-type: none;
15 | padding-left: 10px;
16 | }
17 |
18 | div#chat_viewport ul li {
19 | margin-top: 10px;
20 | width: 85%;
21 | }
22 |
23 | span.chat_message_header {
24 | font-size: 0.7em;
25 | font-family: "MS Trebuchet", Arial, sans-serif;
26 | color: #547980;
27 | }
28 |
29 | p.message_content {
30 | margin-top: 0px;
31 | margin-bottom: 5px;
32 | padding-left: 10px;
33 | margin-right: 0px;
34 | }
35 |
36 | input#chat_message {
37 | margin-top: 5px;
38 | border: 1px solid #585858;
39 | width: 70%;
40 | font-size: 1.2em;
41 | margin-right: 10px;
42 | }
43 |
44 | input#submit_message {
45 | font-size: 2em;
46 | padding: 5px 10px;
47 | vertical-align: top;
48 | margin-top: 5px;
49 | }
50 |
51 | div#chat_input {
52 | margin-bottom: 10px;
53 | }
54 |
55 | div#chat_viewport ul li.by_current_user span.chat_message_header {
56 | color: #e9561b;
57 | }
58 |
59 | div#container {
60 | margin: 0px auto;
61 | width: 327.5px;
62 | height: 410px;
63 | border: 3px #333 solid;
64 | background-color: #666;
65 | }
--------------------------------------------------------------------------------
/assets/css/easyrtc.css:
--------------------------------------------------------------------------------
1 | /*
2 | * These styles define the appearance of the default error dialog box.
3 | */
4 | #easyrtcErrorDialog {
5 | background-color: #ffe0e0;
6 |
7 | position:fixed;
8 | right: 10px;
9 | top:20px;
10 | z-index: 30;
11 | opacity: 0.95;
12 | padding: 0.5em;
13 | border-radius:10px;
14 | border-color: red;
15 | border-style: solid;
16 | border-width: 1px;
17 | -webkit-box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.9);
18 | box-shadow: 2px 2px 8px 1px rgba(0,0,0,0.9);
19 | }
20 |
21 | .easyrtcErrorDialog_title {
22 | position:static;
23 | text-align:center;
24 | font-size: 18px;
25 | font-weight: bold;
26 | margin-bottom: 0.5em;
27 | clear:both;
28 | }
29 |
30 | #easyrtcErrorDialog_body{
31 | position:static;
32 | height:150px;
33 | overflow-y:auto;
34 | }
35 |
36 | .easyrtcErrorDialog_element {
37 | position:static;
38 | font-style: italic;
39 | font-size: 12px;
40 | width:300px;
41 | margin-bottom: 0.5em;
42 | clear: both;
43 | float:left;
44 | }
45 |
46 | .easyrtcErrorDialog_okayButton {
47 | position:static;
48 | clear:both;
49 | float:right;
50 | }
51 |
52 | .easyrtcMirror {
53 | -webkit-transform: scaleX(-1);
54 | -moz-transform: scaleX(-1);
55 | -ms-transform: scaleX(-1);
56 | -o-transform: scaleX(-1);
57 | transform: scaleX(-1);
58 | }
59 |
60 | .easyrtc_closeButton {
61 | z-index: 2;
62 | position: absolute;
63 | width: 40px;
64 | height:40px;
65 | right: 0px;
66 | top: 0px;
67 | background-image: url('data:image/svg+xml;utf8,');
68 | opacity: 0.3;
69 | }
70 |
71 | .easyrtc_closeButton:hover {
72 | opacity: 1;
73 | }
74 |
--------------------------------------------------------------------------------
/assets/css/ie10-viewport-bug-workaround.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * IE10 viewport hack for Surface/desktop Windows 8 bug
3 | * Copyright 2014-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | /*
8 | * See the Getting Started docs for more information:
9 | * http://getbootstrap.com/getting-started/#support-ie10-width
10 | */
11 | @-ms-viewport { width: device-width; }
12 | @-o-viewport { width: device-width; }
13 | @viewport { width: device-width; }
14 |
--------------------------------------------------------------------------------
/assets/css/landing.css:
--------------------------------------------------------------------------------
1 | /*
2 | General CSS for easyrtc local landing site.
3 | Only general layout is here.
4 | Any CSS related directly to the operation of a demo is kept in another file.
5 | */
6 |
7 | body {
8 | background-image:url("../images/bg_light.png");
9 | font-family:Arial, Helvetica, sans-serif;
10 | }
11 |
12 | #container {
13 | width:960px;
14 | margin-left: auto;
15 | margin-right:auto;
16 |
17 | background-image:url("../images/bg_dark.png");
18 | background-color:black;
19 |
20 | border-color: #FF6600;
21 | border-width: 1px;
22 | border-style: solid;
23 | border-radius:10px;
24 | }
25 |
26 | #logo_easyrtc {
27 | margin-top:5px;
28 | margin-left:5px;
29 | }
30 | #logo_priologic {
31 | margin-top:5px;
32 | margin-right:5px;
33 | }
34 |
35 | #menu {
36 | text-align: right;
37 | clear: both;
38 | padding-bottom: 2px;
39 | padding-top: 2px;
40 | }
41 | .menu_item {
42 | display: inline;
43 | text-decoration: none;
44 | border-color: gray;
45 | border-width: 2px;
46 | border-style: outset;
47 | color: white;
48 | padding: 0px 3px 0px 3px;
49 | background-color: rgba(0,0,0,.4);
50 | }
51 | .menu_item:hover {
52 | border-style:inset;
53 | background-color: rgba(100,100,100,0);
54 | }
55 | .menu_link {
56 | text-decoration:none;
57 | }
58 | .menu_link:focus {
59 | text-decoration:underline;
60 | }
61 |
62 |
63 |
64 | #main {
65 | background-color:white;
66 | overflow:hidden;
67 | padding-left: 10px;
68 | padding-right: 10px;
69 | }
70 |
71 | #footer {
72 | font-size: small;
73 | padding: 5px;
74 | color:white;
75 | min-height:60px;
76 | }
77 | #footer p {
78 | margin: 0px;
79 | color:white;
80 | text-align:center;
81 | }
82 | #footer a {
83 | color:white;
84 | }
85 | #license {
86 | font-size: x-small;
87 | }
88 | #logo_priologic {
89 | float:left;
90 | padding-top: 10px;
91 | margin-right: 10px;
92 | }
93 | #logo_pb_easyrtc {
94 | float:right;
95 | margin-left: 10px;
96 | }
97 |
98 |
99 | .demo_table {
100 | border-collapse:collapse;
101 | border:1px solid gray;
102 | }
103 | .demo_table th{
104 | padding:3px;
105 | text-align:left;
106 | }
107 | .demo_table td{
108 | border-top:1px solid gray;
109 | padding:3px;
110 | }
111 | .demo_table #browser_note{
112 | text-align:center;
113 | font-size: smaller;
114 | color: gray;
115 | }
116 |
117 | hr {
118 | clear:both;
119 | }
120 |
121 | .prettyprint {
122 | white-space: pre-wrap;
123 | max-height:400px;
124 | overflow-y:scroll;
125 | }
--------------------------------------------------------------------------------
/assets/css/login/signin.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 40px;
3 | padding-bottom: 40px;
4 | background-color: #eee;
5 | }
6 |
7 | .form-signin {
8 | max-width: 330px;
9 | padding: 15px;
10 | margin: 0 auto;
11 | }
12 | .form-signin .form-signin-heading,
13 | .form-signin .checkbox {
14 | margin-bottom: 10px;
15 | }
16 | .form-signin .checkbox {
17 | font-weight: normal;
18 | }
19 | .form-signin .form-control {
20 | position: relative;
21 | height: auto;
22 | -webkit-box-sizing: border-box;
23 | -moz-box-sizing: border-box;
24 | box-sizing: border-box;
25 | padding: 10px;
26 | font-size: 16px;
27 | }
28 | .form-signin .form-control:focus {
29 | z-index: 2;
30 | }
31 | .form-signin input[type="email"] {
32 | margin-bottom: -1px;
33 | border-bottom-right-radius: 0;
34 | border-bottom-left-radius: 0;
35 | }
36 | .form-signin input[type="password"] {
37 | margin-bottom: 10px;
38 | border-top-left-radius: 0;
39 | border-top-right-radius: 0;
40 | }
41 |
--------------------------------------------------------------------------------
/assets/css/pretiffy.css:
--------------------------------------------------------------------------------
1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
--------------------------------------------------------------------------------
/assets/css/signin.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 40px;
3 | padding-bottom: 40px;
4 | background-color: #eee;
5 | }
6 |
7 | .form-signin {
8 | max-width: 330px;
9 | padding: 15px;
10 | margin: 0 auto;
11 | }
12 | .form-signin .form-signin-heading,
13 | .form-signin .checkbox {
14 | margin-bottom: 10px;
15 | }
16 | .form-signin .checkbox {
17 | font-weight: normal;
18 | }
19 | .form-signin .form-control {
20 | position: relative;
21 | height: auto;
22 | -webkit-box-sizing: border-box;
23 | -moz-box-sizing: border-box;
24 | box-sizing: border-box;
25 | padding: 10px;
26 | font-size: 16px;
27 | }
28 | .form-signin .form-control:focus {
29 | z-index: 2;
30 | }
31 | .form-signin input[type="email"] {
32 | margin-bottom: -1px;
33 | border-bottom-right-radius: 0;
34 | border-bottom-left-radius: 0;
35 | }
36 | .form-signin input[type="password"] {
37 | margin-bottom: 10px;
38 | border-top-left-radius: 0;
39 | border-top-right-radius: 0;
40 | }
41 |
--------------------------------------------------------------------------------
/assets/css/theme.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 70px;
3 | padding-bottom: 30px;
4 | }
5 |
6 | .theme-dropdown .dropdown-menu {
7 | position: static;
8 | display: block;
9 | margin-bottom: 20px;
10 | }
11 |
12 | .theme-showcase > p > .btn {
13 | margin: 5px 0;
14 | }
15 |
16 | .theme-showcase .navbar .container {
17 | width: auto;
18 | }
19 |
--------------------------------------------------------------------------------
/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/assets/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/assets/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/assets/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/assets/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/assets/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/icons/favicon.ico
--------------------------------------------------------------------------------
/assets/images/easyrtc_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/images/easyrtc_logo.png
--------------------------------------------------------------------------------
/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/images/logo.png
--------------------------------------------------------------------------------
/assets/images/user_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/images/user_default.png
--------------------------------------------------------------------------------
/assets/js/.gitattributes:
--------------------------------------------------------------------------------
1 | # Automatically normalize line endings for all text-based files
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/assets/js/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | todo.md
3 | npm-debug.log
4 | .fuse_hidden*
--------------------------------------------------------------------------------
/assets/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "quotmark": true,
3 | "boss": true,
4 | "eqnull": true,
5 | "expr": true,
6 | "funcscope": true,
7 | "loopfunc": true,
8 | "smarttabs": true,
9 | "node": true,
10 | "browser": true,
11 | "undef": true,
12 | "unused": true
13 | }
14 |
--------------------------------------------------------------------------------
/assets/js/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.12"
4 | env:
5 | global:
6 | - secure: oFLrNQrXJ5F2XrJ9Fe515PY6JyYbQCHeIVDY+7yc7E90bIZJEb0lVuRGMHrY0Win2WrwdtqdvljMk48YwtY0i6w3z2FbUPn5bNStPMXlxJ9pb6bnXwi1ixNjljveMRo8ZGZYvm66HPYaVn59PUELE4mfIFTYooqdlbGtZTMaRc8=
7 | - secure: qJqn+4QtqjPlKe0vkZlYPUXLE9xODLt0Azs1A4vu4SJoI4jtU6BBcccAkG232JAKC2GiLG5daMMeDMRoUCXHANqyQBf0i/ep56DGwVncmrdNVcGubZdcR8Blj6Ib+aHUgXS0sRrX5PETCBv7t+FZVIzQM4Acq1OiPQEAnTWqAmM=
8 | addons:
9 | sauce_connect: true
10 | sudo: false
11 | install:
12 | - npm install -g gulp
13 | - npm install
14 | - gulp
15 |
--------------------------------------------------------------------------------
/assets/js/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "holderjs",
3 | "main": "holder.js",
4 | "license": "MIT"
5 | }
6 |
--------------------------------------------------------------------------------
/assets/js/camera.js:
--------------------------------------------------------------------------------
1 | var video = document.querySelector("#videoElement");
2 |
3 | navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
4 |
5 | if (navigator.getUserMedia) {
6 | navigator.getUserMedia({video: true}, handleVideo, videoError);
7 | }
8 |
9 | function handleVideo(stream) {
10 | video.src = window.URL.createObjectURL(stream);
11 | }
12 |
13 | function videoError(e) {
14 | // do something
15 | }
--------------------------------------------------------------------------------
/assets/js/chat.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | if (Notification.permission !== "granted") {
4 | Notification.requestPermission();
5 | }
6 |
7 | if (!Notification) {
8 | alert('Desktop notifications not available in your browser. Try Chromium.');
9 | return;
10 | }
11 |
12 | setInterval(function() {
13 | get_chats_messages();
14 | }, 2500);
15 |
16 | $("input#chat_message").keypress(function(e) {
17 | if (e.which == 13) {
18 |
19 | $("a#submit_message").click();
20 |
21 | return false;
22 |
23 | }
24 | });
25 |
26 | $("a#submit_message").click(function(e) {
27 | e.preventDefault();
28 |
29 | var content = $("input#chat_message").val();
30 |
31 | var userfile = $("input#userfile").val();
32 |
33 | if (content == "") return false;
34 |
35 | $.post(base_url + "index.php/chat/ajax_add_chat_message", { content: content, chat_id: chat_id, user_id: user_id }, function(data) {
36 |
37 | /* Condition */
38 | if (data.status == 'ok') {
39 |
40 | var current_content = $("div#chat_viewport").html();
41 |
42 | $("div#chat_viewport").html(current_content + data.content);
43 |
44 | /* Scroll each time you submit new message */
45 | $('div#chat_viewport').scrollTop($('div#chat_viewport')[0].scrollHeight);
46 |
47 | } else {
48 | /* Error here */
49 | }
50 |
51 | }, "json");
52 |
53 | $("input#chat_message").val("");
54 |
55 | return false;
56 | });
57 |
58 | function get_chats_messages()
59 | {
60 | $.post(base_url + "index.php/chat/ajax_get_chats_messages", { chat_id: chat_id }, function(data) {
61 |
62 | /* Condition */
63 | if (data.status == 'ok') {
64 | console.log(current_content);
65 | var current_content = $("div#chat_viewport").html();
66 |
67 | $("div#chat_viewport").html(current_content + data.content);
68 |
69 | if (!data.content == '') {
70 | var notification = new Notification('Notification title', {
71 | icon: '',
72 | body: "Ada pesan masuk, silahkan cek!!",
73 | });
74 |
75 | notification.onclick = function () {
76 | window.open("http://stackoverflow.com/a/13328397/1269037");
77 | };
78 |
79 | /* Scroll each time you get new message */
80 | $('div#chat_viewport').scrollTop($('div#chat_viewport')[0].scrollHeight);
81 | } else {
82 |
83 | }
84 |
85 |
86 | } else {
87 | /* Error here */
88 | }
89 |
90 | }, "json");
91 |
92 | return false;
93 | }
94 |
95 | get_chats_messages();
96 |
97 | });
98 |
99 |
--------------------------------------------------------------------------------
/assets/js/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "imsky/holder",
3 | "description": "Client-side image placeholders.",
4 | "homepage": "http://holderjs.com",
5 | "keywords": [
6 | "images",
7 | "placeholders",
8 | "client-side",
9 | "canvas",
10 | "generation",
11 | "development"
12 | ],
13 | "license": "MIT",
14 | "type": "component",
15 | "authors": [
16 | {
17 | "name": "Ivan Malopinsky",
18 | "homepage": "http://imsky.co"
19 | }
20 | ],
21 | "require": {
22 | "robloach/component-installer": "*"
23 | },
24 | "extra": {
25 | "component": {
26 | "scripts": [
27 | "holder.js"
28 | ],
29 | "files": [
30 | "holder.min.js"
31 | ]
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/js/demo_audio_video_simple.js:
--------------------------------------------------------------------------------
1 | var selfEasyrtcid = "";
2 |
3 |
4 | function connect() {
5 | easyrtc.setVideoDims(640,480);
6 | easyrtc.setRoomOccupantListener(convertListToButtons);
7 | easyrtc.easyApp("easyrtc.audioVideoSimple", "selfVideo", ["callerVideo"], loginSuccess, loginFailure);
8 | }
9 |
10 |
11 | function clearConnectList() {
12 | var otherClientDiv = document.getElementById('otherClients');
13 | while (otherClientDiv.hasChildNodes()) {
14 | otherClientDiv.removeChild(otherClientDiv.lastChild);
15 | }
16 | }
17 |
18 |
19 | function convertListToButtons (roomName, data, isPrimary) {
20 | clearConnectList();
21 | var otherClientDiv = document.getElementById('otherClients');
22 | for(var easyrtcid in data) {
23 | var button = document.createElement('button');
24 | button.onclick = function(easyrtcid) {
25 | return function() {
26 | performCall(easyrtcid);
27 | };
28 | }(easyrtcid);
29 |
30 | var label = document.createTextNode(easyrtc.idToName(easyrtcid));
31 | button.appendChild(label);
32 | otherClientDiv.appendChild(button);
33 | }
34 | }
35 |
36 |
37 | function performCall(otherEasyrtcid) {
38 | easyrtc.hangupAll();
39 |
40 | var successCB = function() {};
41 | var failureCB = function() {};
42 | easyrtc.call(otherEasyrtcid, successCB, failureCB);
43 | }
44 |
45 |
46 | function loginSuccess(easyrtcid) {
47 | selfEasyrtcid = easyrtcid;
48 | document.getElementById("iam").innerHTML = "I am " + easyrtc.cleanId(easyrtcid);
49 | }
50 |
51 |
52 | function loginFailure(errorCode, message) {
53 | easyrtc.showError(errorCode, message);
54 | }
--------------------------------------------------------------------------------
/assets/js/ie-emulation-modes-warning.js:
--------------------------------------------------------------------------------
1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
2 | // IT'S JUST JUNK FOR OUR DOCS!
3 | // ++++++++++++++++++++++++++++++++++++++++++
4 | /*!
5 | * Copyright 2014-2015 Twitter, Inc.
6 | *
7 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For
8 | * details, see https://creativecommons.org/licenses/by/3.0/.
9 | */
10 | // Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
11 | (function () {
12 | 'use strict';
13 |
14 | function emulatedIEMajorVersion() {
15 | var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
16 | if (groups === null) {
17 | return null
18 | }
19 | var ieVersionNum = parseInt(groups[1], 10)
20 | var ieMajorVersion = Math.floor(ieVersionNum)
21 | return ieMajorVersion
22 | }
23 |
24 | function actualNonEmulatedIEMajorVersion() {
25 | // Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
26 | // IE JavaScript conditional compilation docs: https://msdn.microsoft.com/library/121hztk3%28v=vs.94%29.aspx
27 | // @cc_on docs: https://msdn.microsoft.com/library/8ka90k2e%28v=vs.94%29.aspx
28 | var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // jshint ignore:line
29 | if (jscriptVersion === undefined) {
30 | return 11 // IE11+ not in emulation mode
31 | }
32 | if (jscriptVersion < 9) {
33 | return 8 // IE8 (or lower; haven't tested on IE<8)
34 | }
35 | return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
36 | }
37 |
38 | var ua = window.navigator.userAgent
39 | if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
40 | return // Opera, which might pretend to be IE
41 | }
42 | var emulated = emulatedIEMajorVersion()
43 | if (emulated === null) {
44 | return // Not IE
45 | }
46 | var nonEmulated = actualNonEmulatedIEMajorVersion()
47 |
48 | if (emulated !== nonEmulated) {
49 | window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
50 | }
51 | })();
52 |
--------------------------------------------------------------------------------
/assets/js/ie10-viewport-bug-workaround.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * IE10 viewport hack for Surface/desktop Windows 8 bug
3 | * Copyright 2014-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // See the Getting Started docs for more information:
8 | // http://getbootstrap.com/getting-started/#support-ie10-width
9 |
10 | (function () {
11 | 'use strict';
12 |
13 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
14 | var msViewportStyle = document.createElement('style')
15 | msViewportStyle.appendChild(
16 | document.createTextNode(
17 | '@-ms-viewport{width:auto!important}'
18 | )
19 | )
20 | document.querySelector('head').appendChild(msViewportStyle)
21 | }
22 |
23 | })();
24 |
--------------------------------------------------------------------------------
/assets/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/assets/js/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | summary: 'Holder uses SVG to render image placeholders entirely in browser.',
3 | version: '2.9.0',
4 | name: 'imsky:holder',
5 | git: 'https://github.com/imsky/holder',
6 | });
7 |
8 | Package.onUse(function(api) {
9 | api.versionsFrom('0.9.0');
10 | api.export('Holder', 'client');
11 | api.addFiles('holder.js', 'client');
12 | });
13 |
--------------------------------------------------------------------------------
/assets/js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "holderjs",
3 | "officialName": "Holder",
4 | "version": "2.9.0",
5 | "summary": "client side image placeholders",
6 | "description": "Holder uses SVG to render image placeholders entirely in browser.",
7 | "author": {
8 | "name": "Ivan Malopinsky",
9 | "url": "http://imsky.co"
10 | },
11 | "homepage": "http://holderjs.com",
12 | "license": "MIT",
13 | "keywords": [
14 | "images",
15 | "placeholders",
16 | "client-side",
17 | "canvas",
18 | "generation",
19 | "development",
20 | "svg"
21 | ],
22 | "main": "holder.js",
23 | "repository": {
24 | "type": "git",
25 | "url": "git://github.com/imsky/holder.git"
26 | },
27 | "bugs": {
28 | "url": "https://github.com/imsky/holder/issues"
29 | },
30 | "devDependencies": {
31 | "component-type": "^1.1.0",
32 | "gulp": "^3.9.0",
33 | "gulp-concat": "^2.2.0",
34 | "gulp-header": "^1.0.2",
35 | "gulp-jsbeautifier": "0.0.5",
36 | "gulp-jshint": "^1.6.1",
37 | "gulp-rename": "^1.2.2",
38 | "gulp-replace": "^0.5.3",
39 | "gulp-todo": "^0.3.8",
40 | "gulp-uglify": "^1.2.0",
41 | "gulp-util": "~3",
42 | "moment": "^2.6.0",
43 | "node-http-server": "^3.0.0",
44 | "trim": "0.0.1",
45 | "webdriverio": "^2.4.5",
46 | "webpack-stream": "^2.1.1"
47 | },
48 | "scripts": {
49 | "test": "node test/index"
50 | },
51 | "dependencies": {
52 | "shaven": "^0.7.3"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/assets/js/src/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | Holder.js - client side image placeholders
3 | (c) 2012-2015 Ivan Malopinsky - http://imsky.co
4 | */
5 |
6 | module.exports = require('./lib');
7 |
--------------------------------------------------------------------------------
/assets/js/src/lib/constants.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'version': '%version%',
3 | 'svg_ns': 'http://www.w3.org/2000/svg'
4 | };
--------------------------------------------------------------------------------
/assets/js/src/lib/dom.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Generic new DOM element function
3 | *
4 | * @param tag Tag to create
5 | * @param namespace Optional namespace value
6 | */
7 | exports.newEl = function(tag, namespace) {
8 | if (!global.document) return;
9 |
10 | if (namespace == null) {
11 | return global.document.createElement(tag);
12 | } else {
13 | return global.document.createElementNS(namespace, tag);
14 | }
15 | };
16 |
17 | /**
18 | * Generic setAttribute function
19 | *
20 | * @param el Reference to DOM element
21 | * @param attrs Object with attribute keys and values
22 | */
23 | exports.setAttr = function (el, attrs) {
24 | for (var a in attrs) {
25 | el.setAttribute(a, attrs[a]);
26 | }
27 | };
28 |
29 | /**
30 | * Creates a XML document
31 | * @private
32 | */
33 | exports.createXML = function() {
34 | if (!global.DOMParser) return;
35 | return new DOMParser().parseFromString('', 'application/xml');
36 | };
37 |
38 | /**
39 | * Converts a value into an array of DOM nodes
40 | *
41 | * @param val A string, a NodeList, a Node, or an HTMLCollection
42 | */
43 | exports.getNodeArray = function(val) {
44 | var retval = null;
45 | if (typeof(val) == 'string') {
46 | retval = document.querySelectorAll(val);
47 | } else if (global.NodeList && val instanceof global.NodeList) {
48 | retval = val;
49 | } else if (global.Node && val instanceof global.Node) {
50 | retval = [val];
51 | } else if (global.HTMLCollection && val instanceof global.HTMLCollection) {
52 | retval = val;
53 | } else if (val instanceof Array) {
54 | retval = val;
55 | } else if (val === null) {
56 | retval = [];
57 | }
58 |
59 | retval = Array.prototype.slice.call(retval);
60 |
61 | return retval;
62 | };
63 |
--------------------------------------------------------------------------------
/assets/js/src/lib/renderers/canvas.js:
--------------------------------------------------------------------------------
1 | var DOM = require('../dom');
2 | var utils = require('../utils');
3 |
4 | module.exports = (function() {
5 | var canvas = DOM.newEl('canvas');
6 | var ctx = null;
7 |
8 | return function(sceneGraph) {
9 | if (ctx == null) {
10 | ctx = canvas.getContext('2d');
11 | }
12 |
13 | var dpr = utils.canvasRatio();
14 | var root = sceneGraph.root;
15 | canvas.width = dpr * root.properties.width;
16 | canvas.height = dpr * root.properties.height ;
17 | ctx.textBaseline = 'middle';
18 |
19 | var bg = root.children.holderBg;
20 | var bgWidth = dpr * bg.width;
21 | var bgHeight = dpr * bg.height;
22 | //todo: parametrize outline width (e.g. in scene object)
23 | var outlineWidth = 2;
24 | var outlineOffsetWidth = outlineWidth / 2;
25 |
26 | ctx.fillStyle = bg.properties.fill;
27 | ctx.fillRect(0, 0, bgWidth, bgHeight);
28 |
29 | if (bg.properties.outline) {
30 | //todo: abstract this into a method
31 | ctx.strokeStyle = bg.properties.outline.fill;
32 | ctx.lineWidth = bg.properties.outline.width;
33 | ctx.moveTo(outlineOffsetWidth, outlineOffsetWidth);
34 | // TL, TR, BR, BL
35 | ctx.lineTo(bgWidth - outlineOffsetWidth, outlineOffsetWidth);
36 | ctx.lineTo(bgWidth - outlineOffsetWidth, bgHeight - outlineOffsetWidth);
37 | ctx.lineTo(outlineOffsetWidth, bgHeight - outlineOffsetWidth);
38 | ctx.lineTo(outlineOffsetWidth, outlineOffsetWidth);
39 | // Diagonals
40 | ctx.moveTo(0, outlineOffsetWidth);
41 | ctx.lineTo(bgWidth, bgHeight - outlineOffsetWidth);
42 | ctx.moveTo(0, bgHeight - outlineOffsetWidth);
43 | ctx.lineTo(bgWidth, outlineOffsetWidth);
44 | ctx.stroke();
45 | }
46 |
47 | var textGroup = root.children.holderTextGroup;
48 | ctx.font = textGroup.properties.font.weight + ' ' + (dpr * textGroup.properties.font.size) + textGroup.properties.font.units + ' ' + textGroup.properties.font.family + ', monospace';
49 | ctx.fillStyle = textGroup.properties.fill;
50 |
51 | for (var lineKey in textGroup.children) {
52 | var line = textGroup.children[lineKey];
53 | for (var wordKey in line.children) {
54 | var word = line.children[wordKey];
55 | var x = dpr * (textGroup.x + line.x + word.x);
56 | var y = dpr * (textGroup.y + line.y + word.y + (textGroup.properties.leading / 2));
57 |
58 | ctx.fillText(word.properties.text, x, y);
59 | }
60 | }
61 |
62 | return canvas.toDataURL('image/png');
63 | };
64 | })();
--------------------------------------------------------------------------------
/assets/js/src/lib/vendor/querystring.js:
--------------------------------------------------------------------------------
1 | //Modified version of component/querystring
2 | //Changes: updated dependencies, dot notation parsing, JSHint fixes
3 | //Fork at https://github.com/imsky/querystring
4 |
5 | /**
6 | * Module dependencies.
7 | */
8 |
9 | var encode = encodeURIComponent;
10 | var decode = decodeURIComponent;
11 | var trim = require('trim');
12 | var type = require('component-type');
13 |
14 | var arrayRegex = /(\w+)\[(\d+)\]/;
15 | var objectRegex = /\w+\.\w+/;
16 |
17 | /**
18 | * Parse the given query `str`.
19 | *
20 | * @param {String} str
21 | * @return {Object}
22 | * @api public
23 | */
24 |
25 | exports.parse = function(str){
26 | if ('string' !== typeof str) return {};
27 |
28 | str = trim(str);
29 | if ('' === str) return {};
30 | if ('?' === str.charAt(0)) str = str.slice(1);
31 |
32 | var obj = {};
33 | var pairs = str.split('&');
34 | for (var i = 0; i < pairs.length; i++) {
35 | var parts = pairs[i].split('=');
36 | var key = decode(parts[0]);
37 | var m, ctx, prop;
38 |
39 | if (m = arrayRegex.exec(key)) {
40 | obj[m[1]] = obj[m[1]] || [];
41 | obj[m[1]][m[2]] = decode(parts[1]);
42 | continue;
43 | }
44 |
45 | if (m = objectRegex.test(key)) {
46 | m = key.split('.');
47 | ctx = obj;
48 |
49 | while (m.length) {
50 | prop = m.shift();
51 |
52 | if (!prop.length) continue;
53 |
54 | if (!ctx[prop]) {
55 | ctx[prop] = {};
56 | } else if (ctx[prop] && typeof ctx[prop] !== 'object') {
57 | break;
58 | }
59 |
60 | if (!m.length) {
61 | ctx[prop] = decode(parts[1]);
62 | }
63 |
64 | ctx = ctx[prop];
65 | }
66 |
67 | continue;
68 | }
69 |
70 | obj[parts[0]] = null == parts[1] ? '' : decode(parts[1]);
71 | }
72 |
73 | return obj;
74 | };
75 |
76 | /**
77 | * Stringify the given `obj`.
78 | *
79 | * @param {Object} obj
80 | * @return {String}
81 | * @api public
82 | */
83 |
84 | exports.stringify = function(obj){
85 | if (!obj) return '';
86 | var pairs = [];
87 |
88 | for (var key in obj) {
89 | var value = obj[key];
90 |
91 | if ('array' == type(value)) {
92 | for (var i = 0; i < value.length; ++i) {
93 | pairs.push(encode(key + '[' + i + ']') + '=' + encode(value[i]));
94 | }
95 | continue;
96 | }
97 |
98 | pairs.push(encode(key) + '=' + encode(obj[key]));
99 | }
100 |
101 | return pairs.join('&');
102 | };
103 |
--------------------------------------------------------------------------------
/assets/js/src/meteor/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | summary: '%summary%',
3 | version: '%version%',
4 | name: 'imsky:holder',
5 | git: 'https://github.com/imsky/holder',
6 | });
7 |
8 | Package.onUse(function(api) {
9 | api.versionsFrom('0.9.0');
10 | api.export('Holder', 'client');
11 | api.addFiles('holder.js', 'client');
12 | });
13 |
--------------------------------------------------------------------------------
/assets/js/src/meteor/shim.js:
--------------------------------------------------------------------------------
1 | (function(ctx, isMeteorPackage) {
2 | if (isMeteorPackage) {
3 | Holder = ctx.Holder;
4 | }
5 | })(this, typeof Meteor !== 'undefined' && typeof Package !== 'undefined');
6 |
--------------------------------------------------------------------------------
/assets/js/test/.gitignore:
--------------------------------------------------------------------------------
1 | benchmark.js
2 | lodash.js
3 | require.js
4 | test.js
5 | ua-parser.js
6 | *.svg
7 | *.woff
8 | *.ttf
9 | *.png
10 | !index.html
11 | !detach.html
12 |
--------------------------------------------------------------------------------
/assets/js/test/detach.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Holder Detached DOM Testing
5 |
6 |
13 |
14 |
15 |
31 |
32 |
33 |
34 |
35 |
![]()
36 |
37 | Plain placeholder
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/assets/js/test/holder.js:
--------------------------------------------------------------------------------
1 | ../holder.js
--------------------------------------------------------------------------------
/assets/js/test/image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/assets/js/test/image.jpg
--------------------------------------------------------------------------------
/assets/js/test/index.js:
--------------------------------------------------------------------------------
1 | var runner = require('./runner');
2 | var server = require('node-http-server');
3 |
4 | server.deploy({
5 | 'port': 8000,
6 | 'root': __dirname
7 | });
8 |
9 | runner({
10 | 'browserName': 'chrome'
11 | }, function (err, retval) {
12 | console.log('Test result: ', retval);
13 |
14 | if (!retval) {
15 | process.exitCode = -1;
16 | }
17 |
18 | process.exit();
19 | });
--------------------------------------------------------------------------------
/assets/js/test/phantom.js:
--------------------------------------------------------------------------------
1 | var page = require('webpage').create();
2 |
3 | page.onConsoleMessage = function (message) {
4 | console.log('Page: ', message);
5 | };
6 |
7 | page.open('index.html', function (status) {
8 | console.log(status);
9 |
10 | if (status === 'success') {
11 | page.render('phantom.png');
12 | }
13 |
14 | phantom.exit();
15 | });
16 |
--------------------------------------------------------------------------------
/assets/js/test/renderperf/.gitignore:
--------------------------------------------------------------------------------
1 | releases/*
2 | !releases/holder-master
3 |
--------------------------------------------------------------------------------
/assets/js/test/renderperf/fps.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Holder.js Render Benchmark
5 |
6 |
9 |
10 |
11 |
12 | Test is running…
13 |
14 |
15 |
16 |
40 |
41 |
--------------------------------------------------------------------------------
/assets/js/test/renderperf/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Holder.js Render Performance Benchmark
5 |
6 |
7 |
8 |
9 |
58 |
59 |
--------------------------------------------------------------------------------
/assets/js/test/renderperf/releases/holder-master/holder.js:
--------------------------------------------------------------------------------
1 | ../../../../holder.js
--------------------------------------------------------------------------------
/assets/js/test/renderperf/setup.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | RELEASES=(v1.0 v1.1 v1.2 v1.3 v1.4 v1.5 v1.6 v1.7 v1.8 v1.9 1.9.0 v2.0 v2.1.0 v2.2.0 v2.3.0 v2.3.2 v2.4.0 v2.5.0 v2.5.2 v2.6.0 v2.6.1 v2.7.0 v2.7.1 v2.8.0 v2.8.1 v2.8.2)
4 |
5 | mkdir -p releases
6 |
7 | for release in ${RELEASES[*]}
8 | do
9 | echo "Downloading Holder $release"
10 | wget -qO- https://github.com/imsky/holder/archive/$release.tar.gz | tar xz -C releases/
11 | done
--------------------------------------------------------------------------------
/assets/js/test/renderperf/testcase.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Holder.js Render Benchmark
5 |
6 |
7 |
8 | Test is running…
9 |
10 |
11 |
40 |
41 |
--------------------------------------------------------------------------------
/assets/js/test/runner.js:
--------------------------------------------------------------------------------
1 | var client = require('webdriverio');
2 |
3 | module.exports = function (options, cb) {
4 | var retval = true;
5 |
6 | client.remote({
7 | 'user': process.env.SAUCE_USERNAME,
8 | 'key': process.env.SAUCE_ACCESS_KEY,
9 | 'host': 'localhost',
10 | 'port': 4445,
11 | 'desiredCapabilities': {
12 | 'browserName': options.browserName,
13 | 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
14 | 'name': 'Holder.js Test',
15 | 'tags': [options.browserName]
16 | }
17 | })
18 | .init()
19 | .url('http://localhost:8000')
20 | .execute(function () {
21 | var expectImages = document.querySelectorAll('img').length - document.querySelectorAll('img[data-exclude]').length;
22 | var renderedImages = document.querySelectorAll('img[data-holder-rendered]').length;
23 | return {'expected': expectImages, 'rendered': renderedImages};
24 | }, function (err, ret) {
25 | var expected = ret.value.expected;
26 | var rendered = ret.value.rendered;
27 | console.log('Expected', expected);
28 | console.log('Rendered', rendered);
29 | if (expected !== rendered) {
30 | retval = false;
31 | }
32 | })
33 | .pause(15 * 1000)
34 | .end(function () {
35 | cb(null, retval);
36 | });
37 | };
38 |
--------------------------------------------------------------------------------
/assets/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/assets/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/assets/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/assets/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/assets/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/assets/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/assets/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/assets/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/assets/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/assets/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/assets/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/assets/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/assets/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/assets/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/assets/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/assets/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/assets/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/assets/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/assets/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/assets/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/assets/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/assets/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "The CodeIgniter framework",
3 | "name": "codeigniter/framework",
4 | "type": "project",
5 | "homepage": "https://codeigniter.com",
6 | "license": "MIT",
7 | "support": {
8 | "forum": "http://forum.codeigniter.com/",
9 | "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki",
10 | "irc": "irc://irc.freenode.net/codeigniter",
11 | "source": "https://github.com/bcit-ci/CodeIgniter"
12 | },
13 | "require": {
14 | "php": ">=5.3.7"
15 | },
16 | "suggest": {
17 | "paragonie/random_compat": "Provides better randomness in PHP 5.x"
18 | },
19 | "require-dev": {
20 | "mikey179/vfsStream": "1.1.*",
21 | "phpunit/phpunit": "4.* || 5.*"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/js/dashboard.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | function getData() {
4 |
5 | var formData = {
6 | 'id': 1
7 | };
8 |
9 | console.log(formData['id']);
10 |
11 | $.ajax({
12 | type: 'POST',
13 | url: '',
14 | data: formData,
15 | async: false,
16 | beforeSend: function (xhr) {
17 | if (xhr && xhr.overrideMimeType) {
18 | xhr.overrideMimeType('application/json;charset=utf-8');
19 | }
20 | },
21 | dataType: 'json',
22 | success: function (data) {
23 | //Do stuff with the JSON data
24 | }
25 | });
26 | }
27 |
28 | getData();
29 |
30 | });
--------------------------------------------------------------------------------
/license.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 - 2017, British Columbia Institute of Technology
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "chat-app",
3 | "version": "1.0.0",
4 | "description": "Chatting App using the WebRTC concept",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/afiefsky/chatapp-with-codeigniter-ajax.git"
12 | },
13 | "author": "afiefsky",
14 | "license": "ISC",
15 | "bugs": {
16 | "url": "https://github.com/afiefsky/chatapp-with-codeigniter-ajax/issues"
17 | },
18 | "homepage": "https://github.com/afiefsky/chatapp-with-codeigniter-ajax#readme"
19 | }
20 |
--------------------------------------------------------------------------------
/readme.rst:
--------------------------------------------------------------------------------
1 | ###################
2 | ChatApp CodeIgniter Ajax
3 | ###################
4 |
5 | This is an application which I develop back then during college, back then the purpose is to help friend creating a javascript setInterval-based chat application.
6 | Nowadays a chat technology mostly use socket (i.e: socket.io), but this one can be used as basic understanding on how chatapp works without using any npm library.
7 | There is a lot of messy code within controllers, views, even models. A lot of my friend still asked me about this repo even though there is a lot of better simple chat app out there.
8 | Based on that reason, this app will be developed into a very basic one so even my friend can understand about how it works.
9 |
--------------------------------------------------------------------------------
/system/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | Require all denied
3 |
4 |
5 | Deny from all
6 |
7 |
8 | RewriteCond %{SERVER_PORT} 80
--------------------------------------------------------------------------------
/system/core/Model.php:
--------------------------------------------------------------------------------
1 | $key;
78 | }
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/system/core/compat/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/core/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/cubrid/cubrid_utility.php:
--------------------------------------------------------------------------------
1 | db->data_cache['db_names']))
57 | {
58 | return $this->db->data_cache['db_names'];
59 | }
60 |
61 | return $this->db->data_cache['db_names'] = cubrid_list_dbs($this->db->conn_id);
62 | }
63 |
64 | // --------------------------------------------------------------------
65 |
66 | /**
67 | * CUBRID Export
68 | *
69 | * @param array Preferences
70 | * @return mixed
71 | */
72 | protected function _backup($params = array())
73 | {
74 | // No SQL based support in CUBRID as of version 8.4.0. Database or
75 | // table backup can be performed using CUBRID Manager
76 | // database administration tool.
77 | return $this->db->display_error('db_unsupported_feature');
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/system/database/drivers/cubrid/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/ibase/ibase_utility.php:
--------------------------------------------------------------------------------
1 | db->hostname, $this->db->username, $this->db->password))
58 | {
59 | $res = ibase_backup($service, $this->db->database, $filename.'.fbk');
60 |
61 | // Close the service connection
62 | ibase_service_detach($service);
63 | return $res;
64 | }
65 |
66 | return FALSE;
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/system/database/drivers/ibase/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/mssql/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/mssql/mssql_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/system/database/drivers/mysql/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/mysqli/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/oci8/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/oci8/oci8_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/system/database/drivers/odbc/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/odbc/odbc_forge.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
61 | }
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/pdo_forge.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
61 | }
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/subdrivers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/postgre/postgre_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlite/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlite/sqlite_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlite3/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlite3/sqlite3_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlsrv/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlsrv/sqlsrv_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsupported_feature');
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/system/database/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/fonts/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/fonts/texb.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/system/fonts/texb.ttf
--------------------------------------------------------------------------------
/system/helpers/email_helper.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/helpers/language_helper.php:
--------------------------------------------------------------------------------
1 | lang->line($line);
67 |
68 | if ($for !== '')
69 | {
70 | $line = '';
71 | }
72 |
73 | return $line;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/system/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/language/english/ftp_lang.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/language/english/migration_lang.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/Cache/drivers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/Cache/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/Javascript/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/Session/SessionHandlerInterface.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/Session/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/system/libraries/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 403 Forbidden
5 |
6 |
7 |
8 | Directory access is forbidden.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/uploads/167003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/167003.jpg
--------------------------------------------------------------------------------
/uploads/5Lns4jE.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/5Lns4jE.jpg
--------------------------------------------------------------------------------
/uploads/5Lns4jE1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/5Lns4jE1.jpg
--------------------------------------------------------------------------------
/uploads/Desert.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Desert.jpg
--------------------------------------------------------------------------------
/uploads/FOD-_ActivityDiagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/FOD-_ActivityDiagram.jpg
--------------------------------------------------------------------------------
/uploads/Jellyfish.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Jellyfish.jpg
--------------------------------------------------------------------------------
/uploads/LEMBAR_PENGESAHAN_DOSEN_PEMBIMBING_AGUNG.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/LEMBAR_PENGESAHAN_DOSEN_PEMBIMBING_AGUNG.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v10.pdf
--------------------------------------------------------------------------------
/uploads/Laporan_v101.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v101.pdf
--------------------------------------------------------------------------------
/uploads/Laporan_v2.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v2.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v21.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v21.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v22.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v22.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v23.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v23.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v24.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v24.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v25.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v25.docx
--------------------------------------------------------------------------------
/uploads/Laporan_v4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/Laporan_v4.pdf
--------------------------------------------------------------------------------
/uploads/ava.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava.jpg
--------------------------------------------------------------------------------
/uploads/ava1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava1.jpg
--------------------------------------------------------------------------------
/uploads/ava2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava2.jpg
--------------------------------------------------------------------------------
/uploads/ava3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava3.jpg
--------------------------------------------------------------------------------
/uploads/ava4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava4.jpg
--------------------------------------------------------------------------------
/uploads/ava5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/ava5.jpg
--------------------------------------------------------------------------------
/uploads/avatars/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/1.png
--------------------------------------------------------------------------------
/uploads/avatars/1501904638307.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/1501904638307.jpg
--------------------------------------------------------------------------------
/uploads/avatars/167003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/167003.jpg
--------------------------------------------------------------------------------
/uploads/avatars/FOD-_ActivityDiagram.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/FOD-_ActivityDiagram.jpg
--------------------------------------------------------------------------------
/uploads/avatars/FOD-_ActivityDiagram1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/FOD-_ActivityDiagram1.jpg
--------------------------------------------------------------------------------
/uploads/avatars/IMG_0199.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/IMG_0199.JPG
--------------------------------------------------------------------------------
/uploads/avatars/IMG_20160109_120132_1_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/IMG_20160109_120132_1_1.jpg
--------------------------------------------------------------------------------
/uploads/avatars/YO2jGz3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/YO2jGz3.jpg
--------------------------------------------------------------------------------
/uploads/avatars/default.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/default.jpeg
--------------------------------------------------------------------------------
/uploads/avatars/images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/images.png
--------------------------------------------------------------------------------
/uploads/avatars/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/logo.png
--------------------------------------------------------------------------------
/uploads/avatars/logo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/avatars/logo1.png
--------------------------------------------------------------------------------
/uploads/eromanga_sensei-sagiri_izumi-anime-(17819).jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/eromanga_sensei-sagiri_izumi-anime-(17819).jpg
--------------------------------------------------------------------------------
/uploads/eromanga_sensei-sagiri_izumi-anime-(17819)1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/eromanga_sensei-sagiri_izumi-anime-(17819)1.jpg
--------------------------------------------------------------------------------
/uploads/eromanga_sensei-sagiri_izumi-anime-(17835).jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/eromanga_sensei-sagiri_izumi-anime-(17835).jpg
--------------------------------------------------------------------------------
/uploads/hqdefault.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/hqdefault.jpg
--------------------------------------------------------------------------------
/uploads/mpdf.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/mpdf.pdf
--------------------------------------------------------------------------------
/uploads/phone-call-icon-759235.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/phone-call-icon-759235.png
--------------------------------------------------------------------------------
/uploads/starrynight2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/afiefsky/chatapp-codeigniter-ajax/86925dc4fbb288731794bbf60cb1f921b0047cac/uploads/starrynight2.jpg
--------------------------------------------------------------------------------