<?php
/*******************************************************\
- This file is a demo page for ajax repository file
+ This file is a demo page for ajax repository file
picker.
\*******************************************************/
$meta = <<<EOD
<style type="text/css">
body {
- margin:0;
- padding:0;
+ margin:0;
+ padding:0;
}
#demo .yui-resize-handle-br {
height: 11px;
units: [
{position: 'top', height: 32, resize: false, body:'<div class="yui-buttongroup" id="viewbar"></div>', gutter: '2'},
{ position: 'left', width: 150, resize: true, body: '<ul id="list"></ul>', gutter: '0 5 0 2', minWidth: 150, maxWidth: 300 },
- { position: 'bottom',
- height: 30,
+ { position: 'bottom',
+ height: 30,
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>',
+ '</div>',
gutter: '2'},
{ position: 'center', body: '<div id="panel"></div>', scroll: true, gutter: '0 2 0 0' }
]
layout.set('height', bodyContentHeight);
layout.set('width', (args.width - PANEL_BODY_PADDING));
layout.resize();
-
+
}, panel, true);
var list = new YAHOO.util.Element('list');
list.on('contentReady', function(e){
viewbar.addButtons([btn_list, btn_thumb]);
var select = new YAHOO.util.Element('select');
select.on('click', function(e){
- var nodes = YAHOO.util.Selector.query('input:checked');
+ var nodes = YAHOO.util.Selector.query('input:checked');
var str = '';
for(k in nodes){
str += (nodes[k].value+'\n');
})
var search = new YAHOO.util.Element('search');
search.on('click', function(e){
- // TODO
- // Call get_listing to search
- })
+ var data=window.prompt("What are you searching for?");
+ if(data != null || data != '') {
+ dosearch(data);
+ }
+ })
};
function postdata(obj) {
str += '</a> ';
}
str += '</div>';
- }
+ }
return str;
}
return str;
}
-// produce login html
+// produce login html
function print_login(){
var panel = new YAHOO.util.Element('panel');
var data = datasource.l;
var callback = {
success: function(o) {
- var ret = YAHOO.lang.JSON.parse(o.responseText);
+ try {
+ var ret = YAHOO.lang.JSON.parse(o.responseText);
+ } catch(e) {
+ alert(e);
+ }
datasource = ret;
if(datasource.l){
print_login();
loading();
var trans = YAHOO.util.Connect.asyncRequest('GET', 'ws.php?id='+id+'&p='+path+'&reset='+reset, callback);
}
+function dosearch(text){
+ viewbar.set('disabled', false);
+ loading();
+ var trans = YAHOO.util.Connect.asyncRequest('GET', 'ws.php?id='+repositoryid+'&s='+text, callback);
+}
function dologin(){
YAHOO.util.Connect.setForm('moodle-repo-login');
global $SESSION;
$people = $this->flickr->people_findByEmail($SESSION->flickrmail);
$photos_url = $this->flickr->urls_getUserPhotos($people['nsid']);
- $photos = $this->flickr->people_getPublicPhotos($people['nsid'], null, 36, $path);
+
+ if(!empty($search)) {
+ // do searching, if $path is not empty, ignore it.
+ $photos = $this->flickr->photos_search(array('user_id'=>$people['nsid'], 'text'=>$search));
+ } elseif(!empty($path) && empty($search)) {
+ $photos = $this->flickr->people_getPublicPhotos($people['nsid'], null, 36, $path);
+ }
+
$ret = new stdclass;
$ret->url = $photos_url;
$ret->list = array();
- //$ret->page = $photos['page'];
- $ret->page = $path;
$ret->pages = $photos['pages'];
+ if(is_int($path) && $path <= $ret->pages) {
+ $ret->page = $path;
+ } else {
+ $ret->page = 1;
+ }
foreach ($photos['photo'] as $p) {
if(empty($p['title'])) {
$p['title'] = get_string('notitle', 'repository_flickr');
"src=" . $photo['thumbnail'] . ">";
$str .= "</a>";
$i++;
-
+
if ($i % 4 == 0) {
$str .= "<br/>";
}
require_once('../config.php');
require_once('lib.php');
$CFG->repository_cache_expire = 12000;
+// repository id
$id = optional_param('id', PARAM_INT);
+// action of client
$action = optional_param('action', '', PARAM_RAW);
+// path
$p = optional_param('p', '', PARAM_RAW);
-$search = optional_param('search', '', PARAM_RAW);
+// Search text
+$search = optional_param('s', '', PARAM_RAW);
if(!$repository = $DB->get_record('repository', array('id'=>$id))) {
echo json_encode('wrong');
} else {
echo json_encode($repo->get_listing());
}
-
+
} else {
echo json_encode($repo->print_login());
}