Convert Studio JS to use require.js
This commit is contained in:
60
cms/static/js/models/location.js
Normal file
60
cms/static/js/models/location.js
Normal file
@@ -0,0 +1,60 @@
|
||||
define(["backbone", "underscore"], function(Backbone, _) {
|
||||
var Location = Backbone.Model.extend({
|
||||
defaults: {
|
||||
tag: "",
|
||||
org: "",
|
||||
course: "",
|
||||
category: "",
|
||||
name: ""
|
||||
},
|
||||
toUrl: function(overrides) {
|
||||
return
|
||||
(overrides && overrides['tag'] ? overrides['tag'] : this.get('tag')) + "://" +
|
||||
(overrides && overrides['org'] ? overrides['org'] : this.get('org')) + "/" +
|
||||
(overrides && overrides['course'] ? overrides['course'] : this.get('course')) + "/" +
|
||||
(overrides && overrides['category'] ? overrides['category'] : this.get('category')) + "/" +
|
||||
(overrides && overrides['name'] ? overrides['name'] : this.get('name')) + "/";
|
||||
},
|
||||
_tagPattern : /[^:]+/g,
|
||||
_fieldPattern : new RegExp('[^/]+','g'),
|
||||
|
||||
parse: function(payload) {
|
||||
if (_.isArray(payload)) {
|
||||
return {
|
||||
tag: payload[0],
|
||||
org: payload[1],
|
||||
course: payload[2],
|
||||
category: payload[3],
|
||||
name: payload[4]
|
||||
};
|
||||
}
|
||||
else if (_.isString(payload)) {
|
||||
this._tagPattern.lastIndex = 0; // odd regex behavior requires this to be reset sometimes
|
||||
var foundTag = this._tagPattern.exec(payload);
|
||||
if (foundTag) {
|
||||
this._fieldPattern.lastIndex = this._tagPattern.lastIndex + 1; // skip over the colon
|
||||
return {
|
||||
tag: foundTag[0],
|
||||
org: this.getNextField(payload),
|
||||
course: this.getNextField(payload),
|
||||
category: this.getNextField(payload),
|
||||
name: this.getNextField(payload)
|
||||
};
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
else {
|
||||
return payload;
|
||||
}
|
||||
},
|
||||
getNextField : function(payload) {
|
||||
try {
|
||||
return this._fieldPattern.exec(payload)[0];
|
||||
}
|
||||
catch (err) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
});
|
||||
return Location;
|
||||
});
|
||||
Reference in New Issue
Block a user