Replace OC.Router.generate() with OC.generateUrl()
This commit is contained in:
parent
88c9ae129e
commit
1291303c5a
|
@ -137,7 +137,9 @@ window.FileList={
|
|||
|
||||
var download_url = null;
|
||||
if (!param.download_url) {
|
||||
download_url = OC.Router.generate('download', { file: $('#dir').val()+'/'+name });
|
||||
download_url = OC.generateUrl(
|
||||
'/download{file}',
|
||||
{ file: $('#dir').val()+'/'+name });
|
||||
} else {
|
||||
download_url = param.download_url;
|
||||
}
|
||||
|
|
|
@ -780,9 +780,9 @@ Files.lazyLoadPreview = function(path, mime, ready, width, height, etag) {
|
|||
|
||||
if ( $('#isPublic').length ) {
|
||||
urlSpec.t = $('#dirToken').val();
|
||||
previewURL = OC.Router.generate('core_ajax_public_preview', urlSpec);
|
||||
previewURL = OC.generateUrl('/publicpreview.png?') + $.param(urlSpec);
|
||||
} else {
|
||||
previewURL = OC.Router.generate('core_ajax_preview', urlSpec);
|
||||
previewURL = OC.generateUrl('/core/preview.png?') + $.param(urlSpec);
|
||||
}
|
||||
previewURL = previewURL.replace('(', '%28');
|
||||
previewURL = previewURL.replace(')', '%29');
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
/** @var $this OC_Router */
|
||||
$this->create('core_ajax_public_preview', '/publicpreview.png')->action(
|
||||
function() {
|
||||
require_once __DIR__ . '/../ajax/publicpreview.php';
|
||||
|
|
|
@ -75,31 +75,32 @@
|
|||
|
||||
var $div = this;
|
||||
|
||||
OC.Router.registerLoadedCallback(function() {
|
||||
var url = OC.Router.generate('core_avatar_get', {user: user, size: size})+'?requesttoken='+oc_requesttoken;
|
||||
$.get(url, function(result) {
|
||||
if (typeof(result) === 'object') {
|
||||
if (!hidedefault) {
|
||||
if (result.data && result.data.displayname) {
|
||||
$div.imageplaceholder(user, result.data.displayname);
|
||||
} else {
|
||||
$div.imageplaceholder(user);
|
||||
}
|
||||
var url = OC.generateUrl(
|
||||
'/avatar/{user}/{size}?requesttoken={requesttoken}',
|
||||
{user: user, size: size, requesttoken: oc_requesttoken});
|
||||
|
||||
$.get(url, function(result) {
|
||||
if (typeof(result) === 'object') {
|
||||
if (!hidedefault) {
|
||||
if (result.data && result.data.displayname) {
|
||||
$div.imageplaceholder(user, result.data.displayname);
|
||||
} else {
|
||||
$div.hide();
|
||||
$div.imageplaceholder(user);
|
||||
}
|
||||
} else {
|
||||
$div.show();
|
||||
if (ie8fix === true) {
|
||||
$div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
|
||||
} else {
|
||||
$div.html('<img src="'+url+'">');
|
||||
}
|
||||
$div.hide();
|
||||
}
|
||||
if(typeof callback === 'function') {
|
||||
callback();
|
||||
} else {
|
||||
$div.show();
|
||||
if (ie8fix === true) {
|
||||
$div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
|
||||
} else {
|
||||
$div.html('<img src="'+url+'">');
|
||||
}
|
||||
});
|
||||
}
|
||||
if(typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
};
|
||||
}(jQuery));
|
||||
|
|
|
@ -194,6 +194,27 @@ var OC={
|
|||
linkToRemoteBase:function(service) {
|
||||
return OC.webroot + '/remote.php/' + service;
|
||||
},
|
||||
|
||||
generateUrl: function(url, params) {
|
||||
var _build = function (text, vars) {
|
||||
return text.replace(/{([^{}]*)}/g,
|
||||
function (a, b) {
|
||||
var r = vars[b];
|
||||
return typeof r === 'string' || typeof r === 'number' ? r : a;
|
||||
}
|
||||
);
|
||||
};
|
||||
if (url.charAt(0) !== '/') {
|
||||
url = '/' + url;
|
||||
|
||||
}
|
||||
return OC.webroot + '/index.php' + _build(url, params);
|
||||
},
|
||||
|
||||
linkToRoute:function(route) {
|
||||
return OC.webroot + '/index.php/' + route;
|
||||
},
|
||||
|
||||
/**
|
||||
* @brief Creates an absolute url for remote use
|
||||
* @param string $service id
|
||||
|
@ -791,12 +812,10 @@ function initCore() {
|
|||
if (interval < 60) {
|
||||
interval = 60;
|
||||
}
|
||||
OC.Router.registerLoadedCallback(function(){
|
||||
var url = OC.Router.generate('heartbeat');
|
||||
setInterval(function(){
|
||||
$.post(url);
|
||||
}, interval * 1000);
|
||||
});
|
||||
var url = OC.linkToRoute('heartbeat');
|
||||
setInterval(function(){
|
||||
$.post(url);
|
||||
}, interval * 1000);
|
||||
}
|
||||
|
||||
// session heartbeat (defaults to enabled)
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
OC.router_base_url = OC.webroot + '/index.php';
|
||||
OC.Router = {
|
||||
// register your ajax requests to load after the loading of the routes
|
||||
// has finished. otherwise you face problems with race conditions
|
||||
registerLoadedCallback: function(callback){
|
||||
if (!this.routes_request){
|
||||
return;
|
||||
}
|
||||
this.routes_request.done(callback);
|
||||
},
|
||||
routes_request: !window.TESTING && $.ajax(OC.router_base_url + '/core/routes.json', {
|
||||
dataType: 'json',
|
||||
success: function(jsondata) {
|
||||
if (jsondata.status === 'success') {
|
||||
OC.Router.routes = jsondata.data;
|
||||
}
|
||||
}
|
||||
}),
|
||||
generate:function(name, opt_params) {
|
||||
if (!('routes' in this)) {
|
||||
if(this.routes_request.state() != 'resolved') {
|
||||
console.warn('To avoid race conditions, please register a callback');// wait
|
||||
}
|
||||
}
|
||||
if (!(name in this.routes)) {
|
||||
throw new Error('The route "' + name + '" does not exist.');
|
||||
}
|
||||
var route = this.routes[name];
|
||||
var params = opt_params || {};
|
||||
var unusedParams = $.extend(true, {}, params);
|
||||
var url = '';
|
||||
var optional = true;
|
||||
$(route.tokens).each(function(i, token) {
|
||||
if ('text' === token[0]) {
|
||||
url = token[1] + url;
|
||||
optional = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ('variable' === token[0]) {
|
||||
if (false === optional || !(token[3] in route.defaults)
|
||||
|| ((token[3] in params) && params[token[3]] != route.defaults[token[3]])) {
|
||||
var value;
|
||||
if (token[3] in params) {
|
||||
value = params[token[3]];
|
||||
delete unusedParams[token[3]];
|
||||
} else if (token[3] in route.defaults) {
|
||||
value = route.defaults[token[3]];
|
||||
} else if (optional) {
|
||||
return;
|
||||
} else {
|
||||
throw new Error('The route "' + name + '" requires the parameter "' + token[3] + '".');
|
||||
}
|
||||
|
||||
var empty = true === value || false === value || '' === value;
|
||||
|
||||
if (!empty || !optional) {
|
||||
url = token[1] + encodeURIComponent(value).replace(/%2F/g, '/') + url;
|
||||
}
|
||||
|
||||
optional = false;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
throw new Error('The token type "' + token[0] + '" is not supported.');
|
||||
});
|
||||
if (url === '') {
|
||||
url = '/';
|
||||
}
|
||||
|
||||
unusedParams = $.param(unusedParams);
|
||||
if (unusedParams.length > 0) {
|
||||
url += '?'+unusedParams;
|
||||
}
|
||||
|
||||
return OC.router_base_url + url;
|
||||
}
|
||||
}
|
|
@ -69,7 +69,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_ids_for_tag', {type: type});
|
||||
url = OC.generateUrl('/tags/{type}/ids', {type: type});
|
||||
$.getJSON(url, {tag: tag}, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response.ids);
|
||||
|
@ -90,7 +90,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_favorites', {type: type});
|
||||
url = OC.generateUrl('/tags/{type}/favorites', {type: type});
|
||||
$.getJSON(url, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response.ids);
|
||||
|
@ -111,7 +111,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_tags', {type: type});
|
||||
url = OC.generateUrl('/tags/{type}', {type: type});
|
||||
$.getJSON(url, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response.tags);
|
||||
|
@ -133,7 +133,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_tag', {type: type, id: id});
|
||||
url = OC.generateUrl('/tags/{type}/tag/{id}/', {type: type, id: id});
|
||||
$.post(url, {tag: tag}, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response);
|
||||
|
@ -157,7 +157,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_untag', {type: type, id: id});
|
||||
url = OC.generateUrl('/tags/{type}/untag/{id}/', {type: type, id: id});
|
||||
$.post(url, {tag: tag}, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response);
|
||||
|
@ -181,7 +181,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_favorite', {type: type, id: id});
|
||||
url = OC.generateUrl('/tags/{type}/favorite/{id}/', {type: type, id: id});
|
||||
$.post(url, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve(response);
|
||||
|
@ -205,7 +205,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_unfavorite', {type: type, id: id});
|
||||
url = OC.generateUrl('/tags/{type}/unfavorite/{id}/', {type: type, id: id});
|
||||
$.post(url, function(response) {
|
||||
if(response.status === 'success') {
|
||||
defer.resolve();
|
||||
|
@ -229,7 +229,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_add', {type: type});
|
||||
url = OC.generateUrl('/tags/{type}/add', {type: type});
|
||||
$.post(url,{tag:tag}, function(response) {
|
||||
if(typeof cb == 'function') {
|
||||
cb(response);
|
||||
|
@ -256,7 +256,7 @@ OC.Tags= {
|
|||
type = type ? type : this.type;
|
||||
var defer = $.Deferred(),
|
||||
self = this,
|
||||
url = OC.Router.generate('core_tags_delete', {type: type});
|
||||
url = OC.generateUrl('/tags/{type}/delete', {type: type});
|
||||
if(!tags || !tags.length) {
|
||||
throw new Error(t('core', 'No tags selected for deletion.'));
|
||||
}
|
||||
|
|
|
@ -65,8 +65,6 @@ $this->create('core_tags_delete', '/tags/{type}/delete')
|
|||
$this->create('js_config', '/core/js/oc.js')
|
||||
->actionInclude('core/js/config.php');
|
||||
// Routing
|
||||
$this->create('core_ajax_routes', '/core/routes.json')
|
||||
->action('OC_Router', 'JSRoutes');
|
||||
$this->create('core_ajax_preview', '/core/preview.png')
|
||||
->actionInclude('core/ajax/preview.php');
|
||||
$this->create('core_lostpassword_index', '/lostpassword/')
|
||||
|
|
|
@ -316,7 +316,6 @@ class OC {
|
|||
OC_Util::addScript("config");
|
||||
//OC_Util::addScript( "multiselect" );
|
||||
OC_Util::addScript('search', 'result');
|
||||
OC_Util::addScript('router');
|
||||
OC_Util::addScript("oc-requesttoken");
|
||||
|
||||
// avatars
|
||||
|
|
|
@ -158,28 +158,4 @@ class OC_Router {
|
|||
return $this->getGenerator()->generate($name, $parameters, $absolute);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate JSON response for routing in javascript
|
||||
*/
|
||||
public static function JSRoutes()
|
||||
{
|
||||
$router = OC::getRouter();
|
||||
|
||||
$etag = $router->getCacheKey();
|
||||
OC_Response::enableCaching();
|
||||
OC_Response::setETagHeader($etag);
|
||||
|
||||
$root = $router->getCollection('root');
|
||||
$routes = array();
|
||||
foreach($root->all() as $name => $route) {
|
||||
$compiled_route = $route->compile();
|
||||
$defaults = $route->getDefaults();
|
||||
unset($defaults['action']);
|
||||
$routes[$name] = array(
|
||||
'tokens' => $compiled_route->getTokens(),
|
||||
'defaults' => $defaults,
|
||||
);
|
||||
}
|
||||
OCP\JSON::success ( array( 'data' => $routes ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ $(document).ready(function(){
|
|||
$('#mail_settings').change(function(){
|
||||
OC.msg.startSaving('#mail_settings .msg');
|
||||
var post = $( "#mail_settings" ).serialize();
|
||||
$.post(OC.Router.generate('settings_mail_settings'), post, function(data){
|
||||
$.post(OC.generateUrl('/settings/admin/mailsettings'), post, function(data){
|
||||
OC.msg.finishedSaving('#mail_settings .msg', data);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -67,7 +67,7 @@ function showAvatarCropper() {
|
|||
$cropper.prepend("<img>");
|
||||
$cropperImage = $('#cropper img');
|
||||
|
||||
$cropperImage.attr('src', OC.Router.generate('core_avatar_get_tmp')+'?requesttoken='+oc_requesttoken+'#'+Math.floor(Math.random()*1000));
|
||||
$cropperImage.attr('src', OC.generateUrl('/avatar/tmp')+'?requesttoken='+oc_requesttoken+'#'+Math.floor(Math.random()*1000));
|
||||
|
||||
// Looks weird, but on('load', ...) doesn't work in IE8
|
||||
$cropperImage.ready(function(){
|
||||
|
@ -95,7 +95,7 @@ function sendCropData() {
|
|||
w: cropperdata.w,
|
||||
h: cropperdata.h
|
||||
};
|
||||
$.post(OC.Router.generate('core_avatar_post_cropped'), {crop: data}, avatarResponseHandler);
|
||||
$.post(OC.generateUrl('/avatar/cropped'), {crop: data}, avatarResponseHandler);
|
||||
}
|
||||
|
||||
function saveCoords(c) {
|
||||
|
@ -132,7 +132,7 @@ $(document).ready(function(){
|
|||
$('#passwordchanged').hide();
|
||||
$('#passworderror').hide();
|
||||
// Ajax foo
|
||||
$.post(OC.Router.generate('settings_personal_changepassword'), post, function(data){
|
||||
$.post(OC.generateUrl('/settings/personal/changepassword'), post, function(data){
|
||||
if( data.status === "success" ){
|
||||
$('#pass1').val('');
|
||||
$('#pass2').val('');
|
||||
|
@ -243,7 +243,7 @@ $(document).ready(function(){
|
|||
OC.dialogs.filepicker(
|
||||
t('settings', "Select a profile picture"),
|
||||
function(path){
|
||||
$.post(OC.Router.generate('core_avatar_post'), {path: path}, avatarResponseHandler);
|
||||
$.post(OC.generateUrl('/avatar/'), {path: path}, avatarResponseHandler);
|
||||
},
|
||||
false,
|
||||
["image/png", "image/jpeg"]
|
||||
|
@ -253,7 +253,7 @@ $(document).ready(function(){
|
|||
$('#removeavatar').click(function(){
|
||||
$.ajax({
|
||||
type: 'DELETE',
|
||||
url: OC.Router.generate('core_avatar_delete'),
|
||||
url: OC.generateUrl('/avatar/'),
|
||||
success: function(msg) {
|
||||
updateAvatar(true);
|
||||
}
|
||||
|
|
|
@ -225,7 +225,8 @@ var UserList = {
|
|||
}
|
||||
$('table+.loading').css('visibility', 'visible');
|
||||
UserList.updating = true;
|
||||
$.get(OC.Router.generate('settings_ajax_userlist', { offset: UserList.offset, limit: UserList.usersToLoad }), function (result) {
|
||||
var query = $.param({ offset: UserList.offset, limit: UserList.usersToLoad });
|
||||
$.get(OC.generateUrl('/settings/ajax/userlist') + query, function (result) {
|
||||
var loadedUsers = 0;
|
||||
var trs = [];
|
||||
if (result.status === 'success') {
|
||||
|
@ -401,7 +402,7 @@ $(document).ready(function () {
|
|||
if ($(this).val().length > 0) {
|
||||
var recoveryPasswordVal = $('input:password[id="recoveryPassword"]').val();
|
||||
$.post(
|
||||
OC.Router.generate('settings_users_changepassword'),
|
||||
OC.generateUrl('/settings/users/changepassword'),
|
||||
{username: uid, password: $(this).val(), recoveryPassword: recoveryPasswordVal},
|
||||
function (result) {
|
||||
if (result.status != 'success') {
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
/** @var $this OC_Router */
|
||||
|
||||
// Settings pages
|
||||
$this->create('settings_help', '/settings/help')
|
||||
->actionInclude('settings/help.php');
|
||||
|
|
Loading…
Reference in New Issue