2
0

ui-page-module.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. YUI.add('ui-page-module', function (Y) {
  2. var MODULE = 'module',
  3. STRINGS = 'strings',
  4. CONTAINER = 'container';
  5. Y.namespace('UI.Pages').Module = Y.Base.create('modulePageUI', Y.View, [], {
  6. template: '<h3>{{module_name}}: <i>{{name}}</i></h3><div><textarea id="code">{{text}}</textarea></div>',
  7. render: function () {
  8. var editor = new Y.UI.Code.Editor(),
  9. module = this.get(MODULE),
  10. strings = this.get(STRINGS),
  11. content = Y.Handlebars.compile(this.template);
  12. container = this.get(CONTAINER);
  13. container.setHTML(content({
  14. module_name: strings.module.name,
  15. name: module.getName(),
  16. text: module.getText()
  17. }));
  18. editor.render(container.one('textarea'));
  19. return this;
  20. }
  21. }, {
  22. ATTRS: {
  23. module: {
  24. value: null,
  25. validator: function (mod) {
  26. return mod instanceof Y.SE.Models.Module;
  27. }
  28. },
  29. strings: {
  30. value: {
  31. module: { name: 'Имя модуля' }
  32. }
  33. }
  34. }
  35. });
  36. }, '1.0', {
  37. requires: [
  38. 'view',
  39. 'handlebars',
  40. 'se-model-module',
  41. 'ui-code-editor'
  42. ]
  43. });