Skip to content
This repository has been archived by the owner on Jan 12, 2022. It is now read-only.

Commit

Permalink
much better handling of file extensions. defaults attachments to a .j…
Browse files Browse the repository at this point in the history
…s file if no extension entered.
  • Loading branch information
seanmonstar committed Feb 9, 2011
1 parent 95376a4 commit dd40852
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 10 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -19,3 +19,4 @@ settings_local.py
.coverage
.figleaf
vendor
*.pyc
17 changes: 15 additions & 2 deletions media/jetpack/js/FileTree.js
Expand Up @@ -139,12 +139,12 @@ FileTree = new Class({
this.renameBranch(element);
}.bind(this))

hasExtension = hasExtension || (text.indexOf('.') >= 0);
hasExtension = hasExtension || !!text.getFileExtension();

var range = document.createRange(),
node = label.firstChild;
range.setStart(node, 0);
range.setEnd(node, hasExtension ? text.split('.')[0].length : text.length);
range.setEnd(node, hasExtension ? text.length - text.getFileExtension().length -1 : text.length);
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
Expand Down Expand Up @@ -234,3 +234,16 @@ FileTree.Collapse = new Class({
}

});

String.implement('getFileExtension', function() {
var parts = this.split('.'),
ext = parts.pop(),
filename = parts.join('.');

return !!filename && !!ext && !ext.match(/[^a-zA-Z0-9]/) && ext;
});

String.implement('getFileName', function() {
var ext = this.getFileExtension();
return ext && this.substring(0, this.length - ext.length - 1);
});
8 changes: 3 additions & 5 deletions media/jetpack/js/Package.js
Expand Up @@ -749,11 +749,9 @@ Package.Edit = new Class({
var that = this;

// break off an extension from the filename
var ext = newName.match(/\.([^\.]+$)/);
if (ext) {
ext = ext[1];
newName = newName.substring(0, ext.length);
}
var ext = newName.getFileExtension();
newName = newName.getFileName();



new Request.JSON({
Expand Down
12 changes: 9 additions & 3 deletions media/jetpack/js/Sidebar.js
Expand Up @@ -471,10 +471,10 @@ var Sidebar = new Class({
}

for (var f = 0; f < files.length; f++){
var fname = files[f].fileName.replace(/\.[^\.]+$/g, ''),
ext = files[f].fileName.match(/\.([^\.]+)$/)[1];
var fname = files[f].fileName.getFileName(),
ex = files[f].fileName.getFileExtension();

if (Attachment.exists(fname, ext)) {
if (Attachment.exists(fname, ex)) {
fd.error.alert('Filename has to be unique', 'You already have an attachment with that name.');
return;
}
Expand Down Expand Up @@ -508,6 +508,12 @@ var Sidebar = new Class({
filename = filename.replace(/[^a-zA-Z0-9\-_\/\.]+/g, '-');
filename = filename.replace(/\/{2,}/g, '/');
filename = filename.replace(/\/*$/g, ''); /* */


if (!isFolder && !filename.getFileExtension()) {

filename = filename.replace(/\./, '') + '.js'; //we're defaulting to .js files if the user doesnt enter an extension
}
}

if(files.length) {
Expand Down

0 comments on commit dd40852

Please sign in to comment.