/**** WEB CLipBoard *****/ var NL='\n'; Clip = { share: function share(id) { var content = '

TODO

'; var idlabel='??'; content = ''; idlabel=(editorWin[id]._options && editorWin[id]._options.file)||'*'; var buttons = [ '', '', '', ].join(NL); Clip.createSnippets(id,function (snippets) { content += ('
'+snippets.join(NL)+'
'); content = '
'+buttons+content+'
'; var panel = openWin(1,content,{title:'WEB Clipboard '+idlabel, width:400, height:300}); }); }, // helpers copyShare: function copyShare(id,tag) { var data = UI('SourceText'+id).getValue(); Clip.clipboardStore(jamConfig.user||'user',tag||'no tag',id,data,function (stat) { console.log(stat) if(stat=='OK') Clip.reloadShare(id) }) }, createSnippets: function createSnippets(id,cb) { Clip.clipboardGet(id,function (data,err) { var snippets=[]; if (err) { snippets=[err]; } else if (data.length) { // test data.forEach(function (snip) { var user=snip.user; var code=snip.data; var ids=(snip.tag?'#'+snip.tag+' ':'')+snip.user+'@'+snip.date; var slabel=ids; snippets.push( ''+ ''+NL+''+NL ); }) } cb(snippets); }) }, pasteShare: function pasteShare(id) { var text = document.getElementById('ClipText-'+id).value; UI('SourceText'+id).setValue(text); }, reloadShare: function reloadShare(id) { Clip.createSnippets(id, function (snippets) { document.getElementById('Clipboard-'+id).innerHTML=snippets.join(NL); }) document.getElementById('ClipText-'+id).value=UI('SourceText'+id).getValue(); }, updateShareText: function updateShareText(from,to) { var text = document.getElementById(from).value; document.getElementById(to).value=text; }, /******* WEBCLIP ***********/ clipboardStore: function (from,tag,id,data,cb) { if (!cb) cb=console.log.bind(console); var url=jamConfig.webclipUrl; if (url.indexOf('http')!=0) url = 'http://'+url; try { var request = new XMLHttpRequest(); request.open("POST", url, true); request.onreadystatechange = function () { if(request.readyState === 4) { if(request.status === 200 || request.status == 0) { var allText = request.responseText; if (cb) cb(allText) } else if (cb) cb('copy to '+jamConfig.webclipUrl+' failed (status)'); } } request.onerror = function (err) { if (cb) cb('copy to '+jamConfig.webclipUrl+' failed (error)') } request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); console.log(JSON.stringify({user:from,group:jamConfig.group+'-'+id,data:data})) request.send(JSON.stringify({user:from,tag:tag,group:jamConfig.group+'-'+id,data:data})); } catch (e) { if (cb) cb(e) } }, clipboardGet: function (id,cb) { var url=jamConfig.webclipUrl; if (url.indexOf('http')!=0) url = 'http://'+url; try { var request = new XMLHttpRequest(); request.open("GET", url+'/?time='+jamConfig.webclipTime+'&group='+jamConfig.group+'-'+id, true); request.onreadystatechange = function () { if(request.readyState === 4) { if(request.status === 200 || request.status == 0) { var allText = request.responseText; var clips = JSON.parse(allText); cb(clips) } else cb(null,'paste from '+jamConfig.webclipUrl+' failed (status)'); } } request.onerror = function (err) { cb(null,'paste from '+jamConfig.webclipUrl+' failed (error)') } request.send(null); } catch (e) { cb(null,e) } }, }