diff --git a/lib/SP/Services/Install/Installer.php b/lib/SP/Services/Install/Installer.php
index 4c47b2c0..d0463399 100644
--- a/lib/SP/Services/Install/Installer.php
+++ b/lib/SP/Services/Install/Installer.php
@@ -61,8 +61,8 @@ final class Installer extends Service
* sysPass' version and build number
*/
const VERSION = [3, 1, 0];
- const VERSION_TEXT = '3.1-RC3';
- const BUILD = 19052502;
+ const VERSION_TEXT = '3.1-RC4';
+ const BUILD = 19052503;
/**
* @var DatabaseSetupInterface
diff --git a/public/js/app-actions.js b/public/js/app-actions.js
index 68dd2bf0..54d6cad0 100644
--- a/public/js/app-actions.js
+++ b/public/js/app-actions.js
@@ -942,11 +942,11 @@ sysPass.Actions = function (log) {
log.info("file:download");
const fileType = $obj.data("item-type");
- const url = sysPassApp.util.getUrl(ajaxUrl.entrypoint,
+ const url = sysPassApp.requests.getUrl(sysPassApp.util.getUrl(ajaxUrl.entrypoint,
{
r: [$obj.data("action-route"), $obj.data("item-id")],
sk: sysPassApp.sk.get()
- });
+ }));
if (fileType === 'application/pdf') {
window.open(url, '_blank');
diff --git a/public/js/app-actions.min.js b/public/js/app-actions.min.js
index 922fe876..2e874404 100644
--- a/public/js/app-actions.min.js
+++ b/public/js/app-actions.min.js
@@ -34,11 +34,11 @@ sysPassApp.sk.set(a.csrf)})},nav:function(a,b){c.info("grid:nav");var d=$("#"+a.
sysPassApp.msg.error(sysPassApp.config.LANG[44])}},positive:{title:sysPassApp.config.LANG[43],onClick:function(a){a.preventDefault();"function"===typeof b&&b(c)}}})},getSelection:function(a){a=a.data("selection");var b=[];return a&&($(a).find(".is-selected").each(function(){b.push($(this).data("item-id"))}),0===b.length)?!1:b}},r={runner:null,run:function(a){c.info("task:run");c.info("taskId: "+a);var b=$("#taskStatus");b.css("display","block");b.empty().html(sysPassApp.config.LANG[62]);var d=sysPassApp.requests.getRequestOpts();
d.method="get";d.url=sysPassApp.util.getUrl(e.entrypoint,{r:["task/trackStatus",a]});return this.runner=sysPassApp.requests.getActionEvent(d,function(a){a=a.task+" - "+a.message+" - "+a.time+" - "+a.progress+"%
"+sysPassApp.config.LANG[62];c.info(a);b.empty().html(a)})},end:function(){c.info("task:end");null!==this.runner&&(c.info("Task ended"),this.runner.close(),$("#taskStatus").css("display","none"))}};return{getContent:f,showFloatingBox:h,closeFloatingBox:p,appMgmt:v,account:m,accountManager:{restore:function(a){c.info("accountManager:restore");
g.state.update(a);var b=a.data("item-id"),d=sysPassApp.requests.getRequestOpts();d.method="get";d.url=sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get(),isAjax:1});sysPassApp.requests.getActionCall(d,function(d){sysPassApp.msg.out(d);0===d.status&&((d=a.data("action-next"))?f({r:[d,b]}):f({r:g.state.tab.route,tabIndex:g.state.tab.index}))})}},file:{view:function(a){c.info("file:view");var b=sysPassApp.requests.getRequestOpts();b.method="get";b.url=
-sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()});sysPassApp.requests.getActionCall(b,function(b){if(0!==b.status)return sysPassApp.msg.out(b);q(a,b.data.html)})},download:function(a){c.info("file:download");var b=a.data("item-type");a=sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()});"application/pdf"===b?window.open(a,"_blank"):$.fileDownload(a,{httpMethod:"GET",successCallback:function(a){sysPassApp.msg.ok(sysPassApp.config.LANG[72])}})},
-delete:function(a){c.info("file:delete");var b='
'+sysPassApp.config.LANG[15]+"
";mdlDialog().show({text:b,negative:{title:sysPassApp.config.LANG[44],onClick:function(a){a.preventDefault();sysPassApp.msg.error(sysPassApp.config.LANG[44])}},positive:{title:sysPassApp.config.LANG[43],onClick:function(b){b=sysPassApp.requests.getRequestOpts();b.method="get";b.url=sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()});
-sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a);0===a.status&&m.listFiles($("#list-account-files"))})}}})}},checks:{wiki:function(a){c.info("checks:wiki");a=$(a.data("src"));a.find("[name='sk']").val(sysPassApp.sk.get());var b=sysPassApp.requests.getRequestOpts();b.url=e.entrypoint;b.data=a.serialize();sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(a){c.info("config:save");g.save(a)},
-masterpass:function(a){c.info("config:masterpass");var b=''+sysPassApp.config.LANG[59]+"
";mdlDialog().show({text:b,negative:{title:sysPassApp.config.LANG[44],onClick:function(b){b.preventDefault();sysPassApp.msg.error(sysPassApp.config.LANG[44]);a.find(":input[type=password]").val("")}},positive:{title:sysPassApp.config.LANG[43],onClick:function(b){b=a.find("input[name='taskId']").val();var d=sysPassApp.requests.getRequestOpts();b&&(d.useFullLoading=!0,
-r.run(b));d.url=sysPassApp.util.getUrl(e.entrypoint,{r:a.data("action-route")});d.data=a.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(d,function(b){sysPassApp.msg.out(b);a.find(":input[type=password]").val("");r.end()})}}})},backup:function(a){c.info("config:backup");g.state.update(a);var b=sysPassApp.requests.getRequestOpts();b.url=e.entrypoint+"?r="+a.data("action-route");b.useFullLoading=!0;b.data=a.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(b,
+sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()});sysPassApp.requests.getActionCall(b,function(b){if(0!==b.status)return sysPassApp.msg.out(b);q(a,b.data.html)})},download:function(a){c.info("file:download");var b=a.data("item-type");a=sysPassApp.requests.getUrl(sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()}));"application/pdf"===b?window.open(a,"_blank"):$.fileDownload(a,{httpMethod:"GET",
+successCallback:function(a){sysPassApp.msg.ok(sysPassApp.config.LANG[72])}})},delete:function(a){c.info("file:delete");var b=''+sysPassApp.config.LANG[15]+"
";mdlDialog().show({text:b,negative:{title:sysPassApp.config.LANG[44],onClick:function(a){a.preventDefault();sysPassApp.msg.error(sysPassApp.config.LANG[44])}},positive:{title:sysPassApp.config.LANG[43],onClick:function(b){b=sysPassApp.requests.getRequestOpts();b.method="get";b.url=sysPassApp.util.getUrl(e.entrypoint,
+{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get()});sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a);0===a.status&&m.listFiles($("#list-account-files"))})}}})}},checks:{wiki:function(a){c.info("checks:wiki");a=$(a.data("src"));a.find("[name='sk']").val(sysPassApp.sk.get());var b=sysPassApp.requests.getRequestOpts();b.url=e.entrypoint;b.data=a.serialize();sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},
+config:{save:function(a){c.info("config:save");g.save(a)},masterpass:function(a){c.info("config:masterpass");var b=''+sysPassApp.config.LANG[59]+"
";mdlDialog().show({text:b,negative:{title:sysPassApp.config.LANG[44],onClick:function(b){b.preventDefault();sysPassApp.msg.error(sysPassApp.config.LANG[44]);a.find(":input[type=password]").val("")}},positive:{title:sysPassApp.config.LANG[43],onClick:function(b){b=a.find("input[name='taskId']").val();var d=sysPassApp.requests.getRequestOpts();
+b&&(d.useFullLoading=!0,r.run(b));d.url=sysPassApp.util.getUrl(e.entrypoint,{r:a.data("action-route")});d.data=a.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(d,function(b){sysPassApp.msg.out(b);a.find(":input[type=password]").val("");r.end()})}}})},backup:function(a){c.info("config:backup");g.state.update(a);var b=sysPassApp.requests.getRequestOpts();b.url=e.entrypoint+"?r="+a.data("action-route");b.useFullLoading=!0;b.data=a.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(b,
function(a){sysPassApp.msg.out(a);0===a.status&&f({r:g.state.tab.route,tabIndex:g.state.tab.index})})},export:function(a){c.info("config:export");g.save(a)},import:function(a){c.info("config:import");var b=sysPassApp.requests.getRequestOpts();b.url=e.entrypoint+"?r="+a.data("action-route");b.data=a.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a)})},refreshMpass:function(a){c.info("config:import");var b=sysPassApp.requests.getRequestOpts();
b.method="get";b.url=sysPassApp.util.getUrl(e.entrypoint,{r:a.data("action-route"),sk:sysPassApp.sk.get(),isAjax:1});sysPassApp.requests.getActionCall(b,function(a){sysPassApp.msg.out(a)})},mailCheck:function(a){c.info("config:mailCheck");var b=$(a.data("src")),d=sysPassApp.requests.getRequestOpts();d.url=e.entrypoint+"?r="+a.data("action-route");d.data=b.serialize()+"&sk="+sysPassApp.sk.get();sysPassApp.requests.getActionCall(d,function(a){sysPassApp.msg.out(a)})}},main:w,user:{showSettings:function(a){c.info("user:showSettings");
f({r:a.data("action-route")},"userSettings")},saveSettings:function(a){c.info("user:saveSettings");g.save(a)},password:function(a){c.info("user:password");var b=sysPassApp.requests.getRequestOpts();b.type="html";b.method="get";b.url=sysPassApp.util.getUrl(e.entrypoint,{r:[a.data("action-route"),a.data("item-id")],sk:sysPassApp.sk.get(),isAjax:1});sysPassApp.requests.getActionCall(b,function(a){0===a.length?w.logout():h(a)})},passreset:function(a){c.info("user:passreset");var b=sysPassApp.requests.getRequestOpts();
diff --git a/public/js/app-requests.js b/public/js/app-requests.js
index 317c3fa2..4aad5a94 100644
--- a/public/js/app-requests.js
+++ b/public/js/app-requests.js
@@ -242,6 +242,7 @@ sysPass.Requests = function (sysPassApp) {
getRequestOpts: getRequestOpts,
getActionCall: getActionCall,
getActionEvent: getActionEvent,
+ getUrl: getUrl,
history: history
};
};
diff --git a/public/js/app-requests.min.js b/public/js/app-requests.min.js
index 4fd84d7e..7b82e3e8 100644
--- a/public/js/app-requests.min.js
+++ b/public/js/app-requests.min.js
@@ -1,5 +1,5 @@
-sysPass.Requests=function(c){var e=c.log,b=[],h={type:"json",url:"",method:"post",callback:"",async:!0,data:"",cache:!1,processData:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",timeout:0,addHistory:!1,hash:"",useLoading:!0,useFullLoading:!1};Object.seal(h);var k={get:function(){return b},add:function(a){var g=""===a.hash?c.util.hash.md5(JSON.stringify(a)):a.hash;if(0"+g+""+b.responseText+"
",e.error(f),"html"===a.type&&$("#content").html(c.msg.html.error(f)),
-c.msg.error(f)):m()},complete:function(b){!0===a.useLoading&&c.theme.loading.hide();void 0!==c.theme&&("html"===a.type||void 0!==b.responseJSON&&void 0!==b.responseJSON.data&&void 0!==b.responseJSON.data.html)&&c.theme.ajax.complete()}})},getActionEvent:function(a,b,c){var d=new EventSource(l(a.url));d.addEventListener("message",function(a){a=JSON.parse(a.data);e.debug(a);1===a.end?(e.info("getActionEvent:Ending"),d.close(),"function"===typeof c&&c(a)):"function"===typeof b&&b(a)});d.addEventListener("error",
-function(a){e.error("getActionEvent:Error occured");d.close()});return d},history:k}};
+sysPass.Requests=function(c){var e=c.log,b=[],k={type:"json",url:"",method:"post",callback:"",async:!0,data:"",cache:!1,processData:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",timeout:0,addHistory:!1,hash:"",useLoading:!0,useFullLoading:!1};Object.seal(k);var l={get:function(){return b},add:function(a){var g=""===a.hash?c.util.hash.md5(JSON.stringify(a)):a.hash;if(0"+g+""+b.responseText+"
",e.error(f),"html"===a.type&&$("#content").html(c.msg.html.error(f)),
+c.msg.error(f)):m()},complete:function(b){!0===a.useLoading&&c.theme.loading.hide();void 0!==c.theme&&("html"===a.type||void 0!==b.responseJSON&&void 0!==b.responseJSON.data&&void 0!==b.responseJSON.data.html)&&c.theme.ajax.complete()}})},getActionEvent:function(a,b,c){var d=new EventSource(h(a.url));d.addEventListener("message",function(a){a=JSON.parse(a.data);e.debug(a);1===a.end?(e.info("getActionEvent:Ending"),d.close(),"function"===typeof c&&c(a)):"function"===typeof b&&b(a)});d.addEventListener("error",
+function(a){e.error("getActionEvent:Error occured");d.close()});return d},getUrl:h,history:l}};