@ -2,50 +2,49 @@ var Backbone = require('backbone');
var $ = require ( 'jquery' ) ;
var StatusModel = require ( '../System/StatusModel' ) ;
module . exports = ( function ( ) {
var routeBinder = {
bind : function ( ) {
var self = this ;
$ ( document ) . on ( 'click' , 'a[href]' , function ( event ) {
self . _handleClick ( event ) ;
} ) ;
} ,
_handleClick : function ( event ) {
var $target = $ ( event . target ) ;
if ( $target . parents ( '.nav-tabs' ) . length ) {
return ;
}
if ( $target . hasClass ( 'no-router' ) ) {
var routeBinder = {
bind : function ( ) {
var self = this ;
$ ( document ) . on ( 'click' , 'a[href]' , function ( event ) {
self . _handleClick ( event ) ;
} ) ;
} ,
_handleClick : function ( event ) {
var $target = $ ( event . target ) ;
if ( $target . parents ( '.nav-tabs' ) . length ) {
return ;
}
if ( $target . hasClass ( 'no-router' ) ) {
return ;
}
var href = event . target . getAttribute ( 'href' ) ;
if ( ! href && $target . closest ( 'a' ) && $target . closest ( 'a' ) [ 0 ] ) {
var linkElement = $target . closest ( 'a' ) [ 0 ] ;
if ( $ ( linkElement ) . hasClass ( 'no-router' ) ) {
return ;
}
var href = event . target . getAttribute ( 'href' ) ;
if ( ! href && $target . closest ( 'a' ) && $target . closest ( 'a' ) [ 0 ] ) {
var linkElement = $target . closest ( 'a' ) [ 0 ] ;
if ( $ ( linkElement ) . hasClass ( 'no-router' ) ) {
return ;
}
href = linkElement . getAttribute ( 'href' ) ;
}
event . preventDefault ( ) ;
if ( ! href ) {
throw 'couldn\'t find route target' ;
}
if ( ! href . startsWith ( 'http' ) ) {
if ( event . ctrlKey ) {
window . open ( href , '_blank' ) ;
}
else {
var relativeHref = href . replace ( StatusModel . get ( 'urlBase' ) , '' ) ;
Backbone . history . navigate ( relativeHref , { trigger : true } ) ;
}
}
else if ( href . contains ( '#' ) ) {
href = linkElement . getAttribute ( 'href' ) ;
}
event . preventDefault ( ) ;
if ( ! href ) {
throw 'couldn\'t find route target' ;
}
if ( ! href . startsWith ( 'http' ) ) {
if ( event . ctrlKey ) {
window . open ( href , '_blank' ) ;
}
else {
window . open ( 'http://www.dereferer.org/?' + encodeURI ( href ) , '_blank' ) ;
var relativeHref = href . replace ( StatusModel . get ( 'urlBase' ) , '' ) ;
Backbone . history . navigate ( relativeHref , { trigger : true } ) ;
}
}
} ;
return routeBinder ;
} ) . call ( this ) ;
else if ( href . contains ( '#' ) ) {
window . open ( href , '_blank' ) ;
}
else {
window . open ( 'http://www.dereferer.org/?' + encodeURI ( href ) , '_blank' ) ;
}
}
} ;
module . exports = routeBinder ;