Adding document type file/text see BT#6702

1.9.x
Julio Montoya 12 years ago
parent aec96e383b
commit fceeacff5d
  1. 22
      main/inc/lib/pear/HTML/QuickForm/Rule/Required.php
  2. 3
      main/work/upload.php
  3. 2
      main/work/upload_from_template.php
  4. 48
      main/work/work.lib.php

@ -47,17 +47,29 @@ class HTML_QuickForm_Rule_Required extends HTML_QuickForm_Rule
*/
function validate($value, $options = null)
{
// It seems this is a file.
if (is_array($value)) {
if (isset($value['name']) &&
isset($value['type']) &&
isset($value['tmp_name']) &&
isset($value['size']) &&
isset($value['error'])
){
if (empty($value['tmp_name'])) {
return false;
}
}
} else {
if ((string)$value == '') {
return false;
}
}
return true;
} // end func validate
}
function getValidationScript($options = null)
{
return array('', "{jsVar} == ''");
} // end func getValidationScript
} // end class HTML_QuickForm_Rule_Required
?>
}
}

@ -77,7 +77,7 @@ $interbreadcrumb[] = array('url' => api_get_path(WEB_CODE_PATH).'work/work_list.
$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('UploadADocument'));
$form = new FormValidator('form', 'POST', api_get_self()."?".api_get_cidreq()."&id=".$work_id, '', array('enctype' => "multipart/form-data"));
setWorkUploadForm($form);
setWorkUploadForm($form, $workInfo['allow_text_assignment']);
$form->addElement('hidden', 'id', $work_id);
$form->addElement('hidden', 'sec_token', $token);
@ -85,6 +85,7 @@ $error_message = null;
$succeed = false;
if ($form->validate()) {
if ($student_can_edit_in_session && $check) {
$values = $form->getSubmitValues();
// Process work

@ -62,7 +62,7 @@ $interbreadcrumb[] = array('url' => api_get_path(WEB_CODE_PATH).'work/work_list.
$interbreadcrumb[] = array('url' => '#', 'name' => get_lang('UploadFromTemplate'));
$form = new FormValidator('form', 'POST', api_get_self()."?".api_get_cidreq()."&id=".$work_id, '', array('enctype' => "multipart/form-data"));
setWorkUploadForm($form, false);
setWorkUploadForm($form, $workInfo['allow_text_assignment']);
$form->addElement('hidden', 'document_id', $documentId);
$form->addElement('hidden', 'id', $work_id);
$form->addElement('hidden', 'sec_token', $token);

@ -120,6 +120,7 @@ function settingsForm($defaults)
$form->addGroup($group, '', get_lang('StudentAllowedToDeleteOwnPublication'));
$form->addElement('button', 'submit', get_lang('Save'));
$form->setDefaults($defaults);
return $form->return_form();
}
@ -558,7 +559,8 @@ function display_student_publications_list($id, $my_folder_data, $work_parents,
// form edit directory
if (!empty($row['has_properties'])) {
$sql = Database::query('SELECT * FROM '.$work_assigment.' WHERE c_id = '.$course_id.' AND id = "'.$row['has_properties'].'" LIMIT 1');
$sql = Database::query('SELECT * FROM '.$work_assigment.'
WHERE c_id = '.$course_id.' AND id = "'.$row['has_properties'].'" LIMIT 1');
$homework = Database::fetch_array($sql);
}
// save original value for later
@ -3023,20 +3025,37 @@ function getWorkDateValidationStatus($homework) {
/**
* @param FormValidator $form
* @param bool $uploadFile
* @param int $uploadFormType
*/
function setWorkUploadForm($form, $uploadFile = true)
function setWorkUploadForm($form, $uploadFormType = 0)
{
$form->addElement('header', get_lang('UploadADocument'));
$form->addElement('hidden', 'contains_file', 0, array('id'=>'contains_file_id'));
$form->addElement('hidden', 'active', 1);
$form->addElement('hidden', 'accepted', 1);
if ($uploadFile) {
$form->addElement('text', 'title', get_lang('Title'), array('id' => 'file_upload', 'class' => 'span4'));
$form->addRule('title', get_lang('ThisFieldIsRequired'), 'required');
switch ($uploadFormType) {
case 0:
// File and text.
$form->addElement('file', 'file', get_lang('UploadADocument'), 'size="40" onchange="updateDocumentTitle(this.value)"');
$form->add_real_progress_bar('uploadWork', 'file');
}
$form->addElement('text', 'title', get_lang('Title'), array('id' => 'file_upload', 'class' => 'span4'));
$form->add_html_editor('description', get_lang('Description'), false, false, getWorkDescriptionToolbar());
break;
case 1:
// Only text.
$form->add_html_editor('description', get_lang('Description'), false, false, getWorkDescriptionToolbar());
$form->addRule('description', get_lang('ThisFieldIsRequired'), 'required');
break;
case 2:
// Only file.
$form->addElement('file', 'file', get_lang('UploadADocument'), 'size="40" onchange="updateDocumentTitle(this.value)"');
$form->add_real_progress_bar('uploadWork', 'file');
$form->addRule('file', get_lang('ThisFieldIsRequired'), 'required');
break;
}
$form->addElement('style_submit_button', 'submitWork', get_lang('Send'), array('class'=> 'upload', 'value' => "submitWork"));
}
@ -3673,7 +3692,10 @@ function getFormWork($form, $defaults = array())
$form->addElement('html', '</div>');
$form->addElement('checkbox', 'add_to_calendar', null, get_lang('AddToCalendar'));
$form->addElement('checkbox', 'allow_text_assignment', null, get_lang('AllowTextAssignments'));
//$form->addElement('checkbox', 'allow_text_assignment', null, get_lang('AllowTextAssignments'));
$form->addElement('select', 'allow_text_assignment', get_lang('DocumentType'), getUploadDocumentType());
$form->addElement('html', '</div>');
if ($defaults['enableExpiryDate'] && $defaults['enableEndDate']) {
@ -3686,6 +3708,18 @@ function getFormWork($form, $defaults = array())
return $form;
}
/**
* @return array
*/
function getUploadDocumentType()
{
return array(
0 => get_lang('AllowFileOrText'),
1 => get_lang('AllowOnlyText'),
2 => get_lang('AllowFiles')
);
}
/**
* @param array $courseInfo
* @param bool $showScore

Loading…
Cancel
Save