mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 00:16:46 +02:00
MDL-26167 lib/form: Altering Javascript so that "disabledIf" will disable the "Choose" button for a filepicker
This commit is contained in:
parent
91787c37e1
commit
4b72f9eb78
4 changed files with 22 additions and 2 deletions
|
@ -77,13 +77,14 @@ class MoodleQuickForm_filepicker extends HTML_QuickForm_input {
|
||||||
$args->itemid = $draftitemid;
|
$args->itemid = $draftitemid;
|
||||||
$args->maxbytes = $this->_options['maxbytes'];
|
$args->maxbytes = $this->_options['maxbytes'];
|
||||||
$args->context = $PAGE->context;
|
$args->context = $PAGE->context;
|
||||||
|
$args->buttonname = $elname.'choose';
|
||||||
|
|
||||||
$html = $this->_getTabs();
|
$html = $this->_getTabs();
|
||||||
$fp = new file_picker($args);
|
$fp = new file_picker($args);
|
||||||
$options = $fp->options;
|
$options = $fp->options;
|
||||||
$options->context = $PAGE->context;
|
$options->context = $PAGE->context;
|
||||||
$html .= $OUTPUT->render($fp);
|
$html .= $OUTPUT->render($fp);
|
||||||
$html .= '<input type="hidden" name="'.$elname.'" id="'.$id.'" value="'.$draftitemid.'" />';
|
$html .= '<input type="hidden" name="'.$elname.'" id="'.$id.'" value="'.$draftitemid.'" class="filepickerhidden"/>';
|
||||||
|
|
||||||
$module = array('name'=>'form_filepicker', 'fullpath'=>'/lib/form/filepicker.js', 'requires'=>array('core_filepicker'));
|
$module = array('name'=>'form_filepicker', 'fullpath'=>'/lib/form/filepicker.js', 'requires'=>array('core_filepicker'));
|
||||||
$PAGE->requires->js_init_call('M.form_filepicker.init', array($fp->options), true, $module);
|
$PAGE->requires->js_init_call('M.form_filepicker.init', array($fp->options), true, $module);
|
||||||
|
|
|
@ -198,12 +198,25 @@ M.form.initFormDependencies = function(Y, formid, dependencies) {
|
||||||
*/
|
*/
|
||||||
_disableElement : function(name, disabled) {
|
_disableElement : function(name, disabled) {
|
||||||
var els = this.elementsByName(name);
|
var els = this.elementsByName(name);
|
||||||
|
var form = this;
|
||||||
els.each(function(){
|
els.each(function(){
|
||||||
if (disabled) {
|
if (disabled) {
|
||||||
this.setAttribute('disabled', 'disabled');
|
this.setAttribute('disabled', 'disabled');
|
||||||
} else {
|
} else {
|
||||||
this.removeAttribute('disabled');
|
this.removeAttribute('disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extra code to disable a filepicker
|
||||||
|
if (this.getAttribute('class') == 'filepickerhidden'){
|
||||||
|
var pickerbuttons = form.elementsByName(name + 'choose');
|
||||||
|
pickerbuttons.each(function(){
|
||||||
|
if (disabled){
|
||||||
|
this.setAttribute('disabled','disabled');
|
||||||
|
} else {
|
||||||
|
this.removeAttribute('disabled');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -57,6 +57,7 @@ class file_picker implements renderable {
|
||||||
'itemid' => 0,
|
'itemid' => 0,
|
||||||
'maxbytes'=>-1,
|
'maxbytes'=>-1,
|
||||||
'maxfiles'=>1,
|
'maxfiles'=>1,
|
||||||
|
'buttonname'=>false,
|
||||||
);
|
);
|
||||||
foreach ($defaults as $key=>$value) {
|
foreach ($defaults as $key=>$value) {
|
||||||
if (empty($options->$key)) {
|
if (empty($options->$key)) {
|
||||||
|
|
|
@ -1979,13 +1979,18 @@ class core_renderer extends renderer_base {
|
||||||
} else {
|
} else {
|
||||||
$maxsize = get_string('maxfilesize', 'moodle', display_size($size));
|
$maxsize = get_string('maxfilesize', 'moodle', display_size($size));
|
||||||
}
|
}
|
||||||
|
if ($options->buttonname){
|
||||||
|
$buttonname = ' name="' . $options->buttonname . '"';
|
||||||
|
} else {
|
||||||
|
$buttonname = '';
|
||||||
|
}
|
||||||
$html = <<<EOD
|
$html = <<<EOD
|
||||||
<div class="filemanager-loading mdl-align" id='filepicker-loading-{$client_id}'>
|
<div class="filemanager-loading mdl-align" id='filepicker-loading-{$client_id}'>
|
||||||
$icon_progress
|
$icon_progress
|
||||||
</div>
|
</div>
|
||||||
<div id="filepicker-wrapper-{$client_id}" class="mdl-left" style="display:none">
|
<div id="filepicker-wrapper-{$client_id}" class="mdl-left" style="display:none">
|
||||||
<div>
|
<div>
|
||||||
<input type="button" id="filepicker-button-{$client_id}" value="{$straddfile}" />
|
<input type="button" id="filepicker-button-{$client_id}" value="{$straddfile}"{$buttonname}/>
|
||||||
<span> $maxsize </span>
|
<span> $maxsize </span>
|
||||||
</div>
|
</div>
|
||||||
EOD;
|
EOD;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue