MDL-37012 fix wrong css + add final . to comment lines + do not use attributid parameter (duplicate of hiddeninputid)

This commit is contained in:
Jerome Mouneyrac
2013-02-04 11:17:02 +08:00
parent 46b229f9a8
commit e62cf63035
5 changed files with 61 additions and 35 deletions
+4 -4
View File
@@ -140,7 +140,7 @@ class community_hub_search_form extends moodleform {
$smalllogohtml = '';
if (array_key_exists('id', $hub)) {
// Retrieve hub logo + generate small logo
// Retrieve hub logo + generate small logo.
$params = array('hubid' => $hub['id'],
'filetype' => HUB_HUBSCREENSHOT_FILE_TYPE);
$imgurl = new moodle_url(HUB_HUBDIRECTORYURL .
@@ -194,7 +194,7 @@ class community_hub_search_form extends moodleform {
array('class' => '', 'href' => $hub['url']));
}
// Add hub to the hub items
// Add hub to the hub items.
$hubinfo = new stdClass();
$hubinfo->mainhtml = $hubfulldesc;
$hubinfo->rowhtml = html_writer::tag('div', $smalllogohtml ,
@@ -202,7 +202,7 @@ class community_hub_search_form extends moodleform {
$hubitems[$hub['url']] = $hubinfo;
}
// Hub listing form element
// Hub listing form element.
$mform->addElement('listing','huburl', '', '', array('items' => $hubitems,
'showall' => get_string('showall', 'block_community'),
'hideall' => get_string('hideall', 'block_community')));
@@ -326,4 +326,4 @@ class community_hub_search_form extends moodleform {
return $errors;
}
}
}
+11 -13
View File
@@ -15,9 +15,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Listing form element
* Listing form element.
*
* Contains HTML class for a listing form element
* Contains HTML class for a listing form element.
*
* @package core_form
* @copyright 2012 Jerome Mouneyrac
@@ -27,7 +27,6 @@
require_once("HTML/QuickForm/button.php");
/**
* What is it:
* The listing element is a simple customizable "select" without the input type=select.
* One main div contains the "large" html of an item.
* A show/hide div shows a hidden div containing the list of all items.
@@ -51,7 +50,7 @@ require_once("HTML/QuickForm/button.php");
class MoodleQuickForm_listing extends HTML_QuickForm_input {
/** @var array items to display */
protected $items = array();
protected $items = array();
/** @var string language string for Show All */
protected $showall;
@@ -60,7 +59,7 @@ class MoodleQuickForm_listing extends HTML_QuickForm_input {
protected $hideall;
/**
* Constructor
* Constructor.
*
* @param string $elementName (optional) name of the listing
* @param string $elementLabel (optional) listing label
@@ -90,7 +89,7 @@ class MoodleQuickForm_listing extends HTML_QuickForm_input {
/**
* Returns HTML for listing form element.
*
* @return string
* @return string the HTML
*/
function toHtml() {
global $CFG, $PAGE;
@@ -98,18 +97,18 @@ class MoodleQuickForm_listing extends HTML_QuickForm_input {
$mainhtml = html_writer::tag('div', $this->items[$this->getValue()]->mainhtml,
array('id' => $this->getName().'_items_main', 'class' => 'formlistingmain'));
// Add the main div containing the selected item (+ the caption: "More items")
// Add the main div containing the selected item (+ the caption: "More items").
$html = html_writer::tag('div', $mainhtml .
html_writer::tag('div', $this->showall,
array('id' => $this->getName().'_items_caption', 'class' => 'formlistingmore')),
array('id'=>$this->getName().'_items', 'class' => 'formlisting hide'));
// Add collapsible region: all the items
// Add collapsible region: all the items.
$itemrows = '';
$html .= html_writer::tag('div', $itemrows,
array('id' => $this->getName().'_items_all', 'class' => 'formlistingall'));
// Add radio buttons for non javascript support
// Add radio buttons for non javascript support.
$radiobuttons = '';
foreach($this->items as $itemid => $item) {
$radioparams = array('name' => $this->getName(), 'value' => $itemid,
@@ -123,7 +122,7 @@ class MoodleQuickForm_listing extends HTML_QuickForm_input {
;
}
// Container for the hidden hidden input which will contain the selected item
// Container for the hidden hidden input which will contain the selected item.
$html .= html_writer::tag('div', $radiobuttons,
array('id' => 'formlistinginputcontainer', 'class' => 'formlistinginputcontainer'));
@@ -131,16 +130,15 @@ class MoodleQuickForm_listing extends HTML_QuickForm_input {
'requires'=>array('node', 'event', 'transition'));
$PAGE->requires->js_init_call('M.form_listing.init',
array(array('hiddeninputid' => $this->getAttribute('id'),
array(array(
'elementid' => $this->getName().'_items',
'hideall' => $this->hideall,
'showall' => $this->showall,
'hiddeninputid' => $this->getAttribute('id'),
'items' => $this->items,
'attributid' => $this->getAttribute('id'),
'inputname' => $this->getName(),
'currentvalue' => $this->getValue())), true, $module);
return $html;
}
}
+44 -14
View File
@@ -1,37 +1,67 @@
// 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/>.
/**
* Form listing Javascript.
*
* It mainly handles loading the main content div when cliking on a tab/row.
* @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
M.form_listing = {};
M.form_listing.Y = null;
M.form_listing.instances = [];
/**
* This fucntion is called for each listing on page.
* This function is called for each listing form on page.
*
* @param {Array} params : {int} hiddeninputid - the id of the hidden input element
* {int} elementid - the id of the full form element
* {Array} items - items has for key the value return by the form, and for content an array with two attributs: mainhtml and rowhtml.
* {string} hideall - button label to hide all tabs(rows).
* {string} showall - button label to show all tabs(rows).
* {string} inputname - the name of the input element
* {string} currentvalue - the currently selected tab(row)
*/
M.form_listing.init = function(Y, params) {
if (params && params.hiddeninputid && params.elementid) {
// Enable element that were hidden/displau for support of no-javascript
// Display the form
// Enable element that were hidden/displau for support of no-javascript.
// Display the form.
Y.one('#'+params.elementid).removeClass('hide');
// Replace the radio buttons by a hidden input
Y.one('#formlistinginputcontainer').setHTML('<input name='+params.inputname+' type=hidden id='+params.attributid+' value='+params.currentvalue+' />');
// Replace the radio buttons by a hidden input.
Y.one('#formlistinginputcontainer').setHTML('<input name='+params.inputname+' type=hidden id='+params.hiddeninputid+' value='+params.currentvalue+' />');
var caption = Y.one('#'+params.elementid+'_caption');
var allitems = Y.one('#'+params.elementid+'_all');
var selecteditem = Y.one('#'+params.elementid+'_main');
var hiddeninput = Y.one('#'+params.hiddeninputid);
// Do not display the listing by default
// Do not display the listing by default.
var show = 0;
allitems.hide();
// Refresh the main item + set the hidden input to its value
// Refresh the main item + set the hidden input to its value.
var selectItem = function(e) {
var index = this.get('id').replace(params.elementid+'_all_',"");;
hiddeninput.set('value', items[index]);
selecteditem.setHTML(params.items[items[index]].mainhtml)
}
// caption Onlick event to display/hide the listing
// Caption Onlick event to display/hide the listing.
var onClick = function(e) {
if (!show) {
allitems.show(true);
@@ -46,18 +76,18 @@ M.form_listing.init = function(Y, params) {
caption.on('click', onClick);
// Fill the item rows with html + add event
// PS: we need to save the items into a temporary "items[]" array because params.items keys could be
// url. This temporary items[] avoid not working calls like Y.one('#myitems_http:www.google.com').
// Fill the item rows with html + add event.
// PS: we need to save the items into a temporary "items[]" array because params.items keys could be url.
// This temporary items[] avoid not working calls like Y.one('#myitems_http:www.google.com').
var items = [];
var itemindex = 0;
for (itemid in params.items) {
items[itemindex] = itemid;
// Add the row
// Add the row.
allitems.append("<div id="+params.elementid+'_all_'+itemindex+" class='formlistingrow'>" + params.items[itemid].rowhtml + "</div>");
// Add click event to the row
// Add click event to the row.
Y.one('#'+params.elementid+'_all_'+itemindex).on('click', selectItem);
itemindex = itemindex + 1;
+1 -1
View File
@@ -95,7 +95,7 @@ M.util.CollapsibleRegion = function(Y, id, userpref, strtooltip) {
// Get the caption for the collapsible region
var caption = this.div.one('#'+id + '_caption');
console.log('#'+id + '_caption');
// Create a link
var a = Y.Node.create('<a href="#"></a>');
a.setAttribute('title', strtooltip);
+1 -3
View File
@@ -1118,8 +1118,6 @@ table.flexible .r1, table.generaltable .r1 {background-color: #FAFAFA;}
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
/*background-color: #F7F7F9;
borde*/r: 1px solid #E1E1E8;
}
.formlistingrow {
@@ -1141,4 +1139,4 @@ table.flexible .r1, table.generaltable .r1 {background-color: #FAFAFA;}
body.jsenabled .formlistingradio {
display: none;
}
}