update: function()

in assets/app/views/editor/edit-main.js [43:103]


  update: function () {
    var model = this.model,
        config = model.configFiles || {},
        childView, pages;

    model.set('isDraft', _.contains(
      this.model.get('drafts'),
      this.model.get('file'))
    );

    if (model.get('isDraft')) {
      var draftBranch = '_draft-' + encodeB64(model.file);
      var url = [
        '#edit', model.owner, model.name, draftBranch, model.file
      ].join('/');

      if (url !== '#' + Backbone.history.getFragment()) return federalist.navigate([
        '#edit', model.owner, model.name, draftBranch, model.file
      ].join('/'), { trigger: true });
    }

    var html = template({
      owner: model.get('owner'),
      repo: model.get('repoName'),
      draft: model.get('isDraft'),
      file: model.get('file'),
      branch: model.get('branch')
    });

    this.$el.html(html);
    this.pageSwitcher = this.pageSwitcher || new ViewSwitcher(this.$('#edit-content')[0]);
    this.breadcrumb = new BreadcrumbView({
      $el: this.$('ol.breadcrumb'),
      model: this.model
    }).render();



    this.$('#edit-button').empty();

    if (model.get('type') === 'file') {
      var saveButton = $('<a class="btn btn-primary pull-right" id="save-page" href="#" role="button">Save this page</a>');
      this.$('#edit-button').append(saveButton);
      childView = new EditorView({ model: model });
    }
    else {
      var editButton = $('<a class="btn btn-primary pull-right" id="add-page" href="#" role="button">Add a new page</a>');
      this.$('#edit-button').append(editButton);
      if (config['_navigation.json'] && config['_navigation.json'].present) {
        pages = config['_navigation.json'].json;
        childView = new PagesView({ model: model, pages: pages });
      }
      else {
        childView = new FileListView({ model: model });
      }
    }

    this.pageSwitcher.set(childView);

    return this;
  },