Merge edit-redirect fix

pull/437/merge
Min RK 10 years ago
commit cc32f165e8

@ -40,6 +40,11 @@ class FilesHandler(IPythonHandler):
cur_mime = mimetypes.guess_type(name)[0]
if cur_mime is not None:
self.set_header('Content-Type', cur_mime)
else:
if model['format'] == 'base64':
self.set_header('Content-Type', 'application/octet-stream')
else:
self.set_header('Content-Type', 'text/plain')
if model['format'] == 'base64':
b64_bytes = model['content'].encode('ascii')

@ -277,18 +277,20 @@ class FileContentsManager(FileManagerMixin, ContentsManager):
model['type'] = 'file'
os_path = self._get_os_path(path)
model['mimetype'] = mimetypes.guess_type(os_path)[0]
if content:
content, format = self._read_file(os_path, format)
default_mime = {
'text': 'text/plain',
'base64': 'application/octet-stream'
}[format]
if model['mimetype'] is None:
default_mime = {
'text': 'text/plain',
'base64': 'application/octet-stream'
}[format]
model['mimetype'] = default_mime
model.update(
content=content,
format=format,
mimetype=mimetypes.guess_type(os_path)[0] or default_mime,
)
return model

@ -55,9 +55,6 @@ def validate_model(model, expect_content):
)
maybe_none_keys = ['content', 'format']
if model['type'] == 'file':
# mimetype should be populated only for file models
maybe_none_keys.append('mimetype')
if expect_content:
errors = [key for key in maybe_none_keys if model[key] is None]
if errors:

@ -90,19 +90,10 @@ function($,
}).catch(
function(error) {
that.events.trigger("file_load_failed.Editor", error);
if (((error.xhr||{}).responseJSON||{}).reason === 'bad format') {
window.location = utils.url_path_join(
that.base_url,
'files',
that.file_path
);
} else {
console.warn('Error while loading: the error was:')
console.warn(error)
}
console.warn('Error loading: ', error);
cm.setValue("Error! " + error.message +
"\nSaving disabled.\nSee Console for more details.");
cm.setOption('readOnly','nocursor')
cm.setOption('readOnly','nocursor');
that.save_enabled = false;
}
);
@ -186,7 +177,7 @@ function($,
Editor.prototype._clean_state = function(){
var clean = this.codemirror.isClean(this.generation);
if (clean === this.clean){
return
return;
} else {
this.clean = clean;
}

@ -540,6 +540,13 @@ define([
icon = 'running_' + icon;
}
var uri_prefix = NotebookList.uri_prefixes[model.type];
if (model.type === 'file' &&
model.mimetype && model.mimetype.substr(0,5) !== 'text/'
) {
// send text/unidentified files to editor, others go to raw viewer
uri_prefix = 'files';
}
item.find(".item_icon").addClass(icon).addClass('icon-fixed-width');
var link = item.find("a.item_link")
.attr('href',

Loading…
Cancel
Save