clearcase-server/resources/buildServerResources/clearcaseSettings.jsp (193 lines of code) (raw):
<%--
~ Copyright 2000-2014 JetBrains s.r.o.
~
~ Licensed 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.
--%>
<%@include file="/include.jsp"%>
<%@ taglib prefix="props" tagdir="/WEB-INF/tags/props" %>
<%@ taglib prefix="bs" tagdir="/WEB-INF/tags" %>
<%@ page import="jetbrains.buildServer.vcs.clearcase.Constants" %>
<jsp:useBean id="propertiesBean" scope="request" type="jetbrains.buildServer.controllers.BasePropertiesBean"/>
<jsp:useBean id="clearcaseSupport" scope="request" class="jetbrains.buildServer.buildTriggers.vcs.clearcase.ClearCaseSupport" />
<script type="text/javascript">
BS.ClearCaseSettings = {
convertSettings: function () {
BS.Util.show('convertSettingsProgressIcon');
BS.VcsSettingsForm.clearErrors();
BS.VcsSettingsForm.disable();
BS.ajaxRequest(window['base_uri'] + "/admin/clearCaseSettings.html?action=convertOldSettings", {
parameters: {
"view-path-value": $("view-path").value
},
onComplete:function (transport) {
BS.VcsSettingsForm.enable();
BS.Util.hide('convertSettingsProgressIcon');
var xml = transport.responseXML;
if (xml == null) {
alert("Error: server response is null");
return;
}
var firstChild = xml.documentElement.firstChild;
var firstChildText = firstChild.textContent || firstChild.text;
if (firstChild.nodeName == 'error') {
alert("Error: " + firstChildText);
return;
}
$('oldSettingsRow').style.display = "none";
$('oldSettingsMessage').style.display = "none";
var secondChild = firstChild.nextSibling;
$('view-path').value = "";
$('cc-view-path').value = firstChildText;
$('rel-path').value = secondChild.textContent || secondChild.text;
}
});
},
detectBranches: function () {
$("detectBranchesButton").disabled = true;
BS.Util.show('detectBranchesProgressIcon');
BS.ajaxRequest(window['base_uri'] + "/admin/clearCaseSettings.html?action=detectBranches", {
parameters: {
"cc-view-path": $("cc-view-path").value,
"rel-path": $("rel-path").value,
"view-path-value": $("view-path") ? $("view-path").value : ""
},
onComplete:function (transport) {
BS.Util.hide('detectBranchesProgressIcon');
$("detectBranchesButton").disabled = false;
var xml = transport.responseXML;
if (xml == null) {
$("detectedBranchesErrorSpan").innerHTML = "Error: server is not available";
BS.Util.hide("detectedBranchesSpan");
BS.Util.show("detectedBranchesErrorSpan");
return;
}
var firstChild = xml.documentElement.firstChild;
var text = firstChild.textContent || firstChild.text;
if (firstChild.nodeName == 'error') {
$("detectedBranchesErrorSpan").innerHTML = "Error: " + text;
BS.Util.hide("detectedBranchesSpan");
BS.Util.show("detectedBranchesErrorSpan");
}
else {
$("detectedBranchesSpan").innerHTML = text;
BS.Util.hide("detectedBranchesErrorSpan");
BS.Util.show("detectedBranchesSpan");
}
}
});
},
branchProviderChanged: function (auto) {
$('branches').disabled = auto;
BS.VisibilityHandlers.updateVisibility('branches');
}
};
</script>
<c:set var="showClearCaseNotFound" value="${clearcaseSupport.clearCaseClientNotFound}"/>
<c:set var="clearCaseNotFoundText" value="<%=Constants.CLIENT_NOT_FOUND_MESSAGE%>"/>
<c:set var="showOldSettings" value="${propertiesBean.properties['view-path'] != null && not empty propertiesBean.properties['view-path']}"/>
<bs:linkCSS dynamic="${true}">
/css/FontAwesome/css/font-awesome.min.css
/css/main.css
/css/forms.css
/css/project.css
/css/admin/adminMain.css
</bs:linkCSS>
<c:if test="${showOldSettings}">
<div id="oldSettingsMessage">
<div class="successMessage">Settings are obsolete. Please click "Convert to new settings..." button or type new settings manually. You
can also click "Cancel" link to continue to use obsolete settings.
</div>
</div>
</c:if>
<table class="runnerFormTable">
<l:settingsGroup title="ClearCase Settings">
<c:if test="${showClearCaseNotFound}">
<tr>
<td colspan="2">
<forms:attentionComment>
<font color='red'>${clearCaseNotFoundText}</font><br/>
See online documentation for more details<bs:help file="ClearCase#ClearCase"/><br/>
</forms:attentionComment>
</td>
</tr>
</c:if>
<c:if test="${showOldSettings}">
<tr id="oldSettingsRow">
<th><label for="view-path" style="text-decoration: line-through">View path:</label>
</th>
<td>
<input style="float: right;" type="button" class="btn btn_mini" value="Convert to new settings..." onclick="BS.ClearCaseSettings.convertSettings();"/>
<forms:saving id="convertSettingsProgressIcon"/>
<props:textProperty name="view-path" className="longField" />
<span class="error" id="error_view-path"></span>
<bs:smallNote>Obsolete setting. Please see the message above.</bs:smallNote>
</td>
</tr>
</c:if>
<tr>
<th><label for="cc-view-path">ClearCase view path:<l:star/></label>
</th>
<td><props:textProperty name="cc-view-path" className="longField"/>
<span class="error" id="error_cc-view-path"></span></td>
</tr>
<tr>
<th><label for="rel-path">Relative path within the view:<l:star/><bs:help file="ClearCase" anchor="relPathOptionDescription"/></label>
</th>
<td><props:textProperty name="rel-path" className="longField"/>
<span class="error" id="error_rel-path"></span></td>
</tr>
<tr class="advancedSetting">
<th><label>Branches:</label><bs:help file="ClearCase" anchor="branchesOptionDescription"/></th>
<td>
<props:radioButtonProperty name="branch-provider"
onclick="BS.ClearCaseSettings.branchProviderChanged(true);"
value="auto"
id="branchAutoProvider"
checked='${empty propertiesBean.properties["branch-provider"] or (propertiesBean.properties["branch-provider"] eq "auto")}'/>
<label for="branchAutoProvider">detect automatically</label>
<input type="button" class="btn btn_mini" value="Detect now" id="detectBranchesButton" onclick="BS.ClearCaseSettings.detectBranches();"/>
<forms:saving id="detectBranchesProgressIcon" className="progressRingInline"/>
<br/>
<span id="detectedBranchesSpan" style="display: none;"></span><span class="error" id="detectedBranchesErrorSpan" style="display: none;"></span>
</td>
</tr>
<tr class="advancedSetting">
<th> </th>
<td>
<props:radioButtonProperty name="branch-provider"
onclick="BS.ClearCaseSettings.branchProviderChanged(false);"
value="custom"
id="branchCustomProvider"/>
<label for="branchCustomProvider">custom:</label>
<div>
<c:set var="disabled"><c:out value="${propertiesBean.properties['branch-provider'] ne 'custom'}"/></c:set>
<props:textProperty name="branches" className="mediumField" disabled="${disabled}"/>
<span class="error" id="error_branches"></span>
</div>
<bs:smallNote>You can leave this field blank or specify several branches separated by spaces, commas or semicolons.</bs:smallNote>
</td>
</tr>
<tr class="advancedSetting">
<th class="noBorder"><label for="TYPE">Use ClearCase:</label></th>
<td class="noBorder">
<props:selectProperty name="TYPE" enableFilter="true" className="mediumField">
<props:option value="UCM">UCM</props:option>
<props:option value="BASE">BASE</props:option>
</props:selectProperty>
</td>
</tr>
</l:settingsGroup>
<l:settingsGroup title="Labeling settings" className="advancedSetting">
<tr class="advancedSetting">
<th><label for="use-global-label">Global labeling:</label></th>
<td>
<props:checkboxProperty name="use-global-label"
onclick="$('global-labels-vob').disabled = this.checked ? '' : 'disabled'; BS.VisibilityHandlers.updateVisibility('mainContent');"/>
<label for="use-global-label">Use global labels</label>
</td>
</tr>
<tr class="advancedSetting">
<th><label for="global-labels-vob">Global labels VOB:</label></th>
<td>
<props:textProperty name="global-labels-vob" className="longField" disabled="${propertiesBean.properties['use-global-label'] != 'true'}"/>
<span class="error" id="error_global-labels-vob"></span>
<bs:smallNote>Pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)</bs:smallNote>
</td>
</tr>
</l:settingsGroup>
</table>