Dateiverwaltung für die WebBox
ulrich
2018-03-04 bb9f8c68f284497ed6d94fdc7ab23ce8c7a6aac7
Umgestellt auf Thumbnailator
8 files modified
1 files deleted
286 ■■■■■ changed files
src/java/de/uhilger/filecms/api/FileMgr.java 63 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/HtmlExportService.java 20 ●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/data/Bild.java 181 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/pub/Catalog.java 2 ●●● patch | view | raw | blame | history
web/fotos/index.html 4 ●●●● patch | view | raw | blame | history
web/fotos/stile.css 2 ●●● patch | view | raw | blame | history
web/ui/api.js 12 ●●●●● patch | view | raw | blame | history
web/ui/index.html 1 ●●●● patch | view | raw | blame | history
web/ui/ui.js 1 ●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -18,14 +18,10 @@
package de.uhilger.filecms.api;
import de.uhilger.filecms.data.Bild;
import de.uhilger.filecms.data.FileRef;
import de.uhilger.filecms.pub.AbstractComparator;
import de.uhilger.filecms.pub.FileNameComparator;
import java.awt.Container;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import de.uhilger.wbx.Bild;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -44,6 +40,7 @@
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.FileUtils;
/**
@@ -385,6 +382,25 @@
        nurname = bildName.substring(0, dotpos);
      }
          // 120, 240, 500, 700, 1200
      for (int i = 0; i < Bild.GR.length; i++) {
        StringBuffer buf = new StringBuffer();
        buf.append(nurname);
        buf.append(bild.getVariantenName(i));
        buf.append(ext);
        File newImgFile = new File(dir, buf.toString());
        try {
          Thumbnails.of(original)
                  .size(bild.getVariantenGroesse(i), bild.getVariantenGroesse(i))
                  .keepAspectRatio(true)
                  .toFile(newImgFile);
        } catch (IOException ex) {
          logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
        }
      }
      /*
      Image image = Toolkit.getDefaultToolkit().getImage(original.getAbsolutePath());
      MediaTracker mediaTracker = new MediaTracker(new Container());
      mediaTracker.addImage(image, 0);
@@ -408,12 +424,49 @@
      } catch (IOException | InterruptedException ex) {
        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
      }
      */
      return "ok";
    } else {
      return "Pfad micht erlaubt.";
    }
  }
  
  public String bildRotieren(String relPath, String bildName) {
    if (!relPath.startsWith(".")) {
      File dir = getTargetDir(relPath);
      File original = new File(dir, bildName);
      String ext = "";
      String nurname = bildName;
      int dotpos = bildName.indexOf(".");
      if (dotpos > -1) {
        ext = bildName.substring(dotpos);
        nurname = bildName.substring(0, dotpos);
      }
      StringBuffer buf = new StringBuffer();
      buf.append(nurname);
      buf.append("-rot");
      buf.append(ext);
      File newImgFile = new File(dir, buf.toString());
      logger.fine("original: " + original.getAbsolutePath() + " newImgFile: " + newImgFile.getAbsolutePath());
      try {
        Thumbnails.of(original)
                .scale(1)
                .rotate(90)
                .toFile(newImgFile);
      } catch (IOException ex) {
        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
      }
      return "ok";
    } else {
      return "Pfad micht erlaubt.";
    }
  }
  public String extractZipfile(String relPath, String filename) {
    String result = null;
    if (!relPath.startsWith(".")) {    
src/java/de/uhilger/filecms/api/HtmlExportService.java
@@ -20,11 +20,7 @@
package de.uhilger.filecms.api;
import de.uhilger.filecms.data.Bild;
import java.awt.Container;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import de.uhilger.wbx.Bild;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
@@ -34,6 +30,7 @@
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.FileUtils;
/**
@@ -190,6 +187,16 @@
          }
          String outFileName = new File(dir, tnFileName.toString()).getAbsolutePath();
          logger.fine("outFileName: " + outFileName);
        try {
          Thumbnails.of(absPath)
                  .size(bild.getVariantenGroesse(Bild.WINZIG), bild.getVariantenGroesse(Bild.WINZIG))
                  .keepAspectRatio(true)
                  .toFile(outFileName);
        } catch (IOException ex) {
          logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
        }
          /*
          Image image = Toolkit.getDefaultToolkit().getImage(absPath);
          MediaTracker mediaTracker = new MediaTracker(new Container());
          mediaTracker.addImage(image, 0);
@@ -203,7 +210,8 @@
            }
          } catch (InterruptedException | IOException ex) {
            logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
          }
          }
          */
        }
      }
    } else {
src/java/de/uhilger/filecms/data/Bild.java
File was deleted
src/java/de/uhilger/filecms/pub/Catalog.java
@@ -19,7 +19,7 @@
package de.uhilger.filecms.pub;
import de.uhilger.filecms.api.Api;
import de.uhilger.filecms.data.Bild;
import de.uhilger.wbx.Bild;
import de.uhilger.filecms.data.FileRef;
import java.io.File;
import java.util.ArrayList;
web/fotos/index.html
@@ -15,11 +15,11 @@
          {{#mini}}
            {{#dia}}
              <a href="{{bildurl}}" data-fancybox="group" data-caption="">
                <img class="datei" src="{{miniurl}}"  width="60" height="40" />
                <img class="datei" src="{{miniurl}}" />
              </a>
            {{/dia}}
            {{^dia}}
              <img class="datei" src="{{miniurl}}"  width="60" height="40" />
              <img class="datei" src="{{miniurl}}" />
            {{/dia}}
          {{/mini}}
          {{^mini}}
web/fotos/stile.css
@@ -111,7 +111,7 @@
  -webkit-overflow-scrolling: touch;
}
.datei-figure {
  width: 6em;
  width: 8em;
  cursor: pointer;
}
web/ui/api.js
@@ -370,6 +370,18 @@
  });  
}
function fm_menu_rotate() {
  var gewaehlte = $('.datei-gewaehlt');
  var fname = $(gewaehlte[0]).text();
  var m = '?c=de.uhilger.filecms.api.FileMgr&m=bildRotieren';
  m = m + '&p=' + pfad;
  m = m + '&p=' + fname;
  var u = '../svc' + m;
  fm_get(u, "text", function(resp) {
    fm_get_list(pfad);
  });
}
/* -------- upload ----------- */
function sendFile(datei) {
web/ui/index.html
@@ -113,6 +113,7 @@
              <a id="m-paste" class="dropdown-item" href="#">Einf&uuml;gen</a>
              <div class="dropdown-divider"></div>
              <a id="m-shrink" class="dropdown-item" href="#">Verkleinern</a>
              <a id="m-rotate" class="dropdown-item" href="#">Rotieren</a>
              <div class="dropdown-divider"></div>
              <a id="m-del" class="dropdown-item" href="#">L&ouml;schen</a>
            </div>
web/ui/ui.js
@@ -66,6 +66,7 @@
  $('#m-copy').on('click', fm_menu_copy);
  $('#m-paste').on('click', fm_menu_paste);
  $('#m-shrink').on('click', fm_menu_shrink);
  $('#m-rotate').on('click', fm_menu_rotate);
  $('#m-toggle-slideshow').on('click', fm_toggle_show_slideshow);
  $('#m-test').on('click', fm_menu_test);
  $('#m-test-2').on('click', fm_menu_compile);