Commit db037ae6b4334e7c66ae23ffac68fb1a56b4ec12
1 parent
2a60008b
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Refactoring serpro_integration plugin
Showing
7 changed files
with
188 additions
and
200 deletions
Show diff stats
plugins/serpro_integration/Gemfile
plugins/serpro_integration/lib/ext/community.rb
| 1 | require_dependency 'community' | 1 | require_dependency 'community' |
| 2 | -require 'gitlab' | ||
| 3 | -#require 'jenkins_api_client' | ||
| 4 | 2 | ||
| 5 | class Community | 3 | class Community |
| 6 | 4 | ||
| @@ -13,11 +11,16 @@ class Community | @@ -13,11 +11,16 @@ class Community | ||
| 13 | 11 | ||
| 14 | attr_accessible :allow_unauthenticated_comments, :allow_gitlab_integration, :gitlab, :allow_sonar_integration, :sonar, :allow_jenkins_integration, :jenkins | 12 | attr_accessible :allow_unauthenticated_comments, :allow_gitlab_integration, :gitlab, :allow_sonar_integration, :sonar, :allow_jenkins_integration, :jenkins |
| 15 | 13 | ||
| 16 | - ########################################## | ||
| 17 | - # Gitlab stuff # | ||
| 18 | - ########################################## | 14 | + after_update :create_integration_projects |
| 19 | 15 | ||
| 20 | - #after_create :create_gitlab_project | 16 | + def create_integration_projects |
| 17 | + gitlab_project = SerproIntegrationPlugin::GitlabIntegration.create_gitlab_project(self) | ||
| 18 | + SerproIntegrationPlugin::JenkinsIntegration.create_jenkis_project(self, jenkins_project_name, gitlab_project.path_with_namespace, gitlab_project.web_url, gitlab_project.http_url_to_repo) | ||
| 19 | + end | ||
| 20 | + | ||
| 21 | + def serpro_integration_plugin_settings | ||
| 22 | + @settings ||= Noosfero::Plugin::Settings.new(environment, SerproIntegrationPlugin) | ||
| 23 | + end | ||
| 21 | 24 | ||
| 22 | def gitlab= params | 25 | def gitlab= params |
| 23 | self.serpro_integration_plugin[:gitlab] = params | 26 | self.serpro_integration_plugin[:gitlab] = params |
| @@ -27,202 +30,36 @@ class Community | @@ -27,202 +30,36 @@ class Community | ||
| 27 | self.serpro_integration_plugin[:gitlab] ||= {} | 30 | self.serpro_integration_plugin[:gitlab] ||= {} |
| 28 | end | 31 | end |
| 29 | 32 | ||
| 30 | - def serpro_integration_plugin_settings | ||
| 31 | - @settings ||= Noosfero::Plugin::Settings.new(environment, SerproIntegrationPlugin) | ||
| 32 | - end | ||
| 33 | - | ||
| 34 | - def create_gitlab_project | ||
| 35 | - Gitlab.endpoint = gitlab_host | ||
| 36 | - Gitlab.private_token = serpro_integration_plugin_settings.gitlab[:private_token] | ||
| 37 | - | ||
| 38 | - #Find user by email | ||
| 39 | - begin | ||
| 40 | - gitlab_user = Gitlab.users(:search => gitlab[:email]) | ||
| 41 | - rescue Gitlab::Error::NotFound, Gitlab::Error::Parsing | ||
| 42 | - gitlab_user = nil | ||
| 43 | - end | ||
| 44 | - | ||
| 45 | - #User not found, create user | ||
| 46 | - if gitlab_user == nil || gitlab_user.count == 0 | ||
| 47 | - gitlab_user = Gitlab.create_user(user.email, '123456', {:username => user.identifier, :name => user.name, :provider => 'ldap'}) | ||
| 48 | - end | ||
| 49 | - | ||
| 50 | - if gitlab_user.nil? | ||
| 51 | - self.gitlab[:errors] = _('Gitlab user could not be created') | ||
| 52 | - return nil | ||
| 53 | - end | ||
| 54 | - | ||
| 55 | - #Create project for user | ||
| 56 | - begin | ||
| 57 | - #FIXME Why this? | ||
| 58 | - if gitlab_user.is_a?(Array) | ||
| 59 | - gitlab_user = gitlab_user[0] | ||
| 60 | - end | ||
| 61 | - | ||
| 62 | - project_options = {} | ||
| 63 | - project_options[:user_id] = gitlab_user.id | ||
| 64 | - project_options[:issues_enabled ] = true | ||
| 65 | - project_options[:wall_enabled] = true | ||
| 66 | - project_options[:wiki_enabled] = true | ||
| 67 | - project_options[:public] = true | ||
| 68 | - project = Gitlab.create_project(gitlab_project_name, project_options) | ||
| 69 | - | ||
| 70 | - #Create Web Hook for Jenkins' integration | ||
| 71 | -# Gitlab.add_project_hook(project.id, "#{self.jenkins[:url]}/gitlab/build_now") | ||
| 72 | -# createJenkinsJob(project.name, project.path_with_namespace, project.web_url, project.http_url_to_repo) | ||
| 73 | - | ||
| 74 | - rescue Gitlab::Error::NotFound, Gitlab::Error::Parsing | ||
| 75 | - #Project already exists | ||
| 76 | - end | ||
| 77 | - | ||
| 78 | - self.gitlab[:errors] = nil | ||
| 79 | - end | ||
| 80 | - | ||
| 81 | def gitlab_project_name | 33 | def gitlab_project_name |
| 82 | gitlab[:project_name] || self.identifier | 34 | gitlab[:project_name] || self.identifier |
| 83 | end | 35 | end |
| 84 | 36 | ||
| 85 | - # set an API endpoint | ||
| 86 | def gitlab_host | 37 | def gitlab_host |
| 87 | serpro_integration_plugin_settings.gitlab[:host] | 38 | serpro_integration_plugin_settings.gitlab[:host] |
| 88 | end | 39 | end |
| 89 | 40 | ||
| 90 | - # set a user private token | ||
| 91 | def gitlab_private_token | 41 | def gitlab_private_token |
| 92 | serpro_integration_plugin_settings.gitlab[:private_token] | 42 | serpro_integration_plugin_settings.gitlab[:private_token] |
| 93 | end | 43 | end |
| 94 | 44 | ||
| 95 | - ########################################## | ||
| 96 | - # Sonar stuff # | ||
| 97 | - ########################################## | ||
| 98 | - | ||
| 99 | -# after_create :create_sonar_project | ||
| 100 | - | ||
| 101 | def sonar= params | 45 | def sonar= params |
| 102 | self.serpro_integration_plugin[:sonar] = params | 46 | self.serpro_integration_plugin[:sonar] = params |
| 103 | end | 47 | end |
| 104 | 48 | ||
| 105 | def sonar | 49 | def sonar |
| 106 | self.serpro_integration_plugin[:sonar] ||= {} | 50 | self.serpro_integration_plugin[:sonar] ||= {} |
| 107 | - self.serpro_integration_plugin[:sonar] | ||
| 108 | end | 51 | end |
| 109 | 52 | ||
| 110 | - ########################################## | ||
| 111 | - # Jenkins stuff # | ||
| 112 | - ########################################## | ||
| 113 | - | ||
| 114 | -# after_create :create_jenkis_project | ||
| 115 | - | ||
| 116 | def jenkins= params | 53 | def jenkins= params |
| 117 | self.serpro_integration_plugin[:jenkins] = params | 54 | self.serpro_integration_plugin[:jenkins] = params |
| 118 | end | 55 | end |
| 119 | 56 | ||
| 120 | def jenkins | 57 | def jenkins |
| 121 | self.serpro_integration_plugin[:jenkins] ||= {} | 58 | self.serpro_integration_plugin[:jenkins] ||= {} |
| 122 | - url = "#{self.serpro_integration_plugin[:jenkins][:host]}:" | ||
| 123 | - url += "#{self.serpro_integration_plugin[:jenkins][:port]}/" | ||
| 124 | - url += "#{self.serpro_integration_plugin[:jenkins][:context_name]}" | ||
| 125 | - self.serpro_integration_plugin[:jenkins][:url] = url | ||
| 126 | - self.serpro_integration_plugin[:jenkins] | ||
| 127 | end | 59 | end |
| 128 | 60 | ||
| 129 | - | ||
| 130 | - #FIXME make jenkins integration works | ||
| 131 | - def create_jenkis_project | ||
| 132 | -#(projectName, repositoryPath, webUrl, gitUrl) | ||
| 133 | - | ||
| 134 | - @client = JenkinsApi::Client.new(:server_url => "#{$jenkins_url}/", | ||
| 135 | - :password => $jenkins_private_token, | ||
| 136 | - :username => $jenkins_user) | ||
| 137 | - | ||
| 138 | - xmlJenkins = "" | ||
| 139 | - | ||
| 140 | -# xmlJenkins = " | ||
| 141 | -# <maven2-moduleset plugin='maven-plugin@1.509'> | ||
| 142 | -# <actions/> | ||
| 143 | -# <description>Projeto criado para o repositório #{repositoryPath} do Gitlab - #{webUrl}</description> | ||
| 144 | -# <logRotator class='hudson.tasks.LogRotator'> | ||
| 145 | -# <daysToKeep>-1</daysToKeep> | ||
| 146 | -# <numToKeep>2</numToKeep> | ||
| 147 | -# <artifactDaysToKeep>-1</artifactDaysToKeep> | ||
| 148 | -# <artifactNumToKeep>-1</artifactNumToKeep> | ||
| 149 | -# </logRotator> | ||
| 150 | -# <keepDependencies>false</keepDependencies> | ||
| 151 | -# <properties/> | ||
| 152 | -# <scm class='hudson.plugins.git.GitSCM' plugin='git@2.2.1'> | ||
| 153 | -# <configVersion>2</configVersion> | ||
| 154 | -# <userRemoteConfigs> | ||
| 155 | -# <hudson.plugins.git.UserRemoteConfig> | ||
| 156 | -# <url>#{gitUrl}</url> | ||
| 157 | -# </hudson.plugins.git.UserRemoteConfig> | ||
| 158 | -# </userRemoteConfigs> | ||
| 159 | -# <branches> | ||
| 160 | -# <hudson.plugins.git.BranchSpec> | ||
| 161 | -# <name>*/master</name> | ||
| 162 | -# </hudson.plugins.git.BranchSpec> | ||
| 163 | -# </branches> | ||
| 164 | -# <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> | ||
| 165 | -# <submoduleCfg class='list'/> | ||
| 166 | -# <extensions/> | ||
| 167 | -# </scm> | ||
| 168 | -# <canRoam>true</canRoam> | ||
| 169 | -# <disabled>false</disabled> | ||
| 170 | -# <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> | ||
| 171 | -# <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> | ||
| 172 | -# <jdk>(Inherit From Job)</jdk> | ||
| 173 | -# <triggers class='vector'/> | ||
| 174 | -# <concurrentBuild>false</concurrentBuild> | ||
| 175 | -# <goals>clean package install deploy</goals> | ||
| 176 | -# <aggregatorStyleBuild>true</aggregatorStyleBuild> | ||
| 177 | -# <incrementalBuild>false</incrementalBuild> | ||
| 178 | -# <perModuleEmail>true</perModuleEmail> | ||
| 179 | -# <ignoreUpstremChanges>false</ignoreUpstremChanges> | ||
| 180 | -# <archivingDisabled>false</archivingDisabled> | ||
| 181 | -# <resolveDependencies>false</resolveDependencies> | ||
| 182 | -# <processPlugins>false</processPlugins> | ||
| 183 | -# <mavenValidationLevel>-1</mavenValidationLevel> | ||
| 184 | -# <runHeadless>false</runHeadless> | ||
| 185 | -# <disableTriggerDownstreamProjects>false</disableTriggerDownstreamProjects> | ||
| 186 | -# <settings class='jenkins.mvn.DefaultSettingsProvider'/> | ||
| 187 | -# <globalSettings class='jenkins.mvn.DefaultGlobalSettingsProvider'/> | ||
| 188 | -# <reporters> | ||
| 189 | -# <hudson.maven.reporters.MavenMailer> | ||
| 190 | -# <recipients/> | ||
| 191 | -# <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild> | ||
| 192 | -# <sendToIndividuals>true</sendToIndividuals> | ||
| 193 | -# <perModuleEmail>true</perModuleEmail> | ||
| 194 | -# </hudson.maven.reporters.MavenMailer> | ||
| 195 | -# </reporters> | ||
| 196 | -# <publishers> | ||
| 197 | -# <hudson.plugins.sonar.SonarPublisher plugin='sonar@2.1'> | ||
| 198 | -# <jdk>(Inherit From Job)</jdk> | ||
| 199 | -# <branch/> | ||
| 200 | -# <language/> | ||
| 201 | -# <mavenOpts/> | ||
| 202 | -# <jobAdditionalProperties/> | ||
| 203 | -# <settings class='jenkins.mvn.DefaultSettingsProvider'/> | ||
| 204 | -# <globalSettings class='jenkins.mvn.DefaultGlobalSettingsProvider'/> | ||
| 205 | -# <usePrivateRepository>false</usePrivateRepository> | ||
| 206 | -# </hudson.plugins.sonar.SonarPublisher> | ||
| 207 | -# </publishers> | ||
| 208 | -# <buildWrappers/> | ||
| 209 | -# <prebuilders/> | ||
| 210 | -# <postbuilders/> | ||
| 211 | -# <runPostStepsIfResult> | ||
| 212 | -# <name>FAILURE</name> | ||
| 213 | -# <ordinal>2</ordinal> | ||
| 214 | -# <color>RED</color> | ||
| 215 | -# </runPostStepsIfResult> | ||
| 216 | -# </maven2-moduleset> | ||
| 217 | -# " | ||
| 218 | - | ||
| 219 | - begin | ||
| 220 | - @client.job.create(projectName, xmlJenkins) | ||
| 221 | - rescue JenkinsApi::Exceptions::ApiException | ||
| 222 | - | ||
| 223 | - end | ||
| 224 | - | 61 | + def jenkins_project_name |
| 62 | + jenkins[:project_name] || self.identifier | ||
| 225 | end | 63 | end |
| 226 | 64 | ||
| 227 | - | ||
| 228 | end | 65 | end |
plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb
0 → 100644
| @@ -0,0 +1,54 @@ | @@ -0,0 +1,54 @@ | ||
| 1 | +require 'gitlab' | ||
| 2 | + | ||
| 3 | +class SerproIntegrationPlugin::GitlabIntegration | ||
| 4 | + | ||
| 5 | + def self.create_gitlab_project(profile) | ||
| 6 | + Gitlab.endpoint = profile.gitlab_host | ||
| 7 | + Gitlab.private_token = profile.serpro_integration_plugin_settings.gitlab[:private_token] | ||
| 8 | + | ||
| 9 | + #Find user by email | ||
| 10 | + begin | ||
| 11 | + gitlab_user = Gitlab.users(:search => profile.gitlab[:email]) | ||
| 12 | + rescue Gitlab::Error::NotFound, Gitlab::Error::Parsing | ||
| 13 | + gitlab_user = nil | ||
| 14 | + end | ||
| 15 | + | ||
| 16 | + #User not found, create user | ||
| 17 | + #FIXME | ||
| 18 | + if gitlab_user == nil || gitlab_user.count == 0 | ||
| 19 | + gitlab_user = Gitlab.create_user(user.email, '123456', {:username => user.identifier, :name => user.name, :provider => 'ldap'}) | ||
| 20 | + end | ||
| 21 | + | ||
| 22 | + if gitlab_user.nil? | ||
| 23 | + profile.gitlab[:errors] = _('Gitlab user could not be created') | ||
| 24 | + return nil | ||
| 25 | + end | ||
| 26 | + | ||
| 27 | + #Create project for user | ||
| 28 | + begin | ||
| 29 | + #FIXME Why this? | ||
| 30 | + if gitlab_user.is_a?(Array) | ||
| 31 | + gitlab_user = gitlab_user[0] | ||
| 32 | + end | ||
| 33 | + | ||
| 34 | + project_options = {} | ||
| 35 | + project_options[:user_id] = gitlab_user.id | ||
| 36 | + project_options[:issues_enabled ] = true | ||
| 37 | + project_options[:wall_enabled] = true | ||
| 38 | + project_options[:wiki_enabled] = true | ||
| 39 | + project_options[:public] = true | ||
| 40 | + project = Gitlab.create_project(profile.gitlab_project_name, project_options) | ||
| 41 | + | ||
| 42 | + #Create Web Hook for Jenkins' integration | ||
| 43 | +# Gitlab.add_project_hook(project.id, "#{self.jenkins[:url]}/gitlab/build_now") | ||
| 44 | +# createJenkinsJob(project.name, project.path_with_namespace, project.web_url, project.http_url_to_repo) | ||
| 45 | + | ||
| 46 | + rescue Gitlab::Error::NotFound, Gitlab::Error::Parsing | ||
| 47 | + #Project already exists | ||
| 48 | + end | ||
| 49 | + profile.gitlab[:errors] = nil | ||
| 50 | + project | ||
| 51 | + end | ||
| 52 | + | ||
| 53 | + | ||
| 54 | +end |
plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb
0 → 100644
| @@ -0,0 +1,101 @@ | @@ -0,0 +1,101 @@ | ||
| 1 | +# encoding: UTF-8 | ||
| 2 | +require 'jenkins_api_client' | ||
| 3 | + | ||
| 4 | +class SerproIntegrationPlugin::JenkinsIntegration | ||
| 5 | + #FIXME make jenkins integration works | ||
| 6 | + def self.create_jenkis_project(profile, projectName, repositoryPath, webUrl, gitUrl) | ||
| 7 | + | ||
| 8 | + @client = JenkinsApi::Client.new(:server_url => profile.serpro_integration_plugin_settings.jenkins[:host], | ||
| 9 | + :password => profile.serpro_integration_plugin_settings.jenkins[:private_token], | ||
| 10 | + :username => profile.serpro_integration_plugin_settings.jenkins[:user]) | ||
| 11 | + | ||
| 12 | + #begin | ||
| 13 | + @client.job.create(projectName, xml_jenkins(repositoryPath, webUrl, gitUrl)) | ||
| 14 | + #rescue JenkinsApi::Exceptions::ApiException | ||
| 15 | + | ||
| 16 | + #end | ||
| 17 | + | ||
| 18 | + end | ||
| 19 | + | ||
| 20 | + #FIXME | ||
| 21 | + def self.xml_jenkins(repositoryPath, webUrl, gitUrl) | ||
| 22 | + " | ||
| 23 | + <maven2-moduleset plugin='maven-plugin@1.509'> | ||
| 24 | + <actions/> | ||
| 25 | + <description>Projeto criado para o repositório #{repositoryPath} do Gitlab - #{webUrl}</description> | ||
| 26 | + <logRotator class='hudson.tasks.LogRotator'> | ||
| 27 | + <daysToKeep>-1</daysToKeep> | ||
| 28 | + <numToKeep>2</numToKeep> | ||
| 29 | + <artifactDaysToKeep>-1</artifactDaysToKeep> | ||
| 30 | + <artifactNumToKeep>-1</artifactNumToKeep> | ||
| 31 | + </logRotator> | ||
| 32 | + <keepDependencies>false</keepDependencies> | ||
| 33 | + <properties/> | ||
| 34 | + <scm class='hudson.plugins.git.GitSCM' plugin='git@2.2.1'> | ||
| 35 | + <configVersion>2</configVersion> | ||
| 36 | + <userRemoteConfigs> | ||
| 37 | + <hudson.plugins.git.UserRemoteConfig> | ||
| 38 | + <url>#{gitUrl}</url> | ||
| 39 | + </hudson.plugins.git.UserRemoteConfig> | ||
| 40 | + </userRemoteConfigs> | ||
| 41 | + <branches> | ||
| 42 | + <hudson.plugins.git.BranchSpec> | ||
| 43 | + <name>*/master</name> | ||
| 44 | + </hudson.plugins.git.BranchSpec> | ||
| 45 | + </branches> | ||
| 46 | + <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> | ||
| 47 | + <submoduleCfg class='list'/> | ||
| 48 | + <extensions/> | ||
| 49 | + </scm> | ||
| 50 | + <canRoam>true</canRoam> | ||
| 51 | + <disabled>false</disabled> | ||
| 52 | + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> | ||
| 53 | + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> | ||
| 54 | + <jdk>(Inherit From Job)</jdk> | ||
| 55 | + <triggers class='vector'/> | ||
| 56 | + <concurrentBuild>false</concurrentBuild> | ||
| 57 | + <goals>clean package install deploy</goals> | ||
| 58 | + <aggregatorStyleBuild>true</aggregatorStyleBuild> | ||
| 59 | + <incrementalBuild>false</incrementalBuild> | ||
| 60 | + <perModuleEmail>true</perModuleEmail> | ||
| 61 | + <ignoreUpstremChanges>false</ignoreUpstremChanges> | ||
| 62 | + <archivingDisabled>false</archivingDisabled> | ||
| 63 | + <resolveDependencies>false</resolveDependencies> | ||
| 64 | + <processPlugins>false</processPlugins> | ||
| 65 | + <mavenValidationLevel>-1</mavenValidationLevel> | ||
| 66 | + <runHeadless>false</runHeadless> | ||
| 67 | + <disableTriggerDownstreamProjects>false</disableTriggerDownstreamProjects> | ||
| 68 | + <settings class='jenkins.mvn.DefaultSettingsProvider'/> | ||
| 69 | + <globalSettings class='jenkins.mvn.DefaultGlobalSettingsProvider'/> | ||
| 70 | + <reporters> | ||
| 71 | + <hudson.maven.reporters.MavenMailer> | ||
| 72 | + <recipients/> | ||
| 73 | + <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild> | ||
| 74 | + <sendToIndividuals>true</sendToIndividuals> | ||
| 75 | + <perModuleEmail>true</perModuleEmail> | ||
| 76 | + </hudson.maven.reporters.MavenMailer> | ||
| 77 | + </reporters> | ||
| 78 | + <publishers> | ||
| 79 | + <hudson.plugins.sonar.SonarPublisher plugin='sonar@2.1'> | ||
| 80 | + <jdk>(Inherit From Job)</jdk> | ||
| 81 | + <branch/> | ||
| 82 | + <language/> | ||
| 83 | + <mavenOpts/> | ||
| 84 | + <jobAdditionalProperties/> | ||
| 85 | + <settings class='jenkins.mvn.DefaultSettingsProvider'/> | ||
| 86 | + <globalSettings class='jenkins.mvn.DefaultGlobalSettingsProvider'/> | ||
| 87 | + <usePrivateRepository>false</usePrivateRepository> | ||
| 88 | + </hudson.plugins.sonar.SonarPublisher> | ||
| 89 | + </publishers> | ||
| 90 | + <buildWrappers/> | ||
| 91 | + <prebuilders/> | ||
| 92 | + <postbuilders/> | ||
| 93 | + <runPostStepsIfResult> | ||
| 94 | + <name>FAILURE</name> | ||
| 95 | + <ordinal>2</ordinal> | ||
| 96 | + <color>RED</color> | ||
| 97 | + </runPostStepsIfResult> | ||
| 98 | + </maven2-moduleset> | ||
| 99 | + " | ||
| 100 | + end | ||
| 101 | +end |
plugins/serpro_integration/views/profile-editor-extras.html.erb
| @@ -20,6 +20,7 @@ jQuery( document ).ready(function( $ ) { | @@ -20,6 +20,7 @@ jQuery( document ).ready(function( $ ) { | ||
| 20 | <h2><%= _('Serpro Integration') %></h2> | 20 | <h2><%= _('Serpro Integration') %></h2> |
| 21 | 21 | ||
| 22 | <%= render :partial => 'gitlab' %> | 22 | <%= render :partial => 'gitlab' %> |
| 23 | + <%= render :partial => 'jenkins' %> | ||
| 23 | 24 | ||
| 24 | <div id="sonar"> | 25 | <div id="sonar"> |
| 25 | <h3> | 26 | <h3> |
| @@ -36,30 +37,4 @@ jQuery( document ).ready(function( $ ) { | @@ -36,30 +37,4 @@ jQuery( document ).ready(function( $ ) { | ||
| 36 | </ul> | 37 | </ul> |
| 37 | </div> | 38 | </div> |
| 38 | 39 | ||
| 39 | - <div id="jenkins"> | ||
| 40 | - <h3> | ||
| 41 | - <%= labelled_check_box('', 'profile_data[allow_jenkins_integration]', true, profile.allow_jenkins_integration, {:class => "toggle_checkbox", 'data-selector' => 'ul.jenkins'}) %> | ||
| 42 | - <%= _('Jenkins Integration') %> | ||
| 43 | - </h3> | ||
| 44 | - <ul class='jenkins'> | ||
| 45 | - <li> | ||
| 46 | - <%= labelled_text_field(_('Server Host'), 'profile_data[jenkins][host]', profile.jenkins[:host]) %> | ||
| 47 | - </li> | ||
| 48 | - <li> | ||
| 49 | - <%= labelled_text_field(_('Server Port'), 'profile_data[jenkins][port]', profile.jenkins[:port]) %> | ||
| 50 | - </li> | ||
| 51 | - <li> | ||
| 52 | - <%= labelled_text_field(_('Server Context Name'), 'profile_data[jenkins][context_name]', profile.jenkins[:context_name]) %> | ||
| 53 | - </li> | ||
| 54 | - <li> | ||
| 55 | - <%= labelled_text_field(_('Server User'), 'profile_data[jenkins][user]', profile.jenkins[:user]) %> | ||
| 56 | - </li> | ||
| 57 | - <li> | ||
| 58 | - <%= labelled_text_field(_('Server Private Token'), 'profile_data[jenkins][private_token]', profile.jenkins[:private_token]) %> | ||
| 59 | - </li> | ||
| 60 | - <li> | ||
| 61 | - <%= labelled_text_field(_('Server Url'), 'profile_data[jenkins][url]', profile.jenkins[:url], {:disabled => true}) %> | ||
| 62 | - </li> | ||
| 63 | - </ul> | ||
| 64 | - </div> | ||
| 65 | </div> | 40 | </div> |
plugins/serpro_integration/views/profile_editor/_jenkins.html.erb
0 → 100644
| @@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
| 1 | +<div id="jenkins"> | ||
| 2 | +<h3> | ||
| 3 | + <%= labelled_check_box('', 'profile_data[allow_jenkins_integration]', true, profile.allow_jenkins_integration, {:class => "toggle_checkbox", 'data-selector' => 'ul.jenkins'}) %> | ||
| 4 | + <%= _('Jenkins Integration') %> | ||
| 5 | +</h3> | ||
| 6 | +<ul class='jenkins'> | ||
| 7 | + <li> | ||
| 8 | + <%= labelled_text_field(_('Project Name:'), 'profile_data[jenkins][project_name]', profile.jenkins_project_name ) %> | ||
| 9 | + </li> | ||
| 10 | +</ul> | ||
| 11 | +</div> |
plugins/serpro_integration/views/serpro_integration_plugin_admin/index.html.erb
| @@ -10,6 +10,15 @@ | @@ -10,6 +10,15 @@ | ||
| 10 | <% end %> | 10 | <% end %> |
| 11 | </div> | 11 | </div> |
| 12 | 12 | ||
| 13 | + <div class="jenkins_settings"> | ||
| 14 | + <h2><%= _('Jenkins Settings')%></h2> | ||
| 15 | + <%= f.fields_for :jenkins, OpenStruct.new(@settings.jenkins) do |g| %> | ||
| 16 | + <%= labelled_form_field _('Server Host'), g.text_field("host") %> | ||
| 17 | + <%= labelled_form_field _('Server User'), g.text_field(:user) %> | ||
| 18 | + <%= labelled_form_field _('Private Token'), g.text_field(:private_token) %> | ||
| 19 | + <% end %> | ||
| 20 | + </div> | ||
| 21 | + | ||
| 13 | <% button_bar do %> | 22 | <% button_bar do %> |
| 14 | <%= submit_button(:save, _('Save'), :cancel => {:controller => 'plugins', :action => 'index'}) %> | 23 | <%= submit_button(:save, _('Save'), :cancel => {:controller => 'plugins', :action => 'index'}) %> |
| 15 | <% end %> | 24 | <% end %> |