From 37dabf63860662ff79e884239e3b265d49cfb1b3 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 4 Jun 2010 08:16:01 +0200 Subject: [PATCH] Added file images. Added visual file selection. --- scribeengine/controllers/media.py | 4 +-- scribeengine/public/images/file-image.png | Bin 0 -> 3906 bytes scribeengine/public/images/file-unknown.png | Bin 0 -> 1723 bytes .../public/scripts/ScribeEngine.Media.js | 32 +++++++++++++++--- scribeengine/public/styles/style.css | 3 ++ scribeengine/templates/media/index.mako | 11 +++--- 6 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 scribeengine/public/images/file-image.png create mode 100644 scribeengine/public/images/file-unknown.png diff --git a/scribeengine/controllers/media.py b/scribeengine/controllers/media.py index f3d0436..43b7cff 100644 --- a/scribeengine/controllers/media.py +++ b/scribeengine/controllers/media.py @@ -72,7 +72,7 @@ class MediaController(BaseController): self._get_directories(path, directories) c.directories = json.dumps(directories) c.files = self._get_files(path) - #return pformat(c.directories, indent=2) + c.page_title = u'Media Browser' return render(u'/media/index.mako') @jsonify @@ -80,7 +80,7 @@ class MediaController(BaseController): path = request.GET.get(u'path', u'').split(u',') dirpath = os.path.join(config[u'paths.media'], *path) #log.debug(dirpath) - return self._get_files(dirpath) + return {u'results': self._get_files(dirpath)} @jsonify def create_directory(self): diff --git a/scribeengine/public/images/file-image.png b/scribeengine/public/images/file-image.png new file mode 100644 index 0000000000000000000000000000000000000000..a56f9affd39c85f22dfbc7e8800468aaf2b87a7d GIT binary patch literal 3906 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 ul").html(""); - $.each(data, function () { + $.each(data.results, function () { var filename = this; + var extension = filename.substr(filename.length - 4); + if (extension == ".png" || extension == ".jpg") + { + var filetype = "file-image"; + } + else + { + var filetype = "file-unknown"; + } if (filename.length > 15) { filename = filename.substr(0, 12) + "..."; } $("#file-list > ul").append( $("

  • ") - .append($("
    ").attr("class", "file").html(" ")) - .append($("
    ").attr("class", "caption").attr("title", filename).text(filename)) + .append($("").attr("href", "#").attr("class", "file") + .html("").click(ScribeEngine.Media.selectFile)) + .append($("").attr("href", "#").attr("class", "caption").attr("title", filename).text(filename).click(ScribeEngine.Media.selectFile)) ); }); } ); + }, + selectFile: function (e) + { + var li = ScribeEngine.Events.getElement(e).parent(); + if (!li.is("li")) + { + li = li.parent(); + } + li.parent().children("li").children(".selected").removeClass("selected"); + li.children("a").addClass("selected").blur(); } }); ScribeEngine.Events.load(function () { ScribeEngine.Events.click("#new-directory", ScribeEngine.Media.newDirectory); - ScribeEngine.Events.click("#file-select", window.close); + ScribeEngine.Events.click("#file-select", ScribeEngine.Media.closeWindow); }); diff --git a/scribeengine/public/styles/style.css b/scribeengine/public/styles/style.css index a78b713..d8f9712 100644 --- a/scribeengine/public/styles/style.css +++ b/scribeengine/public/styles/style.css @@ -512,6 +512,9 @@ fieldset.form-details .form-text { color: #000; } +/* Media Browser */ + + /* Pagination */ .pagination { diff --git a/scribeengine/templates/media/index.mako b/scribeengine/templates/media/index.mako index 1ea90c7..d33464b 100644 --- a/scribeengine/templates/media/index.mako +++ b/scribeengine/templates/media/index.mako @@ -11,15 +11,18 @@ % endif