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

Unified Diff: chrome/browser/resources/options2/chromeos/change_picture_options.js

Issue 10809005: Options: Rename chrome/browser/resources/options2 -> chrome/browser/resources/options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix. Created 8 years, 4 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/options2/chromeos/change_picture_options.js
diff --git a/chrome/browser/resources/options2/chromeos/change_picture_options.js b/chrome/browser/resources/options2/chromeos/change_picture_options.js
deleted file mode 100644
index 2404337c9164c0ca999becb51878f2fa89ade3d0..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/options2/chromeos/change_picture_options.js
+++ /dev/null
@@ -1,506 +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.
-
-cr.define('options', function() {
-
- var OptionsPage = options.OptionsPage;
- var UserImagesGrid = options.UserImagesGrid;
- var ButtonImages = UserImagesGrid.ButtonImages;
-
- /**
- * Array of button URLs used on this page.
- * @type {Array.<string>}
- * @const
- */
- var ButtonImageUrls = [
- ButtonImages.TAKE_PHOTO,
- ButtonImages.CHOOSE_FILE
- ];
-
- /////////////////////////////////////////////////////////////////////////////
- // ChangePictureOptions class:
-
- /**
- * Encapsulated handling of ChromeOS change picture options page.
- * @constructor
- */
- function ChangePictureOptions() {
- var isWebRTC = $('change-picture-page').getAttribute('camera') == 'webrtc';
- ChangePictureOptions.prototype = isWebRTC ?
- ChangePictureOptionsWebRTCProto : ChangePictureOptionsOldProto;
- // |this| has been already created so it's |__proto__| has to be reset.
- this.__proto__ = ChangePictureOptions.prototype;
- OptionsPage.call(
- this,
- 'changePicture',
- loadTimeData.getString('changePicturePage'),
- 'change-picture-page');
- }
-
- cr.addSingletonGetter(ChangePictureOptions);
-
- var ChangePictureOptionsOldProto = {
- // Inherit ChangePictureOptions from OptionsPage.
- __proto__: options.OptionsPage.prototype,
-
- /**
- * Initializes ChangePictureOptions page.
- */
- initializePage: function() {
- // Call base class implementation to start preferences initialization.
- OptionsPage.prototype.initializePage.call(this);
-
- var imageGrid = $('user-image-grid');
- UserImagesGrid.decorate(imageGrid);
-
- imageGrid.previewElement = $('user-image-preview');
-
- imageGrid.addEventListener('select',
- this.handleImageSelected_.bind(this));
- imageGrid.addEventListener('activate',
- this.handleImageActivated_.bind(this));
-
- // Add the "Choose file" button.
- imageGrid.addItem(ButtonImages.CHOOSE_FILE,
- loadTimeData.getString('chooseFile'),
- this.handleChooseFile_.bind(this));
-
- // Profile image data.
- this.profileImage_ = imageGrid.addItem(
- ButtonImages.PROFILE_PICTURE,
- loadTimeData.getString('profilePhotoLoading'));
-
- // Old user image data (if present).
- this.oldImage_ = null;
-
- $('change-picture-overlay-confirm').onclick = this.closePage_;
-
- chrome.send('onChangePicturePageInitialized');
- },
-
- /**
- * Called right after the page has been shown to user.
- */
- didShowPage: function() {
- $('user-image-grid').updateAndFocus();
- chrome.send('onChangePicturePageShown');
- },
-
- /**
- * Called right before the page is hidden.
- */
- willHidePage: function() {
- var imageGrid = $('user-image-grid');
- imageGrid.blur(); // Make sure the image grid is not active.
- if (this.oldImage_) {
- imageGrid.removeItem(this.oldImage_);
- this.oldImage_ = null;
- }
- },
-
- /**
- * Called right after the page has been hidden.
- */
- // TODO(ivankr): both callbacks are required as only one of them is called
- // depending on the way the page was closed, see http://crbug.com/118923.
- didClosePage: function() {
- this.willHidePage();
- },
-
- /**
- * Closes current page, returning back to Personal Stuff page.
- * @private
- */
- closePage_: function() {
- OptionsPage.closeOverlay();
- },
-
- /**
- * Handles "Take photo" button activation.
- * @private
- */
- handleTakePhoto_: function() {
- chrome.send('takePhoto');
- this.closePage_();
- },
-
- /**
- * Handles "Choose a file" button activation.
- * @private
- */
- handleChooseFile_: function() {
- chrome.send('chooseFile');
- this.closePage_();
- },
-
- /**
- * Handles image selection change.
- * @private
- */
- handleImageSelected_: function() {
- var imageGrid = $('user-image-grid');
- var url = imageGrid.selectedItemUrl;
- // Ignore deselection, selection change caused by program itself and
- // selection of one of the action buttons.
- if (url &&
- !imageGrid.inProgramSelection &&
- ButtonImageUrls.indexOf(url) == -1) {
- chrome.send('selectImage', [url]);
- }
- },
-
- /**
- * Handles image activation (by pressing Enter).
- * @private
- */
- handleImageActivated_: function() {
- switch ($('user-image-grid').selectedItemUrl) {
- case ButtonImages.TAKE_PHOTO:
- this.handleTakePhoto_();
- break;
- case ButtonImages.CHOOSE_FILE:
- this.handleChooseFile_();
- break;
- default:
- this.closePage_();
- break;
- }
- },
-
- /**
- * URL of the current user image.
- * @type {string}
- */
- get currentUserImageUrl() {
- return 'chrome://userimage/' + BrowserOptions.getLoggedInUsername() +
- '?id=' + (new Date()).getTime() + '&animated';
- },
-
- /**
- * Notifies about camera presence change.
- * @param {boolean} present Whether a camera is present or not.
- * @private
- */
- setCameraPresent_: function(present) {
- var imageGrid = $('user-image-grid');
- var showTakePhotoButton = present;
- if (showTakePhotoButton && !this.takePhotoButton_) {
- this.takePhotoButton_ = imageGrid.addItem(
- ButtonImages.TAKE_PHOTO,
- loadTimeData.getString('takePhoto'),
- this.handleTakePhoto_.bind(this),
- 1);
- } else if (!showTakePhotoButton && this.takePhotoButton_) {
- imageGrid.removeItem(this.takePhotoButton_);
- this.takePhotoButton_ = null;
- }
- },
-
- /**
- * Adds or updates old user image taken from file/camera (neither a profile
- * image nor a default one).
- * @private
- */
- setOldImage_: function() {
- var imageGrid = $('user-image-grid');
- var url = this.currentUserImageUrl;
- if (this.oldImage_) {
- this.oldImage_ = imageGrid.updateItem(this.oldImage_, url);
- } else {
- // Insert next to the profile image.
- var pos = imageGrid.indexOf(this.profileImage_) + 1;
- this.oldImage_ = imageGrid.addItem(url, undefined, undefined, pos);
- imageGrid.selectedItem = this.oldImage_;
- }
- },
-
- /**
- * Updates user's profile image.
- * @param {string} imageUrl Profile image, encoded as data URL.
- * @param {boolean} select If true, profile image should be selected.
- * @private
- */
- setProfileImage_: function(imageUrl, select) {
- var imageGrid = $('user-image-grid');
- this.profileImage_ = imageGrid.updateItem(
- this.profileImage_, imageUrl, loadTimeData.getString('profilePhoto'));
- if (select)
- imageGrid.selectedItem = this.profileImage_;
- },
-
- /**
- * Selects user image with the given URL.
- * @param {string} url URL of the image to select.
- * @private
- */
- setSelectedImage_: function(url) {
- $('user-image-grid').selectedItemUrl = url;
- },
-
- /**
- * Appends default images to the image grid. Should only be called once.
- * @param {Array.<{url: string, author: string, website: string}>} images
- * An array of default images data, including URL, author and website.
- * @private
- */
- setDefaultImages_: function(images) {
- var imageGrid = $('user-image-grid');
- for (var i = 0, data; data = imagesData[i]; i++) {
- imageGrid.addItem(data.url);
- }
- },
- };
-
- var ChangePictureOptionsWebRTCProto = {
- // Inherit ChangePictureOptions from OptionsPage.
- __proto__: options.OptionsPage.prototype,
-
- /**
- * Initializes ChangePictureOptions page.
- */
- initializePage: function() {
- // Call base class implementation to start preferences initialization.
- OptionsPage.prototype.initializePage.call(this);
-
- var imageGrid = $('user-image-grid');
- UserImagesGrid.decorate(imageGrid);
-
- // Preview image will track the selected item's URL.
- var previewElement = $('user-image-preview');
- imageGrid.previewElement = previewElement;
- imageGrid.selectionType = 'default';
-
- imageGrid.addEventListener('select',
- this.handleImageSelected_.bind(this));
- imageGrid.addEventListener('activate',
- this.handleImageActivated_.bind(this));
-
- // Set the title for "Take Photo" button.
- imageGrid.cameraTitle = loadTimeData.getString('takePhoto');
-
- // Add the "Choose file" button.
- imageGrid.addItem(ButtonImages.CHOOSE_FILE,
- loadTimeData.getString('chooseFile'),
- this.handleChooseFile_.bind(this)).type = 'file';
-
- // Profile image data.
- this.profileImage_ = imageGrid.addItem(
- ButtonImages.PROFILE_PICTURE,
- loadTimeData.getString('profilePhotoLoading'));
- this.profileImage_.type = 'profile';
-
- $('take-photo').addEventListener(
- 'click', this.handleTakePhoto_.bind(this));
- $('discard-photo').addEventListener(
- 'click', imageGrid.discardPhoto.bind(imageGrid));
-
- // Toggle 'animation' class for the duration of WebKit transition.
- $('flip-photo').addEventListener(
- 'click', function(e) {
- previewElement.classList.add('animation');
- imageGrid.flipPhoto = !imageGrid.flipPhoto;
- });
- $('user-image-stream-crop').addEventListener(
- 'webkitTransitionEnd', function(e) {
- previewElement.classList.remove('animation');
- });
-
- // Old user image data (if present).
- this.oldImage_ = null;
-
- $('change-picture-overlay-confirm').addEventListener(
- 'click', this.closePage_.bind(this));
-
- chrome.send('onChangePicturePageInitialized');
- },
-
- /**
- * Called right after the page has been shown to user.
- */
- didShowPage: function() {
- var imageGrid = $('user-image-grid');
- imageGrid.updateAndFocus();
- // Reset camera element.
- imageGrid.cameraImage = null;
- // Autoplay but do not preselect.
- imageGrid.checkCameraPresence(true, false);
- chrome.send('onChangePicturePageShown');
- },
-
- /**
- * Called right before the page is hidden.
- */
- willHidePage: function() {
- var imageGrid = $('user-image-grid');
- imageGrid.blur(); // Make sure the image grid is not active.
- imageGrid.stopCamera();
- if (this.oldImage_) {
- imageGrid.removeItem(this.oldImage_);
- this.oldImage_ = null;
- }
- },
-
- /**
- * Called right after the page has been hidden.
- */
- // TODO(ivankr): both callbacks are required as only one of them is called
- // depending on the way the page was closed, see http://crbug.com/118923.
- didClosePage: function() {
- this.willHidePage();
- },
-
- /**
- * Closes current page, returning back to Personal Stuff page.
- * @private
- */
- closePage_: function() {
- OptionsPage.closeOverlay();
- },
-
- /**
- * Handles "Take photo" button click.
- * @private
- */
- handleTakePhoto_: function() {
- $('user-image-grid').takePhoto(function(photoURL) {
- chrome.send('photoTaken', [photoURL]);
- });
- },
-
- /**
- * Handles "Choose a file" button activation.
- * @private
- */
- handleChooseFile_: function() {
- chrome.send('chooseFile');
- this.closePage_();
- },
-
- /**
- * Handles image selection change.
- * @private
- */
- handleImageSelected_: function() {
- var imageGrid = $('user-image-grid');
- var url = imageGrid.selectedItemUrl;
- // Ignore selection change caused by program itself and selection of one
- // of the action buttons.
- if (!imageGrid.inProgramSelection &&
- url != ButtonImages.TAKE_PHOTO && url != ButtonImages.CHOOSE_FILE) {
- chrome.send('selectImage', [url]);
- }
- // Update image attribution text.
- var image = imageGrid.selectedItem;
- $('user-image-author-name').textContent = image.author;
- $('user-image-author-website').textContent = image.website;
- $('user-image-author-website').href = image.website;
- $('user-image-attribution').style.visibility =
- (image.author || image.website) ? 'visible' : 'hidden';
- },
-
- /**
- * Handles image activation (by pressing Enter).
- * @private
- */
- handleImageActivated_: function() {
- switch ($('user-image-grid').selectedItemUrl) {
- case ButtonImages.TAKE_PHOTO:
- this.handleTakePhoto_();
- break;
- case ButtonImages.CHOOSE_FILE:
- this.handleChooseFile_();
- break;
- default:
- this.closePage_();
- break;
- }
- },
-
- /**
- * URL of the current user image.
- * @type {string}
- */
- get currentUserImageUrl() {
- return 'chrome://userimage/' + BrowserOptions.getLoggedInUsername() +
- '?id=' + new Date().getTime();
- },
-
- /**
- * Adds or updates old user image taken from file/camera (neither a profile
- * image nor a default one).
- * @private
- */
- setOldImage_: function() {
- var imageGrid = $('user-image-grid');
- var url = this.currentUserImageUrl;
- if (this.oldImage_) {
- this.oldImage_ = imageGrid.updateItem(this.oldImage_, url);
- } else {
- // Insert next to the profile image.
- var pos = imageGrid.indexOf(this.profileImage_) + 1;
- this.oldImage_ = imageGrid.addItem(url, undefined, undefined, pos);
- imageGrid.selectedItem = this.oldImage_;
- }
- },
-
- /**
- * Updates user's profile image.
- * @param {string} imageUrl Profile image, encoded as data URL.
- * @param {boolean} select If true, profile image should be selected.
- * @private
- */
- setProfileImage_: function(imageUrl, select) {
- var imageGrid = $('user-image-grid');
- this.profileImage_ = imageGrid.updateItem(
- this.profileImage_, imageUrl, loadTimeData.getString('profilePhoto'));
- if (select)
- imageGrid.selectedItem = this.profileImage_;
- },
-
- /**
- * Selects user image with the given URL.
- * @param {string} url URL of the image to select.
- * @private
- */
- setSelectedImage_: function(url) {
- $('user-image-grid').selectedItemUrl = url;
- },
-
- /**
- * Appends default images to the image grid. Should only be called once.
- * @param {Array.<{url: string, author: string, website: string}>} images
- * An array of default images data, including URL, author and website.
- * @private
- */
- setDefaultImages_: function(imagesData) {
- var imageGrid = $('user-image-grid');
- for (var i = 0, data; data = imagesData[i]; i++) {
- var item = imageGrid.addItem(data.url);
- item.type = 'default';
- item.author = data.author || '';
- item.website = data.website || '';
- }
- },
- };
-
- // Forward public APIs to private implementations.
- [
- 'setCameraPresent',
- 'setDefaultImages',
- 'setOldImage',
- 'setProfileImage',
- 'setSelectedImage',
- ].forEach(function(name) {
- ChangePictureOptions[name] = function() {
- var instance = ChangePictureOptions.getInstance();
- return instance[name + '_'].apply(instance, arguments);
- };
- });
-
- // Export
- return {
- ChangePictureOptions: ChangePictureOptions
- };
-
-});

Powered by Google App Engine
This is Rietveld 408576698