npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

angular-google-picker

v0.2.2

Published

An AngularJs directive that interact with the Google API Picker

Downloads

548

Readme

angular-google-picker npm version Bower version

Angular directive that interact with the Google Picker API :

Requirements: AngularJS 1.2+

File Size: 2.1Kb minified

Installation

  1. Using Bower (recommended)
bower install angular-google-picker --save
  1. Using NPM
npm install angular-google-picker --save
  1. Manually

Download https://github.com/softmonkeyjapan/angular-google-picker/archive/0.2.2.zip

Usage

  1. Include Google client and api script in your layout
<script src="http://apis.google.com/js/client.js"></script>
<script src="http://apis.google.com/js/api.js"></script>
  1. Include the Google Picker as a dependency for your app
angular.module('myApp', ['lk-google-picker'])
  1. Configure the plugin (see below configuration section)

  2. Create a scope to handle files that will be selected

angular.module('myApp', ['lk-google-picker'])

.controller('ExampleCtrl', ['$scope', function ($scope) {
   $scope.files = [];

   $scope.onLoaded = function () {
     console.log('Google Picker loaded!');
   }

   $scope.onPicked = function (docs) {
     angular.forEach(data.docs, function (file, index) {
       $scope.files.push(file);
     });
   }

   $scope.onCancel = function () {
     console.log('Google picker close/cancel!');
   }
}]);
  1. Add the directive to your HTML element
<a href="javascript:;" lk-google-picker on-picked="onPicked(docs)" on-loaded="onLoaded()" on-cancel="onCancel()">Open my Google Drive</a>
  1. That's it, you're done!

Every file is a json object that looks like :

[
  {
    "id": "0B50DHrsuMky6UFlSQloxYGBxT2M",
    "serviceId": "docs",
    "mimeType": "image/jpeg",
    "name": "DSC01845.JPG",
    "type": "photo",
    "lastEditedUtc": 1409023514905,
    "iconUrl": "https://ssl.gstatic.com/docs/doclist/images/icon_11_image_list.png",
    "description": "",
    "url": "https://docs.google.com/file/d/0B50DHrsuMky6UFlSQloxYGBxT2M/edit?usp=drive_web",
    "sizeBytes": 1570863,
    "parentId": "0B50DHrsuMkx6cWhrSXpTR1cyYW8"
  },
  {
    ...
  }
]

Configuration

In order to work, Google Picker needs to connect to the Google API using an application credentials (Api Key and client ID). For more information on how to create an application/project, please refer to https://developers.google.com/drive/web/. To do so, you'll need to configure the service.

Using configure(options)

angular.module('myApp', ['lk-google-picker'])

.config(['lkGoogleSettingsProvider', function (lkGoogleSettingsProvider) {

  lkGoogleSettingsProvider.configure({
    apiKey   : 'YOUR_API_KEY',
    clientId : 'YOUR_CLIENT_ID',
    scopes   : ['https://www.googleapis.com/auth/drive', 'another_scope', 'and_another'],
    locale   : 'ja',
    features : ['..', '..'],
    views    : ['..', '..']
  });
}])

Features

The Picker use the concept of views and features that allow you to customize it. The service provider allow you to enable some features to the Picker the same way you define your API Key or client ID (using either configure or setters).

angular.module('myApp', ['lk-google-picker'])

.config(['lkGoogleSettingsProvider', function (lkGoogleSettingsProvider) {
  lkGoogleSettingsProvider.features(['MULTISELECT_ENABLED', 'ANOTHER_ONE']);
}])

Default : MULTISELECT_ENABLED feature is use as default.

Please refer to https://developers.google.com/picker/docs/reference for more informations.

Views

Views are objects that needs to be instanciate using the namespace google.picker.*. That namespace is already defined in the core of the directive. In order to add views to your picker, all you need to do is to define the class that needs to be used :

angular.module('myApp', ['lk-google-picker'])

.config(['lkGoogleSettingsProvider', function (lkGoogleSettingsProvider) {
  lkGoogleSettingsProvider.views([
    'DocsUploadView()',
    'DocsView()'
  ]);
}])

NOTE : Views classes have some useful methods such as setIncludeFolders or setStarred (or any other methods available). In order to use them, just chain them to the class :

angular.module('myApp', ['lk-google-picker'])

.config(['lkGoogleSettingsProvider', function (lkGoogleSettingsProvider) {
  lkGoogleSettingsProvider.setViews([
    'DocsUploadView().setIncludeFolders(true)',
    'DocsView().setStarred(true)',
    'DocsView(google.picker.ViewId.FOLDERS).setSelectFolderEnabled(true)'
  ]);
}])

Default : DocsUploadView and DocsView are use as default.

Please refer to https://developers.google.com/picker/docs/reference for more informations.

Callbacks

The directive provide you 3 callbacks that you can use in order to work with the Picker.

onLoaded

This callback is triggered after the picker has been initialized and shown on the page.

angular.module('myApp', ['lk-google-picker'])

.controller('ExampleCtrl', ['$scope', function ($scope) {
  $scope.onLoaded = function () {
    console.log('Google Picker loaded!');
  }
}]);
<a href="javascript:;" lk-google-picker on-loaded="onLoaded()">Open my Google Drive</a>

onPicked

This callback is triggered after you select files and click on the select button from the Picker.

angular.module('myApp', ['lk-google-picker'])

.controller('ExampleCtrl', ['$scope', function ($scope) {
  $scope.onPicked = function (docs) {
    // docs contains the list of google documents object as shown above.
  }
}]);
<a href="javascript:;" lk-google-picker on-picked="onPicked">Open my Google Drive</a>

onCancel

This callback is triggered after the picker has been closed by clicking on the cancel button from the picker.

angular.module('myApp', ['lk-google-picker'])

.controller('ExampleCtrl', ['$scope', function ($scope) {
  $scope.onCancel = function () {
    console.log('Google picker close/cancel!');
  }
}]);
<a href="javascript:;" lk-google-picker on-cancel="onCancel">Open my Google Drive</a>

Example

The demo version available at http://softmonkeyjapan.github.io/angular-google-picker/ can be found in the example folder. You will need a server in order to try it on your local machine. Since the Google Picker demo application is setup to allow origin from localhost:8000, I encourage you to use the python SimpleHTTPServer :

$ cd path/to/the/example/directory
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

You should now be able to browse to localhost:8000 and see it in action from your localhost.

Demo

A demo version is available at http://softmonkeyjapan.github.io/angular-google-picker/.

License

Licensed under the MIT license