| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- // Licensed to Cloudera, Inc. under one
- // or more contributor license agreements. See the NOTICE file
- // distributed with this work for additional information
- // regarding copyright ownership. Cloudera, Inc. licenses this file
- // to you under the Apache License, Version 2.0 (the
- // "License"); you may not use this file except in compliance
- // with the License. You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- var wizard = (function($) {
- var Wizard = koify.KOClass(function(options) {
- var self = this;
- var options = options || {};
- self.page_lookup = {};
- self.pages = ko.observableArray();
- self.index = ko.observable(0);
- self.page = ko.computed(function() {
- if (self.pages().length > 0 && self.index() < self.pages().length && self.index() >= 0) {
- return self.pages()[self.index()];
- } else {
- return null;
- }
- });
- self.hasNext = ko.computed(function() {
- var next_index = self.index() + 1;
- return self.pages().length > 0 && next_index < self.pages().length;
- });
- self.hasPrevious = ko.computed(function() {
- var previous_index = self.index() - 1;
- return self.pages().length > 0 && previous_index >= 0;
- });
- self.nextIndex = ko.computed(function() {
- if (self.hasNext()) {
- return self.index() + 1;
- } else {
- return -1;
- }
- });
- self.previousIndex = ko.computed(function() {
- if (self.hasPrevious()) {
- return self.index() - 1;
- } else {
- return -1;
- }
- });
- self.initialize(options);
- }, {
- initialize: function(options) {
- var self = this;
- self.options = options || {};
- if (self.options.pages) {
- self.pages(options.pages);
- }
- if (self.options.index) {
- self.index(self.options.index);
- }
- },
- addPage: function(page) {
- var self = this;
- self.page_lookup[page.identifier()] = self.pages().length;
- self.pages.push(page);
- },
- getIndex: function(identifier) {
- var self = this;
- return self.page_lookup[identifier];
- },
- clearPages: function() {
- var self = this;
- self.pages([]);
- self.index(0);
- }
- });
- var Page = koify.KOClass(function(options) {
- var self = this;
- var options = options || {};
- self.identifier = ko.observable();
- self.caption = ko.observable();
- self.description= ko.observable();
- self.template = ko.observable();
- self.node = ko.observable();
- self.initialize(options);
- }, {
- initialize: function(options) {
- var self = this;
- self.options = options || {};
- self.identifier(self.options.identifier);
- self.caption(self.options.caption);
- self.description(self.options.description);
- self.node(self.options.node);
- self.template(self.options.template);
- }
- });
- return {
- 'Wizard': Wizard,
- 'Page': Page
- };
- })($);
|