# //= require_tree ../../helpers # //= require material_raingular/directives/upload/events class DirectiveModels.MrUploadModel extends AngularLinkModel
@inject( '$injector' ) initialize: -> [@ngModelCtrl,@mrCallbackCtrl] = @$controller [@model,@key] = Helpers.NgModelParse(@$attrs.ngModel,@$scope) @fileUpload = new Helpers.FileUpload(@$scope,@model,@key,@$element,@callback.bind(@),@$injector) @options = @$scope.$eval(@$attrs.mrUploadOptions || '{}') new Modules.MrUploadEvents(@$element,@fileUpload,@disabled) callback: (data) -> @$scope[@model][@key] = data[@key] @$scope[@model].thumb = data.thumb @$scope[@model].id = data.id unless @$scope[@model].id @$scope.progress = 100 @$element.removeClass('covered') @mrCallbackCtrl?.evaluate(data) fileData: -> data = {} data.path = @$scope[@model]?[@key]?.url data.name = @$scope[@model]?[@key]?.name data.thumb = @$scope[@model]?.thumb?.url return data fileUploadShow: (type) -> @options[type] disabled: => el = @$element[0] until !el.parentElement return true if el.getAttribute('disabled') el = el.parentElement accept: -> @$attrs.accept || '*' @register(Directives.MrUpload)