Skip to content
Snippets Groups Projects
Commit 57e337f2 authored by Engr_hammad_patel's avatar Engr_hammad_patel
Browse files

updated version on 3.3

parent eec07799
Branches
No related tags found
No related merge requests found
Showing
with 4056 additions and 146 deletions
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
......@@ -14,34 +13,33 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
require_once('../../config.php');
require_once('learning_plan_form.php');
require_once("lib.php");
global $DB;
$attributes = array();
$lp_id = required_param('id', PARAM_INT); // $_GET['id'];
$u_id = optional_param('u_id', null, PARAM_INT); // $_GET['u_id'];
$t = optional_param('t', null, PARAM_INT); // $_GET['t'];
$t_id = optional_param('t_id', null, PARAM_INT); // $_GET['t_id'];
$status = optional_param('status', null, PARAM_INT); // $_GET['status'];
$hidetraining = optional_param('hidetraining', null, PARAM_INT); // $_GET['hidetraining'];
$hideusers = optional_param('hideusers', null, PARAM_INT); //$_GET['hideusers'];
$lp_id = required_param('id', PARAM_INT);
$u_id = optional_param('u_id', null, PARAM_INT);
$t = optional_param('t', null, PARAM_INT);
$t_id = optional_param('t_id', null, PARAM_INT);
$status = optional_param('status', null, PARAM_INT);
$hidetraining = optional_param('hidetraining', null, PARAM_INT);
$hideusers = optional_param('hideusers', null, PARAM_INT);
$t_type_id = optional_param('t_type_id', null, PARAM_INT);
$g_id = optional_param('g_id', null, PARAM_INT);
if (!isloggedin()) {
redirect($CFG->wwwroot);
}
require_login(NULL, false);
require_login(null, false);
$PAGE->set_context(context_system::instance());
$PAGE->set_url('/blocks/learning_plan/ajax_bridge.php');
......@@ -62,7 +60,7 @@ if ($lp_id && $t_id) {
where lp_id= ?', array($lp_id), $limitfrom = 0, $limitnum = 0);
}
// Change users on the base of Learning plan
// Change users on the base of Learning plan.
else if ($lp_id && $hidetraining) {
$attributes1 = $DB->get_records_sql_menu('SELECT id, training_name as name from {learning_training} where type_id=?', array($t_type_id), $limitfrom = 0, $limitnum = 0);
$attributes2 = $DB->get_records_sql_menu('SELECT t_id as id, (SELECT training_name from {learning_training} where id =t_id) as name from {learning_plan_training}
......
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
......@@ -14,30 +13,35 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
defined('MOODLE_INTERNAL') || die();
require_once(realpath(dirname(__FILE__) . '/lib.php'));
/**
* Class to display content on block to access a page.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_learning_plan extends block_base {
public function init() {
global $CFG, $USER, $COURSE;
$this->title = get_string('learning_plan', 'block_learning_plan');
}
public function get_content() {
if ($this->content !== null) {
return $this->content;
}
global $CFG, $USER, $COURSE, $PAGE, $DB;
if (has_capability('block/learning_plan:managepages', $this->context)) {
......@@ -47,17 +51,18 @@ class block_learning_plan extends block_base {
}
$this->content = new stdClass;
$this->content->text = '';
if (has_capability('block/learning_plan:managepages', $this->context)) {
$pageurl = new moodle_url('/blocks/learning_plan/view.php?viewpage');
if (!strpos($pageurl, '=')) {
$pageurl .= '=';
}
$this->content->text .= html_writer::link($pageurl . '1', get_string('learningpath', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '2', get_string('add_training', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '4', get_string('assign_training_learningplan', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '5', get_string('assign_learningplan_user', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '6', get_string('trainingstatus', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '8', get_string('send_notification', 'block_learning_plan')) . '<br>';
$this->content->text .= html_writer::link($pageurl . '7', get_string('search', 'block_learning_plan'));
} else if (has_capability('block/learning_plan:viewpages', $this->context)) {
$pageurl = new moodle_url('/blocks/learning_plan/student/view.php?id');
......
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
defined('MOODLE_INTERNAL') || die();
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
$capabilities = array(
'block/learning_plan:viewmessages' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_COURSE,
'legacy' => array(
'guest' => CAP_PREVENT,
'student' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'coursecreator' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
),
'block/learning_plan:sendmessages' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_COURSE,
'legacy' => array(
'guest' => CAP_PREVENT,
'student' => CAP_PREVENT,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'coursecreator' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
),
'block/learning_plan:viewpages' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_BLOCK,
......@@ -15,6 +60,17 @@ $capabilities = array(
'coursecreator' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
), 'block/learning_plan:myaddinstance' => array(
'riskbitmask' => RISK_PERSONAL,
'captype' => 'read',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'user' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW,
'student' => CAP_ALLOW,
),
'clonepermissionsfrom' => 'moodle/my:manageblocks'
),
'block/learning_plan:addinstance' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,
......@@ -37,5 +93,6 @@ $capabilities = array(
'coursecreator' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
)
),
);
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
$messageproviders = array(
'send' => array(
'capability' => 'block/learning_plan:sendmessages'
),
'view' => array(
'capability' => 'block/learning_plan:viewmessages'
)
);
\ No newline at end of file
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
......@@ -14,16 +13,26 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
* This plugin serves as a database and plan for all learning activities in the organziation,
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
// Ref: http://docs.moodle.org/dev/Upgrade_API.
defined('MOODLE_INTERNAL') || die();
/**
* Checking previous versions allow us to upgrade only the settings that need to be changed
* and avoid changes that might have since been customized by the site administrator.
* @param float old version information
* @return boolean.
*/
// Ref: http://docs.moodle.org/dev/Upgrade_API
function xmldb_block_learning_plan_upgrade($oldversion) {
global $DB;
$plugin = new stdClass();
......
......@@ -13,15 +13,17 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
defined('MOODLE_INTERNAL') || die();
$string['pluginname'] = 'Learning plan';
$string['learning_plan'] = 'Learning plan';
$string['learning_plan_name'] = 'Name';
......@@ -56,8 +58,8 @@ $string['plan_format'] = 'Please add learning plan in correct format.';
$string['plan_exist'] = 'Learning Plan already exist';
$string['training_format'] = 'Please add training in correct format';
$string['training_exist'] = 'Training already exist.';
$string['date_val'] = 'Start date should be greater than end date.';
$string['s_no'] = 'Serial no.';
$string['date_val'] = 'End date should be greater than start date.';
$string['s_no'] = 'S.No.';
$string['wrong_url'] = 'Wrong URL';
$string['elearning'] = 'eLearning';
$string['classroom'] = 'Classroom training';
......@@ -90,3 +92,16 @@ $string['select_user'] = 'Please select user(s)';
$string['user_training'] = 'Please select training';
$string['selectuser'] = 'Please select user';
$string['select_learningplan'] = 'Please select Learning Plan';
$string['notfound'] = 'Record not found!';
$string['messageprovider:learningplan_notification'] = 'Learning plan notification';
$string['learninig_plan:learningplan_notification'] = 'View message';
$string['send_notification'] = 'Notification';
$string['message'] = 'Message';
$string['send_message'] = 'Send message';
$string['notification_sent'] = 'Notification sent';
$string['learning_plan_error'] = 'Learning plan is empty';
$string['messageprovider:view'] = 'View notification';
$string['learninig_plan:view'] = 'Learning plan notification view';
$string['learninig_plan:sendmessages'] = 'Send notification';
$string['learninig_plan:viewmessages'] = 'View notification';
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
......@@ -14,18 +13,23 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
* This plugin serves as a database and plan for all learning activities in the organziation,
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
require_once("{$CFG->libdir}/formslib.php");
// Add Learning Plans.
/**
* Class for add a learning plan.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class learningplan_form extends moodleform {
public function definition() {
......@@ -71,8 +75,10 @@ class learningplan_form extends moodleform {
$table->width = '100%';
$sql = "SELECT id, learning_plan, description from {learning_learningplan}";
$inc = 1;
//$rs = $DB->get_recordset_sql($sql, array(), $page * $perpage, $perpage);
$rs = $DB->get_recordset_sql($sql, array(), null, null);
$rs = $DB->get_recordset_sql($sql, array());
if ($DB->record_exists_sql($sql, array())) {
foreach ($rs as $log) {
$row = array();
$row[] = $inc++;
......@@ -83,6 +89,10 @@ class learningplan_form extends moodleform {
$row[] = '<center><center><a title="' . get_string('delete') . '" href="' . $CFG->wwwroot . '/blocks/learning_plan/view.php?viewpage=1&rem=remove&id=' . $log->id . '"/>
<img alt="" src="' . $OUTPUT->pix_url('t/delete') . '" class="iconsmall"/></a></center>';
$table->data[] = $row;
}
}
else {
$table->data[] = array('', '', get_string('notfound', 'block_learning_plan'), '', '');
}
// $rs->close();
return $table;
......@@ -91,7 +101,12 @@ class learningplan_form extends moodleform {
}
// Add Training Types.
/**
* Class for add a training.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class training_form extends moodleform {
public function definition() {
......@@ -116,7 +131,7 @@ class training_form extends moodleform {
// $mform->addElement('file', 'attachment', get_string('attachment', 'block_learning_plan'), $attributes );
// $mform->addElement('filepicker', 'attachment', get_string('attachment', 'block_learning_plan'), null, $attributes);
$mform->addElement('text', 'url', get_string('url', 'block_learning_plan'));
$mform->addRule('url', get_string('wrong_url', 'block_learning_plan'), 'regex', '/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i', 'client');
$mform->addRule('url', get_string('wrong_url', 'block_learning_plan'), 'regex', '/\b(?:(?:https?|:http?|ftp):\/\/)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i', 'client');
$mform->setType('url', PARAM_LOCALURL);
$mform->addElement('date_time_selector', 'start_date', get_string('start_date', 'block_learning_plan'));
$mform->addElement('date_time_selector', 'end_date', get_string('end_date', 'block_learning_plan'));
......@@ -161,8 +176,9 @@ class training_form extends moodleform {
$table->width = '100%';
$sql = "SELECT id, training_name, type_id, start_date, end_date, url from {learning_training} ";
$inc = 1;
// $rs = $DB->get_recordset_sql($sql, array(), $page * $perpage, $perpage);
$rs = $DB->get_recordset_sql($sql, array(), null, null);
$rs = $DB->get_recordset_sql($sql, array());
if ($DB->record_exists_sql($sql, array())) {
foreach ($rs as $log) {
$row = array();
$row[] = $inc++;
......@@ -190,6 +206,10 @@ class training_form extends moodleform {
$row[] = '<center><center><a title="' . get_string('remove') . '" href="' . $CFG->wwwroot . '/blocks/learning_plan/view.php?viewpage=2&rem=remove&id=' . $log->id . '"/>
<img alt="" src="' . $OUTPUT->pix_url('t/delete') . '" class="iconsmall"/></a></center>';
$table->data[] = $row;
}
}
else {
$table->data[] = array('', '', '', get_string('notfound', 'block_learning_plan'), '', '', '');
}
//$rs->close();
return $table;
......@@ -197,7 +217,12 @@ class training_form extends moodleform {
}
// Add Training Method.
/**
* Class for add a training method.
* Note: This class currently not using. It just added for future plugin enhancement purpose.
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class trainingmethod_form extends moodleform {
public function definition() {
......@@ -228,7 +253,12 @@ class trainingmethod_form extends moodleform {
}
// Assign Training into Learning Plan.
/**
* Class for assign trainings in to a learning plan.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class assigntraining_learningplan__form extends moodleform {
public function definition() {
......@@ -268,9 +298,11 @@ class assigntraining_learningplan__form extends moodleform {
$sql = "SELECT id, (select learning_plan from {learning_learningplan} where id=lp_id) as learning_plan,
(select training_name from {learning_training} where id=t_id) as training_name,
(select type_id from {learning_training} where id=t_id) as type_id from {learning_plan_training} ";
$inc = 1;
//$rs = $DB->get_recordset_sql($sql, array(), $page * $perpage, $perpage);
$rs = $DB->get_recordset_sql($sql, array(), null, null);
$rs = $DB->get_recordset_sql($sql, array());
if ($DB->record_exists_sql($sql, array())) {
foreach ($rs as $log) {
$row = array();
$row[] = $inc++;
......@@ -281,14 +313,21 @@ class assigntraining_learningplan__form extends moodleform {
<img src="' . $OUTPUT->pix_url('t/delete') . '" class="iconsmall"/></a></center>';
$table->data[] = $row;
}
// $rs->close();
//echo $OUTPUT->paging_bar($inc + 1, $page, $perpage, $baseurl);
}
else {
$table->data[] = array('', '', get_string('notfound', 'block_learning_plan'), '', '');
}
return $table;
}
}
// Assign Learning plan to User.
/**
* Class for assign users in to a learning plan.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class assignlerningplan_user_form extends moodleform {
public function definition() {
......@@ -336,9 +375,11 @@ class assignlerningplan_user_form extends moodleform {
(SELECT learning_plan FROM {learning_learningplan} WHERE id = lp_id) as learning_plan,
(SELECT concat(firstname,' ', lastname) FROM {user} WHERE id = assignee_id) as assignee
FROM {learning_user_learningplan}";
$inc = 0;
//$rs = $DB->get_recordset_sql($sql, array(), $page * $perpage, $perpage);
$rs = $DB->get_recordset_sql($sql, array(), null, null);
$rs = $DB->get_recordset_sql($sql, array());
if ($DB->record_exists_sql($sql, array())) {
foreach ($rs as $log) {
$row = array();
$row[] = ++$inc;
......@@ -349,13 +390,21 @@ class assignlerningplan_user_form extends moodleform {
. ' <img src="' . $OUTPUT->pix_url('t/delete') . '" class="iconsmall"/></a>';
$table->data[] = $row;
}
//echo $OUTPUT->paging_bar($inc + 1, $page, $perpage, $baseurl);
}
else {
$table->data[] = array('', '', get_string('notfound', 'block_learning_plan'), '');
}
return $table;
}
}
// Set Training Status.
/**
* Class to set user's trainings status.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class trainingstatus_form extends moodleform {
public function definition() {
......@@ -406,6 +455,12 @@ class trainingstatus_form extends moodleform {
}
/**
* Class to search training result.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class search extends moodleform {
public function definition() {
......@@ -426,7 +481,7 @@ class search extends moodleform {
}
public function display_list($lp_id = "", $t_id = "", $status = "") {
// if ($lp_id && $t_id) {
global $DB, $OUTPUT, $CFG;
$table = new html_table();
$table->id = 'statuslist';
......@@ -457,9 +512,11 @@ class search extends moodleform {
lpt inner join {learning_user_trainingplan} lut
on lut.lpt_id=lpt.id where lpt.lp_id=? AND lpt.t_id= ? AND lut.status = ?';
}
$inc = 0;
$rs = $DB->get_recordset_sql($sql, array($lp_id, $t_id, $status));
if (count($rs) > 0) {
if ($DB->record_exists_sql($sql, array($lp_id, $t_id, $status))) {
foreach ($rs as $log) {
$row = array();
$row[] = ++$inc;
......@@ -469,15 +526,60 @@ class search extends moodleform {
$row[] = date('d-m-Y', $log->date2);
$row[] = status_value($log->status);
$row[] = format_string($log->remarks);
$row[] = '<a href="' . $CFG->wwwroot . '/blocks/learning_plan/view.php?viewpage=6&l_id=' . $log->lp_id . '&u_id=' . $log->id . '&t_id=' . $log->t_id . '&setting=1">Modify</a>';
// $row[] = '<center><center><a title="Remove" href="'.$CFG->wwwroot.'/blocks/learning_plan/view.php?viewpage=5&rem=remove&id='.$log->id.'"/>
// <img src="'.$OUTPUT->pix_url('t/delete') . '" class="iconsmall"/></a></center>';
$row[] = '<a href="' . $CFG->wwwroot . '/blocks/learning_plan/view.php?viewpage=6&l_id=' . $log->lp_id . '&u_id=' . $log->id . '&t_id=' . $log->t_id . '&setting=1">Setting</a>';
$table->data[] = $row;
}
} else {
$row = array('None');
}
else {
$table->data[] = array('', '', '', '', get_string('notfound', 'block_learning_plan'), '', '', '');
}
return $table;
}
}
/**
* Class for add a learning plan.
*
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class send_notification extends moodleform {
public function definition() {
global $DB, $CFG;
$mform = & $this->_form;
$mform->addElement('header', 'displayinfo', get_string('send_notification', 'block_learning_plan'));
$learning_plan_sql = 'select DISTINCT ll.id,ll.learning_plan from
{learning_learningplan} ll inner join {learning_plan_training} lpt
on ll.id=lpt.lp_id inner join {learning_user_learningplan} lul
on lpt.lp_id=lul.lp_id';
$learning_plan_rs = $DB->get_records_sql($learning_plan_sql, array());
$learning_plan_row = array();
foreach ($learning_plan_rs as $learning_plan_log) {
$learning_plan_row[$learning_plan_log->id] = $learning_plan_log->learning_plan;
}
$mform->addElement('select', 'learning_plan', get_string('learning_plan', 'block_learning_plan'), $learning_plan_row);
$mform->addRule('learning_plan', get_string('learning_plan_error', 'block_learning_plan'), 'required', null, 'client');
$mform->addElement('textarea', 'message', get_string('message', 'block_learning_plan'));
$mform->setType('message', PARAM_TEXT);
$mform->addElement('hidden', 'viewpage', '8');
$mform->setType('viewpage', PARAM_INT);
$this->add_action_buttons($cancel = false, $submitlabel = get_string('send_message', 'block_learning_plan'));
}
public function validation($data, $files) {
return false;
}
public function display_list() {
return false;
}
}
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
......@@ -14,14 +13,23 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/* Learning Plan Block
* This plugin serves as a database and plan for all learning activities in the organziation,
/**
* This plugin serves as a database and plan for all learning activities in the organization,
* where such activities are organized for a more structured learning program.
* @package blocks
* @author: Azmat Ullah, Talha Noor
* @date: 20-Aug-2014
* @copyright Copyrights © 2012 - 2014 | 3i Logic (Pvt) Ltd.
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_learning_plan
* @copyright 3i Logic<lms@3ilogic.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL
* @author Azmat Ullah <azmat@3ilogic.com>
*/
defined('MOODLE_INTERNAL') || die();
/**
* This function return learning plan and training association key.
*
* @param int $l_id learning plan id
* @param int $t_id training id
* @return int leanring plan and training associatino key.
*/
function get_lpt_id($l_id, $t_id) {
global $DB;
......@@ -30,6 +38,12 @@ function get_lpt_id($l_id, $t_id) {
return $lpt_id;
}
/**
* This function check is specific learning plan already exist in a table or not.
*
* @param int $l_id learning plan id
* @return boolean .
*/
function islp_assign_user($l_id) {
global $DB;
$return;
......@@ -42,18 +56,36 @@ function islp_assign_user($l_id) {
return $return;
}
/**
* This function return user list of particular learning plan.
*
* @param int $lp_id learning plan id
* @return array user list.
*/
function get_learningplan_user($lp_id) {
global $DB;
$users = $DB->get_records('learning_user_learningplan', array('lp_id' => $lp_id));
return $users;
}
/**
* This function return trainings list assigned to particular learning plan.
*
* @param int $lp_id
* @return array training list.
*/
function learningplan_training($lp_id) {
global $DB;
$training = $DB->get_records('learning_plan_training', array('lp_id' => $lp_id));
return $training;
}
/**
* This function return learning plan array.
*
* @param int $u_id user id
* @return array learning plan.
*/
function user_learningplan($u_id) {
global $DB;
$training = $DB->get_recordset_sql('SELECT lp_id as id, (select learning_plan from {learning_learningplan} where id =lp_id) as learningplan
......@@ -61,6 +93,12 @@ function user_learningplan($u_id) {
return $training;
}
/**
* This function return status value.
*
* @param int $status_id status id
* @return string status value.
*/
function status_value($status_id) {
$status_value = '';
if ($status_id == '0') {
......@@ -73,6 +111,14 @@ function status_value($status_id) {
return $status_value;
}
/**
* This function return user stauts id.
*
* @param int $l_id learning plan id
* @param int $u_id user id
* @param int $t_id training id
* @return int status id.
*/
function status_id($l_id, $u_id, $t_id) {
global $DB;
$status = $DB->get_record_sql('select lut.id as id from {learning_plan_training} lpt inner join {learning_user_trainingplan} lut
......@@ -81,20 +127,39 @@ function status_id($l_id, $u_id, $t_id) {
return $status;
}
// Return Learning Plan as String.
/**
* This function return learning plan name.
*
* @param int $id learning plan id
* @return string leanring plan name.
*/
function get_learningplan_name($id) {
global $DB;
$result = $DB->get_record_sql("SELECT learning_plan FROM {learning_learningplan} WHERE id = ?", array($id));
return $result->learning_plan;
}
// Return User Full Name as String
/**
* This function return full name of user.
*
* @param int $id user id
* @return string user name.
*/
function get_user_name($id) {
global $DB;
$result = $DB->get_record_sql("SELECT concat (firstname,' ', lastname) as name FROM {user} WHERE id = ?", array($id));
return $result->name;
}
/**
* This function perform delete operation on overall plugins.
*
* @param string $table plugin table name where the record will be delete
* @param id $id record id or table primary key
* @param string $url call back url
* @param int $lp_id learning plan id
* @return null redirect to call back url.
*/
function delete_learningplan_record($table, $id, $url, $lp_id = '') {
global $DB;
// Delete Department.
......@@ -120,27 +185,33 @@ function delete_learningplan_record($table, $id, $url, $lp_id = '') {
redirect($url, get_string('removed', 'block_learning_plan'), 2);
}
/**
* This function display the list of assigned trainings on the basis of user id and learning plan id.
*
* @param int $lp_id learning plan id
* @param int $u_id user id
* @return table.
*/
function display_list($lp_id, $u_id) {
// if ($lp_id && $t_id) {
global $DB, $OUTPUT, $CFG;
$table = new html_table();
$table->id = 'statuslist';
$table->head = array(get_string('s_no', 'block_learning_plan'), get_string('training_name', 'block_learning_plan'), get_string('training_method', 'block_learning_plan'), get_string('start_date', 'block_learning_plan'), get_string('end_date', 'block_learning_plan'), get_string('status', 'block_learning_plan'), get_string('remarks', 'block_learning_plan'));
$table->size = array('5%', '20%', '14%', '8%', '8%', '10%', '25%');
$table->align = array('center', 'left', 'left', 'center', 'center', 'center', 'left');
$table->width = '100%';
$table->attributes = array('class' => 'display');
$table->data = array();
$sql = 'select t_id, (select type_id from {learning_training} where id =t_id) as type_id, lp_id, lut.status, lut.remarks, `u_id` as id,(select training_name from {learning_training} where id =t_id)
as training, (select url from {learning_training} where id =t_id) as url, (select learning_plan from {learning_learningplan} where id =lp_id) as learning_plan, (SELECT
CONCAT(firstname," ", lastname)FROM {user} where username!="guest" AND id = u_id) as name,(select
start_date from {learning_training} where id =t_id)as date1,(select end_date from {learning_training}
where id =t_id)as date2 from {learning_plan_training} lpt inner join {learning_user_trainingplan} lut
on lut.lpt_id=lpt.id where lpt.lp_id=? AND lut.u_id=?'; //ORDER BY $orderby';
on lut.lpt_id=lpt.id where lpt.lp_id=? AND lut.u_id=?';
$inc = 0;
$rs = $DB->get_recordset_sql($sql, array($lp_id, $u_id));
if ($DB->record_exists_sql($sql, array($lp_id, $u_id))) {
foreach ($rs as $log) {
$row = array();
$row[] = ++$inc;
......@@ -149,10 +220,6 @@ function display_list($lp_id, $u_id) {
} else {
$row[] = format_string($log->training, false);
}
// $row[] = $log->name;
// $row[] = date('d-m-Y', $log->date1);
// $row[] = date('d-m-Y', $log->date2);
$training_method;
if ($log->type_id == 1) {
$training_method = get_string('elearning', 'block_learning_plan');
} else if ($log->type_id == 2) {
......@@ -161,15 +228,24 @@ function display_list($lp_id, $u_id) {
$training_method = get_string('onthejob', 'block_learning_plan');
}
$row[] = format_string($training_method, false);
$row[] = userdate($log->date1, get_string('strftimedatefullshort', 'core_langconfig')); //date('d-m-Y', $log->date1);
$row[] = userdate($log->date2, get_string('strftimedatefullshort', 'core_langconfig')); //date('d-m-Y', $log->date2);
$row[] = userdate($log->date1, get_string('strftimedatefullshort', 'core_langconfig'));
$row[] = userdate($log->date2, get_string('strftimedatefullshort', 'core_langconfig'));
$row[] = status_value($log->status);
$row[] = format_string($log->remarks, false);
$table->data[] = $row;
}
} else {
$table->data[] = array('', '', '', '', get_string('notfound', 'block_learning_plan'), '', '', '');
}
return $table;
}
/**
* This function return navigation titles displayed on pluign header.
*
* @param int $viewpage page id
* @return string navigation title.
*/
function nav_title($viewpage) {
$array = array(
1 => get_string('learningpath', 'block_learning_plan'),
......@@ -178,10 +254,17 @@ function nav_title($viewpage) {
5 => get_string('assign_learningplan_user', 'block_learning_plan'),
6 => get_string('trainingstatus', 'block_learning_plan'),
7 => get_string('search', 'block_learning_plan'),
8 => get_string('send_notification', 'block_learning_plan'),
);
return $array[$viewpage];
}
/**
* This function return training type.
*
* @param int $type_id type id of training
* @return string type name.
*/
function training_type($type_id) {
$training_type = '';
if ($type_id == '1') {
......@@ -194,10 +277,115 @@ function training_type($type_id) {
return $training_type;
}
/**
* This function return custom field name on the base of input paramet custom field ID.
*
* @param null
* @return Array groups list will be return.
*/
function isGroup_null() {
global $DB;
// $result = $DB->get_record_sql("SELECT concat (firstname,' ', lastname) as name FROM {user} WHERE id = ?",
// array($id));
$result = $DB->record_exists('groups', array());
return $result;
}
/**
* This function return learning plan assignment notification.
*
* @param int $user user id
* @param string $msg message body
* @param table $table trainings list in table form
* @param string $subject notification subject
* @return null.
*/
function lp_send_notification($user, $msg, $table, $subject) {
$message = new \core\message\message();
$message->component = 'block_learning_plan';
$message->name = 'view';
$message->userfrom = get_admin();
$message->userto = $user;
$message->subject = $subject;
$username = getlpuser($user);
$message->fullmessagehtml = "<br/>Dear $username,<br/><br/>$msg<br/><br/>$table";
$message->fullmessageformat = FORMAT_HTML;
$message->smallmessage = '';
$message->notification = 1;
message_send($message);
}
/**
* This function return user full name.
*
* @param int $id user id
* @return String user name.
*/
function getlpuser($id) {
global $DB;
$result = $DB->get_record_sql("SELECT concat (firstname,' ', lastname) as name FROM {user} WHERE id = ?", array($id));
return $result->name;
}
/**
* This function return training list table associated with particular learning plan.
*
* @param int $id learning plan id
* @return table training list table.
*/
function get_lp_training($id) {
global $DB;
$training_sql = "SELECT lt.training_name, lt.type_id, lt.start_date, lt.end_date
FROM {learning_plan_training} lpt
INNER JOIN {learning_training} lt
ON lpt.t_id = lt.id
where lpt.lp_id = ?";
$training_rs = $DB->get_records_sql($training_sql, array($id));
$table = new html_table();
$table->head = array('S.No', 'Training name', 'Training method', 'Start date', 'End date');
$table->align = array('center', 'left', 'left', 'center', 'center');
$table->data = array();
if ($DB->record_exists_sql($training_sql, array($id))) {
$sno = 0;
foreach ($training_rs as $training_log) {
$row = array();
$row[] = ++$sno;
$row[] = $training_log->training_name;
if ($training_log->type_id == 1) {
$training_method = get_string('elearning', 'block_learning_plan');
} else if ($training_log->type_id == 2) {
$training_method = get_string('classroom', 'block_learning_plan');
} else if ($training_log->type_id == 3) {
$training_method = get_string('onthejob', 'block_learning_plan');
}
$row[] = $training_method;
$row[] = date('d-m-Y', $training_log->start_date);
$row[] = date('d-m-Y', $training_log->end_date);
$table->data[] = $row;
}
} else {
$table->data[] = array('', '', get_string('notfound', 'block_advance_learning_plan'), '', '');
}
return $table;
}
/**
* This function reterive users having particular learning plan.
*
* @param int $id leanring plan id
* @param string $message message body
* @return table learning plan trainings table.
*/
function lp_get_users($id, $message, $training_list) {
global $DB;
$user_sql = "SELECT u_id FROM {learning_user_learningplan}
where lp_id = ?";
$user_rs = $DB->get_records_sql($user_sql, array($id));
if ($DB->record_exists_sql($user_sql, array($id))) {
foreach ($user_rs as $user_log) {
lp_send_notification($user_log->u_id, $message, $training_list, 'Learning plan notification');
}
}
}
File added
/*
* File: TableTools.css
* Description: Styles for TableTools 2
* Author: Allan Jardine (www.sprymedia.co.uk)
* Language: Javascript
* License: GPL v2 / 3 point BSD
* Project: DataTables
*
* Copyright 2009-2012 Allan Jardine, all rights reserved.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* CSS name space:
* DTTT DataTables TableTools
*
* Style sheet provides:
* CONTAINER TableTools container element and styles applying to all components
* BUTTON_STYLES Action specific button styles
* SELECTING Row selection styles
* COLLECTIONS Drop down list (collection) styles
* PRINTING Print display styles
*/
/*
* CONTAINER
* TableTools container element and styles applying to all components
*/
div.DTTT_container {
position: relative;
float: right;
margin-bottom: 1em;
}
@media screen and (max-width: 640px) {
div.DTTT_container {
float: none !important;
text-align: center;
}
div.DTTT_container:after {
visibility: hidden;
display: block;
content: "";
clear: both;
height: 0;
}
}
button.DTTT_button,
div.DTTT_button,
a.DTTT_button {
position: relative;
display: inline-block;
margin-right: 3px;
padding: 5px 8px;
border: 1px solid #999;
cursor: pointer;
*cursor: hand;
font-size: 0.88em;
color: black !important;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-ms-border-radius: 2px;
-o-border-radius: 2px;
border-radius: 2px;
-webkit-box-shadow: 1px 1px 3px #ccc;
-moz-box-shadow: 1px 1px 3px #ccc;
-ms-box-shadow: 1px 1px 3px #ccc;
-o-box-shadow: 1px 1px 3px #ccc;
box-shadow: 1px 1px 3px #ccc;
/* Generated by http://www.colorzilla.com/gradient-editor/ */
background: #ffffff; /* Old browsers */
background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
}
/* Buttons are cunning border-box sizing - we can't just use that for A and DIV due to IE6/7 */
button.DTTT_button {
height: 30px;
padding: 3px 8px;
}
.DTTT_button embed {
outline: none;
}
button.DTTT_button:hover,
div.DTTT_button:hover,
a.DTTT_button:hover {
border: 1px solid #666;
text-decoration: none !important;
-webkit-box-shadow: 1px 1px 3px #999;
-moz-box-shadow: 1px 1px 3px #999;
-ms-box-shadow: 1px 1px 3px #999;
-o-box-shadow: 1px 1px 3px #999;
box-shadow: 1px 1px 3px #999;
background: #f3f3f3; /* Old browsers */
background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */
background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */
background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */
background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
}
button.DTTT_disabled,
div.DTTT_disabled,
a.DTTT_disabled {
color: #999;
border: 1px solid #d0d0d0;
background: #ffffff; /* Old browsers */
background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* FF3.6+ */
background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* IE10+ */
background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* Opera 11.10+ */
background: linear-gradient(top, #ffffff 0%,#f9f9f9 89%,#fafafa 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fafafa',GradientType=0 ); /* IE6-9 */
}
/*
* BUTTON_STYLES
* Action specific button styles
* If you want images - comment this back in
a.DTTT_button_csv,
a.DTTT_button_xls,
a.DTTT_button_copy,
a.DTTT_button_pdf,
a.DTTT_button_print {
padding-right: 0px;
}
a.DTTT_button_csv span,
a.DTTT_button_xls span,
a.DTTT_button_copy span,
a.DTTT_button_pdf span,
a.DTTT_button_print span {
display: inline-block;
height: 24px;
line-height: 24px;
padding-right: 30px;
}
a.DTTT_button_csv span { background: url(../images/csv.png) no-repeat bottom right; }
a.DTTT_button_csv:hover span { background: url(../images/csv_hover.png) no-repeat center right; }
a.DTTT_button_xls span { background: url(../images/xls.png) no-repeat center right; }
a.DTTT_button_xls:hover span { background: #f0f0f0 url(../images/xls_hover.png) no-repeat center right; }
a.DTTT_button_copy span { background: url(../images/copy.png) no-repeat center right; }
a.DTTT_button_copy:hover span { background: #f0f0f0 url(../images/copy_hover.png) no-repeat center right; }
a.DTTT_button_pdf span { background: url(../images/pdf.png) no-repeat center right; }
a.DTTT_button_pdf:hover span { background: #f0f0f0 url(../images/pdf_hover.png) no-repeat center right; }
a.DTTT_button_print span { background: url(../images/print.png) no-repeat center right; }
a.DTTT_button_print:hover span { background: #f0f0f0 url(../images/print_hover.png) no-repeat center right; }
*/
button.DTTT_button_collection span {
padding-right: 17px;
background: url(../images/collection.png) no-repeat center right;
}
button.DTTT_button_collection:hover span {
padding-right: 17px;
background: #f0f0f0 url(../images/collection_hover.png) no-repeat center right;
}
/*
* SELECTING
* Row selection styles
*/
table.DTTT_selectable tbody tr {
cursor: pointer;
*cursor: hand;
}
table.dataTable tr.DTTT_selected.odd {
background-color: #9FAFD1;
}
table.dataTable tr.DTTT_selected.odd td.sorting_1 {
background-color: #9FAFD1;
}
table.dataTable tr.DTTT_selected.odd td.sorting_2 {
background-color: #9FAFD1;
}
table.dataTable tr.DTTT_selected.odd td.sorting_3 {
background-color: #9FAFD1;
}
table.dataTable tr.DTTT_selected.even {
background-color: #B0BED9;
}
table.dataTable tr.DTTT_selected.even td.sorting_1 {
background-color: #B0BED9;
}
table.dataTable tr.DTTT_selected.even td.sorting_2 {
background-color: #B0BED9;
}
table.dataTable tr.DTTT_selected.even td.sorting_3 {
background-color: #B0BED9;
}
/*
* COLLECTIONS
* Drop down list (collection) styles
*/
div.DTTT_collection {
width: 150px;
padding: 8px 8px 4px 8px;
border: 1px solid #ccc;
border: 1px solid rgba( 0, 0, 0, 0.4 );
background-color: #f3f3f3;
background-color: rgba( 255, 255, 255, 0.3 );
overflow: hidden;
z-index: 2002;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
-ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
-o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
}
div.DTTT_collection_background {
background: transparent url(../images/background.png) repeat top left;
z-index: 2001;
}
div.DTTT_collection button.DTTT_button,
div.DTTT_collection div.DTTT_button,
div.DTTT_collection a.DTTT_button {
position: relative;
left: 0;
right: 0;
display: block;
float: none;
margin-bottom: 4px;
-webkit-box-shadow: 1px 1px 3px #999;
-moz-box-shadow: 1px 1px 3px #999;
-ms-box-shadow: 1px 1px 3px #999;
-o-box-shadow: 1px 1px 3px #999;
box-shadow: 1px 1px 3px #999;
}
/*
* PRINTING
* Print display styles
*/
.DTTT_print_info {
position: fixed;
top: 50%;
left: 50%;
width: 400px;
height: 150px;
margin-left: -200px;
margin-top: -75px;
text-align: center;
color: #333;
padding: 10px 30px;
background: #ffffff; /* Old browsers */
background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */
background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */
background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */
background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */
opacity: 0.95;
border: 1px solid black;
border: 1px solid rgba(0, 0, 0, 0.5);
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
-ms-border-radius: 6px;
-o-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
-ms-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
-o-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
}
.DTTT_print_info h6 {
font-weight: normal;
font-size: 28px;
line-height: 28px;
margin: 1em;
}
.DTTT_print_info p {
font-size: 14px;
line-height: 20px;
}
This diff is collapsed.
File added
File added
public/datatable/images/back_disabled.png

1.33 KiB

public/datatable/images/back_enabled.png

1.35 KiB

public/datatable/images/back_enabled_hover.png

1.34 KiB

public/datatable/images/favicon.ico

894 B

public/datatable/images/forward_disabled.png

1.33 KiB

public/datatable/images/forward_enabled.png

1.35 KiB

public/datatable/images/forward_enabled_hover.png

1.35 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment