Skip to content

Commit

Permalink
Merge branch 'develop' into feature/copyMoveItem-jqueryui
Browse files Browse the repository at this point in the history
  • Loading branch information
lc-thomasberger committed Aug 2, 2018
2 parents 15da7b8 + 36b955c commit 90b4226
Show file tree
Hide file tree
Showing 39 changed files with 396 additions and 528 deletions.
10 changes: 7 additions & 3 deletions frontend/src/core/helpers.js
Expand Up @@ -38,9 +38,13 @@ define(function(require){

keyToTitleString: function(key) {
if (!key) return;
// Take in key value and remove all _'s and capitalise
var string = key.replace(/_/g, "").toLowerCase();
return this.capitalise(string);
// check translatable strings first
var l10nKey = 'app.scaffold.' + key;
if(Origin.l10n.has(l10nKey)) {
return Origin.l10n.t(l10nKey);
}
// fall-back: remove all _ and capitalise
return this.capitalise(key.replace(/_/g, "").toLowerCase());
},

momentFormat: function(date, format) {
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/core/l10n.js
Expand Up @@ -8,6 +8,12 @@ define(['require', 'jquery', 'polyglot', 'core/origin'], function(require, $, Po
return string;
}
return polyglot.t.apply(polyglot, arguments);
},
has: function() {
if(!polyglot || !polyglot.has) {
return false;
}
return polyglot.has.apply(polyglot, arguments);
}
};
/**
Expand All @@ -16,11 +22,14 @@ define(['require', 'jquery', 'polyglot', 'core/origin'], function(require, $, Po
var locale = localStorage.getItem('lang') || 'en';
$.getJSON('lang/' + locale, function(data) {
polyglot = new Polyglot({
locale: locale,
phrases: data,
warn: function(message) {
if(Origin.debug) console.warn('l10n:', message);
}
});
Origin.trigger('l10n:loaded');
}).fail(function(jqXHR, textStatus, error) {
Origin.trigger('l10n:loaded');
});
});
Expand Up @@ -2,11 +2,11 @@
define(function(require) {
var ContentModel = require('./contentModel');

var ExtensionModel = ContentModel.extend({
var ExtensionTypeModel = ContentModel.extend({
urlRoot: '/api/extensiontype',
idAttribute: '_id',
_type: 'extension'
});

return ExtensionModel;
return ExtensionTypeModel;
});
@@ -1,10 +1,11 @@
// LICENCE https://github.com/adaptlearning/adapt_authoring/blob/master/LICENSE
define(function(require) {
var Backbone = require('backbone');
var ContentModel = require('./contentModel');

var MenuTypeModel = Backbone.Model.extend({
var MenuTypeModel = ContentModel.extend({
urlRoot: '/api/menutype',
idAttribute: '_id',
urlRoot: '/api/menutype'
_type: 'menu'
});

return MenuTypeModel;
Expand Down
8 changes: 4 additions & 4 deletions frontend/src/core/models/themeTypeModel.js
@@ -1,11 +1,11 @@
// LICENCE https://github.com/adaptlearning/adapt_authoring/blob/master/LICENSE
define(function(require) {
var Backbone = require('backbone');
var Origin = require('core/origin');
var ContentModel = require('./contentModel');

var ThemeTypeModel = Backbone.Model.extend({
var ThemeTypeModel = ContentModel.extend({
urlRoot: '/api/themetype',
idAttribute: '_id',
urlRoot: '/api/themetype'
_type: 'theme'
});

return ThemeTypeModel;
Expand Down
Expand Up @@ -30,8 +30,12 @@ define(function(require) {
this.model.set('tags', _.pluck(this.model.get('tags'), '_id'));

var changedAttributes = this.model.changedAttributes(this.originalAttributes);
// should also include anything that's new
var newAttributes = _.omit(this.model.attributes, Object.keys(this.originalAttributes));
_.extend(changedAttributes, newAttributes);

if(changedAttributes) {
return _.pick(this.model.attributes, _.keys(changedAttributes));
return _.pick(this.model.attributes, Object.keys(changedAttributes));
}
return null;
},
Expand Down
Expand Up @@ -3,7 +3,7 @@ define(function(require) {
var Backbone = require('backbone');
var Origin = require('core/origin');
var EditorOriginView = require('../../global/views/editorOriginView');
var ExtensionModel = require('core/models/extensionModel');
var ExtensionTypeModel = require('core/models/extensionTypeModel');
var EditorCollection = require('../../global/collections/editorCollection');

var EditorExtensionsEditView = EditorOriginView.extend({
Expand Down Expand Up @@ -43,8 +43,8 @@ define(function(require) {

var extensionTypes = new EditorCollection(null, {
autoFetch: false,
model: ExtensionModel,
url: ExtensionModel.prototype.urlRoot,
model: ExtensionTypeModel,
url: ExtensionTypeModel.prototype.urlRoot,
_type: 'extension'
});

Expand Down
23 changes: 16 additions & 7 deletions frontend/src/modules/editor/global/editorDataLoader.js
Expand Up @@ -9,15 +9,25 @@ define(function(require) {
var CourseAssetModel = require('core/models/courseAssetModel');
var CourseModel = require('core/models/courseModel');
var EditorCollection = require('../global/collections/editorCollection');
var ExtensionModel = require('core/models/extensionModel');
var ExtensionTypeModel = require('core/models/extensionTypeModel');
var MenuTypeModel = require('core/models/menuTypeModel');
var ThemeTypeModel = require('core/models/themeTypeModel');

var loadingGlobalData = false;
var loadingCourseData = false;

// used to check what's preloaded
var globalData = {
componenttypes: false,
extensiontypes: false
extensiontypes: false,
menutypes: false,
themetypes: false
};
var globalDataMap = {
componenttypes: ComponentTypeModel,
extensiontypes: ExtensionTypeModel,
menutypes: MenuTypeModel,
themetypes: ThemeTypeModel
};
// used to check what's loaded
var courseData = {
Expand All @@ -38,11 +48,10 @@ define(function(require) {
ensureEditorData();
resetLoadStatus(globalData);
// create the global collections
if(!Origin.editor.data.extensiontypes) {
Origin.editor.data.extensiontypes = createCollection(ExtensionModel);
}
if(!Origin.editor.data.componenttypes) {
Origin.editor.data.componenttypes = createCollection(ComponentTypeModel);
for (var collName in globalData) {
if (globalData.hasOwnProperty(collName) && !Origin.editor.data[collName]) {
Origin.editor.data[collName] = createCollection(globalDataMap[collName]);
}
}
// start preload
fetchEditorData(globalData, function() {
Expand Down
Expand Up @@ -62,7 +62,7 @@ define(function(require){
} else {
$('.form-container > form > div > fieldset').addClass('display-none');
_.each(this.filters, function(filter) {
$('.fieldset-' + Helpers.lowerCase(filter)).removeClass('display-none');
$('fieldset[data-key=' + filter + ']').removeClass('display-none');
});
}
},
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

11 changes: 0 additions & 11 deletions frontend/src/modules/pluginManagement/models/componentTypeModel.js

This file was deleted.

11 changes: 0 additions & 11 deletions frontend/src/modules/pluginManagement/models/extensionTypeModel.js

This file was deleted.

11 changes: 0 additions & 11 deletions frontend/src/modules/pluginManagement/models/themeTypeModel.js

This file was deleted.

41 changes: 17 additions & 24 deletions frontend/src/modules/pluginManagement/views/pluginManagementView.js
Expand Up @@ -3,50 +3,43 @@ define(function(require){
var Helpers = require('core/helpers');
var Origin = require('core/origin');
var OriginView = require('core/views/originView');

var PluginTypeView = require('./pluginTypeView');
var ExtensionTypeCollection = require('../collections/extensionTypeCollection');
var ThemeTypeCollection = require('../collections/themeTypeCollection');
var ComponentTypeCollection = require('../collections/componentTypeCollection');
var MenuTypeCollection = require('../collections/menuTypeCollection');

var PluginManagementView = OriginView.extend({
className: "pluginManagement",
tagName: "div",

pluginType: "plugin",
pluginCollections: {
'extension' : ExtensionTypeCollection,
'component' : ComponentTypeCollection,
'theme' : ThemeTypeCollection,
'menu': MenuTypeCollection
},

events: {
'click .refresh-all-plugins': 'refreshPluginList'
},

getColl: function() {
return this.pluginCollections[this.pluginType];
},

initialize: function(options) {
this.pluginType = options.pluginType;
return OriginView.prototype.initialize.apply(this, arguments);
},
this.pluginCollections = {
extension: Origin.editor.data.extensiontypes,
component: Origin.editor.data.componenttypes,
theme: Origin.editor.data.themetypes,
menu: Origin.editor.data.menutypes
};

initialiseCollection: function() {
this.collection = new (this.pluginCollections[this.pluginType])();
this.listenToOnce(this.collection, 'sync', this.renderPluginTypeViews);
this.collection.fetch();
return OriginView.prototype.initialize.apply(this, arguments);
},

preRender: function() {
Origin.trigger('location:title:update', { title: Origin.l10n.t('app.' + this.pluginType + 'management') });
this.initialiseCollection();
this.getColl().fetch({ success: this.renderPluginTypeViews.bind(this) });
},

renderPluginTypeViews: function(collection) {
renderPluginTypeViews: function() {
this.$('.pluginManagement-plugins').empty();

this.collection.each(this.renderPluginTypeView);
this.evaluatePluginTypeCount(this.collection);
this.getColl().each(this.renderPluginTypeView);
this.evaluatePluginTypeCount(this.getColl());

this.setViewToReady();
},
Expand All @@ -71,10 +64,10 @@ define(function(require){

$btn.attr('disabled', true);

this.collection.fetch({
this.getColl().fetch({
success: _.bind(function() {
Origin.trigger('scaffold:updateSchemas', function() {
this.renderPluginTypeViews(this.collection);
this.renderPluginTypeViews();
}, this);
}, this),
error: console.log
Expand Down

0 comments on commit 90b4226

Please sign in to comment.