From f415e682661c4d81be15628c654c6862defc6704 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 6 Nov 2010 16:56:27 +0100 Subject: [PATCH] readd sonia.config.js and sonia.plugins --- scm-webapp/src/main/webapp/index.html | 2 + .../main/webapp/resources/js/sonia.config.js | 142 ++++++++++++++++++ .../src/main/webapp/resources/js/sonia.scm.js | 4 +- 3 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 scm-webapp/src/main/webapp/resources/js/sonia.config.js diff --git a/scm-webapp/src/main/webapp/index.html b/scm-webapp/src/main/webapp/index.html index 6fcc131a77..aa6ef78fe1 100644 --- a/scm-webapp/src/main/webapp/index.html +++ b/scm-webapp/src/main/webapp/index.html @@ -53,7 +53,9 @@ + + SCM-WebAPP diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.config.js b/scm-webapp/src/main/webapp/resources/js/sonia.config.js new file mode 100644 index 0000000000..f22d2548eb --- /dev/null +++ b/scm-webapp/src/main/webapp/resources/js/sonia.config.js @@ -0,0 +1,142 @@ +/* * + * Copyright (c) 2010, Sebastian Sdorra + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of SCM-Manager; nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + +// config form panels +var repositoryConfigPanels = []; + +function registerConfigPanel(panel){ + repositoryConfigPanels.push( panel ); +} + + +Ext.ns("Sonia.config"); + +Sonia.config.ConfigPanel = Ext.extend(Ext.Panel, { + + initComponent: function(){ + + var config = { + region: 'center', + bodyCssClass: 'x-panel-mc', + trackResetOnLoad: true, + autoScroll: true, + border: false, + frame: false, + collapsible: false, + collapsed: false, + items: repositoryConfigPanels + } + + Ext.apply(this, Ext.apply(this.initialConfig, config)); + Sonia.config.ConfigPanel.superclass.initComponent.apply(this, arguments); + } + +}); + +Ext.reg("configPanel", Sonia.config.ConfigPanel); + +Sonia.config.ConfigForm = Ext.extend(Ext.form.FormPanel, { + + title: 'Config Form', + items: null, + onSubmit: null, + getValues: null, + + initComponent: function(){ + + var config = { + title: null, + style: 'margin: 10px', + trackResetOnLoad : true, + autoScroll : true, + border : false, + frame : false, + collapsible : false, + collapsed : false, + layoutConfig : { + labelSeparator : '' + }, + items : [{ + xtype : 'fieldset', + checkboxToggle : false, + title : this.title, + collapsible : true, + autoHeight : true, + labelWidth : 140, + buttonAlign: 'left', + layoutConfig : { + labelSeparator : '' + }, + listeners: { + render: function(){ + if ( this.onLoad != null && Ext.isFunction( this.onLoad ) ){ + this.onLoad(this.el); + } + }, + scope: this + }, + items: this.items, + buttons: [{ + text: 'Save', + scope: this, + formBind: true, + handler: this.submitForm + },{ + text: 'Reset', + scope: this, + handler: function(){ + this.getForm().reset(); + } + }] + }] + }; + + Ext.apply(this, Ext.apply(this.initialConfig, config)); + Sonia.config.ConfigForm.superclass.initComponent.apply(this, arguments); + }, + + load: function(values){ + this.getForm().loadRecord({ + success: true, + data: values + }); + }, + + submitForm: function(){ + var form = this.getForm(); + if ( this.onSubmit != null && Ext.isFunction( this.onSubmit ) ){ + this.onSubmit( form.getValues() ); + } + } + +}); + +Ext.reg("configForm", Sonia.config.ConfigForm); diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.scm.js b/scm-webapp/src/main/webapp/resources/js/sonia.scm.js index 81465c3c89..22e6ada62f 100644 --- a/scm-webapp/src/main/webapp/resources/js/sonia.scm.js +++ b/scm-webapp/src/main/webapp/resources/js/sonia.scm.js @@ -124,7 +124,9 @@ Ext.onReady(function(){ fn: function(){console.debug( 'General Config' );} },{ label: 'Repository Types', - fn: function(){console.debug( 'RepositoryType Config' );} + fn: function(){ + addTabPanel('repositoryConfig', 'configPanel', 'Repository Config'); + } },{ label: 'Server', fn: function(){console.debug( 'Server Config' );}