38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
define(["jquery", "underscore", "underscore.string", "js/views/feedback"], function($, _, str, SystemFeedbackView) {
|
|
var Alert = SystemFeedbackView.extend({
|
|
options: $.extend({}, SystemFeedbackView.prototype.options, {
|
|
type: "alert"
|
|
}),
|
|
slide_speed: 900,
|
|
show: function() {
|
|
SystemFeedbackView.prototype.show.apply(this, arguments);
|
|
this.$el.hide();
|
|
this.$el.slideDown(this.slide_speed);
|
|
return this;
|
|
},
|
|
hide: function () {
|
|
this.$el.slideUp({
|
|
duration: this.slide_speed
|
|
});
|
|
setTimeout(_.bind(SystemFeedbackView.prototype.hide, this, arguments),
|
|
this.slideSpeed);
|
|
}
|
|
});
|
|
|
|
// create Alert.Warning, Alert.Confirmation, etc
|
|
var capitalCamel, intents;
|
|
capitalCamel = _.compose(str.capitalize, str.camelize);
|
|
intents = ["warning", "error", "confirmation", "announcement", "step-required", "help", "mini"];
|
|
_.each(intents, function(intent) {
|
|
var subclass;
|
|
subclass = Alert.extend({
|
|
options: $.extend({}, Alert.prototype.options, {
|
|
intent: intent
|
|
})
|
|
});
|
|
Alert[capitalCamel(intent)] = subclass;
|
|
});
|
|
|
|
return Alert;
|
|
});
|