Assign a doc to a workshop and not a course
This commit is contained in:
6
files/db/update_v2_to_v3.sql
Normal file
6
files/db/update_v2_to_v3.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE docs ADD id_workshop int(10) unsigned DEFAULT NULL AFTER id_user;
|
||||
ALTER TABLE docs ADD INDEX(`id_workshop`);
|
||||
ALTER TABLE docs ADD FOREIGN KEY (`id_workshop`) REFERENCES workshops(`id_workshop`);
|
||||
UPDATE docs INNER JOIN courses USING(id_course) SET docs.id_workshop = courses.id_workshop;
|
||||
ALTER TABLE docs DROP FOREIGN KEY docs_ibfk_2;
|
||||
ALTER TABLE docs DROP id_course;
|
||||
@@ -143,15 +143,15 @@ class CATC extends Main
|
||||
|
||||
/* Docs */
|
||||
|
||||
public function getDocs($iCourseId) {
|
||||
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iCourseId);
|
||||
public function getDocs($iWorkshopId) {
|
||||
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iWorkshopId);
|
||||
$asDocList = $oDoc->getList();
|
||||
return self::getJsonResult(!empty($asDocList), '', $asDocList);
|
||||
}
|
||||
|
||||
public function uploadDoc($iCourseId) {
|
||||
public function uploadDoc($iWorkshopId) {
|
||||
$this->oClassManagement->incClass('uploader', true);
|
||||
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iCourseId);
|
||||
$oDoc = new Doc($this->oDb, $this->oAuth->getUserId(), $iWorkshopId);
|
||||
$oUploader = new Uploader($oDoc);
|
||||
|
||||
return $oUploader->sBody;
|
||||
|
||||
@@ -45,7 +45,7 @@ class Course extends PhpObject {
|
||||
}
|
||||
|
||||
public function getCourses($iWorkshopId=0) {
|
||||
$asInfo = array('select'=> array(Db::getId(self::COURSE_TABLE), 'description', 'timeslot'), 'from' => self::COURSE_TABLE);
|
||||
$asInfo = array('select'=> array(Db::getId(self::COURSE_TABLE), Db::getId(self::WS_TABLE), 'description', 'timeslot'), 'from' => self::COURSE_TABLE);
|
||||
if($iWorkshopId > 0) $asInfo['constraint'] = array(Db::getId(self::WS_TABLE) => $iWorkshopId);
|
||||
|
||||
return $this->oDb->selectRows($asInfo, Db::getId(self::COURSE_TABLE));
|
||||
|
||||
19
inc/doc.php
19
inc/doc.php
@@ -12,23 +12,23 @@ class Doc extends PhpObject {
|
||||
|
||||
private $iDocId;
|
||||
private $iUserId;
|
||||
private $iCourseId;
|
||||
private $iWorkshopId;
|
||||
|
||||
public function __construct(Db &$oDb, $iUserId=0, $iCourseId=0)
|
||||
public function __construct(Db &$oDb, $iUserId=0, $iWorkshopId=0)
|
||||
{
|
||||
parent::__construct(__CLASS__, Settings::DEBUG);
|
||||
$this->oDb = &$oDb;
|
||||
$this->setDocId(0);
|
||||
$this->setUserCourseId($iUserId, $iCourseId);
|
||||
$this->setUserWorkshopId($iUserId, $iWorkshopId);
|
||||
}
|
||||
|
||||
public function setDocId($iDocId) {
|
||||
$this->iDocId = $iDocId;
|
||||
}
|
||||
|
||||
public function setUserCourseId($iUserId, $iCourseId) {
|
||||
public function setUserWorkshopId($iUserId, $iWorkshopId) {
|
||||
$this->iUserId = $iUserId;
|
||||
$this->iCourseId = $iCourseId;
|
||||
$this->iWorkshopId = $iWorkshopId;
|
||||
}
|
||||
|
||||
public function exists($sFileName) {
|
||||
@@ -37,6 +37,7 @@ class Doc extends PhpObject {
|
||||
|
||||
public function add($sFileName, $sMimeType) {
|
||||
$sType = '';
|
||||
|
||||
switch(mime_content_type(self::getFilePath($sFileName))) {
|
||||
case 'application/msword':
|
||||
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': $sType = 'word'; break;
|
||||
@@ -45,11 +46,15 @@ class Doc extends PhpObject {
|
||||
case 'image/gif': $sType = 'image'; break;
|
||||
case 'image/jpeg': $sType = 'image'; break;
|
||||
case 'image/png': $sType = 'image'; break;
|
||||
default:
|
||||
switch(pathinfo($sFileName, PATHINFO_EXTENSION)) {
|
||||
case 'mp3': $sType = 'audio'; break;
|
||||
}
|
||||
}
|
||||
|
||||
$asData = array_merge($this->getDocKeys(), array('filename'=>$sFileName, 'type'=>$sType));
|
||||
|
||||
$bResult = $this->oDb->insertRow(self::DOC_TABLE, $asData);
|
||||
|
||||
return $bResult?'':'error_db';
|
||||
}
|
||||
|
||||
@@ -77,7 +82,7 @@ class Doc extends PhpObject {
|
||||
}
|
||||
|
||||
private function getDocKeys() {
|
||||
return array(Db::getId(Auth::USER_TABLE) => $this->iUserId, Db::getId(Course::COURSE_TABLE) => $this->iCourseId);
|
||||
return array(Db::getId(Auth::USER_TABLE) => $this->iUserId, Db::getId(Course::WS_TABLE) => $this->iWorkshopId);
|
||||
}
|
||||
|
||||
private static function getFilePath($sFileName) {
|
||||
|
||||
@@ -59,7 +59,7 @@ oCATC.pageInit = function(asHash, bFirstPage) {
|
||||
.fileupload({
|
||||
dataType: 'json',
|
||||
acceptFileTypes: /(\.|\/)(gif|jpe?g|png|mov|doc|docx|pdf|mp3|wav)$/i,
|
||||
formData: {id: self.tmp('id_course')},
|
||||
formData: {id: self.consts.courses[self.tmp('id_course')].id_workshop},
|
||||
progressall: function (e, asData) {
|
||||
console.log(asData);
|
||||
var iProgress = parseInt(asData.loaded / asData.total * 100, 10);
|
||||
@@ -112,7 +112,7 @@ function loadDocs() {
|
||||
});
|
||||
|
||||
},
|
||||
{id: self.tmp('id_course')},
|
||||
{id: self.consts.courses[self.tmp('id_course')].id_workshop},
|
||||
() => {console.log('No doc found for course ID = '+self.tmp('id_course'))}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user