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