]> git.p6c8.net - jirafeau_mojo42.git/commitdiff
Fixes #17 Add links for preview and direct download after uploading
authorJerome Jutteau <mojo@couak.net>
Tue, 10 Mar 2015 22:49:25 +0000 (23:49 +0100)
committerJerome Jutteau <mojo@couak.net>
Tue, 10 Mar 2015 23:08:14 +0000 (00:08 +0100)
- Also fixe previewable files types
- Fixe problem with download page and previewable files
- Only show preview link if the content is previewable
- Don't propose preview and direct download links when a password is set

f.php
index.php
lib/config.original.php
lib/functions.js
lib/functions.php
lib/lang/fr.php

diff --git a/f.php b/f.php
index e57c18f25bb0e0fd6265010ef81bd3026c9aa6c7..a5c6228a8bed197be0c3b75c05b72dd66e8bfb71 100644 (file)
--- a/f.php
+++ b/f.php
@@ -145,16 +145,16 @@ if (!empty ($link['key']))
             echo '&amp;k=' . urlencode($crypt_key);
 ?>';
         document.getElementById('submit_download').submit ();"/><?php
-        if ($cfg['download_page'] && $cfg['preview'])
+        if ($cfg['download_page'] && $cfg['preview'] && jirafeau_is_viewable($link['mime_type']))
         {
             ?><input type="submit" id = "submit_preview"  value="<?php echo t('Preview'); ?>"
             onclick="document.getElementById('submit').action='
-<?php
-        echo $cfg['web_root'] . '/f.php?h=' . $link_name . '&amp;p=1';
-        if (!empty($crypt_key))
-            echo '&amp;k=' . urlencode($crypt_key);
-?>';
-        document.getElementById('submit_preview').submit ();"/><?php
+            <?php
+            echo $cfg['web_root'] . '/f.php?h=' . $link_name . '&amp;p=1';
+            if (!empty($crypt_key))
+                echo '&amp;k=' . urlencode($crypt_key);
+            ?>';
+            document.getElementById('submit_preview').submit ();"/><?php
         }
         echo '</td></tr></table></fieldset></form></div>';
         require (JIRAFEAU_ROOT.'lib/template/footer.php');
@@ -200,7 +200,7 @@ if ($cfg['download_page'] && !$password_challenged && !$do_download && !$do_prev
 ?>';
         document.getElementById('submit_download').submit ();"/><?php
 
-        if ($cfg['download_page'] && $cfg['preview'])
+        if ($cfg['download_page'] && $cfg['preview'] && jirafeau_is_viewable($link['mime_type']))
         {
             ?><input type="submit" id = "submit_preview"  value="<?php echo t('Preview'); ?>"
             onclick="document.getElementById('submit').action='
index 81fca81c730eeb1aff104dd7ffb36b8d55d995e6..dd1a8bcafd22ad1c61505ac6b8d22d143b752cf9 100644 (file)
--- a/index.php
+++ b/index.php
@@ -94,18 +94,40 @@ if (jirafeau_has_upload_password ($cfg))
 
 ?>
 <div id="upload_finished">
-    <p>
-    <?php echo t('File uploaded! Copy the following URL to get it') ?>:
+    <p><?php echo t('File uploaded !') ?></p>
     <br />
-    <a id="upload_link" href=""></a>
+
+    <?php if ($cfg['download_page'] == true) { ?>
+    <div id="upload_finished_download_page">
+    <?php echo t('Download page') ?>
+    <p><a id="upload_link" href=""></a></p>
     <br />
-    </p>
+    </div>
+    <?php } ?>
 
-    <p>
-    <?php echo t('Keep the following URL to delete it at any moment'); ?>:
+    <div id="upload_password_page">
+    <p><?php echo t('Download page') ?>:</p>
+    <p><a id="password_link" href=""></a></p>
+    <br />
+    </div>
+
+    <?php if ($cfg['preview'] == true) { ?>
+    <div id="upload_finished_preview">
+    <p><?php echo t('View link') ?>:</p>
+    <p><a id="preview_link" href=""></a></p>
+    <br />
+    </div>
+    <?php } ?>
+
+    <div id="upload_direct_download">
+    <p><?php echo t('Direct download link') ?>:</p>
+    <p><a id="direct_link" href=""></a></p>
+    <br />
+    </div>
+
+    <p><?php echo t('Delete link') ?>:</p>
+    <p><a id="delete_link" href=""></a></p>
     <br />
-    <a id="delete_link" href=""></a>
-    </p>
     
     <p id="validity">
     <?php echo t('This file is valid until the following date'); ?>:
index 8c30f5e1208a6a223f3b62f24bf3c8e6b9b11d51..73238146ed0223a0c1a4db25728ad8df98e11842 100644 (file)
@@ -35,16 +35,10 @@ $cfg['var_root'] = '';
 $cfg['lang'] = 'auto';
 /* Select your style :) See media folder */
 $cfg['style'] = 'modern';
-/* Set preview option.
- * true: will propose user's browser to preview file if possible.
- * false: will just download the file, whatever the content is.
- */
+/* Propose a preview link if file type is previewable is set to true. */
 $cfg['preview'] = true;
-/* Download page:
- * true: Will show a download page (with preview if permited and possible).
- * false: Will directly download file or preview (if permited and possible).
- */
-$cfg['download_page'] = false;
+/* Download page: propose a link to a download page is set to true. */
+$cfg['download_page'] = true;
 /* Encryption feature. disable it by default.
  * By enabling it, file-level deduplication won't work.
  */
index ee8c6e8d6aa3fefbc73b95412d3cdaab128c70c5..ccd13d353546413d673a94da84e90c231ac16317 100644 (file)
@@ -18,6 +18,7 @@
 
 function show_link (url, reference, delete_code, crypt_key, date)
 {
+    // Download page if element exists
     var download_link = url + 'f.php?h=' + reference;
     var download_link_href = url + 'f.php?h=' + reference;
     if (crypt_key.length > 0)
@@ -25,14 +26,71 @@ function show_link (url, reference, delete_code, crypt_key, date)
         download_link += '&amp;k=' + crypt_key;
         download_link_href += '&k=' + crypt_key;
     }
+    if (!!document.getElementById('upload_finished_download_page'))
+    {
+        document.getElementById('upload_link').innerHTML = download_link;
+        document.getElementById('upload_link').href = download_link_href;
+    }
+
+    // Is the preview allowed ?
+    if (!!document.getElementById('preview_link'))
+    {
+        document.getElementById('upload_finished_preview').style.display = 'none';
+        var preview_link = url + 'f.php?h=' + reference + '&amp;p=1';
+        var preview_link_href = url + 'f.php?h=' + reference + '&p=1';
+        if (crypt_key.length > 0)
+        {
+            preview_link += '&amp;k=' + crypt_key;
+            preview_link_href += '&k=' + crypt_key;
+        }
+
+        // Test if content can be previewed
+         type = document.getElementById('file_select').files[0].type;
+         if (type.indexOf("image") > -1 ||
+             type.indexOf("audio") > -1 ||
+             type.indexOf("text") > -1 ||
+             type.indexOf("video") > -1)
+         {
+            document.getElementById('preview_link').innerHTML = preview_link;
+            document.getElementById('preview_link').href = preview_link_href;
+            document.getElementById('upload_finished_preview').style.display = '';
+         }
+    }
+
+    // Only show link to password page if password is set
+    document.getElementById('upload_password_page').style.display = 'none';
+    if (document.getElementById('input_key').value.length > 0)
+    {
+        if (!!document.getElementById('upload_finished_download_page'))
+            document.getElementById('upload_finished_download_page').style.display = 'none';
+        document.getElementById('upload_password_page').style.display = '';
+        if (!!document.getElementById('upload_finished_preview'))
+            document.getElementById('upload_finished_preview').style.display = 'none';
+        document.getElementById('upload_direct_download').style.display = 'none';
 
+        document.getElementById('password_link').innerHTML = download_link;
+        document.getElementById('password_link').href = download_link_href;
+    }
+    // Direct download link
+    else
+    {
+        var direct_download_link = url + 'f.php?h=' + reference + '&amp;d=1';
+        var direct_download_link_href = url + 'f.php?h=' + reference + '&d=1';
+        if (crypt_key.length > 0)
+        {
+            direct_download_link += '&amp;k=' + crypt_key;
+            direct_download_link_href += '&k=' + crypt_key;
+        }
+        document.getElementById('direct_link').innerHTML = direct_download_link;
+        document.getElementById('direct_link').href = direct_download_link_href;
+    }
+
+    // Delete link
     var delete_link = url + 'f.php?h=' + reference + '&amp;d=' + delete_code;
     var delete_link_href = url + 'f.php?h=' + reference + '&d=' + delete_code;
-
-    document.getElementById('upload_link').innerHTML = download_link;
-    document.getElementById('upload_link').href = download_link_href;
     document.getElementById('delete_link').innerHTML = delete_link;
     document.getElementById('delete_link').href = delete_link_href;
+
     if (date)
     {
         document.getElementById('date').innerHTML = date;
index 6f8464951aba856fdf8b951d8f6d04d8c457374d..3a304a427128031b05ca10d6f9cfe4d3e8d4d2a4 100644 (file)
@@ -453,7 +453,7 @@ jirafeau_is_viewable ($mime)
     if (!empty ($mime))
     {
         /* Actually, verify if mime-type is an image or a text. */
-        $viewable = array ('image', 'text');
+        $viewable = array ('image', 'text', 'video', 'audio');
         $decomposed = explode ('/', $mime);
         return in_array ($decomposed[0], $viewable);
     }
index d806dc9b935a8b0ca15ee7a5dfaa40e4f81c5609..4efcccb12c7de22cb4551c82e8cc6b603c647b89 100644 (file)
@@ -44,11 +44,15 @@ $tr = array (
              'Installer script still present' => 'Le script d\'installation est toujours présent',
              'Please make sure to delete the installer script "install.php" before continuing.' => 'Merci de supprimer le fichier "install.php" avant de continuer.',
              'An error occurred.' => 'Une erreur s\'est produite',
-             'File uploaded! Copy the following URL to get it' => 'Fichier envoyé! Le fichier sera accessible à l\'adresse suivante',
+             'File uploaded !' => 'Fichier envoyé !',
+             'Download page' => 'Page de téléchargement',
              'This file is valid until the following date' => 'Ce fichier est valable jusqu\'à la date suivante',
-             'Keep the following URL to delete it at any moment' => 'Vous pouvez supprimer le fichier lorsque vous le désirez via l\'adresse suivante',
+             'View link' => 'Lien d\'affichage',
+             'Direct download link' => 'Lien de téléchargement direct',
+             'Delete link' => 'Lien de suppression',
              /* f.php */
              'Download' => 'Télécharger',
+             'Preview' => 'Prévisualiser',
              'Sorry, the requested file is not found' => 'Désolé, le fichier que vous demandez n\'existe pas ou n\'existe plus',
              'File not available.' => 'Fichier non disponible',
              'File has been deleted.' => 'Le fichier a été supprimé.',

patrick-canterino.de