Sha256: 84c303c178a20891c1ec9c9c40de796467df6652797a381fa5a3892c2b737b21

Contents?: true

Size: 1.09 KB

Versions: 32

Compression:

Stored size: 1.09 KB

Contents

!(angular => {
  'use strict';

  function DirtyAwareModelImports(ModelBase, ModelState) {

    return class DirtyAwareModel extends ModelBase {

      constructor(resource, fields, comparators) {
        super(resource);
        this.modelState = new ModelState(fields, comparators);
      }

      set item(item) {
        this._item = item;

        if(this.modelState) {
          this.modelState.snapshotItem(this._item);
        }
      }

      get item() {
        return this._item;
      }

      isPristine() {
        if(this.isNew()) return true;
        if(!this.isPersisted()) return false;

        return this.modelState.isPristine(this.item);
      }

      isDirty() {
        return !this.isPristine();
      }

      revert() {
        this._item = this.modelState.snapshot;
      }

      isValidForSave() {
        return this.isNew() || !this.isPersisted() || this.modelState.isDirty(this.item);
      }

    };
  }

  DirtyAwareModelImports.$inject = ['ModelBase', 'ModelState'];
  angular.module('models.dirtyAwareModel', []).service('DirtyAwareModel', DirtyAwareModelImports);

}(angular));

Version data entries

32 entries across 16 versions & 1 rubygems

Version Path
aleph_analytics-0.4.9.pre.dev public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.9.pre.dev app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.4.8 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.8 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.4.7 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.4.7 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.4 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.4 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.4.2 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.2 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.4.1 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.4.1 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.3.0 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.3.0 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.2.0 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.2.0 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.1.0 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.1.0 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6
aleph_analytics-0.0.6 public/assets/angular/services/model/dirty_aware_model.js-ec1a086f3ec459827dbd5381bd970975.es6
aleph_analytics-0.0.6 app/assets/javascripts/angular/services/model/dirty_aware_model.js.es6