diff --git a/course/dndupload.js b/course/dndupload.js index 291583c55a7..35ded979e36 100644 --- a/course/dndupload.js +++ b/course/dndupload.js @@ -798,6 +798,13 @@ M.course_dndupload = { return; } + if (type.handlers.length == 1 && type.handlers[0].noname) { + // Only one handler and it doesn't need a name (i.e. a label). + this.upload_item('', type.type, contents, section, sectionnumber, type.handlers[0].module); + this.check_upload_queue(); + return; + } + if (this.uploaddialog) { var details = new Object(); details.isfile = false; @@ -814,21 +821,22 @@ M.course_dndupload = { var uploadid = Math.round(Math.random()*100000)+'-'+timestamp; var nameid = 'dndupload_handler_name'+uploadid; var content = ''; - content += ''; - content += ' '; if (type.handlers.length > 1) { content += '
'; var sel = type.handlers[0].module; for (var i=0; i'; + content += ''; content += '
'; } content += '
'; } + var disabled = (type.handlers[0].noname) ? ' disabled = "disabled" ' : ''; + content += ''; + content += ' '; var Y = this.Y; var self = this; @@ -846,16 +854,16 @@ M.course_dndupload = { e.preventDefault(); var name = Y.one('#dndupload_handler_name'+uploadid).get('value'); name = name.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // Trim - if (name == '') { - return; - } var module = false; + var noname = false; if (type.handlers.length > 1) { // Find out which module was selected var div = Y.one('#dndupload_handlers'+uploadid); div.all('input').each(function(input) { if (input.get('checked')) { - module = input.get('value'); + var idx = input.get('value'); + module = type.handlers[idx].module; + noname = type.handlers[idx].noname; } }); if (!module) { @@ -863,6 +871,10 @@ M.course_dndupload = { } } else { module = type.handlers[0].module; + noname = type.handlers[0].noname; + } + if (name == '' && !noname) { + return; } panel.hide(); // Do the upload @@ -887,6 +899,17 @@ M.course_dndupload = { }); // Focus on the 'name' box Y.one('#'+nameid).focus(); + for (i=0; iadd_type_handler($type['identifier'], $modname, $type['message']); + $noname = !empty($type['noname']); + $this->add_type_handler($type['identifier'], $modname, $type['message'], $noname); } } } @@ -195,8 +196,10 @@ class dndupload_handler { * @param string $module The name of the module to handle this type * @param string $message The message to show the user if more than one handler is registered * for a type and the user needs to make a choice between them + * @param bool $noname If true, the 'name' dialog should be disabled in the pop-up. + * @throws coding_exception */ - public function add_type_handler($type, $module, $message) { + public function add_type_handler($type, $module, $message, $noname) { if (!$this->is_known_type($type)) { throw new coding_exception("Trying to add handler for unknown type $type"); } @@ -205,6 +208,7 @@ class dndupload_handler { $add->type = $type; $add->module = $module; $add->message = $message; + $add->noname = $noname ? 1 : 0; $this->types[$type]->handlers[] = $add; } diff --git a/lang/en/moodle.php b/lang/en/moodle.php index 32f6b47f1e1..28cc048428c 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -65,7 +65,7 @@ $string['addnewcategory'] = 'Add new category'; $string['addnewcourse'] = 'Add a new course'; $string['addnewuser'] = 'Add a new user'; $string['addnousersrecip'] = 'Add users who haven\'t accessed this {$a} to recipient list'; -$string['addpagehere'] = 'Add page here'; +$string['addpagehere'] = 'Add text here'; $string['addresource'] = 'Add a resource...'; $string['addresourceoractivity'] = 'Add an activity or resource'; $string['addresourcetosection'] = 'Add a resource to section \'{$a}\''; @@ -1097,7 +1097,7 @@ $string['mymoodledashboard'] = 'My Moodle dashboard'; $string['myprofile'] = 'My profile'; $string['name'] = 'Name'; $string['nameforlink'] = 'What do you want to call this link?'; -$string['nameforpage'] = 'What do you want to call this page?'; +$string['nameforpage'] = 'What do you want to call this text?'; $string['navigation'] = 'Navigation'; $string['needed'] = 'Needed'; $string['never'] = 'Never'; diff --git a/mod/label/lib.php b/mod/label/lib.php index 64208d4bd94..b9149050b82 100644 --- a/mod/label/lib.php +++ b/mod/label/lib.php @@ -222,8 +222,8 @@ function label_dndupload_register() { $strdndtext = get_string('dnduploadlabeltext', 'mod_label'); return array_merge($ret, array('types' => array( - array('identifier' => 'text/html', 'message' => $strdndtext), - array('identifier' => 'text', 'message' => $strdndtext) + array('identifier' => 'text/html', 'message' => $strdndtext, 'noname' => true), + array('identifier' => 'text', 'message' => $strdndtext, 'noname' => true) ))); }