mirror of
https://github.com/ExactTarget/fuelux.git
synced 2026-01-14 08:57:54 -05:00
62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
define(function Component(require) {
|
|
var $ = require('jquery');
|
|
var _ = require('underscore');
|
|
var Backbone = require('backbone');
|
|
var PubSub = require('helper/pubsub');
|
|
var _PopoverMain = require('text!templates/popover/popover-main.html');
|
|
var _PopoverInput = require('text!templates/popover/popover-input.html');
|
|
var _PopoverNumber = require('text!templates/popover/popover-number.html');
|
|
var _PopoverSelect = require('text!templates/popover/popover-select.html');
|
|
var _PopoverTextArea = require('text!templates/popover/popover-textarea.html');
|
|
var _PopoverTextAreaSplit = require('text!templates/popover/popover-textarea-split.html');
|
|
var _PopoverCheckbox = require('text!templates/popover/popover-checkbox.html');
|
|
var _componentTemplates = require('templates/component/component-templates');
|
|
require('bootstrap');
|
|
require('fuelux');
|
|
|
|
var myForm = require('models/my-form');
|
|
|
|
return Backbone.View.extend({
|
|
tagName: 'div',
|
|
className: 'component',
|
|
initialize: function initialize() {
|
|
var componentId = this.model.idFriendlyTitle();
|
|
console.log('componentId', componentId);
|
|
this.template = _.template(_componentTemplates[componentId]);
|
|
this.popoverTemplates = {
|
|
'input': _.template(_PopoverInput),
|
|
'number': _.template(_PopoverNumber),
|
|
'select': _.template(_PopoverSelect),
|
|
'textarea': _.template(_PopoverTextArea),
|
|
'textarea-split': _.template(_PopoverTextAreaSplit),
|
|
'checkbox': _.template(_PopoverCheckbox)
|
|
};
|
|
PubSub.on('horizontalToggle', this.handleHorizontalToggle, this);
|
|
},
|
|
handleHorizontalToggle: function handleHorizontalToggle() {
|
|
myForm.refreshHorizontalSetting();
|
|
this.render();
|
|
},
|
|
render: function render(withAttributes) {
|
|
var that = this;
|
|
var content = _.template(_PopoverMain)({
|
|
'title': that.model.get('title'),
|
|
'items': that.model.get('fields'),
|
|
'popoverTemplates': that.popoverTemplates
|
|
});
|
|
|
|
var theHTML = that.template(_.extend({}, {horizontal: myForm.get('horizontal')}, that.model.getValues()));
|
|
if (withAttributes) {
|
|
return this.$el.html(theHTML).attr({
|
|
'data-content': content,
|
|
'data-title': that.model.get('title'),
|
|
'data-trigger': 'manual',
|
|
'data-html': true
|
|
});
|
|
} else {
|
|
return this.$el.html(theHTML);
|
|
}
|
|
}
|
|
});
|
|
});
|