Ejemplo n.º 1
0
define(function(require) {

	var EditorModel = require('editorGlobal/models/editorModel');

	var EditorBlockModel = EditorModel.extend({

		urlRoot: '/api/content/block',

		initialize: function() {},

		_parent: 'articles',
    	_siblings:'blocks',
        _children: 'components',

        // Block specific properties
        layoutOptions:  null,
        dragLayoutOptions: null,

        // These are the only attributes which should be permitted on a save
        whitelistAttributes: ['_id', '_courseId',  '_parentId', '_layoutOptions', 
            '_type', '_sortOrder', '_classes', '_isOptional', 'body', 'displayTitle', 
            'title', '_extensions']

	});

	return EditorBlockModel;

});
define(function(require) {
  var EditorModel = require('editorGlobal/models/editorModel');
  var EditorConfigModel = EditorModel.extend({

    sync: function(method, model, options) {
        options = options || {};

        switch(method.toLowerCase()) {
            case 'read':
            options.url = '/api/content/config/' + this.get('_courseId');
            break;
            case 'update':
            options.url = '/api/content/config/' + this.get('_id');
            break;
        }

        return Backbone.sync.apply(this, arguments);
    },

    _siblings: '',
    _children: '',
    _parent: 'course',
    _type: 'config'
  });

  return EditorConfigModel;
});
Ejemplo n.º 3
0
define(function(require) {

  var Backbone = require('backbone');
  var Origin = require('coreJS/app/origin');
  var Helpers = require('coreJS/app/helpers');
  var EditorModel = require('editorGlobal/models/editorModel');

  var ProjectModel = EditorModel.extend({

    idAttribute: '_id',

    urlRoot: '/api/content/course',

    defaults: {
        'tags': [],
        _type: 'course',
        customStyle: ''
    },

    initialize : function(options) {
    },

    getHeroImageURI: function () {
      if(Helpers.isAssetExternal(this.get('heroImage'))) {
        return this.get('heroImage');
      } else {
        return '/api/asset/serve/' + this.get('heroImage');
      }
    },

    isEditable: function () {
      return this.get('_isShared') || this.get('createdBy') == Origin.sessionModel.get('id')
    },

    getDuplicateURI: function () {
      return '/api/duplicatecourse/' + this.get('_id');
    }

  });

  return ProjectModel;

});
define(function(require) {

	var EditorModel = require('editorGlobal/models/editorModel');
	var Origin = require('coreJS/app/origin');

	var EditorContentObjectModel = EditorModel.extend({
		
		urlRoot: '/api/content/contentobject',

		_parent: 'contentObjects',

    	_siblings:'contentObjects',

        _children: 'articles',

        defaults: {
        	_isSelected: false,
        	_isExpanded: false
        },

		initialize: function() {
			this.listenTo(this, 'sync', this.setupConstructor);
			this.setupConstructor();
			this.listenTo(this, 'change:_type', this.setupConstructor);
		},

		setupConstructor: function() {
			if (this.get('_parentId') === Origin.editor.data.course.get('_id')) {
				this._parent === 'course';
			}
			if (this.get('_type') === 'menu') {
				this._children = 'contentObjects';
			}
		}
	});

	return EditorContentObjectModel;

});