Revert "MDL-33934 theme_mymobile: Updates to CSS & Javascript - including MDL-38072 removing css/js for collapsed topic."

This reverts commit 7e6c674302.
This reverts commit c443c95c01.

This issue needs more work and will be delayed.
This commit is contained in:
Damyon Wiese
2013-02-28 14:06:32 +08:00
parent 4e516138e9
commit 01ac2cd813
19 changed files with 4527 additions and 6248 deletions
+10 -9
View File
@@ -34,7 +34,8 @@ $THEME->parents = array(
// Set the stylesheets that we want to include for this theme
$THEME->sheets = array(
'jmobile120',
'jmobile11',
'jmobile11_rtl',
'core',
'media'
);
@@ -104,34 +105,34 @@ $THEME->layouts = array(
'popup' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'frametop' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true),
'options' => array('nofooter'=>true, 'nocoursefooter'=>true),
),
'maintenance' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
'embedded' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocourseheaderfooter'=>true),
),
// Should display the content and basic headers only.
'print' => array(
'file' => 'general.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used when a redirection is occuring.
'redirect' => array(
'file' => 'embedded.php',
'regions' => array(),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true),
'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true, 'nocourseheaderfooter'=>true),
),
// The pagelayout used for reports
'report' => array(
@@ -155,9 +156,9 @@ if ($thisdevice == "default" || $thisdevice == "tablet" || optional_param('mymob
// Add the required JavaScript to the page
$THEME->javascripts = array(
'jquery-1.8.2.min',
'jquery-1.7.1.min',
'custom',
'jquery.mobile-1.2.0'
'jquery.mobile-1.1.1'
);
// Sets a custom render factory to use with the theme, used when working with custom renderers.
+31 -29
View File
@@ -1,16 +1,16 @@
$(document).bind("mobileinit", function(){
//mobile init stuff 11/12/10
//turn off ajax forms...
$.mobile.defaultPageTransition = "slide";
});
$(document).ready(function() {
//get some vars to start
var siteurl = $('head meta[name=wwwroot]').attr('wwwroot');
var mytheme = $('head meta[name=datatheme]').attr('datatheme');
var mythemeb = $('head meta[name=datathemeb]').attr('datathemeb');
var siteurl = $('.mobilesiteurl').attr("id");
var mytheme = $(".datatheme").attr("id");
var mythemeb = $(".datathemeb").attr("id");
if ($('body').hasClass('ajaxno')) {
$.mobile.ajaxEnabled = false;
}
//function below does generic stuff before creating all pages...
$('div').live('pagebeforecreate', function(event, ui) {
//turn off ajax on all forms for now as of beta1
@@ -60,8 +60,8 @@ $(document).ready(function() {
return false;
});
//calendar and other links that need to be external
$('.maincalendar .filters a, li.activity.scorm a, div.files a, #page-user-filesPAGE li div a, .maincalendar .bottom a, .section li.url.modtype_url a, .resourcecontent .resourcemediaplugin a, #underfooter .noajax a, .block_mnet_hosts .content a, .block_private_files .content a, a.portfolio-add-link, #attempts td a, .settingsul li a, .foldertree li a').attr("data-ajax", "false");
//calendar and other links that need to be external
$('.maincalendar .filters a, li.activity.scorm a, div.files a, #page-user-filesPAGE li div a, .maincalendar .bottom a, .section li.url.modtype_url a, .resourcecontent .resourcemediaplugin a, #underfooter .noajax a, .block_mnet_hosts .content a, .block_private_files .content a, a.portfolio-add-link, #attempts td a').attr("data-ajax", "false");
//add blank to open in window for some
$('#page-mod-url-viewPAGE div.urlworkaround a, #page-mod-resource-viewPAGE div.resourceworkaround a, .mediaplugin a.mediafallbacklink, #page-mod-resource-viewPAGE .resourcemp3 a, .foldertree li a').attr("target", "_blank").attr("data-role", "button").attr("data-icon", "plus");
@@ -81,7 +81,6 @@ $(document).ready(function() {
var meb = encodeURI($(this).val());
$(this).val("-1");
if (meb != "" && meb != "-1") {
$.mobile.showPageLoadingMsg();
$.mobile.changePage(meb);
}
});
@@ -90,19 +89,13 @@ $(document).ready(function() {
//course page only js
$('div.path-course-view, .path-course-view div.generalpage').live('pagebeforecreate', function(event, ui) {
$('div.path-site, div.path-course-view, .path-course-view div.generalpage').live('pagebeforecreate', function(event, ui) {
//course listing
$('.section li img').addClass("ui-li-icon");
$('.course-content ul.section').attr("data-role", "listview").attr("data-inset", "true").attr("data-theme", mythemeb);
$('.sitetopic ul.section').attr("data-role", "listview").attr("data-inset", "true").attr("data-theme", mythemeb);
$('.section-navigation.header.headingblock, .section-navigation.mdl-bottom').attr("data-role", "controlgroup");
$('.section-navigation.header.headingblock .mdl-left a, .section-navigation.mdl-bottom .mdl-left a').attr("data-role", "button").attr("data-icon", "arrow-l");
$('.section-navigation.header.headingblock .mdl-right a, .section-navigation.mdl-bottom .mdl-right a').attr("data-role", "button").attr("data-icon", "arrow-r").attr("data-iconpos", "right");
$('.section-navigation.header.headingblock .mdl-align.title, .section-navigation.mdl-bottom .mdl-align a').attr("data-role", "button");
$('.section li img.activityicon').addClass("ui-li-icon");
$('.course-content ul.section, .sitetopic ul.section').attr("data-role", "listview").attr("data-inset", "true").attr("data-theme", mythemeb);
$('.topics div.left.side').addClass("ui-bar-" + mytheme);
$('.section.hidden div.headingwrap').attr("data-theme", mythemeb);
//$('.topics #section-0 div.left.side').removeClass("ui-li ui-li-divider ui-btn ui-bar-a");
$('h3.section-title a').attr("data-role", "button");
$('.section .resource.modtype_resource a, .section .modtype_survey a').attr("data-ajax", "false");
//toggle completion checkmarks and form fixes
@@ -114,6 +107,12 @@ $(document).ready(function() {
this.form.submit();
return false;
});
// Force the class ui-li-desc on non-detected elements.
$('ul.section div.availabilityinfo, ul.section div.contentafterlink').addClass('ui-li-desc');
// Force some classes on dimmed elements.
$('ul.section div.dimmed_text > span').addClass('instancename');
});
//forum listing only stuff
@@ -133,18 +132,10 @@ $(document).ready(function() {
//forum discussion page only stuff
$('div#page-mod-forum-discussPAGE, #page-mod-forum-discuss div.generalpage, div.forumtype-single, .forumtype-single div.generalpage, div#page-mod-forum-postPAGE').live('pagebeforecreate',function(event, ui){
//remove parent post because of hash remove this if has listening is fixed
$('.options div.commands a').each(function(index) {
var url = $(this).attr("href");
if (url.indexOf("#") != -1) {
$(this).remove();
}
});
//actual forum posting
$('.forumpost div.row.header').addClass("ui-li ui-li-divider ui-btn ui-bar-" + mytheme);
$('.options div.commands').attr("data-role", "controlgroup").attr("data-type", "horizontal");
$('.options div.commands a').attr("data-role", "button").attr("data-ajax", "false").attr("data-mini", "true").attr("data-inline", "true");
$('.options div.commands a').attr("data-role", "button").attr("data-ajax", "false").attr("data-inline", "true");
$('.forumpost div.author a').attr("data-inline", "true");
$('.options div.commands').contents().filter(function() {
return this.nodeType == 3; //Node.TEXT_NODE
@@ -159,7 +150,6 @@ $(document).ready(function() {
$('.forumpost div.row.header').addClass("ui-li ui-li-divider ui-btn ui-bar-" + mytheme);
$('div.subscribelink a').attr("data-role", "button").attr("data-inline", "true");
$('.unlist').attr("data-role", "controlgroup");
//$('.unlist li:last-child div.coursebox h3 a').addClass("ui-corner-bottom ui-controlgroup-last"); moved to init at bottom
$('div.coursebox a').attr("data-role", "button").attr("data-icon", "arrow-r").attr("data-iconpos", "right").attr("data-theme", mythemeb);
$('.box.categorybox').attr("data-role", "controlgroup");
$('div.categorylist div.category a').attr("data-role", "button").attr("data-theme", mythemeb);
@@ -253,9 +243,21 @@ $(document).ready(function() {
$('.path-mod-hotpot button').attr("data-role", "none");
});
//collapsed topic only stuff
$('div#page-course-view-topcollPAGE').live('pagebeforecreate',function(event, ui){
$('#page-course-view-topcollPAGE ul.section').attr("data-role", "none");
$('.section li img').removeClass("ui-li-icon");
$.getScript('../course/format/topcoll/module.js');
$('#page-course-view-topcollPAGE tr.cps a').attr("data-role", "button").attr("data-icon", "arrow-r");
$('#page-course-view-topcollPAGE #thetopics').attr("data-role", "controlgroup");
$('#page-course-view-topcollPAGE td.cps_centre').each(function(index) {
var cpsc = $(this).text().replace('<br>','').replace(')','');
$(this).prev('td').find('a').append('<span class="ui-li-count ui-btn-up-a ui-btn-corner-all">' + cpsc + '</span>');
});
});
///// functions below does stuff after creating page for some cleaning...
$('div').live('pageinit',function(event, ui){
$('div#page-site-indexPAGE .unlist li:last-child div.coursebox h3 a').addClass("ui-corner-bottom ui-controlgroup-last");
$('.path-calendar div.ui-radio label:first-child, .path-mod-lesson div.ui-radio label:first-child, #page-mod-wiki-createPAGE div.ui-radio label:first-child').addClass("afirst");
$('.forumpost div.author a').removeAttr('data-role');
//$('.questionflagimage2').removeClass("ui-btn-hidden");a#notificationyes
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -40,8 +40,6 @@ $string['showfullsizeimages'] = 'Show full images on site index and course pages
$string['showfullsizeimages_desc'] = 'Show full size images on site index and course pages instead of replaced thumb icon method. Default is to not show full size images.';
$string['usetableview'] = 'Tablet View';
$string['usetableview_desc'] = 'Use the tablet view for larger devices (yes by default).';
$string['useajax'] = 'Use Ajax Page Loading';
$string['useajax_desc'] = 'Use ajax page loading. Turn off if experiencing problems (yes by default).';
$string['yes'] = 'Yes';
$string['customcss'] = 'Custom CSS';
$string['customcssdesc'] = 'Any CSS you enter here will be added to every page allowing your to easily customise this theme.';
+26 -14
View File
@@ -71,16 +71,10 @@ if (!empty($PAGE->theme->settings->usetableview)) {
$showusetableview = 'tabshow';
}
if (!empty($PAGE->theme->settings->useajax)) {
$useajax = $PAGE->theme->settings->useajax;
} else {
$useajax = 'ajaxyes';
}
// Course format
if ($mylayoutype == 'course') {
// Jump to current topic only in course pages.
// TODO: Fix this hardcoding there are other course formats that peopleuse.
// Probably changing to an appropriate regex will do.
if ($mypagetype == 'course-view-topics' || $mypagetype == 'course-view-weeks') {
// jump to current topic only in course pages
$jumptocurrent = 'true';
} else {
$jumptocurrent = 'false';
@@ -95,10 +89,19 @@ $hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar());
$hasfooter = (empty($PAGE->layout_options['nofooter']));
$hasmyblocks = $PAGE->blocks->region_has_content('myblocks', $OUTPUT);
$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
$courseheader = $OUTPUT->course_header();
$coursecontentheader = $OUTPUT->course_content_header();
if (empty($PAGE->layout_options['nocoursefooter'])) {
$coursecontentfooter = $OUTPUT->course_content_footer();
$coursefooter = $OUTPUT->course_footer();
}
}
$bodyclasses = array();
$bodyclasses[] = (string)$hasithumb;
$bodyclasses[] = (string)$showsitetopic;
$bodyclasses[] = (string)$useajax;
// add ithumb class to decide whether to show or hide images and site topic
// TODO: Better illustrate preceedence
@@ -121,7 +124,7 @@ echo $OUTPUT->doctype() ?>
<link rel="apple-touch-icon-precomposed" href="<?php echo $OUTPUT->pix_url('m2m', 'theme')?>" />
<meta name="description" content="<?php echo strip_tags(format_text($SITE->summary, FORMAT_HTML)) ?>" />
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1" />
<?php echo $OUTPUT->standard_head_html() ?>
</head>
@@ -129,13 +132,16 @@ echo $OUTPUT->doctype() ?>
<?php echo $OUTPUT->standard_top_of_body_html() ?>
<div id="<?php p($PAGE->bodyid) ?>PAGE" data-role="page" class="generalpage <?php echo 'ajaxedclass '; p($PAGE->bodyclasses.' '.join(' ', $bodyclasses)); ?> <?php if ($hasmyblocks && $usercol) { echo 'has-myblocks'; } ?> " data-title="<?php p($SITE->shortname) ?>">
<!-- start header -->
<div data-role="header" <?php echo($datatheme);?> class="mymobileheader">
<div data-role="header" <?php echo($datatheme);?> class="mymobileheader" data-position="fixed">
<h1><?php echo $PAGE->heading ?></h1>
<?php if (isloggedin() && $mypagetype != 'site-index') { ?>
<a class="ui-btn-right" data-icon="home" href="<?php p($CFG->wwwroot) ?>" data-iconpos="notext" data-ajax="false"><?php p(get_string('home')); ?></a>
<?php } else if (!isloggedin()) {
echo $OUTPUT->login_info();
} ?>
<?php if (!empty($courseheader)) { ?>
<div data-role="course-header"><?php echo $courseheader; ?></div>
<?php } ?>
<!-- start navbar -->
<div data-role="navbar">
<ul>
@@ -180,7 +186,9 @@ echo $OUTPUT->doctype() ?>
<?php if ($hasshowmobileintro && $mypagetype == 'site-index') { ?>
<?php echo $PAGE->theme->settings->showmobileintro; ?>
<?php } ?>
<?php echo $coursecontentheader; ?>
<?php echo $OUTPUT->main_content(); ?>
<?php echo $coursecontentfooter; ?>
<?php } ?>
</div>
</div>
@@ -217,7 +225,7 @@ echo $OUTPUT->doctype() ?>
<div data-role="fieldcontain" id="sliderdiv">
<label for="slider"><?php p(get_string('mtoggle','theme_mymobile')); ?>:</label>
<select name="slider" class="slider" data-role="slider">
<select name="slider" class="slider" data-role="slider" id="slider">
<option value="on">On</option>
<option value="off">Off</option>
</select>
@@ -244,6 +252,10 @@ echo $OUTPUT->doctype() ?>
<!-- end main content -->
<!-- start footer -->
<?php if (!empty($coursefooter)) { ?>
<div data-role="course-footer"><?php echo $coursefooter; ?></div>
<?php } ?>
<div data-role="footer" class="mobilefooter" <?php echo $datatheme;?>>
<div data-role="navbar" class="jnav" >
<ul>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

+16
View File
@@ -0,0 +1,16 @@
MyMobile Theme
==============
jQuery Mobile listview hack
---------------------------
The jQuery Mobile library (jquery.mobile-[...].js) includes a custom hack to
allow lisview elements to have a their <a> not as direct child of <li>. This
is used for activities which encapsulate the <a> in several divs.
Run the following command to view the hack:
git show 3b84abce6ab7ff3862cd92c7d74ce0e8578004b3
Remember to place this hack in the library when you update it. Also, we often
forget that activities can be listed on the front page too, please test the
theme in both a course and the front page.
+25 -43
View File
@@ -42,7 +42,7 @@ class theme_mymobile_renderer extends plugin_renderer_base {
*/
public function settings_tree(settings_navigation $navigation) {
$content = $this->navigation_node($navigation, array('class' => 'settings'));
if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM))) {
if (has_capability('moodle/site:config', context_system::instance())) {
// TODO: Work out whether something is missing from here.
}
return $content;
@@ -143,8 +143,6 @@ class theme_mymobile_core_renderer extends core_renderer {
if ($classes == 'helpheading') {
// Keeps wrap from help headings in dialog.
$content = parent::heading($text, $level, $classes, $id);
} else if ($classes == 'accesshide' || $classes == 'section-title') {
$content = parent::heading($text, $level, $classes, $id);
} else {
$content = html_writer::start_tag('div', array('class' => 'headingwrap ui-bar-'.$this->theme_swatch() .' ui-footer'));
$content .= parent::heading($text, $level, $classes.' ui-title', $id);
@@ -310,20 +308,12 @@ class theme_mymobile_core_renderer extends core_renderer {
return '';
}
if (is_null($withlinks)) {
$withlinks = empty($this->page->layout_options['nologinlinks']);
}
$loginpage = ((string)$this->page->url === get_login_url());
$course = $this->page->course;
if (session_is_loggedinas()) {
$realuser = session_get_realuser();
$fullname = fullname($realuser, true);
if ($withlinks) {
$realuserinfo = " [<a href=\"$CFG->wwwroot/course/loginas.php?id=$course->id&amp;sesskey=".sesskey()."\">$fullname</a>] ";
} else {
$realuserinfo = " [$fullname] ";
}
$realuserinfo = " [<a href=\"$CFG->wwwroot/course/loginas.php?id=$course->id&amp;sesskey=".sesskey()."\">$fullname</a>] ";
} else {
$realuserinfo = '';
}
@@ -335,47 +325,32 @@ class theme_mymobile_core_renderer extends core_renderer {
return '';
} else if (isloggedin()) {
$context = context_course::instance($course->id);
$fullname = fullname($USER, true);
// Since Moodle 2.0 this link always goes to the public profile page (not the course profile page)
if ($withlinks) {
$username = "<a href=\"$CFG->wwwroot/user/profile.php?id=$USER->id\">$fullname</a>";
} else {
$username = $fullname;
}
// TODO: Test what happens when someone is using this via mnet [for this as well as login_info_footer]
// TODO: Test what happens when you use the loginas feature [for this as well as login_info_footer]
$username = "";
if (is_mnet_remote_user($USER) and $idprovider = $DB->get_record('mnet_host', array('id'=>$USER->mnethostid))) {
if ($withlinks) {
$username .= " from <a href=\"{$idprovider->wwwroot}\">{$idprovider->name}</a>";
} else {
$username .= " from {$idprovider->name}";
}
$username .= " from <a href=\"{$idprovider->wwwroot}\">{$idprovider->name}</a>";
}
if (isguestuser()) {
$loggedinas = $realuserinfo.get_string('loggedinasguest');
if (!$loginpage && $withlinks) {
$loggedinas .= " (<a href=\"$loginurl\">".get_string('login').'</a>)';
}
$loggedinas = $realuserinfo.get_string('loggedinasguest')." (<a href=\"$loginurl\">".get_string('login').'</a>)';
} else if (is_role_switched($course->id)) { // Has switched roles
$rolename = '';
if ($role = $DB->get_record('role', array('id'=>$USER->access['rsw'][$context->path]))) {
$rolename = ': '.format_string($role->name);
}
$loggedinas = get_string('loggedinas', 'moodle', $username).$rolename;
if ($withlinks) {
$loggedinas .= " (<a href=\"$CFG->wwwroot/course/view.php?id=$course->id&amp;switchrole=0&amp;sesskey=".sesskey()."\">".get_string('switchrolereturn').'</a>)';
}
} else {
$loggedinas = $realuserinfo.$username.' <a id="mypower" data-inline="true" data-role="button" data-icon="mypower" data-ajax="false" class="ui-btn-right mypower" href="'.$CFG->wwwroot.'/login/logout.php?sesskey='.sesskey().'\">'.get_string('logout').'</a>';
}
} else {
$loggedinas = "";
if (!$loginpage && $withlinks) {
$loggedinas = '<a data-role="button" data-icon="alert" class="ui-btn-right nolog" href="'.$loginurl.'" data-ajax="false">'.get_string('login').'</a>';
}
$loggedinas = '<a data-role="button" data-icon="alert" class="ui-btn-right nolog" href="'.$loginurl.'" data-ajax="false">'.get_string('login').'</a>';
}
$loggedinas = '<div class="logininfo">'.$loggedinas.'</div>';
// TODO: Enable $CFG->displayloginfailures and test as admin what happens after you succesfully
// log in after a failed log in attempt. [for this as well as login_info_footer]
// This is probably totally unneeded
if (isset($SESSION->justloggedin)) {
unset($SESSION->justloggedin);
if (!empty($CFG->displayloginfailures)) {
@@ -388,8 +363,7 @@ class theme_mymobile_core_renderer extends core_renderer {
$loggedinas .= get_string('failedloginattemptsall', '', $count);
}
if (file_exists("$CFG->dirroot/report/log/index.php") and has_capability('report/log:view', context_system::instance())) {
$loggedinas .= ' (<a href="'.$CFG->wwwroot.'/report/log/index.php'.
'?chooselog=1&amp;id=1&amp;modid=site_errors">'.get_string('logs').'</a>)';
$loggedinas .= ' (<a href="'.$CFG->wwwroot.'/course/report/log/index.php?chooselog=1&amp;id=1&amp;modid=site_errors">'.get_string('logs').'</a>)';
}
$loggedinas .= '</div>';
}
@@ -429,7 +403,7 @@ class theme_mymobile_core_renderer extends core_renderer {
// $course->id is not defined during installation
return '';
} else if (isloggedin()) {
$context = get_context_instance(CONTEXT_COURSE, $course->id);
$context = context_course::instance($course->id);
$fullname = fullname($USER, true);
// Since Moodle 2.0 this link always goes to the public profile page (not the course profile page)
@@ -471,7 +445,7 @@ class theme_mymobile_core_renderer extends core_renderer {
} else {
$loggedinas .= get_string('failedloginattemptsall', '', $count);
}
if (has_capability('report/log:view', get_context_instance(CONTEXT_SYSTEM))) {
if (has_capability('report/log:view', context_system::instance())) {
$loggedinas .= ' (<a href="'.$CFG->wwwroot.'/course/report/log/index.php?chooselog=1&amp;id=1&amp;modid=site_errors">'.get_string('logs').'</a>)';
}
$loggedinas .= '</div>';
@@ -773,6 +747,11 @@ class theme_mymobile_core_renderer extends core_renderer {
$select->attributes['title'] = $select->tooltip;
}
$select->attributes['class'] = 'autosubmit';
if ($select->class) {
$select->attributes['class'] .= ' ' . $select->class;
}
if ($select->label) {
$output .= html_writer::label($select->label, $select->attributes['id']);
}
@@ -791,7 +770,10 @@ class theme_mymobile_core_renderer extends core_renderer {
$output .= html_writer::tag('noscript', html_writer::tag('div', $go), array('style' => 'inline'));
$nothing = empty($select->nothing) ? false : key($select->nothing);
$this->page->requires->js_init_call('M.util.init_select_autosubmit', array($select->formid, $select->attributes['id'], $nothing));
$this->page->requires->yui_module('moodle-core-formautosubmit',
'M.core.init_formautosubmit',
array(array('selectid' => $select->attributes['id'], 'nothing' => $nothing))
);
// then div wrapper for xhtml strictness
$output = html_writer::tag('div', $output);
+7 -15
View File
@@ -30,11 +30,11 @@ if ($ADMIN->fulltree) {
// TODO: Really the yes/no settings below should be changed to checkboxes
// given checkboxes are yes/no. Also saves us having to use language
// strings for them.
$yesstr = get_string('yes', 'theme_mymobile');
$nostr = get_string('no', 'theme_mymobile');
$yesstr = get_string('yes','theme_mymobile');
$nostr = get_string('no','theme_mymobile');
$name = 'theme_mymobile/colourswatch';
$title = get_string('colourswatch', 'theme_mymobile');
$title = get_string('colourswatch','theme_mymobile');
$description = get_string('colourswatch_desc', 'theme_mymobile');
$default = 'light';
$choices = array(
@@ -45,7 +45,7 @@ if ($ADMIN->fulltree) {
$settings->add($setting);
$name = 'theme_mymobile/showmobileintro';
$title = get_string('showmobileintro', 'theme_mymobile');
$title = get_string('showmobileintro','theme_mymobile');
$description = get_string('showmobileintro_desc', 'theme_mymobile');
$setting = new admin_setting_confightmleditor($name, $title, $description, '');
$settings->add($setting);
@@ -67,23 +67,15 @@ if ($ADMIN->fulltree) {
$settings->add($setting);
$name = 'theme_mymobile/usetableview';
$title = get_string('usetableview', 'theme_mymobile');
$title = get_string('usetableview','theme_mymobile');
$description = get_string('usetableview_desc', 'theme_mymobile');
$default = 'tabshow';
$choices = array('tabshow' => $yesstr, 'tabnoshow' => $nostr);
$setting = new admin_setting_configselect($name, $title, $description, $default, $choices);
$settings->add($setting);
$name = 'theme_mymobile/useajax';
$title = get_string('useajax', 'theme_mymobile');
$description = get_string('useajax_desc', 'theme_mymobile');
$default = 'ajaxyes';
$choices = array('ajaxyes' => $yesstr, 'ajaxno' => $nostr);
$setting = new admin_setting_configselect($name, $title, $description, $default, $choices);
$settings->add($setting);
$name = 'theme_mymobile/customcss';
$title = get_string('customcss', 'theme_mymobile');
$title = get_string('customcss','theme_mymobile');
$description = get_string('customcssdesc', 'theme_mymobile');
$default = '';
$setting = new admin_setting_configtextarea($name, $title, $description, $default);
@@ -91,4 +83,4 @@ if ($ADMIN->fulltree) {
unset($yesstr);
unset($nostr);
}
}
+84 -112
View File
@@ -73,9 +73,6 @@ li.modtype_label {
.settingsul li.Turn.editing.on {
display: none !important;
}
.settingsul .ui-li-divider a.ui-link {
color: inherit;
}
/*media plugin style overrides */
span.mediaplugin {
clear: both;
@@ -227,9 +224,6 @@ div.categorylist div.category {
#page-course-indexPAGE .category .name {
float: none;
}
#page-site-indexPAGE .ui-controlgroup-vertical .ui-btn.ui-corner-bottom {
border-bottom-width: 1px;
}
/* course stuff */
/*coursebox summary has an empy &nbsp; in it, which chops things up. need a fix... hidesummary does this and is added via js... not anymore...*/
.section div.summary {
@@ -308,9 +302,28 @@ li a.dimmed span {
padding-left: 10px;
}
*/
.course-content li.activity.ui-btn .ui-btn-text a {
padding-left: 35px;
.sitetopic li.activity.ui-li-static div.activityinstance,
.course-content li.activity.ui-li-static div.activityinstance,
.sitetopic li.activity.ui-btn .ui-btn-text a,
.course-content li.activity.ui-btn .ui-btn-text a,
.sitetopic .section .activity .availabilityinfo,
.sitetopic .section .activity .contentafterlink,
.course-content .section .activity .availabilityinfo,
.course-content .section .activity .contentafterlink {
padding-left: 45px;
padding-right: 60px;
margin-left: 0;
margin-right: 0;
position: relative;
}
.sitetopic .section li.activity p.ui-li-desc a.autolink,
.course-content .section li.activity p.ui-li-desc a.autolink {
padding: 0;
margin: 0;
}
.path-site li.activity.label > div,
.path-course-view li.activity.label > div {
position: static;
}
.topics #section-0 div.left.side {
display: none;
@@ -323,17 +336,9 @@ li a.dimmed span {
.topics li.activity span.accesshide, .weeks li.activity span.accesshide, .ui-navbar span.accesshide {
display: none;
}
.topics li.activity span.autocompletion, .weeks li.activity span.autocompletion {
display: block;
right: 70px;
top: -5px;
}
.ui-listview .autocompletion .ui-li-icon {
max-width: inherit;
max-height: inherit;
}
.sitetopic .section .activity img.activityicon,
.course-content .section .activity img.activityicon {
margin-top: -.2em;
margin-top: -.5em;
}
li.activity.ui-li-static span, li.activity div.availabilityinfo {
white-space: normal;
@@ -355,22 +360,21 @@ form.togglecompletion div {
form.togglecompletion input {
visibility: hidden;
}
.togglecompletion input[type="image"] {
.path-course-view li.activity span.autocompletion {
position: static;
}
.path-course-view li.activity span.autocompletion img,
.path-course-view li.activity form.togglecompletion [type="image"] {
display: block !important;
position: absolute !important;
top: 21%;
right: 34px !important;
right: 4em !important;
left:auto !important;
visibility: visible;
width: 26px;
height: 23px;
}
li.activity.ui-li-static span, li.activity div.availabilityinfo{
margin-left: 1.3em;
}
.section li .contentafterlink .ui-li-desc {
margin: .5em 1em;
}
.topics .content, .weeks .content {
padding-left: 0px !important;
padding-right: 0px !important;
@@ -424,9 +428,17 @@ li.activity.label {
padding: .6em !important;
cursor:default;
}
li.activity.label form.togglecompletion { position: relative; }
.sitetopic .section .activity .activityinstance,
.course-content .section .activity .activityinstance,
.sitetopic .section .activity .activityinstance div,
.course-content .section .activity .activityinstance div { display: block; }
li.label .no-overflow ul, li.label .no-overflow ul li {
list-style-position: inside;
}
span.instancename {
font-size: 110%;
}
.path-course-view .section .content {
padding:0;
margin: 0px;
@@ -437,37 +449,6 @@ li.label .no-overflow ul, li.label .no-overflow ul li {
.label div.no-overflow {
overflow:inherit !important;
}
/*course setions as pages for 2.3+ */
.course-content ul.topics .section-summary {
-moz-border-radius: .6em /*{global-radii-blocks}*/;
-webkit-border-radius: .6em /*{global-radii-blocks}*/;
border-radius: .6em /*{global-radii-blocks}*/;
}
.course-content .section-summary {
border-color: rgba(0,0,0,.25);
}
.course-content ul.topics .section-summary .summarytext{
margin: 0 0;
padding: .5em;
}
.course-content ul.topics li.section-summary .left {
background: transparent;
border: 0px;
}
.course-content .single-section .section-navigation .mdl-left, .course-content .single-section .section-navigation .mdl-right {
float: none;
margin-left: 0px;
margin-right: 0px;
}
.course-content .single-section .section-navigation .mdl-right .rarrow {
font-size: 80%;
}
.section-navigation.header.headingblock .mdl-left a .larrow, .section-navigation.mdl-bottom .mdl-left a .larrow, .section-navigation.header.headingblock .mdl-right a .rarrow, .section-navigation.mdl-bottom .mdl-right a .rarrow {
display: none;
}
.single-section .left.side {
display: none;
}
/*forms */
.buttons .singlebutton, .buttons .singlebutton form, .buttons .singlebutton div, .mform .fitem fieldset.fgroup label, .mform .fradio label, .mform .fcheckbox label, .mform fieldset.fdate_selector label {
display: inherit;
@@ -568,9 +549,6 @@ margin:0;
.forumheaderlist th {
text-align: left;
}
.forumheaderlist, .forumheaderlist thead, .forumheaderlist tbody {
display: block;
}
.forumheaderlist thead .ui-btn-inner, .topic .ui-btn {
text-align: left !important;
}
@@ -591,7 +569,6 @@ margin:0;
}
.forumheaderlist td, .forumheaderlist tr {
padding: 0px !important;
display: block;
}
table.forumheaderlist2 td.topic a {
padding: 10px;
@@ -1391,7 +1368,49 @@ a.comment-link, .block_comments a.showcommentsnonjs, .block_comments .comment-ar
.block_comments .comment-ctrl {
display: block;
}
/*collapsed topic format*/
#thetopics {
table-layout: inherit !important;
width: 100%;
display: block !important;
}
#page-course-view-topcollPAGE .section td.content, col.content {
text-align: left;
width: 100% !important;
overflow: hidden;
}
#page-course-view-topcollPAGE .section td.content {
padding: .5em;
}
#page-course-view-topcollPAGE td.left.side, #page-course-view-topcollPAGE td.right.side {
display: none;
}
#page-course-view-topcollPAGE tr.cps td a {
background: none !important;
color: inherit !important;
padding: 7px 0 7px 0px !important;
}
tr.cps td span {
font-style: inherit !important;
font-size: 1.12em !important;
}
#page-course-view-topcollPAGE .section.separator, td.cps_centre {
display: none;
}
tr.cps {
background-color: inherit !important;
color: inherit !important;
}
.opencps .ui-btn-inner .ui-icon-arrow-r {
background-position: -216px 50%;
}
tr.cps td span.ui-li-count {
font-size: .6em !important;
right: 12px;
}
#page-course-view-topcollPAGE .cps .ui-btn-inner {
white-space: normal;
}
/*filemanager fixes and other button fixes and adds */
#page-mod-quiz-reportPAGE #commands input[type="submit"], #newmessagelinks a, .que input.submit {
display: block !important;
@@ -1458,15 +1477,11 @@ overflow:auto !important;
opacity: 0.8;
}
/*current highlight */
.weeks .current .headingwrap,
.topics .current div.headingwrap,
.current .ui-bar-b,
.current .left.side,
.tabtree ul.tabrow0 li.selected a {
.weeks .current .headingwrap, .topics .current div.headingwrap, .current .ui-bar-b, .current .left.side, .tabtree ul.tabrow0 li.selected a, .ui-btn-active, #page-course-view-topcollPAGE .current {
border: 1px solid #F7C942;
background: #fadb4e;
color: #333;
text-shadow: 0 1px 0 #fff;
text-shadow: 0 1px 0 #fff;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fceda7), to(#fadb4e)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient(top, #fceda7, #fadb4e); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient(top, #fceda7, #fadb4e); /* FF3.6 */
@@ -1474,9 +1489,7 @@ overflow:auto !important;
background-image: -o-linear-gradient(top, #fceda7, #fadb4e); /* Opera 11.10+ */
background-image: linear-gradient(top, #fceda7, #fadb4e);
}
.ui-btn-active a.ui-link-inherit {
color: #333;
}
.ui-btn-active a.ui-link-inherit { color: #333; }
/*changes to nav bar at top and header */
/*necessary to set the navbar the same as the buttons because floats are not perfect ... */
.ui-header .ui-navbar {
@@ -1535,12 +1548,6 @@ overflow:auto !important;
.ui-header .ui-fullsize .ui-btn-inner, .ui-footer .ui-fullsize .ui-btn-inner {
font-size: 12.5px;
}
.ui-header .ui-navbar li .ui-btn.ui-btn-active, .ui-header .ui-navbar li .ui-btn.ui-btn-hover {
text-shadow: none;
}
#navselectform .ui-btn {
margin-right: .4em;
}
/*split page stuff for tablets */
div.tablets, #sliderdiv, .has-myblocks .jsetsbar {
display: none;
@@ -1666,40 +1673,5 @@ div.tablets, #sliderdiv, .has-myblocks .jsetsbar {
max-width: 100px;
max-height: 100px;
}
/*filepicker */
.yui3-widget.yui3-panel.yui3-widget-positioned.yui3-widget-stacked.yui3-widget-modal.yui3-dd-draggable.yui3-panel-focused {
top: 0px !important;
left: 0px !important;
width: 100% !important;
}
#filesskin .file-picker.fp-generallayout {
width: 100%;
}
.file-picker .fp-content,.file-picker .fp-repo-items {
width: 100%;
}
.file-picker .fp-repo-area {
width: 80px;
}
.file-picker .fp-repo-items {
display: inline-block;
margin-left: 81px;
}
/*2.4 updates*/
.categorylist .category .indentation {
margin-left: 0px;
}
.sitetopic .section .activity .activityinstance, .course-content .section .activity .activityinstance, .sitetopic .section .activity .activityinstance div, .course-content .section .activity .activityinstance div {
display: block;
}
.path-course-view li.activity span.autocompletion img, .path-course-view li.activity form.togglecompletion input {
top: .85em;
}
.path-course-view li.activity form.togglecompletion input {
top: .55em;
}
#mymess, #uptotop {
margin: 0 0 !important;
}
/** Custom CSS **/
[[setting:customcss]]
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
.dir-rtl .ui-collapsible-heading a {text-align: right}
.dir-rtl .ui-li, .ui-li.ui-field-contain {text-align: right;}
.dir-rtl .ui-li-thumb, .dir-rtl .ui-listview .ui-li-icon, .dir-rtl .ui-li-content {
float: right;
margin-left: 27px;
}
.dir-rtl .ui-li, .dir-rtl .ui-li.ui-field-contain {
text-align: right;
}
.dir-rtl .ui-listview .ui-li-icon {right:27px; left:auto;}
.dir-rtl .mod-indent-1 { margin-right: 0px;}
.dir-rtl .ui-icon-arrow-r {
background-position: -108px 0%;
}
.dir-rtl .ui-field-contain div.ui-slider-switch {
width: 10.5em;
}
.dir-rtl .coursebox h3 a .ui-btn-inner, .dir-rtl .category a .ui-btn-inner {
padding-right: .8em;
padding-left: 8px;
}
.dir-rtl .mform .fitem .felement {
margin-right: auto;
margin-left: 16%;
text-align: right;
}
.dir-rtl .has-myblocks .content-secondary {
text-align: right;
}
.dir-rtl .forumheaderlist thead .ui-btn-inner, .dir-rtl .topic .ui-btn {
text-align: right !important;
padding-right: 7px;
}
.dir-rtl .ui-checkbox .ui-btn, .dir-rtl .ui-radio .ui-btn {
text-align: right;
}
.dir-rtl .mform .fitemtitle { text-align: right !important; }
.path-mod-quiz.dir-rtl .que .control {
width: 75%;
}
.dir-rtl .categorybox .ui-btn-inner,
.dir-rtl .coursebox .ui-btn-inner {
text-align: right;
}
.dir-rtl .categorybox .ui-btn-text,
.dir-rtl .coursebox .ui-btn-text {
padding-right: 25px;
}
File diff suppressed because it is too large Load Diff
-4
View File
@@ -44,10 +44,6 @@
.path-mod-forum .indent {
margin-left: 0px;
}
.course-content ul.ctopics li.section .content, .course-content ul.ctopics li.tcsection .content {
margin: 0 0px;
padding: 0;
}
}
@media all and (max-width: 650px){
.forumpost div.commands a {
+2 -2
View File
@@ -26,7 +26,7 @@
defined('MOODLE_INTERNAL') || die;
$plugin->version = 2013022500; // The current module version (Date: YYYYMMDDXX)
$plugin->version = 2012112900; // The current module version (Date: YYYYMMDDXX)
$plugin->requires = 2012112900; // Requires this Moodle version
$plugin->component = 'theme_mymobile';
$plugin->maturity = MATURITY_STABLE;
$plugin->maturity = MATURITY_STABLE;