Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Unified Diff: chrome/browser/resources/file_manager/js/photo/gallery_item.js

Issue 39123003: [Files.app] Split the JavaScript files into subdirectories: common, background, and foreground (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed test failure. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/file_manager/js/photo/gallery_item.js
diff --git a/chrome/browser/resources/file_manager/js/photo/gallery_item.js b/chrome/browser/resources/file_manager/js/photo/gallery_item.js
deleted file mode 100644
index aa921d983e307be163fe5ac19742c0f1234c0b21..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/file_manager/js/photo/gallery_item.js
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-'use strict';
-
-/**
- * Object representing an image item (a photo or a video).
- *
- * @param {string} url Image url.
- * @constructor
- */
-Gallery.Item = function(url) {
- this.url_ = url;
- this.original_ = true;
-};
-
-/**
- * @return {string} Image url.
- */
-Gallery.Item.prototype.getUrl = function() { return this.url_ };
-
-/**
- * @param {string} url New url.
- */
-Gallery.Item.prototype.setUrl = function(url) { this.url_ = url };
-
-/**
- * @return {string} File name.
- */
-Gallery.Item.prototype.getFileName = function() {
- return ImageUtil.getFullNameFromUrl(this.url_);
-};
-
-/**
- * @return {boolean} True if this image has not been created in this session.
- */
-Gallery.Item.prototype.isOriginal = function() { return this.original_ };
-
-// TODO: Localize?
-/**
- * @type {string} Suffix for a edited copy file name.
- */
-Gallery.Item.COPY_SIGNATURE = ' - Edited';
-
-/**
- * Regular expression to match '... - Edited'.
- * @type {RegExp}
- */
-Gallery.Item.REGEXP_COPY_0 =
- new RegExp('^(.+)' + Gallery.Item.COPY_SIGNATURE + '$');
-
-/**
- * Regular expression to match '... - Edited (N)'.
- * @type {RegExp}
- */
-Gallery.Item.REGEXP_COPY_N =
- new RegExp('^(.+)' + Gallery.Item.COPY_SIGNATURE + ' \\((\\d+)\\)$');
-
-/**
- * Create a name for an edited copy of the file.
- *
- * @param {Entry} dirEntry Entry.
- * @param {function} callback Callback.
- * @private
- */
-Gallery.Item.prototype.createCopyName_ = function(dirEntry, callback) {
- var name = this.getFileName();
-
- // If the item represents a file created during the current Gallery session
- // we reuse it for subsequent saves instead of creating multiple copies.
- if (!this.original_) {
- callback(name);
- return;
- }
-
- var ext = '';
- var index = name.lastIndexOf('.');
- if (index != -1) {
- ext = name.substr(index);
- name = name.substr(0, index);
- }
-
- if (!ext.match(/jpe?g/i)) {
- // Chrome can natively encode only two formats: JPEG and PNG.
- // All non-JPEG images are saved in PNG, hence forcing the file extension.
- ext = '.png';
- }
-
- function tryNext(tries) {
- // All the names are used. Let's overwrite the last one.
- if (tries == 0) {
- setTimeout(callback, 0, name + ext);
- return;
- }
-
- // If the file name contains the copy signature add/advance the sequential
- // number.
- var matchN = Gallery.Item.REGEXP_COPY_N.exec(name);
- var match0 = Gallery.Item.REGEXP_COPY_0.exec(name);
- if (matchN && matchN[1] && matchN[2]) {
- var copyNumber = parseInt(matchN[2], 10) + 1;
- name = matchN[1] + Gallery.Item.COPY_SIGNATURE + ' (' + copyNumber + ')';
- } else if (match0 && match0[1]) {
- name = match0[1] + Gallery.Item.COPY_SIGNATURE + ' (1)';
- } else {
- name += Gallery.Item.COPY_SIGNATURE;
- }
-
- dirEntry.getFile(name + ext, {create: false, exclusive: false},
- tryNext.bind(null, tries - 1),
- callback.bind(null, name + ext));
- }
-
- tryNext(10);
-};
-
-/**
- * Write the new item content to the file.
- *
- * @param {Entry} overrideDir Directory to save to. If null, save to the same
- * directory as the original.
- * @param {boolean} overwrite True if overwrite, false if copy.
- * @param {HTMLCanvasElement} canvas Source canvas.
- * @param {ImageEncoder.MetadataEncoder} metadataEncoder MetadataEncoder.
- * @param {function(boolean)=} opt_callback Callback accepting true for success.
- */
-Gallery.Item.prototype.saveToFile = function(
- overrideDir, overwrite, canvas, metadataEncoder, opt_callback) {
- ImageUtil.metrics.startInterval(ImageUtil.getMetricName('SaveTime'));
-
- var name = this.getFileName();
-
- var onSuccess = function(url) {
- ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('SaveResult'), 1, 2);
- ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('SaveTime'));
- this.setUrl(url);
- if (opt_callback) opt_callback(true);
- }.bind(this);
-
- function onError(error) {
- console.error('Error saving from gallery', name, error);
- ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('SaveResult'), 0, 2);
- if (opt_callback) opt_callback(false);
- }
-
- function doSave(newFile, fileEntry) {
- fileEntry.createWriter(function(fileWriter) {
- function writeContent() {
- fileWriter.onwriteend = onSuccess.bind(null, fileEntry.toURL());
- fileWriter.write(ImageEncoder.getBlob(canvas, metadataEncoder));
- }
- fileWriter.onerror = function(error) {
- onError(error);
- // Disable all callbacks on the first error.
- fileWriter.onerror = null;
- fileWriter.onwriteend = null;
- };
- if (newFile) {
- writeContent();
- } else {
- fileWriter.onwriteend = writeContent;
- fileWriter.truncate(0);
- }
- }, onError);
- }
-
- function getFile(dir, newFile) {
- dir.getFile(name, {create: newFile, exclusive: newFile},
- doSave.bind(null, newFile), onError);
- }
-
- function checkExistence(dir) {
- dir.getFile(name, {create: false, exclusive: false},
- getFile.bind(null, dir, false /* existing file */),
- getFile.bind(null, dir, true /* create new file */));
- }
-
- var saveToDir = function(dir) {
- if (overwrite) {
- checkExistence(dir);
- } else {
- this.createCopyName_(dir, function(copyName) {
- this.original_ = false;
- name = copyName;
- checkExistence(dir);
- }.bind(this));
- }
- }.bind(this);
-
- if (overrideDir) {
- saveToDir(overrideDir);
- } else {
- webkitResolveLocalFileSystemURL(this.getUrl(),
- function(entry) { entry.getParent(saveToDir, onError)},
- onError);
- }
-};
-
-/**
- * Rename the file.
- *
- * @param {string} name New file name.
- * @param {function} onSuccess Success callback.
- * @param {function} onExists Called if the file with the new name exists.
- */
-Gallery.Item.prototype.rename = function(name, onSuccess, onExists) {
- var oldName = this.getFileName();
- if (ImageUtil.getExtensionFromFullName(name) ==
- ImageUtil.getExtensionFromFullName(oldName)) {
- name = ImageUtil.getFileNameFromFullName(name);
- }
- var newName = ImageUtil.replaceFileNameInFullName(oldName, name);
- if (oldName == newName) return;
-
- function onError() {
- console.error('Rename error: "' + oldName + '" to "' + newName + '"');
- }
-
- var onRenamed = function(entry) {
- this.setUrl(entry.toURL());
- onSuccess();
- }.bind(this);
-
- function moveIfDoesNotExist(entry, parentDir) {
- parentDir.getFile(newName, {create: false, exclusive: false}, onExists,
- function() { entry.moveTo(parentDir, newName, onRenamed, onError) });
- }
-
- webkitResolveLocalFileSystemURL(this.getUrl(),
- function(entry) {
- entry.getParent(moveIfDoesNotExist.bind(null, entry), onError);
- },
- onError);
-};

Powered by Google App Engine
This is Rietveld 408576698