define(['plugins/dialog', 'knockout', 'knockout.validation'], function (dialog, ko, ko_validation) { ko.validation = ko_validation; var NewItemModal = function() { var self = this; self.input = ko.observable('').extend({ required: true, pattern: { message : 'The name must not contain a \'/\'', params : '^[^/]+$' } }); self.typeItem = ko.observable('file'); self.form = ko.validatedObservable( {input: self.input} ); self.isValid = ko.computed(function() { return self.form.isValid(); }); }; NewItemModal.prototype.ok = function() { dialog.close(this, { name: this.input(), type: this.typeItem()}); }; NewItemModal.prototype.close = function() { dialog.close(this); }; NewItemModal.show = function(defaultValue){ return dialog.show(new NewItemModal(defaultValue)); }; return NewItemModal; });