repo_yui_loaded)) { $css .= << @import "$CFG->httpswwwroot/lib/yui/resize/assets/skins/sam/resize.css"; @import "$CFG->httpswwwroot/lib/yui/container/assets/skins/sam/container.css"; @import "$CFG->httpswwwroot/lib/yui/layout/assets/skins/sam/layout.css"; @import "$CFG->httpswwwroot/lib/yui/button/assets/skins/sam/button.css"; @import "$CFG->httpswwwroot/lib/yui/assets/skins/sam/treeview.css"; EOD; $js = << EOD; $CFG->repo_yui_loaded = true; } else { $js = ''; } $js .= << //'); filepicker.beforeRenderEvent.subscribe(function() { Event.onAvailable('layout-$suffix', function() { layout = new YAHOO.widget.Layout('layout-$suffix', { height: 480, width: 680, units: [ {position: 'top', height: 32, resize: false, body:'
', gutter: '2'}, {position: 'left', width: 200, resize: true, scroll:true, body:'
    ', gutter: '0 5 0 2', minWidth: 150, maxWidth: 300 }, {position: 'center', body: '
    ', scroll: true, gutter: '0 2 0 0' } ] }); layout.render(); }); }); resize = new YAHOO.util.Resize('file-picker-$suffix', { handles: ['br'], autoRatio: true, status: true, minWidth: 680, minHeight: 400 }); if(YAHOO.env.ua.ie == 6){ var title_el = document.getElementById('file-picker-$suffix'); title_el.style.width = '680px'; } resize.on('resize', function(args) { var panelHeight = args.height; var headerHeight = this.header.offsetHeight; // Content + Padding + Border var bodyHeight = (panelHeight - headerHeight); var bodyContentHeight = (IE_QUIRKS) ? bodyHeight : bodyHeight - PANEL_BODY_PADDING; Dom.setStyle(this.body, 'height', bodyContentHeight + 'px'); if(YAHOO.env.ua.ie == 6){ var title_el = document.getElementById('file-picker-$suffix'); title_el.style.width = args.width; } if (IE_SYNC) { this.sizeUnderlay(); this.syncIframe(); } layout.set('height', bodyContentHeight); layout.set('width', (args.width - PANEL_BODY_PADDING)); layout.resize(); }, filepicker, true); _client.viewbar = new YAHOO.widget.ButtonGroup({ id: 'btngroup-$suffix', name: 'buttons', disabled: true, container: 'repo-viewbar-$suffix' }); } // public method this.show = function() { filepicker.show(); } this.hide = function() { filepicker.hide(); } this.create_picker = function() { // display UI filepicker.render(); _client.viewbar.addButtons([btn_list, btn_thumb]); // init repository list repo_list = new YAHOO.util.Element('repo-list-$suffix'); repo_list.on('contentReady', function(e) { var searchbar = new YAHOO.util.Element('search-div-$suffix'); searchbar.get('element').innerHTML = ''; var searchbtn = new YAHOO.util.Element('search-btn-$suffix'); var input_ctl = new YAHOO.util.Element('search-input-$suffix'); searchbtn.fnSearch = function(e) { var el = new YAHOO.util.Element('search-input-$suffix') var keyword = el.get('value'); var params = []; params['s'] = keyword; params['env']=_client.env; params['action']='gsearch'; params['sesskey']='$sesskey'; params['ctx_id']=$context->id; _client.loading('load'); var trans = YAHOO.util.Connect.asyncRequest('POST', '$CFG->httpswwwroot/repository/ws.php?action=gsearch', this.callback, _client.postdata(params)); } searchbtn.callback={ success: function(o) { var panel = new YAHOO.util.Element('panel-$suffix'); if(!o.responseText) { panel.get('element').innerHTML = '$strnoresult'; return; } try { var json = YAHOO.lang.JSON.parse(o.responseText); } catch(e) { alert('$strinvalidjson - |search_cb| -'+_client.stripHTML(o.responseText)); return; } _client.ds={}; if(!json.list || json.list.length<1){ panel.get('element').innerHTML = '$strnoresult'; return; } _client.ds.list = json.list; if(_client.ds.list) { if(_client.viewmode) { _client.viewthumb(); } else { _client.viewlist(); } var input_ctl = new YAHOO.util.Element('search-input-$suffix'); input_ctl.get('element').value=''; } } } searchbtn.on('contentReady', function() { searchbtn.on('click', this.fnSearch, this.input_ctl); }); input_ctl.on('contentReady', function() { var scope = document.getElementById('search-input-$suffix'); var k1 = new YAHOO.util.KeyListener(scope, {keys:13}, {fn:function(){this.fnSearch()},scope:searchbtn, correctScope: true}); k1.enable(); }); for(var i=0; i<_client.repos.length; i++) { var repo = _client.repos[i]; var li = document.createElement('li'); li.id = 'repo-$suffix-'+repo.id; var icon = document.createElement('img'); icon.src = repo.icon; icon.width = '16'; icon.height = '16'; var link = document.createElement('a'); link.href = '###'; link.id = 'repo-call-$suffix-'+repo.id; link.appendChild(icon); link.className = 'fp-repo-name'; link.onclick = function() { var re = /repo-call-$suffix-(\d+)/i; var id = this.id.match(re); repository_client_$suffix.req(id[1], '', 0); } link.innerHTML += ' '+repo.name; li.appendChild(link); this.appendChild(li); repo = null; } }); } } // public static varible _client.repos = []; _client.repositoryid = 0; // _client.ds save all data received from server side _client.ds = null; _client.viewmode = 0; _client.viewbar =null; _client.stripHTML = function(str){ var re= /<\S[^><]*>/g var ret = str.replace(re, "") return ret; } // public static mehtod _client.postdata = function(obj) { var str = ''; for(k in obj) { if(obj[k] instanceof Array) { for(i in obj[k]) { str += (encodeURIComponent(k) +'[]='+encodeURIComponent(obj[k][i])); str += '&'; } } else { str += encodeURIComponent(k) +'='+encodeURIComponent(obj[k]); str += '&'; } } return str; } _client.loading = function(type, name) { var panel = new YAHOO.util.Element('panel-$suffix'); panel.get('element').innerHTML = ''; var content = document.createElement('div'); content.style.textAlign='center'; var para = document.createElement('P'); var img = document.createElement('IMG'); if(type=='load') { img.src = '$CFG->pixpath/i/loading.gif'; para.innerHTML = '$strloading'; }else{ img.src = '$CFG->pixpath/i/progressbar.gif'; para.innerHTML = '$strcopying '+name+''; } content.appendChild(para); content.appendChild(img); //content.innerHTML = ''; panel.get('element').appendChild(content); } _client.rename = function(oldname, url, icon, repo_id) { var thumbnail = document.getElementById('fp-grid-panel-$suffix'); if(thumbnail){ thumbnail.style.display = 'none'; } var header = document.getElementById('repo-tb-$suffix'); header.style.display = 'none'; var footer = document.getElementById('fp-footer-$suffix'); footer.style.display = 'none'; var panel = new YAHOO.util.Element('panel-$suffix'); var html = '
    '; _client.repositoryid=repo_id; html += '

    '; html += '

    '; html += '

    '; /** html += '

    '; html += '

    '; */ html += '

    '; html += '$strback '; html += ''; html += '

    '; html += '
    '; panel.get('element').innerHTML += html; var tree = document.getElementById('treediv-$suffix'); if(tree){ tree.style.display = 'none'; } } _client.popup = function(url) { active_instance = repository_client_$suffix; _client.win = window.open(url,'repo_auth', 'location=0,status=0,scrollbars=0,width=500,height=300'); return false; } _client.print_login = function() { var panel = new YAHOO.util.Element('panel-$suffix'); var data = _client.ds.login; var str = ''; var has_pop = false; for(var k in data) { if(data[k].type=='popup') { str += '

    $strpopup

    '; str += '

    '; str += '

    '; has_pop = true; }else if(data[k].type=='textarea') { str += '

    '; }else{ str += '

    '; var lable_id = ''; var field_id = ''; var field_value = ''; if(data[k].id) { lable_id = ' for="'+data[k].id+'"'; field_id = ' id="'+data[k].id+'"'; } if (data[k].label) { str += ''+data[k].label+'
    '; } if(data[k].value) { field_value = ' value="'+data[k].value+'"'; } str += ''; str += '

    '; } } if(!has_pop) { str += '

    '; } panel.get('element').innerHTML = str; } _client.viewfiles = function() { if(_client.viewmode) { _client.viewthumb(); } else { _client.viewlist(); } } _client.print_header = function() { var panel = new YAHOO.util.Element('panel-$suffix'); var str = ''; str += '
    '; panel.set('innerHTML', str); _client.makepath(); } _client.print_footer = function() { var panel = document.getElementById('panel-$suffix'); var footer = document.createElement('DIV'); footer.id = 'fp-footer-$suffix'; panel.appendChild(footer); footer.innerHTML += _client.uploadcontrol(); footer.innerHTML += _client.makepage(); var oDiv = document.getElementById('repo-tb-$suffix'); if(!_client.ds.nosearch) { var search = document.createElement('A'); search.href = '###'; search.innerHTML = ' $strsearch'; oDiv.appendChild(search); search.onclick = function() { repository_client_$suffix.search_form(repository_client_$suffix.repositoryid); } } // weather we use cache for this instance, this button will reload listing anyway var ccache = document.createElement('A'); ccache.href = '###'; ccache.innerHTML = ' $strrefresh'; oDiv.appendChild(ccache); ccache.onclick = function() { var params = []; params['env']=_client.env; params['sesskey']='$sesskey'; params['ctx_id']=$context->id; params['repo_id']=repository_client_$suffix.repositoryid; _client.loading('load'); var trans = YAHOO.util.Connect.asyncRequest('POST', '$CFG->httpswwwroot/repository/ws.php?action=ccache', repository_client_$suffix.req_cb, _client.postdata(params)); } if(_client.ds.manage) { var mgr = document.createElement('A'); mgr.innerHTML = ' $strmgr'; mgr.href = _client.ds.manage; mgr.target = "_blank"; oDiv.appendChild(mgr); } if(!_client.ds.nologin) { var logout = document.createElement('A'); logout.href = '###'; logout.innerHTML = ' $strlogout'; oDiv.appendChild(logout); logout.onclick = function() { repository_client_$suffix.req(repository_client_$suffix.repositoryid, 1, 1); } } } _client.viewthumb = function(ds) { _client.viewmode = 1; var container = document.getElementById('panel-$suffix'); var panel = document.createElement('DIV'); panel.id = 'fp-grid-panel-$suffix'; _client.viewbar.check(1); var list = null; var args = arguments.length; if(args == 1) { list = ds; } else { // from button list = _client.ds.list; } _client.print_header(); var count = 0; for(k in list) { var el = document.createElement('div'); var title = document.createElement('div'); el.className='fp-grid'; if(list[k].thumbnail_width){ el.style.width = list[k].thumbnail_width+'px'; title.style.width = (list[k].thumbnail_width-20)+'px'; } else { el.style.width = title.style.width = '80px'; } var frame = document.createElement('DIV'); frame.style.textAlign='center'; var img = document.createElement('img'); img.src = list[k].thumbnail; var link = document.createElement('A'); link.href='###'; link.id = 'img-id-'+String(count); link.appendChild(img); frame.appendChild(link); if(list[k].children) { title.innerHTML = ''+list[k].title+''; } else { if(list[k].url) title.innerHTML = '

    $strpreview

    '; title.innerHTML += ''+list[k].title+""; } title.className = 'label'; el.appendChild(frame); el.appendChild(title); panel.appendChild(el); if(list[k].children) { var folder = new YAHOO.util.Element(link.id); folder.ds = list[k].children; folder.path = list[k].path; folder.on('contentReady', function() { this.on('click', function() { if(_client.ds.dynload) { var params = []; params['p'] = this.path; params['env'] = _client.env; params['repo_id'] = _client.repositoryid; params['ctx_id'] = $context->id; params['sesskey']= '$sesskey'; _client.loading('load'); var trans = YAHOO.util.Connect.asyncRequest('POST', '$CFG->httpswwwroot/repository/ws.php?action=list', _client.req_cb, _client.postdata(params)); }else{ _client.viewthumb(this.ds); } }); }); } else { var file = new YAHOO.util.Element(link.id); file.title = list[k].title; file.value = list[k].source; file.icon = list[k].thumbnail; if(list[k].repo_id) { file.repo_id = list[k].repo_id; }else{ file.repo_id = _client.repositoryid; } file.on('contentReady', function() { this.on('click', function() { repository_client_$suffix.rename(this.title, this.value, this.icon, this.repo_id); }); }); } count++; } container.appendChild(panel); _client.print_footer(); } _client.buildtree = function(node, level) { if(node.children) { node.title = ''+node.title+''; } var info = { label:node.title, title:"$strdate"+node.date+' $strsize'+node.size, filename:node.title, value:node.source, icon:node.thumbnail, path:node.path }; var tmpNode = new YAHOO.widget.TextNode(info, level, false); var tooltip = new YAHOO.widget.Tooltip(tmpNode.labelElId, { context:tmpNode.labelElId, text:info.title}); if(node.repo_id) { tmpNode.repo_id=node.repo_id; }else{ tmpNode.repo_id=_client.repositoryid; } if(node.children) { if(node.expanded) { tmpNode.expand(); } tmpNode.isLeaf = false; if (node.path) { tmpNode.path = node.path; } else { tmpNode.path = ''; } for(var c in node.children) { _client.buildtree(node.children[c], tmpNode); } } else { tmpNode.isLeaf = true; } } _client.dynload = function (node, fnLoadComplete) { var callback = { success: function(o) { try { var json = YAHOO.lang.JSON.parse(o.responseText); } catch(e) { alert('$strinvalidjson - |dynload| -'+_client.stripHTML(o.responseText)); return; } for(k in json.list) { _client.buildtree(json.list[k], node); } o.argument.fnLoadComplete(); }, failure:function(oResponse) { alert('$strerror - |dynload| -'); oResponse.argument.fnLoadComplete(); }, argument:{"node":node, "fnLoadComplete": fnLoadComplete} } var params = []; params['p']=node.path; params['env']=_client.env; params['sesskey']='$sesskey'; params['ctx_id']=$context->id; params['repo_id']=_client.repositoryid; var trans = YAHOO.util.Connect.asyncRequest('POST', '$CFG->httpswwwroot/repository/ws.php?action=list', callback, _client.postdata(params)); } _client.viewiframe = function() { var panel = new YAHOO.util.Element('panel-$suffix'); panel.get('element').innerHTML = "