Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Add new action on BrowserOpener to create a bookmark directly. Todo a…
Browse files Browse the repository at this point in the history
…dd nice icon for .url and .website files
  • Loading branch information
cdujeu committed Nov 13, 2014
1 parent 882f208 commit 6d0ffaa
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 2 deletions.
17 changes: 15 additions & 2 deletions core/src/plugins/editor.browser/class.BrowserOpener.js
Expand Up @@ -22,6 +22,9 @@ Class.create("BrowserOpener", AbstractEditor, {
initialize: function($super, oFormObject, options){
this.editorOptions = options;
this.element = oFormObject;
var configs = ajaxplorer.getPluginConfigs("editor.browser");
this.alwaysOpenLinksInBrowser = configs.get('OPEN_LINK_IN_TAB') == "browser";
this.alwaysOpenDocsInBrowser = configs.get('OPEN_DOCS_IN_TAB') == "browser";
},

open : function($super, node){
Expand All @@ -46,6 +49,11 @@ Class.create("BrowserOpener", AbstractEditor, {
}else{
hideLightBox();
}
}else if(this.alwaysOpenDocsInBrowser){
window.open(open_file_url);
window.setTimeout(function(){
this.editorOptions.context.closeTab("editor.browser:/" + node.getPath());
}.bind(this), 500);
}else{
this.element.fire("editor:updateTitle", node.getLabel());
this.contentMainContainer = new Element('iframe', {
Expand All @@ -62,12 +70,17 @@ Class.create("BrowserOpener", AbstractEditor, {
openURL : function(fileName){
var connexion = new Connexion();
connexion.addParameter('get_action', 'get_content');
connexion.addParameter('file', fileName);
connexion.addParameter('file', fileName);
connexion.onComplete = function(transp){
var url = transp.responseText;
if(this.editorOptions.context.__className == 'Modal'){
window.open(url, "Pydio Bookmark", "location=yes,menubar=yes,resizable=yes,scrollbars=yea,toolbar=yes,status=yes");
window.open(url, "Pydio Bookmark", "location=yes,menubar=yes,resizable=yes,scrollbars=yes,toolbar=yes,status=yes");
hideLightBox();
}else if(this.alwaysOpenLinksInBrowser){
window.open(url, "Pydio Bookmark", "location=yes,menubar=yes,resizable=yes,scrollbars=yes,toolbar=yes,status=yes");
window.setTimeout(function(){
this.editorOptions.context.closeTab("editor.browser:/" + fileName);
}.bind(this), 500);
}else{
this.element.fire("editor:updateTitle", url);
this.contentMainContainer = new Element('iframe', {
Expand Down
74 changes: 74 additions & 0 deletions core/src/plugins/editor.browser/manifest.xml
Expand Up @@ -3,6 +3,14 @@
title="openbrowser.2" icon="openbrowser_images/actions/ICON_SIZE/project-open.png" iconClass="icon-laptop"
className="BrowserOpener" mimes="*" formId="open_box" label="CONF_MESSAGE[External Window]" description="CONF_MESSAGE[Open file in a new browser window, thus using native browser capabilities.]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:../core.ajaxplorer/ajxp_registry.xsd">
<server_settings>
<global_param name="OPEN_DOCS_IN_TAB" type="select" label="CONF_MESSAGE[Open documents in...]"
description="CONF_MESSAGE[Choose where the documents are opened]"
choices="application|Application Tab,browser|Browser Tab" default="application" expose="true"/>
<global_param name="OPEN_LINK_IN_TAB" type="select" label="CONF_MESSAGE[Open link in...]"
description="CONF_MESSAGE[Choose where the http links are opened]"
choices="application|Application Tab,browser|Browser Tab" default="application" expose="true"/>
</server_settings>
<client_settings>
<resources>
<js file="plugins/editor.browser/class.BrowserOpener.js" className="BrowserOpener"/>
Expand All @@ -28,6 +36,72 @@
<serverCallback methodName="switchAction"/>
</processing>
</action>
<action name="mklink">
<gui text="openbrowser.4" title="openbrowser.4" src="filenew.png" accessKey="file_access_key" iconClass="icon-file-alt" hasAccessKey="false">
<context selection="false" dir="true" recycle="hidden" actionBar="false"
contextMenu="false" infoPanel="false" actionBarGroup="create" inZip="false"/>
</gui>
<rightsContext noUser="true" userLogged="only" read="true" write="true" adminOnly=""/>
<processing>
<clientCallback prepareModal="true"><![CDATA[
modal.showDialogForm('Create', 'mklink_form', null, function(){
var parseLinkUrl = function (url) {
var parser = document.createElement('a'),
searchObject = {},
queries, split, i;
parser.href = url;
queries = parser.search.replace(/^\?/, '').split('&');
for( i = 0; i < queries.length; i++ ) {
split = queries[i].split('=');
searchObject[split[0]] = split[1];
}
return {
protocol: parser.protocol,
host: parser.host,
hostname: parser.hostname,
port: parser.port,
pathname: parser.pathname,
search: parser.search,
searchObject: searchObject,
hash: parser.hash
};
}
var oForm = modal.getForm();
var data = oForm.down("#content").getValue();
var base = slugString(parseLinkUrl(data)['host']);
var i = 1;
var basename = base;
while( ajaxplorer.getContextHolder().fileNameExists(basename + '.url') ) {
basename = base + '-' + i;
i = i+1;
}
oForm.down("#filename").setValue(basename + '.url');
ajaxplorer.actionBar.submitForm(oForm);
hideLightBox(true);
return false;
});
]]></clientCallback>
<clientForm id="mklink_form"><![CDATA[
<div id="mklink_form" action="mkfile">
<div class="dialogLegend" ajxp_message_id="openbrowser.6">AJXP_MESSAGE[openbrowser.6]</div>
<input type="hidden" id="filename" name="filename" value="bookmark.url">
<input type="text" id="content" style="width:390px;" name="content" placeholder="http[s]://" class="dialogFocus">
</div>
]]></clientForm>
<clientListener name="init"><![CDATA[
document.observe("ajaxplorer:afterApply-mkdir", function(){
if(modal.getForm().down("#alt_mklink")) return;
var link = '<div class="dialogLegend" style="padding-top:20px;" id="alt_mklink"><span class="icon-chevron-right"></span> '+MessageHash["openbrowser.5"]+'</div>';
modal.getForm().down("div.dialogButtons").insert({before:link});
modal.getForm().down("#alt_mklink").down("a").addClassName("create_file_alt_link").observe("click", function(){
ajaxplorer.actionBar.fireAction("mklink");
});
});
]]></clientListener>
</processing>
</action>
</actions>
</registry_contributions>
</editor>
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/de.php
Expand Up @@ -22,4 +22,7 @@
"1" => "Externes Fenster",
"2" => "Externes Browser Fenster",
"3" => "Bitte warten, die Datei wird in einen externen Fenster geöffnet und dieses Fenster schließt sich automatisch.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/en.php
Expand Up @@ -22,4 +22,7 @@
"1" => "External window",
"2" => "External browser window",
"3" => "Opening file in external window, please wait, this window should close automatically.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/es.php
Expand Up @@ -22,4 +22,7 @@
"1" => "Nueva ventana",
"2" => "Navegador en nueva ventana",
"3" => "Abriendo el fichero en una ventana externa, espere por favor, esta ventana se cerrará automáticamente.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/et.php
Expand Up @@ -26,4 +26,7 @@
"1" => "Väline aken",
"2" => "Väline veebilehitseja aken",
"3" => "Avan faili välises aknas, palun oota, see teade sulgub automaatselt.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/fr.php
Expand Up @@ -22,4 +22,7 @@
"1" => "Fenêtre externe",
"2" => "Fenêtre externe du navigateur",
"3" => "Ouvrir le fichier dans une nouvelle fenêtre du navigateur, veuillez patienter, cette fenêtre se fermera automatiquement",
"4" => "Nouveau Favori (URL)",
"5" => "Vous pouvez aussi <a>créer un favori vers une URL</a>",
"6" => "Entrer une adresse internet commencant par http/https",
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/pt.php
Expand Up @@ -22,4 +22,7 @@
"1" => "Janela Externa",
"2" => "Janela Externa no Navegador",
"3" => "A Abrir ficheiro numa janela Externa, por favor aguarde, esta janela deverá ser fechada automaticamente.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);
3 changes: 3 additions & 0 deletions core/src/plugins/editor.browser/resources/i18n/ru.php
Expand Up @@ -22,4 +22,7 @@
"1" => "Программы просмотра",
"2" => "Открыть с помощью программы просмотра",
"3" => "Открытие файла в окне просмотра, подождите, это окно автоматически закроется.",
"4" => "New URL Bookmark",
"5" => "Alternatively, you can <a>create a new bookmark to an URL</a>",
"6" => "Enter an URL starting with http/https"
);

0 comments on commit 6d0ffaa

Please sign in to comment.