template = """
"""
define ["app", "angularAMD", "lodash", "services/rationals"], (app, angularAMD, _, rationals) ->
angularAMD.directive "ratInput", () ->
directive =
restrict: 'E',
template: template
scope:
ngModel: "="
ngDisabled: "="
controller: [ '$scope', "rationals", ($scope, rationals) ->
$scope.getNominator = ()->
if _.contains($scope.ngModel, "/")
return Number($scope.ngModel.substr(0, $scope.ngModel.indexOf("/")))
Number($scope.ngModel)
$scope.getDenominator = () ->
if _.contains($scope.ngModel, "/")
return Number($scope.ngModel.substr($scope.ngModel.indexOf("/") + 1))
1
$scope.changeModel = ()->
$scope.ngModel = rationals.newRat($scope.nominator, $scope.denominator)
$scope.enableEdit = () ->
if not $scope.ngDisabled
$scope.edit = true
$scope.init = () ->
$scope.nominator = rationals.getNominator($scope.ngModel)
$scope.denominator = $scope.getDenominator()
$scope.$watch 'ngModel', () ->
$scope.init()
$scope.init()
]
return directive