o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1377356174.705908:@value"6
{I"
class:EFI"ProcessedAsset;�FI"logical_path;�FI"Bcollection_json_browser/angular/controllers/api_controller.js;�TI"
pathname;�FI"�/Users/weilu/workspace/collection-json-browser/app/assets/javascripts/collection_json_browser/angular/controllers/api_controller.js;�TI"content_type;�FI"application/javascript;�FI"
mtime;�FI"2013-08-24T21:45:56+08:00;�FI"length;�FiT	I"digest;�F"%d2ecda964c6082c0e64a424466ab77bdI"source;�FI"T	'use strict';

function ApiController($scope, $http, $location) {
  $scope.rootUrl = '/api'

  $scope.goTo = function(url, fromRel) {
    $scope.fromRel = fromRel
    get(url)
  }

  $scope.submit = function() {
    $scope.fromRel === 'edit-form' ? put() : post()
  }

  $scope.destroy = destroy

  $scope.$watch(function() {
    return $location.url();
  }, function(url, oldUrl) {
    if(url !== oldUrl)
      get(url)
  });

  $scope.$watch(function() {
    return $scope.item;
  }, function(item, oldItem) {
    if(item != oldItem)
      getTemplate(item)
  });

  get($scope.rootUrl)

  // helpers

  function get(url, successHandler) {
    $scope.loading = true

    if(successHandler === undefined)
      successHandler = responseHandler

    $http.get(url).success(function(data, status){
      successHandler(data, status)
      $location.url(url)
    }).error(function(){ $scope.loading = false })
  }

  function destroy(url) {
    $scope.loading = true
    $http.delete(url).
      success(responseHandler).
      error(responseHandler)
  }

  function post() {
    $scope.loading = true
    $http.post($scope.collection.href, formData()).
      success(responseHandler).
      error(responseHandler)
  }

  function put() {
    $scope.loading = true
    $http.put($location.url(), formData()).
      success(responseHandler).
      error(responseHandler)
  }

  function formData() {
    var data = {};
    $scope.collection.template.data.forEach(function(f) {
      data[f.name] = f.value
    })
    return data
  }

  function responseHandler(data, status) {
    $scope.collection = data.collection;
    $scope.raw = JSON.stringify(data, undefined, 2)

    setTemplate(data)

    var items = data.collection.items
    $scope.itemPaths = [{ name: "-- None (POST create) --", value: ''}]
    if(items)
      items.forEach(function(i){
        $scope.itemPaths.push({name: i.href, value: i.href})
      })
    $scope.item = ""

    $scope.status = status
    $scope.loading = false
  }

  function getTemplate(item) {
    if(item === undefined || item == '') {
      //TODO
      //empty fields
      //post
    } else {
      get(item, setTemplate)
      //TODO
      //put
    }
  }

  function setTemplate(data){
    if(data.collection.template) {
      $scope.template = data.collection.template.data
    }
  }
}

ApiController.$inject = ['$scope', '$http', '$location'];
;�FI"dependency_digest;�F"%7099aa91356881d2e1fb8705212cc864I"required_paths;�F[I"�/Users/weilu/workspace/collection-json-browser/app/assets/javascripts/collection_json_browser/angular/controllers/api_controller.js;�TI"dependency_paths;�F[{I"	path;�FI"�/Users/weilu/workspace/collection-json-browser/app/assets/javascripts/collection_json_browser/angular/controllers/api_controller.js;�TI"
mtime;�FI"2013-08-24T21:45:56+08:00;�FI"digest;�F"%d2ecda964c6082c0e64a424466ab77bdI"
_version;�F"%6776f581a4329e299531e1d52aa59832