parent
44928c8f64
commit
70bfad4e6a
@ -1,4 +1,6 @@
|
|||||||
var vent = require('vent');
|
var vent = require('vent');
|
||||||
var Marionette = require('marionette');
|
var Marionette = require('marionette');
|
||||||
|
|
||||||
module.exports = Marionette.ItemView.extend({template : 'Hotkeys/HotkeysViewTemplate'});
|
module.exports = Marionette.ItemView.extend({
|
||||||
|
template : 'Hotkeys/HotkeysViewTemplate'
|
||||||
|
});
|
@ -1,69 +1,86 @@
|
|||||||
var $ = require('jquery');
|
var $ = require('jquery');
|
||||||
var Messenger = require('messenger');
|
var Messenger = require('messenger');
|
||||||
|
|
||||||
module.exports = (function(){
|
|
||||||
'use strict';
|
|
||||||
window.alert = function(message) {
|
window.alert = function(message) {
|
||||||
new Messenger().post(message);
|
new Messenger().post(message);
|
||||||
};
|
};
|
||||||
|
|
||||||
var addError = function(message) {
|
var addError = function(message) {
|
||||||
$('#errors').append('<div>' + message + '</div>');
|
$('#errors').append('<div>' + message + '</div>');
|
||||||
};
|
};
|
||||||
|
|
||||||
window.onerror = function(msg, url, line) {
|
window.onerror = function(msg, url, line) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
var a = document.createElement('a');
|
var a = document.createElement('a');
|
||||||
a.href = url;
|
a.href = url;
|
||||||
var filename = a.pathname.split('/').pop();
|
var filename = a.pathname.split('/').pop();
|
||||||
|
|
||||||
|
//Suppress Firefox debug errors when console window is closed
|
||||||
if (filename.toLowerCase() === 'markupview.jsm' || filename.toLowerCase() === 'markup-view.js') {
|
if (filename.toLowerCase() === 'markupview.jsm' || filename.toLowerCase() === 'markup-view.js') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var messageText = filename + ' : ' + line + '</br>' + msg;
|
var messageText = filename + ' : ' + line + '</br>' + msg;
|
||||||
|
|
||||||
var message = {
|
var message = {
|
||||||
message : messageText,
|
message : messageText,
|
||||||
type : 'error',
|
type : 'error',
|
||||||
hideAfter : 1000,
|
hideAfter : 1000,
|
||||||
showCloseButton : true
|
showCloseButton : true
|
||||||
};
|
};
|
||||||
|
|
||||||
new Messenger().post(message);
|
new Messenger().post(message);
|
||||||
|
|
||||||
addError(message.message);
|
addError(message.message);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.log('An error occurred while reporting error. ' + error);
|
console.log('An error occurred while reporting error. ' + error);
|
||||||
console.log(msg);
|
console.log(msg);
|
||||||
new Messenger().post('Couldn\'t report JS error. ' + msg);
|
new Messenger().post('Couldn\'t report JS error. ' + msg);
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
return false; //don't suppress default alerts and logs.
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ajaxError(function(event, xmlHttpRequest, ajaxOptions) {
|
$(document).ajaxError(function(event, xmlHttpRequest, ajaxOptions) {
|
||||||
|
|
||||||
|
//don't report 200 error codes
|
||||||
if (xmlHttpRequest.status >= 200 && xmlHttpRequest.status <= 300) {
|
if (xmlHttpRequest.status >= 200 && xmlHttpRequest.status <= 300) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//don't report aborted requests
|
||||||
if (xmlHttpRequest.statusText === 'abort') {
|
if (xmlHttpRequest.statusText === 'abort') {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = {
|
var message = {
|
||||||
type : 'error',
|
type : 'error',
|
||||||
hideAfter : 1000,
|
hideAfter : 1000,
|
||||||
showCloseButton : true
|
showCloseButton : true
|
||||||
};
|
};
|
||||||
|
|
||||||
if (xmlHttpRequest.status === 0 && xmlHttpRequest.readyState === 0) {
|
if (xmlHttpRequest.status === 0 && xmlHttpRequest.readyState === 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xmlHttpRequest.status === 400 && ajaxOptions.isValidatedCall) {
|
if (xmlHttpRequest.status === 400 && ajaxOptions.isValidatedCall) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xmlHttpRequest.status === 503) {
|
if (xmlHttpRequest.status === 503) {
|
||||||
message.message = xmlHttpRequest.responseJSON.message;
|
message.message = xmlHttpRequest.responseJSON.message;
|
||||||
}
|
} else if (xmlHttpRequest.status === 409) {
|
||||||
if(xmlHttpRequest.status === 409) {
|
|
||||||
message.message = xmlHttpRequest.responseJSON.message;
|
message.message = xmlHttpRequest.responseJSON.message;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
message.message = '[{0}] {1} : {2}'.format(ajaxOptions.type, xmlHttpRequest.statusText, ajaxOptions.url);
|
message.message = '[{0}] {1} : {2}'.format(ajaxOptions.type, xmlHttpRequest.statusText, ajaxOptions.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
new Messenger().post(message);
|
new Messenger().post(message);
|
||||||
addError(message.message);
|
addError(message.message);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}).call(this);
|
|
@ -1,11 +1,12 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
String.prototype.format = function() {
|
String.prototype.format = function() {
|
||||||
var args = arguments;
|
var args = arguments;
|
||||||
|
|
||||||
return this.replace(/{(\d+)}/g, function(match, number) {
|
return this.replace(/{(\d+)}/g, function(match, number) {
|
||||||
if (typeof args[number] !== 'undefined') {
|
if (typeof args[number] !== 'undefined') {
|
||||||
return args[number];
|
return args[number];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return match;
|
return match;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,16 +1,22 @@
|
|||||||
module.exports = function() {
|
module.exports = function() {
|
||||||
var originalInit = this.prototype.initialize;
|
var originalInit = this.prototype.initialize;
|
||||||
|
|
||||||
this.prototype.initialize = function() {
|
this.prototype.initialize = function() {
|
||||||
|
|
||||||
this.isSaved = true;
|
this.isSaved = true;
|
||||||
|
|
||||||
this.on('change', function() {
|
this.on('change', function() {
|
||||||
this.isSaved = false;
|
this.isSaved = false;
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.on('sync', function() {
|
this.on('sync', function() {
|
||||||
this.isSaved = true;
|
this.isSaved = true;
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
if (originalInit) {
|
if (originalInit) {
|
||||||
originalInit.call(this);
|
originalInit.call(this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
@ -1,35 +1,46 @@
|
|||||||
var ModelBinder = require('backbone.modelbinder');
|
var ModelBinder = require('backbone.modelbinder');
|
||||||
|
|
||||||
module.exports = function() {
|
module.exports = function() {
|
||||||
|
|
||||||
var originalOnRender = this.prototype.onRender;
|
var originalOnRender = this.prototype.onRender;
|
||||||
var originalBeforeClose = this.prototype.onBeforeClose;
|
var originalBeforeClose = this.prototype.onBeforeClose;
|
||||||
|
|
||||||
this.prototype.onRender = function() {
|
this.prototype.onRender = function() {
|
||||||
|
|
||||||
if (!this.model) {
|
if (!this.model) {
|
||||||
throw 'View has no model for binding';
|
throw 'View has no model for binding';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this._modelBinder) {
|
if (!this._modelBinder) {
|
||||||
this._modelBinder = new ModelBinder();
|
this._modelBinder = new ModelBinder();
|
||||||
}
|
}
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
changeTriggers : {
|
changeTriggers : {
|
||||||
"" : 'change typeahead:selected typeahead:autocompleted',
|
'' : 'change typeahead:selected typeahead:autocompleted',
|
||||||
"[contenteditable]" : 'blur',
|
'[contenteditable]' : 'blur',
|
||||||
"[data-onkeyup]" : 'keyup'
|
'[data-onkeyup]' : 'keyup'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this._modelBinder.bind(this.model, this.el, null, options);
|
this._modelBinder.bind(this.model, this.el, null, options);
|
||||||
|
|
||||||
if (originalOnRender) {
|
if (originalOnRender) {
|
||||||
originalOnRender.call(this);
|
originalOnRender.call(this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.prototype.onBeforeClose = function() {
|
this.prototype.onBeforeClose = function() {
|
||||||
|
|
||||||
if (this._modelBinder) {
|
if (this._modelBinder) {
|
||||||
this._modelBinder.unbind();
|
this._modelBinder.unbind();
|
||||||
delete this._modelBinder;
|
delete this._modelBinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (originalBeforeClose) {
|
if (originalBeforeClose) {
|
||||||
originalBeforeClose.call(this);
|
originalBeforeClose.call(this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
@ -1,21 +1,22 @@
|
|||||||
var $ = require('jquery');
|
var $ = require('jquery');
|
||||||
require('./AutoComplete');
|
require('./AutoComplete');
|
||||||
|
|
||||||
module.exports = (function(){
|
|
||||||
$.fn.directoryAutoComplete = function() {
|
$.fn.directoryAutoComplete = function() {
|
||||||
var query = 'path';
|
var query = 'path';
|
||||||
|
|
||||||
$(this).autoComplete({
|
$(this).autoComplete({
|
||||||
resource : '/filesystem',
|
resource : '/filesystem',
|
||||||
query : query,
|
query : query,
|
||||||
filter : function(filter, response, callback) {
|
filter : function(filter, response, callback) {
|
||||||
var matches = [];
|
var matches = [];
|
||||||
|
|
||||||
$.each(response.directories, function(i, d) {
|
$.each(response.directories, function(i, d) {
|
||||||
if (d[query] && d[query].startsWith(filter)) {
|
if (d[query] && d[query].startsWith(filter)) {
|
||||||
matches.push({ value : d[query] });
|
matches.push({ value : d[query] });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
callback(matches);
|
callback(matches);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}).call(this);
|
|
Loading…
Reference in new issue