diff --git a/lang/en_utf8/repository_draft.php b/lang/en_utf8/repository_draft.php new file mode 100644 index 00000000000..1e3779a81ba --- /dev/null +++ b/lang/en_utf8/repository_draft.php @@ -0,0 +1,3 @@ +dirroot.'/repository/lib.php'); + $draft_plugin = new repository_type('draft', array(), true); + if(!$id = $draft_plugin->create(true)) { + $result = false; + } + return $result; +} diff --git a/repository/draft/db/upgrade.php b/repository/draft/db/upgrade.php new file mode 100755 index 00000000000..4fa6b60bb92 --- /dev/null +++ b/repository/draft/db/upgrade.php @@ -0,0 +1,20 @@ +get_manager(); + $result = true; + +/// And upgrade begins here. For each one, you'll need one +/// block of code similar to the next one. Please, delete +/// this comment lines once this file start handling proper +/// upgrade code. + +/// if ($result && $oldversion < YYYYMMDD00) { //New version in version.php +/// $result = result of database_manager methods +/// } + + return $result; +} diff --git a/repository/draft/icon.png b/repository/draft/icon.png new file mode 100755 index 00000000000..5131cf3de1d Binary files /dev/null and b/repository/draft/icon.png differ diff --git a/repository/draft/repository.class.php b/repository/draft/repository.class.php new file mode 100755 index 00000000000..42b469d184e --- /dev/null +++ b/repository/draft/repository.class.php @@ -0,0 +1,90 @@ +get_listing(); + } + + /** + * + * @param string $path + * @param string $path not used by this plugin + * @return mixed + */ + public function get_listing($path = '', $page = '') { + global $CFG, $USER, $itemid; + $ret = array(); + $ret['dynload'] = true; + $ret['nosearch'] = true; + $ret['nologin'] = true; + $ret['draftfiles'] = true; + $list = array(); + + $fs = get_file_storage(); + $context = get_context_instance(CONTEXT_USER, $USER->id); + $files = $fs->get_area_files($context->id, 'user_draft', $itemid); + foreach ($files as $file) { + if ($file->get_filename()!='.') { + $node = array( + 'title' => $file->get_filename(), + 'size' => 0, + 'date' => '', + 'source'=> $file->get_id(), + 'thumbnail' => $CFG->pixpath .'/f/text-32.png' + ); + $list[] = $node; + } + } + $ret['list'] = $list; + return $ret; + } + + /** + * Return draft files information + * + * @global object $USER + * @param string $fid file id + * @param string $title + * @param string $itemid + * @return string the location of the file + */ + public function get_file($fid, $title = '', $itemid = '') { + global $USER; + $ret = array(); + $browser = get_file_browser(); + $user_context = get_context_instance(CONTEXT_USER, $USER->id); + $ret['itemid'] = $itemid; + $ret['title'] = $title; + $ret['contextid'] = $user_context->id; + return $ret; + } + + /** + * + * @return string repository name + */ + public function get_name(){ + return get_string('repositoryname', 'repository_draft');; + } +} +?> diff --git a/repository/draft/version.php b/repository/draft/version.php new file mode 100755 index 00000000000..0b633c373f5 --- /dev/null +++ b/repository/draft/version.php @@ -0,0 +1,2 @@ +version = 2009062000; diff --git a/repository/repository.src.js b/repository/repository.src.js index d3ac9c86856..b15a3957056 100644 --- a/repository/repository.src.js +++ b/repository/repository.src.js @@ -249,6 +249,7 @@ repository_client.req = function(client_id, id, path, page) { params['ctx_id']=fp_config.contextid; params['client_id'] = client_id; params['repo_id']=id; + params['itemid'] = repository_client.fp[client_id].itemid; if (!!page) { // convert page to boolean value params['page']=page; } @@ -781,6 +782,33 @@ repository_client.view_as_icons = function(client_id, data) { link.appendChild(img); frame.appendChild(link); el.appendChild(frame); + if (fp.fs.draftfiles && !list[k].children) { + var delbtn = document.createElement('A'); + delbtn.href = '###'; + delbtn.innerHTML = "[X]"; + delbtn.id = 'del-id-'+String(count); + el.appendChild(delbtn); + delbtn.itemid=fp.itemid; + delbtn.client_id=client_id; + delbtn.title=list[k].title; + delbtn.repo_id=fp.fs.repo_id; + delbtn.onclick = function() { + if (confirm('Sure?')) { + var params = []; + params['client_id'] = this.client_id; + params['itemid'] = this.itemid; + params['title'] = this.title; + var trans = YAHOO.util.Connect.asyncRequest('POST', + moodle_cfg.wwwroot+'/repository/ws.php?action=delete', + this, + repository_client.postdata(params) + ); + } + } + delbtn.success = function(o) { + repository_client.req(o.responseText, this.repo_id); + } + } el.appendChild(title); panel.appendChild(el); if(list[k].children) {