How to use fulcrum-core - 10 common examples

To help you get started, we’ve selected a few fulcrum-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github fulcrumapp / fulcrum-desktop / app / main / models / record-values / record-values.js View on Github external
static columnValuesForFeature(feature, options = {}) {
    const values = {};

    for (const formValue of feature.formValues.all) {
      if (formValue.isEmpty) {
        continue;
      }

      const element = formValue.element;

      let columnValue = formValue.columnValue;

      if (_lodash2.default.isNumber(columnValue) || _lodash2.default.isString(columnValue) || _lodash2.default.isArray(columnValue) || _lodash2.default.isDate(columnValue)) {
        if (options.calculatedFieldDateFormat === 'date' && element.isCalculatedElement && element.display.isDate) {
          columnValue = _fulcrumCore.DateUtils.parseDate(formValue.textValue);
        }

        // don't allow dates greater than 9999, yes - they exist in the wild
        if (_lodash2.default.isDate(columnValue)) {
          columnValue = columnValue.getFullYear() > 9999 ? null : formValue.textValue;
        }

        this.maybeAssignArray(values, 'f' + formValue.element.key.toLowerCase(), columnValue, options.disableArrays, options.disableComplexTypes);
      } else if (columnValue) {

        if (element && options.mediaURLFormatter) {
          if (element.isPhotoElement || element.isVideoElement || element.isAudioElement) {
            const prefix = 'f' + formValue.element.key.toLowerCase();

            columnValue[prefix + '_urls'] = options.mediaURLFormatter(formValue);
github fulcrumapp / fulcrum-desktop / src / main / models / record-values / record-values.js View on Github external
static columnValuesForFeature(feature, options = {}) {
    const values = {};

    for (const formValue of feature.formValues.all) {
      if (formValue.isEmpty) {
        continue;
      }

      const element = formValue.element;

      let columnValue = formValue.columnValue;

      if (_.isNumber(columnValue) || _.isString(columnValue) || _.isArray(columnValue) || _.isDate(columnValue)) {
        if (options.calculatedFieldDateFormat === 'date' && element.isCalculatedElement && element.display.isDate) {
          columnValue = DateUtils.parseDate(formValue.textValue);
        }

        // don't allow dates greater than 9999, yes - they exist in the wild
        if (_.isDate(columnValue)) {
          columnValue = columnValue.getFullYear() > 9999 ? null : formValue.textValue;
        }

        this.maybeAssignArray(values, 'f' + formValue.element.key.toLowerCase(), columnValue, options.disableArrays, options.disableComplexTypes);
      } else if (columnValue) {

        if (element && options.mediaURLFormatter) {
          if (element.isPhotoElement || element.isVideoElement || element.isAudioElement) {
            const prefix = 'f' + formValue.element.key.toLowerCase();

            columnValue[prefix + '_urls'] = options.mediaURLFormatter(formValue);
github fulcrumapp / fulcrum-desktop / app / main / models / audio.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._metadata = attributes.metadata;
    this._fileSize = attributes.file_size;
    this._isUploaded = attributes.uploaded;
    this._isStored = attributes.stored;
    this._isProcessed = attributes.processed;
    this._contentType = attributes.content_type;
    this._hasTrack = !!attributes.track;
    this._trackJSON = attributes.track;
    this._createdByID = attributes.created_by_id;
    this._updatedByID = attributes.updated_by_id;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
    this._formID = attributes.form_id;
    this._recordID = attributes.record_id;

    this._duration = null;
    this._bitRate = null;

    if (attributes.metadata && attributes.metadata.format) {
      if (attributes.metadata.format.duration != null) {
        this._duration = +attributes.metadata.format.duration;
      }

      if (attributes.metadata.format.bit_rate != null) {
        this._bitRate = +attributes.metadata.format.bit_rate;
      }
    }
  }
github fulcrumapp / fulcrum-desktop / app / main / reports / generator.js View on Github external
return _asyncToGenerator(function* () {
      const data = {
        DateUtils: _fulcrumCore.DateUtils,
        record: _this.record,
        renderValues: _this.renderValues
      };

      const options = {};

      const html = _ejs2.default.render(_this.contentTemplate, data, options);

      const topdf = new _htmlToPdf2.default(html);

      const result = yield topdf.run();

      let outputPath = null;

      if (result) {
        const reportName = (0, _sanitizeFilename2.default)(_this.record.displayValue || _this.record.id);
github fulcrumapp / fulcrum-desktop / app / main / models / photo.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._exif = attributes.exif;
    this._fileSize = attributes.file_size;
    this._latitude = attributes.latitude;
    this._longitude = attributes.longitude;
    this._isUploaded = attributes.uploaded;
    this._isStored = attributes.stored;
    this._isProcessed = attributes.processed;
    this._contentType = attributes.content_type;
    this._createdByID = attributes.created_by_id;
    this._updatedByID = attributes.updated_by_id;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
    this._formID = attributes.form_id;
    this._recordID = attributes.record_id;

    if (attributes.exif) {
      const { exif } = attributes;

      this._altitude = exif.gps_altitude;
      this._direction = exif.gps_img_direction;
      this._accuracy = exif.gps_dop;
      this._width = this.integerValue(exif.pixel_x_dimension);
      this._height = this.integerValue(exif.pixel_y_dimension);
      this._make = exif.make;
      this._model = exif.model;
      this._software = exif.software;
      this._dateTime = exif.date_time_original || exif.date_time;
github fulcrumapp / fulcrum-desktop / app / main / models / video.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._metadata = attributes.metadata;
    this._fileSize = attributes.file_size;
    this._isUploaded = attributes.uploaded;
    this._isStored = attributes.stored;
    this._isProcessed = attributes.processed;
    this._contentType = attributes.content_type;
    this._hasTrack = !!attributes.track;
    this._trackJSON = attributes.track;
    this._createdByID = attributes.created_by_id;
    this._updatedByID = attributes.updated_by_id;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
    this._formID = attributes.form_id;
    this._recordID = attributes.record_id;

    this._width = null;
    this._height = null;
    this._bitRate = null;

    if (attributes.metadata) {
      const video = attributes.metadata && attributes.metadata.streams && attributes.metadata.streams.find(s => s.codec_type === 'video');

      if (video) {
        this._width = video.width;
        this._height = video.height;
      }
github fulcrumapp / fulcrum-desktop / app / main / models / audio.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._metadata = attributes.metadata;
    this._fileSize = attributes.file_size;
    this._isUploaded = attributes.uploaded;
    this._isStored = attributes.stored;
    this._isProcessed = attributes.processed;
    this._contentType = attributes.content_type;
    this._hasTrack = !!attributes.track;
    this._trackJSON = attributes.track;
    this._createdByID = attributes.created_by_id;
    this._updatedByID = attributes.updated_by_id;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
    this._formID = attributes.form_id;
    this._recordID = attributes.record_id;

    this._duration = null;
    this._bitRate = null;

    if (attributes.metadata && attributes.metadata.format) {
      if (attributes.metadata.format.duration != null) {
        this._duration = +attributes.metadata.format.duration;
      }

      if (attributes.metadata.format.bit_rate != null) {
        this._bitRate = +attributes.metadata.format.bit_rate;
      }
    }
github fulcrumapp / fulcrum-desktop / app / main / sync / tasks / download-resource.js View on Github external
return _asyncToGenerator(function* () {
      const isChanged = !object.isPersisted || _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at).getTime() !== object.updatedAt.getTime();

      object.updateFromAPIAttributes(attributes);

      if (object._deletedAt != null) {
        object._deletedAt = null;
      }

      yield _this.loadObject(object, attributes);

      yield object.save();

      if (isChanged) {
        yield _this.triggerEvent('save', { [_this.propertyName]: object });
      }
    })();
  }
github fulcrumapp / fulcrum-desktop / app / main / models / video.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._metadata = attributes.metadata;
    this._fileSize = attributes.file_size;
    this._isUploaded = attributes.uploaded;
    this._isStored = attributes.stored;
    this._isProcessed = attributes.processed;
    this._contentType = attributes.content_type;
    this._hasTrack = !!attributes.track;
    this._trackJSON = attributes.track;
    this._createdByID = attributes.created_by_id;
    this._updatedByID = attributes.updated_by_id;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
    this._formID = attributes.form_id;
    this._recordID = attributes.record_id;

    this._width = null;
    this._height = null;
    this._bitRate = null;

    if (attributes.metadata) {
      const video = attributes.metadata && attributes.metadata.streams && attributes.metadata.streams.find(s => s.codec_type === 'video');

      if (video) {
        this._width = video.width;
        this._height = video.height;
      }

      if (attributes.metadata && attributes.metadata.format) {
github fulcrumapp / fulcrum-desktop / dist / models / photo.js View on Github external
updateFromAPIAttributes(attributes) {
    this._id = attributes.access_key;
    this._exif = attributes.exif;
    this._createdAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.created_at);
    this._updatedAt = _fulcrumCore.DateUtils.parseISOTimestamp(attributes.updated_at);
  }