MDL-15405

1. Produce repository list dynamicly.
2. Remove logout button, add a logout link after repository name
This commit is contained in:
dongsheng
2008-07-17 09:34:15 +00:00
parent 208edd7fca
commit 38e554420b
3 changed files with 60 additions and 27 deletions
+34 -25
View File
@@ -6,6 +6,7 @@
\*******************************************************/
require_once('../config.php');
require_once('lib.php');
$itempic = $CFG->pixpath.'/i/item.gif';
$meta = <<<EOD
<style type="text/css">
@@ -34,6 +35,7 @@ color:white;
}
.t{width:80px; float:left;text-align:center;}
.t div{width: 80px; height: 36px; overflow: hidden}
.repo-logout{font-size: 10px;}
img{margin:0;padding:0;border:0}
#paging{margin:10px 5px; clear:both}
#paging a{padding: 4px; border: 1px solid gray}
@@ -76,6 +78,14 @@ var repositoryid = 0;
var datasource, Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, layout = null, resize = null;
var viewbar = null;
var viewmode = 0;
var repos = [];
<?php
$repos = repository_get_repositories();
foreach($repos as $repo) {
echo 'repos.push('.json_encode($repo).')';
echo "\n";
}
?>
/**
* this function will create a file picker dialog, and resigister all the event
@@ -111,7 +121,6 @@ function openpicker(){
body: '<div id="toolbar">'+
'<input type="button" id="select" value="Select" />'+
'<input type="button" id="search" value="Search" />'+
'<input type="button" id="logout" value="Logout" />'+
'</div>',
gutter: '2'},
{ position: 'center', body: '<div id="panel"></div>', scroll: true, gutter: '0 2 0 0' }
@@ -146,29 +155,29 @@ function openpicker(){
}, panel, true);
var list = new YAHOO.util.Element('list');
list.on('contentReady', function(e){
// TODO
// Should call a function to generate
// repository list
var li = document.createElement('li');
li.innerHTML = '<a href="###">Box.net</a>';
li.id = 'repo-1';
this.appendChild(li);
var i = new YAHOO.util.Element('repo-1');
i.on('click', function(e){
cr(1, 1, 0);
});
li = document.createElement('li');
li.innerHTML = '<a href="###">Flickr</a>';
li.id = 'repo-2';
this.appendChild(li);
i = new YAHOO.util.Element('repo-2');
i.on('click', function(e){
cr(2, 1, 0);
});
for(var i=0; i<repos.length; i++) {
var repo = repos[i];
var li = document.createElement('li');
li.innerHTML = '<a href="###" id="repo-call-'+repo.id+'">'+
repo.repositoryname+'</a> ';
li.innerHTML += '<a href="###" class="repo-logout" id="repo-logout-'+repo.id+'">Logout</a>';
li.id = 'repo-'+repo.id;
this.appendChild(li);
var e = new YAHOO.util.Element('repo-call-'+repo.id);
e.on('click', function(e){
var re = /repo-call-(\d+)/i;
var id = this.get('id').match(re);
cr(id[1], 1, 0);
});
e = new YAHOO.util.Element('repo-logout-'+repo.id);
e.on('click', function(e){
var re = /repo-logout-(\d+)/i;
var id = this.get('id').match(re);
cr(id[1], 1, 1);
});
repo = null;
}
});
YAHOO.util.Event.addListener('logout', 'click', function(e){
cr(repositoryid, 1, 1);
});
viewbar = new YAHOO.widget.ButtonGroup({
id: 'btngroup',
name: 'buttons',
@@ -252,7 +261,7 @@ function viewthumb(){
for(k in obj){
str += '<div class="t">';
str += '<img title="'+obj[k].title+'" src="'+obj[k].thumbnail+'" />';
str += '<div style="text-align:center"><input type="checkbox" name="selected-files" value="'+obj[k].source+'"/><br/>'
str += '<div style="text-align:center"><input type="radio" name="selected-files" value="'+obj[k].source+'"/><br/>'
str += obj[k].title+'</div>';
str += '</div>';
}
@@ -272,7 +281,7 @@ function viewlist(){
var panel = new YAHOO.util.Element('panel');
str += makepage();
for(k in obj){
str += '<input type="checkbox" name="selected-files" value="'+obj[k].source+'" />';
str += '<input type="radio" name="selected-files" value="'+obj[k].source+'" />';
str += obj[k].title;
str += '<br/>';
}
+6 -2
View File
@@ -52,8 +52,12 @@ class curl {
if (!empty($options['debug'])) {
$this->debug = true;
}
if (!empty($options['cookie'])) {
$this->cookie = $options['cookie'];
if(!empty($options['cookie'])) {
if($options['cookie'] === true) {
$this->cookie = $CFG->dataroot.'/curl_cookie.txt';
} else {
$this->cookie = $options['cookie'];
}
}
if (!empty($options['cache'])) {
if (class_exists('repository_cache')) {
+20
View File
@@ -325,6 +325,26 @@ function repository_get_option($id, $position){
$ret = (array)unserialize($entry->$option);
return $ret;
}
function repository_get_repositories(){
global $DB, $CFG, $USER;
$contextid = 0;
$params = array();
$sql = 'SELECT * FROM {repository} r WHERE ';
$sql .= ' (r.userid = 0 or r.userid = ?) ';
$params[] = $USER->id;
if($contextid == SITEID) {
$sql .= 'AND (r.contextid = ?)';
$params[] = SITEID;
} else {
$sql .= 'AND (r.contextid = ? or r.contextid = ?)';
$params[] = SITEID;
$params[] = $contextid;
}
if(!$repos = $DB->get_records_sql($sql, $params)) {
$repos = array();
}
return $repos;
}
function repository_get_plugins(){
global $CFG;
$repo = $CFG->dirroot.'/repository/';