├── _config.yml ├── assets ├── img │ ├── logo.png │ ├── logo@3x.png │ ├── main-bg.png │ ├── bg-element.png │ ├── button-field.png │ ├── button-frame.png │ ├── play-button.png │ ├── rectangle-2.png │ ├── bg-element@3x.png │ ├── multiple-select.png │ └── video-background.png ├── fonts │ ├── ionicons.eot │ ├── ionicons.ttf │ └── ionicons.woff ├── js │ └── flatpickr_l10n │ │ ├── ja.js │ │ ├── he.js │ │ ├── ar.js │ │ ├── bg.js │ │ ├── pa.js │ │ ├── sq.js │ │ ├── hi.js │ │ ├── ko.js │ │ ├── si.js │ │ ├── bn.js │ │ ├── tr.js │ │ ├── ru.js │ │ ├── uk.js │ │ ├── hr.js │ │ ├── da.js │ │ ├── lv.js │ │ ├── pl.js │ │ ├── vn.js │ │ ├── fa.js │ │ ├── pt.js │ │ ├── cs.js │ │ ├── ms.js │ │ ├── id.js │ │ ├── zh.js │ │ ├── es.js │ │ ├── my.js │ │ ├── ro.js │ │ ├── mk.js │ │ ├── sk.js │ │ ├── sr.js │ │ ├── fi.js │ │ ├── sv.js │ │ ├── sl.js │ │ ├── de.js │ │ ├── it.js │ │ ├── hu.js │ │ ├── th.js │ │ ├── no.js │ │ ├── lt.js │ │ ├── et.js │ │ ├── eo.js │ │ ├── cat.js │ │ ├── fr.js │ │ ├── nl.js │ │ ├── gr.js │ │ ├── cy.js │ │ └── index.js └── css │ └── pdf.css ├── .gitignore ├── templates ├── student_badges.mustache ├── access_alert.mustache ├── instructor_dashboard_settings.mustache ├── parts_table_bottom.mustache └── student_badges_courses_field.mustache ├── amd ├── build │ ├── intelliboard.min.js │ ├── instructor.min.js │ └── intb_circlechart.min.js └── src │ ├── intelliboard.js │ └── instructor.js ├── classes ├── repositories │ ├── user_settings.php │ └── modules_repository.php ├── attendance │ ├── OAuthException.php │ ├── reports │ │ ├── attendance_report_interface.php │ │ ├── lateness_percent_table.php │ │ ├── persistent_absence.php │ │ ├── perfect_attendance.php │ │ ├── attendance_ytd_table.php │ │ ├── consecutive_absences.php │ │ ├── attendance_report.php │ │ └── course_enrollments.php │ ├── OAuthSignatureMethod.php │ ├── OAuthConsumer.php │ ├── OAuthSignatureMethod_HMAC_SHA1.php │ └── OAuthUtil.php ├── tools │ ├── lti_tool.php │ ├── bb_collaborate_tool.php │ └── os_classifier.php ├── output │ └── renderer.php ├── bb_collaborate │ ├── session_attendances.php │ └── bb_collaborate_repository.php ├── task │ ├── check_active_bbb_meetings.php │ └── attendance_sync.php └── instructorlib.php ├── .travis.yml ├── README.md ├── views ├── footer.php ├── export_filter.php ├── report44.php └── menu.php ├── db ├── caches.php ├── messages.php ├── tasks.php ├── events.php └── access.php ├── version.php ├── search └── src │ ├── Helpers │ ├── FunctionHelper.php │ ├── ArrayHelper.php │ ├── ParamGetter.php │ └── PluralHelper.php │ ├── Containers │ ├── BaseContainer.php │ ├── HavingsContainer.php │ ├── GroupsContainer.php │ └── OrdersContainer.php │ └── autoload.php ├── config.php ├── tests └── local_intelliboard_tracking_test.php ├── sqlreports.php ├── attendance ├── launch.php ├── attendancelib.php └── index.php ├── competencies ├── views │ └── menu.php └── reports.php ├── output ├── forms │ └── local_intelliboard_sqlreport.php └── tables │ └── reports_table.php ├── instructor ├── monitors.php ├── reports.php ├── analytics.php └── views │ └── menu.php ├── monitors.php ├── student ├── badges.php └── reports.php ├── sqlreport.php └── reports.php /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/logo.png -------------------------------------------------------------------------------- /assets/img/logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/logo@3x.png -------------------------------------------------------------------------------- /assets/img/main-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/main-bg.png -------------------------------------------------------------------------------- /assets/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/fonts/ionicons.eot -------------------------------------------------------------------------------- /assets/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/fonts/ionicons.ttf -------------------------------------------------------------------------------- /assets/img/bg-element.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/bg-element.png -------------------------------------------------------------------------------- /assets/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/fonts/ionicons.woff -------------------------------------------------------------------------------- /assets/img/button-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/button-field.png -------------------------------------------------------------------------------- /assets/img/button-frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/button-frame.png -------------------------------------------------------------------------------- /assets/img/play-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/play-button.png -------------------------------------------------------------------------------- /assets/img/rectangle-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/rectangle-2.png -------------------------------------------------------------------------------- /assets/img/bg-element@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/bg-element@3x.png -------------------------------------------------------------------------------- /assets/img/multiple-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/multiple-select.png -------------------------------------------------------------------------------- /assets/img/video-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marinaglancy/intelliboard/master/assets/img/video-background.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Add any directories, files, or patterns you don't want to be tracked by version control 2 | 3 | .DS_Store 4 | .idea 5 | -------------------------------------------------------------------------------- /templates/student_badges.mustache: -------------------------------------------------------------------------------- 1 |
"; 49 | print "Debug info:"; 50 | var_dump($arg); 51 | print ""; 52 | 53 | if ($backtrace) { 54 | debug_print_backtrace(); 55 | } 56 | if ($stop) { 57 | die(); 58 | } 59 | } 60 | 61 | -------------------------------------------------------------------------------- /classes/output/renderer.php: -------------------------------------------------------------------------------- 1 | . 14 | 15 | namespace local_intelliboard\output; 16 | defined('MOODLE_INTERNAL') || die; 17 | 18 | use plugin_renderer_base; 19 | 20 | /** 21 | * Renderer file. 22 | * 23 | * @package local_intelliboard 24 | * @author Intelliboard 25 | * @copyright 2019 26 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL 27 | */ 28 | 29 | /** 30 | * Standard HTML output renderer for intelliboard 31 | */ 32 | class renderer extends plugin_renderer_base { 33 | /** 34 | * Constructor method, calls the parent constructor 35 | * 36 | * @param \moodle_page $page 37 | * @param string $target one of rendering target constants 38 | */ 39 | public function __construct(\moodle_page $page, $target) { 40 | parent::__construct($page, $target); 41 | } 42 | 43 | /** 44 | * Return the dashboard content for the intellicart. 45 | * 46 | * @param student_menu $studentmenu 47 | * @return string HTML string 48 | * @throws \coding_exception 49 | * @throws \dml_exception 50 | * @throws \moodle_exception 51 | */ 52 | public function render_student_menu(student_menu $studentmenu) { 53 | return $this->render_from_template( 54 | 'local_intelliboard/student_menu', $studentmenu->export_for_template($this) 55 | ); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /sqlreports.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * This plugin provides access to Moodle data in form of analytics and reports in real time. 19 | * 20 | * 21 | * @package local_intelliboard 22 | * @copyright 2018 IntelliBoard, Inc 23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 | * @website https://intelliboard.net/ 25 | */ 26 | 27 | require('../../config.php'); 28 | require_once($CFG->libdir.'/adminlib.php'); 29 | require_once($CFG->dirroot .'/local/intelliboard/locallib.php'); 30 | require_once($CFG->dirroot . '/local/intelliboard/output/tables/reports_table.php'); 31 | 32 | require_login(); 33 | admin_externalpage_setup('intelliboardsql'); 34 | 35 | if (!is_siteadmin()) { 36 | throw new moodle_exception('invalidaccess', 'error'); 37 | } 38 | if (isset($CFG->intelliboardsql) and $CFG->intelliboardsql == false) { 39 | throw new moodle_exception('invalidaccess', 'error'); 40 | } 41 | 42 | $intelliboard = intelliboard(['task'=>'sqlreports']); 43 | 44 | $table = new reports_table('reports_table'); 45 | $table->show_download_buttons_at(array()); 46 | $table->is_downloading(false); 47 | $table->is_collapsible = false; 48 | 49 | echo $OUTPUT->header(); 50 | 51 | echo $OUTPUT->heading(get_string('sqlreports', 'local_intelliboard')); 52 | 53 | $table->out(20, true); 54 | 55 | echo $OUTPUT->footer(); 56 | -------------------------------------------------------------------------------- /classes/attendance/OAuthSignatureMethod_HMAC_SHA1.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * This plugin provides access to Moodle data in form of analytics and reports in real time. 19 | * 20 | * @package local_intelliboard 21 | * @copyright 2019 IntelliBoard, Inc 22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 | * @website http://intelliboard.net/ 24 | */ 25 | 26 | namespace local_intelliboard\attendance; 27 | 28 | class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { 29 | function get_name() { 30 | return "HMAC-SHA1"; 31 | } 32 | 33 | public function build_signature($request, $consumer, $token) { 34 | global $oauth_last_computed_signature; 35 | $oauth_last_computed_signature = false; 36 | 37 | $base_string = $request->get_signature_base_string(); 38 | $request->base_string = $base_string; 39 | 40 | $key_parts = array( 41 | $consumer->secret, 42 | ($token) ? $token->secret : "" 43 | ); 44 | 45 | $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); 46 | $key = implode('&', $key_parts); 47 | 48 | $computed_signature = base64_encode(hash_hmac('sha1', $base_string, $key, true)); 49 | $oauth_last_computed_signature = $computed_signature; 50 | return $computed_signature; 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /search/src/Containers/GroupsContainer.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * This plugin provides access to Moodle data in form of analytics and reports in real time. 19 | * 20 | * @package local_intelliboard 21 | * @copyright 2019 IntelliBoard, Inc 22 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 | * @website http://intelliboard.net/ 24 | */ 25 | 26 | namespace Containers; 27 | 28 | use DataExtractor; 29 | 30 | class GroupsContainer extends BaseContainer{ 31 | 32 | public static function get($selected, DataExtractor $extractor, $params = array()) { 33 | $mode = $extractor->getMode(); 34 | 35 | return array_map(function($group) use ($extractor, $mode) { 36 | 37 | if (empty($group['name'])) { 38 | $column = ColumnsContainer::get($group, $extractor)['sql']; 39 | $group['name'] = $column; 40 | } else { 41 | $group['name'] = is_numeric($group['name'])? ColumnsContainer::getById($group['name'], $extractor)['name'] : $group['name']; 42 | } 43 | 44 | return $group['name']; 45 | 46 | }, $selected); 47 | } 48 | 49 | public static function construct($groups, DataExtractor $extractor, $params = array()) { 50 | return implode(',' . $extractor->getSeparator() . ' ', $groups) . $extractor->getSeparator(); 51 | } 52 | 53 | } -------------------------------------------------------------------------------- /views/report44.php: -------------------------------------------------------------------------------- 1 | . 16 | 17 | /** 18 | * This plugin provides access to Moodle data in form of analytics and reports in real time. 19 | * 20 | * 21 | * @package local_intelliboard 22 | * @copyright 2017 IntelliBoard, Inc 23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 | * @website http://intelliboard.net/ 25 | */ 26 | ?> 27 |
37 |
38 | debugging; ?>
39 |
40 |
41 |
42 |
43 |
44 | alerts): ?>
45 | alerts as $key => $value): ?>
46 |
47 |
48 |
49 |
50 |
51 |
80 |
--------------------------------------------------------------------------------
/instructor/analytics.php:
--------------------------------------------------------------------------------
1 | .
16 |
17 | /**
18 | * This plugin provides access to Moodle data in form of analytics and reports in real time.
19 | *
20 | *
21 | * @package local_intelliboard
22 | * @copyright 2017 IntelliBoard, Inc
23 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 | * @website https://intelliboard.net/
25 | */
26 |
27 | require('../../../config.php');
28 | require_once($CFG->dirroot .'/local/intelliboard/locallib.php');
29 | require_once($CFG->dirroot .'/local/intelliboard/instructor/lib.php');
30 | require_once('../externallib.php');
31 |
32 |
33 | $id = required_param('id', PARAM_INT);
34 | $page = optional_param('page', 0, PARAM_INT);
35 | $length = optional_param('length', 20, PARAM_INT);
36 | $action = optional_param('action', '', PARAM_RAW);
37 | $courseid = optional_param('courseid', 0, PARAM_INT);
38 | $cohortid = optional_param('cohortid', 0, PARAM_INT);
39 | $custom = optional_param('custom', 0, PARAM_INT);
40 | $custom2 = optional_param('custom2', 0, PARAM_INT);
41 | $daterange = clean_raw(optional_param('daterange', '', PARAM_RAW));
42 |
43 | require_login();
44 | intelliboard_instructor_access();
45 |
46 | if ($action == 'export_pdf' || $action == 'export_excel' || $action == 'export_csv'){
47 | include("analytic_templates/analytic_export_$id.php");
48 | exit;
49 | }
50 |
51 | $params = array(
52 | 'do'=>'instructor',
53 | 'mode'=> 2
54 | );
55 | $intelliboard = intelliboard($params);
56 | $factorInfo = chart_options();
57 |
58 | $PAGE->set_url(new moodle_url("/local/intelliboard/instructor/analytics.php"));
59 | $PAGE->set_pagetype('analytics');
60 | $PAGE->set_pagelayout('report');
61 | $PAGE->set_context(context_system::instance());
62 | $PAGE->set_title(get_string('intelliboardroot', 'local_intelliboard'));
63 | $PAGE->set_heading(get_string('intelliboardroot', 'local_intelliboard'));
64 | $PAGE->requires->jquery();
65 | $PAGE->requires->js('/local/intelliboard/assets/js/jquery.multiple.select.js');
66 | $PAGE->requires->js('/local/intelliboard/assets/js/flatpickr.min.js');
67 | if(file_exists('/local/intelliboard/assets/js/flatpickr_l10n/'.current_language().'.js')) {
68 | $PAGE->requires->js('/local/intelliboard/assets/js/flatpickr_l10n/'.current_language().'.js');
69 | }
70 | $PAGE->requires->css('/local/intelliboard/assets/css/style.css');
71 | $PAGE->requires->css('/local/intelliboard/assets/css/multiple-select.css');
72 | $PAGE->requires->css('/local/intelliboard/assets/css/flatpickr.min.css');
73 |
74 | echo $OUTPUT->header();
75 | ?>
76 | token): ?>
77 |
78 |
79 | ';?>
80 |