/** * Copyright JS Foundation and other contributors, http://js.foundation * * 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. **/ RED.projects.userSettings = (function() { var gitUsernameInput; var gitEmailInput; function createGitUserSection(pane) { var currentGitSettings = RED.settings.get('git') || {}; currentGitSettings.user = currentGitSettings.user || {}; var title = $('

').text("Committer Details").appendTo(pane); var gitconfigContainer = $('
').appendTo(pane); $('
').appendTo(gitconfigContainer).text("Leave blank to use system default"); var row = $('
').appendTo(gitconfigContainer); $('').text('Username').appendTo(row); gitUsernameInput = $('').appendTo(row); gitUsernameInput.val(currentGitSettings.user.name||""); row = $('
').appendTo(gitconfigContainer); $('').text('Email').appendTo(row); gitEmailInput = $('').appendTo(row); gitEmailInput.val(currentGitSettings.user.email||""); } function createSSHKeySection(pane) { var container = $('
').appendTo(pane); var popover; var title = $('

').text("SSH Keys").appendTo(container); var subtitle = $('
').appendTo(container).text("Allows you to create secure connections to remote git repositories."); var addKeyButton = $('') .appendTo(subtitle) .click(function(evt) { addKeyButton.attr('disabled',true); saveButton.attr('disabled',true); // bg.children().removeClass("selected"); // addLocalButton.click(); addKeyDialog.slideDown(200); keyNameInput.focus(); }); var validateForm = function() { var valid = /^[a-zA-Z0-9\-_]+$/.test(keyNameInput.val()); keyNameInput.toggleClass('input-error',keyNameInputChanged&&!valid); // var selectedButton = bg.find(".selected"); // if (selectedButton[0] === addLocalButton[0]) { // valid = valid && localPublicKeyPathInput.val().length > 0 && localPrivateKeyPathInput.val().length > 0; // } else if (selectedButton[0] === uploadButton[0]) { // valid = valid && publicKeyInput.val().length > 0 && privateKeyInput.val().length > 0; // } else if (selectedButton[0] === generateButton[0]) { var passphrase = passphraseInput.val(); var validPassphrase = passphrase.length === 0 || passphrase.length >= 8; passphraseInput.toggleClass('input-error',!validPassphrase); if (!validPassphrase) { passphraseInputSubLabel.text("Passphrase too short"); } else if (passphrase.length === 0) { passphraseInputSubLabel.text("Optional"); } else { passphraseInputSubLabel.text(""); } valid = valid && validPassphrase; // } saveButton.attr('disabled',!valid); if (popover) { popover.close(); popover = null; } }; var row = $('
').appendTo(container); var addKeyDialog = $('
').hide().appendTo(row); $('
').text('Add SSH Key').appendTo(addKeyDialog); var addKeyDialogBody = $('
').appendTo(addKeyDialog); row = $('').appendTo(addKeyDialogBody); $('
').appendTo(row).text("Generate a new public/private key pair"); // var bg = $('
',{class:"button-group", style:"text-align: center"}).appendTo(row); // var addLocalButton = $('').appendTo(bg); // var uploadButton = $('').appendTo(bg); // var generateButton = $('').appendTo(bg); // bg.children().click(function(e) { // e.preventDefault(); // if ($(this).hasClass("selected")) { // return; // } // bg.children().removeClass("selected"); // $(this).addClass("selected"); // if (this === addLocalButton[0]) { // addLocalKeyPane.show(); // generateKeyPane.hide(); // uploadKeyPane.hide(); // } else if (this === uploadButton[0]) { // addLocalKeyPane.hide(); // generateKeyPane.hide(); // uploadKeyPane.show(); // } else if (this === generateButton[0]){ // addLocalKeyPane.hide(); // generateKeyPane.show(); // uploadKeyPane.hide(); // } // validateForm(); // }) row = $('').appendTo(addKeyDialogBody); $('').text('Name').appendTo(row); var keyNameInputChanged = false; var keyNameInput = $('').appendTo(row).on("change keyup paste",function() { keyNameInputChanged = true; validateForm(); }); $('').appendTo(row).find("small"); var generateKeyPane = $('
').appendTo(addKeyDialogBody); row = $('').appendTo(generateKeyPane); $('').text('Passphrase').appendTo(row); var passphraseInput = $('').appendTo(row).on("change keyup paste",validateForm); var passphraseInputSubLabel = $('').appendTo(row).find("small"); // var addLocalKeyPane = $('
').hide().appendTo(addKeyDialogBody); // row = $('').appendTo(addLocalKeyPane); // $('').text('Public key').appendTo(row); // var localPublicKeyPathInput = $('').appendTo(row).on("change keyup paste",validateForm); // $('').appendTo(row).find("small"); // row = $('').appendTo(addLocalKeyPane); // $('').text('Private key').appendTo(row); // var localPrivateKeyPathInput = $('').appendTo(row).on("change keyup paste",validateForm); // $('').appendTo(row).find("small"); // // var uploadKeyPane = $('
').hide().appendTo(addKeyDialogBody); // row = $('').appendTo(uploadKeyPane); // $('').text('Public key').appendTo(row); // var publicKeyInput = $('