Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>
- AdministrationSuite htmlIncludeOrString</title></head>
- <body>
- <@dynamichtml admin_suite_system_properties_head@>
- <script>
- var data, success; // Used to send Ajax requests for services
- var intradocCfg; // Will be loaded with loadIntradocCfg()
- var localeList; // Will hold localization table data
- var originalLocaleList; // Will hold the localization table data that was loaded before any modifications
- var localizationTable; // Handle for modifying the localization table directly
- $fbs(function(){
- // Call services to collect and populate initial values, setup the page
- // loadGeneralConfig();
- // loadLocalizationConfig();
- // loadConfigCfg();
- // loadIntradocCfg();
- loadLocaleTable();
- // Attach handlers for Database inputs
- $fbs("input[name='IsJdbcCheck']").change(toggleIsJdbc);
- $fbs("input[name='JdbcDriverType']").change(function() { toggleDriverType(true); });
- // Attach submit/reset handlers
- $fbs("#systemPropertiesSubmit").click(submitHandler);
- $fbs("#systemPropertiesReset").click(resetHandler);
- });
- /*
- * Load and set general config values retrieved from GET_GEN_SYS_PROPS service.
- * This is restricted to certain values within the config/config.cfg file.
- */
- function loadGeneralConfig() {
- data = {
- IdcService: "GET_GEN_SYS_PROPS",
- IsJson: "1"
- };
- success = function(data) {
- // Set values for "Internet" tab
- if (data.LocalData.HttpServerAddress) {
- $fbs("input[name='HttpServerAddress']").attr("value", data.LocalData.HttpServerAddress);
- }
- if (data.LocalData.SmtpPort) {
- $fbs("input[name='SmtpPort']").attr("value", data.LocalData.SmtpPort);
- }
- if (data.LocalData.HttpRelativeWebRoot) {
- $fbs("input[name='HttpRelativeWebRoot']").attr("value", data.LocalData.HttpRelativeWebRoot);
- }
- if (data.LocalData.UseSSL && strIsTrue(data.LocalData.UseSSL)) {
- $fbs("input[name='UseSSLCheck").attr("checked", "checked");
- }
- // Set value for "Database" tab
- if (data.LocalData.DatabasePreserveCase && strIsTrue(data.LocalData.DatabasePreserveCase)) {
- $fbs("input[name='DatabasePreserveCaseCheck']").attr("checked", "checked");
- }
- };
- serviceCall(data, success, loadGeneralConfig);
- }
- /*
- * Load and set localization settings using the GET_LOCALIZATION_ADMIN_PAGE service.
- * Since this retrieves the locale configuration loaded on server startup, it only sets
- * locale and timezone dropdowns, not the data for the localization table since that is
- * set without respect to the values loaded at server startup (see loadLocaleTable).
- */
- function loadLocalizationConfig() {
- data = {
- IdcService: "GET_LOCALIZATION_ADMIN_PAGE",
- IsJson: "1"
- };
- success = function(data) {
- var locales = data.ResultSets.LocaleConfig.rows;
- var timezones = data.ResultSets.SystemTimeZones.rows;
- var defaultTz = data.LocalData.defaultTimeZoneId;
- // Add locales to "System Locale" dropdown on "Server" tab
- var lcSelect = $fbs("select[name='SystemLocale']");
- lcSelect.append('<option value=""><$lc("wwServerUnspecifiedLocale")$></option>')
- for (var i=0; i < locales.length; i++) {
- var lc = locales[i];
- var isEnabled = strIsTrue(lc[1]);
- var id = lc[0];
- var native = lc[11];
- // Add only enabled locales to the dropdown
- if (isEnabled) {
- lcSelect.append('<option value="' + id + '">' + native + '</option>');
- }
- }
- // Add timezones to the "System Timezone" dropdown on the "Server" tab
- // and the "Time Zone" dropdown on the "Localization" tab's Add/Edit form
- var serverTzSelect = $fbs("select[name='SystemTimeZone']");
- var localizationTzSelect = $fbs("#configureLocaleForm").find("select[name='lcTimeZone']");
- serverTzSelect.append('<option value=""><$lc("wwServerUnspecifiedTimezone")$> (' + defaultTz + ')</option>');
- for (var i=0; i < timezones.length; i++) {
- var tz = timezones[i];
- var id = tz[0];
- var offset = tz[1];
- var option = '<option value="' + id + '">' + offset + " " + id + '</option>';
- serverTzSelect.append(option);
- localizationTzSelect.append(option);
- }
- };
- serviceCall(data, success, loadLocalizationConfig);
- }
- /*
- * Load and set values stored in config/config.cfg file using LOAD_CONFIG_FILE service.
- * This sets the remaining fields for the "Database" (except "Database Driver Classpath")
- * and "Server" tabs that weren't set using loadGeneralConfig() and loadLocalizationConfig().
- */
- function loadConfigCfg() {
- data = {
- IdcService: "LOAD_CONFIG_FILE",
- IsJson: "1",
- ConfigFileName: "config/config.cfg"
- };
- success = function(data) {
- // Grab config file
- var configCfg = data.ResultSets.FileInfo.rows[0][0];
- // Grab variables for "Database" tab using regular expressions
- var isJdbc = configCfg.match(/\nIsJdbc=(.*)\n/);
- var jdbcDriver = configCfg.match(/\nJdbcDriver=(.*)\n/);
- var jdbcConnectionString = configCfg.match(/\nJdbcConnectionString=(.*)\n/);
- var jdbcUser = configCfg.match(/\nJdbcUser=(.*)\n/);
- // Set values for "Database" tab
- if (!isJdbc || strIsTrue(isJdbc[1])) {
- $fbs("input[name='IsJdbcCheck']").attr("checked", "checked");
- }
- if (jdbcDriver) {
- $fbs("input[name='JdbcDriver']").attr("value", jdbcDriver[1]);
- }
- if (jdbcConnectionString) {
- $fbs("input[name='JdbcConnectionString']").attr("value", jdbcConnectionString[1]);
- }
- if (jdbcUser) {
- $fbs("input[name='JdbcUser']").attr("value", jdbcUser[1]);
- }
- switch (jdbcDriver[1]) {
- case "weblogic.jdbc.sqlserver.SQLServerDriver":
- $fbs("input[name='JdbcDriverType'][value='SQL']").attr("checked", "checked");
- break;
- case "weblogic.jdbc.db2.DB2Driver":
- $fbs("input[name='JdbcDriverType'][value='DB2']").attr("checked", "checked");
- break;
- case "oracle.jdbc.OracleDriver":
- // OCI and Thin use the same driver, so we have to check the connection string
- // to see which one is being used
- if (jdbcConnectionString[1].match(/oci/)) {
- $fbs("input[name='JdbcDriverType'][value='OCI']").attr("checked", "checked");
- }
- else {
- $fbs("input[name='JdbcDriverType'][value='Thin']").attr("checked", "checked");
- }
- break;
- default:
- $fbs("input[name='JdbcDriverType'][value='Other']").attr("checked", "checked");
- break;
- }
- // Disable "Database" tab fields according to the values that are loaded
- toggleIsJdbc();
- // Grab variables for "Server" tab using regular expressions
- var instanceMenuLabel = configCfg.match(/\nInstanceMenuLabel=(.*)\n/);
- var instanceDescription = configCfg.match(/\nInstanceDescription=(.*)\n/);
- var systemLocale = configCfg.match(/\nSystemLocale=(.*)\n/);
- var systemTimeZone = configCfg.match(/\nSystemTimeZone=(.*)\n/);
- // Set values for "Server" tab
- if (instanceMenuLabel) {
- $fbs("input[name='InstanceMenuLabel']").attr("value", instanceMenuLabel[1]);
- }
- if (instanceDescription) {
- $fbs("input[name='InstanceDescription']").attr("value", instanceDescription[1]);
- }
- // If System Locale is specified in config.cfg, wait until "System Locale" dropdown is populated
- // by loadLocalizationConfig(), then set its value
- if (systemLocale) {
- var localeTimer = setInterval(function() {
- var localeOption = $fbs("select[name='SystemLocale']").find("option[value='" + systemLocale[1] + "']");
- if (localeOption) {
- clearInterval(localeTimer);
- localeOption.attr("selected", "selected");
- }
- }, 50);
- }
- // If System Timezone is specified in config.cfg, wait until "System Timezone" dropdown is populated
- // by loadLocalizationConfig(), then set its value
- if (systemTimeZone) {
- var tzTimer = setInterval(function() {
- var tzOption = $fbs("select[name='SystemTimeZone']").find("option[value='" + systemTimeZone[1] + "']");
- if (tzOption) {
- clearInterval(tzTimer);
- tzOption.attr("selected", "selected");
- }
- }, 50);
- }
- };
- serviceCall(data, success, loadConfigCfg);
- }
- /*
- * Load and set values stored in bin/intradoc.cfg file using LOAD_CONFIG_FILE service.
- * This sets the last "Database" tab field and all of the "Paths" tab fields. Since these
- * values are updated by manually entering them in the file, this function sets the intradocCfg
- * variable to the file as a string so it can be manipulated and written back to the server later.
- */
- function loadIntradocCfg() {
- data = {
- IdcService: "LOAD_CONFIG_FILE",
- IsJson: "1",
- ConfigFileName: "bin/intradoc.cfg"
- };
- success = function(data) {
- // Grab config file
- intradocCfg = data.ResultSets.FileInfo.rows[0][0];
- // Grab and set "Database Driver Classpath" variable for "Database" tab
- var JDBC_JAVA_CLASSPATH_custom = intradocCfg.match(/\nJDBC_JAVA_CLASSPATH_custom=(.*)\n/);
- if (JDBC_JAVA_CLASSPATH_custom) {
- $fbs("input[name='JDBC_JAVA_CLASSPATH_custom']").attr("value", JDBC_JAVA_CLASSPATH_custom[1]);
- }
- // Grab variables for "Paths" tab
- var WebBrowserPath = intradocCfg.match(/\nWebBrowserPath=(.*)\n/);
- var BASE_JAVA_CLASSPATH_custom = intradocCfg.match(/\nBASE_JAVA_CLASSPATH_custom=(.*)\n/);
- var IdcHomeDir = intradocCfg.match(/\nIdcHomeDir=(.*)\n/);
- // Set variables for "Paths" tab
- if (WebBrowserPath) {
- $fbs("input[name='WebBrowserPath']").attr("value", WebBrowserPath[1]);
- }
- if (BASE_JAVA_CLASSPATH_custom) {
- $fbs("input[name='BASE_JAVA_CLASSPATH_custom']").attr("value", BASE_JAVA_CLASSPATH_custom[1]);
- }
- if (IdcHomeDir) {
- $fbs("input[name='IdcHomeDir']").attr("value", IdcHomeDir[1]);
- }
- };
- serviceCall(data, success, loadIntradocCfg);
- }
- /*
- * Load and set values for the "Localization" tab using the custom service ADMIN_SUITE_LOAD_LOCALIZATION_CONFIG.
- * This service loads the default locale configuration from the LocaleConfig system table, as well as deviations
- * from the default locale configuration as specified in the data/locale/locale_config.hda file (these two together
- * specify the current locale configuration that is displayed in the Localization table). This service also loads
- * the SearchLocaleConfig and IsoJavaEncodingMap system tables to be used in configuration. When the service returns,
- * this function sets up the localization table with all of its data, buttons, dialogs, and other functionality.
- */
- function loadLocaleTable() {
- data = {
- IdcService: "ADMIN_SUITE_LOAD_LOCALIZATION_CONFIG",
- <$if getVersion() < 110$> IsSoap: "1" <$else$> IsJson: "1" <$endif$>
- };
- success = function(data) {
- console.log(data);
- // Filter out non-locale result sets
- var localeConfig = {};
- "<$if getVersion() < 110$>";
- // 10g or lower
- var allRs = data.getElementsByTagName("idc:resultset");
- for (var i=0; i < allRs.length; i++) {
- var name = allRs[i].attributes[0].value;
- if (name.indexOf("Locale") !== -1) {
- // Convert from XML to JS array
- var rsArray = [];
- var rows = allRs[i].getElementsByTagName("idc:row");
- for (var j=0; j < rows.length; j++) {
- var rowArray = [];
- var fields = rows[j].getElementsByTagName("idc:field");
- for (var k=0; k < fields.length; k++) {
- rowArray.push(fields[k].textContent);
- }
- rsArray.push(rowArray);
- }
- localeConfig[name] = {};
- localeConfig[name]["rows"] = rsArray;
- }
- }
- console.log(localeConfig);
- "<$else$>";
- // 11g or higher
- for (var key in data.ResultSets) {
- if (key.includes("Locale")) {
- localeConfig[key] = data.ResultSets[key];
- }
- }
- "<$endif$>";
- // Set initial values that will be used to generate the table
- localeList = localeConfig.DefaultLocaleConfig.rows;
- var fields = localeConfig.DefaultLocaleConfig.fields;
- var customLocales = localeConfig.LocaleConfig ? localeConfig.LocaleConfig.rows : null;
- var searchLocales = localeConfig.SearchLocales.rows;
- var encodings = localeConfig.LocaleEncodings.rows;
- // Add any custom locales that are not yet in the locale list
- // Also update values for custom locales that are already in the locale list
- if (customLocales) {
- for (var i=0; i < customLocales.length; i++) {
- var customLocale = customLocales[i];
- // Search through locale list to see if the custom locale already exists
- var exists = false;
- for (var j=0; j < localeList.length; j++) {
- var existingLocale = localeList[j];
- if (customLocale[0] === existingLocale[0]) {
- // Update locale to reflect any changes
- // Can start loop at 1 since the locale name (0) is the same
- for (var k=1; k < customLocale.length; k++) {
- existingLocale[k] = customLocale[k];
- }
- existingLocale.push(""); // Element at [13] will store the search locale
- existingLocale.push("custom"); // Element at [14] === "custom" indicates that the locale can be deleted
- exists = true;
- break;
- }
- }
- // Otherwise add it as new
- if (!exists) {
- var newLocale = customLocale;
- newLocale.push("ltr"); // New locales are always left-to-right
- newLocale.push(""); // Element at [13] will store the search locale
- newLocale.push("custom"); // Element at [14] === "custom" indicates that the locale can be deleted
- localeList.push(newLocale);
- }
- }
- }
- // Set default Search Locales for all locales in the locale list
- for (var i=0; i < localeList.length; i++) {
- var locale = localeList[i];
- var found = false;
- // Look for matching locale in the search locale list
- for (var j=0; j < searchLocales.length; j++) {
- var searchLocale = searchLocales[j];
- if (locale[0] === searchLocale[0]) {
- locale[13] = searchLocale[1]; // Set Search Locale for matching locale
- found = true;
- break;
- }
- }
- // If no matching search locale was found, set the search locale as empty
- if (!found) {
- locale[13] = "";
- }
- }
- // Update locales in the locale list to reflect the configured values from data/locale/locale_config.hda
- // At indexes 9, 10, and 12 are currency format, number format and left-to-right/right-to-left respectively, which can't be modified using the localization table
- updateLocales("LocaleConfig_lcIsEnabled", 1);
- updateLocales("LocaleConfig_lcLanguageId", 2);
- updateLocales("LocaleConfig_lcIsoEncoding", 3);
- updateLocales("LocaleConfig_lcDateTimeFormat", 4);
- updateLocales("LocaleConfig_lcDisplayDateFormat", 5);
- updateLocales("LocaleConfig_lcAlternateParseDateFormats", 6);
- updateLocales("LocaleConfig_lcTimeZone", 7);
- updateLocales("LocaleConfig_lcWeekdayOffset", 8);
- updateLocales("LocaleConfig_lcLocaleNativeName", 11);
- updateLocales("SearchLocaleConfig_lcSearchLocale", 13);
- // Deep clone the locale list so we have a copy of it for resetting and comparing changes
- originalLocaleList = JSON.parse(JSON.stringify(localeList));
- // Set the options for the Search Locale and Encoding select lists on the "Configure Locale" form
- addToSelect("lcSearchLocale", searchLocales, 1);
- addToSelect("lcIsoEncoding", encodings, 0);
- // Create Localization table from the locale list
- localizationTable = initLocalizationTable();
- initLocalizationButtons();
- /*
- * Helper function for updating the locale list by grabbing data from the specified ResultSet name (rsName)
- * in the locale_config.hda file and modifying the specified index for matching locales in the locale list.
- */
- function updateLocales(rsName, index) {
- if (!localeConfig[rsName]) return; // If RS doesn't exist, just exit
- var rs = localeConfig[rsName].rows;
- // Loop through each name/value pair in the result set
- for (var i=0; i < rs.length; i++) {
- var rsRow = rs[i];
- // Search locale list for matching locale name
- for (var j=0; j < localeList.length; j++) {
- var locale = localeList[j];
- if (rsRow[0] === locale[0]) {
- locale[index] = rsRow[1]; // Set value at the specified index
- break; // Move onto next name/value pair
- }
- }
- }
- }
- /*
- * Helper function that adds all values at index for each item in the specified array to the select specified by selectName
- */
- function addToSelect(selectName, array, index) {
- var select = $fbs("#configureLocaleForm").find("select[name='" + selectName + "']");
- for (var i=0; i < array.length; i++) {
- var name = array[i][index];
- // Prevent duplication by skipping if search locale was already added
- if (select.find("option[name='" + name + "']").length > 0) {
- continue;
- }
- else {
- select.append('<option name="' + name + '">' + name + '</option>');
- }
- }
- }
- /*
- * Helper function that initializes and returns the localization table
- */
- function initLocalizationTable() {
- // Create table on page
- var table = $fbs("#localizationTable");
- var columnTitles = {
- 'lcLocaleId': '<$lc("csLabelLocale")$>',
- 'lcIsEnabled': '<$lc("csEditLabelLocaleEnabled")$>',
- 'lcLanguageId': '<$lc("csLabelLanguageId")$>',
- 'lcIsoEncoding': '<$lc("csLabelEncoding")$>',
- 'lcDateTimeFormat': '<$lc("csLabelDateTimeFormat")$>',
- 'lcDisplayDateFormat': '<$lc("csLabelDisplayDateFormat")$>',
- 'lcAlternateParseDateFormats': '<$lc("csLabelAlternateParseDateFormats")$>',
- 'lcTimeZone': '<$lc("csLabelTimeZone")$>'
- };
- var columns = [];
- for (i=0; i < 8; i++) { // We only display the first 8 columns on the table (same as built-in applet)
- var name = fields[i].name;
- var columnData = {
- name: name,
- title: columnTitles[name]
- };
- // lcIsEnabled for locales is sometimes "0" or "1", we want to make sure they display as "true" or "false"
- if (name === "lcIsEnabled") {
- columnData.render = function(data) {
- if (data === "0") {
- data = "false";
- }
- else if (data === "1") {
- data = "true";
- }
- return data;
- };
- }
- columns.push(columnData);
- }
- return initDataTable(table, localeList, columns, "os");
- }
- /*
- * Helper function that initializes the buttons for the localization table
- */
- function initLocalizationButtons() {
- // Add buttons to Localization table
- addFooterButtons("#localizationTable", [
- {id: "localeAdd", label: "<$lc('apDlgButtonAdd')$>"},
- {id: "localeEdit", label: "<$lc('wwEdit')$>", reqSelection: true},
- {id: "localeDelete", label: "<$lc('wwDelete')$>", reqSelection: true},
- {id: "localeEnable", label: "<$lc('wwEnable')$>", reqSelection: true},
- {id: "localeDisable", label: "<$lc('wwDisable')$>", reqSelection: true}
- ]);
- // Disable buttons when certain rows are selected (same as built-in applet)
- $fbs("#localizationTable").on("click", function() {
- var numSelected = localizationTable.rows(".selected")[0].length;
- // Disable Edit button if multiple or no locales are selected
- if (numSelected > 1 || numSelected === 0) {
- $fbs("#localeEdit").prop("disabled", true);
- }
- else {
- $fbs("#localeEdit").prop("disabled", false);
- }
- // Search through selected locales, disable Delete button if any are not deletable/custom locales
- for (var i=0; i < numSelected; i++) {
- var data = localizationTable.rows(".selected").data()[i];
- if (data[data.length-1] !== "custom") {
- $fbs("#localeDelete").prop("disabled", true);
- break;
- }
- else {
- $fbs("#localeDelete").prop("disabled", false);
- }
- }
- });
- // Attach handlers
- $fbs("#localeAdd").off("click").on("click", function() { openDialog(false); });
- $fbs("#localeEdit").off("click").on("click", function() { openDialog(true); });
- $fbs("#localeEnable").on("click", function() { setEnabledRows("true"); });
- $fbs("#localeDisable").on("click", function() { setEnabledRows("false"); });
- $fbs("#localeDelete").on("click", function() {
- localizationTable.rows(".selected").remove().draw(false);
- });
- /*
- * Function that's attached as a handler to the Add and Edit buttons to open the "Configure Locale" dialog window.
- * If isEdit is true, the values from the currently selected locale are loaded to pre-populate the fields and when
- * the "OK" button is clicked the selected locale will be updated. If isEdit is false, the form is left blank and
- * the "OK" button will add a new locale to the table with the user's configured values, unless a locale with the
- * same name already exists, in which case its values are set to those on the form. Same as built-in applet.
- */
- function openDialog(isEdit) {
- var dialog = $fbs("#configureLocaleDialog");
- var form = $fbs("#configureLocaleForm");
- // Pre-populate fields if the selected locale is being edited
- if (isEdit) {
- var localeData = localizationTable.row(".selected").data();
- if (strIsTrue(localeData[1])) {
- form.find("input[name='lcIsEnabled']").prop("checked", true);
- }
- form.find("input[name='lcLocaleId']").val(localeData[0]);
- // Disable locale name since this cannot be modified (same as built-in applet)
- form.find("input[name='lcLocaleId']").prop("readonly", "readonly");
- form.find("input[name='lcLanguageId']").val(localeData[2]);
- // If no search locale, set to arabic since it's first alphabetically (same as built-in applet)
- if (localeData[13] === "") {
- form.find("select[name='lcSearchLocale']").val("arabic");
- }
- else {
- form.find("select[name='lcSearchLocale']").val(localeData[13]);
- }
- form.find("input[name='lcLocaleNativeName']").val(localeData[11]);
- form.find("select[name='lcIsoEncoding']").val(localeData[3]);
- form.find("input[name='lcDateTimeFormat']").val(localeData[4]);
- form.find("input[name='lcDisplayDateFormat']").val(localeData[5]);
- form.find("input[name='lcAlternateParseDateFormats']").val(localeData[6]);
- form.find("select[name='lcTimeZone']").val(localeData[7]);
- form.find("select[name='lcWeekdayOffset']").val(localeData[8]);
- }
- // Use jQuery to open dialog window
- dialog.dialog({
- autoOpen: true,
- modal: true,
- width: 800,
- title: "<$lc('csTitleConfigureLocale')$>",
- buttons: {
- "<$lc('wwOK')$>": verifyFields, // We must first verify the input fields, then we can submit
- "<$lc('wwCancel')$>": exitDialog
- }
- });
- /*
- * Check that all required fields are set and date/time format fields are valid. If all fields are
- * valid, call submitLocale() to submit the form.
- */
- function verifyFields() {
- var localeName = form.find("input[name='lcLocaleId']").val();
- var dateTimeFormat = form.find("input[name='lcDateTimeFormat']").val();
- var displayDateFormat = form.find("input[name='lcDisplayDateFormat']").val();
- var alternateParseDateFormats = form.find("input[name='lcAlternateParseDateFormats']").val();
- // Verify that required fields are set
- if (localeName === "") {
- alert("<$lc('csLocaleIdMustBeSpecified')$>");
- return;
- }
- if (dateTimeFormat === "") {
- alert("<$lc('csDateFormatMustBeSpecified')$>");
- return;
- }
- // Verify that date/time format fields are valid
- var subData = {
- IdcService: "ADMIN_SUITE_VERIFY_DATE_FORMATS",
- IsJson: "1",
- DateTimeFormat: dateTimeFormat,
- DisplayDateFormat: displayDateFormat,
- AlternateParseDateFormats: alternateParseDateFormats
- };
- subSuccess = function(data) {
- // If an error is found, display the proper error message for the problematic date/time format
- if (data.LocalData.ParseError) {
- switch (data.LocalData.ParseError) {
- case "DateTimeFormat":
- alert("<$lc('csDateUnableToParseDateTimeFormat')$>");
- break;
- case "DisplayDateFormat":
- alert("<$lc('csDateUnableToParseDisplayDateFormat')$>");
- break;
- case "AlternateParseDateFormats":
- alert("<$lc('csDateUnableToParseAlternateParseDateFormats')$>");
- break;
- }
- }
- // Otherwise submit the locale to the DataTable
- else {
- submitLocale();
- }
- }
- serviceCall(subData, subSuccess);
- }
- /*
- * Edit existing locale if "Edit" button is selected or specified locale name is already in the table,
- * otherwise add locale as new.
- */
- function submitLocale() {
- // A locale is being edited if a locale with the same name already exists
- // Try to find a row in the table with a matching locale name
- var existingLocale = localizationTable.row(function(index, data, node) {
- return data[0] === form.find("input[name='lcLocaleId']").val() ? true : false;
- });
- var localeExists = existingLocale[0].length > 0;
- var isEdit = localeExists;
- // Gather data from form (assuming locale isn't being edited)
- var editedLocaleData = [
- form.find("input[name='lcLocaleId']").val(),
- form.find("input[name='lcIsEnabled']").is(":checked") ? "true" : "false",
- form.find("input[name='lcLanguageId']").val(),
- form.find("select[name='lcIsoEncoding']").val(),
- form.find("input[name='lcDateTimeFormat']").val(),
- form.find("input[name='lcDisplayDateFormat']").val(),
- form.find("input[name='lcAlternateParseDateFormats']").val(),
- form.find("select[name='lcTimeZone']").val(),
- form.find("select[name='lcWeekdayOffset']").val(),
- "", "", // Currency and number formats aren't set using localization table
- form.find("input[name='lcLocaleNativeName']").val(),
- "ltr", // Default is ltr (same as built-in applet)
- form.find("select[name='lcSearchLocale']").val(),
- "custom"
- ];
- // If locale is being edited, set currency format, number format, ltr/rtl, and custom as necessary
- // Then update the locale in the table
- if (isEdit) {
- var existingLocaleData = existingLocale.data();
- editedLocaleData[9] = existingLocaleData[9]; // Set currency format
- editedLocaleData[10] = existingLocaleData[10]; // Set number format
- editedLocaleData[12] = existingLocaleData[12]; // Set ltr/rtl
- // Remove custom if locale being edited is not custom
- if (!existingLocaleData[existingLocaleData.length-1] === "custom") {
- editedLocaleData.splice(14, 1);
- }
- // Update locale
- existingLocale.data(editedLocaleData);
- }
- // Else add the new locale to the table
- else {
- localizationTable.row.add(editedLocaleData).draw("false");
- }
- exitDialog();
- }
- /*
- * Clear dialog's form, ensure Locale name field isn't read-only, and close dialog
- */
- function exitDialog() {
- form[0].reset();
- form.find("input[name='lcLocaleId']").removeProp("readonly"); // Make sure Locale name isn't read-only anymore
- dialog.dialog('close');
- }
- }
- /*
- * Function that's attached as a handler to the Enable and Disable buttons, sets as "Enabled" field for each
- * selected locale to "true" or "false".
- */
- function setEnabledRows(bool) {
- var selectedRows = localizationTable.rows(".selected")[0];
- for (var i=0; i < selectedRows.length; i++) {
- var rowIndex = selectedRows[i];
- var rowData = localizationTable.row(rowIndex).data();
- rowData[1] = bool;
- localizationTable.row(rowIndex).data(rowData);
- }
- }
- }
- };
- serviceCall(data, success, loadLocaleTable);
- }
- /*
- * If the "Use Java Database Connectivity" checkbox on the "Database" tab is checked,
- * enable the other "Database" tab fields (except if they're disabled by the driver
- * type, same as built-in applet), otherwise it disables the other "Database" tab
- * fields (except "Database Driver Classpath", same as built-in applet).
- */
- function toggleIsJdbc() {
- if ($fbs("input[name='IsJdbcCheck']").is(":checked")) {
- // Enable all other "Database" tab fields
- $fbs(".databaseInput").prop("disabled", false);
- // Disable certain fields according to which driver type is selected
- toggleDriverType(false);
- }
- else {
- // Disable all other "Database" tab fields except Classpath (same as built-in applet)
- $fbs(".databaseInput").prop("disabled", true);
- // Set preserve case off (same as built-in applet)
- $fbs("input[name='DatabasePreserveCaseCheck']").prop("checked", false);
- }
- }
- /*
- * Set the "Database" tab fields according to the current value of the JdbcDriverType radio buttons.
- * If setConnectionString is true, the JDBC Connection String will be updated, otherwise it will be
- * unchanged. If the selected driver type is the type that was loaded initially, the connection string
- * will be reset the initial value (same as built-in applet).
- */
- function toggleDriverType(setConnectionString) {
- var driverType = $fbs("input[name='JdbcDriverType']:checked", "#databaseUpdateForm").val();
- // If the driver type is "Other", enable "Enable Database Preserve Case" and "JDBC Driver"
- // inputs, otherwise disable them (same as built-in applet)
- if (driverType === "Other") {
- $fbs("input[name='DatabasePreserveCaseCheck']").prop("disabled", false);
- $fbs("input[name='JdbcDriver']").prop("disabled", false);
- }
- else {
- $fbs("input[name='DatabasePreserveCaseCheck']").prop("disabled", true);
- $fbs("input[name='JdbcDriver']").prop("disabled", true);
- }
- // If the driver type is the one that was initially loaded, reset "JDBC Connection String"
- // field to the initial value (same as built-in applet)
- var isInitial = $fbs("input[name='JdbcDriverType'][value='"+driverType+"']").attr("checked") === "checked";
- if (setConnectionString && isInitial) {
- $fbs("input[name='JdbcConnectionString']").val(function() { return this.defaultValue; });
- setConnectionString = false; // No need to update the connection string anymore
- }
- // Set "Enable Database Preserve Case", "JDBC Driver", and "JDBC Connection Strings"
- switch (driverType) {
- case "SQL":
- setDatabaseFields(
- false,
- "weblogic.jdbc.sqlserver.SQLServerDriver",
- "jdbc:weblogic:sqlserver://host_name:port_number;DatabaseName=database_name"
- );
- break;
- case "DB2":
- setDatabaseFields(
- false,
- "weblogic.jdbc.db2.DB2Driver",
- "jdbc:weblogic:db2://host_name:port_number;DatabaseName=database_name"
- );
- break;
- case "OCI":
- setDatabaseFields(
- true,
- "oracle.jdbc.OracleDriver",
- "jdbc:oracle:oci:@host_name:port_number:instance_name"
- );
- break;
- case "Thin":
- setDatabaseFields(
- true,
- "oracle.jdbc.OracleDriver",
- "jdbc:oracle:thin:@host_name:port_number:instance_name"
- );
- break;
- }
- /*
- * Helper functions for setting the three database fields that change with each driver type
- */
- function setDatabaseFields(preserveCase, driver, connectionString) {
- $fbs("input[name='DatabasePreserveCaseCheck']").prop("checked", preserveCase);
- $fbs("input[name='JdbcDriver']").val(driver);
- if (setConnectionString) {
- $fbs("input[name='JdbcConnectionString']").val(connectionString);
- }
- }
- }
- /*
- * Check that all fields have legal vales and submit the data in all tabs.
- */
- function submitHandler() {
- // Verify all fields
- var match;
- var msg = "";
- // SMTP Port field should contain only numeric characters
- var port = $fbs("input[name='SmtpPort']", "#internetUpdateForm").val();
- if (port.match(/\D/)) {
- msg = "<$lc('csInternetPanelSMTPPortError')$>";
- }
- // Database connection string should start with the appropriate string for the selected driver type
- var driverType = $fbs("input[name='JdbcDriverType']:checked", "#databaseUpdateForm").val();
- var connString = $fbs("input[name='JdbcConnectionString']", "#databaseUpdateForm").val();
- switch (driverType) {
- case "SQL":
- if (!connString.match(/^jdbc:weblogic:sqlserver:\/\//)) {
- msg = "<$lc('csDBPanelJDBCConnectionStringMsg', eval(lc('csDBPanelDriverDesc_dd_mssql')), 'jdbc:weblogic:sqlserver://')$>";
- }
- break;
- case "DB2":
- if (!connString.match(/^jdbc:weblogic:db2:\/\//)) {
- msg = "<$lc('csDBPanelJDBCConnectionStringMsg', eval(lc('csDBPanelDriverDesc_dd_db2')), 'jdbc:weblogic:db2://')$>";
- }
- break;
- case "OCI":
- if (!connString.match(/^jdbc:oracle:oci:@/)) {
- msg = "<$lc('csDBPanelJDBCConnectionStringMsg', eval(lc('csDBPanelOracleOCIDriverDesc')), 'jdbc:oracle:oci:@')$>";
- }
- break;
- case "Thin":
- if (!connString.match(/^jdbc:oracle:thin:@/)) {
- msg = "<$lc('csDBPanelJDBCConnectionStringMsg', eval(lc('csDBPanelOracleThinDriverDesc')), 'jdbc:oracle:thin:@')$>";
- }
- break;
- }
- // Browser executable file should exist, use custom service to check
- var filePath = $fbs("input[name='WebBrowserPath']", "#pathsUpdateForm").val();
- data = {
- IdcService: "ADMIN_SUITE_VERIFY_FILE_EXISTS",
- IsJson: "1",
- FilePath: filePath
- };
- success = function(data) {
- if (!strIsTrue(data.LocalData.FileExists)) {
- msg = "<$lc('wwServerNoFile1')$> '" + filePath + "' <$lc('wwServerNoFile2')$>";
- }
- if (msg === "") {
- // All checks have passed, we can submit
- submitAll();
- }
- else {
- window.alert(msg);
- }
- };
- serviceCall(data, success);
- /*
- * Performs submission processes.
- */
- function submitAll() {
- var combinedForm = $fbs("#systemPropertiesForm");
- // Add Internet form fields
- setCheckbox("UseSSL");
- addForm("internetUpdateForm");
- // Add Database form fields
- setCheckbox("IsJdbc");
- setCheckbox("DatabasePreserveCase");
- // Enable DatbasePreserveCase and JdbcDriver fields so they aren't excluded
- $fbs("input[name='DatabasePreserveCase']").removeAttr("disabled");
- $fbs("input[name='JdbcDriver']").removeAttr("disabled");
- // Update intradoc.cfg to reflect Database Driver Classpath field
- updateIntradocCfg("JDBC_JAVA_CLASSPATH_custom", "#Server Classpath variables", "#Server Directory Variables");
- addForm("databaseUpdateForm");
- // Add Server form fields
- addForm("serverUpdateForm");
- // Update intradoc.cfg to reflect path form fields
- updateIntradocCfg("WebBrowserPath", "#Server Directory Variables", null);
- updateIntradocCfg("BASE_JAVA_CLASSPATH_custom", "#Server Classpath variables", "#Server Directory Variables");
- updateIntradocCfg("IdcHomeDir", "#Server Directory Variables", null);
- // Write intradoc.cfg, update localiation data, update JDBC Password, and submit combined form
- writeToIntradocCfg();
- updateLocalizationHda();
- updateJdbcPassword();
- combinedForm.submit();
- /*
- * Set the given hidden input according to its corresponding checkbox's value, then remove the checkbox.
- * Checkbox/hidden input pairs are used to make arguments to GEN_SYS_PROPS correctly formatted.
- */
- function setCheckbox(name) {
- var checkbox = $fbs("input[name='" + name + "Check']");
- var input = $fbs("input[name='" + name + "']");
- if (checkbox.is(":checked"))
- input.val("true");
- else
- input.val("false");
- checkbox.remove();
- }
- /*
- * Loop through inputs/selects in the given form and add them to the combined form.
- */
- function addForm(name) {
- $fbs("#" + name + " input, #" + name + " select").each(function() {
- if ($fbs(this).attr("type") === "radio") return; // Ignore the Database driver type radio buttons
- var input = '<input type="hidden" name="' + $fbs(this).attr("name") + '" value="' + $fbs(this).val() + '">';
- combinedForm.append(input);
- });
- }
- /*
- * Use regular expressions to update the intradocCfg string for the given variable. If variable is already present
- * in intradocCfg, it will be updated. If not, look for specified section of intradocCfg and insert the variable
- * at the end of the section. Otherwise if section doesn't exist, create it by inserting it after the prev. section.
- */
- function updateIntradocCfg(variable, section, prevSection) {
- // Remove field from form since we're updating the variable manually
- var field = $fbs("input[name='" + variable + "']");
- var value = field.val();
- field.remove();
- // Match RE for the variable itself
- var reVariable = new RegExp("(\n" + variable + "=)(.*\n)");
- var variableExists = intradocCfg.match(reVariable);
- // Match RE for the section the variable should be in
- var reSection = new RegExp("(\n" + section + "(?:(?:\n(?!\n))|.)*)");
- var sectionExists = intradocCfg.match(reSection);
- // Match RE for the section before the section the variable should be in if it's specified
- // This is used to create the variable's section if it's not already present in the cfg
- var prevSectionExists = null;
- if (prevSection) {
- var rePrevSection = new RegExp("(\n" + prevSection + "(?:(?:\n(?!\n))|.)*)");
- prevSectionExists = intradocCfg.match(rePrevSection);
- }
- // If variable already exists, update it
- if (variableExists) {
- intradocCfg = intradocCfg.replace(reVariable, "$1" + value + "\n");
- }
- // Otherwise if section exists, insert variable after the section
- else if (sectionExists) {
- intradocCfg = intradocCfg.replace(reSection, "$1\n" + variable + "=" + value);
- }
- // Otherwise if this section doesn't exist but the previous one does, create this section and insert the variable
- else if (prevSection && prevSectionExists) {
- intradocCfg = intradocCfg.replace(rePrevSection, "$1" + "\n\n" + section + "\n" + variable + "=" + value);
- }
- }
- /*
- * Write the updated intradocCfg string back to the bin/intradoc.cfg file using the UPDATE_CONFIG_FILE service.
- */
- function writeToIntradocCfg() {
- data = {
- IdcService: "UPDATE_CONFIG_FILE",
- IDC_Id: "<$IDC_Id$>",
- IsJson: "1",
- ConfigFileName: "bin/intradoc.cfg",
- configFileInfo: intradocCfg
- };
- serviceCall(data, null, function(){});
- }
- /*
- * Send localization table data as a JSON string to the content server using the ADMIN_SUITE_SAVE_LOCALIZATION_CONFIG
- * service where it will be processed and written to the data/locale/locale_config.hda file.
- */
- function updateLocalizationHda() {
- data = {
- IdcService: "ADMIN_SUITE_SAVE_LOCALIZATION_CONFIG",
- IsJson: "1",
- TableData: JSON.stringify(Array.prototype.slice.call(localizationTable.rows().data())), // Slice so we get only the data itself
- OriginalTableData: JSON.stringify(originalLocaleList)
- };
- serviceCall(data, null, function(){});
- }
- /*
- * Update JDBC password using custom service ADMIN_SUITE_UPDATE_JDBC_PASSWORD, which writes an encrypted
- * password to config/private/passwords.hda. Also set JdbcPassword field to "managed" (same as built-in).
- */
- function updateJdbcPassword() {
- var input = $fbs("input[name='JdbcPassword']");
- var password = input.val();
- input.val("managed");
- if (password === "") { return; } // If no value was entered, don't do anything
- data = {
- IdcService: "ADMIN_SUITE_UPDATE_JDBC_PASSWORD",
- IsJson: "1",
- JdbcPassword: password
- };
- serviceCall(data);
- }
- }
- }
- /*
- * Reset the data in all tabs to the data that was initially loaded by the page. This function is attached as a
- * handler for the page's reset button.
- */
- function resetHandler() {
- $fbs("#internetUpdateForm")[0].reset();
- $fbs("#databaseUpdateForm")[0].reset();
- $fbs("#serverUpdateForm")[0].reset();
- $fbs("#pathsUpdateForm")[0].reset();
- // Enable "Database" tab fields that should be enabled
- toggleIsJdbc();
- // Reset Localization table by copying all values in original locale list back and removing/restoring the data
- localeList = JSON.parse(JSON.stringify(originalLocaleList));
- localizationTable.rows().remove();
- for (var i=0; i < localeList.length; i++) {
- localizationTable.row.add(localeList[i]);
- }
- localizationTable.draw();
- }
- /*
- * Helper function to easily determine if a value is "yes" or "true" or "1" regardless of case.
- */
- function strIsTrue(string) {
- var upper = string.toUpperCase();
- if (upper === "YES" || upper === "TRUE" || upper === "1") {
- return true;
- }
- else {
- return false;
- }
- }
- </script>
- <@end@>
- <@dynamichtml admin_suite_system_properties_page@>
- <div class="adminSuiteTabs">
- <ul>
- <li><a href="#tabInternet"><$lc("csSysPropsFrameTabNameInternet")$></a></li>
- <li><a href="#tabDatabase"><$lc("csSysPropsFrameTabNameDB")$></a></li>
- <li><a href="#tabServer"><$lc("csSysPropsFrameTabNameServer")$></a></li>
- <li><a href="#tabLocalization"><$lc("csSysPropsFrameTabNameLocalization")$></a></li>
- <li><a href="#tabPaths"><$lc("csSysPropsFrameTabNamePaths")$></a></li>
- </ul>
- <div id="tabInternet" class="adminSuiteTab">
- <$include admin_suite_system_properties_tab_internet$>
- </div>
- <div id="tabDatabase" class="adminSuiteTab">
- <$include admin_suite_system_properties_tab_database$>
- </div>
- <div id="tabServer" class="adminSuiteTab">
- <$include admin_suite_system_properties_tab_server$>
- </div>
- <div id="tabLocalization" class="adminSuiteTab">
- <$include admin_suite_system_properties_tab_localization$>
- </div>
- <div id="tabPaths" class="adminSuiteTab">
- <$include admin_suite_system_properties_tab_paths$>
- </div>
- </div>
- <form id="systemPropertiesForm" method="post" action="<$HttpCgiPath$>">
- <$include idc_token_form_field$>
- <input type="hidden" name="IdcService" value="SET_SYS_PROPS">
- <input type="hidden" name="IDC_Id" value="<$IDC_Id$>">
- <input type="hidden" name="BackUrl" value="<$HttpCgiPath$>?IdcService=ADMIN_SUITE_SYSTEM_PROPERTIES">
- </form>
- <div id="adminSuiteButtons">
- <input class="adminSuiteButton" id="systemPropertiesSubmit" type="button" value="<$lc('wwSave')$>">
- <input class="adminSuiteButton" id="systemPropertiesReset" type="button" value="<$lc('wwReset')$>">
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_tab_internet@>
- <div class="adminSuiteForm">
- <form id="internetUpdateForm">
- <table>
- <tr>
- <td><$lcCaption("wwHttpAddress")$></td>
- <td><input type="text" name="HttpServerAddress"></td>
- </tr>
- <tr>
- <td><$lc("wwSMTPPort")$></td>
- <td><input type="text" name="SmtpPort"></td>
- </tr>
- <tr>
- <td><$lcCaption("wwHttpRelativeWebRoot")$></td>
- <td><input type="text" name="HttpRelativeWebRoot"></td>
- </tr>
- <tr>
- <td><$lc("wwUseSSL")$></td>
- <td>
- <input type="hidden" name="UseSSL">
- <input type="checkbox" name="UseSSLCheck">
- </td>
- </tr>
- </table>
- </form>
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_tab_database@>
- <div class="adminSuiteForm">
- <form id="databaseUpdateForm">
- <table>
- <tr>
- <td><$lc("csDBPanelJDBCCheckboxDesc")$></td>
- <td>
- <input type="hidden" name="IsJdbc">
- <input type="checkbox" name="IsJdbcCheck">
- </td>
- </tr>
- <tr>
- <td><$lc("csDBPanelDriverDesc_dd_mssql")$></td>
- <td><input type="radio" name="JdbcDriverType" class="databaseInput" value="SQL"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelDriverDesc_dd_db2")$></td>
- <td><input type="radio" name="JdbcDriverType" class="databaseInput" value="DB2"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelOracleOCIDriverDesc")$></td>
- <td><input type="radio" name="JdbcDriverType" class="databaseInput" value="OCI"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelOracleThinDriverDesc")$></td>
- <td><input type="radio" name="JdbcDriverType" class="databaseInput" value="Thin"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelOtherJDBCDriverDesc")$></td>
- <td><input type="radio" name="JdbcDriverType" class="databaseInput" value="Other"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelDBPreserveCaseCheckBoxDesc")$></td>
- <td>
- <input type="hidden" name="DatabasePreserveCase">
- <input type="checkbox" name="DatabasePreserveCaseCheck" class="databaseInput">
- </td>
- </tr>
- <tr>
- <td><$lc("csDBPanelDBClasspath")$></td>
- <td><input type="text" name="JDBC_JAVA_CLASSPATH_custom"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelJDBCDriverLabel")$></td>
- <td><input type="text" name="JdbcDriver" class="databaseInput"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelJDBCConnectionString")$></td>
- <td><input type="text" name="JdbcConnectionString" class="databaseInput"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelJDBCUsername")$></td>
- <td><input type="text" name="JdbcUser" class="databaseInput"></td>
- </tr>
- <tr>
- <td><$lc("csDBPanelJDBCPassword")$></td>
- <td><input type="password" name="JdbcPassword" class="databaseInput"></td>
- </tr>
- </table>
- </form>
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_tab_server@>
- <div class="adminSuiteForm">
- <form id="serverUpdateForm">
- <table>
- <tr>
- <td><$lc("csServerPanelLabelSystemLocale")$></td>
- <td><select name="SystemLocale"></select></td>
- </tr>
- <tr>
- <td><$lc("csServerPanelLabelSystemTimeZone")$></td>
- <td><select name="SystemTimeZone"></select></td>
- </tr>
- <tr>
- <td><$lc("csServerPanelLabelInstanceMenu")$></td>
- <td><input type="text" name="InstanceMenuLabel"></td>
- </tr>
- <tr>
- <td><$lc("csServerPanelLabelInstanceDesc")$></td>
- <td><input type="text" name="InstanceDescription"></td>
- </tr>
- </table>
- </form>
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_tab_localization@>
- <div id="localizationTable" class="adminSuiteDataTable"><table></table></div>
- <div id="configureLocaleDialog" class="adminSuiteDialog">
- <$include admin_suite_system_properties_configure_locale_dialog$>
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_configure_locale_dialog@>
- <div class="adminSuiteForm">
- <form id="configureLocaleForm">
- <table>
- <tr>
- <td><$lc("csEditLabelLocaleEnabled")$></td>
- <td><input type="checkbox" name="lcIsEnabled"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelLocaleId")$></td>
- <td><input type="text" name="lcLocaleId"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelLanguageId")$></td>
- <td><input type="text" name="lcLanguageId"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelSearchLocale")$></td>
- <td><select name="lcSearchLocale"></select></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelNativeName")$></td>
- <td><input type="text" name="lcLocaleNativeName"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelEncoding")$></td>
- <td><select name="lcIsoEncoding"></select></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelDateFormat")$></td>
- <td><input type="text" name="lcDateTimeFormat"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelDisplayDateFormat")$></td>
- <td><input type="text" name="lcDisplayDateFormat"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelAlternateParseDateFormats")$></td>
- <td><input type="text" name="lcAlternateParseDateFormats"></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelTimeZone")$></td>
- <td><select name="lcTimeZone"></select></td>
- </tr>
- <tr>
- <td><$lc("csEditLabelWeekdayOffset")$></td>
- <td>
- <select name="lcWeekdayOffset">
- <option value="0"><$lc("wwWeekdayOffset0")$></option>
- <option value="1"><$lc("wwWeekdayOffset1")$></option>
- </select>
- </td>
- </tr>
- </table>
- </form>
- </div>
- <@end@>
- <@dynamichtml admin_suite_system_properties_tab_paths@>
- <div class="adminSuiteForm">
- <form id="pathsUpdateForm">
- <table>
- <tr>
- <td><$lc("csPathsPanelLabelBrowserPath")$></td>
- <td><input type="text" name="WebBrowserPath"></td>
- </tr>
- <tr>
- <td><$lc("csPathsPanelLabelJavaClasspath")$></td>
- <td><input type="text" name="BASE_JAVA_CLASSPATH_custom"></td>
- </tr>
- <tr>
- <td><$lc("csPathsPanelIdcHomeDir")$></td>
- <td><input type="text" name="IdcHomeDir"></td>
- </tr>
- </table>
- </form>
- </div>
- <@end@>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement